function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function getModels(manId)
{
	var url = "ajaxGetModels.php",
		params = "manufacturer="+manId;
	
	jQuery.post(url, params, function(retval){
		var arrRetval = retval.split("##");
		jQuery("#modelbox").html(arrRetval[1]);
		jQuery.jNice.SelectAdd(jQuery("#rangeselect").get(0));
	});
}

function getYears(modId)
{
	var url = "ajaxGetYears.php",
		params = "model="+modId;
	
	jQuery.post(url, params, function(retval){
		var arrRetval = retval.split("##");
		jQuery("#yearbox").html(arrRetval[1]);
		jQuery.jNice.SelectAdd(jQuery("#yearselect").get(0));
	});
}

function setAlertWindow(strTitle, strContent)
{
	jQuery('#pop_title').html(strTitle);
	jQuery('#pop_content').html(strContent);
	jQuery('#alertbox').fadeIn(200);
}

function simpleFormRequest(frm, callButton, url)
{
	var TheCollector = new frmDataCollector(frm),
	params = TheCollector.frmDataToParams();
	
	jQuery.post(url, params, function(retval){
		var arrRetval = retval.split("##");
		if (arrRetval[0] == "OK")
		{
			if (callButton)
				jQuery('#'+callButton).fadeOut(200);
			
			setAlertWindow('Enquiry Successful', arrRetval[1]);
			//alert(arrRetval[1]);
		}
		else
			setAlertWindow('Equiry Error', arrRetval[0]);
			//alert(arrRetval[0]);
	});
}

function formAjaxRequest(frm, callButton, url)
{
	var objForm = document.getElementById(frm);
	
	if (objForm != null)
		simpleFormRequest(frm, callButton, url);
	else
		alert("Form is NULL!");
}

function frmDataCollector (frm)
{
	this.frm = document.getElementById(frm);
}

frmDataCollector.prototype =
{
	encodeNameAndValue: function(name, value)
	{
		param = name+'='+trim(value);
		return param;
	},
	
	frmDataToParams: function()
	{
		var params = "";
		var form = this.frm;
		
		for (var i = 0; i < form.elements.length; i++)
		{
			var field = form.elements[i];
			var stopped = false;
			
			switch (field.type) {
				case "button":
				case "submit":
				case "reset":
					stopped = true;
				break;
				case "checkbox":
				case "radio":
					if (!field.checked) {
						stopped = true;
						break;
					}
				case "text":
				case "hidden":
				case "password":
					params += this.encodeNameAndValue(field.name, field.value);
					break;
				default:
					switch(field.tagName.toLowerCase()) {
						case "select":
							params += this.encodeNameAndValue(field.name, field.options[field.selectedIndex].value);
							break;
						default:
							params += this.encodeNameAndValue(field.name, field.value);
					}
			}
			if (i < form.elements.length-2 && !stopped) {
				params += "&";
			}
		}
		return params;
	}
};
