function shipping_to_billing(form) 
{
	if (form.copy_fields.checked) 
	{
		form.shipping_first_name.value = form.billing_first_name.value;
		form.shipping_last_name.value = form.billing_last_name.value;
		form.shipping_address.value = form.billing_address.value;
		form.shipping_address2.value = form.billing_address2.value;
		form.shipping_city.value = form.billing_city.value;
		form.shipping_zip.value = form.billing_zip.value;
		form.shipping_province.value = form.billing_province.value;
		form.shipping_country.value = form.billing_country.value;
		form.shipping_phone.value = form.billing_phone.value;
		form.shipping_state.selectedIndex = form.billing_state.selectedIndex;
		form.shipping_country.selectedIndex = form.billing_country.selectedIndex;
		form.shipping_email.value = form.billing_email.value;
	}else{
		form.shipping_first_name.value = "";
		form.shipping_last_name.value = "";
		form.shipping_address.value = "";
		form.shipping_address2.value = "";
		form.shipping_city.value = "";
		form.shipping_zip.value = "";
		form.shipping_province.value = "";
		form.shipping_country.value = "";
		form.shipping_phone.value = "";
		form.shipping_state.selectedIndex = 0;
		form.shipping_country.selectedIndex = 0
		form.shipping_email.value = "";
     
     }
}



// Return true if value is an e-mail address
function isEmail(value) 
{
	invalidChars = " /:,;";

	if (value=="") 
		return false;
	
	for (i=0; i<invalidChars.length;i++) {
	   badChar = invalidChars.charAt(i);
	   if (value.indexOf(badChar,0) != -1) return false;
	}
	
	atPos = value.indexOf("@", 1);
	if (atPos == -1) return false;
	if (value.indexOf("@", atPos + 1) != -1) return false;
	
	periodPos = value.indexOf(".", atPos);
	if (periodPos == -1) return false;
	
	if (periodPos+3 > value.length) return false;

	return true;
}


/**
 * gktools 990930
 * by Jorge Cacho, September 30 1999
 * Copyright (c) 1999 Jorge Cacho
 *
 * Jorge Cacho grants you a royalty free license to use or modify this
 * software provided that this copyright notice appears on all copies.
 * This software is provided "AS IS," without a warranty of any kind.
 */
 
var reqFieldsNum = 18;
var requiredFields = new Array(reqFieldsNum);
requiredFields[0] = "shipping_first_name";
requiredFields[1] = "shipping_last_name";
requiredFields[2] = "shipping_address";
requiredFields[3] = "shipping_city";
requiredFields[4] = "shipping_zip";	
requiredFields[5] = "shipping_state";
requiredFields[6] = "shipping_country";	
requiredFields[7] = "shipping_phone";	
requiredFields[8] = "billing_first_name";
requiredFields[9] = "billing_last_name";
requiredFields[10] = "billing_address";
requiredFields[11] = "billing_city";
requiredFields[12] = "billing_zip";	
requiredFields[13] = "billing_state";
requiredFields[14] = "billing_country";	
requiredFields[15] = "billing_phone";
requiredFields[16] = "billing_email";	
requiredFields[17] = "shipping_email";

var myform = "";
function checkForm(form){
myform = form;
var spaceLine = "------------------------------------------------";
var errMsg = "Please select at least one item from the list and try again.\n"+spaceLine+"\nPor favor seleccione or lo menos una cosa de la lista y trate de nuevo.";

for(i = 0; i<form.elements.length; i++){
		if((form.elements[i].type == "text") || (form.elements[i].type == "password") || (form.elements[i].type == "textarea")){
			if((form.elements[i].value == "") && (isRequired(form.elements[i].name)) ){
				alert("Please fill in all required fields, before submission.\n"+spaceLine+"\nPor favor llene los espacios necesarios antes de mandar.");
				form.elements[i].focus();
				return false;
			}
			//else if( ((form.elements[i].name=="email") || (form.elements[i].name=="billing_email") || (form.elements[i].name=="shipping_email")) && ((form.elements[i].value).indexOf("@") == -1)){
			else if((form.elements[i].name=="email") && ((form.elements[i].value).indexOf("@") == -1)){
				alert("Please provide us with an appropiate email address, before submission.\n"+spaceLine+"\nPor favor ponga un email correcto antes de mandar.");
				form.elements[i].focus();
				return false;
			}
		}
		// process list fields
		else if(form.elements[i].type == "select-one"){
			// check the language
//			if((form.elements[i].name == "LANGUAGE")){
				if(isListItemValid(form.elements[i])){

}
				else{
					var fName = "\n\nThe following field was found incomplete:\n\n\t - "+form.elements[i].name;
					alert(errMsg+fName);
					form.elements[i].focus();
					return false;					
				}
		//	}
		} // end else
	}// end for
	disableForm(form);
	return true;
}

function isRequired(fieldName){
	for(j = 0; j < requiredFields.length; j++){
		if((requiredFields[j].toLowerCase()) == (fieldName.toLowerCase())){
			return true;
		}
	}
	return false;
}

function disableForm(form){
			var bcount = form.elements.length;
			for(i = 0; i < bcount; i++){
				var btype = form.elements[i].type;
				if(!form.elements[i].disabled && btype == "submit"){
					form.elements[i].disabled = true;
				}
			}// end for
			return true;
}

function isListItemValid(listObject){
	// if 0, not valid
	var ind = listObject.options.selectedIndex;
	if(ind == 0){
		if(!isAlternateEmpty(listObject)){
			return true;	
		}
		return false;
	}
	else{
		return true;
	}
}

function getListItemValue(listObject){
	// gets the value of the item
	var ind = listObject.options.selectedIndex;
	var val = listObject.options[ind].value;
	return val;
}

function isAlternateEmpty(obj){

	if(obj.name == "shipping_state" && myform.shipping_province.value==""){
		return true;
	}else if(obj.name == "shipping_country" && myform.shipping_country_other.value==""){
		return true;
	}else if(obj.name == "billing_state" && myform.billing_province.value==""){
		return true;
	}else if(obj.name == "billing_country" && myform.billing_country_other.value==""){
		return true;
	}
	
	return false;


}

