String.prototype.trim = function() { return this.replace(/(^\s+)|\s+$/g, "") }
/**/String.prototype.ltrim = function() { return this.replace(/(^\s+)/g, "") }
/**/String.prototype.rtrim = function() { return this.replace(/\s+$/g, "") }

var xmlHttp;
try {
	xmlHttp = new XMLHttpRequest();
}
catch (e) {
	// Internet Explorer
	try {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch (e) {
		alert(e);
	}
}

//function updateCount1(pageUrl) {
//	// url:    URL to invoke
//	// params: string object to pass to the remote URL

//	// Prepare for a POST statement and synchronous. (All this is 
//	// arbitrary and can be changed in your own implementation.)

//	//	var xmlHttp = getxmlHttpObject();

//	var formvalues = getFormValues("frmPlanSearchAdvanced");

//	xmlHttp.open("POST", pageUrl, true);
//	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//	xmlHttp.send(formvalues);

//	refreshCount("frmPlanSearchAdvanced", xmlHttp.responseText.substring(0, 10));

//	// Return the xmlHttp object
//	return false;
//}

function updateCount(pageUrl, pos) {
	// url:    URL to invoke
	// params: string object to pass to the remote URL

	// Prepare for a POST statement and synchronous. (All this is 
	// arbitrary and can be changed in your own implementation.)

	//	var xmlHttp = getxmlHttpObject();

	var formvalues = getFormValues("frmPlanSearchAdvanced");
	var hostName = location.hostname;
	//	var hostName = "www.homeplans.com";

	//	var url = "http://localhost/homeplans.aspx.net/ws/plansearch.asmx"

	var strEnvelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
		"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
		" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"" +
		" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
		" <soap:Body>" +
		" <PlanSearchCount xmlns=\"http://ws.homeplans.com/plansearch\">" +
		" <searchfilter>" + formvalues + "</searchfilter>" +
		" <hostname>" + hostName + "</hostname>" +
		" <pos>" + pos + "</pos>" +
		" </PlanSearchCount>" +
		" </soap:Body>" +
		"</soap:Envelope>";

	xmlHttp.open("POST", pageUrl, false);
	xmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
	xmlHttp.send(strEnvelope);

	var xmlDoc = xmlHttp.responseXML;
	var resultCount

	if (xmlDoc.getElementsByTagName('PlanSearchCountResult') && xmlDoc.getElementsByTagName('PlanSearchCountResult')[0].childNodes.length > 0) {
		resultCount = xmlDoc.getElementsByTagName('PlanSearchCountResult')[0].firstChild.nodeValue;
	}
	else {
		resultCount = "0";
	}
	
	refreshCount("frmPlanSearchAdvanced", resultCount);

	//	$(xmlHttp.responseXML).find("PlanSearchCountResult").each(function() { var PlanSearchCountResult = $(this); refreshCount("frmPlanSearchAdvanced", PlanSearchCountResult.nodeValue); });

	return false;
}

function refreshCount(formName, count) {
	var frmCtrls = document.getElementById(formName).getElementsByTagName("span");

	for (i = 0; i < frmCtrls.length; i++) {
		var ctrl_item = frmCtrls[i];
		var ctrl_id = ctrl_item.id.toLowerCase();

		if (ctrl_item != undefined && ctrl_id == "plancount") {
			ctrl_item.innerHTML = count.trim();
		}
	}
	return false;
}

function getFormValues(formName) {
	var var_list = "";
	var valueSeparator = ".";
	var parameterSeparator = ";"

	var frmCtrls = document.getElementById(formName);

	for (i = 0; i < frmCtrls.length; i++) {
		var ctrl_item = frmCtrls[i];

		if (ctrl_item != undefined) {
			var ctrl_id = ctrl_item.id;

			if (ctrl_id != undefined) {
				var ctrl_name = ctrl_item.name;
				var ctrl_type = ctrl_item.type;
				var ctrl_value = ctrl_item.value;

				if ((ctrl_type != undefined && ctrl_value != undefined) && ctrl_name.substring(0, 8) != "default_") {
					switch (ctrl_type) {
						case 'checkbox':
							var checked = ctrl_item.checked;
							if (checked) {
								if (var_list.length > 0) { var_list += parameterSeparator }
								var_list += ctrl_name + valueSeparator + ctrl_value;
							}
							break;

						case 'select-one':
							var selected = ctrl_item.selected;
							var default_ctrl_name = "default_" + ctrl_item.name;
							var default_ctrl = document.getElementById(default_ctrl_name);
							var default_value = default_ctrl.value;

							if (default_ctrl != undefined && default_ctrl.value != undefined) {
								if (default_value != ctrl_value) {
									if (var_list.length > 0) { var_list += parameterSeparator }
									var_list += ctrl_name + valueSeparator + ctrl_value;
								}
							}
							else {
								if (var_list.length > 0) { var_list += parameterSeparator }
								var_list += ctrl_name + valueSeparator + ctrl_value;
							}
							break;

						case 'select':
							var selected = ctrl_item.selected;
							if (selected) {
								if (var_list.length > 0) { var_list += parameterSeparator }
								var_list += ctrl_name + valueSeparator + ctrl_value;
							}
							break;

						case 'option':
							break;

						case 'radio':
							var selected = ctrl_item.selected;
							if (selected) {
								if (var_list.length > 0) { var_list += parameterSeparator }
								var_list += ctrl_name + valueSeparator + ctrl_value;
							}
							break;

						default:
							if (var_list.length > 0) { var_list += parameterSeparator }
							var_list += ctrl_name + valueSeparator + ctrl_value;
							break;
					}
				}
			}
		}
	}
	return var_list;
}

function resetSearchForm(formName) {
	var frmCtrls = document.getElementById(formName);

	for (i = 0; i < frmCtrls.length; i++) {
		var ctrl_item = frmCtrls[i];

		if (ctrl_item != undefined) {
			var ctrl_id = ctrl_item.id;

			if (ctrl_id != undefined) {
				var ctrl_name = ctrl_item.name;
				var ctrl_type = ctrl_item.type;
				var ctrl_value = ctrl_item.value;

				if (ctrl_type != undefined && ctrl_value != undefined && ctrl_type != "hidden" && ctrl_name.substring(0, 8) != "default_") {
					switch (ctrl_type) {
						case 'checkbox':
							ctrl_item.checked = false;
							break;

						case 'radio':
							ctrl_item.checked = false;
							break;

						case 'select-one':
							ctrl_item.selectedIndex = 0
							break;

						case 'option':
							break;

						default:
							ctrl_item.value = "";
							break;

					}
				}
			}
		}
	}
}