/* AJAX */
// Timeout nach dem Ajax die Daten aktualisiert
//var ajaxRefreshTimeout = 15000 + Math.random() * 20000;
var ajaxRefreshTimeout = 5000;
var activTimeout = new Object();
var fArguments;
var lang = 'de';

function retrieveURL(url,my_id,callback_func) {
  var req, callback_func, url, fArguments ;
  // Default callback function + ladestatus
  if(typeof(callback_func) == "undefined" || callback_func == "") {
    callback_func = "processStateChange";
  }
  
  fArguments = retrieveURL.arguments;
  
  if(url != "") {
    if(url.indexOf("?") == -1) {
      url += "?";
    } else {
      url += "&";
    }
    // Variable gegen Cache + aktuelle Session
    url += (new Date().getTime());

    if(window.XMLHttpRequest) {
      // Non-IE browsers oder IE 7
      req = new XMLHttpRequest();
      req.onreadystatechange = function() {
        var tmpArguments = [req,my_id];
        if((num=fArguments.length) > 3) {
          for(var i=3;i<num;i++) {
            tmpArguments.push(fArguments[i]);
          }
        }
        eval(callback_func).apply(null,tmpArguments);
      }
      try {
        req.open("GET", url, true);
      } catch(e) {
        alert(e);
      }
      req.send(null);
    } else if(window.ActiveXObject) {
      try { 
        req = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch(e) {
          try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
          } catch(e) {
            alert(e);
          }
      }
      if(req) {
        req.onreadystatechange = function() {
          var tmpArguments = [req,my_id];
          if((num=fArguments.length) > 3) {
            for(var i=3;i<num;i++) {
              tmpArguments.push(fArguments[i]);
            }
          }

          eval(callback_func).apply(null,tmpArguments);
        }
        req.open("GET", url, true);
        req.send();
      }
    } else {
      // AJAX funktioniert nicht beim Client
    }
  }
}

function progressLayer(my_id) {
  //document.getElementById(my_id).innerHTML = "<em>Lade...</em>";
  //document.getElementById("foot").style.visibility = 'hidden';
}

function processStateChange(req, my_id, url) {
  // Complete
  if(req.readyState == 4) {
    // OK response
    if(req.status == 200) { 
      // HTML bzw. Text Datei direkt ausgeben
      if( typeof(DEBUG_AJAX) != 'undefined' ){
        document.getElementById(my_id).innerHTML = req.responseText + "\n" + '<!-- AJAX_URL --><div style="display:none;" name="AJAX_URL">' + url + '</div><!-- /AJAX_URL -->' + "\n";
        document.getElementsByTagName('body')[0].innerHTML += '<br clear="all" /><small style="position:relative;left:180px;background-color:Yellow;">AJAX URL im Fenster "' + my_id + '" : ' + url + '</small>';
      }else{
        document.getElementById(my_id).innerHTML = req.responseText;
      }
    } else {
      // 404
      var tmp = document.getElementById(my_id);
      var myText = '';
      if(lang == 'de'){
        myText += '<table class="ERROR"><tr><td class="sub1"><a href="/index.php" title="HOME"><img src="/pics/error_bl_logo.gif" align="left" alt="404 AJAX" /></a></td><td class="sub2 font_18">Diese Seite existiert derzeit nicht.</td></tr>';
        myText += '</table><br />' + "\n";
        myText += '<table class="ERROR" cellpadding="20" style="display:none"><tr><td class="font_18 colspan="2">' + req.responseText + '</td></tr></table><br />';
      }else{
        myText += '<table class="ERROR"><tr><td class="sub1"><a href="/index.php" title="HOME"><img src="/pics/error_bl_logo.gif" align="left" alt="404 AJAX" /></a></td><td class="sub2 font_18">This site is currently not available.</td></tr>';
        myText += '</table><br />' + '\n';
        myText += '<table class="ERROR" cellpadding="20" style="display:none"><tr><td class="font_18 colspan="2">' + req.responseText + '</td></tr></table><br />';
      }
      tmp.innerHTML = myText;
    }
  }
}
