
function buyProduct(strCode, strQuantityId, strDescription, strTier5Code, strLocatorId ,collect , productType, psVariationId)
{
	var objDiv;
	var objLocator;
	var objSelect;
	var iDivWidth, iDivHeight, iQuantity;
	var objAjax = new CAjax();
	var strFriendlyUrl, iLookup;
	var strHash = "";
	var strUKPostcode = "";
	
	if(collect == '2'){
		var strUKPostcode = document.getElementById('UKPostcode').value;
	}
	
	if(productType == null){         // pitlane section specific changes
		productType = 'carparts';
	}

	if(psVariationId == null){      // pitlane section specific changes
		psVariationId = '0';
	}
	
	if(productType == 'performance'){   // pitlane section specific changes
		strCode = strCode;
		var objOptions = document.getElementById('varientOptions_'+psVariationId);
		if(objOptions){
			var optionValue = objOptions.value;		
			if(optionValue != 'Select' && optionValue != ''){
				strCode = strCode+'::' + optionValue; 
			}
			/* Added */
			else{
				showDiv('C'+strLocatorId);
				setTimeout("hideDiv(\'C"+strLocatorId+"\')", 2000);
				return false;
			}
			/* End */
		}
	}
	
	objSelect = document.getElementById(strQuantityId);
	objDiv = document.getElementById("basketAdder");
	objLocator = document.getElementById(strLocatorId);
	
	strFriendlyUrl = escape(objSelect.getAttribute("friendlyUrl"));
	iLookup = objSelect.getAttribute("lookup");
	strHash = objSelect.getAttribute("hash");
	strCarHash = objSelect.getAttribute("carhash");
	
	if (strHash == null)
	{
		strHash = "";
	}
	
	if (strCarHash == null)
	{
		strCarHash = "";
	}
	
	iQuantity = objSelect.value;
	
	if(!/[0-9]/.test(iQuantity)){
		alert('Please enter a valid quantity value');
		return false;
	}
	
	iQuantity = Math.round(iQuantity);
	
	if (iQuantity == 0)
	{
		iQuantity = 1;
	}
	
	objSelect.value = iQuantity;

	if (!objDiv)
	{
		objDiv = document.createElement("div");
		objDiv.id = "basketAdder";
		document.body.appendChild(objDiv);
	}

	strCarDetails = "";
	strCarHash1 ='';
	
	if (iLookup == "1")
	{
		var strMake, strModel, strSubModel, strEngine, strYear, strVrm;
		
		if(strCarHash==""){
			strMake = getFormValue("page_make");
			strModel = getFormValue("page_model"); 
			strSubModel = getFormValue("page_subModel"); 
			strEngine = getFormValue("page_engine");
			strYear = getFormValue("page_year"); 
			strVrm = getFormValue("page_vrm");
		}else{										// recently viewed products specific changes //
			strCarHashEncoded = strCarHash;
			arrCHashEncoded = strCarHashEncoded.split('$$$');
			strCarHash1 = arrCHashEncoded[0];
			strVrm = arrCHashEncoded[1];
			
			strCarHashDecoded = decodeURIComponent(strCarHash.replace(/\+/g, '%20'))
			arrCarHashExp1 = strCarHashDecoded.split('$$$');
			arrCarHashExp = arrCarHashExp1[0].split('/');
			arrCarHashExp = arrCarHashExp[1].split('_');				
			strMake = arrCarHashExp[0];
			strModel = arrCarHashExp[1]; 
			
			if(arrCarHashExp.length>4){
				strSubModel = arrCarHashExp[2]; 
				strEngine = arrCarHashExp[3];
				strYear = arrCarHashExp[4]; 
			}else{
				strSubModel = ""; 
				strEngine = arrCarHashExp[2];
				strYear = arrCarHashExp[3]; 
			}
		}
		
		strCarDetails = "&make=" + escape(strMake) + "&model=" + escape(strModel) + "&subModel=" + escape(strSubModel) + "&engine=" + escape(strEngine) + "&year=" + escape(strYear) + "&vrm=" + escape(strVrm);
	}
	
	if (objAjax.open("/dynamic/basketAdder.php?code=" + strCode + "&quantity=" + iQuantity + "&description=" + escape(strDescription) + "&url=" + strFriendlyUrl + "&tier5Code=" + strTier5Code + "&lookup=" + iLookup + "&hash=" + strHash + strCarDetails + "&productType=" + productType + "&psVariationId=" + psVariationId +"&strCarHash=" + strCarHash1+"&UKPostcode=" +strUKPostcode+"&collect=" +collect, true, true))	
	/*if (objAjax.open("/dynamic/basketAdder.php?code=" + strCode + "&quantity=" + iQuantity + "&description=" + escape(strDescription) + "&url=" + strFriendlyUrl + "&tier5Code=" + strTier5Code + "&lookup=" + iLookup + "&hash=" + strHash + strCarDetails + "&productType=" + productType + "&psVariationId=" + psVariationId +"&strCarHash=" + strCarHash1, true, true))*/
	{
		strArr = objAjax.getResponse().split(":");
		if(strArr[0] == "QE"){
			errDiv = document.getElementById("quantityError");
			errDiv.innerHTML = "<div class='errTxt'>"+strArr[1]+"</div>";
			showDiv("basketError");
			setTimeout("hideDiv('basketError')", 3000);
		}
		else{
			objDiv.innerHTML = objAjax.getResponse();
			showDiv(strLocatorId);
			setTimeout("hideDiv(\'"+strLocatorId+"\')", 2000);
			displayQuickBasket();
		}
	} 
	
	/*
	objDiv.style.display = "block";
	
	iDivWidth = findRight(objDiv) - findLeft(objDiv);
	iDivHeight = findBottom(objDiv) - findTop(objDiv);
	
	objDiv.style.top = findTop(objLocator) - iDivHeight/2;
	objDiv.style.left = findRight(objLocator);
	
	setOpacity("basketAdder", 100);	
	objDiv.setAttribute("opacity", 300);
	setTimeout("fadeFrom('basketAdder')", 2000);
	*/		

}


