$(document).ready(function() {
	// Handler for .ready() called.
	
	// more link
	more_link = $("#cat_toggle");
	more_link.click(function () {
		more_link.parent().addClass("hidden");
		more_link.parent().prevAll().removeClass("hidden");
	});
	
	// search button
	search_button = $("#search");
	search_button.bind('click', function() {	
		query = $('input[name="keywords"]').val();
		if (query == "" || query == "Enter Keyword(s)" ) {
  			alert("Please enter a valid search term");
  			return false;
  		}
  		else {
  			$('form[name="search"]').submit();

  		}
	});
	
	// category page - select page 
	page_sel = $("#page, #page2");
	
	// reload page on change
	page_sel.change(function () {	
		page_no = $(this).val();
		//alert(page_no);
		page_size = $(this).attr('pagesize');
		filter = $(this).attr('filter');
		filter_url = "";
		if (filter != '')	filter_url = '&filter=' + filter;

		if (page_no > 0) {
			window.location.href = '?page=' + page_no + '&pagesize=' + page_size + filter_url;
  		}
	});	
	
	// product page - add to cart button
	add_button = $("#add");
	add_button.bind('click', function() {	
		slide = 0;
		lot = 0;
		price = 0;
		
		if ($('select#prod_slide')) {
			slide = $('select#prod_slide').val();			
		}
		if ($('select#prod_lot')) {
			lot = $('select#prod_lot').val();			
		}
		price = $('select#prod_size option:selected').attr("price");
		//alert(price);
		if (price == 0 || slide == 0 || lot == 0) {
  			alert("Please select options");
  			return false;
  		}
  		else {
  			$('form[name="addprod"]').submit();

  		}
	});

	// product page - select size
	prod_size = $("#prod_size");
	// set on page load
	price = $('select#prod_size  option:selected').attr("price");
	if (price > 0) {
		$("#prod_price").text(price);
  		$("#price").val(price);	
	}
	// update on change
	prod_size.change(function () {	
	
		price = $('select#prod_size  option:selected').attr("price");
		//alert(price);
		if (price == "" || price == "0" ) {
			$("#prod_price").text("(Select options)");
			$("#price").val(0);
			$("#prod_price").removeClass("price");
  			//alert("Please select a product size");
  			//return false;
  		}
  		else {
  			$("#prod_price").text("$"+price);
  			$("#price").val(price);
  			$("#prod_price").addClass("price");

  		}
	});	
	
	// cart page - select shipping method
	shipping_sel = $('select[name="shipping"]');
	
	// update on change
	shipping_sel.change(function () {	
	
		price = shipping_sel.val();
		//alert(price);
  		$("#shipping").text("$"+price);
  		
  		mytotal = Number($("#subtotal").val()) + Number(price);
  		$("#total").text("$"+mytotal.toFixed(2));

	});	
	
	// checkout page 
	// copy billing address to shipping
	cb_copy = $("#copy-address");
	cb_copy.bind('click', function() {	
		if ($(this).is(":checked")) {
				
			// copy values
			$("#s_firstname").val($("#b_firstname").val());
			$("#s_lastname").val($("#b_lastname").val());
			$("#s_address").val($("#b_address").val());
			$("#s_city").val($("#b_city").val());			
			$("#s_zipcode").val($("#b_zipcode").val());
			
			$("#s_country").val($("#b_country").val());
			change_states(document.getElementById('s_country'), 's_state', 's_county', 'State', 'Other', '', '', '','','');
			$("#_s_state").val($("#_b_state").val());
			
		}
	});
	
	// switch credit card and po# input
	payment = $("#pmethod");
	payment.change(function () {		
		pmethod = payment.val();
		//alert(price);
  		if (pmethod == 'cc') {
  			$("tr[class='credit-hide']").addClass('credit').removeClass('credit-hide');	
  			$("tr[class='po']").addClass('po-hide').removeClass('po');  			
  		}
  		else {
  			$("tr[class='credit']").addClass('credit-hide').removeClass('credit');	
  			$("tr[class='po-hide']").addClass('po').removeClass('po-hide');
  			  			
  		}
  		// toggle cardnumber input and cardnumber2
  		curr_number = $("#cardnumber");
  		new_number = $("#cardnumber2");
  		curr_number.attr("name", "cardnumber2");  		
  		new_number.attr("name", "cardnumber");
  		curr_number.attr("id", "cardnumber2");
  		new_number.attr("id", "cardnumber");
	});	
	
	
	// check required fields
	continue_button = $("#review-order");
	continue_button.bind('click', function() {	
		return check_registerform_fields();
	});
	
	// Contact us page
	// check required fields
	submit_button = $("#csubmit");
	submit_button.bind('click', function() {	
		var requiredContact = new Array();

		requiredContact[0] = new Array("cfname","",false);
		requiredContact[1] = new Array("clname","",false);
		requiredContact[2] = new Array("cemail","",false);
		requiredContact[3] = new Array("ccity","",false);
		requiredContact[4] = new Array("cstate","",true);
		requiredContact[5] = new Array("czip","",true);
		requiredContact[6] = new Array("ccountry","",true);
		requiredContact[7] = new Array("cphone","",true);
		requiredContact[8] = new Array("cmsg","",true);
		requiredContact[9] = new Array("crecipient","",true);
	
		return checkRequired('', requiredContact);
	});
	
});

