function copy_contact_to_shipping() {
	document.getElementById("ship_to_address").value = document.getElementById("address").value;
	document.getElementById("ship_to_address2").value = document.getElementById("address2").value;
	document.getElementById("ship_to_city").value = document.getElementById("city").value;
	document.getElementById("ship_to_country").value = document.getElementById("country").value;
	generateProvinces("ship_to_");
	document.getElementById("ship_to_state").value = document.getElementById("state").value;
	document.getElementById("ship_to_zip").value = document.getElementById("zip").value;

}

function validate_checkout() {	
	var pattern_email = /([A-Za-z0-9\.\_]{1,})\@([A-Za-z0-9\.\_]{1,})\.([A-Za-z]{2,})/;
	var pattern_phone = /[^\d\s() -]/;
	var pattern_extension = /\d{0,}/;
	var msg = "";
	var error = 0;

	
//Firstname Validation
	if (document.getElementById("first_name").value == ""){
		document.getElementById("l_first_name").className = "error";
		msg = msg + "First name is empty.<br>";
		error = 1;
	} else {document.getElementById("l_first_name").className = "";}
//lastname Validation
	if (document.getElementById("last_name").value == ""){
		document.getElementById("l_last_name").className = "error";
		msg = msg + "Last Name is empty.<br>";
		error = 1;
	} else {document.getElementById("l_last_name").className = "";}
//address Validation
	if (document.getElementById("address").value == ""){
		document.getElementById("l_address").className = "error";
		msg = msg + "Address is empty.<br>";
		error = 1;
	} else {document.getElementById("l_address").className = "";}
//city Validation
	if (document.getElementById("city").value == ""){
		document.getElementById("l_city").className = "error";
		msg = msg + "City is empty.<br>";
		error = 1;
	} else {document.getElementById("l_city").className = "";}
//zipcode Validation
	if (document.getElementById("zip").value == ""){
		document.getElementById("l_zip").className = "error";
		msg = msg + "ZIP Code / Postal Code is empty.<br>";
		error = 1;
	} else {document.getElementById("l_zip").className = "";}
//Country Validation
	if (document.getElementById("country").value == ""){
		document.getElementById("l_country").className = "error";
		msg = msg + "Country is empty.<br>";
		error = 1;
	} else {document.getElementById("l_country").className = "";}
//State Validation
	if ((document.getElementById("country").value == "United States" || document.getElementById("country").value == "Canada" || document.getElementById("country").value == "Australia") && document.getElementById("state").value == ""){
		document.getElementById("l_state").className = "error";
		msg = msg + "State is should be filled if country is USA, Canada or Australia.<br>";
		error = 1;
	} else {document.getElementById("l_state").className = "";}
//email Validation
	if (document.getElementById("email").value == ""){
		document.getElementById("l_email").className = "error";
		msg = msg + "Email is empty.<br>";
		error = 1;
	} else {
		if (document.getElementById("email").value.match(pattern_email)) {
			document.getElementById("l_email").className = "";
		} else {
			document.getElementById("l_email").className = "error";
			msg = msg + "Email format is invalid.<br>";
			error = 1;
		}
	}
//phone validation
	if (!document.getElementById("phone").value.match(pattern_phone)) {
			document.getElementById("l_phone").className = "";
		} else {
			document.getElementById("l_phone").className = "error";
			msg = msg + "Phone format is invalid.<br>";
			error = 1;
		}
//ext validation
	if (!document.getElementById("ext").value.match(pattern_phone)) {
			document.getElementById("l_ext").className = "";
		} else {
			document.getElementById("l_ext").className = "error";
			msg = msg + "Extension format is invalid.<br>";
			error = 1;
		}

//ship_to_address Validation
	if (document.getElementById("ship_to_address").value == ""){
		document.getElementById("l_ship_to_address").className = "error";
		msg = msg + "Shipping Address is empty.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_address").className = "";}
//ship_to_city Validation
	if (document.getElementById("ship_to_city").value == ""){
		document.getElementById("l_ship_to_city").className = "error";
		msg = msg + "Shipping City is empty.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_city").className = "";}
//ship_to_zipcode Validation
	if (document.getElementById("ship_to_zip").value == ""){
		document.getElementById("l_ship_to_zip").className = "error";
		msg = msg + "Shipping ZIP Code / Postal Code is empty.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_zip").className = "";}
//ship_to_Country Validation
	if (document.getElementById("ship_to_country").value == ""){
		document.getElementById("l_ship_to_country").className = "error";
		msg = msg + "Shipping Country is empty.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_country").className = "";}
//State Validation
	if ((document.getElementById("ship_to_country").value == "US" || document.getElementById("ship_to_country").value == "CA" || document.getElementById("ship_to_country").value == "AU") && document.getElementById("state").value == ""){
		document.getElementById("l_state").className = "error";
		msg = msg + "Shipping State is should be filled if shipping country is USA, Canada or Australia.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_state").className = "";}

//State Validation
	if ((document.getElementById("ship_to_country").value == "US" || document.getElementById("ship_to_country").value == "CA" || document.getElementById("ship_to_country").value == "AU") && document.getElementById("state").value == ""){
		document.getElementById("l_state").className = "error";
		msg = msg + "Shipping State is should be filled if shipping country is USA, Canada or Australia.<br>";
		error = 1;
	} else {document.getElementById("l_ship_to_state").className = "";}

//cc Validation
	if (document.getElementById("card_num").value == ""){
		document.getElementById("l_card_num").className = "error";
		msg = msg + "Card Number is empty.<br>";
		error = 1;
	} else {document.getElementById("l_card_num").className = "";}
//expiry Validation
	if (document.getElementById("exp_month").value == "" || document.getElementById("exp_year").value == ""){
		document.getElementById("l_exp_month").className = "error";
		msg = msg + "Credit Card Expiry Date is invalid.<br>";
		error = 1;
	} else {document.getElementById("l_exp_month").className = "";}
	
	if (error == 1) {
		//alert("Information is missing or invalid. Please correct the following fields:\n" + msg)
		document.getElementById("validate_checkout").style.display="block";
	} else {
		document.getElementById("checkout_confirm").action = "checkout_confirm.asp";
		document.getElementById("checkout_confirm").submit();
	}
}