function updateSalesTotalPrice()
{
	var objTotalPrice = document.getElementById("salesTotalPrice");
	var dPrice = parseFloat(getFormValue("salesPrice"));
	var iQuantity = parseInt(getFormValue("salesQuantity"));
	var dTotalPrice = 0;
	
	if (dPrice > 0 && iQuantity > 0)
	{
			objTotalPrice.innerHTML = currencyFormatted(dPrice * iQuantity);
	}
}

function manualAddToBasket()
{
	var dPrice = parseFloat(getFormValue("salesPrice"));
	var strCode = getFormValue("salesProdCode");
	var iQuantity = parseInt(getFormValue("salesQuantity"));
	var strDescription = getFormValue("salesDescription");
	
	if (iQuantity <= 0 || isNaN(iQuantity))
	{
		alert("Please enter a quantity first");
		return false;
	}

	if (strCode == "")
	{
		alert("Please enter a product code first");
		return false;
	}

	if (strDescription == "")
	{
		alert("Please enter a description first");
		return false;
	}
	
	if (dPrice <= 0 || isNaN(dPrice))
	{
		alert("Please enter a price first");
		return false;
	}
	
	var objAjax = new CAjax();
	
	if (objAjax.open("/dynamic/manualAdd.php?code=" + escape(strCode) + "&quantity=" + iQuantity + "&price=" + dPrice + "&description=" + strDescription, true)) 
	{
		var strResponse = objAjax.getResponse();
		
		var objDiv = document.getElementById("basket");
		objDiv.innerHTML = strResponse;
		
		displayQuickBasket();
		
		objDiv = document.getElementById("continueCheckout");
        objDiv.style.display = "block";
	}
}

function validateProduct(objInput)
{
	var strCode = objInput.value;
	var objPrice = document.getElementById("salesPrice");
	var objTotalPrice = document.getElementById("salesTotalPrice");
	var objDescription = document.getElementById("salesDescription");
	var objQuantity = document.getElementById("salesQuantity");
	
	if (strCode != "")
	{
		var objAjax = new CAjax();
	
		if (objAjax.open("/dynamic/getProduct.php?part=" + escape(strCode), true)) 
		{
			var strResponse = objAjax.getResponse();

			if (strResponse == "")
			{
			  alert("Part could not be found");
			  objPrice.readOnly = false;
			  objDescription.readOnly = false;
			}
			else
			{
				var arrParts = strResponse.split("|");

			  objPrice.value = arrParts[0];
			  objTotalPrice.innerHTML = currencyFormatted(arrParts[0] * objQuantity.value);
			  objDescription.value = arrParts[1];
			  objPrice.readOnly = true;
			  objDescription.readOnly = true;
			  
			  var objImg = document.getElementById("salesThumb");

			  objImg.style.display = "block";
			  objImg.src = objImg.getAttribute("stubpath") + arrParts[2];
			}
		}
	}
	
}


function updateDeliveryAmounts(objCheck)
{
	var moneyOff = 0;
	moneyOff = document.getElementById("moneyOff").value;
	var strDescription = objCheck.getAttribute("description");
	var dCharge = parseFloat(objCheck.getAttribute("charge"));
	
	var objDeliveryAmount = document.getElementById("basketDeliveryAmount");
	var objDeliveryAmountDesc = document.getElementById("basketDeliveryAmountDesc");
	var objDescription = document.getElementById("basketDeliveryDescription");
	var objTotalAmount = document.getElementById("basketTotalAmount");
	var dBasketPrice = parseFloat(objTotalAmount.getAttribute("basketPrice"));	
	dBasketPrice = dBasketPrice - moneyOff;
	
	if (dCharge == 0)
	{
		objDeliveryAmount.innerHTML = "FREE";
		objDeliveryAmountDesc.innerHTML = "(" + strDescription + ")";
	}
	else
	{
		objDeliveryAmount.innerHTML = "&pound;" + currencyFormatted(dCharge);
		objDeliveryAmountDesc.innerHTML = "(" + strDescription + ")";
	}
	objTotalAmount.innerHTML = "Total cost : &pound;" + currencyFormatted(dBasketPrice + dCharge);
}

