// JavaScript Document
//var $error_bg_color = '#CCE5FB';
//var $error_bg_color = '#F8E9CA';
var $error_bg_color = '#FFB693';
var $input_bg_color = '#FFFFFF';

function validateEmailForm() {
	var EmailForm = document.forms['EmailForm'];
	var input_name = EmailForm.elements['Name'];
	var input_email = EmailForm.elements['Email'];
	var input_comments = EmailForm.elements['Comments'];
	
	var validated = true;
	
	if ( !validateText(input_name, 'NameHelp') )
		validated = false;
	if ( !validateEmail(input_email) )
		validated = false;
	if ( !validateText(input_comments, 'CommentsHelp') )
		validated = false;
	
	if (validated) {
		var HideForm = getObj('Form');
		HideForm.style.visibility = 'hidden';
		
		var ShowProgress = getObj('Progress');
		ShowProgress.style.width = '500px';
		ShowProgress.style.height = '200px';
		ShowProgress.style.zIndex = '100';

		ShowProgress.style.visibility = 'visible';
		EmailForm.submit();
	}
}

function validateContactForm() {
	var ContactForm = document.forms['ContactForm'];
	var input_name = ContactForm.elements['full_name'];
	var input_add1 = ContactForm.elements['address_1'];
	var input_add2 = ContactForm.elements['address_2'];
	var input_city = ContactForm.elements['city'];	
	var input_state = ContactForm.elements['state'];	
	var input_zip = ContactForm.elements['zip'];	
	var input_phone = ContactForm.elements['phone'];
	var input_email = ContactForm.elements['email'];
	
	var validated = true;
	
	if ( !validateText(input_name, 'FullNameHelp') )
		validated = false;
	if ( !validateText(input_add1, 'Address1Help') )
		validated = false;
//	if ( validateText(input_add2) )
//		validated = false;
	if ( !validateText(input_city, 'CityHelp') )
		validated = false;
	if ( !validateText(input_state, 'StateHelp') )
		validated = false;
	if ( !validateZip(input_zip) )
		validated = false;
	if ( !validatePhone(input_phone) )
		validated = false;
	if ( !validateEmail(input_email) )
		validated = false;

	if (validated) {
		ContactForm.submit();
	}
}

function validateText(input, helperId) {
	var value = input.value;
	var help = getObj(helperId);
	
	if (value==""||value==null) {
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	} else {
		input.style.backgroundColor = $input_bg_color;
		help.style.visibility = 'hidden';
		input.focus();
		return true;
	}
}

function validateAddress1(input) {
}

function validateAddress2(input) {
}

function validateCity(input) {
}

function validateState(input) {
}

function validateZip(input) {
	var value = input.value;
	var help = getObj('ZipHelp');
	var valid = "0123456789-";
	var alertMsg = "";
	var hyphencount = 0;

	if ( value==null || value=="" || (value.length!=5 && value.length!=10) ) {
		alertMsg = "Please enter your zip code. (ie: 40241 or 12345-1234)";
		input.style.backgroundColor = $error_bg_color;
		help.innerHTML = alertMsg;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}
	
	for (var i=0; i < value.length; i++) {
		temp = "" + value.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") {
			alertMsg = "Invalid characters, please try again. (ie: 40241 or 12345-1234)";
			input.style.backgroundColor = $error_bg_color;
			help.innerHTML = alertMsg;
			help.style.visibility = 'visible';
			input.focus();
			return false;
		}
	}
	
	if ((hyphencount > 1) || ((value.length==10) && ""+value.charAt(5)!="-")) {
		alertMsg = "Try a properly formatted &quot;hyphen&quot; zip code. (ie: 12345-1234)";
		input.style.backgroundColor = $error_bg_color;
		help.innerHTML = alertMsg;
		help.style.visibility = 'visible';
		input.focus();
		return false;
   	}
	
	input.style.backgroundColor = $input_bg_color;
	help.style.visibility = 'hidden';
	return true;
}

function validatePhone(input) {
	var value = input.value;
	var help = getObj('PhoneHelp');
	// Declaring required variables
	var digits = "0123456789";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	
	if (value==null || value=="") {
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
	}
	
	function isInt (str) {
		var i = parseInt(str);

		if (isNaN (i))
			return false;

		i = i . toString ();
		if (i != str)
			return false;

		return i;
	}
	
	function stripIntegers(str) {
		var i;
		var digits = "";
    	for (i = 0; i < str.length; i++) {   
        // Check that current character is number.
	        var c = str.charAt(i);
			var digit = isInt(c);
    	    if (digit)
				digits += digit;
    	}
	    // All characters are numbers.
    	return digits;
	}
	
	var strippedInts = stripIntegers(value);
	if (strippedInts.length >= minDigitsInIPhoneNumber) {
		value = strippedInts;
		document.ContactForm.elements['full_name'].value = value;
		regex = /^(1)?([0-9]{3})([0-9]{3})([0-9]{4})$/;
		matched = regex.exec(value.toString());
		input.value = "("+matched[2]+") "+matched[3]+"-"+matched[4];
		input.style.backgroundColor = $input_bg_color;
		help.style.visibility = 'hidden';
		input.focus();
		return true;
	} else {
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}
}

function validateEmail(input) {
	var email = input.value;
	var help = getObj('EmailHelp');

	var at="@";
	var dot=".";
	var lat=email.indexOf(at);
	var lemail=email.length;
	var ldot=email.indexOf(dot);
	
	if (email==null || email=="") {
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
	   	return false;
	}	
	
	if (email.indexOf(at)==-1) {
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
	   	return false;
	}

	if (email.indexOf(at)==-1 || email.indexOf(at)==0 || email.indexOf(at)==lemail){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}

	if (email.indexOf(dot)==-1 || email.indexOf(dot)==0 || email.indexOf(dot)==lemail){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}

	if (email.indexOf(at,(lat+1))!=-1){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}

	if (email.substring(lat-1,lat)==dot || email.substring(lat+1,lat+2)==dot){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}

	if (email.indexOf(dot,(lat+2))==-1){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}
		
	if (email.indexOf(" ")!=-1){
		input.style.backgroundColor = $error_bg_color;
		help.style.visibility = 'visible';
		input.focus();
		return false;
	}

	input.style.backgroundColor = $input_bg_color;
	help.style.visibility = 'hidden';
	return true;
}

function Checkout() {
//	document.update.elements['remove_one'].value = -1;
//	document.update.elements['remove_all'].value = false;
//	document.update.elements['checkout'].value = the_boolean;
	document.update.action = "checkout.php";
	document.update.submit();
}

function RemoveOne(cartIndex) {
	document.update.elements['remove_one'].value = cartIndex;
	document.update.submit();
}

function RemoveAll(the_boolean) {
	document.update.elements['remove_all'].value = the_boolean;
	document.update.submit();
}

function Update(the_boolean) {
//	document.update.elements['remove_one'].value = -1;
//	document.update.elements['remove_all'].value = false;
	document.update.elements['update_quantities'].value = the_boolean;
	document.update.submit();
}

function AddToCart() {
	document.SingleItem.submit();
}
	
function ChangeColor() {
	document.SingleItem.action = "displayLargeItem.php";
	document.SingleItem.submit();
}
// END JavaScript
