﻿function validatePhoneNumber(elementValue){
    var pattern = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})(\s[x]\d{1,4})?$/;

    return pattern.test(elementValue);
}

function validatePostalCode(elementValue){
    var pattern = /^([a-zA-Z]{1}[0-9]{1}[a-zA-Z]{1}\s[0-9]{1}[a-zA-Z]{1}[0-9]{1})$/;

    return pattern.test(elementValue);
}

var phoneBefore;
$(document).ready(function() {
            
            $(".required").focus( function(e){
                label = '#' + $(this).attr("label");
                $(this).removeClass('error')
                $(label).removeClass('error');
            });
            
            $(".phone").mask("(999) 999-9999? x9999");
            $('.postalcode').mask('a9a 9a9');
            
            $("form").bind("submit", function(e){
                
                var result = true;
                
                var requiredInput = $(".required");
                
                
                for(i=0; i<requiredInput.length; i++)
                {
                    
                    var label = '#' + $(requiredInput[i]).attr("label");
                    
                    if(requiredInput[i].value == "") {
                    
                        $(requiredInput[i]).addClass('error');
                        $(label).addClass('error');
                        
                        result = false;
                    }
                    else {
                        $(requiredInput[i]).removeClass('error');
                        $(label).removeClass('error');
                    }
                }
                
                var emailInput = $(".email");
                
                for(i=0; i<emailInput.length; i++)
                {
                    var label = '#' + $(emailInput[i]).attr("label");
                    
                    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                    if (!filter.test(emailInput[i].value)) { 
                        result = false;
                        $(emailInput[i]).addClass('error');
                        $(label).addClass('error');
                    }
                    else {
                        $(emailInput[i]).removeClass('error');
                        $(label).removeClass('error');
                    }
                }
                
                var phoneInput = $(".phone");
                
                for(i=0; i<phoneInput.length; i++)
                {
                    var label = '#' + $(phoneInput[i]).attr("label");
                    
                    if(!validatePhoneNumber(phoneInput[i].value)) {
                        result = false;
                        $(phoneInput[i]).addClass('error');
                        $(label).addClass('error');
                    }
                    else {
                        $(phoneInput[i]).removeClass('error');
                        $(label).removeClass('error');
                    }
                }
                
                var postalCodeInput = $(".postalcode");
                
                for(i=0; i<postalCodeInput.length; i++)
                {
                    var label = '#' + $(postalCodeInput[i]).attr("label");
                    if (!validatePostalCode(postalCodeInput[i].value)) { 
                        result = false;
                        $(postalCodeInput[i]).addClass('error');
                        $(label).addClass('error');
                    }
                    else {
                        $(postalCodeInput[i]).removeClass('error');
                        $(label).removeClass('error');
                    }
                }
                
                return result;
            });
        });
