/*JavaScript: Alle benötigten Funktion für AJAX und Engine der Homepage*/
var bAJAX = 0;

function createRequestObject() {
 var ro = null;
 try {
  ro = new ActiveXObject("Msxml2.XMLHTTP");
  bAJAX = 1 ;
 } catch (Error) {
  try {
   ro = new ActiveXObject("Microsoft.XMLHTTP");
   bAJAX = 2 ;
  } catch (Error) {
   try{
    ro = new XMLHttpRequest();
    bAJAX = 3 ;
   } catch(Error) {
    try{
     ro = window.createRequest();
     bAJAX = 4 ;
    } catch(Error) {
     bAJAX = 0 ;
    }
   }
  }
 }
 return ro;
}

var http = createRequestObject();

function handleResponse(){
 var d = document;
 if( bAJAX > 0 ){
  //alert( "AJAX-Fall: " + bAJAX );
  //if(http.readyState == 1){ d.getElementById( "Status" ).innerHTML = "... Daten werden gesendet"; }
  if(http.readyState == 1){ d.body.style.cursor = "wait"; }
  //if(http.readyState == 2){ d.getElementById( "Status" ).innerHTML = "... Daten sind versendet"; }
  if(http.readyState == 3){ d.getElementById( "Status" ).innerHTML = "... Daten werden empfangen"; }
  if(http.readyState == 4){
   //d.getElementById( "Status" ).innerHTML = "... Daten werden aktualisiert";
   if(http.readyState == 4){ d.body.style.cursor = ""; }
   var response = http.responseText;
   var update = new Array();
   if(response.indexOf('|') > 0) {
    update = response.split('|');
    var sAction = update[0] ; //alert(update[0] + "\n" + update[1]) ;
    var sValue = "";
    var vValue = new Array();
    d.getElementById( "Status" ).innerHTML = "";
    for( i = 1 ; i < update.length ; i++ ){
     if( update[i] != "" ){
      sValue = update[ i + 1 ];
      try{
       sValue = evaluate(update[ i + 1 ]);
      }catch(Error){
       sValue = update[ i + 1 ];
      }
      if( d.getElementById(update[i]) != null ){
       if( update[1] == "divContent" ){
        d.getElementById(update[i]).innerHTML = "" + data2Html(sValue);
       }else{
        d.getElementById(update[i]).innerHTML = data2Html(sValue);
       }
      }
      if( d.forms[0] != null && update[i] == "Description" ){
       d.forms[0].Description.value = data2Html(sValue);
      }
      if( d.forms[0] != null && update[i] == "divStatus" ){
       d.forms[0].divStatus.value = data2Html(sValue);
      }
      
      i++;
     }
    }
   }      
  }
 }else{
  //window.status = "ajax.php.handleResponse.bAJAX = 0 => " + bAJAX );
 }
}

function doRequest(action) {
 if( bAJAX > 0 ){
  // AJAX-request to the server - Backend POST / AJAX-Anfrage an den Server per POST
  sHist[iHist++] = action;
  http.open('POST', 'ajax.php'  );
  http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  http.onreadystatechange = handleResponse;
  //http.send( null );
  var params = "action="+action+"&Username="+sUsername+"&Password="+sPassword+"&Domain="+sDomain+"&Userrole="+sUserrole ;
  //alert(params);
  http.send( params );
 }else{
  //window.status = "ajax.js.doRequest("+action+").bAJAX = 0 => " + bAJAX ); 
   document.location = "index.php?link=" + action; 
 }
}
/* AJAX ENDE */

var sExp = "" ;
var i = 0 ;

function text2Data(sValue){
 sExp = / \n/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[br]");}
 sExp = /\n/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[]");}
 sExp = /ä/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[auml]");}
 sExp = /ö/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[ouml]");}
 sExp = /ü/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[uuml]");}
 sExp = /Ä/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[Auml]");}
 sExp = /Ö/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[Ouml]");}
 sExp = /Ü/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[Uuml]");}
 sExp = /ß/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[szlig]");}
 sExp = /é/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[eacute]");}
 sExp = /\&/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"[amp]");}
 return sValue;
}

function data2Html(sValue){
 sExp = /\[auml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"ä");}
 sExp = /\[ouml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"ö");}
 sExp = /\[uuml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"ü");}
 sExp = /\[Auml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"Ä");}
 sExp = /\[Ouml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"Ö");}
 sExp = /\[Uuml\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"Ü");}
 sExp = /\[szlig\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"ß");}
 sExp = /\[eacute\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"é");}
 sExp = /\[amp\]/;while(sExp.test(sValue)){sValue = sValue.replace(sExp,"&");}
 return sValue;
}

function setInnerHTML(id,sContent){
 var d = document ;
 if(d.getElementById(id)!= null){
  d.getElementById(id).innerHTML = sContent;
  return "OK" ;
 }else{
  return "Fehler: Inhalt '" + id + "' unbekannt." ;
 }
}