function updateHDNLDeliveryAmounts(objCheck)
{
	var moneyOff = 0;
	moneyOff = document.getElementById("moneyOff").value;
	var strDescription = objCheck.getAttribute("description");
	var dCharge = parseFloat(objCheck.getAttribute("charge"));
	
	// setting up hidden fields values
	document.getElementById("iCarriageCost").value = dCharge;
	document.getElementById("carriageOptionName").value = strDescription;
	document.getElementById("carriageDeliveryDate").value = objCheck.getAttribute("carriageDeliveryDate");
	
	var objDeliveryAmount = document.getElementById("basketDeliveryAmount");
	var objTotalAmount = document.getElementById("basketTotalAmount");
	var dBasketPrice = parseFloat(objTotalAmount.getAttribute("basketPrice")); 
	
	dBasketPrice = dBasketPrice - moneyOff;
	
	if (dCharge == 0)
	{
		objDeliveryAmount.innerHTML = "FREE" + "<br/><span>(" + strDescription + ")</span>";
	}
	else
	{
		objDeliveryAmount.innerHTML = "&pound;" + currencyFormatted(dCharge) + "<br/><span>(" + strDescription + ")</span>";
	}
	objTotalAmount.innerHTML = "Total cost : &pound;" + currencyFormatted(dBasketPrice + dCharge);
}

function findOrder()
{
	var objForm = document.getElementById("verifyForm");

	if (validateForm(objForm))
	{
		objForm.submit();
	}
}

function decreaseQuantity(strId)
{
	var objInput = document.getElementById(strId);
	var iQuantity = 0;
	
	iQuantity = parseInt(objInput.value);
	
	if (iQuantity > 0)
	{
		iQuantity -= 1;
	}
	else
	{
		iQuantity = 0;
	}
	
	objInput.value = iQuantity;
}

function increaseQuantity(strId)
{
	var objInput = document.getElementById(strId);
	var iQuantity = 0;
	
	iQuantity = parseInt(objInput.value);
	
	if (iQuantity > 0)
	{
		if (iQuantity < 99)
		{
			iQuantity += 1;
		}
	}
	else
	{
		iQuantity = 1;
	}
	
	objInput.value = iQuantity;
}

function blurQuantity(objInput)
{
	var iQuantity = parseInt(objInput.value);
	
	if (!iQuantity)
	{
		iQuantity = 0;
	}
	
	iQuantity = Math.abs(iQuantity);
	objInput.value = iQuantity;
}

function showLoginPanel()
{
	var objDiv = document.getElementById("loginPanel");
	
	document.getElementById("accountLogin").checked = true;
	ExpandDiv("loginPanel");
}

function updateBasket()
{
	var objBasketDoc = xml_createXmlDom();
	var objBasketNode, objProductNode;
	var objInputs, objAjax, objDiv;
	
	objDiv = document.getElementById("basket");
	objBasketDoc.loadXML("<basket/>");
	
	objBasketNode = objBasketDoc.selectSingleNode("/basket");

	var objInput = document.getElementById("promotionalCode");
	var objPromoCheck = document.getElementById("promotionCheck");
	if (objPromoCheck.value=='true')
	{
		if (objInput.getAttribute("valid") == "true")
		{
			xml_createNode(objBasketNode, "promoCode", objInput.value);
		}
	}
	
	objInputs = document.getElementsByTagName("input");	
	
	for (var i = 0; i < objInputs.length; i++)
	{
		strInputId = objInputs[i].getAttribute("id");
	
		if (strInputId && strInputId.substr(0,2) == "Q_")
		{
			strProductCode = objInputs[i].getAttribute("productCode");
			
			objProductNode = xml_createNode(objBasketNode, "product");
			
			xml_createNode(objProductNode, "productCode", strProductCode);
			objProductNode.setAttribute("quantity", objInputs[i].value);
			objProductNode.setAttribute("carHash", objInputs[i].getAttribute("carHash"));
			objProductNode.setAttribute("preqty", objInputs[i].getAttribute("preqty"));
			objProductNode.setAttribute("hash", objInputs[i].getAttribute("hash"));
		}
	}
	
	objAjax = new CAjax();
	
	if (objAjax.open("/dynamic/basketUpdate.php", false))
	{		
		objAjax.send(objBasketDoc.xml);
		strArr = objAjax.getResponse().split(":");
		if(strArr[0] == "<span>QE"){
			alert(strArr[1]);
			objDiv.innerHTML = objAjax.getResponse();
			$('#basket span:first').remove();
		} else {		
			objDiv.innerHTML = objAjax.getResponse();	
		}	
	}
	updateRC();// Deepak Soni : For sustaining RC status
	var iItems = parseInt(getFormValue("numberOfItems"));
	var objDiv = document.getElementById("continueCheckout");
	
	if (iItems > 0) 
	{
		//objDiv.style.display = "block";
		//Updating basket status in basket title Blue Bar
		var objSubTotalValue = document.getElementById("basketSubTotalPrc").innerHTML;
		document.getElementById('basketTotalItems').innerHTML = iItems;
		document.getElementById('basketSubTotalValue').innerHTML = objSubTotalValue;
		//$('#branch1RC').html('');//////change for the single click 
	}
	else 
	{
		//objDiv.style.display = "none";
		//Updating basket status in basket title Blue Bar
		document.getElementById('basketTotalItems').innerHTML = '0';
		document.getElementById('basketSubTotalValue').innerHTML = '0.00';
		
		/** Deepak Soni*/
		$("#basketLoad").hide();
		$("#basketContainer").css({ opacity: 1 });
	}
	_displayQuickBasket();
	$("#branch1RC").bind('click',function(){
		if($(".ProdRCmodify").hasClass("ProdRCmodify")){
			findMyNearestLoc();
		}else{
			//$(this).hide();
			return false;
		}
	});
	$(".branch1rcpop").bind('click',function(){
		if($(".ProdRCmodify").hasClass("ProdRCmodify")){
			findMyNearestLoc();
		}else{
			//$(this).hide();
			return false;
		}
	});
}

