//Ajax stuff
var req; //variable reference to ajax data
var ajaxMethod = "GET"; //"POST", or "GET", submit type
//var file = 'formAjax.aspx'; //Where your AJAX backend code processing is done

function loadXMLDoc(url,str) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) 
    {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open(ajaxMethod, url, true);
        req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
        req.send(str);    
    }
	// branch for IE/Windows ActiveX version
    else if (window.ActiveXObject) 
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) 
        {
            req.onreadystatechange = processReqChange;
            req.open(ajaxMethod, url, true);
            req.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
            req.send(str);
        }
    }
}

function processReqChange() 
{	        
    // Gets here only if req shows "complete"	
    if (req.readyState == 4) 
    {
        // only if "OK"
        if (req.status == 200)
        {
          response  = req.responseXML.documentElement;          
          method    = response.getElementsByTagName('method')[0].firstChild.data;
          id		= response.getElementsByTagName('id')[0].firstChild.data;
          result    = true;//response.getElementsByTagName('success')[0].firstChild.data;
		  		  
		  if (method)
		  {			  
			  eval(method + '(\'' + id + '\', result)');
		  }
        } 
        else 
        {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }	
}

//used when method = "POST"
//use something like onclick="sub(this.form);"
function sub(f)
{
    if (validateForm())
    {        
        var str = getFormValues(f,"");
        //alert(str);           
        //xmlReq = loadXMLDoc(file,str);
        loadXMLDoc(file,str);
    }           
}
//used when method = "POST"
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 "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 "checkbox":
                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)
                }
                if (fobj.elements[i].checked)
                {
                    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;
}


//example function when you using ajaxMethod = "GET"
//processes off query string
//must be heavily customzed for each use
/*
function showMembers(input, response)
{
	var dontDisplay = false;
	if (response != '')
	{ 
		response  = req.responseXML.documentElement;
		
		var div, divText, count;
		count = 0
		
		divText = '<table width=\"100%\" class=\"inputbox\">';
	  
		div = document.getElementById(tmpAjaxId);
		for(x=0; x<response.getElementsByTagName('id').length; x++)
		{
			count++;
			if (response.getElementsByTagName('name')[x].firstChild.data != "No Names Found")
			{
				name = response.getElementsByTagName('name')[x].firstChild.data;				
				forg = response.getElementsByTagName('forg')[x].firstChild.data;
				ppsergr = response.getElementsByTagName('ppsergr')[x].firstChild.data;
				bondid = response.getElementsByTagName('bondid')[x].firstChild.data;
			
				divText = divText + "<tr><td><div onClick=\"colorize('" + count + "', true);\" onMouseOver=\"colorize('" + count + "')\" id=\"name" + count + "\">" + name + "</div></td>";
				divText = divText + "<td style=\"display:none\" id=\"bondid" + count + "\">" + bondid + "</td>";
				divText = divText + "<td style=\"display:none\" id=\"forg" + count + "\">" + forg + "</td>";
				divText = divText + "<td style=\"display:none\" id=\"ppsergr" + count + "\">" + ppsergr + "</td>";
				divText = divText + "</tr>";
			}
			else
			{
				dontDisplay = true;
			}
			
		}
		divText = divText + "<tr><td align=\"right\" style=\"background-color:#E7E7E7;color:#CC0000;font-weight:bold\"><a onClick=\"document.getElementById(\'" + tmpAjaxId + "\').style.display=\'none\';\" style=\'cursor:pointer;\'>[x]</a></td></tr>";
		divText = divText + "</table>";
		div.innerHTML = divText;
		if (dontDisplay)
		{
			document.getElementById(tmpAjaxId).style.display = "none";
		}
		else
		{
			document.getElementById(tmpAjaxId).style.display = "block";
		}
				     
	}
	else
	{
		var orgValue = "";
		orgValue = "63";
		url  = "common/vbscripts/searchUsers_Backend.aspx?q=" + input + "&org=" + orgValue;
		loadXMLDoc(url);
	}

}
*/