function refreshWindow()
{
    var sURL = unescape(window.location);
    window.location.href = sURL;
}

function prefillForm(name) {
getCookie(name) ? getDetails = true : getDetails = false;
if (getDetails) {
detailsCookie = getCookie(name)
detailsSplit = detailsCookie.split(";");
document.forms['SubmitOrder'].Firstname.value = detailsSplit[0];
document.forms['SubmitOrder'].Lastname.value = detailsSplit[1];
document.forms['SubmitOrder'].CustomField_2.value = detailsSplit[2];
document.forms['SubmitOrder'].Organisation.value = detailsSplit[3];
if (detailsSplit[4]=="true") {
document.forms['SubmitOrder'].MoreInfo.checked = true;
}
else {
document.forms['SubmitOrder'].MoreInfo.checked = false;
} 
document.forms['SubmitOrder'].ContactType.defaultSelected = "Phone";
document.forms['SubmitOrder'].PostalAddress.value = detailsSplit[5];
document.forms['SubmitOrder'].PostalCity.value = detailsSplit[6];
document.forms['SubmitOrder'].PostalState.value = detailsSplit[7];
document.forms['SubmitOrder'].PostalCode.value = detailsSplit[8];
document.forms['SubmitOrder'].PhoneNumber.value = detailsSplit[9];
document.forms['SubmitOrder'].CustomField_3.value = detailsSplit[10];
document.forms['SubmitOrder'].EmailAddress.value = detailsSplit[11];
var listingType = document.forms['SubmitOrder'].elements['ContactType'];
for (i=0; i < listingType.length; i++) {
if (listingType[i].value==detailsSplit[12])
{
listingType[i].selected=true
}
}
document.forms['SubmitOrder'].Remember.checked = true;
}
}
function checkInv() {
if (document.forms['SubmitOrder'].Inv_Order_Number.value == "") {
alert("Please fill in the following compulsory fields:\n" + getFormLabels('Inv_Order_Number'));
return false;
}
else {
return true;
} 
}
function checkS_Card() {
var which = document.forms['SubmitOrder'];
var reqfields = "Please fill in the following compulsory fields:\n";
var regExp1 = /[^A-Za-z'\-\s]/;
var regExp2 = /\d{16}/;
var strCompFields = which.CompulsorySchoolFields.value;
var pass = true;
if ( regExp1.test( which.S_CName.value )) {
alert("You have entered an invalid character in either\nthe Card name field.\nPlease only use the characters A - Z, apostrophe and hyphen.");
return false; 
}
if ( !regExp2.test( which.S_CNumber.value )) {
alert("Please enter a 16-digit credit card number.");
return false; 
}
if (which.S_CType.value == "") {
pass=false;
reqfields += getFormLabels('S_CType') + "\n";
}
for (i=0;i<which.length;i++) {
var tempobj=which.elements[i];
if (strCompFields.indexOf(tempobj.name)!=-1) { // compulsory field
if ((tempobj.type=="text"||tempobj.type=="textarea")&&(tempobj.value==''||tempobj.value=='MM'||tempobj.value=='YY')) {
pass=false;
reqfields += getFormLabels(tempobj.name) + "\n";
}
}
}
if (!pass) {
alert(reqfields);
return false;
}
return pass;
}
function checkPay() { // include a hidden field in form with name CompulsoryFields
var which = document.forms['SubmitOrder'];
var pass=true;
var reqfields = "Please fill in the following compulsory fields:\n";
var regExp1 = /[^A-Za-z'\-\s]/;
var regExp2 = /\d{16}/;
var regExp3 = /\d{1,2}/;
if ( regExp1.test( which.CardName.value )) {
alert("You have entered an invalid character in either\nthe Card name field.\nPlease only use the characters A - Z, apostrophe and hyphen.");
return false; 
}
if ( !regExp2.test( which.CardNumber.value )) {
alert("Please enter a 16-digit credit card number.");
return false; 
}
var strCompFields = which.CompulsoryPayFields.value;
if (which.CardType.value == "") {
pass=false;
reqfields += getFormLabels('CardType') + "\n";
}
for (i=0;i<which.length;i++) {
var tempobj=which.elements[i];
if (strCompFields.indexOf(tempobj.name)!=-1) { // compulsory field
if ((tempobj.type=="text"||tempobj.type=="textarea")&&(tempobj.value==''||tempobj.value=='MM'||tempobj.value=='YY')) {
pass=false;
reqfields += getFormLabels(tempobj.name) + "\n";
}
}
}
if (!pass) {
alert(reqfields);
return false;
}
return pass;
}
//yes
function checkDetails() {
var which = document.forms['SubmitOrder'];
var pass=true;
var reqfields = "Please fill in the following compulsory fields:\n";
var regExp1 = /[^A-Za-z'\-\s]/;
var regEmailPattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
if (( regExp1.test( which.Firstname.value )) || ( regExp1.test( which.Lastname.value ))) {
alert("You have entered an invalid character in either\nthe First name or Last name field.\nPlease only use the characters A - Z, apostrophe and hyphen.");
return false; 
}
var strCompFields = which.CompulsoryDetailsFields.value;
for (i=0;i<which.length;i++) {
var tempobj=which.elements[i];
if (strCompFields.indexOf(tempobj.name)!=-1) { // compulsory field
if ((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='') {
pass=false;
reqfields += getFormLabels(tempobj.name) + "\n";
}
}
}
if (!pass) {
alert(reqfields);
return false;
}

var thisArrayCookie = splitCookie('Macmillan');
var inspectFlag = '0';
for (var i=0;i<thisArrayCookie.length;i++) {
if (thisArrayCookie[i][3] == "I") {
inspectFlag = '1';
}
}
if ( inspectFlag == '0' ) {
}
else {
alert("Inspection copies may only be requested by schools");
return false; 
}
if ( regEmailPattern.test( which.EmailAddress.value )) {
}
else {
alert("Please enter a valid email address");
return false; 
}
return pass;
}
//yes
function checkDetailsSchool() {
var which = document.forms['SubmitOrder'];
var pass=true;
var reqfields = "Please fill in the following compulsory fields:\n";
var regExp1 = /[^A-Za-z'\-\s]/;
var regEmailPattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
if (( regExp1.test( which.Firstname.value )) || ( regExp1.test( which.Lastname.value ))) {
alert("You have entered an invalid character in either\nthe First name or Last name field.\nPlease only use the characters A - Z, apostrophe and hyphen.");
return false; 
}
var strCompFields = which.CompulsoryDetailsSchoolFields.value;
for (i=0;i<which.length;i++) {
var tempobj=which.elements[i];
if (strCompFields.indexOf(tempobj.name)!=-1) { // compulsory field
if ((tempobj.type=="text"||tempobj.type=="textarea")&&tempobj.value=='') {
pass=false;
reqfields += getFormLabels(tempobj.name) + "\n";
}
}
}
if (!pass) {
alert(reqfields);
return false;
}
if ( regEmailPattern.test( which.EmailAddress.value )) {
}
else {
alert("Please enter a valid email address");
return false; 
}
return pass;
}
//yes
function getFormLabels(formValue) { 
strValues = "Firstname; Lastname; EmailAddress; PostalAddress; PostalCity; PostalState; PostalCode; PostalCountry; PhoneNumber; CustomField_1; CustomField_2; Organisation; CardName; CardNumber; CardMonth; CardYear; CardType; Inv_Order_Number; Card_ONumber; S_CName; S_CNumber; S_CMonth; S_CYear; S_CType";
strNames = "First name; Last name; Email address; Street address; City; State; Postcode; Country; Phone number; Account number; Position; School name; Credit card name; Credit card number; Expiry month; Expiry year; Card type; Customer Order Number; Customer Order Number; Credit card name; Credit card number; Expiry month; Expiry year; Card type";
var fromlist = strValues.split('; ');
var tolist = strNames.split('; ');
for (var i = 0; i < fromlist.length; i++ ) {
if (fromlist[i] == formValue) {
return tolist[i];
}
}
return formValue
}
// yes
function getFormFields() {
var thisComments = "";
document.forms['SubmitOrder'].OrderPrice.value = getTotal();
document.forms['SubmitOrder'].Quantity.value = getNumItems();
var thisArrayCookie = splitCookie('Macmillan');
thisComments += "====================================\n\n";
for (var i=0;i<thisArrayCookie.length;i++) {
thisComments += "Order " + (i+1) + "\n";
thisComments += "ISBN: " + thisArrayCookie[i][0] + "\n";
thisComments += "Title: " + thisArrayCookie[i][1] + "\n";
if (thisArrayCookie[i][3] == "I") {
thisComments += "Price: - \n";
thisComments += "Type: Inspection Copy\n";
}
else {
thisComments += "Price: " + thisArrayCookie[i][2] + "\n";
thisComments += "Type: Buy \n";
}
thisComments += "Quantity: " + thisArrayCookie[i][4] + "\n\n";
}
thisComments += "====================================\n\n\n";
thisComments += "Other information\n";
thisComments += "====================================\n";
//thisComments += "Account number: " + document.forms['SubmitOrder'].CustomField_1.value + " \n";
thisComments += "Position: " + document.forms['SubmitOrder'].CustomField_2.value + " \n";
thisComments += "Fax: " + document.forms['SubmitOrder'].CustomField_3.value + " \n";
//thisComments += "Payment method: " + document.forms['SubmitOrder'].CustomField_4.value + " \n\n";
thisComments += "Additional comments: \n" + document.forms['SubmitOrder'].Comments.value + "\n\n\n";
thisComments += "Payment details\n";
thisComments += "====================================\n";
if (getRadioValue('CustomField_4')=="2") {
thisComments += "Payment method: Personal Credit Card\n\n";
thisComments += "Please note that a $5.95 handling fee applies to this order.\n\n";
thisComments += "Card Type: " + document.forms['SubmitOrder'].CardType.value + " \n";
thisComments += "Card Holder Name: " + document.forms['SubmitOrder'].CardName.value + " \n";
thisComments += "Card Number: " + document.forms['SubmitOrder'].CardNumber.value + " \n";
thisComments += "Card Expiry: " + document.forms['SubmitOrder'].CardMonth.value + " / " + document.forms['SubmitOrder'].CardYear.value + " \n\n";
}
else if (getRadioValue('CustomField_4')=="3") {
thisComments += "Payment method: School Credit Card\n\n";
thisComments += "Card Type: " + document.forms['SubmitOrder'].S_CType.value + " \n";
thisComments += "Card Holder Name: " + document.forms['SubmitOrder'].S_CName.value + " \n";
thisComments += "Card Number: " + document.forms['SubmitOrder'].S_CNumber.value + " \n";
thisComments += "Card Expiry: " + document.forms['SubmitOrder'].S_CMonth.value + " / " + document.forms['SubmitOrder'].CardYear.value + " \n\n";
thisComments += "Customer Order Number: " + document.forms['SubmitOrder'].Card_ONumber.value + " \n\n";
//thisComments += "Account Code: " + document.forms['SubmitOrder'].Card_OAccountCode.value + " \n\n";
}
else if (getRadioValue('CustomField_4')=="4") {
thisComments += "Payment method: Invoice\n\n";
thisComments += "Customer Order Number: " + document.forms['SubmitOrder'].Inv_Order_Number.value + " \n\n";
thisComments += "Account Code: " + document.forms['SubmitOrder'].Inv_Order_AccountCode.value + " \n\n";
}
if (document.forms['SubmitOrder'].MoreInfo.checked == true) {
 thisComments += "Please send me further info on Macmillan products?: Yes\n";
}
else {
 thisComments += "Please send me further info on Macmillan products?: No\n";
}
document.forms['SubmitOrder'].Comments.value = thisComments;
}
// yes
function createDeliveryInfo()
{
var DeliveryInformation = document.getElementById("DeliveryInfo");
var myName = "<br>" + document.forms['SubmitOrder'].Firstname.value + " " + document.forms['SubmitOrder'].Lastname.value + "<br>";
//var myPosi = document.forms['SubmitOrder'].Firstname.value + " " + document.forms['SubmitOrder'].Lastname.value + "<br>";
var myOrg = document.forms['SubmitOrder'].Organisation.value + "<br>";
var myAddress = document.forms['SubmitOrder'].PostalAddress.value + "<br>";
var mySuburb = document.forms['SubmitOrder'].PostalCity.value + " ";
var myState = document.forms['SubmitOrder'].PostalState.value + " ";
var myPostCode = document.forms['SubmitOrder'].PostalCode.value;
DeliveryInformation.innerHTML = myName + myOrg + myAddress + mySuburb + myState + myPostCode; 
}
// yes
function createPaymentInfo()
{
var PaymentInformation = document.getElementById("PaymentInfo");
if (getRadioValue('CustomField_4')=="2") {
var myCard = document.forms['SubmitOrder'].CardType.value;
var myCardLastDigits = document.forms['SubmitOrder'].CardNumber.value;
myCardLastDigits = myCardLastDigits.substring(myCardLastDigits.length-4)
PaymentInformation.innerHTML = "<br><br>Your " + myCard + " credit card ending in xxxx xxxx xxxx " + myCardLastDigits + " will be charged."; 
}
else if (getRadioValue('CustomField_4')=="3") {
var sCard = document.forms['SubmitOrder'].S_CType.value;
var sCardLastDigits = document.forms['SubmitOrder'].S_CNumber.value;
sCardLastDigits = sCardLastDigits.substring(sCardLastDigits.length-4)
PaymentInformation.innerHTML = "<br><br>Your school " + sCard + " credit card ending in xxxx xxxx xxxx " + sCardLastDigits + " will be charged.<br><br>Customer Order Number: " + document.forms['SubmitOrder'].Card_ONumber.value + "<br><br>Account Code: " +document.forms['SubmitOrder'].Card_OAccountCode.value+ "<br><br>On verification by our Customer Service department the transaction will be processed."; 
}
else if (getRadioValue('CustomField_4')=="4") {
var myCustomerNumber = "<br><br>Customer Order Number: " + document.forms['SubmitOrder'].Inv_Order_Number.value;
var myAccountCode = "<br><br>Account Code: " + document.forms['SubmitOrder'].Inv_Order_AccountCode.value;

PaymentInformation.innerHTML = myCustomerNumber + myAccountCode + "<br><br>On verification by our Customer Service department an invoice will be issued and the transaction processed."; 
}
} 
// yes
function showNextLayer(currentLayer,nextLayer)
{
document.getElementById("Step" + currentLayer + "Layer").style.visibility = "hidden";
document.getElementById("Step" + nextLayer + "Layer").style.visibility= "visible";
self.scrollTo(0, 0)
}
//yes
function showPrevLayer(currentLayer)
{
document.getElementById("Step" + currentLayer + "Layer").style.visibility = "hidden";
document.getElementById("Step" + (--currentLayer) + "Layer").style.visibility= "visible";
self.scrollTo(0, 0)
}
// yes
function splitCookie(name) {
getCookie(name) ? thisCookie = getCookie(name) : thisCookie = "";
var thisCookieSplit = thisCookie.split(';');
var mdArray = new Array();
// create two dimensional array
for (var i=0; i < thisCookieSplit.length-1; i++) {
var splitElement = thisCookieSplit[i].split('|');
mdArray[i] = new Array(5);
mdArray[i][0] = splitElement[0];
mdArray[i][1] = splitElement[1];
mdArray[i][2] = splitElement[2];
mdArray[i][3] = splitElement[3];
mdArray[i][4] = splitElement[4];
}
return mdArray;
} 
//yes
function addtoCart(idstring,value) { 
var cookieExpires = new Date();
cookieExpires.setTime(cookieExpires.getTime() + (1 * 60 * 60 * 1000 ));
getCookie('Macmillan') ? tmpCookie = getCookie('Macmillan') : tmpCookie = "";
if (value=="") {value=1}; // set value at 1
tmpCookie += idstring + "|" + value + ";"; 
setCookie('Macmillan', tmpCookie, cookieExpires, '/');
//window.location.reload(false);
getSummary();
thisVal="";
}
function addAlltoCart(name,checkout) { 
if (document.forms[0].PageType.value=="library" && document.forms[0].Title.value=="index") {
var cookieExpires = new Date();
cookieExpires.setTime(cookieExpires.getTime() + (1 * 60 * 60 * 1000 ));
getCookie('Macmillan') ? tmpCookie = getCookie('Macmillan') : tmpCookie = "";
var which = document.forms['cart'];
for ( x=0; x<which.elements.length; x++ ) {
if ( which.elements[x].type == 'text' && which.elements[x].name.indexOf('Num_')!=-1 && which.elements[x].value!='') {
tmpCookie += which.elements[x+1].value + "|" + which.elements[x].value + ";";
}
}
setCookie('Macmillan', tmpCookie, cookieExpires, '/');
if (checkout) {
document.location.href = "/secondary/site/libraries/checkout";
}
else {
refreshWindow();
}
}
else if (document.forms[0].PageType.value=="onixProduct") {
document.location.href = "/secondary/site/libraries/checkout";
}
else {
document.location.href = "/secondary/site/libraries/checkout";
}
}
// yes
function removefromCart(id) { // remove single item from cart
getCookie('Macmillan') ? thisCookie = getCookie('Macmillan') : thisCookie = "";
var cookieExpires = new Date();
cookieExpires.setTime(cookieExpires.getTime() + (1 * 60 * 60 * 1000 ));
var thisCookieSplit = thisCookie.split(';');
var tmpCookie = "";
for (var i=0;i<thisCookieSplit.length-1;i++) {
var splitElement = thisCookieSplit[i].split('|');
if (splitElement[0]!=id) {
tmpCookie += thisCookieSplit[i] + ";";
}
}
setCookie('Macmillan', tmpCookie, cookieExpires, '/');
refreshWindow();
}
function setCart() { // adds all selected items to cart
//var regExp1 = /\d+/ig;
var which = document.forms['cart'];
var cookieExpires = new Date();
getCookie('Macmillan') ? tmpCookie = getCookie('Macmillan') : tmpCookie = "";
cookieExpires.setTime(cookieExpires.getTime() + (1 * 60 * 60 * 1000 ));
for ( x=0; x<which.elements.length; x++ ) {
if ( which.elements[x].type == 'checkbox' && which.elements[x].checked) {
var thisUnits = eval("which.Num_" + getFront(which.elements[x].value,'|'));
//if (thisUnits.value == 0) {alert('break');}
// check fields
if (thisUnits.value == "") {
alert('Please enter a quantity')
return false;
}
/*if (!regExp1.test(thisUnits.value)) {
alert("-" + thisUnits.value + "-"); 
alert("-" + which.elements[x].value + "-"); 
alert('Only enter numbers for the quantity')
return false;
}*/
tmpCookie += which.elements[x].value + "|" + thisUnits.value + ";"; 
}
}
setCookie('Macmillan', tmpCookie, cookieExpires, '/');
refreshWindow();
}
function getSummary() {
var thisTotal = document.getElementById("total");
var thisNumItems = document.getElementById("items");
// var total = getTotal();
var tmp = splitCookie('Macmillan');
var total = 0;
for (var i=0;i<tmp.length;i++) {
if (tmp[i][3]=="B") {
var fix = tmp[i][2].substring(1);
total+=(Number(fix)*Number(tmp[i][4]));
}
}
//var items = getNumItems();
var tmp2 = splitCookie('Macmillan');
var items = 0;
for (var i=0;i<tmp2.length;i++) {
items+=Number(tmp[i][4]);
}
thisTotal.innerHTML = "Current total: " + num2money(total);
thisNumItems.innerHTML = "Number of items in cart: " + items;

}
function getTotal() {
var tmp = splitCookie('Macmillan');
var total = 0;
for (var i=0;i<tmp.length;i++) {
if (tmp[i][3]=="B") {
var fix = tmp[i][2].substring(1);
total+=(Number(fix)*Number(tmp[i][4]));
}
}
//return total.toFixed(2);
return total;
}
function getNumItems() {
var tmp = splitCookie('Macmillan');
var numItems = 0;
for (var i=0;i<tmp.length;i++) {
numItems+=Number(tmp[i][4]);
}
return numItems;
}
function getCart() {

}
function prefillCart() {
var which = document.forms['cart'];
which.reset();

}
