

    function validateQuoteRequest(theForm) {
        var reason = "";
        var releaseReason = "";

        reason += validateEmpty(theForm.DateQuoteNeeded, 'Date Quote Needed');
        reason += validateEmpty(theForm.CompanyName, 'Company Name');
		reason += validateEmpty(theForm.ContactPerson, 'Contact Person');
        reason += validateEmail(theForm.Email, 'Email');
		reason += validatePhone(theForm.Phone, 'Phone');


        if (reason != "") {
            alert(reason);
            return false;
        }

        return true;
    }
	
	
	function validateDecals(theForm) {
        var reason = "";
        var releaseReason = "";

        reason += validateEmpty(theForm.FirstName, 'First Name');
        reason += validateEmpty(theForm.LastName, 'Last Name');
		reason += validateEmpty(theForm.Address, 'Address');
		reason += validateEmpty(theForm.City, 'City');
		reason += validateEmpty(theForm.state, 'State');
		reason += validateEmpty(theForm.Zip, 'Zip');
        reason += validateEmail(theForm.Email, 'Email');


        if (reason != "") {
            alert(reason);
            return false;
        }

        return true;
    }
	
	function validateContact(theForm) {
        var reason = "";
        var releaseReason = "";

        reason += validateEmpty(theForm.Name, 'Name');
        reason += validateEmail(theForm.Email, 'Email');


        if (reason != "") {
            alert(reason);
            return false;
        }

        return true;
    }
    
    function hasClass(ele,cls) {
        return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    }
    
    function addClass(ele,cls) {
        if (!this.hasClass(ele,cls)) ele.className += " "+cls;
    }
    
    function removeClass(ele,cls) {
	    if (hasClass(ele,cls)) {
		    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		    ele.className=ele.className.replace(reg,' ');
	    }
    }

    function validateSelected(fld, msg){
        var error = "";
        if (fld.value == ""){
            error = msg;
            addClass(fld, 'error_field');
        } else {
            removeClass(fld, 'error_field');
        }

        return error;
    }

    function validateExistence(fld){
        if (null == fld){
            return false;
        }
        if ("undefined" == typeof(fld)){
            return false;
        }
        return true;
    }

    function validateEmpty(fld, fld_name) {
        var error = "";

        if (fld.value.length == 0) {
            //fld.style.background = 'Yellow';
            addClass(fld, 'error_field');
            //fld.setAttribute('class','error_field');
            error = "Please enter your " + fld_name + "\n";
        } else {
            removeClass(fld, 'error_field');
            //fld.setAttribute('class','non_error_field');
        }
        return error;
    }

    function validateNumber(fld, max, fld_name) {
        var error = "";

        if (fld.value == "") {
            error = "Please enter your " + fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else if (isNaN(parseInt(fld.value))) {
            error = "Please only use numbers in " + fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else if (parseInt(fld.value) > max) {
            error = fld_name + " is too large.\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else {
            //fld.setAttribute('class','non_error_field');
            removeClass(fld, 'error_field');
        }
        return error;
    }

    function trim(s) {
        return s.replace(/^\s+|\s+$/, '');
    }

    function validateEmail(fld, fld_name) {
        var error="";
        var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
        var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
        var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
        
        if (fld.value == "") {
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
            error = "Please enter your " + fld_name + ".\n";
        } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
            error = "Please enter a valid " + fld_name + ".\n";
        } else if (fld.value.match(illegalChars)) {
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
            error = fld_name + " contains illegal characters.\n";
        } else {
            //fld.setAttribute('class','non_error_field');
            removeClass(fld, 'error_field');
        }
        return error;
    }

    function validateExpiration(fld, fld_name) {
        var error="";
        var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
        var expirationFilter = /^\d\d\d\d$/ ;

        if (fld.value == "") {
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
            error = "Please enter your " + fld_name + ".\n";
        } else if (!expirationFilter.test(tfld)) {              //test email for illegal characters
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
            error = "Please enter a valid " + fld_name + ".\n";
        } else {
            var month;
            var year;
            month=parseInt(fld.value.substring(0,2));
            year=parseInt(fld.value.substring(2,4));
            var m = new Date()
            var m_year = m.getFullYear()%100, m_month = m.getMonth();
            if (year < m_year) {
                //fld.setAttribute('class','error_field');
                addClass(fld, 'error_field');
                error = "Credit Card Expired\n";
            } else if (year==m_year && month <= m_month + 1){
                //fld.setAttribute('class','error_field');
                addClass(fld, 'error_field');
                error = "Credit Card Expired\n";
            } else {
                //fld.setAttribute('class','non_error_field');
                removeClass(fld, 'error_field');
            }
        }
        return error;
    }


    function validatePhone(fld, fld_name) {
        var error = "";
        var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');

        if (fld.value == "") {
            error = "Please enter your " + fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else if (isNaN(parseInt(stripped))) {
            error = "Please only use numbers for " + fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else if (!(stripped.length == 10)) {
            error = fld_name + " is the wrong length. Make sure you included an area code.\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else {
            //fld.setAttribute('class','non_error_field');
            removeClass(fld, 'error_field');
        }
        return error;
    }

    function validateLength (fld, min, max, fld_name){
        var error="";
        if (fld.value.length < min){
            error= "Please enter a value longer than "+ min +" digits for "+ fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else if (fld.value.length > max){
            error= "Please enter a value shorter than "+ max +" digits for "+ fld_name + ".\n";
            //fld.setAttribute('class','error_field');
            addClass(fld, 'error_field');
        } else {
            //fld.setAttribute('class','non_error_field');
            removeClass(fld, 'error_field');
        }
        return error;
    }

    function validateCheck(fld){
        var error = "";
        if (fld.checked == false){
            error = "Please accept the terms and conditions to continue.\n";
        }
        return error;
    }

   
