function checkOrderForm() {
  var cont=true;
  cont = (cont) ? requiredField(document.getElementById("FirstName"), "First Name") : false;
  cont = (cont) ? requiredField(document.getElementById("LastName"), "Last Name") : false;
  cont = (cont) ? requiredField(document.getElementById("Address"), "Address"): false;
  cont = (cont) ? requiredField(document.getElementById("Town"), "Town") : false;
  cont = (cont) ? requiredField(document.getElementById("PostCode"), "Post Code") : false;
  cont = (cont) ? requiredField(document.getElementById("Country"), "Country") : false;
  cont = (cont) ? requiredField(document.getElementById("EmailAddress"), "Email Address") : false;
  //cont = (cont) ? twoRequiredFields(document.getElementById("wanderingbuy"), document.getElementById("AboriginalArtCatalogueNumber"), "Book Quantity", "Aboriginal Art, Catalogue Number") : false;
  //cont = (cont) ? oneDependsOnOther(document.getElementById("wanderingquantity"), document.getElementsByName("wanderingbuy")[0], "the Number of Copies", "for 17 Years Wandering") : false;
  //cont = (cont) ? oneDependsOnOther(document.getElementById("makingfirequantity"), document.getElementsByName("makingfirebuy")[0], "the Number of Copies", "Making Fire") : false;
  cont = (cont) ? checkPurchases() : false;
  cont = (cont) ? requiredField(document.getElementById("TotalCost"), "Total Cost") : false;
  cont = (cont) ? creditCardValidation(document.getElementById("CardType"), document.getElementById("NameOnCard"), document.getElementById("CardNumber"), document.getElementById("ExpiryDate"), document.getElementById("SecurityCode")) : false ;
return cont;
}
function prepareSubmit() {
	document.getElementById("email").value = document.getElementById("EmailAddress").value;
	document.getElementById("FullAddress").value = '\n' + document.getElementById('FirstName').value + ' ' + document.getElementById('LastName').value + ' \n' + document.getElementById('Address').value + '\n' + document.getElementById('Town').value + ' ' + document.getElementById('PostCode').value + '\n' + document.getElementById('Country').value
}
function creditCardValidation(cardType, cardName, cardNumber, expiryDate, securityCode) {
  if ((
	   (cardType.value.length > 0) || 
	   (cardName.value != "") || 
	   (cardNumber.value != "") || 
	   (expiryDate.value != "") || 
	   (securityCode.value != "")
	  ) && (
	   (cardType.value.length == 0) || 
	   (cardName.value == "") || 
	   (cardNumber.value == "") || 
	   (expiryDate.value == "") || 
	   (securityCode.value == "")
	  )) {
		alert("If you are entering any of the credit card information fields, you will need to enter them all.");
		if (cardType.value == "") {
			cardType.focus();
		}
		else if (cardName.value == "") {
			cardName.focus();
		}
		else if (cardNumber.value == "") {
			cardNumber.focus();
		}
		else if (expiryDate.value == "") {
			expiryDate.focus();
		}
		else if (securityCode.value == "") {
			securityCode.focus();
		}
		return false;
  }
  return true;
}
function twoRequiredFields(field1, field2, fieldname1, fieldname2) {
  if ((field1.value == "") && (field2.value == "")) {
    alert("You must specify at least one of the " + fieldname1 + " or " + fieldname2 + " fields.");
	field1.focus();
	return false;
  }
  return true;
}
function oneDependsOnOther(field1, field2, fieldname1, fieldname2) {
  if ((field1.value == "") && (field2.value != "")) {
    alert("You must specify " + fieldname1 + " when you specify " + fieldname2 + " field.");
	field1.focus();
	return false;
  }
  return true;
}
function checkPurchases() {
	if ((document.getElementById("AboriginalArtCatalogueNumber").value == "") && 
				(document.getElementsByName("wanderingbuy")[0].checked == false) && 
				(document.getElementsByName("uncontrollablebuy")[0].checked == false) && 
				(document.getElementsByName("kakadubuy")[0].checked == false) && 
				(document.getElementsByName("notesbuy")[0].checked == false) && 
				(document.getElementsByName("makingfirebuy")[0].checked == false)) {
		alert("You haven't selected any purchases yet. Your form was NOT submitted!");
		return false;
	}
	return true;
}
				
