function formatField (expr) {
	var str=""+Math.round(eval(expr) * 100);
	var decpoint=str.length-2;
	return str.substring(0,decpoint)+"."+str.substring(decpoint,str.length);
}

function showhide(hlay,vis){
	if(vis){ vis='block'; } else { vis = 'none'; }
	if(document.getElementById){	document.getElementById(hlay).style.display = vis;
	} else if(document.all){		document.all[hlay].style.display = vis;
	} else if (document.layers){	document.layers[hlay].display = vis;
	}
}

function validateRefer(){
	var toName = document.refer.toName.value;
	var toEmail = document.refer.toEmail.value;
	var fromName = document.refer.fromName.value;
	var fromEmail = document.refer.fromEmail.value;
	var message = document.refer.message.value;
	errormsg = '';
	
	if(toName == ''){ errormsg += "- Friend's name not entered!\n"; };
	if(toEmail == ''){ errormsg += "- Friend's e-mail not valid!\n"; };
	if(fromName == ''){ errormsg += "- Your name not entered!\n"; };
	if(fromEmail == ''){ errormsg += "- Your e-mail not valid!\n"; };
	//if(message == ''){ errormsg += "- No message entered!\n"; };
	
	if(!errormsg || errormsg==''){
		return true;
	} else {
		alert(errormsg);
		return false;
	}
}

function checkMetro(pcode){
	if(
	   (pcode>=5000 && pcode<=5001) || (pcode>=5006 && pcode<=5025) ||
	   (pcode>=5031 && pcode<=5035) || (pcode>=5037 && pcode<=5052) ||
	   (pcode>=5061 && pcode<=5076) || (pcode>=5081 && pcode<=5098) ||
	   (pcode>=5106 && pcode<=5118) || (pcode>=5120 && pcode<=5121) ||
	   (pcode>=5125 && pcode<=5127) || (pcode>=5151 && pcode<=5155) ||
	   (pcode>=5158 && pcode<=5174) || (pcode>=5210 && pcode<=5214) ||
	   (pcode>=5241 && pcode<=5245) || (pcode>=5250 && pcode<=5252) ||
	   (pcode>=5350 && pcode<=5353) ||
	   (pcode==5132) || (pcode==5142) ||
	   (pcode==5144) || (pcode==5231) ||
	   (pcode==5233) || (pcode==5355) ||
	   (pcode==5360) || (pcode==5371) ||
	   (pcode==5942) || (pcode==5950)
	   ){
		return true;
	} else {
		return false;
	}
}

function checkMirror(){
	var same = document.orderForm.same.checked;
	
	if(same){
		document.orderForm.contact_delivery_firstname.value = document.orderForm.contact_bill_firstname.value;
		document.orderForm.contact_delivery_lastname.value = document.orderForm.contact_bill_lastname.value;
		document.orderForm.contact_delivery_phone.value = document.orderForm.contact_bill_phone.value;
		document.orderForm.contact_delivery_mobile.value = document.orderForm.contact_bill_mobile.value;
		document.orderForm.contact_delivery_street1.value = document.orderForm.contact_bill_street1.value;
		document.orderForm.contact_delivery_street2.value = document.orderForm.contact_bill_street2.value;
		document.orderForm.contact_delivery_suburb.value = document.orderForm.contact_bill_suburb.value;
		document.orderForm.contact_delivery_pcode.value = document.orderForm.contact_bill_pcode.value;
		document.orderForm.contact_delivery_state.value = document.orderForm.contact_bill_state.value;
	}
	
	//check metro calculation
	pcode = document.orderForm.contact_bill_pcode.value;
	total_qty = document.orderForm.small_qty.value+document.orderForm.large_qty.value;

	if(checkMetro(pcode)){
		document.orderForm.shipping.value = 20 * total_qty; //#FIX
		document.orderForm.bonus_shipping.value = 20 * Math.floor(total_qty/2);
	} else {
		document.orderForm.shipping.value = 32 * total_qty; //#FIX
		document.orderForm.bonus_shipping.value = 32 * Math.floor(total_qty/2);
	}
}

