//CUSTOMISABLE VARIABLES
var highlightcolor = "#DDDDFF";//colour of menu button when on the page specified in the menu
var mouseovercolor = "#DDDDDD";
var mouseoutcolor = "#00CCBB";//= btn color
var menubackgroundcolor = "#C0C0C0";
var headerbackgroundcolor = "#000000";

var menupages = "neilsselection,kellygang,aboutus,souvenirs,orders,weblinks,location,attractions,otherwines,gallery,thingstodo";//insert filename of pages linked to in left menu

//GLOBAL VARIABLES
var fname;

//BROWSERS
var recentBrowser = false; 
var isIE=false;
if ((parseInt(navigator.appVersion) >= 4 && navigator.appVersion.indexOf("MSIE") != -1) || ((parseInt(navigator.appVersion) >= 6 && navigator.appName.indexOf("Netscape") != -1))){
	recentBrowser = true; //Opera 7 also true for these parameters
	isIE=true;
}
if ((parseInt(navigator.appVersion) >= 5 && navigator.appName.indexOf("Netscape") != -1) || ((parseInt(navigator.appVersion) >= 6 && navigator.appName.indexOf("Netscape") != -1))){
	recentBrowser = true;
}

//FRAMES
if (window.location != top.location){top.location.href=window.location};

//DATE & TIME
var days = new Array(7);
days[1]="Sunday";days[2]="Monday";days[3]="Tuesday";days[4]="Wednesday";days[5]="Thursday";days[6]="Friday";days[7]="Saturday";
var months = new Array(12);
months[1]="01";months[2]="02";months[3]="03";months[4]="04";months[5]="05";months[6]="06";months[7]="07";months[8]="08";months[9]="09";months[10]="10";months[11]="11";months[12]="12";
var today = new Date();
var day = days[today.getDay() + 1]
var month = months[today.getMonth() + 1]
var date = today.getDate();
var year=today.getYear(); 
if(year<2000){year = year + 1900;}

//MENU HIGHLIGHTING
function highlightMenu(){
		if(recentBrowser){
			var thispathname= window.location.toString();
			thispathname = thispathname.replace("\\","/")
			var parts = thispathname.split("/");
			var fnameextn = parts[parts.length-1];
			var bits = fnameextn.split(".");
			fname = bits[0];
			var menuarray=menupages.split(",");
			var isMenuPage=false;
			for (var i=0;i<menuarray.length;i++){
				if(menuarray[i]==fname){
					isMenuPage=true;
				}
			}	
			if ((thispathname.indexOf("index.htm")== -1) && isMenuPage){
				document.getElementById(fname).className="menubtnactive";
				document.getElementById(fname).childNodes[0].childNodes[0].childNodes[0].childNodes[0].className="menutextactive";
			}
		}
}
function mouseoverMenu(menuid){
	if(recentBrowser){
		if (menuid==fname){
			document.getElementById(menuid).className="menubtnactive";
		}else{
			if (isIE){document.getElementById(menuid).style.cursor="hand";}
			document.getElementById(menuid).className="menubtnover";
			window.status=menuid+".htm";
			document.getElementById(menuid).title="Go to "+menuid.toUpperCase();
		}
	}	
}
function mouseoutMenu(menuid){
	if(recentBrowser){
		window.status=fname+".htm";
		if (menuid==fname){
			document.getElementById(menuid).className="menubtnactive";
		}else{
			document.getElementById(menuid).className="menubtn";
		}
	}
}
function fnmenulink(menuid){
	if(recentBrowser){
		var menulink = menuid + ".htm";
		location.href= menulink;
	}
}

function twodp(n) {
   n+=.005;
   ns = " "+n;
   ns = ns.substring(1,ns.length);
   var dp = ns.indexOf(".");
   if (dp < 0) ns = ns+".00";
   else if (dp == ns.length-2) ns = ns+"0";
   else if (dp < ns.length-1) ns = ns.substring(0,dp+3);
   return ns;
}