function requiredField(field, fieldname) {
  if (field.value == "") {
    alert(fieldname + " is a required field.");
	field.focus();
	return false;
  }
  return true;
}
function requiredRadio(group, groupname) {
  var beenChecked = false;
  for (RRindex = 0; RRindex < group.length; RRindex++) {
    if (group.item(RRindex).checked) {
	  beenChecked = true;
	}
  }
  if (!beenChecked) {
    alert("Please select one of the\n" + groupname + " options");
    group.item(0).focus();
	return false;
  }
  return true;
}
function requiredCheckbox(group, groupname) {
  var beenChecked = false;
  for (RCindex = 0; RCindex < group.length; RCindex++) {
    if (group.item(RCindex).checked) {
	  beenChecked = true;
	}
  }
  if (!beenChecked) {
    alert("Please select at least one of the\n" + groupname + " options");
    group.item(0).focus();
	return false;
  }
  return true;
}
function isDigit(strDigit) {
	var digitArray = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'), j;
		for (j = 0; j < digitArray.length; j++) {
			if (strDigit == digitArray[j]) {
				return true;
			}
      	}  
	return false;
}
function isPositiveInteger(strValue) {
   	var strData = new String(strValue);
   	if (!isDigit(strData.charAt(0))) {
		if (strData.charAt(0) != '+') {
			return false;
		}
	}
	for (var i = 1; i < strData.length; i++) {
		if (!isDigit(strData.charAt(i))) {
			return false;
		}
	}
	return true
}
// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function Len(str) {
	return String(str).length;
}


function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

var wanderingpriceA = 31.00;
var wanderingpriceO = 40.00;
var makingfirepriceA = 31.00;
var makingfirepriceO = 40.00;
var kakadupriceA = 48.00;
var kakadupriceO = 58.00;
var uncontrollablepriceA = 31.00;
var uncontrollablepriceO = 40.00;
var notespriceA = 31.00;
var notespriceO = 40.00;

