var http_request1 = false;
var urlQ = "";
var parametersQ = "";
var elembodyQ = "";
//var urlC = "";
//var parametersC = "";
//var elembodyC = "";
var ConActive = 0;
var sPC = " ";
var testCount = 0;
var reqTimer = 1;

var holdelembody = new Array();
function setPOSTRequest(url, parameters, elembody) {
		urlQ = urlQ + url + sPC;
		parametersQ = parametersQ + parameters + sPC;
		elembodyQ = elembodyQ + elembody + sPC;
		testCount ++;
	if (ConActive == 0) {
		ConActive = 1;
		setTimeout(makePOSTRequest, 1);
	}
}

function makePOSTRequest() {

	if (urlQ == "") {
		ConActive = 0;
	} else {
		urlS = urlQ.split(sPC);
		parametersS = parametersQ.split(sPC);
		elembodyS = elembodyQ.split(sPC);
		urlQ = "";
		parametersQ = "";
		elembodyQ = "";
		if (urlS.length > 10) {
			reqStart = urlS.length - 10;
			reqStop = urlS.length;
		} else {
			reqStart = 1;
			reqStop = urlS.length;
		}
		for (i=reqStart;i<reqStop;i++) {
			if (urlS[i] != "") {
				urlQ = urlQ + urlS[i] + sPC;
				parametersQ = parametersQ + parametersS[i] + sPC;
				elembodyQ = elembodyQ + elembodyS[i] + sPC;
			}
		}
		i = i - reqStart;
		//SetBandWidth(i);
		urlC = urlS[reqStart - 1];
		parametersC = parametersS[reqStart - 1];
		elembodyC = elembodyS[reqStart - 1];
		
	  http_request1 = false;
	  if (window.XMLHttpRequest) { // Mozilla, Safari,...
		 http_request1 = new XMLHttpRequest();
		 if (http_request1.overrideMimeType) {
			// set type accordingly to anticipated content type
			//http_request1.overrideMimeType('text/xml');
			http_request1.overrideMimeType('text/html');
		 }
	  } else if (window.ActiveXObject) { // IE
		 try {
			http_request1 = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
			try {
			   http_request1 = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		 }
	  }
	  if (!http_request1) {
		 alert('Cannot create XMLHTTP instance');
		 ConTimeCheck();
		 return false;
	  }
	  
	  http_request1.onreadystatechange = function() {
		  if (http_request1.readyState == 4) {
			 if (http_request1.status == 200) {
				//alert(http_request1.responseText);
				var result = http_request1.responseText;
				if (document.getElementById(elembodyC)) {
					if (holdelembody[elembodyC] != result && trim(result) != "n/a") {
						holdelembody[elembodyC] = result;
						document.getElementById(elembodyC).innerHTML = result;
					}
				}
				i = i - 1;
				SetBandWidth(i);
				document.getElementById("noconnect").className = "loadvisfalse";
			 } else {
				//alert(urlC  + ", " + parametersC  + ", " + elembodyC + ", " + sPC);
				holdelembody[elembodyC] = "";
				document.getElementById("noconnect").className = "loadvistrue";
				urlQ = urlC + sPC + urlQ;
				parametersQ = parametersC + sPC + parametersQ;
				elembodyQ = elembodyC + sPC + elembodyQ;
			 }
			 ConTimeCheck();
		  }
	   }
	  http_request1.open('POST', urlC, true);
	  http_request1.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	  http_request1.setRequestHeader("Content-length", parametersC.length);
	  http_request1.setRequestHeader("Connection", "close");
	  http_request1.send(parametersC);
	}
}
function SetBandWidth (icount) {
	if (icount <= 5) {
		document.getElementById("bandwidthimg").src = "graphics/greendot.jpg";
		document.getElementById("bandwidthimg").style.height = (40 - (icount * 4)) + "px";
	} else if (icount <= 10)  {
		document.getElementById("bandwidthimg").src = "graphics/reddot.jpg";
		document.getElementById("bandwidthimg").style.height = (40 - (icount * 4)) + "px";
	} else {
		document.getElementById("bandwidthimg").style.height = "0px";		
	}
}
function ConTimeCheck () {
	if (urlQ == "") {
		ConActive = 0;
	 } else {
		setTimeout(makePOSTRequest, reqTimer);
	 }
}
function AddEditorControl () {
	if (document.getElementById('elm1')) {
		if (!tinyMCE.getInstanceById('elm1')) {
			document.getElementById('elm1').className = "loadvistrue";
			tinyMCE.execCommand('mceAddControl', false, 'elm1');
		}
	}
}
/********************************************************************************************************
General Functions
********************************************************************************************************/

// Removes leading whitespaces
function LTrim( value ) {
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
}

// Removes ending whitespaces
function RTrim( value ) {
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
}

// Removes leading and ending whitespaces
function trim( value ) {
	return LTrim(RTrim(value));	
}
   

