
function clearAll(){
	for (i = 0;i <= 10 ;i++)
	{
		elemento = document.getElementById(campo[i]);
		elemento.value = ""		
	}
	
	for (i = 0;i <= 10 ;i++)
	{
		elemento = document.getElementById("ship_"+campo[i]);
		elemento.value = ""		
	}
	for (i = 0;i <= 4 ;i++)
	{
		elemento = document.getElementById(cartao[i]);
		elemento.value = "";	
	}
}
function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
    if(typeof(mail) == "string"){
        if(er.test(mail)){ return true; }
    }else if(typeof(mail) == "object"){
        if(er.test(mail.value)){
                    return true;
                }
    }else{
        return false;
    }
}
function doRetrieve(mail){
	if(!checkMail(mail)){
		alert("Type a valid E-mail address");
		return false;
	}
	return true;
}

//Simplesmente verifica se a string é vazia e retorna TRUE ou FALSE
function doEmpty(str){
	if(str == ""){
		return false
	}
	return true;
}

function getIdValues(el, param){
	valor = "";
	
	valor = document.getElementById(el);
	if (param)
	{
		valor = document.getElementById(el)[param];
	}
	return valor;
}
function submit_register()
{	
	if(valida_register()){
		document.freg.submit();
		return true;
	}
	return false;
}
function valida_register()
{
	if (!document.getElementById('reg_email').value)
	{
		alert("Please inform your e-mail!");
		document.getElementById('reg_email').focus();
		return false;
	}
	if (!document.getElementById('reg_cemail').value)
	{
		alert("Please confirm your e-mail!");
		document.getElementById('reg_cemail').focus();
		return false;
	}
	if (document.getElementById('reg_cemail').value != document.getElementById('reg_email').value)
	{
		alert("E-mail and E-mail confirmation don't match!");
		document.getElementById('reg_cemail').focus();
		return false;
	}
	if (!document.getElementById('reg_password').value)
	{
		alert("Please inform your password!");
		document.getElementById('reg_password').focus();
		return false;
	}
	if (!document.getElementById('reg_cpassword').value)
	{
		alert("Please confirm your password!");
		document.getElementById('reg_cpassword').focus();
		return false;
	}
	if (document.getElementById('reg_cpassword').value != document.getElementById('reg_password').value)
	{
		alert("Password and Password confirmation don't match!");
		document.getElementById('reg_cpassword').focus();
		return false;
	}
	if (!document.getElementById('reg_fname').value)
	{
		alert("Please inform your name!");
		document.getElementById('reg_fname').focus();
		return false;
	}
	if (!document.getElementById('reg_lname').value)
	{
		alert("Please inform your Last Name!");
		document.getElementById('reg_lname').focus();
		return false;
	}
	if (!document.getElementById('reg_arange').value)
	{
		alert("Please inform your Age Range!");
		document.getElementById('reg_arange').focus();
		return false;
	}
	return true;
}
function valida_login()
{
	if (!document.getElementById('login_email').value)
	{
		alert("Please inform your e-mail!");
		document.getElementById('login_email').focus();
		return false;
	}
	if (!document.getElementById('login_password').value)
	{
		alert("Please inform your password!");
		document.getElementById('login_password').focus();
		return false;
	}
	document.flogin.submit();
}

	var campo = new Array();
		campo[0] = "name";
		campo[1] = "lastname";
		campo[2] = "company";
		campo[3] = "country";
		campo[4] = "address1";
		campo[5] = "address2";
		campo[6] = "city";
		campo[7] = "state";
		campo[8] = "zipcode";
		campo[9] = "phone";

	var message = new Array();
		message[0] = "Name";
		message[1] = "Last Name";
		message[2] = "Company";
		message[3] = "Country";
		message[4] = "Street Address";
		message[5] = "Street Address 2";
		message[6] = "City";
		message[7] = "State";
		message[8] = "Zipcode";
		message[9] = "Phone Number";

