var isEmail_re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/; 
function isEmail (s) { 
   return String(s).search (isEmail_re) != -1; 
}

var isZipcode_re = /^(\d{5}(-\d{4})?)|([ABCEGHJKLMNPRSTVXY]{1}[0-9]{1}[A-Z]{1} ?[0-9]{1}[A-Z]{1}[0-9]{1})$/; 

function isZipcode (s) { 
   return String(s).search (isZipcode_re) != -1; 
}

function isInteger(s) {
return (s.toString().search(/^[0-9]+$/) == 0);
}

var isDecimal_re = /^[0-9]+(\.[0-9]{1,2})?$/; 
function isDecimal(s)
{
  return String(s).search (isDecimal_re) != -1; 
}
// Example: obj = findObj("image1");
function findObj(theObj, theDoc)
{
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  {
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}


var colorBorde = "#E70000";

function check_form(f) { // f is the form (passed using the this keyword)
	var formElements = "";
	var bool=1;
	var mensaje = new Array();
	var comparar = new Array();
	for (var n=0; n < f.elements.length; n++) {
	  var elemento = f.elements[n];
      var tipo = elemento.type;
	  var evaluar = elemento.getAttribute('eval');
	  if(tipo == "text" || tipo == "textarea" || tipo == "password"){
		
		if(evaluar != null)
		{
			if(elemento.value == "" && evaluar.match("isEmpty")!=null)
			{
				elemento.style.borderColor = colorBorde;
				elemento.style.borderStyle = "solid";
				//mensaje="Debe ingresar todos los campos requeridos";
				mensaje[0]="You must enter all required fields.<br>";
				bool=0;
			}
			if(evaluar.match("isEmail")=="isEmail" && !isEmail(elemento.value))
			{
				elemento.style.borderColor = colorBorde;
				elemento.style.borderStyle = "solid";
				//mensaje="Debe ingresar un correo electrónico válido";
				mensaje[1]="You must enter a valid email.<br>";
				bool=0;
			}
			if(evaluar.match("isEqual")=="isEqual")
			{
				evalWith = evaluar.substring(evaluar.indexOf("(")+1,evaluar.lastIndexOf(")"))
				obj = findObj(evalWith);
				if(elemento.value != "" || obj.value != "")
				{
					if(elemento.value != obj.value)
					{
						elemento.style.borderColor = colorBorde;
						elemento.style.borderStyle = "solid";
						//mensaje="Tiene informacion desigual en los campos marcados";
						mensaje[2]="You have unequal information in the fields marked.<br>";
						bool=0;
					}else{
						elemento.style.borderColor = "";
						elemento.style.borderStyle = "";
					}
				}
			}
			if(evaluar.match("isZipcode")=="isZipcode" && !isZipcode(elemento.value) && elemento.value != "")
			{
				elemento.style.borderColor = colorBorde;
				elemento.style.borderStyle = "solid";
				mensaje[4]="You must enter a valid Zipcode.<br>";
				bool=0;
			}
			if(evaluar.match("isInteger")=="isInteger" && !isInteger(elemento.value))
			{
				elemento.style.borderColor = colorBorde;
				elemento.style.borderStyle = "solid";
				mensaje[4]="You must enter a valid Integer.<br>";
				bool=0;
			}
			if(evaluar.match("isDecimal")=="isDecimal" && !isDecimal(elemento.value))
			{
				elemento.style.borderColor = colorBorde;
				elemento.style.borderStyle = "solid";
				mensaje[4]="You must enter a valid decimal value (ex: 12.34).<br>Use the . as decimal separator<br>";
				bool=0;
			}
		}
      }else if(tipo == "select-one"){
		if(evaluar != null)
		{
			if(elemento.value == "" && evaluar.match("isEmpty")!=null)
			{
				elemento.style.backgroundColor = "#FF6666";
				mensaje[0]="You must enter all required fields.<br>";
				bool=0;
			}
		}
      }
  	}
	if($('mensaje')){
		var msg = "";
		for(i=0;i<mensaje.length;i++)
		{
			if(mensaje[i]){
				msg += mensaje[i];
			}
		}
		$('mensaje').innerHTML=msg;
		$('mensaje').style.display='';
	}
	if(bool==0)
	{
		return false;
	}else{
		return true;
	}
}

function cambiarOnFocus(c){
	var str = c.style.borderColor.toString();
	if(str.toUpperCase()==colorBorde.toUpperCase())
	{
		c.style.borderColor = "";
		c.style.borderStyle = "";
		c.style.borderWidth = "";
	}
	c.style.backgroundColor="";
	

}

function checkZipcode(f){
	var bool=1;
	var mensaje = new Array();
	if(whichPressed == 'Calculate'){
		if(f.txtZipcode.value == "" || !isZipcode(f.txtZipcode.value))
		{
			f.txtZipcode.style.borderColor = colorBorde;
			f.txtZipcode.style.borderStyle = "solid";
			mensaje[0]="You must enter a valid Zipcode.<br>";
			bool=0;
		}
	}else if(whichPressed == 'Update'){
		if(f.txtZipcode.value != "" && !isZipcode(f.txtZipcode.value))
		{
			f.txtZipcode.style.borderColor = colorBorde;
			f.txtZipcode.style.borderStyle = "solid";
			mensaje[0]="You must enter a valid Zipcode.<br>";
			bool=0;
		}
	}
	
	if($('mensaje')){
		var msg = "";
		for(i=0;i<mensaje.length;i++)
		{
			if(mensaje[i]){
				msg += mensaje[i];
			}
		}
		$('mensaje').innerHTML=msg;
		$('mensaje').style.display='';
	}
	if(bool==0)
	{
		return false;
	}else{
		return true;
	}
}
function cambioEnvio(c){
	var obj = findObj("hiddenTax");
	var tax = new Number(obj.value);
	var UPStype = new String(c.value);
	var obj2 = findObj("hiddenSubtotal");
	var subtotal = new Number(obj2.value);
	var valorTax = new Number(subtotal*tax/100);
	var obj3 = findObj('UPS'+UPStype);
	var shipping = new Number(obj3.value);
	var valorTotal = new Number(subtotal+valorTax+shipping);
	$('divEnvio').innerHTML = shipping.toFixed(2) + " USD";
	$('divTotal').innerHTML = valorTotal.toFixed(2) + " USD";
	
	return true;
}

function changeShipping(){
	
	var obj = findObj("hiddenTax");
	var tax = new Number(obj.value);
	var obj2 = findObj("hiddenSubtotal");
	var subtotal = new Number(obj2.value);
	var obj3 = findObj('envioCbx');
	var shipping = new Number(obj3.value);
	var obj4 = findObj("hiddenEnvio");
	obj4.value = shipping;
	var valorTotal = new Number(subtotal+tax+shipping);
	$('divTotal').innerHTML = valorTotal.toFixed(2) + " USD";

	return true;
}

function Comprar(){
	document.compraForm.submit();
	return true;
}

function switchImage(imgName, imgSrc) 
{
  if (document.images)
  {
    if (imgSrc != "none")
    {
      document.images[imgName].src = imgSrc;
    }
  }
}

function gotoURL(url){
	document.location.href = url;
}

function doExpressCheckout()
{
	document.paypalPayment.submit();
	return false;
}

function showPaymentType(c)
{
	if(c.value==1)
	{
		$('expresscheckout').style.display='none';
		$('directcheckout').style.display='';
	}else if(c.value == 2)
	{
		$('directcheckout').style.display='none';	
		$('expresscheckout').style.display='';	
	}
}

function printpage() {
	window.print();
}

function shadowBoxOpen(){
	Shadowbox.open({ 
        content:    'http://www.site.com/page', 
        player:     "iframe", 
        title:      "New Window", 
        height:     350, 
        width:      350 
    }); 


}

function preloadImages()
{
  if(document.images)
  {
    if(!document.imageArray) document.imageArray = new Array();
    var i,j = document.imageArray.length, args = preloadImages.arguments;
    
    for(i=0; i<args.length; i++)
    {
      if (args[i].indexOf("#")!=0)
      {
        document.imageArray[j] = new Image;
        document.imageArray[j++].src = args[i];
      }
    }
  }
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

