var req = new Array();
var targetitem = "";

function init_ajax(target) {
      var res = null;
      try{
           res = new XMLHttpRequest();
      }
      catch (e){
          try{
               res = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e){
             try{
                 res = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (failed){
                res = null;
            }
         }
      }

      var l = new Array();

      if (res != null) {
        l.push(res);
        l.push(target);
        req.push(l);
      }
      return res;
}



function ajax_error(e) {
}

var isajax = false;

function ajax_response(resptext, target, index) {
	
	isajax = true;

//  var xmldoc = respXML;
//  var xmlmain = xmldoc.getElementsByTagName("Response")[0];
//  var func = xmlmain.getAttribute("func");

if (target != null) 
{
 if (target != "" && target != "null") {
  var melem = document.getElementById(target + '_content');
  if (melem != null && melem != undefined) {
	  melem.innerHTML = resptext;
  } else {
    melem = document.getElementById(target);
    if (melem != null && melem != undefined)
        instance = melem;
    	melem.innerHTML = resptext;
  }
  
  
  var targetinstance = document.getElementById(target);
  var instance = melem;
  //var instance = getcontainer(targetinstance);
  if (targetinstance != null || targetinstance != undefined) {
  
  if (targetinstance.getAttribute("isreload") != "true") {
  
   var bs = bounds(targetinstance.id,0,1);
   var ld = bounds('largediv',1,1);
   if (ld != null && ld != undefined) {
   if (bs[2] + bs[1] > ld[2]) {
	   instance.style.width = ld[2] - bs[1] - 30 + "px";
   }
   if (bs[3] + bs[0] > ld[3]) {
	   instance.style.height = ld[3] - bs[0] - 30 + "px";
   }
	  
   }
  if (targetinstance.offsetWidth < 100) {
	    instance.style.width = "100px";
	  }
  if (targetinstance.offsetHeight < 80) {
	    instance.style.height = "80px";
	  }
  
  if (targetinstance.getAttribute("nocenter") != "true") {
	    center_win("largediv",targetinstance.id);
	    targetinstance.setAttribute("nocenter","true");
	  }
  
  if (targetinstance.getAttribute("noscroll") == "true") {
	  instance.style.overflow='hidden';
	  }

  
   targetinstance.setAttribute("isreload","true");
  }

 }
   
  writegadgets();

  var gscript = null;
  if (instance != null && instance != undefined && instance == "null") {
	  gscript = getgadgetscript(instance.id);
  
  
  if (gscript != null && gscript != undefined && gscript != "undefined") {
    try {
     //var ret = eval(gscript);
     
     var prevscript = document.getElementById('script_'+instance.id);
     if (prevscript != undefined && prevscript != null) {
    	 document.body.removeChild(prevscript);
     }
    	
     var newScript = document.createElement('script');
	 newScript.type = "text/javascript";
	 newScript.id = 'script_'+instance.id;
	 newScript.text = gscript;

	 document.body.appendChild(newScript);
    } catch (e) { alert(e.message); }
  }
  }
  
  var prevscript = ""; var newScript = "";
  
  if (targetinstance != null && targetinstance != undefined) {

	  gscript = document.getElementById('stylepart_' + targetinstance.id);
	  if (gscript != null && gscript != undefined && gscript != "undefined") {
		    try {
		     prevscript = document.getElementById('style_'+targetinstance.id);
		     if (prevscript != undefined && prevscript != null) {
		    	 document.getElementsByTagName("head")[0].removeChild(prevscript);
		     }
		    	
		     newScript = document.createElement('style');
			 newScript.type = "text/css";
			 newScript.id = 'style_'+targetinstance.id;
			 
			 var text = html_entity_decode(gscript.innerHTML);
			 if (newScript.styleSheet) {
				 newScript.styleSheet.cssText = text;
			 } else {
			try{
			   newScript.innerHTML = text;
			} catch (f) { //Google Chrome
				newScript.innerText = text;
			}
			 }
			 debug('style: ' + targetinstance.id);
			 document.getElementsByTagName("head")[0].appendChild(newScript);
		    } catch (e) { alert(e.message); } 
		  } 
	  
	  gscript = getgadgetscript(targetinstance.id);
	  

	  if (gscript != null && gscript != undefined && gscript != "undefined") {
		    try {

		     
		     prevscript = document.getElementById('script_'+targetinstance.id);
		     if (prevscript != undefined && prevscript != null) {
		    	 document.body.removeChild(prevscript);
		     }
		    	
		     newScript = document.createElement('script');
			 newScript.type = "text/javascript";
			 newScript.id = 'script_'+targetinstance.id;
			 newScript.text = gscript;
			 debug('script: ' + targetinstance.id);
			 document.body.appendChild(newScript);
		    } catch (e) { alert(e.message); }
		  }

	  targetinstance.style.visibility='visible';
	  var wait = document.getElementById('waiting');
	  if (wait != null && wait != undefined) wait.style.visibility='hidden';
	  


	  
  }


 }
}

   
     isajax = false;
     //xmlnodes.length     xmlnodes.getAttribute()    xmlnodes.item(i)
}

Array.remove = function(array, from, to) {
	  var rest = array.slice((to || from) + 1 || array.length);
	  array.length = from < 0 ? array.length + from : from;
	  return array.push.apply(array, rest);
	};
	
function ajax_readystate(obj) {

	if (isajax) {  return; } // setTimeout('ajax_readystate(null);',200);
	
if (req == null) req = new Array();

var i = 0;
 if (req[i] != null) {
 var reqobj = req[i][0];
 var targetobj = req[i][1];
 if (reqobj != null) {
   if (reqobj.readyState == 4) {
     if (reqobj.status != 200) {
            ajax_error(reqobj.status);
            document.getElementById("waiting").style.visibility = "hidden";
     } else {
            ajax_response(reqobj.responseText,targetobj, i);
     }
     if (req[i] != null) { 
     	if (req[i][0] != null) delete req[i][0];
    	if (req[i][1] != null) delete req[i][1];
     	reqobj = null; targetobj = null;
     	req[i] = null;
     }
     req.shift();
     ajax_readystate(obj);
   }
 } else {
    req.shift();
    ajax_readystate(obj);
 }
 }
}

function ajax_requesttarget(target,strUrl,strSend) {
try {

	var request = init_ajax(target);
	if (request==null || request == undefined) return;

	request.onreadystatechange = ajax_readystate; //event verknÃ¼pfen
   
	  if (strSend == null) strSend = "";
	  if (strSend == "") { 
	    request.open("GET", strUrl, true);	//request Ã¶ffnen
	  } else {
	    request.open("POST", strUrl, true);	//request Ã¶ffnen
	  }
	   
	  if (strSend != "") {
	    strSend += "&sid=" + document.getElementsByName("sid")[0].value;
	    strSend = html_entity_decode(strSend);
	    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	    request.setRequestHeader("Content-length", strSend.length);
	    request.setRequestHeader("Connection", "close");
	    request.send(strSend); //post senden 
	  } else {
	    request.send(null);
	  }
	  
 } catch (e) {
  ajax_error(e);
 }

}