function pricexqty(caseprice,objqtyfield,destinationfield){
	if(!isNaN(objqtyfield.value) && parseInt(objqtyfield.value) > -1){
		if(objqtyfield.value==""){objqtyfield.value=0}
		document.order.elements[destinationfield].value=twodp(caseprice*objqtyfield.value);
		resetform();
	}else{
		alert('Please enter a number quantity');
		var objqtyfieldname = objqtyfield.name;
		document.order.elements[objqtyfieldname].focus();
		document.order.elements[objqtyfieldname].select();
	}
}

function resetform(){
		var delivery=0;
		var pieces=0;
		var subtotal=0;
		subtotal += parseFloat(document.order.elements['_2003_Reserve_Merlota'].value);
		subtotal += parseFloat(document.order.elements['_2004_Mixed_Casea'].value);
		subtotal += parseFloat(document.order.elements['_2004_Reserve_Shiraza'].value);
		subtotal += parseFloat(document.order.elements['_2004_Reserve_Merlota'].value);

		document.order.elements['subtotal'].value = twodp(subtotal);
		document.order.elements['Subtotal'].value = twodp(subtotal);

		pieces  = 0;
		pieces += parseInt(document.order.elements['_2003_Reserve_Merlot'].value);
		pieces += parseInt(document.order.elements['_2004_Mixed_Case'].value);
		pieces += parseInt(document.order.elements['_2004_Reserve_Shiraz'].value);
		pieces += parseInt(document.order.elements['_2004_Reserve_Merlot'].value);

		var state= document.order.elements['state'].value;
		if (pieces == 1){
			if (state=="VIC"){delivery=12.1}
			if (state=="NSW"){delivery=17.7}
			if (state=="QLD"){delivery=32.1}
			if (state=="SA"){delivery=17.7}
			document.order.elements['delivery'].value = twodp(delivery);
			document.order.elements['Delivery'].value = twodp(delivery);
		}else{
			if(pieces>0){
				if (state=="VIC"){delivery=4.8*(pieces-1) + 12.1}
				if (state=="NSW"){delivery=9.6*(pieces-1) + 17.7}
				if (state=="QLD"){delivery=24*(pieces-1) + 32.1}
				if (state=="SA"){delivery=10*(pieces-1) + 17.7}
				document.order.elements['delivery'].value = twodp(delivery);
				document.order.elements['Delivery'].value = twodp(delivery);
			}
		}
		var total = subtotal + delivery;
		document.order.elements['total'].value = twodp(total);
		document.order.elements['Total'].value = twodp(total);
}

