/**
 * Es folgt VERALTETES AJAX-ZEUG, das aber noch genutzt wird für 
 *   - den Routenplaner
 *   - Spammeldungen im Rathaus (report_spam)
 *   - Tavernendarbietungen
 *   - Tavernenspielen
 * Sollte irgendwann mal refactored werden (xajax, mootools o.ä.)
 */
function antamar_ajax(param) {
  var param4ajax = new Array();
  for (var i in param)
    param4ajax.push(i+"="+param[i]);
  var ajax = new Ajax.Request(              // benötigt Prototype
    'ajax/ajax.php',
    {method: 'post', 
    parameters: param4ajax.join('&'), 
    onComplete: function(request) {
      var resultArray = request.responseText.split(/\n(?=copy_to|message|script)/); // Befehlweise aufspalten.
      if (resultArray.length == 0)
        alert("Fehler:\n"+request.responseText);
      if (resultArray[0].length == 0)
        resultArray.shift();
      while (resultArray[0]) {
        var command = resultArray.shift().split("\n");
        switch (command.shift()) {
          case "copy_to":
            var targetElement = command.shift();
            var innerScripts = new Array();
            var externalScripts = new Array();
            var content = command.join("\n").replace(/<script(?:(?:.|\n)(?!src))*?>((?:.|\n)*?)<\/script>/gim,function(a,b,c){if (b)innerScripts.push(b); return "";});
            var content = content.replace(/<script(?:.|\n)*?src=\s*(["'])((?:.|\n)*?)(\1)*?><\/script>/gim,function(a,b,c,d,e){if (c)externalScripts.push(c); return "";});
            try {
              window.document.getElementById(targetElement).innerHTML = content;
              renewTips(window.document.getElementById(targetElement));
            } catch (e) {var x=new Array();for(var z in e)x.push(z+"="+e[z]);alert("HTML Fehler:\nMeldung:"+x.join("\n")+"\n"+command.join("\n"))};
            if (externalScripts.length > 0)
              for (var i=0;i<externalScripts.length;i++) {
                new Ajax.Request(externalScripts[i],{method: 'get', parameters: '', onComplete: function(request){}, onFailure: function(request){alert("ERROR:\n"+request.responseText);}});
              }
            for (var u=0;u<innerScripts.length;u++)
              try {
                window.eval(innerScripts[u]);
              } catch (e) {var x=new Array();for(var z in e)x.push(z+"="+e[z]);alert("interner Scriptfehler:\nMeldung:"+x.join("\n")+"\n"+command.join("\n"))};
            break;
          case "message":
            var message = document.getElementById('ajax_message'); 
            if (!(message)) {
              var message = document.createElement('div');
              with (message) {
                setAttribute('id','ajax_message');
                var left = document.all?document.documentElement.scrollLeft+document.body.scrollLeft+document.body.clientWidth:window.scrollX+document.body.clientWidth;
                var top = document.all?document.documentElement.scrollTop+document.body.scrollTop+document.body.clientHeight:window.scrollY+document.body.clientHeight;
                style.cssText = 'z-index:1000;position:absolute;top:'+(top/2)+'px;left:'+(left/2)+'px;text-align:center;vertical-align:middle;border:3px groove #402C13;display:none;background-color:#FFEDCC;';
              }
              document.getElementsByTagName('body')[0].appendChild(message);
            }
            message.innerHTML = command.join("\n"); 
            clearTimeout(message.getAttribute('timeout'));
            message.setAttribute('timeout', window.setTimeout(function(){Effect.Appear('ajax_message', {from: 1.0, to: 0.0})}, 5000));
            Effect.Appear('ajax_message', {from: 0.0, to: 1.0});
            break;
          case "script":
            try {
              eval(command.join("\n")); 
            } catch(e) {var x=new Array();for(var z in e)x.push(z+"="+e[z]);alert("Scriptfehler:\nMeldung:"+x.join("\n")+"\n"+command.join("\n"))};
            break;
          default:
            alert("Fehler:\nBitte fertige einen Screenshot an [Druck] und poste diesen mit einer kurzen Beschreibung im Forum. Danke!"+request.responseText);
            break;
        }
      }
    }
  , onFailure: function(request){alert("ERROR:\n"+request.responseText);}});
}

// XMLHttpRequest für verschiedene Browser
function createXMLHttpRequest() {
  return ((window.XMLHttpRequest && new XMLHttpRequest()) || (window.ActiveXObject && ((new ActiveXObject("Msxml2.xmlHttp")) || (new ActiveXObject("Microsoft.xmlHttp")))) || false);
}

// Ereignisse an Objekte binden 
function regEvent(o, evt, func, onOffFlag) {
  var isIE = ( document.all );
  if (onOffFlag)  {
    if (isIE)
      o.detachEvent('on'+evt, func);
    else
      o.removeEventListener(evt,func,false);
  } else {
    if (isIE)
      o.attachEvent('on'+evt, func);
    else
      o.addEventListener(evt,func,false);
  }
}

function zeige_routenplaner() {
  new Request.HTML({
    url: 'ajax/get_routenplan.php',
    method: 'post',
    data: '',
    update: $('gameContent')
  }).post();
}