function tallyOrder(site) {
	var price_small = document.orderForm.price_small.value;
	var price_large = document.orderForm.price_large.value;
	var small_qty = parseInt(document.orderForm.small_qty.value);
	var large_qty = parseInt(document.orderForm.large_qty.value);
	
	qtyTotal = small_qty + large_qty;
	
	// site bonuses / shipping

	if(site=='au'){
		if(document.orderForm.metro.checked){
			priceFreight = 20;
		} else {
			priceFreight = 32;
		}
		priceBonus = 10;

		// $10 bonus for double orders
		if(qtyTotal>1) {
			bonus_buy2 = priceBonus * Math.floor(qtyTotal/2);
			bonus_shipping = priceFreight * Math.floor(qtyTotal/2); //free shipping for second line
		} else {
			bonus_buy2 = 0;
			bonus_shipping = 0;
		}
	
	} else if(site=='us'){
		priceFreight = 10; //18;
		priceBonus = 0; //15;

		// $15 bonus for each line if purchasing 2 or more
		if(qtyTotal>1) {
			//bonus_buy2 = priceBonus * qtyTotal;
			bonus_buy2 = 0;
		} else {
			bonus_buy2 = 0;
		}
		//bonus_shipping = priceFreight * qtyTotal; //free shipping for each line
		bonus_shipping = 0;
	}
	
	subtotalFreight = priceFreight * qtyTotal;
	subtotal = (small_qty * price_small) + (large_qty * price_large) + subtotalFreight;
	total = subtotal - bonus_buy2 - bonus_shipping;
	
	document.orderForm.subtotal.value= formatField(subtotal);
	document.orderForm.shipping.value= formatField(subtotalFreight);
	document.orderForm.bonus_buy2.value= formatField(bonus_buy2);
	document.orderForm.bonus_shipping.value= formatField(bonus_shipping);
	document.orderForm.total.value= formatField(total);
} 