function displayQuickBasket()
{
	startLoading("_displayQuickBasket()");
}

function _displayQuickBasket()
{
	var objQuickBasket = document.getElementById("quickBasketInner");
	var objAjax = new CAjax();
	
	if (objQuickBasket)
	{
		if (objAjax.open("/dynamic/quickBasket.php", true))
		{
			objQuickBasket.innerHTML = objAjax.getResponse();
		}
	}
	
	endLoading();
}

function saveAddressesAndContinue()
{
	var objCheck = document.getElementById("deliveryDifferent");
	var objForm = document.getElementById("customerDetails");
	var objButton = document.getElementById("continueSummary");
	var objPleaseWait = document.getElementById("pleaseWait");
	var bOk = false;
	
	if (validateForm(objForm, "formAnchor"))
	{
		bOk = true;
		if (!document.getElementById("tos").checked)
		{
		  document.getElementById("d_tos").className = "error";
		  bOk = false;
		}else{
			 document.getElementById("d_tos").className = "field";
		}
		

		if (objCheck && !objCheck.checked)
		{
			if (!validateFormElement("delivery_address1") ||
				  !validateFormElement("delivery_town") ||
				  !validateFormElement("delivery_county") ||
				  !validateFormElement("delivery_postcode") || 
				  !validateFormElement("delivery_recipient"))
		  {
				bOk = false;
		  }
		}
		
		/*if (bOk && !document.getElementById("tos").checked)
		{
		  promptForTos();
		  bOk = false;
		}
		
		if (!bOk)
		{
			return false;
		}*/
	}
	else
	{
		smoothScroll("formAnchor");
		return false;
	}
	
	if(!validateUKPostcodeChkout('postcode')){
		var bOk = false;
		document.getElementById("d_postcode").className = "error";
		return false;
	};
	
	if(getFormValue('countBatteries') > 0 && getFormValue('otherCountry') != '777'){
		var bOk = false;
		popupDialog("/styles/ecp/static/why-need-postcode-checkout.html",null,true);
		formAnchorDiv = 'otherCountry';
		return false;
	}
	
	if (bOk)
	{
		objButton.style.display = "none";
		objPleaseWait.style.display = "block";

		objForm.submit();
	}
}

function createCustomer()
{
	var objPassword, objPassword2, strPassword, strPassword2;
	var objEmail, objEmail2, strEmail, strEmail2;
	var bError = false;
	var formAnchorDiv = 'formAnchor';
	var objForm = document.getElementById("customerDetails");
	var objButton = document.getElementById("continueSummary");
	var objPleaseWait = document.getElementById("pleaseWait");
	var objSpan = document.getElementById("e_password");
	var objSpan2 = document.getElementById("e_password2");
	var objEmailSpan = document.getElementById("e_email");
	var objEmailSpan2 = document.getElementById("e_email2");
	var objEmailToCheck = document.getElementById("email");
	var objCheck = document.getElementById("deliveryDifferent");
		
	objEmail = document.getElementById("d_email");
	objEmail2 = document.getElementById("d_email2");
	
	if (!document.getElementById("tos").checked)
	{
		document.getElementById("d_tos").className = "error";
		bError = true;
	   formAnchorDiv = 'tos';
	}else{
		 document.getElementById("d_tos").className = "field";
	}
	if (validateForm(objForm, "formAnchor"))
	{
		
		
		objPassword = document.getElementById("d_password");
		objPassword2 = document.getElementById("d_password2");
		
		strPassword = getFormValue("password");
		strPassword2 = getFormValue("password2");
	
		objPassword.className = "field";
		objPassword2.className = "field";
		
		if (strPassword!="")
		{	
			if (strPassword.length < 8)
			{
				objPassword.className = "error";
				objSpan.innerHTML = "Must be at least 8 digits";
				formAnchorDiv = 'password';
				bError = true;				
			}
			
			if(strPassword != strPassword2)
			{
				objPassword.className = "error";
				objPassword2.className = "error";
				objSpan.innerHTML = "Doesn't match";
				objSpan2.innerHTML = "Doesn't match";
				formAnchorDiv = 'password';
				bError = true;
			}
		}

		if (objCheck && !objCheck.checked)
		{
			if (!validateFormElement("delivery_address1") ||
				  !validateFormElement("delivery_town") ||
				  !validateFormElement("delivery_county") ||
				  !validateFormElement("delivery_postcode") || 
				  !validateFormElement("delivery_recipient"))
		  {
				formAnchorDiv = 'deliveryDifferent';
				bError = true;
		  }
		}
		
		
		strEmail = getFormValue("email");
		strEmail2 = getFormValue("email2");
		
        objEmail.className = "field";
		objEmail2.className = "field";

		checkEmailAddress(objEmailToCheck);
	
		if (objEmailToCheck.getAttribute("valid") != "true")
		{
			objEmail.className = "error";
			objPs = objEmailSpan.getElementsByTagName("strong");
			objPs[0].innerHTML = "Invalid email address";
			formAnchorDiv = 'email';
			bError = true;
		}
		
		if(!validateUKPostcodeChkout('postcode')){
			var bError = true;
			document.getElementById("d_postcode").className = "error";
			formAnchorDiv = 'postcode';
		};

		if(strEmail != strEmail2)
			{
				//objEmail.className = "error";
				objEmail2.className = "error";
				//objEmailSpan.innerHTML = "Doesn't match";
				objPs = objEmailSpan2.getElementsByTagName("strong");
				objPs[0].innerHTML = "Doesn't match email address";
				formAnchorDiv = 'email';
				bError = true;
			}
			
			if(getFormValue('countBatteries') > 0 && getFormValue('otherCountry') != '777'){
				bError = true;
				popupDialog("/styles/ecp/static/why-need-postcode-checkout.html",null,true);
				formAnchorDiv = 'otherCountry';
			}

			if (!bError)
			{
			  objButton.style.display = "none";
			  objPleaseWait.style.display = "block";

			  objForm.submit();
			}
			else
			{
			  smoothScroll("formAnchor");
			}
	}
}

