/*
--------------------------------------------------------------------------------------------------------------
http_request.js
orig. code from: http://codylindley.com/Javascript/237/axah-asynchronous-xhtml-and-http-crawl-before-you-ajax
--------------------------------------------------------------------------------------------------------------
*/

//-- debug
function trace(inputstring){
	//document.getElementById("ausgabe").innerHTML = inputstring;
}

request_queue = new Array();
request_in_process = false;
str_loading = '';

function getNewHttpObject() {
    var objType = false;
    try {
        objType = new ActiveXObject('Msxml2.XMLHTTP');
    } catch(e) {
        try {
            objType = new ActiveXObject('Microsoft.XMLHTTP');
        } catch(e) {
            objType = new XMLHttpRequest();
        }
    }
    return objType;
}

function getAXAH(ar_request){
	url = ar_request['url'];
	elementContainer = ar_request['elementContainer'];
	cbfunc = ar_request['cbfunc'];
	display = ar_request['display'];
	
	if(!request_in_process){
		request_in_process = true;
	
		function processAXAH(elementContainer){
           if (theHttpRequest.readyState == 4) {
               if (theHttpRequest.status == 200) {
                   document.getElementById(elementContainer).innerHTML = theHttpRequest.responseText;
				   //--callback funktion aufrufen / optional
				   if (cbfunc!='') eval(cbfunc);
				   //--elementContainer visible?
				   document.getElementById(elementContainer).style.display = display;
               } else {
                   document.getElementById(elementContainer).innerHTML="<p><span class='redtxt'>Error!<\/span> HTTP request return the following status message: " + theHttpRequest.statusText +"<\/p>";
               }
				//-- process beenden und nach neuem request suchen
				request_in_process = false;
				request_queue.shift();
				getnextAXAH();  
           }
        }
		
    	var theHttpRequest = getNewHttpObject();
    	theHttpRequest.onreadystatechange = function() {
			processAXAH(elementContainer);
		};
    	theHttpRequest.open("GET", url);
    	theHttpRequest.send(false);

		/*
        alt_pos: function processAXAH(elementContainer)...
		*/
		
	}

}

function doRequest(url,elementContainer,elementVisible,cbfunc,loadingContainer){
	if (cbfunc==undefined || cbfunc==0) cbfunc='';
	if (loadingContainer==undefined) loadingContainer=elementContainer;
	//trace(elVisibility);
	ql = request_queue.length;
	if(!is_in_queue(url,elementContainer)){
		//-- add to queue
		request_queue[ql] = new Array(); 
		request_queue[ql]['url'] = url;
		request_queue[ql]['elementContainer'] = elementContainer;
		request_queue[ql]['cbfunc'] = cbfunc;

		if(elementVisible){
			if(str_loading!='') document.getElementById(loadingContainer).innerHTML = str_loading;
			request_queue[ql]['display'] = "block";
		}else{
			document.getElementById(elementContainer).innerHTML='';
			document.getElementById(elementContainer).style.display = "none";
			request_queue[ql]['display'] = "none";
		}
		//-- go AXAH
		getnextAXAH();
	}
}

function is_in_queue(url,elementContainer){
	ql = request_queue.length;
	for(x=0;x<ql;x++){
		if(url==request_queue[x]['url'] && elementContainer==request_queue[x]['elementContainer']) return true;
	}
	return false;
}

function getnextAXAH(){
	ql = request_queue.length;
	if(ql>0) getAXAH(request_queue[0]);
}

/*
--------------------------------------------------------------------------------------------------------------
JS-CSS
--------------------------------------------------------------------------------------------------------------
*/

function elSetBackgroundColor(id,trbgcolor){
	document.getElementById(id).style.backgroundColor = trbgcolor;
}















