
var isIE = false;
function createRequestObject() {
    var ro;
	/*
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
	*/
	  // Ajax-Verbindung herstellen
   try {			// W3C-Standard
   ro = new XMLHttpRequest();
  } catch(w3c) {
   try {			// Internet Explorer
   isIE = true;
    ro = new ActiveXObject("Msxml2.XMLHTTP");
   } catch(msie) {
    try {		// Internet Explorer alt
     ro = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(msie_alt) {
     //alert("Ihr Browser kann keine Funoten anzeigen.");
     //return false;	// !!! Link auf XML-Dokument
    }
   }
  }

    return ro;
}
//var ssf = 'xdata'; // ServerSideFile
var http = createRequestObject();


function getRandomURL(url)
{
	//Random-Parameter an url anhängen, damit nicht gecached wird:
	//falls Fragezeichen vorkommt, dann mit & ranhängen, ansonsten mit ?
	var randomnumber=Math.floor(Math.random()*100001);
	if(url.indexOf("?") == -1) 
	{
		url = url + '?rnd=' + randomnumber;
	} else {
		//zwar Fragezeichen, aber kein Parameter
		if(url.indexOf("=") == -1) 
		{ 
			url = url + 'rnd=' + randomnumber;
		} else {
			url = url + '&rnd=' + randomnumber;
		}
	}
	return url;
}

function sndReq(url, handler) {
	//Random-Parameter an url anhängen, damit nicht gecached wird:
	//falls Fragezeichen vorkommt, dann mit & ranhängen, ansonsten mit ?
	url = getRandomURL(url);
	
	// handler = was soll mit der Antwort gemacht werden, bzw. elcher Handler soll verwendet werden
	// action  = Quelle, die die Aktion ausgeloest hat --> fuer serverseitigen switcher 
	// param   = Parameter, der verarbeitet wird	
 
   //true = asynchrone Abarbeitung --> handler auf onreadystatechange, daf??r KEIN eigener Aufruf des Handlers (bei Abfrage: readystate ist zun??chst !=4, dann 4)
   //false = synchrone Abarbeitung --> dann keinen handler auf onreadystatechange, daf??r eigener Aufruf des Handlers (bei Abfrage: readystate=4)
   http.open('get', url, false);

	//	
	// moegliche Verarbeitungsmoeglichkeiten:
	// - combo fuellt die Response-Werte in eine Combobox ==> Zielelement##id1|id2|id3|id4##eintrag1|eintrag2|eintrag3|eintrag4
	// - ihtml fuellt den Response-Wert in ein HTML-Element ==> Zielelement##Inhalt
	// - value fuellt den Response-Wert in ein Elemnt mit Value ==> Zielelement##Inhalt   

    // braucht man nicht, weil synchrone Abarbeitung. Der readystate passt dann auch bei manchen Firefox nicht, weshalb sich die Combo nicht f??llt:
    //http.onreadystatechange = handler;

    http.send(null);
    handler();
}
function work(str){	      	
	if(str != "")
	{				
		var response = eval("(" + str + ")");		
		for(i=0; i < response.daten.reifendaten.length; i++)
		{
			str = response.daten.reifendaten[i].value;
                        var sCbo = response.daten.reifendaten[i].cbo;
                        //alert(str); alert(sCbo);
                        var cbo = document.getElementById(sCbo);
                        if(cbo)
                        {
                             if(i == 0) {while (cbo.length>0) cbo.remove(0); }
                             
                             addOption(cbo, str, str);
                        }                        
		}		
	}

}
function handleComboResponse() 
{
	if(http.readyState == 4){
		var response = http.responseText;				
		work(response);
    }
}
function handleIHTMLResponse() 
{
    
	if(http.readyState == 4){
		var response = http.responseText;
      
		var update = new Array();
		//alert(response);
		if(response.indexOf('##') != -1) {
			update = response.split('##');
			document.getElementById(update[0]).innerHTML = update[1];
		}
    }
}

function handleValueResponse() 
{
    
	if(http.readyState == 4){
		var response = http.responseText;
      
		var update = new Array();
		if(response.indexOf('##') != -1) {
			update = response.split('##');
			document.getElementById(update[0]).value=update[1];
		}
    }
}

// --------------------------------------------------------------

function addOption(combobox,value,text) {
	var mEintrag = document.createElement("option");
	mEintrag.text = text;
	mEintrag.value = value;
	//var FolgendeOption = null;
	if (document.all) {
		combobox.add(mEintrag); }
	else {
		combobox.add(mEintrag, null);
	}
}

// --------------------------------------------------------------

function fillCombo(combobox,values,texts) {
	while (combobox.length>0) combobox.remove(0); // leeren
	  
	for (var i = 0; i < values.length; i++)
	{
		/* if(navigator.appName == "Microsoft Internet Explorer"){  // ie
			NeuerEintrag = new Option(texts[i],values[i], false, true);
			combobox.options[combobox.length] = NeuerEintrag;
	  	} else {*/
				// moz
			var mEintrag = document.createElement("option");
			mEintrag.text = texts[i];
			mEintrag.value = values[i];
			//var FolgendeOption = null;
			if (document.all) {
				combobox.add(mEintrag); }
			else {
				combobox.add(mEintrag, null);}
	  	/*}*/
 	}
}

function LTrim(VALUE)
{
  var w_space = String.fromCharCode(32);
  if(v_length < 1){
    return"";
  }
  var v_length = VALUE.length;
  var strTemp = "";

  var iTemp = 0;

  while(iTemp < v_length){
    if(VALUE.charAt(iTemp) == w_space){}
    else{
      strTemp = VALUE.substring(iTemp,v_length);
      break;
    }
    iTemp = iTemp + 1;
  } //End While

  return strTemp;
} //End Function

function evalScript(scripts)
{	try
{	if(scripts != '')	
	{	var script = "";
		scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
       	                         if (scripts !== null) script += arguments[1] + '\n';
	        	                        return '';});
		if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
	}
	return false;
}
catch(e)
{	alert(e)
}
}