function changeCardType(objSelect)
{
	var objDiv = document.getElementById("d_issueNumber");
	var objStartDateDiv = document.getElementById("d_startDate");

	if (objSelect.value == "MAESTRO_ISS" || objSelect.value == "SOLO_ISS")
	{
	// Show issue number and hide start date
		objDiv.style.display = "block";		
		objStartDateDiv.style.display = "none";		
	}
	else
	{
	// Hide issue number and show start date
		objDiv.style.display = "none";		
		objStartDateDiv.style.display = "block";
	}
}

function placeOrder(){
	
	var objForm = document.getElementById("cardDetails");
	var objButton = document.getElementById("placeOrder");
	var objPleaseWait = document.getElementById("pleaseWait");	
	var objSelect = document.getElementById("cardType");	
	var objIssue = document.getElementById("issueNumber");
	var objSecurityCode = document.getElementById("securityCode");
	var objDebugMode = document.getElementById("debug");
	
	var objDiv;
	
	var iStartMonth = getFormValue("startDateMonth");
	var iStartYear = getFormValue("startDateYear");
	
	var iEndMonth = getFormValue("expiryDateMonth");
	var iEndYear = getFormValue("expiryDateYear");
	
	var objStartDate = new Date("20" + iStartYear, iStartMonth - 1, 1);
	var objEndDate = new Date("20" + iEndYear, iEndMonth, 1);
	var objCurrentDate = new Date();
	
	var objAnchor = document.getElementById("formAnchor");
	
	if(document.getElementById("cardNumber").value==''){
		objPs = document.getElementById("d_cardNumber").getElementsByTagName("strong");
		objPs[0].innerHTML = "Please complete";
	}
	if (validateForm(objForm, "formAnchor"))
	{
		var objCardNo = document.getElementById("cardNumber");
		
		var strCard = objCardNo.value;
		var bError = false;
	    
	    if ((objSelect.value == "MAESTRO_ISS" && objIssue.value == "") ||
		    (objSelect.value == "SOLO_ISS" && objIssue.value == ""))
		{
			bError = true;
			objDiv = document.getElementById("d_issueNumber");
			objDiv.className = "error";
		}
			
//    	if (!strCard.isValidCardNumber())
//		{
//			bError = true;
//			objDiv = document.getElementById("d_cardNumber");
//			objDiv.className = "error";
//	    }

   	    if (objDebugMode.value != "true" && strCard == "4444333322221111")
	    {
	        bError = true;
	        objDiv = document.getElementById("d_cardNumber");
			objDiv.className = "error";
			
	    } else {    	
   	        if (!checkCreditCard(strCard, objSelect.value))
	        {
			        bError = true;
			        objDiv = document.getElementById("d_cardNumber");
					objPs = document.getElementById("d_cardNumber").getElementsByTagName("strong");
			        objDiv.className = "error";
					objPs[0].innerHTML = "Please enter valid card number";
            }
        }
	  
        if (objSecurityCode.value.length < 3)
        {
    	    bError = true;
	        objDiv = document.getElementById("d_securityCode");
		    objDiv.className = "error";
	    }
	  
        if  (objStartDate > objCurrentDate)
		{
			bError = true;
			objDiv = document.getElementById("d_startDate");
			objDiv.className = "error";
		} else {
			objDiv = document.getElementById("d_startDate");
			objDiv.className = "field";
		}
	
		if  (objEndDate < objCurrentDate)
		{
			bError = true;
			objDiv = document.getElementById("d_expiryDate");
			objDiv.className = "error";
		} else {
			objDiv = document.getElementById("d_expiryDate");
			objDiv.className = "field";
		}
		
        if (!bError)
	    {
			objButton.style.display = "none";
			objPleaseWait.style.display = "block";
			
			popupDialog("/styles/ecp/static/placing-order.html",null,true);
			setTimeout("_placeOrder()", 1000);
	    } else {
			smoothScroll("formAnchor");
	    }
	}
}