function getInnerHTML(id){
 var d = document ;
 if(d.getElementById(id) == null){
  return "Fehler: Inhalt '" + id + "' unbekannt." ;
 }else{
  return d.getElementById(id).innerHTML ;
 }
}

function setStyle(id,style,value){
 if(document.getElementById(id) == null){
  return "Fehler: setStyle " + id + "." + style ;
 }else{
  eval( "document.getElementById('"+id+"').style."+style+" = '"+value+"';" );
  return "";
 }
}

function popupWB( id ){
 getData( "wb" + id );
}

function setDATA(id,arrLbl,arrVal){
 this.INFO = new Array();
 for(al = 0;al < arrLbl.length;al++){
  eval( "s"+ arrLbl[al] + " = '"+arrVal[al]+"'; " ) ;
  this.INFO[arrLbl[al]] = arrVal[al];
 }
 DATA[id] = this.INFO ;
 return "" ;
}

function fixFormat(){
 var d = document;
 try{ 
  d.getElementById("Content").style.height = d.body.scrollHeight - 60 ;
  if( sBrowser == "Opera" ){
   d.getElementById("Content").style.height = "524px"
  }
 } catch(Error) {
  d.getElementById("Content").style.height = '524px' ;
 }
 if( sBrowser == "Opera"){d.getElementById("Content").style.width = widthContent;}
 //if( bAJAX == 0 ){
  d.getElementById( "Content" ).innerHTML = data2Html(evaluate(document.getElementById( "Content" ).innerHTML));
  d.getElementById( "Info" ).innerHTML = data2Html(evaluate(document.getElementById( "Info" ).innerHTML));
 //}
 if( sContent == "welcome" || sContent == "start" ){
  setStyle("Content" , "backgroundColor" , d.getElementById("Navi").style.backgroundColor );
  d.getElementById( "waechter" ).src = "images/waechter_.jpg";
  d.getElementById("waechter").style.width = "760px";
  d.getElementById("waechter").style.height = "524px";
 }else{
  d.getElementById("Welcome").innerHTML = "" ;
  setStyle("Content" , "backgroundColor" , "#FFF");
  d.getElementById("waechter").style.width = "0px";
  d.getElementById("waechter").style.height = "0px";
  if( d.getElementById("link_" + sContent) != null  ){
   d.getElementById("link_" + sContent).style.fontStyle = "italic" ;
   d.getElementById("link_" + sContent).style.fontWeight = "bold" ;
  }
  
 }
 return "";
}

function calc(sID,dValue){
 var d = document ;
 var de = d.forms['bestellung'].elements["anz_" + sID];
 de.value = parseInt(de.value) + parseInt(dValue);
 var dE = d.getElementById("_" + sID);
 var dPreis = parseFloat(de.value) * parseFloat(ARTIKEL[sID]['Preis'].replace( /\,/ , "." ));
 var sPreis = dPreis + "" ;
 if(sPreis.indexOf(".") > -1){
  if(sPreis.indexOf(".") == sPreis.length - 2){
   sPreis = sPreis.replace(/\./,",") + "0";
  }else{
   sPreis = sPreis.replace(/\./,",") + "";
  }
 }else{
  sPreis = sPreis + ",00";
 }
 dE.innerHTML = sPreis ;
 return "";
}

function getData(sID){
 var d = document ;
 if(sID == "welcome" || sID == "start"){
  d.getElementById("Content").innerHTML = "" ;
  setStyle("Content","backgroundColor",d.getElementById("Navi").style.backgroundColor );
  setStyle("Main","backgroundColor",d.getElementById("Navi").style.backgroundColor );
 }else{
  d.getElementById("Welcome").innerHTML = "" ;
  setStyle("Content","backgroundColor","#FFF");
 }
 if(d.getElementById("link_" + sContent) != null){
  d.getElementById("link_" + sContent).style.fontStyle = "normal" ;
  d.getElementById("link_" + sContent).style.fontWeight = "normal" ;
 }
 if(d.getElementById("link_" + sID) != null){
  d.getElementById("link_" + sID).style.fontStyle = "italic" ;
  d.getElementById("link_" + sID).style.fontWeight = "bold" ;
 }
 sContent = sID ;
 d.getElementById("waechter").style.width = "0px";
 d.getElementById("waechter").style.height = "0px";

 fixFormat(); // Opera - Scrollhöhe

 try{
  doRequest("getData|" + sID );
 }catch(Error){
  d.location = "start.php?link="+sID ;
 }
}


function evaluate(sValue){
 if(sValue.indexOf("[eval ") > -1 ){
  sBefore = sValue.substring(0,sValue.indexOf("[eval "));
  sCode = sValue.substring(sValue.indexOf("[eval") + 6,sValue.indexOf("/eval]"));
  sAfter = sValue.substring(sValue.indexOf("/eval]") + 6);
  if(sAfter.indexOf("[eval ")){
   // rekursiver Aufruf
   sReturn = sBefore + eval(sCode) + evaluate(sAfter) ;
  }else{
   sReturn = sBefore + eval(sCode) + sAfter;
  }
 }else{
  sReturn = sValue;
 }
 return sReturn;
}

