function CartForm() { this.step = 1; this.payType = "2"; this.overview = document.getElementById('overview'); //this.cardOverview = document.getElementById('cardOverview'); this.checkoutCart = document.getElementById('checkoutCart'); this.SubmitOrder = document.getElementById('SubmitOrder'); this.errorMessage = document.getElementByClassName('p','errormessage'); this.personalDetails = document.getElementById('personalDetails'); this.information = document.getElementById('information'); this.formCreditCard = document.getElementById('formCreditCard'); this.formSchoolInvoice = document.getElementById('formSchoolInvoice'); this.checkoutConfirmation = document.getElementById('checkoutConfirmation'); if(typeof CartForm._initialized == "undefined") { CartForm.prototype.hideAll = function() { this.overview.style.display = "none"; //this.cardOverview.style.display = "none"; this.checkoutCart.style.display = "none"; //this.buyersInfo.style.display = "none"; this.errorMessage.style.display = "none"; this.personalDetails.style.display = "none"; this.information.style.display = "none"; this.formCreditCard.style.display = "none"; this.formSchoolInvoice.style.display = "none"; this.checkoutConfirmation.style.display = "none"; if((this.step == 2)&&(this.payType == "3")) { var oExtras = document.getInnerElementByClassName(this.formSchoolInvoice,'div','formExtras'); oExtras.style.display = "block"; oExtras = document.getInnerElementByClassName(this.formCreditCard, 'div','formExtras'); oExtras.style.display = "none"; } }; CartForm.prototype.goTo2 = function() { if(!oCart.loaded)return false; if(this.payType == "2" && oCart.hasInspectedItem()) { alert("Inspection copies may only be requested by schools."); return false; } var validate = this.validateStep1(); if(!validate) return false; this.hideAll(); this.step++; this.overview.innerHTML = ""; if(this.payType == "2") { var oText = '

Personal Credit Card details

'; oText += 'Please enter your payment details.
'; if((typeof checkTC != "undefined")&&(checkTC == true)) { //oText += 'Your total purchase is $' + (Number(oCart.getEClubTotal())- oCart.handlingCharge).toFixed(2) + '

'; //oText += 'A handling charge of $' + oCart.handlingCharge + ' applies to personal orders.
'; oText += 'Your total charge will be $' + oCart.getEClubTotal() + ''; } else { oText += 'Your total purchase is $' + (Number(oCart.getTotal())- oCart.handlingCharge).toFixed(2) + '

'; oText += 'A handling charge of $' + oCart.handlingCharge + ' applies to personal orders.
'; oText += 'Your total charge will be $' + (Number(oCart.getTotal())).toFixed(2) + ''; } oText += '

'; this.overview.innerHTML = oText; this.overview.style.display = "block"; this.formCreditCard.style.display = "block"; } else { if(this.payType == "4") { var oText = '

School/University invoice details

'; } else { var oText = '

School/University credit card details

'; } oText += 'Please enter your payment details.
'; if((typeof checkTC != "undefined")&&(checkTC == true)) { oText += 'Your total purchase is $' + oCart.getEClubTotal() + '

'; } else { oText += 'Your total purchase is $' + oCart.getTotal() + '

'; } oText += '

'; this.overview.innerHTML = oText; this.overview.style.display = "block"; this.formSchoolInvoice.style.display = "block"; if(this.payType == "3") { var oExtras = document.getInnerElementByClassName(this.formSchoolInvoice,'div','formExtras'); oExtras.style.display = "none"; oExtras = document.getInnerElementByClassName(this.formCreditCard, 'div','formExtras'); oExtras.style.display = "block"; this.formCreditCard.style.display = "block"; } } oCart.updateShoppingSummary(); }; CartForm.prototype.next = function() { var payTypeList = document.forms['SubmitOrder'].CustomField_4; for(var i=0; i < payTypeList.length; i++) { if(payTypeList[i].checked)this.payType = payTypeList[i].value; } if(this.step == 1) { this.goTo2(); } else if(this.step == 2) { var bValidate = false; if(this.payType == "2") { bValidate = this.validateCreditCard(); } else if(this.payType == "4") { bValidate = this.validateInvoice(); } else { bValidate = (this.validateCreditCard() && this.validateInvoice()); } if(bValidate) { this.hideAll(); this.step++; var oText = "

Checkout Purchase confirmation

"; if(typeof oCart != "undefined") { oText += oCart.getCheckoutConfirmationTable(); oText += this.getDeliverySummary(); oText += this.getPaymentSummary(); oText += '

'; //oText += '

previous step

'; //oText += '

next step

'; //oText += '

'; oText += '

'; this.checkoutConfirmation.innerHTML = oText; this.checkoutConfirmation.style.display = "block"; } } } else { this.submit(); } }; CartForm.prototype.previous = function() { this.hideAll(); this.step--; if(this.step == "1") { this.overview.innerHTML = ""; var oText = '

Overview

'; oText += 'If you are a Teacher e-Club member and not logged in, login now to receive your discount.
'; oText += 'Non members, register now.
'; oText += 'Inspection copies can be made by schools only.'; oText += '

'; this.overview.innerHTML = oText; oCart.updateShoppingSummary(); this.overview.style.display = "block"; this.checkoutCart.style.display = "block"; this.personalDetails.style.display = "block"; this.information.style.display = "block"; } else { if(this.payType == "2") { var oText = '

Personal Credit Card details

'; oText += 'Please enter your payment details.
'; if((typeof checkTC != "undefined")&&(checkTC == true)) { oText += 'Your total purchase is $' + (Number(oCart.getEClubTotal())- oCart.handlingCharge).toFixed(2) + '

'; oText += 'A handling charge of $' + oCart.handlingCharge + ' applies to personal orders.
'; oText += 'Your total charge will be $' + (Number(oCart.getEClubTotal())).toFixed(2) + ''; } else { oText += 'Your total purchase is $' + (Number(oCart.getTotal())- oCart.handlingCharge).toFixed(2) + '

'; oText += 'A handling charge of $' + oCart.handlingCharge + ' applies to personal orders.
'; oText += 'Your total charge will be $' + (Number(oCart.getTotal())).toFixed(2) + ''; } oText += '

'; this.overview.innerHTML = oText; this.overview.style.display = "block"; this.formCreditCard.style.display = "block"; } else { if(this.payType == "4") { var oText = '

School/University invoice details

'; } else { var oText = '

School/University credit card details

'; } oText += 'Please enter your payment details.
'; if((typeof checkTC != "undefined")&&(checkTC == true)) { oText += 'Your total purchase is $' + oCart.getEClubTotal() + '

'; } else { oText += 'Your total purchase is $' + oCart.getTotal() + '

'; } oText += '

'; this.overview.innerHTML = oText; this.overview.style.display = "block"; this.formSchoolInvoice.style.display = "block"; if(this.payType == "3") { var oExtras = document.getInnerElementByClassName(this.formSchoolInvoice,'div','formExtras'); oExtras.style.display = "none"; oExtras = document.getInnerElementByClassName(this.formCreditCard, 'div','formExtras'); oExtras.style.display = "block"; this.formCreditCard.style.display = "block"; } } oCart.updateShoppingSummary(); } }; CartForm.prototype.validateStep1 = function() { var fFirstname = document.forms['SubmitOrder'].Firstname.value; var fLastname = document.forms['SubmitOrder'].Lastname.value; var fOrganisation = document.forms['SubmitOrder'].Organisation.value; var fPostalAddress = document.forms['SubmitOrder'].PostalAddress.value; var fPostalCity = document.forms['SubmitOrder'].PostalCity.value; var fPostalState = document.forms['SubmitOrder'].PostalState.value; var fPostalCode = document.forms['SubmitOrder'].PostalCode.value; var fPhoneNumber = document.forms['SubmitOrder'].PhoneNumber.value; var fEmailAddress = document.forms['SubmitOrder'].EmailAddress.value; var oText = "Please fill in the following field(s):\n"; if(fFirstname == "" || fFirstname == " ")oText += "-Firstname\n"; if(fLastname == "" || fLastname == " ")oText += "-Lastname\n"; if(this.payType == "4" || this.payType == "3") { if(fOrganisation == "" || fOrganisation == " ")oText += "-School name\n"; } if(fPostalAddress == "" || fPostalAddress == " ")oText += "-Street address\n"; if(fPostalCity == "" || fPostalCity == " ")oText += "-Suburb\n"; if(fPostalState == "" || fPostalState == " ")oText += "-State\n"; if(fPostalCode == "" || fPostalCode == " ")oText += "-Postal code\n"; if(fPhoneNumber == "" || fPhoneNumber == " ")oText += "-Phone number\n"; if(fEmailAddress == "" || fEmailAddress == " ")oText += "-Email address\n"; if(oText != "Please fill in the following field(s):\n") { alert(oText); return false; } //var reEmail = /^(?:\w+\.?)*\w+@(?:\w+\.?)*\w+$/; var reEmail = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; if(!reEmail.test(fEmailAddress)) { alert("Please enter a valid email address."); return false; } return true; }; CartForm.prototype.validateCreditCard = function() { var fCardName = document.forms['SubmitOrder'].CardName.value; var fCardNumber = document.forms['SubmitOrder'].CardNumber.value; var fCardMonth = document.forms['SubmitOrder'].CardMonth.value; var fCardYear = document.forms['SubmitOrder'].CardYear.value; var oText = "Please fill in the following field(s):\n"; if(fCardName == "" || fCardName == " ") oText += "-Card holder name\n"; if(fCardNumber == "" || fCardNumber == " ") oText += "-Card number\n"; if(fCardMonth == "MM" || fCardMonth == "" || fCardYear == "YY" || fCardYear == "") oText += "-Card expiry date\n"; if(oText != "Please fill in the following field(s):\n") { alert(oText); return false; } var reCardNumber = /\d{16}/; if(!reCardNumber.test(fCardNumber)) { alert("Please enter a valid credit card number."); return false; } var reYear = /\d{2}/; var reMonth = /0[1-9]|1[0-2]/; if((!reMonth.test(fCardMonth))||(!reYear.test(fCardYear))) { alert("Please enter a valid expiry date."); return false; } return true; }; CartForm.prototype.validateInvoice = function() { var fOrderNumber = document.forms['SubmitOrder'].Inv_Order_Number.value; var fAccountCode = document.forms['SubmitOrder'].Inv_Order_AccountCode.value; var oText = "Please fill in the following field(s):\n"; if(fOrderNumber == "" || fOrderNumber == " ") oText += "-Customer order number\n"; //if(fAccountCode == "" || fAccountCode == " ") oText += "-Macmillan account code\n"; if(oText != "Please fill in the following field(s):\n") { alert(oText); return false; } return true; }; CartForm.prototype.getDeliverySummary = function() { var oText = '

Your delivery details:

'; oText += document.forms['SubmitOrder'].Firstname.value + " " + document.forms['SubmitOrder'].Lastname.value + "
"; if(document.forms['SubmitOrder'].Organisation.value != "") { oText += document.forms['SubmitOrder'].Organisation.value + "
"; } oText += document.forms['SubmitOrder'].PostalCity.value + " " + document.forms['SubmitOrder'].PostalState.value + " " + document.forms['SubmitOrder'].PostalCode.value; oText += "

"; return oText; }; CartForm.prototype.getPaymentSummary = function() { var oText = '

Your payment information:

'; if(this.payType == "2" || this.payType =="3") { var nCard = "xxxx xxxx xxxx " + document.forms['SubmitOrder'].CardNumber.value.substring(12); oText += "Your "; if(this.payType == "3")oText += " school "; oText += document.forms['SubmitOrder'].CardType.value + " credit card ending in "; oText += nCard + " will be charged.

"; } if(this.payType == "3" || this.payType =="4") { oText += "Customer Order Number: " + document.forms['SubmitOrder'].Inv_Order_Number.value + ".

"; oText += "Account Code: " + document.forms['SubmitOrder'].Inv_Order_AccountCode.value + ".

"; oText += "On verification by our Customer Service department the transaction will be processed.

"; } return oText; }; } CartForm._initialized = true; }