// $Id: check_zipcode.js,v 1.3.2.2 2007/02/20 11:26:13 max Exp $

// check_zip_code_rules is defined in check_zipcode_js.tpl

function check_zip_code_adr(adr, zip) {
	if (adr && adr.value != "") {
			if (zip && zip.value != "")
				return true;
			else {
				alert("Shipping address field 'Zip code' is required.");
				return false;
			}
	}
	return true; 
}

function check_zip_code_field(cnt, zip) {
	var c_code;
	var zip_error = false;

	if (!zip || zip.value == "")
		return true;

	c_code = cnt ? cnt.options[cnt.selectedIndex].value : config_default_country;

	if (window.check_zip_code_rules && isset(check_zip_code_rules[c_code])) {
		var rules = check_zip_code_rules[c_code];

		if (isset(rules.lens) && !isset(rules.lens[zip.value.length]))
			zip_error = true;

		if (isset(rules.re) && zip.value.search(rules.re) != -1)
			zip_error = true;

		if (zip_error) {
			if (rules.error && rules.error.length > 0)
				alert(rules.error);
			zip.focus();
			return false;
		}
	}

	return !zip_error;
}

function showShipFields(show){
	if(show){
		document.getElementById('ship2diff').checked = true;
		document.getElementById('ship2diff').onclick();
	       document.getElementById('onlyus').style.display = "inline";
		ship2diffOpen();
	}else{
	       document.getElementById('onlyus').style.display = "none";
	}
}

function check_zip_code() {
	if(document.forms["registerform"].b_country){
	if (document.forms["registerform"].b_country.value != "US")
		showShipFields(1);
	else
		showShipFields(0);
	}

	var error = check_zip_code_field(document.forms["registerform"].b_country, document.forms["registerform"].b_zipcode) && check_zip_code_field(document.forms["registerform"].s_country, document.forms["registerform"].s_zipcode);
	if (error == true)
		error = check_zip_code_adr(document.forms["registerform"].s_address, document.forms["registerform"].s_zipcode)
	return error;	
}


