/******************************************************************************
  Suchformular:
******************************************************************************/
$(document).ready(function(){
	/* verstecktes Feld ist leer: Erweiterte Suche nicht anzeigen */
	if ($("#erweitert_field").val() != 1) {
		$("#erweitert_container").hide();
		$("#suchlink_erweitert").show();
	}
	else
	   $("#suchlink_einfach").show();
	/* Klick auf Erweitert: Erweiterte Suche anzeigen, verstecktes Feld auf 1 setzen */
	$("#suchlink_erweitert").click(function(event){
			$("#erweitert_field").val("1");
			$("#erweitert_container").toggle(500);
			$("#suchlink_erweitert").hide();
			$("#suchlink_einfach").show();
			return false;
	});
	/* Klick auf Einfach: Erweiterte Suche verstecken, verstecktes Feld auf leer setzen */
	$("#suchlink_einfach").click(function(event){
			$("#erweitert_field").val("");
			$("#erweitert_container").toggle(500);
			$("#suchlink_erweitert").show();
			$("#suchlink_einfach").hide();
			return false;
	});

	/* Anzeige des Containers "Mehrfamilienhaus" und aktivieren der Checkboxen */
	if ($("input[name='tx_wilgebaeudedb_projekt_suche[kategorie_wg_mfh]']").is(':checked')) {
		$("#mehrfamilienhaus").show();
	} else {
		$("#mehrfamilienhaus").hide();
		$("input[name='tx_wilgebaeudedb_projekt_suche[kategorie_wg][]']").attr('checked', false);
	}
	$("input[name='tx_wilgebaeudedb_projekt_suche[kategorie_wg_mfh]']").click(function(event){
		$("#mehrfamilienhaus").toggle(500);
		if (!$("input[name='tx_wilgebaeudedb_projekt_suche[kategorie_wg_mfh]']").is(':checked')) {
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_2").attr('checked', false);
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_3").attr('checked', false);
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_4").attr('checked', false);
		} else{
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_2").attr('checked', true);
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_3").attr('checked', true);
			$("#tx_wilgebaeudedb_projekt_suche_kategorie_wg_4").attr('checked', true);
		}
		updateSearchResults();
	});

	/* Aktivieren der Checkboxen "Wettbewerb 2" */
	$("input[name='tx_wilgebaeudedb_projekt_suche[wettbewerb_2_dummy]']").click(function(event) {
		if (!$("input[name='tx_wilgebaeudedb_projekt_suche[wettbewerb_2_dummy]']").is(':checked')) {
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_3").attr('checked', false);
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_2").attr('checked', false);
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_1").attr('checked', false);
		} else{
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_3").attr('checked', true);
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_2").attr('checked', true);
			$("#tx_wilgebaeudedb_projekt_suche_wettbewerb_2_1").attr('checked', true);
		}
		updateSearchResults();
	});

});

/* Sanierung wird anzeigt oder nicht */
function toggleSanierung() {
	$(".sanierung").toggle();
}

/* Hier wird bei der Eingabe in das Feld plz zunächst geprüft, ob es sich um eine Nummer (=Postleitzahl) handelt.
   Wenn ja und länger als 4 Zeichen, wird die Ergebnisanzeige aktualisiert.
   Wenn nein, wird nach der passenden Stadt gesucht. */
