﻿// JScript File
var ajaxDebug = false;

function ajaxFunction(sMethod, sURL, sArgs, sResponseTarget, sXSL, sFunctionToCall)
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
		
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
        var oTarget = document.getElementById(sResponseTarget);
				
				if (ajaxDebug) alert('ResponseText:\n' + xmlHttp.responseText);
				
				if (sXSL != '')
				  {
					  var xmlDoc = xmlHttp.responseXML;
						var xslDoc = document.getElementById(sXSL);
						
						if (ajaxDebug) 
						{ 
						  alert('XML:\n' + xmlDoc.xml); 
							alert('XSL:\n' + xslDoc.XMLDocument.xml); 
							alert('Transformed:\n' + xmlDoc.transformNode(xslDoc.XMLDocument)); 
						}
					  oTarget.innerHTML = xmlDoc.transformNode(xslDoc.XMLDocument);
					}
				else
				  {
  				switch(oTarget.tagName.toUpperCase())
  				  {
  					  case 'TD':
							case 'SPAN':
							case 'DIV':
  						  oTarget.innerHTML=xmlHttp.responseText;
  							break;
  					
  					  default:
  						  oTarget.value=xmlHttp.responseText;
  							break;
  					}
					}
					eval(sFunctionToCall);		
        }
      }
		
		if (xmlHttp.overrideMimeType)
		  {
  		if (sXSL != '')
  		  {
  			xmlHttp.overrideMimeType('text/xml');
  			}
  		else
  		  {
  			xmlHttp.overrideMimeType('text/html');
  			}
			}
		
		switch (sMethod.toUpperCase())  {
		  case 'GET':
    		var sFullURL = sURL;
    		if (sArgs != '') sFullURL += '?' + sArgs
    		
        xmlHttp.open(sMethod,sFullURL,true);
        xmlHttp.send(null);
				
				break;
				
			case 'POST':
			  xmlHttp.open(sMethod,sURL,true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", sArgs.length);
        xmlHttp.setRequestHeader("Connection", "close");
				xmlHttp.send(sArgs);
			}
  }
	
function ajaxEncodeForm(sFormName) {
  var oForm = document.forms[sFormName];
	
	var sOut = '';
	
	for (i=0;i<oForm.elements.length;i++)
	  {
	  oElement = oForm.elements[i];
		
		bOK = true;
		
		bOK = bOK && (oElement.name != '');
		
		if (oElement.type)
		{
		  if (oElement.type == 'radio')
			{
			  bOK = bOK && oElement.checked;
			}
		}
		
		if (bOK)
		  {
  		if (sOut != '') sOut += '&';
  		sOut += oElement.name + '=' + encodeURI(oElement.value);
			}	
		}
		
	return sOut;
}
