function loadExtXml(url,was,options){
var req = null;
var was= was;
var opts= options;
var url = url;




function fillOptionsReg2() {
 var xml = req.responseXML;
 var txt = xml.getElementsByTagName("loc");


                            for(i=0;i<txt.length;i++)
                            {
                               //document.write(txt[i].getAttribute("name")+", ");
                                 if(txt[i].getAttribute("regid") == opts)
                                  {
                                         var orte= txt[i].childNodes;
                                          //alert(orte.length);
                                          if(orte.length!=0)
                                          {
                                            var dborte = new Array();
                                            var dbortid = new Array();
                                            var dbureg = new Array();
                                            var dburegid = new Array();

                                            clearOption(2);
                                            var z_orte=0;
                                            var z_ureg=0;

                                            for(var a=0;a<orte.length;a++)
                                         	{
                                         		var ort = orte.item(a);
							if(ort.nodeType==1)
                                                  		{
                                                                         if(ort.getAttribute("zipcode"))
                                                                         {

                                                                         	dborte[z_orte] = ort.getAttribute("name")+" "+ort.getAttribute("zipcode");
                                                     				dbortid[z_orte] = ort.getAttribute("regid");
										z_orte++;
                                                                         }

                                                                 }
                                         	}
                                            //alert(dborte.length);
                                            if(dborte.length>0){
                                            	document.obs_form.region2.options[0] = new Option("Bitte wählen Sie einen Ort","-");
                                            	for(var x=1;x<dborte.length;x++)
                                            	{
                                               		document.obs_form.region2.options[x] = new Option(dborte[x],dbortid[x]);
                                            	}
                                            }
                                            else{
                                            clearOption(2);
                                                        document.obs_form.region2.options[0] = new Option("Keine Orte vorhanden","0")
                                            }
                                          }
                                    }
                            }


}
//////////////////////////////////////////////

function getAltquery(){
	var xml = req.responseXML;
       	var treffer = xml.getElementsByTagName("resultitem").length;
         var isdiv = document.getElementById("altrequests");
         if(!document.getElementById("altrequests")){
            var nnode=document.createElement("div");
            document.getElementById("klammer").appendChild(nnode);
            nnode.setAttribute("id","altrequests");

            var alternaterequests_txtnode_txt = xml.getElementsByTagName("altrequests_opener").item(0);
            var alternaterequests_txtnode = document.createElement("div");
            nnode.appendChild(alternaterequests_txtnode);
            alternaterequests_txtnode.innerHTML = alternaterequests_txtnode_txt.firstChild.nodeValue;
            alternaterequests_txtnode.className="altrequests_opener";

         }
         var alternatenode = document.createElement("div");
         document.getElementById("altrequests").appendChild(alternatenode);
	alternatenode.className="altreq";

         var alternatenode_head = document.createElement("div");
         alternatenode.appendChild(alternatenode_head);
	alternatenode_head.className="alternate_top";

         var alternatenode_content = document.createElement("div");
         alternatenode.appendChild(alternatenode_content);
	alternatenode_content.className="alternate_content";


         var hits = xml.getElementsByTagName("hits").item(0);
         var node_hits = document.createElement("div");
         alternatenode_content.appendChild(node_hits);
         node_hits.innerHTML = hits.firstChild.nodeValue;
         node_hits.className="hits";

         var altrequeststxt = xml.getElementsByTagName("altsearch").item(0);
         var node_altrequeststxt = document.createElement("div");
         alternatenode_content.appendChild(node_altrequeststxt);
         node_altrequeststxt.innerHTML = altrequeststxt.firstChild.nodeValue;
         node_altrequeststxt.className="altrequeststxt";


         var searchpara_txtnode_txt = xml.getElementsByTagName("alt"+opts).item(0);
         var newsearchpara_txt = xml.getElementsByTagName("newpara");

         if(newsearchpara_txt.item(0).firstChild){
           var newparameter = " "+newsearchpara_txt.item(0).firstChild.nodeValue;
	}
         else{
           var newparameter = "";
         }
         var searchpara = document.createElement("div");
         alternatenode_content.appendChild(searchpara);
         searchpara.innerHTML = searchpara_txtnode_txt.firstChild.nodeValue+newparameter;
         searchpara.className="alternate_newparameter";


         var node_link = document.createElement("a");
         alternatenode_content.appendChild(node_link);
         node_link.innerHTML = "Alternative ansehen?";

         var alternatenode_bottom = document.createElement("div");
         alternatenode.appendChild(alternatenode_bottom);
	alternatenode_bottom.className="alternate_bottom";

                 /*

                 var searchpara = xml.getElementsByTagName("searchpara").item(0);
         var node_searchpara = document.createElement("div");
         alternatenode_content.appendChild(node_searchpara);
         node_searchpara.className="searchpara";


                 for(i=0;i<txt.length;i++)
                 {
                 	//document.write(txt[i].getAttribute("name")+", ");
                         if(txt[i].getAttribute("regid") == opts)
                         {
                                 //alert(txt[i].parentNode.getAttribute("name"));
                                 eval("newregid = '"+txt[i].parentNode.getAttribute("regid")+"';");

                         }
                 }*/
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

function setCalendar(){
var erg = req.responseText;
var nnode=document.createElement("div");
document.getElementById("calendar").appendChild(nnode);
nnode.innerHTML = erg;
nnode.setAttribute("id","caltab");

          //alert(document.getElementById("calendar").childNodes.length);
}
//////////////////////////

function changeCalendar(){
var erg = req.responseText;
var nmonth=document.createTextNode(erg);
var element = document.getElementById("caltab");
while (element.firstChild) {
  element.removeChild(element.firstChild);
}
document.getElementById("caltab").innerHTML = erg;

          //
}

//////////////////////////
function setCalTxt(){
     var xml = req.responseXML;
     var txt = xml.getElementsByTagName(opts);
     var txtstr = txt[0].firstChild.nodeValue;
     var caltxt = document.getElementById("cal_txt");
     if(document.getElementsByTagName("div").namedItem("caltab")){
         caltxt.innerHTML= txtstr;
         }

}
/////////////////////////////////////////////////////////////////////////////////

function getToolTipps(){
     var xml = req.responseXML;
     var txt = xml.getElementsByTagName(opts);
     var txtstr = txt[0].firstChild.nodeValue;
     var nnode=document.createElement("p");

     var pnode = document.getElementById(opts);
     var vnode = document.getElementById(opts).firstChild;
     pnode.insertBefore(nnode,vnode);
     nnode.innerHTML = txtstr;
}

//////////////////////////////////////////////////////////////////////////////////

function writeNotice(){

//alert(was);
     var xml = req.responseXML;
     var txt = xml.getElementsByTagName(opts);
     

     if(was =="notice" || was =="basket"){
     	var items = xml.getElementsByTagName("items").item(0).firstChild.nodeValue;
	    updateItems(was,items);
     }

     if(was=="tooltipps"){
     	var txtstr = txt[0].firstChild.nodeValue;
     	writeLayer(txtstr);
     }

}

function chNot(error){
    if(error){
    	error = "nolist";
    	getErrorTxt(error);
    }
    else{
    	var phpshow = was.substr(3,4);

    	if(was=="chkbasket"){
                 //var xml = req.responseXML;
     		//var txt = xml.getElementsByTagName('root').item(0);
    		//updateBasketInReslist(txt);
                 top.location.href="index.php?show=bask&sess="+sess;
    	}
    	else{
    		popupWindow("520","600","100","100","extwindow.php?show="+phpshow+"&"+opts,"yes","noticelist");
    	}
    }
}

/////////////////////////////////////////////////////////////////////////

function outNewRRV(){
    var optspices = opts.split("_");
    var xml = req.responseXML;

    var txt = xml.getElementsByTagName(String(optspices[0]));
    writeNewRRv(txt,optspices[1]);
}

///////////////////////////////////////////////////////////////////////

function giveExcls(){
   var optis = opts.split(",");
   var xml = req.responseXML;
   var txt = xml.getElementsByTagName(optis[0]);

   for(var i=0;i<txt.length;i++){//alert(txt.item(i).getAttribute('id'));
           if(txt.item(i).getAttribute('id')==optis[1]){

                 var excls = txt.item(i).getElementsByTagName("excl");
	  }
   }

	writeExcls(excls,optis[1]);
}


//////////////////////////////////////////////////////////////////////

function fillElements() {


                switch(req.readyState) {
                    case 4:
                        if(req.status!=200) {
                            switch (was){
                             case "chknotice":
                             case "chkbasket":
                                  chNot(req.status);

			    break;
                             default:
				alert("Fehler: "+req.status);
                              break;
                            }

                        }else{

                            //antwort des servers



                            switch (was){
                             case "reg2":
				fillOptionsReg2();
                             break;
                             case "cal":
                                 setCalendar();
			    break;
                             case "calch":
                                 changeCalendar();
			    break;
                             case "tt":
                                 getToolTipps();
			    break;
                             case "caltxt":
                                 setCalTxt();
			    break;
                             case "altquery":
                                 getAltquery();

			    break;
                             case "notice":
                             case "basket":
                             case "basketremoveitem":
                                  writeNotice();

			    break;
                             case "chknotice":
                             case "chkbasket":
                                  chNot();

			    break;
                             case "errortxt":
                             case "tooltipps":
                                  writeNotice();

			    break;

                             case "rrv":
                                  outNewRRV();

			    break;

                             case "excl_achievs":
                                  giveExcls();

			    break;


                             default:
				alert(req.responseText);
                              break;
                            }


			   }
                    break;

                    default:
                        return false;
                    break;
                }

            }


 ///////////////////////////////////////////////////////



             function loadRequest(){
                 //erstellen des requests

                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        catch (failed){
                            req = null;
                        }
                    }
                }

                if (req == null)
                      alert("Error creating request object!");

                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron

                  req.open("GET", url, true);



                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = fillElements;




                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);
            }
 	loadRequest();



}