function copiaShipping(checked)
{
	var field = campo;
	if (document.getElementById("country").value == "US")
		field[7] = "state";
	else
		field[7] = "textState";

	if (checked){
		
		change_ship_country(document.getElementById("country").value);
	
		if (validaShipping()){
			for (var i = 0;i < 10 ;i++)
			{
					elemento = document.getElementById(field[i]);
					elemento2 = document.getElementById("ship_"+field[i]);
					elemento2.disabled = true;
					elemento2.value = elemento.value;
			}
			//xajax_checkout_calculaShipping(document.getElementById('zipcode').value, document.getElementById('country'), document.getElementById('products_ids').value);
			return true;
		} else {
			document.getElementById("same_shipping").checked = false;
			//xajax_checkout_calculaShipping(document.getElementById('ship_zipcode').value, document.getElementById('ship_country'), document.getElementById('products_ids').value);
			return false;
		}

	} else {
		for (var i = 0;i < 10 ;i++)
		{							
			elemento2 = document.getElementById("ship_"+field[i]);
			elemento2.disabled = false;
		}
	}
}

function enviaShip_Bill() {
		if(validaShipping() && validaBilling() && validaShipMethod()) {
			enviaCartao();
		} else {				
			return false;				
		}
	return true;
}

function enviaCartao()
{
	if (document.getElementById("payment_type").value == "CC")
	{
		if(validaCartao()) {
				if (document.getElementById('agree_cc').checked)
					document.fdados.submit();
				else
					alert("You must agree with PetsSpark's Terms and Conditions and return/refund policies in order to continue!");
		} else {				
			return false;				
		}
		
	}
	else if (document.getElementById("payment_type").value == "WT")
	{
		if (document.getElementById('agree_wt').checked)
			document.fdados.submit();
		else
			alert("You must agree with PetsSpark's Terms and Conditions and return/refund policies in order to continue!");
	}
	else if (document.getElementById("payment_type").value == "PP")
	{
		if (document.getElementById('agree_pp').checked)
			document.fdados.submit();
		else
			alert("You must agree with PetsSpark's Terms and Conditions and return/refund policies in order to continue!");
	}
	return true;
}

function validaShipMethod()
{
	if (!document.getElementById("selService").value)
	{
		alert("Please select the shipping method. Is required inform the shipping country e zipcode!");
		document.getElementById("selService").focus();
		return false;
	}
	return true;
}

function validaShipping()
{
	var field = campo;
	if (document.getElementById("country").value == "US")
		field[7] = "state";
	else
		field[7] = "textState";

	for (var i = 0;i < 10 ;i++)
	{
		elemento = document.getElementById(field[i]);
		elemento.style.background = '#FFFFFF';
		if(elemento.value == "" && (field[i] != "address2" && field[i] != "company")){
			if(document.getElementById("country").value != "US" && field[i] == "zipcode")
			{
				if (!confirm("No Zip Code entered, continue?"))
				{
					return false;
				}
			}
			else
			{
				alert("The "+message[i]+" field is mandatory");
				elemento.style.background = '#FFFFCC';
				elemento.focus();
				return false;
			}
		}
	}
	elemento = document.getElementById("email");
	elemento.style.background = '#FFFFFF';
	if (!checkMail(elemento))
	{
		alert("The e-mail field is mandatory");			
		elemento.style.background = '#FFFFFF';
		elemento.focus();
		return false;
	}
	
	elemento = document.getElementById("no_login");
	elemento2 = document.getElementById("client");
	if (!elemento2)
	{
		if (!elemento.checked)
		{
			elemento = document.getElementById("password");
			elemento.style.background = '#FFFFFF';
			if (elemento.value == "")
			{
				alert("The password field is mandatory");			
				elemento.style.background = '#FFFFCC';
				elemento.focus();
				return false;
			}
			elemento2 = document.getElementById("cpassword");
			elemento2.style.background = '#FFFFFF';
			if (elemento2.value != elemento.value)
			{
				alert("The passwords don't match");			
				elemento2.style.background = '#FFFFCC';
				elemento2.focus();
				return false;
			}
		}
	}
	return true;
}

