function ajax (x, action, ajaxDiv, msg, err, baseUrl) { /* x is element id, msg is message during loading..., err is JS validation error message span id */
    var element = "#" + x;
	var result = "#" + ajaxDiv;
    var rpc=baseUrl + "/ajax/" + action; /* controller [ajax], action [action] */

	var ajaxImg = "ajax-loader-arrows.gif";
	var ajaxClass = "ajax_box";
	var ajaxBoxTrue = "ajax_box_true";
	var ajaxBoxFalse = "ajax_box_false";
	var verificationMsg = "Verifying " + msg + "...";
	var space = "";

	document.getElementById(x).value = trim(document.getElementById(x).value); // taking the trim() function from jsvalidations.js

	if ($(element).val().length == 0) {
	    $(result).removeClass().text(""); // $(result) = $("#result")
	    return false;
	}

	/* special condition for element with JS validation */
	document.getElementById(ajaxDiv).style.visibility = "visible";

    if (document.getElementById(err)) {
        document.getElementById(x).style.borderColor = "#a3c8f8";
        document.getElementById(err).innerHTML = "";
    } else {
		ajaxImg = "ajax-loading.gif";
		ajaxClass = "";
		ajaxBoxTrue = "";
		ajaxBoxFalse = "";
		verificationMsg = "";
		
		for (var i=0; i<20; i++) {
		    space += "&nbsp;";
		}
	}
	/* end */

	$(result).removeClass().addClass(ajaxClass).html(space + "<img src=\"" + baseUrl + "/images/ajax/" + ajaxImg + "\" border=\"0\" style=\"vertical-align: middle; background: transparent;\" /> " + verificationMsg).fadeIn("slow"); // remove all the class add the messagebox classes and start fading

	$.post(rpc, { value: $(element).val(), action: action, message: msg, rand: Math.random() }, function(data) { // verfiy from ajax = jQuery.post  << can also use $.get >>
	    if (data.indexOf("<YES>") > -1) {
	        var ack = "Y";
		    data = data.replace("<YES>", "");
	    }

	    if (data.indexOf("<NO>") > -1) {
	        var ack = "N";
		    data = data.replace("<NO>", "");
	    }

	    switch (ack) {
	        case "Y":
			    $(result).fadeTo(200, 0.1, function() { // start fading the messagebox
				    $(this).html(data).addClass(ajaxBoxTrue).fadeTo(900, 1); // add message and change the class of the box and start fading
				});

			    break;

	        case "N":
			    $(result).fadeTo(200, 0.1, function() { // start fading the messagebox
				    $(this).html(data).addClass(ajaxBoxFalse).fadeTo(900, 1); // add message and change the class of the box and start fading
				});

				break;
	    }
	});
}
