/********************************************************************
    This document conatins the functions necessary to create an 
	XMLHttpRequest Object that will talk to a php script that will make
	external script requests without reloading the page
	
	Filename: ajax_jscript.js	
	Created by: Ben Marshall
	Created date: 03/18/2007
	Last Modified: 03/24/2007
	
	Functions:
		makeRequest(String String) //  Creates a new XMLHttpRequest Object for server script transport
		alertContents(Object, String) // Returns the output from the request script.
		
*********************************************************************/

/********************************************************************

			Begin:     Function makeRequest()

*********************************************************************/

function makeRequest(url, params, enabledElements) {
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    http_request.onreadystatechange = function() { alertContents(http_request, params, enabledElements); }
	if (params != null){
	  //alert(params);
      http_request.open('POST', url, true);
  	  http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //For use with POST parameters
	  http_request.setRequestHeader("Content-length", params.length);
      http_request.setRequestHeader("Connection", "close");
	}
	else {
	  http_request.open('GET', url, true);
	}
    http_request.send(params);

}
/********************************************************************

			End:     Function makeRequest()

*********************************************************************/
/********************************************************************

			Begin:     Function alertContents()

*********************************************************************/

function alertContents(http_request, query, enabledElements) {
    var browser = (navigator.userAgent.indexOf('MSIE') != -1);


    if (http_request.readyState == 4) {
		//alert(http_request.responseText);
        if (http_request.status == 200) {
	      //alert(http_request.responseText);
		  if (query != null) {
		    var qstring = query.split("&");
		    var events = qstring[0].split("=");
			switch(events[0]){
			  default: break;
			}
		  }
		  placeholder = window.document.getElementById('colOne');
		  //placeholder.innerHTML = http_request.responseText;
		  
		  //alert(placeholder.innerHTML);
		  
          script = http_request.responseText.substring(0,http_request.responseText.indexOf('\n'));
		  //alert(script);
		  
		  if (browser){
			if(script.charAt(0) == '<'){
              placeholder.innerHTML = http_request.responseText + script;
			}
			else{
              placeholder.innerHTML = http_request.responseText;
			}
		  }
		  else {
            placeholder.innerHTML = http_request.responseText;
		  }
		  
		  execJS(placeholder);		  
		  
		  //alert(placeholder.firstChild.id);  //For Debug purposes
		  //alert(placeholder.innerHTML);  //For Debug purposes

        } else {
          alert('There was a problem with the request.');
        }
    }
}
/********************************************************************

			End:     Function alertContents()

*********************************************************************/