window.onload=function() {
    var ob = document.getElementsByClassName('validate');
    for (var i = 0; i < ob.length; i++) {
        ob[i].onchange = validate;
    }
    
    var requireAll = new Array('first_name', 'last_name', 'address', 'city', 'zip_code');
    var requireOne = new Array('home_phone', 'cell_phone', 'office_phone', 'email');
}

function beforeSubmit() {
    var i;
    for (i = 0; i < requireAll.length; i++) {
        var flagOne = 1;
        if (requireAll[i] == '') {
            $(requireAll[i]).className = 'alert';
            $('errmsg').innerHTML = 'Please make sure all required items are completed';
        }
    }
    for (i = 0; i < requireOne.length; i++) {
        flagOne = 1;
        if (requireOne[i] != '') {
            flag = 0;
        }
        if ($flag) {
            $('errmsg').innerHTML = 'Please make sure you have included a phone number or e-mail address';
        }
    }    
}

function validate() {
    var url = '?p=validate';
    var params = 'id=' + this.id + '&value=' + escape(this.value);
    var myAjax = new Ajax.Request(url, {method: 'post', parameters: params, onComplete: showResponse});
}

function showResponse(originalRequest) {
    var jsonObj = originalRequest.responseText.parseJSON();
    if (jsonObj.err_message == null) {
        $('errmsg').innerHTML = '';
        $('errmsg').className = '';
        $(jsonObj.id).className = 'validate';
    } else {
        $('errmsg').innerHTML = jsonObj.err_message;
        $('errmsg').className = 'error';
        $(jsonObj.id).className = 'alert validate';
    }
}