function checkform(){
	//CHECK CC SELECTED
	var ctr=0;
	var type="";
	for (var i=0; i<3;i++){
		if (document.order.cc[i].checked){ 
			ctr++;
			if(i==0){type="mc"}
			if(i==1){type="vc"}
			if(i==2){type="bc"}
		}
	}
	if (ctr!=1){ 
		alert("Credit card type not selected");	
		return;
	}
	//CHECK NAME ENTERED
	if(document.order.elements['ccname'].value==""){
		alert("No credit card name entered");
		document.order.elements['ccname'].focus();
		return;
	}
	 
	//CHECK CC NUM FIELDS ALL ENTERED & BUILD NUMBER AS A STRING
	var strNum ="";
	for (var i=1;i<5;i++){
		var ccnumfield = "cc"+i;
		strNum += document.order.elements[ccnumfield].value;
		if (isNaN(document.order.elements[ccnumfield].value) || document.order.elements[ccnumfield].value==""){
			alert("Credit card number field "+i+" is incorrect")
			return;
		}
	}
	if(!isCardTypeCorrect()){
		alert ("Card number not correct for selected card type");
			return;
	}

	
	//CHECK CC NUMBER TYPE CORRECT FOR CARD TYPE
	function isCardTypeCorrect (){
		var nLen = 0;
		for (n = 0; n < strNum.length; n++){
			if (isDigit (strNum.substring (n,n+1))){
				++nLen;
			}	
		}//alert(strNum+" "+nLen)
		if (type == 'vc'){return ((strNum.substring(0,1) == '4') && (nLen == 13 || nLen == 16));}
		else if (type == 'bc'){return ((strNum.substring(0,4) == '5610') && (nLen == 16));}
		else if (type == 'mc'){return ((strNum.substring(0,2) == '51' || strNum.substring(0,2) == '52' || strNum.substring(0,2) == '53' || strNum.substring(0,2) == '54' || strNum.substring(0,2) == '55') && (nLen == 16));}
		else {return false;}
	}
	
	function isDigit (c){//CHECK IF CHARACTER IS A NUMERAL
		var strAllowed = "1234567890";
		return (strAllowed.indexOf (c) != -1);
	}
	
	//CHECK CHECKSUM
	if(false){//!isValidCardNumber (strNum)
		alert("This credit card number appears not to be valid. Please check.");
		return;
	}
	
	function isValidCardNumber (strNum){
		var nCheck = 0;
		var nDigit = 0;
		var bEven  = false;//boolean
		   
		for (n = strNum.length - 1; n >= 0; n--){//EXAMINE CHARACTERS STARTING FROM LAST
			var cDigit = strNum.charAt (n);
			if (isDigit (cDigit)){//CHECK IF CHARACTER IS A DIGIT
				var nDigit = parseInt(cDigit, 10);//CONVERT DIGIT TO A BASE 10 NUMERAL
				if (bEven){//IF bEven TRUE, FALSE FIRST TIME, IE DONT APPLY TO EVERY 2nd DIGIT
					if ((nDigit *= 2) > 9)//IF A DOUBLING OF DIGIT >9 ie IF > 4 SUBTRACT 9
					nDigit -= 9;
				}
				nCheck += nDigit;//ADD DIGIT TO PREVIOUS DIGIT
				bEven = ! bEven;// IF A DIGIT SET bEven TO OPPOSITE VALUE
			}else if (cDigit != ' ' && cDigit != '.' && cDigit != '-'){//ACCEPT ONLY BLANK SPACE, DOT OR HYPHEN
				return false;
			}
		}
		return (nCheck % 10) == 0;//RETURN TRUE IF CHECKSUM DIVISIBLE BY 10, OTHERWISE FALSE
	}

	//CHECK CC EXPIRY
	var ccmonth=document.order.elements['expirymonth'].value;
	var ccyear=document.order.elements['expiryyear'].value;
	if(ccmonth=="" || ccyear==""){
		alert("Incomplete credit card expiry details entered");
		document.order.elements['expirymonth'].focus();
		return;
	}
	var currentshortyear=year.toString().substring(2,4);//PARSE AFTER REMOVIG LEADING ZERO
	if(currentshortyear.indexOf("0")==0){
		currentshortyear=parseInt(currentshortyear.substring(1));
	}
	var currentmonth=month;
	if(currentmonth.indexOf("0")==0){
		currentmonth=parseInt(currentmonth.substring(1));
	}
	
	if(ccmonth.indexOf("0")==0){
		ccmonth=ccmonth.substring(1);
	}
	
	if(ccyear.indexOf("0")==0){
		ccyear=ccyear.substring(1);
	}

	if(parseInt(ccyear)<currentshortyear){
		alert("The entered credit card expiry date indicates that the card has expired");
		return;
	}else{
		if(ccyear==currentshortyear && parseInt(ccmonth)<currentmonth){
			alert("The entered credit card expiry date indicates that the card has expired");
			return;
		}
	}
	
	
	//CHECK POST ADDRESS ENTERED
	if(document.order.elements['address'].value==""){
		alert("No address entered");
		document.order.elements['address'].focus();
		return;
	}
	//CHECK TOWN ENTERED
	if(document.order.elements['town'].value==""){
		alert("No town entered");
		document.order.elements['town'].focus();
		return;
	}
	//CHECK POSTCODE ENTERED
	if(document.order.elements['postcode'].value==""){
		alert("No postcode entered");
		document.order.elements['postcode'].focus();
		return;
	}
	alert("Form checked. The required fields have been filled.");
}


