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) {
//alert("fehler: " + e.message);
}

function ajax_response(resptext, obj, target) {

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

if (target != null) 
{

if (target == "null") {
//alert("got: " + resptext);
}

 if (target != "" && target != "null") {
  document.getElementById(target).innerHTML = resptext;
  var targetinstance = document.getElementById(target);
  var instance = getcontainer(targetinstance);

  if (instance != null && instance != "null" && instance != "undefined") {
 
  if (instance.getAttribute("isreload") != "true") {
  
   
  if (targetinstance.offsetHeight > document.body.offsetHeight) {
     targetinstance.style.height = document.body.offsetHeight - 25; instance.style.height = targetinstance.offsetHeight + 25;
  } else {
  }
  if (targetinstance.offsetWidth > 600) { 
       instance.style.width = document.body.offsetWidth + "px"; instance.setAttribute("initialWidth","600");
       instance.setAttribute("isreload","true");
  }
  
  if (instance.getAttribute("nocenter") != "true") {
    center_win("largediv",instance.id);
    instance.setAttribute("nocenter","true");
  }
  }
  }
  
  writegadgets();
  
  if (instance == null || instance == undefined || instance == "null") gscript = null; else {

  var gscript = getgadgetscript(instance.id);
  
  if (gscript != null && gscript != undefined && gscript != "undefined") {
    try {
     //var ret = eval(gscript);
     var newScript = document.createElement('script');
	 newScript.type = "text/javascript";
	 newScript.text = gscript;
	 document.body.appendChild(newScript);
    } catch (e) { alert(e.message); }
  } else {
   
  }
  
  }
  
  if (targetinstance == null || targetinstance == undefined || targetinstance == "null" || targetinstance == instance) gscripttarget = null; else {

  var gscripttarget = getgadgetscript(targetinstance.id);
  
  if (gscripttarget != null && gscripttarget != undefined && gscripttarget != "undefined") {
    try {
     //var ret = eval(gscripttarget);
     var newScript = document.createElement('script');
	 newScript.type = "text/javascript";
	 newScript.text = gscripttarget;
	 document.body.appendChild(newScript);
    } catch (e) { alert(e.message); }
  } else {
   
  }
  
  }

  delete obj;
  obj = null;
  return;
 }
}

   
    delete obj;
     obj = null;
 
  //xmlnodes.length     xmlnodes.getAttribute()    xmlnodes.item(i)
}

function ajax_readystate(obj) {

if (req == null) req = new Array();

for (var i = 0; i < req.length; i++) {
 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";
            if (req[i][0] != null)
            delete req[i][0];
            req[i] = null;
     } else {
            req[i] = null;
            ajax_response(reqobj.responseText,reqobj,targetobj);
            //document.getElementById("waiting").style.visibility = "hidden";
          if (reqobj != null) {
            delete reqobj;
          }
     }
   }
 }
 }
}
}

function ajax_request(strUrl,strSend) {
//if (req==null) { init_ajax(); }
var request = init_ajax(null);
if (request==null) return;

try {
  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 != "") {
    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);
 }

}

function ajax_requesttarget(target,strUrl,strSend) {
//if (req==null) { init_ajax(); }

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

//if (target=="null") alert(strUrl);
try {
  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 = unescape(strSend).replace(/&amp;/g,"&");
    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);
 }

}
