var xmlHttp;

function GetXmlHttpObject()
{
	var xmlHttp = null;
	
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
		
		if (xmlHttp.overrideMimeType) 
		{
			// set type accordingly to anticipated content type
			//xmlHttp.overrideMimeType('text/xml');
			xmlHttp.overrideMimeType('text/html');
		}
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}


function displayDynamicPanel(urlStr, elemID, loadingID, postStr)
{ 
	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp == null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	} 

	var url = urlStr;

	//xmlHttp.onreadystatechange = loadSearchList;
	xmlHttp.onreadystatechange = function()
	{
		if (xmlHttp.readyState == 4)
		{ 
			document.getElementById(elemID).innerHTML = xmlHttp.responseText;
			toggleLayer(loadingID, 0);	// hide loader
			//toggleVisibility(loadingID,0);
		}
	};

	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", postStr.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(postStr);
}


function postVariables(fobj, urlStr, elemID, loadingID) 
{
	var postStr = getFormValues(fobj,false);
	toggleLayer(loadingID, 1);	// show loader
	//toggleVisibility(loadingID,1);
	displayDynamicPanel(urlStr, elemID, loadingID, postStr);
}


function getFormValues(fobj, valFunc)
{
	var str = "";
	var valueArr = null;
	var val = "";
	var cmd = "";

	for (var i = 0;i < fobj.elements.length;i++)
	{
		switch(fobj.elements[i].type)
		{
			
			case "hidden":
				if (valFunc)
				{
					//use single quotes for argument so that the value of
					//fobj.elements[i].value is treated as a string not a literal
					cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
					val = eval(cmd)
				}
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "text":
				if (valFunc)
				{
					//use single quotes for argument so that the value of
					//fobj.elements[i].value is treated as a string not a literal
					cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
					val = eval(cmd)
				}
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "textarea":
				if (valFunc)
				{
					//use single quotes for argument so that the value of
					//fobj.elements[i].value is treated as a string not a literal
					cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
					val = eval(cmd)
				}
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
				break;

			case "select-one":
				str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
				break;
		}
	}
	str = str.substr(0,(str.length - 1));
	return str;
}


function displayDynamicPanelNoLoader(xmlHttp, urlStr, elemID, postStr)
{ 
	xmlHttp = GetXmlHttpObject();
	
	if (xmlHttp == null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	} 

	var url = urlStr;

	
	xmlHttp.onreadystatechange = function()
	{
		if (xmlHttp.readyState == 4)
		{ 
			alert(xmlHttp.responseText);

			if (xmlHttp.responseText != "" && xmlHttp.responseText != "HasSubCategories")
			{
				document.getElementById(elemID).innerHTML = xmlHttp.responseText;
			}
			
		}
	};

	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", postStr.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(postStr);
}


function postVariablesNoLoader(xmlHttp, fobj, urlStr, elemID) 
{
	var postStr = getFormValues(fobj,false)
	displayDynamicPanelNoLoader(xmlHttp, urlStr, elemID, postStr);
}
