//Funciones de soporte
function strip(filter,str){
 var i, curChar;
 var retStr = '';
 var len=str.length;
 for (i=0;i<len;i++){
    curChar=str.charAt(i);
    if(filter.indexOf(curChar)<0)
     //si no esta en el filtro, mantnerlo
     retStr += curChar;
      }
      return retStr;
      }
      
  function reformat(str){
      var arg;
      var pos = 0;
      var retStr = '';
      var len = reformat.arguments.length;
      for(var i=1; i<len; i++){
         arg = reformat.arguments[i];
         if(i%2==1)
            retStr += arg;
         else{
            retStr += str.substring(pos, pos + arg);
            pos += arg;
         }
      }
      return retStr;
   }
   //End Support Functions
   
   
   //Validation Rules
   function notEmpty(str){
      if(strip(" \n\r\t",str).length ==0)
         return false;
      else
         return true;
   }
   function validateInteger(str){
      str = strip(' \n\r\t',str);
      //remove leading zeros, if any
      while(str.length > 1 && str.substring(0,1) == '0'){
         str = str.substring(1,str.length);
      }
      var val = parseInt(str);
      if(isNaN(val))
         return false;
      else
         return true;
   }
   
   function validateFloat(str){
      str = strip(' \n\r\t',str);
      //remove leading zeros, if any
      while(str.length > 1 && str.substring(0,1) == '0'){
         str = str.substring(1,str.length);
      }
      var val = parseFloat(str);
      if(isNaN(val))
         return false;
      else
         return true;
   }
   
   function validateUSPhone(str){
      str = strip("*() -./_\n\r\t\\",str);
      if(str.length == 10 || str.length == 7)
         return true;
      else
         return false;
   }
   function validateSSN(str){
      str = strip(" -.\n\r\t",str);
      if(validateInteger(str) && str.length == 9)
         return true;
      else
         return false;
   }
   function validateZip(str){
      str = strip("- \n\r\t",str);
      if(validateInteger(str) && (str.length==9 || 
         str.length==5))
      return true;
      else
         return false;
   }
   
   function validateEMail(str){
      str = strip(" \n\r\t",str);
      if(str.indexOf("@") > -1 && str.indexOf(".") > -1)
         return true;
      else
         return false;
   }
   
   //End Validation Rules
   
   
   
   
   
   //Form Validator
   function validator(form){
      
      
       if(notEmpty(form.txtNombre.value)==false){
         alert("Field required: 'Name and Surname'");
         form.txtNombre.focus();
         return false;
      }
      
       if(notEmpty(form.txtPais.value)==false){
         alert("Field required: 'Country'");
         form.txtPais.focus();
         return false;
      }
      
      
      if(notEmpty(form.txtTelefono.value)==false){
         alert("Field required: 'Phone'");
         form.txtTelefono.focus();
         return false;
      }
      if(notEmpty(form.txtEmail.value)==false){
         alert("Field required: 'Email'");
         form.txtEmail.focus();
         return false;
      }
      
     
      if(validateEMail(form.txtEmail.value)==false){
         alert("You must enter a valid email address");
         form.txtEmail.focus();
         return false;
      }
      form.txtEmail.value = 
        strip(" \n\r\t",form.txtEmail.value);
   }