function validateOrderForm(step,site){
	var returnfalse = true;
	var errormsg ='';
	
	if(step==1){
		if(document.orderForm.small_qty.value=="0" && document.orderForm.large_qty.value=="0"){
			errormsg = "Please enter a quantity to continue.";
		}
	} else if(step==2){
		if(site=='au'){ ziptitle = "Postcode"; }
		if(site=='us'){ ziptitle = "Zip code"; }
		
		var billerrormsg = '';
		var deliveryerrormsg = '';
		if(document.orderForm.contact_bill_firstname.value==""){	billerrormsg += "- First name\n"; }
		if(document.orderForm.contact_bill_lastname.value==""){		billerrormsg += "- Last name\n"; }
		if(document.orderForm.contact_bill_phone.value==""){		billerrormsg += "- Phone number\n"; }
//		if(document.orderForm.contact_bill_mobile.value==""){		billerrormsg += "- Mobile phone\n"; }
		if(document.orderForm.contact_bill_street1.value==""){		billerrormsg += "- Address\n"; }
//		if(document.orderForm.contact_bill_street2.value==""){		billerrormsg += "- Address2\n"; }
		if(document.orderForm.contact_bill_suburb.value==""){		billerrormsg += "- Suburb/town/city\n"; }
		if(document.orderForm.contact_bill_pcode.value==""){		billerrormsg += "- "+ziptitle+"\n"; }
		if(document.orderForm.contact_bill_state.value==""){		billerrormsg += "- State\n"; }
//		if(document.orderForm.contact_bill_country.value==""){		billerrormsg += "- Country\n"; }
		if(billerrormsg!=''){ errormsg += "Missing BILLING DETAILS:\n"; errormsg += billerrormsg; }

		if(document.orderForm.contact_delivery_firstname.value==""){deliveryerrormsg += "- First name\n"; }
		if(document.orderForm.contact_delivery_lastname.value==""){	deliveryerrormsg += "- Last name\n"; }
		if(document.orderForm.contact_delivery_phone.value==""){	deliveryerrormsg += "- Phone number\n"; }
//		if(document.orderForm.contact_delivery_mobile.value==""){	deliveryerrormsg += "- Mobile phone\n"; }
		if(document.orderForm.contact_delivery_street1.value==""){	deliveryerrormsg += "- Address\n"; }
//		if(document.orderForm.contact_delivery_street2.value==""){	deliveryerrormsg += "- Address2.\n"; }
		if(document.orderForm.contact_delivery_suburb.value==""){	deliveryerrormsg += "- Suburb/town/city\n"; }
		if(document.orderForm.contact_delivery_pcode.value==""){	deliveryerrormsg += "- "+ziptitle+"\n"; }
		if(document.orderForm.contact_delivery_state.value==""){	deliveryerrormsg += "- State\n"; }
//		if(document.orderForm.contact_delivery_country.value==""){	deliveryerrormsg += "- Country\n"; }
		if(billerrormsg!=''){										errormsg += "\n"; }
		if(deliveryerrormsg!=''){									errormsg += "Missing DELIVERY DETAILS:\n"; errormsg += deliveryerrormsg; }

		if(billerrormsg!='' || deliveryerrormsg!=''){ 				errormsg += "\n"; }
		if(document.orderForm.buyer_email.value==""){				errormsg += "Please enter a valid e-mail address.\n"; }
//		if(document.orderForm.instructions.value==""){				errormsg += "Please enter instructions for delivery.\n"; }
		if(validateReferer()!=''){									errormsg += validateReferer(); }
		
	} else if(step==3){

		var carderrormsg = '';
		cyy = document.orderForm.curyear.value;
		cmm = document.orderForm.curmonth.value;
		
		if(site=='au'){
			yy = document.orderForm.card_expiry_year.value;
			mm = document.orderForm.card_expiry_month.value;
			
			if(document.orderForm.cvv.value==""){		carderrormsg += "- CVV\n"; }
			if(document.orderForm.payment_type.value==""){		carderrormsg += "- Card type\n"; }
			if(document.orderForm.card_number.value==""){	carderrormsg += "- Card number\n"; }
			if(document.orderForm.card_name.value==""){	carderrormsg += "- Name on card\n"; }
			
		} else if(site=='us'){
			yy = document.orderForm.yy.value;
			mm = document.orderForm.mm.value;
			
			if(document.orderForm.cvv2.value==""){		carderrormsg += "- CVV2\n"; }
			if(document.orderForm.card.value==""){		carderrormsg += "- Card type\n"; }
			if(document.orderForm.card_num.value==""){	carderrormsg += "- Card number\n"; }
		}


		if(yy == cyy && mm < cmm){		carderrormsg += "- Card appears to have expired\n"; }
		if(carderrormsg!=''){ errormsg += "Missing payment details:\n"; errormsg += carderrormsg; }

	}
	if(!errormsg || errormsg==''){
		return true;
	} else {
		alert(errormsg);
		return false;
	}
}

//combine with validateOrderForm()
function showAlert(form,object){
	state = object.options[object.selectedIndex].value;
	if(state=="Alaska" || state=="Hawaii"
	   ||state=="Alberta"
	   ||state=="British Columbia"
	   ||state=="Manitoba"
	   ||state=="New Brunswick"
	   ||state=="Newfoundland"
	   ||state=="Northwest Territory"
	   ||state=="Nova Scotia"
	   ||state=="Ontario"
	   ||state=="Prince Edward Island"
	   ||state=="Quebec"
	   ||state=="Saskatchewan"
	   ||state=="Yukon Territory"
	   ){
		
		alert('Shipping to ' + state + ' is $50 because it is outside Continental US.');
		object.focus();
		document.orderForm.shipping.value = 50;
		//update orderSummary
		
	} else if (state=="NC"){
		alert('North Carolina is subject to 7.75% sales tax.');
		//update orderSummary
		object.focus();
	} else {
		return;
	}
}