function _placeOrder()
{
	var objForm = document.getElementById("cardDetails");
	
	objForm.submit();
}

function yourDetailsFindAddress(bDeliveryAddress)
{
	var strPostcode; 
	var objDiv;
	var objResultHolder;
	var objAjax;
	var strDelivery;
	
	if (bDeliveryAddress)
	{
		strPostcode = getFormValue("findPostcodeDelivery"); 
		objDiv = document.getElementById("d_findPostcodeDelivery");
		objResultHolder = document.getElementById("finderResultsDelivery");
		strDelivery = "true";
	}
	else
	{
		strPostcode = getFormValue("findPostcode"); 
		objDiv = document.getElementById("d_findPostcode");
		objResultHolder = document.getElementById("finderResults");
		strDelivery = "false";
	}
	
	var strPCode = strPostcode.replace(/\s/g,'');
		
	if(strPostcode == ""){
		objDiv.className = "error";
	}else if(strPCode.length < 4){
		objDiv.className = "error";
	}else if(getFormValue("countBatteries") > 0 && !validateUKPostcodeChkout("findPostcode")){
		objDiv.className = "field";
	}else{
		objDiv.className = "field";
		
		objAjax = new CAjax();

		if (objAjax.open("/dynamic/findAddress.php?postcode=" + strPostcode + "&delivery=" + strDelivery, true))
		{
			objResultHolder.innerHTML = objAjax.getResponse();
			//objResultHolder.style.display = "block";
			
			if (bDeliveryAddress)
			{
				ExpandDiv("finderResultsDelivery");
			}
			else
			{
				ExpandDiv("finderResults");
			}
		}
		
	}
}

function changeAddress(objSelect, strPrefix, strProvider)
{
	var strId = strPrefix + objSelect.value;
	var objOption = document.getElementById(strId);
	var objButton = document.getElementById("updateButton");
	var objDeleteButton = document.getElementById("deleteButton");
	
	if (strPrefix == "undefined" || strPrefix == undefined)
	{
		strPrefix = "";
	}
	
	var objAddress1 = document.getElementById(strPrefix + "address1");
	var objAddress2 = document.getElementById(strPrefix + "address2");
	var objAddress3 = document.getElementById(strPrefix + "town");
	var objAddress4 = document.getElementById(strPrefix + "county");
	var objPostcode = document.getElementById(strPrefix + "postcode");

	var objInternalId = document.getElementById(strPrefix + "internalId");
	var objContactName = document.getElementById(strPrefix + "contactName");
	
	if (objInternalId)
	{
		objInternalId.value = objOption.getAttribute("internalId");
		
	}

	if (objContactName)
	{
		objContactName.value = objOption.getAttribute("contactName");
	}

	if (strProvider == "AFD")
	{
	
	  var strPostcode = objOption.getAttribute("postcode");
	    
        objAjax = new CAjax();
		if (objAjax.open("/dynamic/findAddress.php?mode=AFDLookup&postcode=" + strPostcode, true))
		{	
			var strResponse = objAjax.getResponse();
			var strPos = strResponse.indexOf('|','6');
			if(strPos != '-1'){
				var arrAddress = strResponse.split("|");
				if(trim(arrAddress[0])==''){
					objAddress1.value = arrAddress[1];
					objAddress2.value = '';
				}else{
					objAddress1.value = arrAddress[0];
					objAddress2.value = arrAddress[1];
				}
				objAddress3.value = arrAddress[3];
				objAddress4.value = arrAddress[4];
				objPostcode.value = arrAddress[5];
			}else{
				objAddress1.value = "";
				objAddress2.value = "";
				objAddress3.value = "";
				objAddress4.value = "";
				objPostcode.value = "";				
			}
	    }
	} else{ 	
	    if (objOption.getAttribute("internalId") == "0")
	    {
		    if (objButton)
		    {
			    objButton.style.display = "none";
			    objDeleteButton.style.display = "none";
		    }
	    }
	    else
	    {
		    if (objButton)
		    {
			    objButton.style.display = "block";
    			
			    if ( objOption.getAttribute("internalId") == "-1")
			    {
				    objDeleteButton.style.display = "none";
			    }
			    else
			    {
				    objDeleteButton.style.display = "block";
			    }
		    }
	    }
    	
	    objAddress1.value = objOption.getAttribute("address1");
	    objAddress2.value = objOption.getAttribute("address2");
	    objAddress3.value = objOption.getAttribute("town");
	    objAddress4.value = objOption.getAttribute("county");
	    objPostcode.value = objOption.getAttribute("postcode");
    }	
}

function toggleDeliveryAddress(objCheck)
{

	if (objCheck.checked)
	{
		CollapseDiv("deliveryAddressPanel");
	}
	else
	{
		ExpandDiv("deliveryAddressPanel");
	}

}