function validaBilling()
{
	var field = campo;
	if (document.getElementById("ship_country").value == "US")
		field[7] = "state";
	else
		field[7] = "textState";
	for (var i = 0;i < 10 ;i++)
	{			
		elemento = document.getElementById("ship_"+field[i]);
		elemento.style.background = '#FFFFFF';
		if(elemento.value == "" && (field[i] != "address2" && field[i] != "company"))
		{
			if(document.getElementById("country").value != "US" && field[i] == "zipcode")
			{
				if (!confirm("No Zip Code entered, continue?"))
				{
					return false;
				}
			}
			else
			{
				alert("The "+message[i]+" field is mandatory");			
				elemento.style.background = '#FFFFCC';
				elemento.focus();
				return false;
			}
		}
	}
	return true;
}

function calcShipping(checked, selService)
{
	if (checked)
	{
		load_ship_method();
		xajax_checkout_calcTax(document.getElementById('zipcode').value, document.getElementById('country').value, document.getElementById('subtotal').value, document.getElementById('shipping').value, document.getElementById('te').value, document.getElementById('promo_value').value, document.getElementById('wire_fee').value); 
		xajax_checkout_calculaShipping(document.getElementById('zipcode').value, document.getElementById('country').value, document.getElementById('products_ids').value, document.getElementById('products_ids2').value, selService, document.getElementById('wire_fee').value);
	}
	else
	{
		load_ship_method();
		xajax_checkout_calcTax(document.getElementById('ship_zipcode').value, document.getElementById('ship_country').value, document.getElementById('subtotal').value, document.getElementById('shipping').value, document.getElementById('te').value, document.getElementById('promo_value').value, document.getElementById('wire_fee').value); 
		xajax_checkout_calculaShipping(document.getElementById('ship_zipcode').value, document.getElementById('ship_country').value, document.getElementById('products_ids').value, document.getElementById('products_ids2').value, selService, document.getElementById('wire_fee').value);
	}
}

function verify_state(estado)
{
	if (estado == 12)
	{
		document.getElementById('tr_county').style.display = "block";
		document.getElementById('tr_county2').style.display = "block";
	}
	else
	{
		document.getElementById('tr_county').style.display = "none";
		document.getElementById('tr_county2').style.display = "none";

	}
}

function verify_ship_state(estado)
{
	if (estado == 12)
	{
		document.getElementById('tr_ship_county').style.display = "block";
		document.getElementById('tr_ship_county2').style.display = "block";
		xajax_cart_calculaTax(document.getElementById("ship_state").value, document.getElementById("ship_county").value, document.getElementById("subtot").value,document.getElementById("ship").value,document.getElementById("hdn_promo").value);
	}
	else
	{
		document.getElementById('tr_ship_county').style.display = "none";
		document.getElementById('tr_ship_county2').style.display = "none";
		xajax_cart_calculaTax(document.getElementById("ship_state").value, '', document.getElementById("subtot").value,document.getElementById("ship").value,document.getElementById("hdn_promo").value);
	}
}

function mod10( cardNumber )
{
        var clen = new Array( cardNumber.length );
        var n = 0,sum = 0;
        for( n = 0; n < cardNumber.length; ++n )
        {
                  clen [n] = parseInt ( cardNumber.charAt(n) );
        }
        for( n = clen.length -2; n >= 0; n-=2 )
                      clen [n] *= 2;
        if( clen [n] > 9 )
                  clen [n]-=9;
		for( n = 0; n < clen.length; ++n )
		{
			if (clen[n]<=9)
			{
				  sum += clen [n];
			}
			else
			{
				  sum += 1 + (clen [n]-10);
			}
		}
		return(((sum%10)==0)?true : false);
}

