// Function for the buffet menu form
//

function initForms() {
	
	// Entrees
	document.shMenuForm.glazedhamChk.checked = false;
	document.shMenuForm.vidaliachickenChk.checked = false;
	document.shMenuForm.cordonbleuChk.checked = false;
	document.shMenuForm.broccolichickenChk.checked = false;
	document.shMenuForm.pulledporkChk.checked = false;
	document.shMenuForm.porkloinChk.checked = false;
	document.shMenuForm.sheperdspieChk.checked = false;
	document.shMenuForm.hawaiianhamChk.checked = false;
	document.shMenuForm.chickdressChk.checked = false;
	// Veggies
	document.shMenuForm.corncasseroleChk.checked = false;
	document.shMenuForm.potatosaladChk.checked = false;
	document.shMenuForm.greenbeansChk.checked = false;
	document.shMenuForm.fourbeanChk.checked = false;
	document.shMenuForm.coleslawChk.checked = false;
	document.shMenuForm.squashcasseroleChk.checked = false;
	document.shMenuForm.sweetpotatocasseroleChk.checked = false;
	document.shMenuForm.bakedpotatoChk.checked = false;
	document.shMenuForm.cornbreadsaladChk.checked = false;
	document.shMenuForm.potatoesfluffChk.checked = false;
	// Desserts
	document.shMenuForm.tollhousepieChk.checked = false;
	document.shMenuForm.mudcakeChk.checked = false;
	document.shMenuForm.turtleccChk.checked = false;
	document.shMenuForm.cheesecakeChk.checked = false;
	document.shMenuForm.icecreamChk.checked = false;
	document.shMenuForm.peachcobblerChk.checked = false;
	document.shMenuForm.applecobblerChk.checked = false;
	document.shMenuForm.carrotcakeChk.checked = false;
	document.shMenuForm.confusioncakeChk.checked = false;
	// Breads
	document.shMenuForm.yeastrollsChk.checked = false;
	document.shMenuForm.parmesanfrenchChk.checked = false;
	document.shMenuForm.garlicfrenchChk.checked = false;
	document.shMenuForm.biscuitsChk.checked = false;
	// Total
	document.shMenuForm.totalAmt.value = 0;

	return true;
}

// Format a value as currency.
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);
}

// Check the form before we call the perl script to process.
function check_form (f) {
	
	// Check for minimal input in required fields
	if (f.personName.value.length < 2
	 || f.personEmail.value.length < 2
	 || f.receptionDate.value.length < 2) {
		alert ('You must provide your name, email and reception date.');
		return false; // Don't submit form
	}
	
	// Check for reasonable email format.
	if (!check_email(f.personEmail.value) ) {
		alert ('Your email is not in correct format. Please re-enter.');
		f.personEmail.focus();
		return false; // Don't submit form
	}
	
	// Check for one entree
	if (count_entrees(f) == 0) {
		alert ('You must pick at least one entree.');
		return false; // Don't submit form
	}
	
	// Check for three sides
	if (count_sides(f) < 3) {
		alert ('You must pick at least three sides.');
		return false; // Don't submit form
	}
	
	// Check for one dessert
	if (count_desserts(f) == 0) {
		alert ('You must pick at least one dessert.');
		return false; // Don't submit form
	}
	
	// Check for one bread
	if (count_breads(f) == 0) {
		alert ('You must pick one bread.');
		return false; // Don't submit form
	}
	
	document.shMenuForm.totalAmt.value = calcTotal(f);
	document.shMenuForm.totalDis.value = formatCurrency(document.shMenuForm.totalAmt.value); 
	
	// Submit that sucker!
	return true; 
}

function calcTotal (f) {

	var extraEntrees = count_entrees(f) - 1;
	var extraSides = count_sides(f) - 3;
	var extraDesserts = count_desserts(f) - 1;

	return (16.95 + (3 * extraEntrees) + (2 * extraSides) + (2 * extraDesserts));
}

function count_entrees (f) {
	var entreeCnt = 0;
	if (f.glazedhamChk.checked) { entreeCnt++; }
	if (f.vidaliachickenChk.checked) { entreeCnt++; }
	if (f.cordonbleuChk.checked) { entreeCnt++; }
	if (f.broccolichickenChk.checked) { entreeCnt++; }
	if (f.pulledporkChk.checked) { entreeCnt++; }
	if (f.porkloinChk.checked) { entreeCnt++; }
	if (f.sheperdspieChk.checked) { entreeCnt++; }
	if (f.hawaiianhamChk.checked) { entreeCnt++; }
	if (f.chickdressChk.checked) { entreeCnt++; }
	return entreeCnt;
}

function count_sides (f) {
	var sidesCnt = 0;
	if (f.corncasseroleChk.checked) { sidesCnt++; }
	if (f.potatosaladChk.checked) { sidesCnt++; }
	if (f.greenbeansChk.checked) { sidesCnt++; }
	if (f.fourbeanChk.checked) { sidesCnt++; }
	if (f.coleslawChk.checked) { sidesCnt++; }
	if (f.squashcasseroleChk.checked) { sidesCnt++; }
	if (f.sweetpotatocasseroleChk.checked) { sidesCnt++; }
	if (f.bakedpotatoChk.checked) { sidesCnt++; }
	if (f.cornbreadsaladChk.checked) { sidesCnt++; }
	if (f.potatoesfluffChk.checked) { sidesCnt++; }
	return sidesCnt;
}

function count_desserts (f) {
	var dessertCnt = 0;
	if (f.tollhousepieChk.checked) { dessertCnt++; }
	if (f.mudcakeChk.checked) { dessertCnt++; }
	if (f.turtleccChk.checked) { dessertCnt++; }
	if (f.cheesecakeChk.checked) { dessertCnt++; }
	if (f.icecreamChk.checked) { dessertCnt++; }
	if (f.peachcobblerChk.checked) { dessertCnt++; }
	if (f.applecobblerChk.checked) { dessertCnt++; }
	if (f.carrotcakeChk.checked) { dessertCnt++; }
	if (f.confusioncakeChk.checked) { dessertCnt++; }
	return dessertCnt;
}

function count_breads (f) {
	var breadCnt = 0;
	if (f.yeastrollsChk.checked) { breadCnt++; }
	if (f.parmesanfrenchChk.checked) { breadCnt++; }
	if (f.garlicfrenchChk.checked) { breadCnt++; }
	if (f.biscuitsChk.checked) { breadCnt++; }
	return breadCnt;
}

function check_email(e) {
	//
	// Email Validation. Written by PerlScriptsJavaScripts.com
	//
	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";

	for(i=0; i < e.length ;i++){
		if(ok.indexOf(e.charAt(i))<0){ 
			return (false);
		}	
	} 

	if (document.images) {
		re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
		re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
		if (!e.match(re) && e.match(re_two)) {
			return (-1);		
		} 
	}
}


