function getContent(getUrl,getQuery,getForItem,getType,outputNum,getSessionId) {	var timer = 0;	var timerActive = 0;	var timerRetry = 0;	var timerRetryActive = 0;	var triesCount = 0;			function getHTTPObject() {		var xhr = false;		if (window.XMLHttpRequest) {			xhr = new XMLHttpRequest();		} else if (window.ActiveXObject) {			try {				xhr = new ActiveXObject("Msxml2.XMLHTTP");			} catch(e) {				try {					xhr = new ActiveXObject("Microsoft.XMLHTTP");				} catch(e) {					xhr = false;				}			}		}		return xhr;	}			function grabFile() {		ajaxrequest = getHTTPObject();		if (ajaxrequest) {			triesCount = triesCount+1;			ajaxrequest.onreadystatechange = function() {				displayResponse(ajaxrequest);			};			var data = encodeURI(getUrl+"?"+getQuery);			var datapost = encodeURI(getQuery);						if (getType == "GET"){				ajaxrequest.open("GET", data, true);				ajaxrequest.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");				ajaxrequest.setRequestHeader("Cache-Control", "no-cache");				// added below line to fix 411 error in firefox				ajaxrequest.setRequestHeader("Content-Length",0);				if (getSessionId != 0 && getSessionId != ""){					ajaxrequest.setRequestHeader("Cookie","PHPSESSID="+getSessionId);				}				ajaxrequest.send(null);			}			else{				ajaxrequest.open("POST", getUrl, true);				// added below line to fix 411 error in firefox				ajaxrequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");				ajaxrequest.setRequestHeader("Content-Length",0);				if (getSessionId != 0 && getSessionId != ""){					ajaxrequest.setRequestHeader("Cookie","PHPSESSID="+getSessionId);				}				ajaxrequest.send(datapost);			}		}		else{			var getresult = "NotSupported";			var getcontent = "";			passResult(getresult,getcontent)			return true;		}	}		// timeout handler will try sending request again, 3 more times, if it still fails, give up	function tryRequestAgain() {		clearTimeout(timer);		clearTimeout(timerRetry);				if (timerActive == 1){ // fix for firefox (and maybe others) stops function running if status reached 4 after timer was started			timerActive = 0; //not sure of this line, may need to remove it			if (triesCount >= 4) {				ajaxrequest.abort();								var getresult = "TimedOut_Error";				var getcontent = "";				passResult(getresult,getcontent)						}			else{				var getresult = "TimedOut_Retry";				var getcontent = "";				passResult(getresult,getcontent)								if (timerRetryActive == 0){					timerRetryActive = 1;					timerRetry = setTimeout(function(){grabFile();},1500);				}			}		}	}		function displayResponse(ajaxrequest) {		if (ajaxrequest.readyState == 1) {			var getresult = "Loading";			var getcontent = "";			passResult(getresult,getcontent)						if (timerActive == 0){				timerActive = 1; // fix for firefox				timerRetryActive = 0;				timer = setTimeout(function(){tryRequestAgain();},10000); // 10 seconds			}		}	  		if (ajaxrequest.readyState == 4) {			// reset timers to stop looping			clearTimeout(timer);			timerActive = 0;			clearTimeout(timerRetry);			timerRetryActive = 0;						if (ajaxrequest.status == 200 || ajaxrequest.status == 304) {				var getresult = "Success";				var getcontent = ajaxrequest.responseText;				passResult(getresult,getcontent)			}			else{				var getresult = "Failed_Error";				var getcontent = ajaxrequest.status;				passResult(getresult,getcontent)				return true;							}					}		}		function passResult(getresult,getcontent) {		if (outputNum == 1){			loadContentOne(getresult,getcontent,getForItem);		}		else if (outputNum == 2){			loadContentTwo(getresult,getcontent,getForItem);		}		else if (outputNum == 3){			loadContentThree(getresult,getcontent,getForItem);		}		else{			loadContentOne(getresult,getcontent,getForItem);		}	}		var doAjax = grabFile();	return doAjax;}
