// JavaScript Document

function validate(page)
{
	switch(page)
	{
		case 'custom' : return validateCustom(); break;
		case 'english' : return validateEnglish(); break;
		case 'symbols' : return validateSymbols(); break;
		case 'nonper' : return validateNonPer(); break;
		case 'pouches' : return validatePouches(); break;
		case 'ribbons' : return validateRibbons(); break;
		case 'boxes' : return validateBoxes(); break;
		case 'address' : return validateAddress(); break;
		case 'payment' : return validatePayment(); break;
		case 'contact' : return validateContact(); break;
	}
}

function validateCustom()
{
	var returnValue = false;
	returnValue = validateQuantity();
	return returnValue;
}
function validateEnglish()
{
	var returnValue = false;
	returnValue = validateQuantity();
	return returnValue;
}
function validateSymbols()
{
	var returnValue = false;
	returnValue = validateQuantity();
	return returnValue;
}
function validateNonPer()
{
	var returnValue = false;
	returnValue = validateQuantity();
	if(returnValue == false)
	{
		$('error').show();
		$('error').update("Please enter a Quantity");
	}
	return returnValue;
}
function validatePouches()
{
	var returnValue = false;
	returnValue = validateQuantity();
	if($('pouchType').value == "Select Pouch Type")
	{
		returnValue = false;
	}
	return returnValue;
}
function validateRibbons()
{
	var returnValue = false;
	returnValue = validateQuantity();
	if($('ribbonColor').value == "Select Ribbon Color")
	{
		returnValue = false;
	}
	return returnValue;
}
function validateBoxes()
{
	var returnValue = false;
	returnValue = validateQuantity();
	if($('woodType').value == "Select One")
	{
		returnValue = false;
	}
	return returnValue;
}
function validateAddress()
{
	var returnValue = true;
	$('errorAddress').update("Please check the following Fields:<br />");
	$('errorAddress').hide();
	
	if($('name').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Billing Name, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('shipToName').value == "")
	{
		$('errorAddress').show();
		returnValue = false;
		$('errorAddress').update($('errorAddress').innerHTML + "Shipping Name, ");
	}							
	if($('address1').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Billing Address, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('shipToAddress').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Shipping Address, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('city').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Billing City, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('shipToCity').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Shipping City, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('zipcode').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Billing Zip code, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('shipToZipcode').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Shipping Zip code, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('phone').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Billing Phone, ");
		$('errorAddress').show();
		returnValue = false;
	}		
	if($('shipToPhone').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Shipping Phone, ");
		$('errorAddress').show();
		returnValue = false;
	}
	if($('valEmail').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Email, ");
		$('errorAddress').show();
		returnValue = false;
	}
	//alert($('conEmail').value + ' = ' + $('valEmail').value);
	if($('valEmail').value != $('conEmail').value)
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Email Confirmation, ");
		$('errorAddress').show();
		returnValue = false;
	}
	/*
	if(($('email').value == "") && ($('conEmail').value != "") && ($('email').value == $('conEmail').value))
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Email, ");
		$('errorAddress').show();
		returnValue = false;
	}
	*/
	return returnValue;
}
function validatePayment()
{
	var returnValue = true;
	$('errorPayment').update("Please check the following Fields:<br />");
	$('errorPayment').hide();

	switch($('paymentMethod').options[$('paymentMethod').selectedIndex].value)
	{
		case 'Visa' :
			if($('ccNumber').value.indexOf("4") != 0 || $('ccNumber').value == "" || $('ccNumber').value.length != 16)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			if($('cvNumber').value == "" || $('cvNumber').value.length != 3)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "CV Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			break;
		case 'Mastercard' :
			if($('ccNumber').value.indexOf("5") != 0)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;
			}
			if($('ccNumber').value == "" || $('ccNumber').value.length != 16)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			if($('cvNumber').value == "" || $('cvNumber').value.length != 3)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "CV Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			break;
		case 'Discover' :
			if($('ccNumber').value.indexOf("6") != 0)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;
			}
			if($('ccNumber').value == "" || $('ccNumber').value.length != 16)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			if($('cvNumber').value == "" || $('cvNumber').value.length != 3)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "CV Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			break;
		case 'American Express' :
			if($('ccNumber').value.indexOf("37") != 0)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;
			}
			if($('ccNumber').value == "" || $('ccNumber').value.length != 15)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "Credit Card Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			if($('cvNumber').value == "" || $('cvNumber').value.length != 4)
			{
				$('errorPayment').update($('errorPayment').innerHTML + "CV Number is Invalid<br />");
				$('errorPayment').show();
				returnValue = false;	
			}
			break;
	}
	var ccExpMonth = $('ccExpMonth').options[$('ccExpMonth').selectedIndex].value;
	var ccExpYear = $('ccExpYear').options[$('ccExpYear').selectedIndex].value;
	var date = new Date();
	var year = date.getFullYear();
	var month = date.getMonth() + 1;
	var ccFail = false;
	if( year == ccExpYear && month > ccExpMonth )
	{
		ccFail = true;
		returnValue = false;
	}
	if(ccFail)
	{
		$('errorPayment').update($('errorPayment').innerHTML + "Credit Card has Expired<br />");
		$('errorPayment').show();
		returnValue = false;
	}
	return returnValue;
}

function validateQuantity()
{
	var returnValue = false;
	if($('quantity').value != "" && parseInt($('quantity').value) > 0)
	{
		returnValue = true;
	}
	return returnValue;
}

function validateContact()
{
	var returnValue = true;
	if($('email').value == "")
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Email, ");
		$('errorAddress').show();
		returnValue = false;
	}
	if($('email').value != $('conEmail').value)
	{
		$('errorAddress').update($('errorAddress').innerHTML + "Email Confirmation, ");
		$('errorAddress').show();
		returnValue = false;
	}
	return returnValue;
}