
var event = null;

$(document).bind('click',function(e){ event = e; });

function callajaxForce()
{
ajaxLoader('checkout_2confirmation.php?ship=1&tip='+ zprice+'&id='+id+'&zship='+zhipper+'&osCsid='+Csid,'contentLYR');
}

function checkPostCode (toCheck) {

  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  

  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);

  // Load up the string to check
  var postCode = toCheck;

  // Assume we're not going to find a valid postcode
  var valid = false;
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
    
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  
  // Return with either the reformatted valid postcode or the original invalid 
  // postcode
  if (valid) {return postCode;} else return false;
}





//--------------------parse url code : use queryString(key) : return value or false ----------------

			function PageQuery(q) {

				if(q.length > 1 && q.indexOf('?') != -1) q = q.split('?')[1];
				if(q.length > 1) this.q =(q.indexOf('?') != -1)?q.substring(1, q.length):q.substring(0, q.length); else this.q = null;

				this.keyValuePairs = new Array();

				if(q) 
				{
					for(var i=0; i < this.q.split("&").length; i++) {
					this.keyValuePairs[i] = this.q.split("&")[i];
					}
				}

				this.getKeyValuePairs = function() { return this.keyValuePairs; }
				this.getValue = function(s) {
						for(var j=0; j < this.keyValuePairs.length; j++) {
							if(this.keyValuePairs[j].split("=")[0] == s)
							return this.keyValuePairs[j].split("=")[1];
							}
							return false;
						}
				this.getParameters = function() {
						var a = new Array(this.getLength());
						for(var j=0; j < this.keyValuePairs.length; j++) {
							a[j] = this.keyValuePairs[j].split("=")[0];
						}
						return a;
						}
				this.getLength = function() { return this.keyValuePairs.length; }
			}


			function queryString(key){

				var page = new PageQuery(window.location.search);
				return unescape(page.getValue(key));
			}

			function queryUrl(url,key){
				if(typeof url =='undefined') { alert('url error'); return false;}
				var page = new PageQuery(url);
				return unescape(page.getValue(key));
			}

// ------------------------- END: page query library -------------------


function showFloatMessage(m,t){
	if(typeof m == 'undefined') m = 'error';
	if(typeof t == 'undefined') t = 'NOTICE';		
// alert(event.pageY + ' ' + event.clientY);
//	if($.browser.msie) var left = event.clientX+200; else 
		
	var left = event.pageX+200;
//	if($.browser.msie) var top = event.clientY; else 
	var top = event.pageY;

		
        if(t == 'ERROR'){
		$('body').append('<div class="floatError">'+m+'</div>'); 
		$('.floatError').css({left: left + 'px',top: top + 'px'});

		setTimeout(function(){  $('.floatError').fadeOut(300);  }, 3000); 
	} 
	else
    	{ 
		$('body').append('<div class="floatSucc">'+m+'</div>'); 
		$('.floatSucc').css({left: left + 'px',top: top + 'px'});
		
		setTimeout(function(){  $('.floatSucc').fadeOut(300); }, 3000); 
		
	}

	return false;
}


function addToCartAJAX( f ){
	if(typeof f == 'undefined') return false;
	var $form = $(f);
 	$.post('ajax.php?task='+queryUrl($form.attr('action'),'action'),$form.formToArray(),
			function(json){ 
				if(json.status == 'NOTICE'){
					$.get('ajax.php?task=getCart',function(data){  $('#shopping_cart').html(data); showFloatMessage(json.message,json.status); });
					}else showFloatMessage(e,json.message,json.status); 
				},"json");
	return false;
}

function addToCartLinkAJAX(  p ){
	
 	$.get('ajax.php?task=buy_now',{products_id:p},
			function(json){ 
				if(json.status == 'NOTICE'){
        				$.get('ajax.php?task=getCart',function(data){  $('#shopping_cart').html(data); showFloatMessage(json.message,json.status); });
                			}else showFloatMessage(json.message,json.status); 
				},"json");
                return false;
}

function  addToCartMultiAJAX(  p ){

 	$.get('ajax.php?task=add_multibuy',{multibuy_id:p},
			function(json){ 
				if(json.status == 'NOTICE'){
        				$.get('ajax.php?task=getCart',function(data){  $('#shopping_cart').html(data); showFloatMessage(json.message,json.status); window.location.reload();  });
                			}else showFloatMessage(json.message,json.status); 
				},"json");
                return false;
	

}

function openModalAJAX(a){
   	$(a).modal();
	return false;	
}



function loadFormAJAX(o){
        if(typeof o == 'object') 
		f = $(o).attr('id');
	else if(typeof o == 'string')
		f = o;
	if(f == 'formAddShipAdr'){
		var options = {
		    url: 'ajax.php',
		    target: '#shipAddress',
		    beforeSubmit: function(formArray, jqForm) { 

			},
		    success: function(html){  }
		};

	}else if(f == 'formChooseShipAdr'){

		var options = {
		    url: 'ajax.php',
		    target: '#curAddress',	
		    beforeSubmit: function(formArray, jqForm) { },
		    success: function(text){ 
			$.get('ajax.php?task=ship_method',function(html){
                              
					if($('.error_shipping').text() == '') var pass = false; else var pass = true;

					$('#contentShipMethod').html(html);

					if($('.error_shipping').text() == ''){
						if(pass)
							window.location.reload();
						else
							 callajaxForce(); 
	
					}else{
						$('#responseErrorShip').html(html);
							if(pass == true && $('#contentShipMethod').text() == '' && $('.error_shipping').text() == '')
								window.location.reload();							
						$('#conCheckout').remove();

					}

					$.modal.close(); 
				}); 
			}
		};

	}else if(f == 'formAddPayAdr'){
		var options = {
		    url: 'ajax.php',
		    target: '#billAddress',
		    beforeSubmit: function(formArray, jqForm) { 

			},
		    success: function(html){  }
		};

	}else if(f == 'formChoosePayAdr'){

		var options = {
		    url: 'ajax.php',
		    target: '#curAddress',	
		    beforeSubmit: function(formArray, jqForm) { },
		    success: function(html){ $.modal.close(); }
		};
	}else if(f == 'conCheckout'){
		var options = {
		    url: 'ajax.php',
  		    beforeSubmit: function(formArray, jqForm) { 

			var payment_pass = false;
			var shipp_pass = false;

			for(var i in formArray){
				if(formArray[i].name == 'payment'){
					 if(formArray[i].value){  payment_pass = true; }
					}
				if(formArray[i].name == 'shipping'){
					 if(formArray[i].value){  shipp_pass = true; }
					}
				}

			if(payment_pass == false){ alert('You dont choose payment method'); return false; }

			if(shipp_pass == false){ alert('You dont choose shipping method'); return false; }

			return true;
		    },
		    success: function(html){ $(html).modal(); }
		};
	}


	$('#'+f).ajaxSubmit(options);

	return false;
}










