Prv8 Shell
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4
System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64
User : jackjohn ( 502)
PHP Version : 5.3.17
Disable Function : NONE
Directory :  /home/jackjohn/www/shopsite-images/en-EU/javascript/orders/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/jackjohn/www/shopsite-images/en-EU/javascript/orders/subscriptions.js
function retrieve_from_anet(row,ss_id,gateway_id) {
	var data = "ajax=retrieve_from_anet&ss_id="+ss_id+"&gateway_id="+gateway_id;
	$('body, a').css({'cursor':'wait'});
	$.ajax({
		type: 'POST',
		async: true,
		url: 'subscriptions_bo.cgi',
		data: data,
		success:  function(response) {
			$('body, a').css({'cursor':''});
			if (response.slice(0,5) == "ERROR") {
				alert("Authorize.NET error: "+response.slice(5));
			} else
				$(row).replaceWith(response);
		} 
	});
}

function cc_html(CustomerName,gateway_id) {
	var show_cvv = true;
	var html = "<div id='sub_edit_method'>"+
		"<h4>Credit card on subscription "+gateway_id+":</h4>"+
		"<table><tr><td>Card Number</td><td><input type='text' name='pay1'></td></tr>";
	if (show_cvv)
		html += "<tr><td>CVV value</td><td><input type='text' name='cvv2'></td></tr>";
	html += "<tr><td>Name on Card</td><td><input type='text' name='pay2' value='"+CustomerName+"'></td></tr>";

	var expiration_date = "<tr><td>Expiration Date:</td><td><select name='pay4_1'>";
	for (var i = 1; i<=12; i++)
		expiration_date += "<option value='"+i+"'>"+((i<10)?("0"+i.toString()):i)+"</option>";
	expiration_date += "</select>";

	var current_year = new Date().getFullYear();
	expiration_date += "<select name='pay4_2'>";
	for (var i = current_year; i<=2030; i++)
		expiration_date += "<option value='"+i+"'>"+i+"</option>";
	expiration_date += "</select></td></tr>";
	html += expiration_date;
	html += "</table></div>";
	return html;
}

function bank_html(CustomerName,gateway_id) {
	var html = "<div id='sub_edit_method'>"+
		"<h4>Bank account on subscription "+gateway_id+":</h4>"+
		"<table><tr><td>Routing Number</td><td><input type='text' name='pay1'></td></tr>";
	html += "<tr><td>Account Number</td><td><input type='text' name='pay2'></td></tr>";
	html += "<tr><td>Name on Account</td><td><input type='text' name='pay4' value='"+CustomerName+"'></td></tr>";
	html += "</table></div>";
	return html;
}

