// JavaScript Document
// XMLHTTPRequest
//////////// Weditor - Klasse
function callback(tt){}

function  WAjax() {
    this.callback = 0;
    this.methode = "post";
    this.url = "";
    this.vars = "";
    this.meinRequest = false;

    
};
WAjax.prototype.addVar = function (name,value){
    this.vars += name+'=' + value.replace('&','#ampersandzeichen_ampersandzeichen_#')+'&';
	
}
WAjax.prototype.setUrl = function(me){
	
	    this.url = me;
	    return true;
	
	
}
WAjax.prototype.setMethode = function(me){
	if(me == "post" || me == "get"){
	    this.methode = me;
	    return true;
	}
	return false;
}
WAjax.prototype.setCallback = function(me){
	this.callback = me;
	    return true;
}
WAjax.prototype.getState = function(){
	    return this.meinRequest.readyState;
}
WAjax.prototype.getStatus = function(){
	    return this.meinRequest.status;
}
WAjax.prototype.getAnswer = function(){
	    return this.meinRequest.responseXML;
}

WAjax.prototype.send = function(){

        if (window.XMLHttpRequest) { 
            this.meinRequest = new XMLHttpRequest();
        } 
        else if (window.ActiveXObject) { 
            try { 
                this.meinRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                try { 
                    this.meinRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) {}                     
            }                        
        }
        if (!this.meinRequest) {
            alert("Ihr Browser kann offenbar noch kein AJAX!");
            return false;
        }
       
        this.meinRequest.open(this.methode, this.url, true);
		
        if (this.meinRequest.overrideMimeType) {
            this.meinRequest.overrideMimeType('text/xml');
        }
        if (this.methode.toLowerCase() == 'post') {
            this.meinRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        }	
        if(this.callback == 0){
            this.meinRequest.onreadystatechange = function() {}
			
			
        }else{
			var objThis = this;
            this.meinRequest.onreadystatechange = function() {        
				if (objThis.meinRequest.readyState==4 && objThis.meinRequest.status == 200) {
                   if(objThis.callback != null) {
                    objThis.callback(objThis.meinRequest.responseText, objThis.meinRequest.responseXML);
                }
            }
        }
        this.meinRequest.send(this.vars);
        
        return true;
}

}


    function sendeHTTPRequest(methode,url,postVars,callback) {
		//alert("hallo");
                // HTTP-Request-Objekt erzeugen
                var meinRequest = false;
                if (window.XMLHttpRequest) { 
                    // alle Browser ausser IE ...
                    meinRequest = new XMLHttpRequest();
                } 
                else if (window.ActiveXObject) { 
                    // Internet Explorer - hier müssen wir etwas aufpassen
                    try { // alte Versionen von MSXML
                        meinRequest = 
                            new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e) {
                        try { // IE5 oder höher 
                            meinRequest = 
                                new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (e) {} // hoffnungsloser Fall                       
                    }                        
                }
                if (!meinRequest) {
                    alert("Ihr Browser kann offenbar noch kein AJAX!");
                    return false;
                }
                // Request öffnen und konfigurieren
                meinRequest.open(methode, url, true);
                // Spezialbehandlung für einige ältere Mozilla-Versionen
                if (meinRequest.overrideMimeType) {
                    meinRequest.overrideMimeType('text/xml');
                }
                // Zusätzlichen Header für POST-Requests setzen
                if (methode.toLowerCase() == 'post') {
                    meinRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                }
                // Callback-Methode definieren
				
                //meinRequest.onreadystatechange = callback(meinRequest);
				meinRequest.onreadystatechange = function() { callback(meinRequest); }
                // Request senden
				//alert(postVars);
                meinRequest.send(postVars);
                return true;
            }
			
		var elemente_textboxarea =new Array();
				
		function umlaute(text){
			
			return escape(text);
			
			}
	function senden_texteditor(id,url,key,action){
		
			
			var textinhalt =  escape(document.getElementById(id).innerHTML);//alert(action);
			
			/* Probleme bei langen texten noch nicht aufgetreten:
			http://www.tutorials.de/forum/javascript-ajax/315563-innerhtml-schneidet-text-ab-warum.html
			
			Lösung:
			var myCont = document.getElementById("content");
			
			  function checkNodeValue(objNode){
			    // Falls alle Kriterien erfüllt => Textknoten wurde aufgeteilt => Inhalt von textContent
			    if((objNode.childNodes.length>1)
			       && (objNode.childNodes[0].nodeType == 3)
			       && (objNode.childNodes[0].length >= 4096)){
			        return objNode.textContent;
			    // "Normaler" Textknoten
			    }else{
			      return objNode.firstChild.nodeValue;
			    }
			  }
			  var response = checkNodeValue(xmlResponse.documentElement);
			
			  myCont.innerHTML = response;
			  ######################################################################
			  
			  Problem &
			  utf8_encode( für PHP
			*/
			
			
			//alert(id);
			var element = document.getElementById(id);
			var postVars = 'content='+textinhalt;
				postVars += '&id=' + key;
				postVars += '&action=' + action;
			//
			//alert(textinhalt);
			if(!textinhalt){
			   return;
			   }
			
			sendeHTTPRequest('post',urlt,postVars,id);
			//alert(target);
		}
	function CallbackAjax(meinRequest,inputtag){
		if((meinRequest.readyState == 4) && (meinRequest.status == 200)){
			//alert("es funzt");	
			//alert(meinRequest.responseText);
			document.getElementById(inputtag).innerHTML = meinRequest.responseText;
			//alert("hh"+inputtag);
			
		}	
		
	}