var g_bAjaxSuspended=false;var g_bDataUpdated=true;var QUANTITY_FORM_SECTION="FS1";var USER_FORM_SECTION="FS2";var CHARGE_FORM_SECTION="FS3";var PASSWORD_FORM_SECTION="FS4";var ACCOUNT_FORM_SECTION="FS5";var g_bAdvancePageClicked=false;var g_lCheckoutFormsHeight=0;function CopyAddress(){var oForm=document.forms.CartForm;if(oForm.SameAddress&&oForm.SameAddress.checked){var oFldArr=['Name', 'Organization', 'Address1', 'Address2', 'Town', 'County', 'PostCode', 'Email', 'Telephone', 'Fax'];for(var i=0;i<oFldArr.length;i++){var sSrcFld='Billing'+oFldArr[i];var sObjFld='Shipping'+oFldArr[i];if(oForm[sSrcFld]&&oForm[sObjFld]){oForm[sObjFld].value=oForm[sSrcFld].value;}}if(oForm.ShippingCountryId&&oForm.BillingCountryId){var lSelectedValue=oForm.BillingCountryId[oForm.BillingCountryId.selectedIndex].value;for(var i=0;i<oForm.ShippingCountryId.length;i++){if(oForm.ShippingCountryId[i].value==lSelectedValue){oForm.ShippingCountryId.selectedIndex=i;break;}}}}}function CancelCopy(){document.forms.CartForm.SameAddress.checked=false;}function FromAc_Keyup(p_oTextBox){var d=document;var cMax=d.forms.CartForm.FromAcMax.value;ncValidation.ForceNumber(p_oTextBox, 2, 0, cMax, g_lNumericFormatType);var cFromAc=g_lNumericFormatType==1?p_oTextBox.value.replace(',', '.'):p_oTextBox.value;var cTotal=d.getElementById("TotalBeforeAc").value;if(!isNaN(cFromAc)){cTotal=cTotal-cFromAc;}var sTotal=g_lNumericFormatType==1?cTotal.toString().replace('.', ','):cTotal;sTotal=ncFormatNumber(sTotal, 2, g_lNumericFormatType);d.getElementById("TotalAfterAc").innerHTML=sTotal;var oGatewaysEl=d.getElementById("PaymentGateways");if(oGatewaysEl){oGatewaysEl.style.display='none';d.getElementById("ConfirmAccountAmountLinkDiv").style.display='';}}function SubmitAccountAmount(){var f=document.forms.CartForm;if(f){f.submit();}}function CheckInitialAccountAmount(){var f=document.forms.CartForm;if(f.FromAc.value!=f.FromAcCheck.value){f.FromAc.onkeyup();}}function WireUpCartAjax(){var oForm=document.forms.CartForm;if(oForm){for(var i=0;i<oForm.elements.length;i++){var oField=oForm.elements[i];switch(oField.tagName.toLowerCase()){case 'input':switch(oField.type){case 'text':ncBwHlpr.AttachEvent(oField, 'keyup', CartField_Change);ncBwHlpr.AttachEvent(oField, 'blur', CartForm_Submit);break;case 'checkbox':ncBwHlpr.AttachEvent(oField, 'click', CartFieldDelayedChangeAndUpdate);ncBwHlpr.AttachEvent(oField, 'dblclick', CartFieldDelayedChangeAndUpdate);break;case 'submit':if(oField.name=='504'){oField.onclick=new Function('g_bAdvancePageClicked=true;');}break;}break;case 'select':ncBwHlpr.AttachEvent(oField, 'change', CartFieldChangeAndUpdate);break;}}oForm.onsubmit=CartForm_Submit;var oCheckoutDiv=document.getElementById('CheckoutFormDiv');if(oCheckoutDiv){oCheckoutDiv.innerHTML=g_sCheckoutForms;StoreCheckoutFormsHeight();document.getElementById('CheckoutLinkDiv').innerHTML=g_sContinueToCheckoutLink;}}}function CartFieldDelayedChangeAndUpdate(){setTimeout('CartFieldChangeAndUpdate()', 1);}function CartFieldChangeAndUpdate(){CartField_Change();CartForm_Submit();}function CartField_Change(){g_bDataUpdated=true;HideCheckoutForms();}function HideCheckoutForms(){var oDiv=document.getElementById('CheckoutFormDiv');if(oDiv){oDiv.innerHTML='';ShowCheckoutFormsIfAvailable();}}function ShowCheckoutFormsIfAvailable(){var d=document;var oCheckoutDiv=d.getElementById('CheckoutFormDiv');if(oCheckoutDiv){var oCheckoutLinkDiv=d.getElementById('CheckoutLinkDiv');var bShow=(oCheckoutDiv.innerHTML.length>0);oCheckoutDiv.style.display=bShow?'block':'none';oCheckoutLinkDiv.style.display=bShow?'none':'block';if(bShow){ StoreCheckoutFormsHeight();}}}function StoreCheckoutFormsHeight(){var oCheckoutDiv=document.getElementById('CheckoutFormDiv');if(oCheckoutDiv&&oCheckoutDiv.style.display!='none'){var oParentEl=oCheckoutDiv.parentNode;oParentEl.style.height=oParentEl.offsetHeight+'px';}}function RemovePassword_Click(){g_bDataUpdated=true;HideCheckoutForms();if(SuspendAjax()==true){var oReqDom=GetReqDomBase('RemovePasswords', []);ncXml.sendXmlHttpRequest('../v/nc/orderprocessor/CartRemote.nc', CartFormAjax_Return, oReqDom);}return false;}function Remove_Click(e){g_bDataUpdated=true;HideCheckoutForms();if(SuspendAjax()==true){var oEv=e?e:event;var oSrc=oEv.target?oEv.target:oEv.srcElement;var oRow=oSrc.parentNode;while(oRow.tagName.toLowerCase()!='tr'){oRow=oRow.parentNode;}var lItemId=oRow.id.replace(/^Item(\d+)Row$/, '$1');var oReqDom=GetReqDomBase('RemoveItem', ['@itemid', lItemId]);ncXml.sendXmlHttpRequest('../v/nc/orderprocessor/CartRemote.nc', CartFormAjax_Return, oReqDom);}return false;}function GetReqDomBase(p_sType, p_vExtraOptionArr){var oOptionArr=['@siteid', ncSiteId, '@featureid', ncFeatureId, '@type', p_sType, '@pagetype', g_lPageType];for(var i=0;i<p_vExtraOptionArr.length;i++){oOptionArr.splice(oOptionArr.length, 0, p_vExtraOptionArr[i]);}var oReqDom=ncXml.createDomBase('Request', oOptionArr);return oReqDom;}function ContinueToCheckout(){UpdateCartDetails(true);return false;}function CartForm_Submit(){var oErrorsEl=document.getElementById('UserDetailErrors');UpdateCartDetails(oErrorsEl&&oErrorsEl.innerHTML.length>0);return false;}function UpdateCartDetails(p_bPerformCheckoutChecks){if(g_bDataUpdated||g_bAdvancePageClicked||p_bPerformCheckoutChecks){if(SuspendAjax()==true){var oDom=GetReqDomBase('UpdateOrder', ['@performcheckoutchecks', (p_bPerformCheckoutChecks?1:0), '@advancepage', g_bAdvancePageClicked?1:0]);var oReqEl=oDom.documentElement;var oForm=document.forms.CartForm;for(var i=0;i<oForm.elements.length;i++){var oField=oForm.elements[i];var sValue='';switch(oField.tagName.toLowerCase()){case 'input':switch(oField.type){case 'text':case 'hidden':sValue=oField.value;break;case 'checkbox':sValue=oField.checked?'on':'';break;}break;case 'select':sValue=oField[oField.selectedIndex].value;break;}var oFieldEl=oReqEl.appendChild(oDom.createElement('Field'));oFieldEl.setAttribute('name', oField.name);ncXml.setNodeText(oDom, oFieldEl, sValue);}ncXml.sendXmlHttpRequest('../v/nc/orderprocessor/CartRemote.nc', CartFormAjax_Return, oDom);}}return false;}function CartFormAjax_Return(p_oXmlHttp){if(p_oXmlHttp.readyState==4){var bOk=false;if(p_oXmlHttp.status==200){var oDom=p_oXmlHttp.responseXML;var oDocEl=oDom.documentElement;if(oDocEl.tagName=='Response'&&oDocEl.getAttribute('ok')==1){var d=document;var sRedirectUrlBase=oDocEl.getAttribute('RedirectUrlBase');if(sRedirectUrlBase){var sRedirectUrl=sRedirectUrlBase+g_lPageType.toString();location.href=sRedirectUrl;return;}UpdateItemRows(oDocEl);var oResponseValueEls=ncXml.selectNodes(oDocEl, 'ResponseValue');for(var i=0;i<oResponseValueEls.length;i++){var oEl=d.getElementById(oResponseValueEls[i].getAttribute('name'));if(oEl){var sNodeText=ncXml.getNodeText(oResponseValueEls[i]);if(oEl.tagName.toLowerCase()=='input'){if(oEl.value!=sNodeText){oEl.value=sNodeText;}}else{oEl.innerHTML=sNodeText;if(oEl.tagName.toLowerCase()=='div'){oEl.style.display=(sNodeText.length==0?'none':'block');}}}}UpdateChargeRows(oDocEl);var oPasswordBox=d.getElementById('ChargePW');if(oPasswordBox){oPasswordBox.value='';}if(g_bDataUpdated){HideCheckoutForms();}else{ShowCheckoutFormsIfAvailable();}g_bAdvancePageClicked=false;bOk=true;}}if(!bOk){alert('Sorry, update of cart details failed');}setTimeout('RestoreAjax()', 50);}}function SuspendAjax(){if(!g_bAjaxSuspended){g_bAjaxSuspended=true;g_bDataUpdated=false;EnableChargeDdls(false);return true;}else{return false;}}function EnableChargeDdls(p_bEnable){var oForm=document.forms.CartForm;var oDdls=oForm.getElementsByTagName('select');var oExp=/^ChargeOption\d+$/;for(var i=0;i<oDdls.length;i++){if(oExp.test(oDdls[i].name)){oDdls[i].disabled=!p_bEnable;}}}function RestoreAjax(){g_bAjaxSuspended=false;EnableChargeDdls(true);}function UpdateItemRows(p_oDocEl){var bReload=false;var d=document;var oItemErrorDiv=d.getElementById('ItemError');oItemErrorDiv.innerHTML='';oItemErrorDiv.style.display='none';var oItemErrorEl=ncXml.selectSingleNode(p_oDocEl, 'ItemError');if(oItemErrorEl){var lErrorItemId=parseInt(oItemErrorEl.getAttribute('ItemId'), 10);if(lErrorItemId>0){var oItemQuantityBox=d.getElementById('Item'+lErrorItemId+'Quantity');if(oItemQuantityBox&&oItemQuantityBox.tagName.toLowerCase()=='input'){oItemQuantityBox.focus();oItemErrorDiv.innerHTML=ncXml.getNodeText(oItemErrorEl);oItemErrorDiv.style.display='block';}}}var oExp=/^Item(\d+)Row$/;var oTable=d.getElementById("CartContainsTable");for(var i=oTable.rows.length-1;i>=0;i--){var oRow=oTable.rows[i];if(oExp.test(oRow.id)){var sQuery='Item[@ItemId="'+oRow.id.replace(oExp, '$1')+'"]';if(ncXml.selectNodes(p_oDocEl, sQuery).length==0){oRow.parentNode.removeChild(oRow);}}}var oItemEls=ncXml.selectNodes(p_oDocEl, 'Item');if(oItemEls.length==0){bReload=true;}else{for(var i=0;i<oItemEls.length;i++){var oItem;eval( 'oItem='+ncXml.getNodeText(oItemEls[i]) );var oItemRow=d.getElementById('Item'+oItem.ItemId+'Row');if(!oItemRow){bReload=true;}else{var oPriceEl=d.getElementById('Item'+oItem.ItemId+'Price');if(oPriceEl){d.getElementById('Item'+oItem.ItemId+'Price').innerHTML=oItem.Price;}var oQuantityEl=d.getElementById('Item'+oItem.ItemId+'Quantity');if(oQuantityEl){if(oQuantityEl.tagName.toLowerCase()=='input'){oQuantityEl.value=oItem.Quantity;}else{oQuantityEl.innerHTML=oItem.Quantity;}}d.getElementById('Item'+oItem.ItemId+'Total').innerHTML=oItem.Total;}}}if(bReload){location.href=location.href.replace(location.search, '');}}function UpdateChargeRows(p_oDocEl){var d=document;var oForm=document.forms.CartForm;if(oForm.elements[CHARGE_FORM_SECTION]){var oExp=/^Charge(\d+)Row$/;var oTable=d.getElementById("CartContainsTable");for(var i=oTable.rows.length-1;i>=0;i--){var oRow=oTable.rows[i];if(oExp.test(oRow.id)){var sQuery='Charge[@GroupId="'+oRow.id.replace(oExp, '$1')+'"]';if(ncXml.selectNodes(p_oDocEl, sQuery).length==0){oRow.parentNode.removeChild(oRow);}}}var oChargeEls=ncXml.selectNodes(p_oDocEl, 'Charge');var oGrossAmountRow=d.getElementById('GrossAmountRow');oGrossAmountRow.style.display=oChargeEls.length>0?'':'none';var oNetAmountRow=d.getElementById('NetAmountRow');var sCellClassName='shippingchargerow';for(var i=0;i<oChargeEls.length;i++){var oCharge;eval( 'oCharge='+ncXml.getNodeText(oChargeEls[i]) );var sChargeRowId='Charge'+oCharge.GroupId+'Row';var oChargeRow=d.getElementById(sChargeRowId);if(oChargeRow){oChargeRow=oChargeRow.parentNode.removeChild(oChargeRow);}else{oChargeRow=d.createElement('tr');oChargeRow.id=sChargeRowId;var oPromptCell=d.createElement('td');oPromptCell.colSpan=oNetAmountRow.cells[0].colSpan;oPromptCell.style.textAlign='right';oPromptCell.className=sCellClassName;oChargeRow.appendChild(oPromptCell);var oValueCell=oChargeRow.appendChild(d.createElement('td'));oValueCell.className=sCellClassName;oValueCell.style.textAlign='right';for(var j=2;j<oNetAmountRow.cells.length;j++){var oCell=oChargeRow.appendChild(d.createElement('td'));oCell.className=sCellClassName;oCell.innerHTML='&nbsp;';}}oNetAmountRow.parentNode.insertBefore(oChargeRow, oNetAmountRow);oChargeRow.cells[0].innerHTML=oCharge.Prompt;if(oCharge.Options.length>1){var sDdlId='ChargeOption'+oCharge.GroupId;var oChargeDdl=d.getElementById(sDdlId);if(!oChargeDdl){oChargeRow.cells[1].innerHTML='';oChargeDdl=oChargeRow.cells[1].appendChild(d.createElement('select'));oChargeDdl.name=oChargeDdl.id=sDdlId;oChargeDdl.className='ShippingDdl';ncBwHlpr.AttachEvent(oChargeDdl, 'change', CartFieldChangeAndUpdate);}else{oChargeDdl.length=0;}for(var j=0;j<oCharge.Options.length;j++){var oOption=new Option(oCharge.Options[j][1], oCharge.Options[j][0]);oChargeDdl.options.add(oOption);oOption.selected=oCharge.Options[j][2];}}else{oChargeRow.cells[1].innerHTML=oCharge.Options[0];}}}}