var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
var keyCode = (isNN) ? e.which : e.keyCode; 
var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
if(input.value.length >= len && !containsElement(filter,keyCode)) {
input.value = input.value.slice(0, len);
input.form[(getIndex(input)+1) % input.form.length].focus();
}

function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
		return found;
}
	
function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
		if (input.form[i] == input)index = i;
		else i++;
		return index;
}
return true;
}



function ShipToBillPerson(form) {
	if (form.same.checked) {
	form.shipfirstname.value = form.billfirstname.value;
	form.shiplastname.value = form.billlastname.value;
	form.shipaddress.value = form.billaddress.value;
	form.shipaddress2.value = form.billaddress2.value;
	form.shipcity.value = form.billcity.value;
	form.shipzipcode.value = form.billzipcode.value;
	form.shipstate.selectedIndex = form.billstate.selectedIndex;
	}
	else {
	form.shipfirstname.value = '';
	form.shiplastname.value = '';
	form.shipaddress.value = '';
	form.shipaddress2.value = '';
	form.shipcity.value = '';
	form.shipzipcode.value = '';       
	form.shipstate.selectedIndex = shipstateIndex;
   }
}

function validEmail(myform,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(myform,fieldLabel))
		result = false;

	if (result && ((myform.value.length < 3) || !isEmailAddr(myform.value)) )
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		myform.focus();
		result = false;
	}
   
  return result;

}
function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(myform,fieldLabel)
{
	var result = true;
	
	if (myform.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		myform.focus();
		result = false;
	}
	
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}
function validNum(myform,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(myform,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(myform.value))
 		{
 			alert('Please enter only numeric characters for the "' + fieldLabel +'" field.');
			myform.focus();		
			result = false;
		}
	} 
	
	return result;
}
function validInt(myform,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(myform,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(myform.value,10);
 		if (isNaN(num))
 		{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			myform.focus();		
			result = false;
		}
	} 
	
	return result;
}

function validMatch(field1, field2, fieldlabel)
{
	var result = true;

	if (field1.value != field2.value)
	{
		alert('Your ' + fieldlabel +' confirmation entries do not match');
		field1.focus()
		result = false;
	}
	
	return result;
}

function validateForm(myform)
{	
	if (!validRequired(myform.billfirstname,"Billing First Name"))
		return false;
	if (!validRequired(myform.billlastname,"Billing Last Name"))
		return false;
	if (!validRequired(myform.billaddress,"Billing Address"))
		return false;
	if (!validRequired(myform.billcity,"Billing City"))
		return false;
	if (!validRequired(myform.billzipcode,"Billing Zip Code"))
		return false;
	if (!validNum(myform.billzipcode,"Billing Zip Code",true))
		return false;
	if (!validNum(myform.phone,"Billing Phone Number",true))
		return false;	
	
	if (!validRequired(myform.shipfirstname,"Shipping First Name"))
		return false;
	if (!validRequired(myform.shiplastname,"Shipping Last Name"))
		return false;
	if (!validRequired(myform.shipaddress,"Shipping Address"))
		return false;
	if (!validRequired(myform.shipcity,"Shipping City"))
		return false;
	if (!validRequired(myform.shipzipcode,"Shipping Zipcode"))
		return false;
	if (!validNum(myform.shipzipcode,"Shipping Zipcode",true))
		return false;		
	if (!validRequired(myform.username,"Email Address"))
		return false;	
	if (!validEmail(myform.username,"Email Address",true))
		return false;	
	if (!validRequired(myform.username2,"Confirm Email Address"))
		return false;	
	if (!validMatch(myform.username, myform.username2,"Email Address"))
		return false;						
	if (!validRequired(myform.password,"Password"))
		return false;		
	if (!validRequired(myform.password2,"Confirm Password"))
		return false;
	if (!validMatch(myform.password, myform.password2,"Password"))
		return false;									
}

function validateEmail(myform)
{
	if (!validRequired(myform.username,"Email Address"))
		return false;
	if (!validEmail(myform.username,"Email Address",true))
		return false;
}

function validatePassword(myform)
{
	if (!validRequired(myform.password,"Password"))
		return false;		
	if (!validRequired(myform.password2,"Confirm Password"))
		return false;
	if (!validMatch(myform.password, myform.password2,"Password"))
		return false;		
}

function validateShipping(myform)
{	
	if (!validRequired(myform.shipfirstname,"Shipping First Name"))
		return false;
	if (!validRequired(myform.shiplastname,"Shipping Last Name"))
		return false;
	if (!validRequired(myform.shipaddress,"Shipping Address"))
		return false;
	if (!validRequired(myform.shipcity,"Shipping City"))
		return false;
	if (!validRequired(myform.shipzipcode,"Shipping Zipcode"))
		return false;
	if (!validNum(myform.shipzipcode,"Shipping Zipcode",true))
		return false;										
}

function validateShipping2(myform)
{	
	if (!validRequired(myform.addressname,"Shipping Address Name"))
		return false;
	if (!validRequired(myform.shipfirstname,"Shipping First Name"))
		return false;
	if (!validRequired(myform.shiplastname,"Shipping Last Name"))
		return false;
	if (!validRequired(myform.shipaddress,"Shipping Address"))
		return false;
	if (!validRequired(myform.shipcity,"Shipping City"))
		return false;
	if (!validRequired(myform.shipzipcode,"Shipping Zipcode"))
		return false;
	if (!validNum(myform.shipzipcode,"Shipping Zipcode",true))
		return false;										
}

function validateBilling(myform)
{
	if (!validRequired(myform.billfirstname,"Billing First Name"))
		return false;
	if (!validRequired(myform.billlastname,"Billing Last Name"))
		return false;
	if (!validRequired(myform.billaddress,"Billing Address"))
		return false;
	if (!validRequired(myform.billcity,"Billing City"))
		return false;
	if (!validRequired(myform.billzipcode,"Billing Zip Code"))
		return false;
	if (!validNum(myform.billzipcode,"Billing Zip Code",true))
		return false;
	if (!validNum(myform.phone,"Billing Phone Number Areacode",true))
		return false;	
	if (!validNum(myform.phone2,"Billing Phone Number Prefix",true))
		return false;		
	if (!validNum(myform.phone3,"Billing Phone Number",true))
		return false;		
	if (!validEmail(myform.email,"Email Address",true))
		return false;		
}

function validateCC(myform)
{
	if (!validRequired(myform.ccnum,"Credit Card Account Number"))
		return false;	
	if (!validNum(myform.ccnum,"Credit Card Account Number",true))
		return false;
	if (!validNum(myform.ccv,"CCV Code",true))
		return false;			
}

function validateSupportEmail(myform)
{
	if (!validRequired(myform.contactname,"Your Name"))
		return false;
	if (!validRequired(myform.contactemail,"Email Address"))
		return false;
	if (!validEmail(myform.contactemail,"Email Address",true))
		return false;
	if (!validRequired(myform.message,"Message"))
		return false			
}

function validateBBStatus(myform)
{
	if (!validRequired(myform.email,"Email Address"))
		return false;
	if (!validEmail(myform.email,"Email Address",true))
		return false;
	if (!validRequired(myform.confirm,"Email Address"))
		return false;		
}

function validateShareit(myform)
{
	if (!validRequired(myform.sender,"Your Name"))
		return false;
	if (!validRequired(myform.senderemail,"Your Email Address"))
		return false;
	if (!validEmail(myform.senderemail,"Your Email Address",true))
		return false;		
	if (!validEmail(myform.sendto,"Your friend's Email Address",true))
		return false;
	if (!validRequired(myform.sendto,"Your friend's Email Address"))
		return false;		
}