//combine with validateOrderForm()
function validateReferer(){
	var returnfalse = true;
	var errormsg ='';
	var selVal = document.orderForm.referer[document.orderForm.referer.selectedIndex].value;
	var othVal = document.orderForm.other_text.value;
	
	var selVal_magazine = document.orderForm.referer_magazine[document.orderForm.referer_magazine.selectedIndex].value;
	var selVal_website = document.orderForm.referer_website[document.orderForm.referer_website.selectedIndex].value;
	var selVal_newspaper = document.orderForm.referer_newspaper[document.orderForm.referer_newspaper.selectedIndex].value;
	var selVal_tvguide = document.orderForm.referer_tvguide[document.orderForm.referer_tvguide.selectedIndex].value;
	var selVal_searchengine = document.orderForm.referer_searchengine[document.orderForm.referer_searchengine.selectedIndex].value;
	var selVal_other = document.orderForm.referer_other[document.orderForm.referer_other.selectedIndex].value;

	var fVal = document.orderForm.friend_detail.value;
	var fcVal = document.orderForm.friend_code.value;
	
	var askwhich = '';
	
	if(selVal=='' || ((selVal=="Other" || selVal=="Other Detail") && ((selVal_other=="Other" && othVal=='') || selVal_other ==''))){
		errormsg = "Please let us know how you found out about us.";
		
	} else if(selVal=="Magazine" && ((selVal_magazine=="Other Magazine" && othVal=='') || selVal_magazine =='')){
		askwhich = "magazine";
		
	} else if((selVal=="Newspaper" || selVal=="Other Newspaper") && ((selVal_newspaper=="Other Newspaper" && othVal=='') || selVal_newspaper =='')){
		askwhich = "newspaper";
		
	} else if(selVal=="Search Engine" && ((selVal_searchengine=="Other Search Engine" && othVal=='') || selVal_searchengine =='')){
		askwhich = "search engine";
		
	} else if(selVal=="Website" && ((selVal_website=="Other Website" && othVal=='') || selVal_website =='')){
		askwhich = "website";
		
	} else if(selVal=="TV Guide" && selVal_tvguide==''){
		askwhich = "TV guide";
		
	} else if((selVal_other=="Other Website" || selVal_other=="Occupational Therapist") && othVal==''){
		errormsg = "Please let us know which " + selVal_other + " you found out about us.";
		
	} else if((selVal_other=="Friend or relative" && (fVal=='' && fcVal=='')) || (selVal=="Friend or relative") && fVal==''){
		errormsg = "Please let us know more details about the friend who referred you.";
		
	} else {
		returnfalse = false;
	}
	
	if(askwhich!=''){ errormsg = "Please let us know which " + askwhich + " you found out about us."; }
		
	if(returnfalse){
		return errormsg;
	} else {
		return '';
	}
}

function referUpdate(val){
	var referer = document.orderForm.referer.value;
	var referer_magazine = document.orderForm.referer_magazine.value;
	var referer_website = document.orderForm.referer_website.value;
	var referer_searchengine = document.orderForm.referer_searchengine.value;
	var referer_other = document.orderForm.referer_other.value;
	var referer_newspaper = document.orderForm.referer_newspaper.value;
	var referer_tvguide = document.orderForm.referer_tvguide.value;
	var othVal = document.orderForm.other_text.value;

	//hide all
	showhide('menu_magazine',0);
	showhide('menu_website',0);
	showhide('menu_newspaper',0);
	showhide('menu_other',0);
	showhide('menu_tvguide',0); //au
	showhide('menu_searchengine',0);
	showhide('other_detail', 0);
	showhide('friend_detail', 0);

	if(referer=="Magazine"){					showhide('menu_magazine', 1);
	} else if(referer=="Newspaper"){			showhide('menu_newspaper', 1);
	} else if(referer=="Website"){				showhide('menu_website', 1);
	} else if(referer=="TV Guide"){				showhide('menu_tvguide', 1);
	} else if(referer=="Search Engine"){		showhide('menu_searchengine', 1);
	} else if(referer=="Other"){				showhide('menu_other', 1);
	} else if(referer=="Friend or relative"){	showhide('friend_detail', 1);
	}
	
	if((referer=="Magazine" && referer_magazine=="Other Magazine")
	|| ((referer=="Newspaper" || referer=="Other Newspaper") && referer_newspaper=="Other Newspaper")
	|| (referer=="Search Engine" && referer_searchengine=="Other Search Engine")
	|| (referer=="Website" && referer_website=="Other Website")
	|| referer=="Occupational Therapist"
	|| referer=="Other Website"
	|| referer=="Other Detail" || referer_other=="Other Detail"
	){
		showhide('other_detail', 1);
		document.orderForm.other_text.value= '';
	}
}
