/**
 * @author Administrator
 */

	function checkCountry(strKey,strValue)
	{
		if(strValue !="UK")
		{
			$("#"+strKey+"PostBtn").hide();
			$("#"+strKey+"AddBlock").show();;
		}
		else{
			$("#"+strKey+"PostBtn").show();
			$("#"+strKey+"AddBlock").show();;
		}
	}
	

	function login()
	{
		if(validatePage("login")==true)
		{
			var strLoginForm = $("#login-form").formSerialize()
			
			$.ajax({
				url:"ajax_funcs/checkout.php",
				data:"mode=login&"+strLoginForm,
				success:function(strData){
					if(parseInt(strData)==1)
					{
						window.location="checkout.php";
					}
					else
					{
						$("#loginError").html("Sorry Login Details Are Incorrect");
					}
				}
			})
		}
	}

	function changeBilling()
	{
		
	var intBilling = $("#priBillingAddress").val();
	
	if (intBilling == 0) {
		$("#billingPostcode").val("");
		$(".billing-clear").val("");
		$("#billingAddressHide").show();
	}
	else {
		$("#billingAddressHide").hide();
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=changeBilling&addId="+intBilling,
			dataType:"json",
			success:function(arrData){
		
		$("#billingComp").val(arrData['company']);
		$("#billingTitle").val(arrData['title']);		
		$("#billingFname").val(arrData['first_name']);
		$("#billingLname").val(arrData['last_name']);
		$("#billingAdd1").val(arrData['address1']);
		$("#billingAdd2").val(arrData['address2']);
		$("#billingAdd3").val(arrData['address3']);
		$("#billingTown").val(arrData['town']);
		$("#billingPostcode").val(arrData['postcode']);
		$("#billingDayTel").val(arrData['telNo']);
				
				
			}
			})
		
		}
	}
	
	function changeShipping()
	{
		
	var intShipping = $("#priShippingAddress").val();
	
	if (intShipping == 0) {
		$("#shippingPostcode").val("");
		$(".shipping-clear").val("");
		$("#shippingAddressHide").show();
	}
	else {
		/*$("#shippingAddressHide").hide();*/
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=changeShipping&addId="+intShipping,
			dataType:"json",
			success:function(arrData){
		
		$("#shippingComp").val(arrData['company']);
		$("#shippingTitle").val(arrData['title']);		
		$("#shippingFname").val(arrData['first_name']);
		$("#shippingLname").val(arrData['last_name']);
		$("#shippingAdd1").val(arrData['address1']);
		$("#shippingAdd2").val(arrData['address2']);
		$("#shippingAdd3").val(arrData['address3']);
		$("#shippingTown").val(arrData['town']);
		$("#shippingPostcode").val(arrData['postcode']);
		$("#shippingDayTel").val(arrData['telNo']);
				
				
			}
			})
		
		}
	}



	function checkPostcode(strType) // main postcode check 
	{
		var strPostcode = $("#"+strType+"Postcode").val();// get entered postcode
		$.ajax({
			url:"ajax_funcs/addressFinder.php",
			data:"mode=getAddress&postcode="+strPostcode+"&type="+strType,
			beforeSend:function(){
				$(".loadImg").show() // show loading img
			},
			success:function(strData){
				$(".loadImg").hide() // hide loading img
				addressBox(strData,strType) //load address Dialog
			}
		})
	}
	
	function addressBox(strData,strType)
	{
		$("#postCodeDLG").html(strData); // update dalog with data
		$('#postCodeDLG').dialog({// open dialog 
							modal:true,
							width:500,
							title:'Choose your address',
							buttons:{
								'close':function(){
									$(this).dialog('destroy');
									$("#"+strType+"AddBlock").show();
								}
							},
							close:function(){
								$(this).dialog('destroy');
								
							}
								
				});
	}
	
	function updateAddress(intId,strType) //update fields with real address
	{
		
	$('#postCodeDLG').dialog('destroy'); //close dialog box
	$.ajax({ // get real address details via json
			url:'ajax_funcs/addressFinder.php',
			data:'seq='+intId+'&mode=getFullAddress',
			dataType:'json',
							success:function(strData){// update address fields
						var add1 =strData[9];				
						
					
				$("#"+strType+"Comp").val(strData[5]);		
				$("#"+strType+"Add1").val(add1);
				$("#"+strType+"Add2").val(strData[11]);
				$("#"+strType+"Add3").val(strData[13]);
				$("#"+strType+"Town").val(strData[19]);
				
				$("#"+strType+"AddBlock").show();
			
			}	
		});
	}
	
	function copyBilling()
	{
		
		$("#shippingFname").val($("#billingFname").fieldValue());
		$("#shippingLname").val($("#billingLname").fieldValue());
		$("#shippingComp").val($("#billingComp").fieldValue());
		$("#shippingAdd1").val($("#billingAdd1").fieldValue());
		$("#shippingAdd2").val($("#billingAdd2").fieldValue());
		$("#shippingAdd3").val($("#billingAdd3").fieldValue());
		$("#shippingTown").val($("#billingTown").fieldValue());
		$("#shippingPostcode").val($("#billingPostcode").fieldValue());		
	}
	
	function saveDetails(strFormName)
	{
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=save"+strFormName+"&"+$("#"+strFormName+"Form").formSerialize(),
			success:function(strData){
				
			}
		})	
		
	}
	
	
	
	
	function registerBilling()
	{
		
		var strShipTo =$("input[name='billingShip']").fieldValue();
		var intPageTo =2;
			
			if($("#billingAdd1").fieldValue() =="")
			{
				checkPostcode('billing')
			}
			
		if(validatePage("billing") ==true)
		{
			saveDetails("billing");
			if(strShipTo == "Y")
			{
			intPageTo =	3;
			copyBilling();
			updateBilling();
			updateShipping();
			
			}
			if(strShipTo == "N")
			{
			intPageTo =	2;
			updateBilling();
			}	
			changeFrame(intPageTo)
						
		}
	}
	
	function updateBilling()
	{
		
		var strReturn="";
			strReturn += $("#billingTitle").fieldValue()+" ";
			strReturn += $("#billingFname").fieldValue()+" ";
			strReturn += $("#billingLname").fieldValue()+"<br/>";
				if($("#billingComp").fieldValue()!="")strReturn += $("#billingComp").fieldValue()+"<br/>";
			strReturn += $("#billingAdd1").fieldValue()+"<br/>";
				if($("#billingAdd2").fieldValue()!="")strReturn += $("#billingAdd2").fieldValue()+"<br/>";
				if($("#billingAdd3").fieldValue()!="")strReturn += $("#billingAdd3").fieldValue()+"<br/>";
			strReturn += $("#billingTown").fieldValue()+", ";
			strReturn += $("#billingPostcode").fieldValue()+"<br/>";
			strReturn += $("#billingCountry").val()+"<br/>";
			strReturn += "T: "+ $("#billingDayTel").fieldValue()+"<br/>";
				if($("#billingDMobTel").fieldValue()!="")strReturn += $("#billingDMobTel").fieldValue()+"<br/>";
			
			
			$("#billingSub").html(strReturn);
			$("#billingSub").css("padding","10px")
			$("#billingChange").html("| <a href='#' class='subLinks' onclick='changeFrame(1)'>change</a>")
			
	}
	
	
	function registerShipping()
	{
		if($("#shippingAdd1").fieldValue() =="")
			{
				checkPostcode('billing')
			}
		if(validatePage("shipping") ==true)
		{
			saveDetails("shipping");
			changeFrame(3);
			updateShipping()
		}
	}
	
	function updateShipping()
	{
		var strReturn="";
			strReturn += $("#shippingFname").fieldValue()+" ";
			strReturn += $("#shippingLname").fieldValue()+"<br/>";
				if($("#shippingComp").fieldValue()!="")strReturn += $("#shippingComp").fieldValue()+"<br/>";
			strReturn += $("#shippingAdd1").fieldValue()+"<br/>";
				if($("#shippingAdd2").fieldValue()!="")strReturn += $("#shippingAdd2").fieldValue()+"<br/>";
				if($("#shippingAdd3").fieldValue()!="")strReturn += $("#shippingAdd3").fieldValue()+"<br/>";
			strReturn += $("#shippingTown").fieldValue()+", ";
			strReturn += $("#shippingPostcode").fieldValue()+"<br/>";
			strReturn += $("#shippingCountry").val()+"<br/>";
			/*strReturn += "T: "+ $("#shippingDayTel").fieldValue()+"<br/>";
				if($("#shippingDMobTel").fieldValue()!="")strReturn += $("#billingDMobTel").fieldValue()+"<br/>";*/
			
			
			$("#shippingSub").html(strReturn);
			$("#shippingSub").css("padding","10px")
			$("#shippingChange").html("| <a href='#' class='subLinks' onclick='changeFrame(2)'>change</a>")
	}
	
	
	function registerCC()
	{
		$(".errorTxt").remove();
		if(validatePage("cc") ==true)
		{
			var intCCNum = $("#ccNumber").fieldValue();
			var strCCType =	 $("#ccType").fieldValue();
				
			$.ajax({ // luhn check via ajax
				url:'ajax_funcs/luhn.php',
				data:'ccNum='+intCCNum+'&ccType='+strCCType+'&mode=luhnCheck',
				success: function(strData){
					if (strData == "ok") {
						saveDetails("payment");
						changeFrame(5);
						updateCC()
						updateDelCharge();
					}
					else {
						$("#ccNumber").after("<div class='errorTxt'>The Card Number is Invalid</div>");
					}
				}
			});
		
		}
	}
	
	function updateCC()
	{
		var strReturn="";
			strReturn +="Name on Card: "+ $("#ccName").fieldValue()+"<br/> ";
			strReturn +="Card Type: "+ $("#ccType").fieldValue()+"<br/>";
				var strCCnum = $("#ccNumber").val()
				var intCCnumLen = strCCnum.length;
					strCCnum = strCCnum.substring((intCCnumLen-4),intCCnumLen)
			strReturn +="Card Number: xxxx-"+strCCnum+"<br/>";
			
			$("#paymentSub").html(strReturn);
			$("#paymentSub").css("padding","10px")
			$("#paymentChange").html("| <a href='#' class='subLinks' onclick='changeFrame(4)'>change</a>")
	}
	
	
	function registerShipInfo()
	{
		saveDetails("shippingInfo");
		changeFrame(4)
	}
	
	
	
	function checkMsgLimit()
	{
		var intMsgLen = $("#giftMessage").val().length;
		var intChars = intMsgLimit - intMsgLen;
		var strMsg =$("#giftMessage").val();
		$("#giftMessage").val(strMsg.substring(0,intMsgLimit-1))
		$("#charsLeft").html(intChars);
	}
	
	
	function processOrder()
	{
		$("#paymentResult").html("<div id='processTry' class='processTxt'>Processing Order </div><div id='poImg' class='loadImg'></div>");
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=processOrder",
			dataType:"json",
			success:function(strData,status){
				if(strData['fail']==1)
				{
					$("#processTry").html("Process Failed! ")
					$("#poImg").replaceWith("<div class='cross'></div>")
					$("#paymentResult").append("<input type=\"button\" class=\"processOrderBtn ui-corner-all\" style=\"float:left\" value=\"Please Click Here \r\n To Check Your Details\" onClick=\"recheck()\">");
				}
				else if(strData['fail']==0)
				{
					$("#poImg").replaceWith("<div class='tick'></div>")
					$("#paymentResult").append("<br/><br/><br/><div class='processTxt'>Sending Confirmation Email </div><div class='loadImg'></div>");
					
					window.location="confirm2.php?orderId="+strData['OrderId'];
					
					/*$("#checkoutWrapper").load("order_confirmed_new.php?orderId="+strData['OrderId'],function(){
						$('#paymentDLG').dialog("destroy");
						$("#checkoutWrapper").width(600);
						
						
						
					});*/

				}
			}
		})	
		
	}
	
	function processPayment()
	{
		$("#paymentDLG").html("<div class='processTxt'>Processing Payment ... Please Wait </div><div id='ppImg' class='loadImg'></div>");
		$('#paymentDLG').dialog({// open dialog 
							modal:true,
							
							width:300,
							title:'Processing Payment',
							close:function(){
								$(this).dialog('destroy');
							},
							open:function(){
								$("#paymentDLG").load("paymentLoad.php",{auth:"send_auth"});
							}
								
				});
	}
	
	function amendCard()
	{
		$('#paymentDLG').dialog("destroy");
		changeFrame(4);
	}
	function recheck()
	{
		$('#paymentDLG').dialog("destroy");
		changeFrame(1);
	}
	
	function checkEmailAddress(strEmail)
	{
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=checkEmail&email="+strEmail,
			success: function(strData){
				if (strData != 0) {
					$("#paymentDLG").html("<div class='processTxt'>Sorry the email address provided is already registered in our system. <br/><br/>Please login to continue or supply another email address</div>");
					$('#paymentDLG').dialog({// open dialog 
						modal: true,
						width: 300,
						title: 'Email address already registered',
						close: function(){
							$(this).dialog('destroy');
							changeFrame(0);
						},
						buttons: {
							'close': function(){
								$(this).dialog('destroy');
								changeFrame(0);
							}
						}
					
					});
					
				}
			}
		});
	}
	
	function updateDelCharge()
	{
		$.ajax({
			url:"ajax_funcs/checkout.php",
			data:"mode=updateDelCharge",
			dataType:"json",
			success: function(strData){
				
				$("#deliveryCharge").html(strData['del']);
				$("#totalPrice").html(strData['total']);
				}
			})
	}
	
	/******************** field validation functions**/
	
	
	function validatePage(strPage)
	{
		$(".errorTxt").remove();
		var intValid =0;
		
		$(".required-entry-"+strPage).each(function(){
			var intId = this.id;
			var strVal = $(this).val();
			
			if($(this).hasClass("validate-text"))
			{				
				if(!validateText(intId,strVal))intValid=1;
			}
			if($(this).hasClass("validate-number"))
			{				
				if(!validateNumber(intId,strVal))intValid=1;
			}
			if($(this).hasClass("validate-any"))
			{				
				if(!validateAny(intId,strVal))intValid=1;
			}
			if($(this).hasClass("validate-password"))
			{				
				if(!validatePassword(intId,strVal))intValid=1;
			}
			if($(this).hasClass("validate-email"))
			{				
				if(!validateEmail(intId,strVal))intValid=1;
			}
		})	
		if(intValid ==1)return false;
		else return true;
		
	}
	
		
	function validateText(intId,strVal)
	{
		var strTest = /^[a-zA-Z\-\s]+$/m
		$("#"+intId).css("border","1px solid #CCCCCC")
		
		if(strVal =="")
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is a required field</div>");
			return false;
		}
		else if(!strTest.test(strVal))
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is Not Valid</div>");
			return false;
		}
		else{return true;}
		
	}
	function validateNumber(intId,strVal)
	{
		var strTest = /^[0-9\s]+$/m
		
		$("#"+intId).css("border","1px solid #CCCCCC")
		
		if(strVal =="")
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is a required field</div>");
			return false;
		}
		else if(!strTest.test(strVal))
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is Not Valid</div>");
			return false;
		}
		else{return true;}
	}
	function validateAny(intId,strVal)
	{
		$("#"+intId).css("border","1px solid #CCCCCC")
		
		if(strVal =="")
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is a required field</div>");
			return false;
		}
		else{return true;}
	}
	function validatePassword(intId,strVal)
	{
		$("#"+intId).css("border","1px solid #CCCCCC")
		$("#"+intId+"R").css("border","1px solid #CCCCCC")
		var strPassR = $("#"+intId+"R").val();
		
		if(strVal =="")
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is a required field</div>");
			return false;
		}
		if(strVal.length <6)
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>Password must be more than 6 Characters</div>");
			return false;
		}
		else if(strVal != strPassR)
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId+"R").css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>Passwords do Not Match</div>");
			return false;
		}
		else{return true;}
	}
	function validateEmail(intId,strVal)
	{
		var strTest = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/
		$("#"+intId).css("border","1px solid #CCCCCC")
		
		if(strVal =="")
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is a required field</div>");
			return false;
		}
		else if(!strTest.test(strVal))
		{
			$("#"+intId).css("border","1px dashed red")
			$("#"+intId).after("<div class='errorTxt'>This is Not a valid Email Address</div>");
			return false;
		}
		else{return true;}
	}