ss_jQuery(function($) 
{
	$.validator.addMethod(
		"price",
		function(value, element) {
			var re = new RegExp(/^(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/);
			return re.test(value);
		},
		"Example: 1,999.99"
	);

	$(document).on('click', '.retrieve_from_anet', function() {
		var row = $(this).closest('tr');
		var ss_id = row.find('.ss_id').val();
		var gateway_id = row.find('.gateway_id').val();
		retrieve_from_anet(row,ss_id,gateway_id);
	});

	$(document).on('click', '.edit_payment_method', function() {
		var row = $(this).closest('tr');
		var ss_id = row.find('.ss_id').val();
		var gateway_id = row.find('.gateway_id').val();
		var CustomerName = row.find('.CustomerName').val();
		var PaymentMethod = row.find('.PaymentMethod').val();
		//retrieve_from_anet(row,ss_id,gateway_id);

		var html = 
		"<div id='sub_edit_modal'>"+
			"<form>"+
			"<input type='hidden' id='CustomerName' value='"+CustomerName+"'>"+
			"<input type='hidden' id='PaymentMethod' name='PaymentMethod' value='"+PaymentMethod+"'>"+
			//"<div id='method_type_select'><a id='method_cc' class='method_active'>Credit Card</a>|<a id='method_bank'>Bank Account</a></div>"+
			"<input type=hidden id='ss_id' name='ss_id' value='"+ss_id+"'>"+
			"<input type=hidden id='gateway_id' name='gateway_id' value='"+gateway_id+"'>";
		if (PaymentMethod == "eCheck")
			html += bank_html(CustomerName,gateway_id);
		else
			html += cc_html(CustomerName,gateway_id);

		html += "</form><div id='modal_control'><a id='save_method'>Save Changes</a><a id='cancel_modal'>Cancel</a></div>";
		html += "</div>";

		$.modal(html);
	});

	$(document).on('click', '#method_type_select > a', function() {
		if (!$(this).hasClass('method_active')) {
			var CustomerName = $('#CustomerName').val();
			if ($(this).attr('id') == 'method_cc')
				$('#sub_edit_method').replaceWith(cc_html(CustomerName));
			else
				$('#sub_edit_method').replaceWith(bank_html(CustomerName));
			$('.method_active').removeClass('method_active');
			$(this).addClass('method_active');
		}
	});

	$(document).on('click', '#cancel_modal, #done_history', function() {
		$.modal.close();
	});

	$(document).on('click', '.history', function() {
		var row = $(this).closest('tr');
		var ss_id = row.find('.ss_id').val();
		var gateway_id = row.find('.gateway_id').val();
		var data = "ajax=history&ss_id="+ss_id;
		$('body, a').css({'cursor':'wait'});
		$.ajax({
			type: 'POST',
			url: 'subscriptions_bo.cgi',
			data: data,
			success:  function(response) {
				var html = "<div id='sub_history'><h4>History for subscription "+gateway_id+". Note: history is approximate. Actual dates may vary; billing events may be missing.</h4>"+response+"<div id='modal_control'><a id='done_history'>Done</a></div></div>";
				$.modal(html);
				$('body, a').css({'cursor':''});
			} 
		});
	});

	$(document).on('click', '.edit_payment_schedule', function() {
		var row = $(this).closest('tr');
		var ss_id = row.find('.ss_id').val();
		var gateway_id = row.find('.gateway_id').val();
		//retrieve_from_anet(row,ss_id,gateway_id);

		//var SubRegularPaymentAmount = row.find('.SubRegularPaymentAmount').val();
		var Amount = row.find('.Amount').val();
		var SubEndingPeriod = row.find('.SubEndingPeriod').val();
		var SubPaymentIntervalUnit = row.find('.SubPaymentIntervalUnit').val();
		var startDate = row.find('.startDate').val();
		var pastOccurences = row.find('.pastOccurences').val();
		if (pastOccurences == "")
			pastOccurences = 0;
		else
			pastOccurences = parseInt(pastOccurences);
		var SubTrialCheckBox = row.find('.SubTrialCheckBox').val();
		//var SubTrialPaymentAmount = row.find('.SubTrialPaymentAmount').val();
		var TrialAmount = row.find('.TrialAmount').val();
		var SubTrialPeriods = row.find('.SubTrialPeriods').val();
		if (SubTrialPeriods == "")
			SubTrialPeriods = 0;
		else
			SubTrialPeriods = parseInt(SubTrialPeriods);

		/*var SubRegularPaymentAmount = "10.00";
		var SubEndingPeriod = "9999"
		var currency_symbol = "$";
		var SubPaymentIntervalUnit = "Monthly";
		var startDate = "2016-12-31";
		var pastOccurences = 5;
		var SubTrialCheckBox = "checked";
		var SubTrialPaymentAmount = "5.00";
		var SubTrialPeriods = 3;*/

		var html = 
		"<div id='sub_edit_modal'><form>"+
			"<input type=hidden id='ss_id' name='ss_id' value='"+ss_id+"'>"+
			"<input type=hidden id='gateway_id' name='gateway_id' value='"+gateway_id+"'>"+
			"<div id='sub_edit_schedule'>"+
			"<div id='edit_regular_period'>"+
			"<h4>Payment schedule for subscription "+gateway_id+":</h4>"+
			currency_symbol+"<input type='text' name='Amount' id='edit_Amount' value='"+Amount+"'> ";
		if (SubPaymentIntervalUnit == 'twiceyearly')
			SubPaymentIntervalUnit = 'twice a year';
		html += SubPaymentIntervalUnit+" ";

		var period_select = "<select name='SubEndingPeriod' id='SubEndingPeriod'><option value='9999'"+((SubEndingPeriod == '9999')?"selected":"")+">forever</option>";
		for (var i = pastOccurences+1; i < 100; i++)
			period_select += "<option value='"+i+"' "+((SubEndingPeriod == i.toString())?"selected":"")+">"+i+" times ("+(i-pastOccurences)+" left)</option>\n";
		period_select += "</select>";
		html += period_select + "</div>";

		if (pastOccurences < SubTrialPeriods) {
			var period_select = "<select name='SubTrialPeriods' id='edit_SubTrialPeriods'>";
			for (var i = pastOccurences+1; i < 100; i++)
				period_select += "<option value='"+i+"' "+((SubTrialPeriods == i.toString())?"selected":"")+">"+i+" times ("+(i-pastOccurences)+" left)</option>\n";
			period_select += "</select>";

			html += "<div id='edit_trial_period'><h4>Initial trial period:</h4>"+
				//"<label>Enable <input type='checkbox' name='SubTrialCheckBox' id='edit_SubTrialCheckBox' "+((SubTrialCheckBox=='checked')?"checked":"")+" "+((pastOccurences !=0)?"disabled":"")+"></label>"+
				"Trial price: "+currency_symbol+"<input type='text' value='"+TrialAmount+"' name='TrialAmount' id='edit_TrialAmount'> "+
				period_select + "</div>";
			//" <input type='text' value='"+SubTrialPeriods+"' name='SubTrialPeriods' id='edit_SubTrialPeriods'> periods ("+(SubTrialPeriods-pastOccurences)+" left)</div>";
		}

		var today = new Date();
		if (today < startDate)
			html += "<div id='edit_start_date'>Start date: <input class='date hasDatePicker' type='text' id='startDate' name='startDate' value='"+startDate+"'></div>";
		html += "</div>";

		html += "</form>";
		html += "<div id='modal_control'><a id='save_schedule'>Save Changes</a><a id='cancel_modal'>Cancel</a></div>";
		html += "</div>";

		$.modal(html);

		$('.date').datepicker({ changeMonth: true, changeYear: true, minDate: today, dateFormat: "yy-mm-dd", yearRange: "0:+1"});

	});

	$(document).on('click', '#save_schedule', function() {
		//$('#edit_SubTrialCheckBox').removeAttr('disabled');
		var rules = {
			Amount: {
				required: true,
				price: true
			},
		}

		if ($('#edit_TrialAmount').length) {
			rules.TrialAmount = {
				required: true,
				price: true
			}
		}

		$('form').validate({
			rules: rules,
			errorPlacement: function(error, element) {
				element.siblings().last().after(error);
			},
		});

		if (!$('form').valid()) {
			return;
		}

		$('body').css({'cursor':'wait'});
		var data = "ajax=save_schedule&"+$('#sub_edit_modal > form').serialize();
		var ss_id = $('#ss_id').val();

		$.ajax({
			type: 'POST',
			url: 'subscriptions_bo.cgi',
			data: data,
			success:  function(response) {
				$('body').css({'cursor':''});

				if (response.slice(0,5) == "ERROR") {
					alert("Authorize.NET error: "+response.slice(5));
				} else {
					var row = $('input.ss_id[value='+ss_id+']').closest('tr');
					$(row).replaceWith(response);
					$.modal.close();
				}

			} 
		});
	});

	$(document).on('click', '#save_method', function() {

		if ($('#PaymentMethod').val() == "creditCard") {
			$('form').validate({
				rules: {
					pay1: {
						required: true,
						creditcard: true
					},
					cvv2: {
						digits: true,
						rangelength: [3,4]
					}
				},
				messages: {
					cvv2: "Please enter a valid CVV2 value"
				}      
			});
		} else {
			$('form').validate({
				rules: {
					pay1: {
						required: true,
						digits: true
					},
					pay2: {
						required: true,
						digits: true
					},
					pay4: {
						required: true
					}
				}      
			});
		}

		if (!$('form').valid()) {
			return;
		}

		/*if ($('#method_cc').hasClass('method_active'))
			append_to_form('method','cc');
		else
			append_to_form('method','bank');*/

			function submit_method() {
				var data = "ajax=save_method&"+$('#sub_edit_modal > form').serialize();
				var ss_id = $('#ss_id').val();
				$('body').css({'cursor':'wait'});
				$.ajax({
					type: 'POST',
					url: 'subscriptions_bo.cgi',
					data: data,
					success:  function(response) {
						$('body').css({'cursor':''});
						if (response.slice(0,5) == "ERROR") {
							alert("Authorize.NET error: "+response.slice(5));
						} else
							$.modal.close();

					} 
				});
			}

			//if cc and https, can use Accept.js for extra PCIness
			if ($('#PaymentMethod').val() == "creditCard" && bo_use_security && use_accept == 1) {
				sendPaymentDataToAnet();
				var interval = setInterval(function() { 
					if (anet_cnt_responses == 1) {
						clearInterval(interval);
						$("input[name='pay1']").val('XXXXXXXXXXXXX' + $("input[name='pay1']").val().substr(-4));
						submit_method();
					}
				}, 300);
			} else {
				submit_method();
			}
	});

	$(document).on('click', '.cancel_subscription', function() {
		if (confirm("Are you sure you want to cancel this subscription? It will no longer be billed, and this can't be undone.")) {
			var row = $(this).closest('tr');
			var ss_id = row.find('.ss_id').val();
			var gateway_id = row.find('.gateway_id').val();
			var data = "ajax=cancel&ss_id="+ss_id+"&gateway_id="+gateway_id;
			$('body').css({'cursor':'wait'});
			$.ajax({
				type: 'POST',
				url: 'subscriptions_bo.cgi',
				data: data,
				success:  function(response) {
					$('body').css({'cursor':''});
					if (response.slice(0,5) == "ERROR") {
						alert("Authorize.NET error: "+response.slice(5));
					} else {          
						var row = $('input.ss_id[value='+ss_id+']').closest('tr');
						$(row).replaceWith(response);
					}

				} 
			});
		}
	});

	$(document).on('click', '.send_email', function() {
		var row = $(this).closest('tr');
		var ss_id = row.find('.ss_id').val();
		var gateway_id = row.find('.gateway_id').val();
		var data = "ajax=send_email&ss_id="+ss_id+"&gateway_id="+gateway_id;
		$('body').css({'cursor':'wait'});
		$.ajax({
			type: 'POST',
			url: 'subscriptions_bo.cgi',
			data: data,
			success:  function(response) {
				$('body').css({'cursor':''});
				if (response.slice(0,5) == "ERROR") {
					alert("Error: "+response.slice(5));
				} else {          
					$(row).replaceWith(response);
				}        
			} 
		});

	});

	$(document).on('click', '#button_send_test_email', function() {
		var email = $('#test_email_address').val();
		var type = $('input[name=test_email_type]:checked').val()
		var data = "ajax=send_test_email&email="+encodeURIComponent(email)+"&type="+type; 
		$.ajax({
			type: 'POST',
			url: 'subscriptions_bo.cgi',
			data: data,
			success:  function(response) {
				alert("Test email sent");
			}
		});
		return false;
	});

	$(document).on('click', '#initial_sync_responses a', function() {
		var action =$(this).attr('id');

		if (action == 'initial_sync_yes') {
			var data = "ajax="+action;
			$.ajax({ url: 'subscriptions_bo.cgi', data: data });
			var count = parseInt($('#initial_sync_count').html());
			if (count > 0) {
				var html = "<div id='initial_sync_alert'>Importing subscriptions...<div id='progressbar'></div></div>";
				$('#initial_sync_alert').replaceWith(html);
				$('#progressbar').progressbar({ value: 0, max: count });
				setTimeout(function() {
					poll_interval = setInterval("poll_progress("+count+");", 1000);
				},1000);
			}
		}

		if (action == 'initial_sync_no') {
			$('#initial_sync_alert').remove();
		}

		if (action == 'initial_sync_remove') {
			var data = "ajax="+action;
			$.ajax({ url: 'subscriptions_bo.cgi', data: data });
			$('#initial_sync_alert').remove();
		}

	});

});

function poll_progress(total) {
	$.get("subscriptions_bo.cgi","ajax=initial_sync_poll", function(data) {
		var progress = parseInt(data);
		$('#progressbar').progressbar({ value: progress });
		if (progress >= total) {
			clearInterval(poll_interval);
			window.location.reload(false);
		}    
	});
}

haha - 2025