function performEncOrder(frm, encdata) {
	frm.action			= "https://www.paypal.com/cgi-bin/webscr";
	frm.method			= "post";
	frm.target			= "_top";
	frm.cmd.value		= "_s-xclick";
	frm.encrypted.value = encdata;
	
	frm.submit();

	frm.action			= "";
	frm.method			= "";
	frm.target			= "";
	frm.cmd.value		= "";
	frm.encrypted.value = "";
}

function performUnencOrder(frm, data, ind) {
	var r_strings = data.split(';;\n');
	
	ind = ind || 0;
		
	frm.action				= "https://www.paypal.com/cgi-bin/webscr";
	frm.method				= "post";
	frm.target				= "_top";
	frm.add.value			= r_strings[ind+1];
	frm.cmd.value			= r_strings[ind+2];
	frm.business.value		= r_strings[ind+3];
	frm.item_name.value		= r_strings[ind+4];
	frm.item_number.value	= r_strings[ind+5];
	frm.amount.value		= r_strings[ind+6];
	frm.quantity.value		= r_strings[ind+7];
	frm.no_shipping.value	= r_strings[ind+8];
	frm.no_note.value		= r_strings[ind+9];
	frm.currency_code.value	= r_strings[ind+10];
	frm.lc.value			= r_strings[ind+11];
	frm.shopping_url.value	= r_strings[ind+12];
	
	frm.submit();
	
	frm.action				= "";
	frm.method				= "";
	frm.target				= "";
	frm.add.value			= "";
	frm.cmd.value			= "";
	frm.business.value		= "";
	frm.item_name.value		= "";
	frm.item_number.value	= "";
	frm.amount.value		= "";
	frm.quantity.value		= "";
	frm.no_shipping.value	= "";
	frm.no_note.value		= "";
	frm.currency_code.value	= "";
	frm.lc.value			= "";
	frm.shopping_url.value	= "";	
}

function submitOrder(frm, ind) {
	function proceedToReg() {
		frm.action = "http://"+window.location.host+"/form/about/saleterms";
		frm.method = "post";
		frm.bu.value = window.location.href;
		frm.submit();	
	}
	
	var xt = new XTransport();
	if (xt) {
		xt.onReceive = function(data) {
			var r_strings = data.split(';;\n');
			var reg_status = r_strings[0];
            /* FIX */
            reg_status = reg_status.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

			hideElement(ind);
			
			if (reg_status == "unregistered") {
				proceedToReg();
			}
			else if (reg_status == "purgereg") {
				setCookie('regid', '', '', '/');
				setCookie('tos'  , '',  '', '/');
				proceedToReg();
			}
			else if (reg_status == "registered") {
				//performEncOrder(frm, r_strings[1]);
				performUnencOrder(frm, data);
			}
			else if (reg_status == "error") {
				alert(r_strings[1]);
			}
			else {
				alert('Debug Shopping:\n'+data);
			}
		}; 
		
		xt.onTimeout = function() {
			hideElement(ind);
			alert('Server did not response. Please, try again.');
		};
		
		var now = new Date();
		var req;
		req  = 'action=order';
		req += '&item_number='+frm.item_number.value;
		req += '&quantity='+frm.quantity.value;
		
		if (frm.bu.value != '')
			req += '&ref='+pageRef(frm.bu.value);
		else
			req += '&ref='+pageRef(window.location.href);
			
		req += '&seed='+now.getSeconds();
		
		xt.asyncRequest('POST', '/pp_order.php', req, 10000);
		
		showElement(ind);
	}
}

function activateCartButton() {
	var cart_btns = document.getElementsByName('pp_cart_butn');
	var n = cart_btns.length;
	
	for (i = 0; i < n; i++)	{
	(function() {
		var btn = cart_btns[i];	
		bindEvent(btn, 'click',
		function() {
			if (btn.href.indexOf('shopping_url') == -1) {
				btn.href += '&shopping_url=';
				if (window == window.top)
					btn.href += pageRef(window.location.href);
				else
					btn.href += pageRef(window.parent.frames['content'].location.href);
			}				
		});
	})();
	}
}

function disableCartButton() {
	if (window != window.top) {
		var tf = window.parent.frames['all'].window.document;
		if (tf) {
			var btn = tf.getElementsByName('pp_cart_butn')[0];
			hideElement(btn);
		}
	}
}

function enableCartButton() {
	if (window != window.top) {
		var cf = window.parent.frames['content'].window.document;
		if (cf && cf.location.href.indexOf('form/about/saleterms') == -1) {
			var tf = window.parent.frames['all'].window.document;
			if (tf) {
				var btn = tf.getElementsByName('pp_cart_butn')[0];
				showElement(btn);
			}
		}
	}
}

function activateOrdButtons() {
	var ord_frms = document.getElementsByName('pp_order_form');
	var ord_btns = document.getElementsByName('pp_order_butn');
	var ord_inds = document.getElementsByName('pp_order_indr');
	
	var n = ord_frms.length;
	
	for (i = 0; i < n; i++) {
		(function(){
			var frm = ord_frms[i];
			var btn = ord_btns[i];
			var ind = ord_inds[i];
			
			bindEvent(btn, 'click',
			function() {
				submitOrder(frm, ind);
			});
		})();
	}
}

bindEvent(window, 'load', activateOrdButtons);
bindEvent(window, 'load', activateCartButton);
bindEvent(window, 'load', enableCartButton);