function showPasswords()
{
	var objCheck = document.getElementById("accountYes");
	
	objCheck.checked = true;
	ExpandDiv("passwords");
}

function promptForTos()
{
	var objDiv = document.getElementById("promptForTos");
	var objLocator = document.getElementById("tosPromptLocator");
	
	if (!objDiv)
	{
		objDiv = document.createElement("div");
		objDiv.id = "promptForTos";
		document.body.appendChild(objDiv);
	}
	
	setOpacity("promptForTos", 100);
	objDiv.style.display = "block";
	
	iDivWidth = findRight(objDiv) - findLeft(objDiv);
	iDivHeight = findBottom(objDiv) - findTop(objDiv);
	
	objDiv.style.top = findTop(objLocator) - iDivHeight/2;
	objDiv.style.left = findRight(objLocator);
	
	objDiv.setAttribute("opacity", 300);
	setTimeout("fadeFrom('promptForTos')", 2000);
}

function continueToPayment() 
{
  var objForm = document.getElementById("deliveryAddress");
  //var objButton = document.getElementById("continuePayment");
  //var objPleaseWait = document.getElementById("pleaseWait");

  if (validateForm(objForm)) 
  {
    //objButton.style.display = "none";
    //objPleaseWait.style.display = "block";

    objForm.submit();
  }
}

function selectBillingCountry(objSelect)
{
    var objOption = document.getElementById("country_" + objSelect.value);
    
    var iInternational = -1;
     
    if (objOption)
    {
         iInternational = parseInt(objOption.getAttribute("international"));
    }
    
    if (iInternational == 0)
    {
        ExpandDiv("postcodeFinder");
    }
    else
    {
        CollapseDiv("postcodeFinder");
    }
   
}

function togglePromotionCheck(objInput)
{
  var objRow = document.getElementById("promotionHolder");
  if (objInput.value=='false')
  {
	updateBasket();
  	/*if (getFormValue("promoError") == "")
    {
		updateBasket();
    }else{
		updateBasket();
	} */
  }
}

function findPromotionalCode()
{
	var strCode = getFormValue("promotionalCode");
	var objAjax = new CAjax();
	var objInput = document.getElementById("promotionalCode");
	
	if(objInput.value !=""){ // process promo code only if promo code value is not blank
		if (objAjax.open("/dynamic/checkPromoCode.php?code=" + strCode, true)){
			var strResponse = objAjax.getResponse();
			if (strResponse != "true"){
				//popupDialog("/styles/ecp/static/invalidPromotion.html");
				showOverlay('InvalidPromoDivA');
				objInput.setAttribute("valid", "false");
			}
			else{
				objInput.setAttribute("valid", "true");
			}
		}
	}else{
		document.getElementById("promotionCheck").value = false;
		updateBasket();
	}
}

function claimPromotionalCode()
{
	if(getFormValue("promotionalCode") == ""){//if promo code box is blank , remove the promocode from basket xml.
		document.getElementById("promotionCheck").value=false;
		togglePromotionCheck(document.getElementById("promotionCheck"));
	}else{
		var objInput = document.getElementById("promotionalCode");
		if(objInput.getAttribute("valid") == "true"){
			document.getElementById("promotionCheck").value = true;
			updateBasket();
		}else{
			showOverlay('InvalidPromoDivA');
			//popupDialog("/styles/ecp/static/invalidPromotion.html");
		}
	}
}

function validateBasket(strUrl)
{
	var strError = getFormValue("promoError");
	var strErrorExc = getFormValue("promoErrorExclude");
	var strErrorInc = getFormValue("promoErrorInclude");
	
	if(strError == "" && strErrorExc == ""  && strErrorInc == ""){
		document.location.href = strUrl;
	}else if(strError == "" && (strErrorExc != "" || strErrorInc != "")){
		document.location.href = strUrl;
	}else{
		showOverlay('InvalidPromoDiv');
		//popupDialog("/styles/ecp/static/promotionReq.html");
	}
}

function removeFromBasket(QtyBoxId){
	document.getElementById(QtyBoxId).value=0;
	updateBasket();		
}

function redirectPage(urlId){
	var strUrl = document.getElementById(urlId).value;
	document.location.href = strUrl;
}

function updatetrackSession(){
	var objAjax = new CAjax();
	if (objAjax.open("/dynamic/updateTrackSession.php?mode=true", true)){
		var strResponse = objAjax.getResponse();
	}
}

function validateUKPostcodeFormat(objInput){
	var strPCode = objInput.value.replace(/\s/g,'');
	if(strPCode.length < 4){
		alert('Please enter a valid UK Postcode');
		//objInput.focus();
		objInput.setAttribute("valid", "false");
		return false;
	}else{
		return true;
	}
}

