/*

	Ajax.js

	7/07
	Al Land


Multiple Simultaneous Requests
Non-Caching
	
Usage:

getHTML('div id','url');


*/





// how to cancel a pending request
//if (!request)
//var request = getHTTPObject();
//else if (request.readyState != 0)
//request.abort(); 


// use this to get hostname to prevent failures due to (not) using "www"
//var rootdomain="http://"+window.location.hostname;



function getHTTPObject() {
	// initialize the ajax object

	var request = false;
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = false;
			}
		}
	}

	if (!request){
		alert("Error initializing XMLHttpRequest!");
	}
	return request;
}




function handleDivTag(divtag) 
{ 
	// handles multiple divs
	var divtag; 
	return divtag; 
} 






/* Request Methods */


function postHTML() {
	http.open("POST", url, true);
	
	//Send the proper header infomation along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", params.length);
	http.setRequestHeader("Connection", "close");
	http.onreadystatechange = handler;
	divhandler.divtag = divtag; 
	http.send(params);
}




function getHTML(divtag,url,disablecache) {

	var request = getHTTPObject();
	var timestamp ="";

	// Prevent request Caching
	if (disablecache==1){
		timestamp=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
	}

	// Open a connection to the server
	request.open("GET", url+timestamp, true);

	// Setup a function for the server to run when it's done



	request.onreadystatechange=function(){
		returnHTML(request,divtag)
	}

	// Send the request
	request.send(null);
}


function getAddedHTML(divtag,url,disablecache) {

	var request = getHTTPObject();
	var timestamp ="";

	// Prevent request Caching
	if (disablecache==1){
		timestamp=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
	}

	// Open a connection to the server
	request.open("GET", url+timestamp, true);

	// Setup a function for the server to run when it's done



	request.onreadystatechange=function(){
		addHTML(request,divtag)
	}

	// Send the request
	request.send(null);
}


function getScript(divtag,url,disablecache) {

	var request = getHTTPObject();
	var timestamp ="";

	// Prevent request Caching
	if (disablecache==1){
		timestamp=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
	}

	// Open a connection to the server
	request.open("GET", url+timestamp, true);

	// Setup a function for the server to run when it's done



	request.onreadystatechange=function(){
		returnScript(request,divtag)
	}

	// Send the request
	request.send(null);
}






/* Page update methods */


function returnHTML(request,divid){

	if (request.readyState == 4){
		if (request.status == 200 || request.status==0){
			document.getElementById(divid).innerHTML = request.responseText;
		}
		else if (request.status == 404){ /* 401 unauthorized, 403 forbidden*/
			alert("Request URL does not exist");
		}
		else{
			alert("Error: status code is " + request.status);
		}
	}
}

function addHTML(request,divid){

	if (request.readyState == 4){
		if (request.status == 200 || request.status==0){
			document.getElementById(divid).innerHTML += request.responseText;
		}
		else if (request.status == 404){ /* 401 unauthorized, 403 forbidden*/
			alert("Request URL does not exist");
		}
		else{
			alert("Error: status code is " + request.status);
		}
	}
}


function returnScript(request,divid){

	if (request.readyState == 4){
		if (request.status == 200 || request.status==0){
			eval(request.responseText);
		}
		else if (request.status == 404){ /* 401 unauthorized, 403 forbidden*/
			alert("Request URL does not exist");
		}
		else{
			alert("Error: status code is " + request.status);
		}
	}
}



function updateList(){
var count,x,y;

	if (request.readyState == 4){
		if (request.status == 200 || request.status==0){
			var response = request.responseText.split("|");
			for (x=0;x<response.length/2;x++){
				count=x*2
				y=count+1;
				response[y].replace(/\n/g, "");
				document.getElementById(response[count]).value=response[y];	
			}
		}
		else if (request.status == 404){ /* 401 unauthorized, 403 forbidden*/
			alert("Request URL does not exist");
		}
		else{
			alert("Error: status code is " + request.status);
		}
	}
}







// Create the Divtag Handler -- Mainly an IE 6 Fix 
var divhandler = new handleDivTag(null); 



