/*
 * Purpose: Provide input validation and phone masking
 * 
 * Created: 2/3/2009
 * Last edited: 2/6/2009
 */
;(function($){
    var message = '', str = '',prettyPhone = '', phoneIndex='';
    var eles = {};
    var regPhone = /^\d{7}$|^\d{10}$/; 
    var regZipcode = /^\d{5}$/;
    var regNumeric = /^\d+$/;
    
    var isNumeric = function(ele){
        ele.value = ele.value.replace(/\D/g,'');
        return regNumeric.test(ele.value);    
    };
    var validPhone = function(ele){
        if(isNumeric(ele)){
            return regPhone.test(ele.value);
        }
        return false;
    };
    var validName = function(ele){
        ele.value = ele.value.replace(/\s/g,''); 
        return (ele.value.length > 0);
    };
    var validZipcode = function(ele){
        if(isNumeric(ele)){
            return regZipcode.test(ele.value);
        }
        return false;
    };

    var validate = function(){
        message = '';
        eles = this.elements;
        for (var i = 0; eles[i]; i++) {
            switch (eles[i].name) {
                case 'firstname':
                    if (!validName(eles[i])) {
                        message += "Please enter your First name.\n";
                    }
                    break;
                case 'lastname':
                    if (!validName(eles[i])) {
                        message += "Please enter your Last name.\n";
                    }
                    break;
                case 'phone':
                    prettyPhone = eles[i].value;
                    phoneIndex = i;
                    if (!validPhone(eles[i])) {
                        message += "Please enter your phone number.\n";
                    }
                    break;
                case 'zipcode':
                    if (!validZipcode(eles[i])) {
                        message += "Please enter your Zip code.\n"
                    }
                    break;
            }
        };
        if (message.length > 0) {
            eles[phoneIndex].value = prettyPhone; //Validation failed put pretty version back in.
            alert(message);
        }
        return (message.length === 0);
        
    };
    window.onload = function(){
        //pointer to our form
/*        var formPtr = document.forms[1]; 
        if(typeof formPtr !== 'undefined'){
            formPtr.onsubmit = validate;
        }*/
        $("input.phone").mask("(999) 999-9999");
    };
})(jQuery);  