function updatePLZ() {
		if (isNaN($("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val()))
			updateCity();
		else if($("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val().length>=4)
			updateSearchResults();
		else if ($("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val() == '')
			updateSearchResults();
}


/* Die Ergebnisanzeige wird aktualisiert.
	Parameter sind alle Suchparameter */
function updateSearchResults() {
    $(".counter").html('<img src="typo3conf/ext/wil_gebaeudedb/templates/img/spinner.gif" />');
  /* Ein neues XMLHttpRequest-Objekt erstellen, um mit dem Webserver zu sprechen */
  xmlHttp = false;
	//if (xmlHttp) xmlHttp.abort();

  if(window.XMLHttpRequest)  {
    xmlHttp = new XMLHttpRequest();
	if (xmlHttp.overrideMimeType) {
		xmlHttp.overrideMimeType('text/xml');
	}
  }
  else if(window.ActiveXObject)  {
    try    {
      xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
    }
    catch(e)   {
      try     {
       xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
      }
      catch(e)     {
      }
    }
  }
  if (!xmlHttp) {
        return false;
    }

  /*var url = document.forms["tx_wilgebaeudedb_projekt_suche_form"].action+'?';*/
  var url = document.URL;
  if (document.URL.indexOf("?") < 0)
	url += '?';
  if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[art]"] && document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[art]"][1].checked == true)
    url += '&tx_wilgebaeudedb_projekt_suche[art]=1';
  else if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[art]"] && document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[art]"][0].checked == true)
    url += '&tx_wilgebaeudedb_projekt_suche[art]=0';

  if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[schwerpunkt][0]"].checked == true)
    url += '&tx_wilgebaeudedb_projekt_suche[schwerpunkt][0]=1';
  if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[schwerpunkt][1]"].checked == true)
    url += '&tx_wilgebaeudedb_projekt_suche[schwerpunkt][1]=1';


  /* Checkboxen Multiple */
  //var checkNamesArray = new Array("typ","weitere","solar","lueftung");
  //var checkCountArray = new Array(2,4,2,3);
  var checkNamesArray = new Array("schwerpunkt","kategorie_wg","kategorie_nwg","wettbewerb_2","aktion_niedrigenergiehaus");
  var checkCountArray = new Array(2,5,4,3,3);
  for (i=0; i<checkNamesArray.length; i++) {
    for (n=0; n<checkCountArray[i]; n++) {
      if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+checkNamesArray[i]+"][]"]) {
        if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+checkNamesArray[i]+"][]"][n].checked == true)
          url += '&tx_wilgebaeudedb_projekt_suche['+checkNamesArray[i]+']['+n+']='+document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+checkNamesArray[i]+"][]"][n].value;
      }
    }
  }
  /* Checkboxen Einfach */
  var checkNamesArray2 = new Array("aktionen_alle",
								   "denkmalschutz",
								  "wettbewerb",
								  "aktion_niedrigenergiehaus",
								  "aktion_energiesparrekorde",
								  "aktion_energiesparrekorde_2010",
								  "solar",
								  "waermepumpe",
								  "biomasse",
								  "photo",
								  "energie_beliebig",
								  "verkauf");
  for (i=0; i<checkNamesArray2.length; i++) {
    if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+checkNamesArray2[i]+"]"]) {
        if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+checkNamesArray2[i]+"]"].checked == true)
			url += '&tx_wilgebaeudedb_projekt_suche['+checkNamesArray2[i]+']=1';
    }
  }

  /* Input Felder */
  var InputArray = new Array("baujahr_von",
							 "baujahr_bis",
							 "fertigstellung_von",
							 "fertigstellung_bis",
							 "eb_jahr_vs",
							 "eb_jahr_aktuell",
							 "eb_end_vs",
							 "eb_end_aktuell",
							 "eb_spez_vs",
							 "eb_spez_aktuell",
							 "uid");
  for (i=0; i<InputArray.length; i++) {
	/*if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+InputArray[i]+"]"]) {
	  if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+InputArray[i]+"]"].value)*/
       if (typeof document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+InputArray[i]+"]"] != 'undefined')
		url += '&tx_wilgebaeudedb_projekt_suche['+InputArray[i]+']='+document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+InputArray[i]+"]"].value;
	/*}*/
  }
	/*if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[plz]"]) {
	  if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[plz]"].value.length >= 4)*/
		url += '&tx_wilgebaeudedb_projekt_suche[plz]='+document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche[plz]"].value;
	/*}*/


	/* Selectorboxen */
	var selectArray = new Array("umkreis",
								"aw_konstruktion",
								"aw_daemmung_art",
								"dach_aktuell_warmedaemmung",
								"keller_wd_art",
								"fenster_verglasung",
								"hz_art",
								"lueftung_typ_aktuell");
	for (n=0; n<selectArray.length; n++) {
		if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+selectArray[n]+"]"]) {
			if (document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+selectArray[n]+"]"].value) {
				var selObj = document.forms["tx_wilgebaeudedb_projekt_suche_form"].elements["tx_wilgebaeudedb_projekt_suche["+selectArray[n]+"]"].options;
				var count = 0;
				for (i=0; i<selObj.length; i++) {
					if (selObj[i].selected) {
						url += '&tx_wilgebaeudedb_projekt_suche['+selectArray[n]+']='+selObj[i].value;
						count++;
					}
				}
			}
		}
	}


  // Öffnen der Verbindung zum Server
  xmlHttp.open("GET", url+'&type=7777', true);

  // Festlegen einer Funktion, die der Server aufrufen soll, wenn er fertig ist
  xmlHttp.onreadystatechange = updatePage;

  // Absenden der Anfrage
  xmlHttp.send(null);
}