/*************************************************** checkout form ********************************************************/
function checkEmailAddress() {
	field = document.registerform.email;
	if(!field)
		return true;

 	var err = false; 
 
 	err = field.value.search(/^([-\w][-.\w]*)?[-\w]@([-!#\$%&*+\\\/=?\w^`{|}~]+\.)+[a-zA-Z]{2,6}$/gi); 

	if (err) { 
		 alert("E-mail address is invalid! Please correct"); 
		 field.focus(); 
		 field.select(); 
	 } 
 	return !err; 
}


var us_zip_code = 'Ensure that you have 5 digits in your zip code';
var ca_zip_code = 'Ensure that you have 6 or 7 characters in your postal code';

function check_zip_code_field(cnt, zip){
	var alert_str;
	if(!cnt || !zip)
		return true;
	alert_str = '';
	if (cnt.options[cnt.selectedIndex].value=="US") {
		if (zip.value.length!=5 && zip.value!="")
			alert_str = us_zip_code;
	} else if (cnt.value=="CA") {
		if (zip.value.length!=6 && zip.value.length!=7 && zip.value!="")
			alert_str = ca_zip_code;
	}

	if(alert_str.length > 0) {
		alert(alert_str);
		zip.focus();
		return false;
	} else 
		return true;
}

function check_zip_code(){
	return 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); 
}

var requiredCheckout = new Array();

requiredCheckout[0] = new Array("title","",false);
requiredCheckout[1] = new Array("b_firstname","",false);
requiredCheckout[2] = new Array("b_lastname","",false);
requiredCheckout[3] = new Array("company","",false);
requiredCheckout[4] = new Array("b_address","",false);
requiredCheckout[5] = new Array("b_city","",false);
requiredCheckout[6] = new Array("b_state","",true);
requiredCheckout[7] = new Array("b_country","",false);
requiredCheckout[8] = new Array("b_zipcode","",false);
requiredCheckout[9] = new Array("phone","",false);
requiredCheckout[10] = new Array("email","",false);
requiredCheckout[11] = new Array("cardtype","",false);
requiredCheckout[12] = new Array("cardnumber","",false);
requiredCheckout[13] = new Array("seccode","",false);
requiredCheckout[14] = new Array("expirymonth","",false); 
requiredCheckout[15] = new Array("expiryyear","",false);
 
requiredCheckout[16] = new Array("s_firstname","",false);
requiredCheckout[17] = new Array("s_lastname","",false);
requiredCheckout[18] = new Array("s_address","",false);
requiredCheckout[19] = new Array("s_city","",false);
requiredCheckout[20] = new Array("s_state","",true);
requiredCheckout[21] = new Array("s_country","",false);
requiredCheckout[22] = new Array("s_zipcode","",false);


function checkRequired(id, requiredFields) {
var errors = new Array();
var cnt, x, id_element, true_id;
	if(!requiredFields)
		//return true;
		requiredFields = requiredCheckout;
	if(requiredFields.length == 0)
		return true;
	if(id != '' && id != undefined) {
		for(x = 0; x < requiredFields.length; x++)
			if(requiredFields[x][0] == id)
				id_element = requiredFields[x];
		true_id = ((id_element[2] && document.getElementById("_"+id))?"_":"")+id;
		if(document.getElementById(true_id))
			if(document.getElementById(true_id).value == '' && (document.getElementById(true_id).type == 'text' || document.getElementById(true_id).type == 'password'))
				errors[0] = id_element;
	} else {
		cnt = 0;
		pmethod = $("#pmethod").val();
		for(x = 0; x < requiredFields.length; x++) {
			true_id = ((requiredFields[x][2] && document.getElementById("_"+requiredFields[x][0]))?"_":"")+requiredFields[x][0];
			if(document.getElementById(true_id)) {				
				//if(document.getElementById(true_id).value == '' && (document.getElementById(true_id).type == 'text' || document.getElementById(true_id).type == 'password'))
				if(document.getElementById(true_id).value == null || document.getElementById(true_id).value == '')
				{	
					if (pmethod == "cc" || (true_id != "seccode" && true_id != "expirymonth" && true_id != "expiryyear")) {
						errors[cnt++] = requiredFields[x];
						if (document.getElementById(true_id).className.indexOf("highlight") < 0)  document.getElementById(true_id).className += " highlight";
					}
				}
				else
				{
					
					if (document.getElementById(true_id).className.indexOf("highlight") > 0)  document.getElementById(true_id).className =  document.getElementById(true_id).className.replace(" highlight", "");
				}
			}
		}
	}
	if(errors.length == 0)
		return true;
	alert("Please fill up the highlighted field(s)!");
	/* alert("The required field '"+errors[0][1]+"' is empty!");
	if(document.getElementById(errors[0][0]) && !errors[0][2]) {
		if(!document.getElementById(errors[0][0]).disabled && document.getElementById(errors[0][0]).type != 'hidden')
			document.getElementById(errors[0][0]).focus();
	} else if(errors[0][2] && document.getElementById("_"+errors[0][0])) {
		if(!document.getElementById("_"+errors[0][0]).disabled && document.getElementById("_"+errors[0][0]).type != 'hidden')
			document.getElementById("_"+errors[0][0]).focus();
	}*/
	
	return false;
}



var txt_no_states = "The selected country doesn't require 'state' field";

var d_countries = new Array();
d_countries[0] = 'AF';
d_countries[1] = 'AL';
d_countries[2] = 'DZ';
d_countries[3] = 'AS';
d_countries[4] = 'AD';
d_countries[5] = 'AO';
d_countries[6] = 'AI';
d_countries[7] = 'AQ';
d_countries[8] = 'AG';
d_countries[9] = 'AR';
d_countries[10] = 'AM';
d_countries[11] = 'AW';
d_countries[12] = 'AU';
d_countries[13] = 'AT';
d_countries[14] = 'AZ';
d_countries[15] = 'BS';
d_countries[16] = 'BH';
d_countries[17] = 'BD';
d_countries[18] = 'BB';
d_countries[19] = 'BY';
d_countries[20] = 'BE';
d_countries[21] = 'BZ';
d_countries[22] = 'BJ';
d_countries[23] = 'BM';
d_countries[24] = 'BT';
d_countries[25] = 'BO';
d_countries[26] = 'BA';
d_countries[27] = 'BW';
d_countries[28] = 'BV';
d_countries[29] = 'BR';
d_countries[30] = 'IO';
d_countries[31] = 'VG';
d_countries[32] = 'BN';
d_countries[33] = 'BG';
d_countries[34] = 'BF';
d_countries[35] = 'BI';
d_countries[36] = 'KH';
d_countries[37] = 'CM';
d_countries[38] = 'CA';
d_countries[39] = 'CV';
d_countries[40] = 'KY';
d_countries[41] = 'CF';
d_countries[42] = 'TD';
d_countries[43] = 'CL';
d_countries[44] = 'CN';
d_countries[45] = 'CX';
d_countries[46] = 'CC';
d_countries[47] = 'CO';
d_countries[48] = 'KM';
d_countries[49] = 'CG';
d_countries[50] = 'CK';
d_countries[51] = 'CR';
d_countries[52] = 'CI';
d_countries[53] = 'HR';
d_countries[54] = 'CU';
d_countries[55] = 'CY';
d_countries[56] = 'CZ';
d_countries[57] = 'DK';
d_countries[58] = 'DJ';
d_countries[59] = 'DM';
d_countries[60] = 'DO';
d_countries[61] = 'TP';
d_countries[62] = 'EC';
d_countries[63] = 'EG';
d_countries[64] = 'SV';
d_countries[65] = 'GQ';
d_countries[66] = 'ER';
d_countries[67] = 'EE';
d_countries[68] = 'ET';
d_countries[69] = 'FK';
d_countries[70] = 'FO';
d_countries[71] = 'FJ';
d_countries[72] = 'FI';
d_countries[73] = 'FR';
d_countries[74] = 'FX';
d_countries[75] = 'GF';
d_countries[76] = 'PF';
d_countries[77] = 'TF';
d_countries[78] = 'GA';
d_countries[79] = 'GM';
d_countries[80] = 'GE';
d_countries[81] = 'DE';
d_countries[82] = 'GH';
d_countries[83] = 'GI';
d_countries[84] = 'GR';
d_countries[85] = 'GL';
d_countries[86] = 'GD';
d_countries[87] = 'GP';
d_countries[88] = 'GU';
d_countries[89] = 'GT';
d_countries[90] = 'GN';
d_countries[91] = 'GW';
d_countries[92] = 'GY';
d_countries[93] = 'HT';
d_countries[94] = 'HM';
d_countries[95] = 'HN';
d_countries[96] = 'HK';
d_countries[97] = 'HU';
d_countries[98] = 'IS';
d_countries[99] = 'IN';
d_countries[100] = 'ID';
d_countries[101] = 'IQ';
d_countries[102] = 'IE';
d_countries[103] = 'IR';
d_countries[104] = 'IL';
d_countries[105] = 'IT';
d_countries[106] = 'JM';
d_countries[107] = 'JP';
d_countries[108] = 'JO';
d_countries[109] = 'KZ';
d_countries[110] = 'KE';
d_countries[111] = 'KI';
d_countries[112] = 'KP';
d_countries[113] = 'KR';
d_countries[114] = 'KW';
d_countries[115] = 'KG';
d_countries[116] = 'LA';
d_countries[117] = 'LV';
d_countries[118] = 'LB';
d_countries[119] = 'LS';
d_countries[120] = 'LR';
d_countries[121] = 'LY';
d_countries[122] = 'LI';
d_countries[123] = 'LT';
d_countries[124] = 'LU';
d_countries[125] = 'MO';
d_countries[126] = 'MK';
d_countries[127] = 'MG';
d_countries[128] = 'MW';
d_countries[129] = 'MY';
d_countries[130] = 'MV';
d_countries[131] = 'ML';
d_countries[132] = 'MT';
d_countries[133] = 'MH';
d_countries[134] = 'MQ';
d_countries[135] = 'MR';
d_countries[136] = 'MU';
d_countries[137] = 'YT';
d_countries[138] = 'MX';
d_countries[139] = 'FM';
d_countries[140] = 'MD';
d_countries[141] = 'MC';
d_countries[142] = 'MN';
d_countries[143] = 'MS';
d_countries[144] = 'MA';
d_countries[145] = 'MZ';
d_countries[146] = 'MM';
d_countries[147] = 'NA';
d_countries[148] = 'NR';
d_countries[149] = 'NP';
d_countries[150] = 'NL';
d_countries[151] = 'AN';
d_countries[152] = 'NC';
d_countries[153] = 'NZ';
d_countries[154] = 'NI';
d_countries[155] = 'NE';
d_countries[156] = 'NG';
d_countries[157] = 'NU';
d_countries[158] = 'NF';
d_countries[159] = 'MP';
d_countries[160] = 'NO';
d_countries[161] = 'OM';
d_countries[162] = 'PK';
d_countries[163] = 'PW';
d_countries[164] = 'PA';
d_countries[165] = 'PG';
d_countries[166] = 'PY';
d_countries[167] = 'PE';
d_countries[168] = 'PH';
d_countries[169] = 'PN';
d_countries[170] = 'PL';
d_countries[171] = 'PT';
d_countries[172] = 'PR';
d_countries[173] = 'QA';
d_countries[174] = 'RE';
d_countries[175] = 'RO';
d_countries[176] = 'RU';
d_countries[177] = 'RW';
d_countries[178] = 'LC';
d_countries[179] = 'WS';
d_countries[180] = 'SM';
d_countries[181] = 'ST';
d_countries[182] = 'SA';
d_countries[183] = 'SN';
d_countries[184] = 'SC';
d_countries[185] = 'SL';
d_countries[186] = 'SG';
d_countries[187] = 'SK';
d_countries[188] = 'SI';
d_countries[189] = 'SB';
d_countries[190] = 'SO';
d_countries[191] = 'ZA';
d_countries[192] = 'ES';
d_countries[193] = 'LK';
d_countries[194] = 'SH';
d_countries[195] = 'KN';
d_countries[196] = 'PM';
d_countries[197] = 'VC';
d_countries[198] = 'SD';
d_countries[199] = 'SR';
d_countries[200] = 'SJ';
d_countries[201] = 'SZ';
d_countries[202] = 'SE';
d_countries[203] = 'CH';
d_countries[204] = 'SY';
d_countries[205] = 'TW';
d_countries[206] = 'TJ';
d_countries[207] = 'TZ';
d_countries[208] = 'TH';
d_countries[209] = 'TG';
d_countries[210] = 'TK';
d_countries[211] = 'TO';
d_countries[212] = 'TT';
d_countries[213] = 'TN';
d_countries[214] = 'TR';
d_countries[215] = 'TM';
d_countries[216] = 'TC';
d_countries[217] = 'TV';
d_countries[218] = 'UG';
d_countries[219] = 'UA';
d_countries[220] = 'AE';
d_countries[221] = 'GB';
d_countries[222] = 'US';
d_countries[223] = 'VI';
d_countries[224] = 'UY';
d_countries[225] = 'UZ';
d_countries[226] = 'VU';
d_countries[227] = 'VA';
d_countries[228] = 'VE';
d_countries[229] = 'VN';
d_countries[230] = 'WF';
d_countries[231] = 'EH';
d_countries[232] = 'YE';
d_countries[233] = 'YU';
d_countries[234] = 'ZR';
d_countries[235] = 'ZM';
d_countries[236] = 'ZW';

var states = new Array();
states[0] = new Array('CA', 'AB', 'Alberta', '1');
states[1] = new Array('CA', 'BC', 'British Columbia', '2');
states[2] = new Array('CA', 'MB', 'Manitoba', '3');
states[3] = new Array('CA', 'NB', 'New Brunswick', '4');
states[4] = new Array('CA', 'NF', 'Newfoundland/Labrador', '5');
states[5] = new Array('CA', 'NS', 'Nova Scotia', '6');
states[6] = new Array('CA', 'NT', 'NWT/Nunavut', '7');
states[7] = new Array('CA', 'ON', 'Ontario', '8');
states[8] = new Array('CA', 'PE', 'Prince Edward Island', '9');
states[9] = new Array('CA', 'QC', 'Quebec', '10');
states[10] = new Array('CA', 'SK', 'Saskatchewan', '11');
states[11] = new Array('CA', 'YT', 'Yukon', '12');
states[12] = new Array('US', 'AL', 'Alabama', '13');
states[13] = new Array('US', 'AK', 'Alaska', '14');
states[14] = new Array('US', 'AZ', 'Arizona', '15');
states[15] = new Array('US', 'AR', 'Arkansas', '16');
states[16] = new Array('US', 'CA', 'California', '17');
states[17] = new Array('US', 'CO', 'Colorado', '18');
states[18] = new Array('US', 'CT', 'Connecticut', '19');
states[19] = new Array('US', 'DE', 'Delaware', '20');
states[20] = new Array('US', 'DC', 'District of Columbia', '21');
states[21] = new Array('US', 'FL', 'Florida', '22');
states[22] = new Array('US', 'GA', 'Georgia', '23');
states[23] = new Array('US', 'GU', 'Guam', '24');
states[24] = new Array('US', 'HI', 'Hawaii', '25');
states[25] = new Array('US', 'ID', 'Idaho', '26');
states[26] = new Array('US', 'IL', 'Illinois', '27');
states[27] = new Array('US', 'IN', 'Indiana', '28');
states[28] = new Array('US', 'IA', 'Iowa', '29');
states[29] = new Array('US', 'KS', 'Kansas', '30');
states[30] = new Array('US', 'KY', 'Kentucky', '31');
states[31] = new Array('US', 'LA', 'Louisiana', '32');
states[32] = new Array('US', 'ME', 'Maine', '33');
states[33] = new Array('US', 'MD', 'Maryland', '34');
states[34] = new Array('US', 'MA', 'Massachusetts', '35');
states[35] = new Array('US', 'MI', 'Michigan', '36');
states[36] = new Array('US', 'MN', 'Minnesota', '37');
states[37] = new Array('US', 'MS', 'Mississippi', '38');
states[38] = new Array('US', 'MO', 'Missouri', '39');
states[39] = new Array('US', 'MT', 'Montana', '40');
states[40] = new Array('US', 'NE', 'Nebraska', '41');
states[41] = new Array('US', 'NV', 'Nevada', '42');
states[42] = new Array('US', 'NH', 'New Hampshire', '43');
states[43] = new Array('US', 'NJ', 'New Jersey', '44');
states[44] = new Array('US', 'NM', 'New Mexico', '45');
states[45] = new Array('US', 'NY', 'New York', '46');
states[46] = new Array('US', 'NC', 'North Carolina', '47');
states[47] = new Array('US', 'ND', 'North Dakota', '48');
states[48] = new Array('US', 'OH', 'Ohio', '49');
states[49] = new Array('US', 'OK', 'Oklahoma', '50');
states[50] = new Array('US', 'OR', 'Oregon', '51');
states[51] = new Array('US', 'PA', 'Pennsylvania', '52');
states[52] = new Array('US', 'PR', 'Puerto Rico', '53');
states[53] = new Array('US', 'RI', 'Rhode Island', '54');
states[54] = new Array('US', 'SC', 'South Carolina', '55');
states[55] = new Array('US', 'SD', 'South Dakota', '56');
states[56] = new Array('US', 'TN', 'Tennessee', '57');
states[57] = new Array('US', 'TX', 'Texas', '58');
states[58] = new Array('US', 'UT', 'Utah', '59');
states[59] = new Array('US', 'VT', 'Vermont', '60');
states[60] = new Array('US', 'VI', 'Virgin Islands', '61');
states[61] = new Array('US', 'VA', 'Virginia', '62');
states[62] = new Array('US', 'WA', 'Washington', '63');
states[63] = new Array('US', 'WV', 'West Virginia', '64');
states[64] = new Array('US', 'WI', 'Wisconsin', '65');
states[65] = new Array('US', 'WY', 'Wyoming', '66');

var counties = new Array();
var use_counties = "N";

function change_states(obj, state_name, county_name, txt_name, default_value, is_no_input, default_value_full, style, default_county, default_countyid) {
var x, y, s_obj, is_dstates, obj_value;
var _states = new Array();

	if(default_value_full == '')
		default_value_full = default_value;

    obj_value = state_name+"_value";

	is_dstates = false;
	for(x = 0; x < d_countries.length; x++)
		if(d_countries[x] == obj.value)
			is_dstates = true;

	y = 0;
	for(x = 0; x < states.length; x++)
		if(states[x][0] == obj.value) {
			_states[y] = x;
			y++;
		}

	if(_states.length > 0 && is_dstates) {
		document.getElementById(obj_value).innerHTML = '<SELECT name="_'+state_name+'" class="'+style+'" id="_'+state_name+'" onchange=" document.getElementById(\''+state_name+'\').value = document.getElementById(\'_'+state_name+'\').value; change_counties(\''+county_name+'\', document.getElementById(\'_'+state_name+'\'), document.getElementById(\''+obj.id+'\'), \''+default_county+'\', \''+default_countyid+'\');"></SELECT>';
		s_obj = document.getElementById("_"+state_name);
		for(x = 0; x < _states.length; x++) {
			s_obj.options[s_obj.length] = new Option(states[_states[x]][2], states[_states[x]][1]);
			s_obj.options[s_obj.length-1].selected = (default_value == states[_states[x]][1]);
		}
	} else if(_states.length == 0 && is_dstates && is_no_input == '') {
		document.getElementById(obj_value).innerHTML = '<INPUT type="text" size="32" id="_'+state_name+'" name="_'+state_name+'" class="'+style+'" value="'+default_value_full+'" onchange=" document.getElementById(\''+state_name+'\').value = document.getElementById(\'_'+state_name+'\').value; change_counties(\''+county_name+'\', document.getElementById(\'_'+state_name+'\'), document.getElementById(\''+obj.id+'\'), \''+default_county+'\', \''+default_countyid+'\');">';
	} else {
		document.getElementById(obj_value).innerHTML = '<FONT class="SmallText">'+txt_no_states+'</FONT><INPUT type="hidden" value="" name="_'+state_name+'" id="_'+state_name+'">';
	}
	document.getElementById(state_name).value = document.getElementById('_'+state_name).value;
	if(document.getElementById(county_name) && document.getElementById('_'+county_name))
		document.getElementById(county_name).value = document.getElementById('_'+county_name).value;
}

function change_counties(county_name, state_obj, country_obj, default_county, default_countyid) {
var stateid, x, count;
	if(use_counties != 'Y' || !document.getElementById(county_name))
		return true;

	if(state_obj.options) {
		for(x = 0; x < states.length; x++)
			if(states[x][0] == country_obj.value && states[x][1] == state_obj.value) {
				stateid = states[x][3];
				break;
			}
	}

	count = false;
	for(x = 0; x < counties.length; x++)
		if(counties[x][0] == stateid) {
			count = true;
			break;
		}

	if(count) {
		document.getElementById(county_name+"_value").innerHTML = '<SELECT name="_'+county_name+'" id="_'+county_name+'" onchange=" document.getElementById(\''+county_name+'\').value = document.getElementById(\'_'+county_name+'\').value;"></SELECT>'
		for(x = 0; x < counties.length; x++) {
			if(counties[x][0] == stateid) {
				document.getElementById("_"+county_name).options[document.getElementById("_"+county_name).options.length] = new Option(counties[x][2], counties[x][1]);
				if(default_countyid == counties[x][1])
					document.getElementById("_"+county_name).options[document.getElementById("_"+county_name).options.length-1].selected = true;
			}
		}
	} else {
		document.getElementById(county_name+"_value").innerHTML = '<INPUT type="text" size="32" id="_'+county_name+'" name="_'+county_name+'" value="'+default_county+'" onchange=" document.getElementById(\''+county_name+'\').value = document.getElementById(\'_'+county_name+'\').value;">'
	}

	if(document.getElementById(county_name) && document.getElementById('_'+county_name))
		document.getElementById(county_name).value = document.getElementById('_'+county_name).value;
	return true;
}

var is_run = false;
function check_registerform_fields() {
	if(is_run)
		return false;
	is_run = true;
	
	ccNum = document.getElementById("cardnumber").value;
	ptype = document.getElementById("pmethod").value;
	//alert(ccNum+ptype);
	//alert(Mod10(ccNum));
	if (checkRequired('') && check_zip_code() && checkEmailAddress()) {
		if (ptype != "cc" || Mod10(ccNum) ) {
			document.registerform.submit();
			return true;
		}		
	}
	is_run = false;
	return false;
}

function Mod10(ccNumb) {  // v2.0
	var valid = "0123456789"  // Valid digits in a credit card number
	var len = ccNumb.length;  // The length of the submitted cc number
	var iCCN = parseInt(ccNumb);  // integer of ccNumb
	var sCCN = ccNumb.toString();  // string of ccNumb
	sCCN = sCCN.replace (/^\s+|\s+$/g,'');  // strip spaces
	var iTotal = 0;  // integer total set at zero
	var bNum = true;  // by default assume it is a number
	var bResult = false;  // by default assume it is NOT a valid cc
	var temp;  // temp variable for parsing string
	var calc;  // used for calculation of each digit
	
	// Determine if the ccNumb is in fact all numbers
	for (var j=0; j<len; j++) {
	  temp = "" + sCCN.substring(j, j+1);
	  if (valid.indexOf(temp) == "-1"){bNum = false;}
	}
	
	// if it is NOT a number, you can either alert to the fact, or just pass a failure
	if(!bNum){
	  /*alert("Not a Number");*/bResult = false;
	}
	
	// Determine if it is the proper length 
	if((len == 0)&&(bResult)){  // nothing, field is blank AND passed above # check
	  bResult = false;
	} else{  // ccNumb is a number and the proper length - let's see if it is a valid card number
	  if(len >= 15){  // 15 or 16 for Amex or V/MC
	    for(var i=len;i>0;i--){  // LOOP throught the digits of the card
	      calc = parseInt(iCCN) % 10;  // right most digit
	      calc = parseInt(calc);  // assure it is an integer
	      iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
	      i--;  // decrement the count - move to the next digit in the card
	      iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
	      calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
	      calc = calc *2;                                 // multiply the digit by two
	      // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
	      // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
	      switch(calc){
	        case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
	        case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
	        case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
	        case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
	        case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
	        default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
	      }                                               
	    iCCN = iCCN / 10;  // subtracts right most digit from ccNum
	    iTotal += calc;  // running total of the card number as we loop
	  }  // END OF LOOP
	  if ((iTotal%10)==0){  // check to see if the sum Mod 10 is zero
	    bResult = true;  // This IS (or could be) a valid credit card number.
	  } else {
	    bResult = false;  // This could NOT be a valid credit card number
	    }
	  }
	}
	// change alert to on-page display or other indication as needed.
	/*if(bResult) {
	  alert("This IS a valid Credit Card Number!");
	}*/
	if(!bResult){
	  alert("This is NOT a valid Credit Card Number!");
	}
	return bResult; // Return the results
}