function validateUKPostcode(){
	var objAjax = new CAjax();
	var objInput = document.getElementById("UKPostcode");
	if(validateUKPostcodeFormat(objInput)){
		if(objInput.value !=""){ // process postcode validation only if postcode value is not blank
			if (objAjax.open("/dynamic/validateUKPostCode.php?strPostcode=" + objInput.value, true)){
				var strResponse = objAjax.getResponse();
				if (strResponse != "true"){
					objInput.setAttribute("valid", "false");
					popupDialog("/styles/ecp/static/why-cant-purchase-battery.html",null,true);
				}else{
					objInput.setAttribute("valid", "true");
				}
			}
		}else{
			objInput.setAttribute("valid", "false");	
			popupDialog("/styles/ecp/static/why-cant-purchase-battery.html",null,true);
		}
	}
}

function validateUKPostcodeChkout(objId){	
	var objAjax = new CAjax();
	var objInput1 = document.getElementById("countBatteries");
	if(objInput1.value > 0){
		var objInput = document.getElementById(objId);
		if(validateUKPostcodeFormat(objInput)){ // process postcode validation only if postcode value is not blank
			if (objAjax.open("/dynamic/validateUKPostCode.php?strPostcode=" + objInput.value, true)){
				var strResponse = objAjax.getResponse();
				if (strResponse != "true"){
					objInput.setAttribute("valid", "false");
					popupDialog("/styles/ecp/static/why-need-postcode-checkout.html",null,true);
					return false;
				}else{
					objInput.setAttribute("valid", "true");
					return true;
				}
			}
		}
	}else{
		return true;
	}
}

function buyProductBatt(strCode, strQuantityId, strDescription, strTier5Code, strLocatorId , collect, productType, psVariationId){
	var objInput = document.getElementById("UKPostcode");
	if(validateUKPostcodeFormat(objInput)){
		if(objInput.getAttribute("valid") == 'true'){
			buyProduct(strCode, strQuantityId, strDescription, strTier5Code, strLocatorId , collect, productType, psVariationId);
			return false;
		}else{
			popupDialog("/styles/ecp/static/why-cant-purchase-battery.html",null,true);
		}
	}
}

function autoSelectCountry(){
	var objInput = document.getElementById("countBatteries");
	if(objInput.value > 0){
		var objCountries = document.getElementById("otherCountry");
		objCountries.options[1].selected = true;
		
		selectBillingCountry(objCountries);
		
		var objFindPostcode = document.getElementById("findPostcode");
		objFindPostcode.value = document.getElementById("batteriesPostcode").value;
		yourDetailsFindAddress();
	}	
}

function backTobasket(){
	
	var objAjax = new CAjax();
	var backtoBasket ;
	
	var loggedIn = document.getElementById("userLoggedIn").value;
	var address1 = document.getElementById("address1").value;
	var address2 = document.getElementById("address2").value;
	var town = document.getElementById("town").value;
	var county = document.getElementById("county").value;
	var address5 = "";
	var postcode = document.getElementById("postcode").value;
	
	if(loggedIn == 0 ){
		/* Important : Save user's details before redirecting to basket page " */
		var pwd = document.getElementById("password").value;
		var salutation = document.getElementById("salutation").value;
		var firstName = document.getElementById("firstName").value;
		var secondName = document.getElementById("secondName").value;
		var telephone = document.getElementById("telephone").value;
		var email = document.getElementById("email").value;
		var mobileNo = document.getElementById("mobileNo").value;
		var reg = document.getElementById("reg").value;
		var otherCountry = document.getElementById("otherCountry").value;
	}else{
		var pwd = '';
		var salutation = '';
		var firstName = '';
		var secondName = '';
		var telephone = '';
		var email = '';
		var mobileNo = '';
		var reg = '';
		otherCountry = '';
	}
	
	if (objAjax.open("/dynamic/saveUserDetails.php?strPwd=" + pwd +
	"&salutation=" + salutation +
	"&firstName=" + firstName +
	"&secondName=" + secondName +
	"&address1=" + address1 +
	"&address2=" + address2 +
	"&town=" + town +
	"&county=" + county +
	"&address5=" + address5 +
	"&postcode=" + postcode +
	"&otherCountry=" + otherCountry +
	"&telephone=" + telephone +
	"&email=" + email+
	"&mobileNo=" + mobileNo+
	"&reg=" + reg , true)){
		var strResponse = objAjax.getResponse();
	}
	
	/* end */
	
	var strLink = "/basket.php";
    document.location.href = strLink;
	return false;
}


function buyProductBDIS(strCode, strQuantityId, strDescription, strTier5Code, strLocatorId , collect, productType, psVariationId){
	jq = jQuery;
	objSelect = document.getElementById(strQuantityId);
	iQuantity = objSelect.value;
	
	if(!/[0-9]/.test(iQuantity)){
		alert('Please enter a valid quantity value');
		return false;
	}
	
	iQuantity = Math.round(iQuantity);
	if(iQuantity == 1){
		javascript:popupDialog('BrakeDiscWarning', true, true); 
		return false;
	}else{
		buyProduct(strCode, strQuantityId, strDescription, strTier5Code, strLocatorId , collect, productType, psVariationId);		
	}
}

function LionBatteryLAlert(){
	//alert("Sorry,\n Lion Batteries are currently not available for home delivery. Please use the 'Click & Collect' Option to reserve your item, in store!");
	popupDialog("/styles/ecp/static/LionBatteryAlert.html","","1");
	return false;
}
