var http_request  = false;

function saveRegioLatLng(region, punkt) {
  ajax_request();
  url = "/putzmittel.php?type=saveregiolatlng&region="+region+"&punkt="+punkt;
  http_request.open('GET',url,true);
  http_request.send(null);
}

function getRegioLatLng(region) {
  if (GBrowserIsCompatible()) {
    var geocoder = new GClientGeocoder();
    geocoder.getLatLng(
      region,
      function(point) {
        if (point) {
          saveRegioLatLng(region,point);
        }
      }
    );
  }
}

function saveObjLatLng(anschrift, punkt) {
  ajax_request();
  url = "/putzmittel.php?type=saveobjlatlng&anschrift="+anschrift+"&punkt="+punkt;
  http_request.open('GET',url,true);
  http_request.send(null);
}

function showMap(ADRESSE) { 
  document.getElementById("googlemap").style.display = "block";
  initialize(ADRESSE);
}

  var geocoder;
  var map;
  
  function initialize(address) {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 14,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("googlemap"), myOptions);
    codeAddress(address)
  }

  function codeAddress(address) {
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
              map: map, 
              position: results[0].geometry.location
          });
          var infowindow = new google.maps.InfoWindow({
            content: address
          });
          infowindow.open(map, marker);
        } else {
          alert("Leider wurde die folgende Adresse nicht gefunden:\n" + address);
        }
      });
    }
  }


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

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

function showBwDiv(NUMMER) {
  for (a=0;a<=10;a++) {
    var ZEILE = document.getElementById('bw_details_'+NUMMER);
    if (ZEILE) {
      ZEILE.style.visibility = 'visible';
      ZEILE.style.display = 'table';
    }
  }
}

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

function merkeObjekt(ID) {
  var ablauf = new Date();
  var in30Tagen = ablauf.getTime() + (30 * 24 * 60 * 60 * 1000);
  ablauf.setTime(in30Tagen);
  var CHECKER = checkAlte(ID);
  if (CHECKER >= 0) {
    CHECKER++;
    document.cookie = 'Anzahl=0; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    document.cookie = "Anzahl="+CHECKER+"; expires="+ablauf.toGMTString()+"; path=/;";
    document.cookie = "Objekt"+CHECKER+"="+ID+"; expires="+ablauf.toGMTString()+"; path=/;";
    alert('Das Ferienobjekt wurde auf die Merkliste gesetzt.');
  } else {
    alert('Dieses Ferienobjekt befindet sich bereits auf der Merkliste.');

  }
  countMz();
}

function countMz() {
  var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var Anzahl = '';
	for (i=0;i<a_all_cookies.length;i++) {
		a_temp_cookie = a_all_cookies[i].split( '=' );
    cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
    if (cookie_name == 'Anzahl') {
      Anzahl = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
    	break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if (Anzahl == '') Anzahl = '0';
  document.getElementById('mz_count').innerHTML = Anzahl;
}

function trim (zeichenkette) {
  // Erst führende, dann Abschließende Whitespaces entfernen
  // und das Ergebnis dieser Operationen zurückliefern
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function checkAlte(ID) {
  var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
  var cookie_value = '';
	var AnzahlAlt = 0;
	for (i=0;i<a_all_cookies.length;i++) {
    if (a_all_cookies[i].length > 0) {
      a_temp_cookie = a_all_cookies[i].split( '=' );
      cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
      cookie_value = a_temp_cookie[1].replace(/^\s+|\s+$/g, '');
      if (cookie_name == 'Anzahl') {
        AnzahlAlt = unescape(cookie_value);
      }
      if (cookie_value == ID) {
        return -1;
        break;
      }
      a_temp_cookie = null;
      cookie_name = '';
    }
	}
	return AnzahlAlt;
}

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

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');
  addSelectOption('region'+ZIEL, '0', '--- egal ---');
	for (a=0;a<REGIONEN.length;a++) {
		addSelectOption('region'+ZIEL, REGIONEN[a].childNodes[0].firstChild.nodeValue, REGIONEN[a].childNodes[1].firstChild.nodeValue);
	}
}

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

function checkReturn1() {
  if (http_request.readyState == 4) {
    if (http_request.status == 200) {
	    schreibeSubs(2);
			document.getElementById('region2').disabled = false;
	  } 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;
  }
}

