var xmlHttp
var ajaxID="";
var ajaxObject="";
var imageDis = "Y";
var returnText = "";

//when using ajaxPage always use page.php?Page=something or leave blank
function ajaxrun(ajaxPage, objectRun)
{
	//alert(objectRun); 
	ajaxObject=objectRun;
	xmlHttp=GetXmlHttpObject(stateChange);
	xmlHttp.open("POST", ajaxPage+"&sid="+Math.random(), false);
	xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	//alert(getParms(objectRun));
	xmlHttp.send(getParms(objectRun));
	return returnText;
	returnText = "";
}

function getParms(objectParms)
{
	var returnVal = "";
	if(objectParms != "" && objectParms != null)
	{
		var elem = objectParms.elements;
	
		for(var i = 0; i < elem.length; i++)
		{
			//alert(elem[i].name);
			//For arrays
			if(elem[i].name != "" && elem[i].length > 1)
			{
				len = elem[i].length;
				var arrVal = "";
				for (t = 0; t < len; t++) 
				{
					if (elem[i][t].selected) 
					{arrVal = arrVal+elem[i][t].value+"*";} 
				}
				var thelength = arrVal.length - 1;
				arrVal=arrVal.substring(thelength,-1);
				
				if(returnVal.search(elem[i].name)!="-1")
				{returnVal = returnVal.replace(elem[i].name+"=", elem[i].name+"="+arrVal+"*");}
				else
				{returnVal = returnVal+elem[i].name+"="+arrVal+"&";}
			}
		
			// for Editor
			else if(elem[i].name.search(/EDIT/)!="-1")
			{
				var thelength = elem[i].name.length - 4;
				var newName = elem[i].name.substring(thelength, -1);
				returnVal = returnVal+newName+"="+FCKeditorAPI.GetInstance(elem[i].name).GetXHTML()+"&";
			}
			
			//the rest
			else if(elem[i].name != "")
			{
				//Put here to fix arrays that have same name but not same box
				if(returnVal.search(elem[i].name)!="-1")
				{returnVal = returnVal.replace(elem[i].name+"=", elem[i].name+"="+elem[i].value+"*");}
				else
				{returnVal = returnVal+elem[i].name+"="+escape(elem[i].value)+"&";}
			}
		}
	
		var thelength = returnVal.length - 1;
		returnVal=returnVal.substring(thelength,-1);
	}
	return returnVal;
}

//to use call ajaxID = "some value"
//For ajaxrun function
function stateChange() 
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{returnText=xmlHttp.responseText;}
	else
	{
		if(ajaxID != "")
		{document.getElementById(ajaxID).innerHTML=xmlHttp.readyState;}
	}
}

function GetXmlHttpObject(handler)
	{ 
		var objXmlHttp=null
		if (navigator.userAgent.indexOf("Opera")>=0)
			{alert("Doesn't Support Opera")
			return}
		
		if (navigator.userAgent.indexOf("MSIE")>=0)
			{
				var strName="Msxml2.XMLHTTP"
				if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
					{strName="Microsoft.XMLHTTP"} 
				try { 
						objXmlHttp=new ActiveXObject(strName)
						objXmlHttp.onreadystatechange=handler
						return objXmlHttp
					}
				catch(e)
					{alert("Error. Scripting for ActiveX might be disabled")
					return} 
			} 
		
		if (navigator.userAgent.indexOf("Mozilla")>=0)
			{
				objXmlHttp=new XMLHttpRequest()
				objXmlHttp.onload=handler
				objXmlHttp.onerror=handler 
				return objXmlHttp
			}
	}


function validate(ajaxVal)
{	
	try{var elem = ajaxObject.elements;}
	catch(err)
	{/*alert("Form Object Missing");*/return;}
	
	for(var i = 0; i < elem.length; i++)
	{
		if(elem[i].name != "")
		{
			try{document.getElementById(elem[i].name).style.backgroundColor = '#FFFFFF';}
			catch(err)
			{/*alert(elem[i].name);*/}
		}
	}

	if(ajaxVal.search(/<validate>/)!="-1")
	{
		var bepcValidate=ajaxVal.substring(ajaxVal.search(/<validate>/)+10,ajaxVal.search(/<e validate>/));
		var bepcText=ajaxVal.substring(ajaxVal.search(/<valText>/)+9,ajaxVal.search(/<e valText>/));

		for(var i = 0; i < elem.length; i++)
		{
			if(elem[i].name != "" && bepcValidate.search(elem[i].name)!="-1")
			{document.getElementById(elem[i].name).style.backgroundColor = '#FF0000';}
		}
    		
		return bepcText;
	}
	else
	{return "";}
}