function validaCartao(){

	var cartao = new Array();
		cartao[0] = "card_number";
		cartao[1] = "card_cvv";
		cartao[2] = "card_exp_year";
		cartao[3] = "card_exp_month";

	var message_cartao = new Array();
		message_cartao[0] = "Card Number";
		message_cartao[1] = "CVV";
		message_cartao[2] = "Expiration Year";
		message_cartao[3] = "Expiration Month";

	for (i = 0;i < 4 ;i++)
	{
		elemento = document.getElementById(cartao[i]);
		if(elemento.value == ""){
			alert("The "+message_cartao[i]+" field is mandatory");			
			elemento.style.background = '#FFFFCC';
			elemento.focus();
			return false;
		} else {
			elemento.style.background = '#FFFFFF';	
		}		
	}

	switch(document.getElementById("card_type").value)
	{
		case "Visa": 
			if(document.getElementById("card_number").value.length != 16 && document.getElementById("card_number").value.length != 13){
				alert("The card must have 13 or 16 digits.");
				return false;
			}
			else if (document.getElementById("card_number").value.substr(0, 1) != "4")
			{
				alert("This is a invalid Visa card number.");
				return false;
			}
		break;
		case "MasterCard": 
			if(document.getElementById("card_number").value.length != 16){
				alert("The card must have 16 digits.");
				return false;
			}
			else if (document.getElementById("card_number").value.substr(0, 2) != "51" && document.getElementById("card_number").value.substr(0, 2) != "52" && document.getElementById("card_number").value.substr(0, 2) != "53" && document.getElementById("card_number").value.substr(0, 2) != "54" && document.getElementById("card_number").value.substr(0, 2) != "55")
			{
				alert("This is a invalid Master Card card number.");
				return false;
			}
		break;
		case "Amex": 
			if(document.getElementById("card_number").value.length != 15){
				alert("The card must have 15 digits.");
				return false;
			}
			else if (document.getElementById("card_number").value.substr(0, 2) != "34" && document.getElementById("card_number").value.substr(0, 2) != "37")
			{
				alert("This is a invalid American Express card number.");
				return false;
			}
		break;
		case "Discover": 
			if(document.getElementById("card_number").value.length != 16){
				alert("The card must have 16 digits.");
				return false;
			}
			else if (document.getElementById("card_number").value.substr(0, 4) != "6011")
			{
				alert("This is a invalid Discover card number.");
				return false;
			}
		break;
		case "Dinners": 
			if(document.getElementById("card_number").value.length != 14){
				alert("The card must have 14 digits.");
				return false;
			}
			else if (document.getElementById("card_number").value.substr(0, 3) != "300" && document.getElementById("card_number").value.substr(0, 3) != "301" && document.getElementById("card_number").value.substr(0, 3) != "302" && document.getElementById("card_number").value.substr(0, 3) != "303" && document.getElementById("card_number").value.substr(0, 3) != "304" && document.getElementById("card_number").value.substr(0, 3) != "305" && document.getElementById("card_number").value.substr(0, 2) != "36" && document.getElementById("card_number").value.substr(0, 2) != "38")
			{
				alert("This is a invalid Dinners card number.");
				return false;
			}
		break;
		default:
			alert("Select a Credit Card");
			return false;
		break;
	}
	
	if (!mod10(document.getElementById("card_number").value))
	{
		alert("This is a invalid card number. Please review it!");
		elemento = document.getElementById("card_number");
		elemento.style.background = '#FFFFCC';
		elemento.focus();
		return false;
	}

	return true;
}

function change_ship_country(pais)
{
	if (pais=="US")
	{
		document.getElementById("tr_ship_state_us").style.display = "";
		document.getElementById("ship_state").disabled = false;
		document.getElementById("tr_ship_state_txt").style.display = "none";
		document.getElementById("ship_textState").disabled = true;
	}
	else
	{
		document.getElementById("tr_ship_state_us").style.display = "none";
		document.getElementById("ship_state").disabled = true;
		document.getElementById("tr_ship_state_txt").style.display = "";
		document.getElementById("ship_textState").disabled = false;
	}
}
function change_bill_country(pais)
{
	if (pais=="US")
	{
		document.getElementById("tr_bill_state_us").style.display = "";
		document.getElementById("state").disabled = false;
		document.getElementById("tr_bill_state_txt").style.display = "none";
		document.getElementById("textState").disabled = true;
	}
	else
	{
		document.getElementById("tr_bill_state_us").style.display = "none";
		document.getElementById("state").disabled = true;
		document.getElementById("tr_bill_state_txt").style.display = "";
		document.getElementById("textState").disabled = false;
	}
}

function load_ship_method()
{
	document.getElementById("selService").innerHTML = "";
	var el = document.getElementById('selService');
	var objOption = new Option('Loading methods...','');
	el.options.add(objOption);
}