var http_request  = false;

function checkValue(FELD) {
  if ((FELD.id=="region2" || FELD.id=="region3") && FELD.options[FELD.selectedIndex].value == -2) {
    showNewRegionForm(FELD.id.substr(6,1));
  }
  if ((FELD.id=="region1" || FELD.id=="region2") && FELD.options[FELD.selectedIndex].value > 0) {
    loadSubs(FELD.id.substr(6,1));
  }
}

function showNewRegionForm(EBENE) {
  document.getElementById('ebene').value=EBENE;
  showOverlay();
}

function confirmDeleteObjekt(OBJEKT) {
  var ok = confirm("Sind Sie sicher, dass Sie das Objekt löschen wollen? Alle Daten werden gelöscht. Der Vorgang kann nicht rückgängig gemacht werden.");
  if (ok == true) {
    document.location.href='/vermieter.php?art=deleteobjekt&objekt='+OBJEKT;
  }
}

function confirmDeletePic(OBJEKT,BILD) {
  var ok = confirm("Sind Sie sicher, dass Sie dieses Bild löschen wollen? Der Vorgang kann nicht rückgängig gemacht werden.");
  if (ok == true) {
    document.location.href='/vermieter.php?art=deletepic&objekt='+OBJEKT+'&pic='+BILD;
  }
}

function createRegion() {
  var EBENE  = parseInt(document.getElementById('ebene').value);
  var NAME   = document.getElementById('newRegion').value;
  if (EBENE > 1) {
    var HOEHER = EBENE - 1;
    var MUTTER = document.getElementById('region'+HOEHER).options[document.getElementById('region'+HOEHER).selectedIndex].value;
    ajax_request();
    url = "/putzmittel.php?type=createregion&mutter="+MUTTER+"&ebene="+EBENE+"&name="+encodeURI(NAME);
    if (EBENE == 2) {
      http_request.onreadystatechange=newRegion2;
    }
    if (EBENE == 3) {
      http_request.onreadystatechange=newRegion3;
    }
    http_request.open('GET',url,true);
    http_request.send(null);
  }
}

function newRegion2() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      xmlResponse = http_request.responseXML;
      var REGION = xmlResponse.getElementsByTagName('region');
      addSelectOption('region2', REGION[0].childNodes[0].firstChild.nodeValue, REGION[0].childNodes[1].firstChild.nodeValue);
      document.getElementById('region2').options[document.getElementById('region2').options.length-1].selected = true;
      document.getElementById('region2').selectedIndex = document.getElementById('region2').options.length - 1;
      deleteSelectOptions(document.getElementById('region3'));
      addSelectOption('region3', '0', 'Bitte wählen');
      addSelectOption('region3', '-2', 'neuer Eintrag...');
      hideOverlay();
    } else {
      alert('Fehler beim Serverzugriff. Statuscode:'+http_request.status);
    }
  }
}

function newRegion3() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
      xmlResponse = http_request.responseXML;
      var REGION = xmlResponse.getElementsByTagName('region');
      addSelectOption('region3', REGION[0].childNodes[0].firstChild.nodeValue, REGION[0].childNodes[1].firstChild.nodeValue);
      document.getElementById('region3').options[document.getElementById('region3').options.length-1].selected = true;
      document.getElementById('region3').selectedIndex = document.getElementById('region3').options.length - 1;
      hideOverlay();
    } else {
      alert('Fehler beim Serverzugriff. Statuscode:'+http_request.status);
    }
  }
}

function showOverlay() {
  document.getElementById('overlay').style.visibility = 'visible';
  document.getElementById('overlay').style.display = 'block';
}

function hideOverlay() {
  document.getElementById('overlay').style.visibility = 'hidden';
  document.getElementById('overlay').style.display = 'none';
}

function loadSubs(NUMMER) {
  var ZIEL = parseInt(NUMMER)+1;
  deleteSelectOptions(document.getElementById('region'+ZIEL));
  if (NUMMER == 1) {
    var ZIEL2 = ZIEL + 1;
    deleteSelectOptions(document.getElementById('region'+ZIEL2));
  }
  var MUTTER = document.getElementById('region'+NUMMER).options[document.getElementById('region'+NUMMER).selectedIndex].value;
  ajax_request();
  url = "/putzmittel.php?type=getsubregionen&mutter="+MUTTER;
  if (NUMMER == 1) {
    http_request.onreadystatechange=checkReturn1;
  }
  if (NUMMER == 2) {
    http_request.onreadystatechange=checkReturn2;
  }
  http_request.open('GET',url,true);
  http_request.send(null);
}

function schreibeSubs(ZIEL) {
  xmlResponse = http_request.responseXML;
  var REGIONEN = xmlResponse.getElementsByTagName('region');
  addSelectOption('region'+ZIEL, '-1', 'Bitte wählen');
	for (a=0;a<REGIONEN.length;a++) {
		addSelectOption('region'+ZIEL, REGIONEN[a].childNodes[0].firstChild.nodeValue, REGIONEN[a].childNodes[1].firstChild.nodeValue);
	}
  addSelectOption('region'+ZIEL, '-2', 'neuer Eintrag...');
}

function checkReturn2() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
	    schreibeSubs(3);
	  } else {
	    alert('Fehler beim Serverzugriff. Statuscode:'+http_request.status);
	  }
  }
}

function checkReturn1() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
	    schreibeSubs(2);
	  } else {
	    alert('Fehler beim Serverzugriff. Statuscode:'+http_request.status);
	  }
  }
}

function addSelectOption(SELECTFELD, WERT, BESCHR) {
	var oOption = document.createElement("OPTION");
  var oValue = document.createAttribute("value");
  oValue.nodeValue = WERT;
  oOption.setAttributeNode(oValue);
  var oText = document.createTextNode(BESCHR);
  oOption.appendChild(oText);
  document.getElementById(SELECTFELD).appendChild(oOption);
}

function deleteSelectOptions(FELD){
  var LAENGE = FELD.length;
  for (i=0; i <LAENGE; i++){
    FELD.options[FELD.length-1] = null;
  }
}

function ajax_request(url){
  http_request = false;
  if(window.XMLHttpRequest){
    http_request=new XMLHttpRequest();
    if(http_request.overrideMimeType){
      http_request.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    try {
      http_request=new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try{
        http_request=new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
      }
    }
  }
  if(!http_request){
    alert('Giving up :( Cannot create an XMLHTTP instance');
    return false;
  }
}
