$(document).ready(
    function() {
        $("input").focus(
            function() {
                if(this.className == "error") {
                    $('#'+this.id).attr('class','');
                }
            }
        );
        $("textarea").focus(
            function() {
                if(this.className == "error") {
                    $('#'+this.id).attr('class','');
                }
            }
        );
        $("select").focus(
            function() {
                if(this.className == "error") {
                    $('#'+this.id).attr('class','');
                }
            }
        );
        /*$('.interior').change(
            function() {
                $('.exterior').attr('checked', false);
                $('.outdoor').attr('checked', false);
                $('.specialty').attr('checked', false);
            }
        );
        $('.exterior').change(
            function() {
                $('.interior').attr('checked', false);
                $('.outdoor').attr('checked', false);
                $('.specialty').attr('checked', false);
            }
        );
        $('.outdoor').change(
            function() {
                $('.interior').attr('checked', false);
                $('.exterior').attr('checked', false);
                $('.specialty').attr('checked', false);
            }
        );
        $('.specialty').change(
            function() {
                $('.interior').attr('checked', false);
                $('.exterior').attr('checked', false);
                $('.outdoor').attr('checked', false);
            }
        );*/
    }
);

checkForm = function(form)
{
    var error = false;
    var errorFields = new Array();
    errorFields["id"] = new Array();
    errorFields["message"] = new Array();
    var services = 0;
    var requiredFields = new Array();
    requiredFields["description"] = "Project Details";
    
    for(var i=0;i<form.elements.length;i++) {
        var element = form.elements[i];
        if(typeof element.className != 'undefined') {
            if((element.className == "interior" || element.className == "exterior" || element.className == "outdoor" || element.className == "specialty") 
                && (element.checked == true)) {
                services++;
            }
        }
        if(requiredFields[element.id]) {
            switch(element.tagName) {
                case "INPUT":
                case "TEXTAREA":
                    switch(element.type) {
                        case "checkbox":
                            if(element.checked == false) {
                                errorFields["id"][errorFields["id"].length] = element.id;
                                errorFields["message"][errorFields["message"].length] = requiredFields[element.id] + " is a required checkbox and must be checked.";
                                error = true;
                            }
                            break;
                        case "text":
                        default:
                            if(element.value == "") {
                                errorFields["id"][errorFields["id"].length] = element.id;
                                errorFields["message"][errorFields["message"].length] = requiredFields[element.id] + " is a required field and cannot be left empty.";
                                error = true;
                            } 
                            break;
                    }
                    break;
                case "SELECT":
                    if(element.options[element.selectedIndex].value == "") {
                        errorFields["id"][errorFields["id"].length] = element.id;
                        errorFields["message"][errorFields["message"].length] = requiredFields[element.id] + " is a required field and you must select an option.";
                        error = true;
                    }
                    break;
            }
        }
    }
    
    if(services==0) {
        errorFields["message"][errorFields["message"].length] = "You must select at least <strong>1</strong> service.<br />";
        error=true;
    }
    
    if(error) {
        var ids = errorFields["id"];
        for(var i =0;i<ids.length;i++) {
            var theClass = $('#'+ids[i]).attr('class');
            if(theClass && theClass != 'error') {
                $('#'+ids[i]).attr('class', theClass+' error');
            } else {
                $('#'+ids[i]).attr('class', 'error');
            }
        }
        
        var messages = errorFields["message"];
        var errorMessage = "<strong>The following errors have occurred:</strong><br /><br />";
        for(var i=0;i<messages.length;i++) {
            errorMessage += (parseInt(i)+1) + ". " + messages[i] + "<br />";
        }
        
        $('#errorMessage').html(errorMessage);
        $('#errorMessage').css('display','block');
        location.href='#error';
        return false;
    }
    
    return true;
    
}