function checkcountry() {
	if ((trim(document.getElementById("Country").value) == "") || (document.getElementById("Country").value == "undefined") || (document.getElementById("Country").value == "null")) {
		return false;
	} else {
		return true;
	}
}
function buy(whichbook) {
	if (checkcountry() == true) {
		if (isPositiveInteger(document.getElementById(whichbook+'quantity').value)) {
			if (document.getElementsByName(whichbook+'buy')[0].checked == true) {
				if (document.getElementById(whichbook+'quantity').value == 0) {
					document.getElementById(whichbook+'quantity').value = 1;
				}
			} else {
					document.getElementById(whichbook+'quantity').value = 0;
					document.getElementById(whichbook+'price').value = '$0.00';
					document.getElementById("TotalCost").value = 
						formatCurrency(parseFloat(Right(document.getElementById("wanderingprice").value,Len(document.getElementById("wanderingprice").value) -1).replace(/,/,"")) + 
													 parseFloat(Right(document.getElementById("makingfireprice").value,Len(document.getElementById("makingfireprice").value) -1).replace(/,/,"")) + 
													 parseFloat(Right(document.getElementById("kakaduprice").value,Len(document.getElementById("kakaduprice").value) -1).replace(/,/,"")) + 
													 parseFloat(Right(document.getElementById("notesprice").value,Len(document.getElementById("notesprice").value) -1).replace(/,/,"")) + 
													 parseFloat(Right(document.getElementById("uncontrollableprice").value,Len(document.getElementById("uncontrollableprice").value) -1).replace(/,/,"")));
			}
			if (document.getElementById("Country").value == 'Australia') {
				document.getElementById(whichbook+'price').value = formatCurrency(eval(whichbook+'priceA') * document.getElementById(whichbook+'quantity').value);
			} else {
				document.getElementById(whichbook+'price').value = formatCurrency(eval(whichbook+'priceO') * document.getElementById(whichbook+'quantity').value);
			}
			document.getElementById("TotalCost").value = formatCurrency(parseFloat(Right(document.getElementById("wanderingprice").value,Len(document.getElementById("wanderingprice").value) -1).replace(/,/,"")) + 
																																	parseFloat(Right(document.getElementById("makingfireprice").value,Len(document.getElementById("makingfireprice").value) -1).replace(/,/,"")) + 
																																	parseFloat(Right(document.getElementById("kakaduprice").value,Len(document.getElementById("kakaduprice").value) -1).replace(/,/,"")) + 
																																	parseFloat(Right(document.getElementById("notesprice").value,Len(document.getElementById("notesprice").value) -1).replace(/,/,"")) + 
																																	parseFloat(Right(document.getElementById("uncontrollableprice").value,Len(document.getElementById("uncontrollableprice").value) -1).replace(/,/,"")));
		} else {
			alert("You must enter a valid number for the quantity.");
			document.getElementById(whichbook+'quantity').focus();
		}
	}
	else {
		alert("Please select a country first.");
		document.getElementById("Country").focus();
	}
}
function quantity(whichbook) {
	if (checkcountry() == true) {
		if (isPositiveInteger(document.getElementById(whichbook+'quantity').value)) {
			if ((document.getElementsByName(whichbook+'buy').checked == true) && (document.getElementById(whichbook+'quantity').value == 0)) {
				document.getElementsByName(whichbook+'buy')[0].checked = false;
				document.getElementById(whichbook+'quantity').focus();
			} else {
				if (document.getElementById(whichbook+'quantity').value > 0) {
					if (document.getElementsByName(whichbook+'buy')[0].checked == false) {
						(document.getElementsByName(whichbook+'buy')[0].checked = true);
					}
					if (document.getElementById("Country").value == 'Australia') {
						document.getElementById(whichbook+'price').value = formatCurrency(eval(whichbook+'priceA') * document.getElementById(whichbook+'quantity').value);
					} else {
						document.getElementById(whichbook+'price').value = formatCurrency(eval(whichbook+'priceO') * document.getElementById(whichbook+'quantity').value);
					}
					document.getElementById("TotalCost").value = formatCurrency(parseFloat(Right(document.getElementById("wanderingprice").value,Len(document.getElementById("wanderingprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("makingfireprice").value,Len(document.getElementById("makingfireprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("kakaduprice").value,Len(document.getElementById("kakaduprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("notesprice").value,Len(document.getElementById("notesprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("uncontrollableprice").value,Len(document.getElementById("uncontrollableprice").value) -1).replace(/,/,"")));
				} else {
					document.getElementById(whichbook+'quantity').value = 0;
					document.getElementById(whichbook+'price').value = '$0.00';
					document.getElementsByName(whichbook+'buy')[0].checked = false
					document.getElementById("TotalCost").value = formatCurrency(parseFloat(Right(document.getElementById("wanderingprice").value,Len(document.getElementById("wanderingprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("makingfireprice").value,Len(document.getElementById("makingfireprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("kakaduprice").value,Len(document.getElementById("kakaduprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("notesprice").value,Len(document.getElementById("notesprice").value) -1).replace(/,/,"")) + 
																																			parseFloat(Right(document.getElementById("uncontrollableprice").value,Len(document.getElementById("uncontrollableprice").value) -1).replace(/,/,"")));
					//alert("You must enter a valid number for the quantity.");
					//document.getElementById(whichbook+'quantity').focus();
				}
			}
		} else {
			alert("You must enter a valid number for the quantity.");
			document.getElementById(whichbook+'quantity').focus();
		}
	} else {
		alert("Please select a country first.");
		document.getElementById("Country").focus();
	}
}
function recalculate() {
	buy("wandering");
	buy("makingfire");
	buy("kakadu");
	buy("uncontrollable");
	buy("notes");
}