/*
 * zipCode   	 Matches a US zip Code (ie: 12345 or 12345-1234)
 * Currency 	Matches $17.23 or $14,281,545.45
 * Time 	Matches 5:04 or 12:34 but not 75:83
 * emailAddress 	Matches a valid email address (ie: someone@here.com or someone@here.co.uk)
 * phoneNumber 	Matches US phone (###-###-#### or (###) ###-####)
 * phoneNumberInternational 	Matches international phone numbers
 * ipAddress 	Matches a valid IP Address (###.###.###.###, all numbers being <= 255)
 * Date 	Matches a date in xx/xx/xxxx format
 * State 	Matches a US state abbreviation
 * SSN 	Matches a valid US Social Security Number
 */


    // Validator Object
    var valid = new Object();

    // REGEX Elements

        // valor requerit
        valid.required = /[a-zA-Z0-9\-\.]+/;

        // valor numèric requerit
        valid.integer_required = /[0-9]+/;

        // valor numèric
        valid.integer = /^\d*$/;

        // matches zip codes
        valid.zipCode = /\d{5}(-\d{4})?/;

        // matches $17.23 or $14,281,545.45 or ...
        valid.Currency = /\$\d{1,3}(,\d{3})*\.\d{2}/;

        // matches 5:04 or 12:34 but not 75:83
        valid.Time = /^([1-9]|1[0-2]):[0-5]\d$/;

        //matches email
        valid.emailAddress = /^$|^(.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$)/;

        //matches email requerit
        valid.emailAddress_required = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;

        // matches phone ###-###-####
        valid.phoneNumber = /^\(?\d{3}\)?\s|-\d{3}-\d{4}$/;

        // International Phone Number
        valid.phoneNumberInternational = /^\d(\d|-){7,20}/;

        // IP Address
        valid.ipAddress = /^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;

        // Date xx/xx/xxxx
        valid.Date = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;

        // State Abbreviation
        valid.State = /^(AK|AL|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|IN|KS|KY|LA|MA|MD|ME|MI|MN|MO|MS|MT|NB|NC|ND|NH|NJ|NM|NV|NY|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VA|VT|WA|WI|WV|WY)$/i;

        // Social Security Number
        valid.SSN = /^\d{3}\-\d{2}\-\d{4}$/;


    function validateForm(theForm) {

        var elArr = theForm.elements;

        for(var i = 0; i < elArr.length; i++) {

           with(elArr[i]) {

              var v = elArr[i].getAttribute("validator");

              if(!v) continue;


              var thePat = valid[v];

              var gotIt = thePat.exec(value);

              if(! gotIt){
                 if (v=="required") {
                 	var texte = "El campo es requerido";
                 } else {
					var texte = "El valor no es correcto (" + v + ")";
                 }
                 alert(texte);
                 elArr[i].select();
                 elArr[i].focus();
                 return false;
              }
           }
        }

        return true;

    }

