var xmlHttp
var ajaxElem

function ExecuteAjax(inURL,inElem)
{ 
	ajaxElem = inElem;
	if (inURL.length > 0 && inElem.length > 0 )
	{ 
		if (inURL.indexOf("?") == -1 )
		{
			var url= inURL + "?sid=" + Math.random();
		}
		else
		{
			var url= inURL + "&sid=" + Math.random();
		}
		//alert(url);
		xmlHttp=GetXmlHttpObject(stateChanged)
		xmlHttp.open("GET", url , true)
		xmlHttp.send(null)
	} 
	else
	{ 
		if (ajaxElem.length > 0)
			top.document.getElementById(ajaxElem).innerHTML="";
	} 
} 

function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		if (ajaxElem.length > 0)
		{
			var ajaxElement = top.document.getElementById(ajaxElem);
			if (ajaxElement != null) 	
			{	
				dataObj = top.document.getElementById(ajaxElem);
				dataObj.innerHTML = '';
				newObj = document.createElement("div");
				newObj.innerHTML = xmlHttp.responseText;
				dataObj.appendChild(newObj);
				
				//top.document.getElementById(ajaxElem).innerHTML=xmlHttp.responseText;
			}	
		}	
	} 
} 

function GetXmlHttpObject(handler)
{ 
	var objXmlHttp=null

	if (navigator.userAgent.indexOf("Opera")>=0)
	{
		//alert("This functionality is not currently supported in Opera browsers.") 
		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 PostForm(formObj,postURL) {
  var formOK = true;
  var hasValue = false;

    if (http) {
      var qstr = getFormValues(formObj);
	  //alert(qstr);
      qstr += '&useAJAX=y';
	  //alert(qstr);
	  url = postURL + '?';
	  sendEnquiry(url, qstr, 'POST');
      return false
    }
}

var http = getHTTPObject();
var isWorking = false;

function sendEnquiry(url, qstr, sendAs) {
  if (!isWorking && http) {
    if (sendAs == 'POST') {
    	http.open("POST", url, true);
    	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	    http.onreadystatechange = handleEnquiry;
	    isWorking = true;
     	http.send(qstr);
    }
    if (sendAs == 'GET') {
	    http.open('GET', url + qstr, true);
	    http.onreadystatechange = handleEnquiry;
	    isWorking = true;
	    http.send(null);
    }
  }

}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {

        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}


function getFormValues(fobj)
{
   var str = "";
   var valueArr = null;
   var val = "";
   var cmd = "";
   for(var i = 0;i < fobj.elements.length;i++)
   {
   		 if (fobj.elements[i].name != '') {
	       switch(fobj.elements[i].type)
	       {
	   	  		
				
	           case "text":
	                str += fobj.elements[i].name +
	                "=" + escape(fobj.elements[i].value) + "&";
	                break;
			   case "hidden":
	                str += fobj.elements[i].name +
	                "=" + escape(fobj.elements[i].value) + "&";
					//alert("Name : " + fobj.elements[i].name + "\n" + "Value : " + fobj.elements[i].value);
	                break;	
	           case "select-one":
	                str += fobj.elements[i].name +
	                "=" + escape(fobj.elements[i].options[fobj.elements[i].selectedIndex].value) + "&";
	                break;
	           case "radio":
	                if (fobj.elements[i].checked) {
		                str += fobj.elements[i].name +
		                "=" + escape(fobj.elements[i].value) + "&";
	                }
	                break;
	           case "checkbox":
	                if (fobj.elements[i].checked) {
		                str += fobj.elements[i].name +
		                "=" + escape(fobj.elements[i].value) + "&";
	                }
	                break;
	           case "textarea":
	                str += fobj.elements[i].name +
	                "=" + escape(fobj.elements[i].value) + "&";
	                break;
	           case "submit":
	                str += fobj.elements[i].name +
	                "=" + escape(fobj.elements[i].value) + "&";
	                break;
	       }
	   }
   }
   str = str.substr(0,(str.length - 1));
   return str;
}

function handleEnquiry() {
  if (http.readyState == 4) {
    if (http.status == 200) {
	    if (http.responseText.indexOf('error') == -1) {
	      var showtext = http.responseXML;
	      isWorking = false;
   	    //alert(http.responseText);
	    } else {
//	      alert('something wong');
	    }
	  } else {
//	    alert('http error');
	  }
  }
}


function doProjects(obj,inURL) {
	searchString = obj.value;
	
	if (searchString == '')
		return;
	
	if(searchString.length>0) {
		// creates XMLHttpRequest object
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		for (m=document.getElementById('project_keyid').options.length-1;m>0;m--) {
			document.getElementById('project_keyid').options[m]=null
		}
		document.getElementById('project_keyid').options[0]=new Option("Please wait...","");
		document.getElementById('project_keyid').options[0].selected=true;
		
		req.open("GET", inURL + "?search=" + searchString, true);
		req.send(null);
		// gives the request object an event handler
		req.onreadystatechange = function() {
			if ((req.readyState == 4) && (req.status == 200)) {
				// creates an array from returned list
				var arr = req.responseText.split(',');
					if (arr.length) {
						document.getElementById('project_keyid').options[0]=new Option("Select a Project","");
						counter = 0;
						pos = 0;
						for (var i=0;i<arr.length;i++) {
							if (counter == 1) {
								objVal = arr[i];
								//alert(objVal + " : " + objName);
								document.getElementById('project_keyid').options[pos+1]=new Option(objVal,objName);
								counter = 0;
								pos++;
							} else {
								objName = arr[i];
								counter++;
							}
						}
					}else {
						document.getElementById('project_keyid').options[0]=new Option("No Projects Found","");
					}

				return;
			} else {
				document.getElementById('project_keyid').options[0]=new Option("No Projects Found","");
			}
		}
		
	}
}