/* Bei Antwort wird der Counter aktualisiert */
function updatePage() {
  // alert(originalRequest.responseText);
  if (xmlHttp.readyState == 4) {
    var answer = xmlHttp.responseText;
	//alert(answer);
    $(".counter").html(answer);
  }
}


/* Es wird nach einer passenden Stadt gesucht. Parameter ist die Eingabe im Feld plz */
function updateCity() {
		$("#city_spinner").html('<img src="typo3conf/ext/wil_gebaeudedb/templates/img/spinner_2.gif" />');
		/* Ein neues XMLHttpRequest-Objekt erstellen, um mit dem Webserver zu sprechen */
		xmlHttp2 = null;
		if (xmlHttp2) xmlHttp2.abort();

		if(window.XMLHttpRequest)  {
		  xmlHttp2 = new XMLHttpRequest();
		}
		else if(window.ActiveXObject)  {
		  try    {
			xmlHttp2 = new ActiveXObject('Msxml2.XMLHTTP');
		  }
		  catch(e1)   {
			try     {
			 xmlHttp2 = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e2)     {
			}
		  }
		}

		var url = document.URL;
		if (document.URL.indexOf("?") < 0)
		  url += '?';
		url += '&city='+$("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val();

		// Öffnen der Verbindung zum Server
		xmlHttp2.open("GET", url+'&type=8888', true);

		// Festlegen einer Funktion, die der Server aufrufen soll, wenn er fertig ist
		xmlHttp2.onreadystatechange = updateCity_Page;

		// Absenden der Anfrage
		xmlHttp2.send(null);
}

/* Rückgabe nach Stadtsuche */
function updateCity_Page() {
  // alert(originalRequest.responseText);
  if (xmlHttp2.readyState == 4) {
    var answer_city = xmlHttp2.responseText;
	//alert(answer);
	/* Kein Ergebnis */
	if (answer_city.indexOf("<a")<0) {
		$("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val("");
		$("#city_selector").slideUp(1000);
		if (xmlHttp2) xmlHttp2.abort();
		alert ("Keine Orte mit diesem Namen gefunden");
		updateSearchResults();
		$("#city_spinner").html('');

		return false;
	} // Genau eine passende Stadt: SElector wird zugeklappt und Stadt direkt ausgewählt
	else if (answer_city.indexOf("<a",2)<0) {
		var start = answer_city.indexOf(">")+1;
		var end = answer_city.indexOf("<",11);
		var city = answer_city.substring(start,end);
		$("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val(city);
		$("#city_selector").slideUp(1000);
		updateSearchResults();
		$("#city_spinner").html('');
		return false;
	}
	else {
		$("#city_selector").slideDown(1000);
		$("#city_selector").html(answer_city);
		$("#city_selector a").click(function(event){
			var city = $(this).html();
			$("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val(city);
			$("#city_selector").slideUp(1000);
			updateSearchResults();
			$("#city_spinner").html('');
			return false;
		});
	}
	$("#city_spinner").html('');
  }
}

/* Stadt wird gesetzt: Eingabefeld wird ausgefüllt und Selector wird geschlossen */
function setCity(city) {
	$("input[name='tx_wilgebaeudedb_projekt_suche[plz]']").val(city);
	$("#city_selector").slideUp(1000);
}


