// set cursor to first field when form loads for any forms
$(document).ready(function(){
    $(":input:visible:enabled:first").focus();
});

// form is the id of the form you clicked submit on
// validation_url is the validation routine to run in php
function ajax_form_validation(form,validation_url)
{
	var req = jQuery.post
	(
		validation_url,
		jQuery('#' + form).serialize(),

		function(data)
        {
		    var err_in = data;
            var array_length = err_in.length;
            var ok = true;

            for ( var i=0; i<array_length; i++ ) {
                if (err_in[i].err_msg != '') {
                    ok = false;

                     // show error message for element
                    remove_class('noerrormsg','err_'+err_in[i].err_id);
                    add_class('errormsg','err_'+err_in[i].err_id);

                    // highlight field in error
                    remove_class('inputnormal',err_in[i].err_id);
                    add_class('inputerror',err_in[i].err_id);

                    // output actual error message in html
                    jQuery('#' + 'err_'+err_in[i].err_id).html(err_in[i].err_msg);
                 } else {
                    // remove error message for element
                    remove_class('errormsg','err_'+err_in[i].err_id);
                    add_class('noerrormsg','err_'+err_in[i].err_id);

                    // remove highlighting of field in error
                    remove_class('inputerror',err_in[i].err_id);
                    add_class('inputnormal',err_in[i].err_id);

                    // remove actual error message in html
                    jQuery('#' + 'err_'+err_in[i].err_id).html('&nbsp;');
                }
            }

            // submit the form if no errors
            if (ok) {
                jQuery('#' + form).submit();
//                jQuery('#receiver').html(complete_msg);
//                remove_class('errornote','receiver');
//                add_class('success','receiver');
            } else {
                jQuery('#receiver').html('Please correct the errors shown below.');
                remove_class('success','receiver');
                add_class('errornote','receiver');
            }
            jQuery('#receiver').show();
			req = null;
		}, "json");

    return false;
}

// remove class from specific element based on id
function remove_class(class_in,element_id)
{
	if (jQuery('#' + element_id).hasClass(class_in)) {
		jQuery('#' + element_id).removeClass(class_in);
	}
}

// add class to specific element based on id
function add_class(class_in, element_id)
{
	if (!jQuery('#' + element_id).hasClass(class_in)) {
		jQuery('#' + element_id).addClass(class_in);
	}
}
