/*--------------------------------------------------------------------------
*	edaView, version 1.0
*	Explore the history of synagogues in Germany
*	Authors ordered alphabetical:
*	
*	(c) 2008 Daniel von der Helm
*  	(c) 2008 Dennis Kleine
*
*	Tue Jul 01 23:35:22 CET 2008
*	http://edaview.sourceforge.org/
*
*  	edaView is freely distributable under the terms of an GNU General Public License.
*  	For details, see the edaView Project Home at: http://www.sourceforge.org/projects/edaview/
*
*	The above copyright notice and this permission notice shall be
*	included in all copies or substantial portions of the Web-Application.
*
*	edaView was developed at the university of applied sience Kaiserslautern (Zweibrücken) as a student project
*	during the course Mediaproduction - and conception. This application is distributed without any warranty. 
*	See the GNU General Public License for more details.
*--------------------------------------------------------------------------*/

var baustiltypen =[];
baustiltypen[0] = "AlleBau";
var sprachen = [];
sprachen[0] = "AlleSpr";
var pause = false;
var filterData = '';
var geoData = '';
var geoLat = '';
var geoLng = '';
var typeChartTrue = false;
var varExpert = "";
var boolMySlider = true;
var checkboxErbautAm = false;
var checkboxAbgerissenAm = false;
var checkboxNutzungsende = false;
var ortInit = true;

function refreshFilters()
{
	var strasse = document.getElementById('strasse').value;
	var nr = document.getElementById('nr').value;
	var plz = document.getElementById('plz').value;
	var ort = document.getElementById('ort').value;
	if(!pause)
	{
		pause = true;
		if(((strasse && ort) || (strasse && plz && (plz.length == 5)) || (plz && plz.length == 5) || (ort)))
		{
			var actGeoData = ""+strasse+ort+plz;
			if((actGeoData != geoData) || (geoLat == "" && geoLng == ""))
			{
				getGeocode(strasse, nr, plz, ort);
				geoData = actGeoData;
			}
			else
			{
				if(typeChartTrue)
					var typeChart = "do";
				else
					var typeChart = "";
				refreshFilters2(geoLat,geoLng,typeChart);
			}
		}
		else
		{
			geoLat = "";
			geoLng = "";
			if(typeChartTrue)
				var typeChart = "do";
			else
				var typeChart = "";
			refreshFilters2(geoLat,geoLng,typeChart);
		}
	}
	else
		setTimeout("refreshFilters()", 50);
	
	typeChartTrue = false;
}

function refreshFilters2(lat,lng,typeChart)
{
	var bounds = parent.map.getBounds();
	var southWestLat = bounds.getSouthWest().lat();
	var northEastLat = bounds.getNorthEast().lat();
	var southWestLng = bounds.getSouthWest().lng();
	var northEastLng = bounds.getNorthEast().lng();
	
	var sakralFilterByCity = document.getElementById('ortsSuche').value;
	if(sakralFilterByCity != '')
	{
		document.getElementById('filterOrt').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueOrt').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterOrt').src = "../styles/images/checkbox.gif";
		if(document.getElementById('Ort').style.display == 'none')
			document.getElementById('filtermenueOrt').style.fontWeight = 'normal';
	}
	
	if(chronologyYear != '')
	{
		document.getElementById('filterChronologie').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueChronologie').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterChronologie').src = "../styles/images/checkbox.gif";
		if(document.getElementById('Chronologie').style.display == 'none')
			document.getElementById('filtermenueChronologie').style.fontWeight = 'normal';
	}
	
	var bundeslaender = ['AlleBund', 'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen', 'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen', 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen', 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen'];
	var selectedBundeslaender = [];
	var counter = 0;
	if(!document.getElementById('AlleBund').selected)
	{
		for(var j = 0; j < 17; j++)
		{
			if(document.getElementById(bundeslaender[j]).selected)
			{
				selectedBundeslaender[counter] = bundeslaender[j];
				counter++;
			}
		}
		document.getElementById('filterBundesland').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueBundesland').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterBundesland').src = "../styles/images/checkbox.gif";
		if(document.getElementById('Bundesland').style.display == 'none')
			document.getElementById('filtermenueBundesland').style.fontWeight = 'normal';
	}
	
	var typen = ['AlleTyp','Betraum','Synagoge','Synagoge/Betraum'];
	var selectedTypen = [];
	counter = 0;
	if(!document.getElementById('AlleTyp').selected)
	{
		for(var l = 1; l < typen.length; l++)
		{
			if(document.getElementById(typen[l]).selected)
			{
				selectedTypen[counter] = typen[l];
				counter++;
			}
		}
		document.getElementById('filterTypen').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueTypen').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterTypen').src = "../styles/images/checkbox.gif"
		if(document.getElementById('Typen').style.display == 'none')
			document.getElementById('filtermenueTypen').style.fontWeight = 'normal';
	}
	
	var radius = document.getElementById('radius').value;
	
	if(lat != '')
	{
		document.getElementById('filterUmkreis').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueUmkreis').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterUmkreis').src = "../styles/images/checkbox.gif";
		if(document.getElementById('Umkreis').style.display == 'none')
			document.getElementById('filtermenueUmkreis').style.fontWeight = 'normal';
	}
		
	var zeitraumVon = document.getElementById('zeitraumVon').value;
	var zeitraumBis = document.getElementById('zeitraumBis').value;
	
	var erbautAm = "";
	if(checkboxErbautAm == true)
		erbautAm = "set";
	var abgerissenAm = "";
	if(checkboxAbgerissenAm == true)
		abgerissenAm = "set";
	var nutzungsende = "";
	if(checkboxNutzungsende == true)
		nutzungsende = "set";
	
	if(zeitraumVon.length >= 4 || erbautAm != '' || abgerissenAm != '' || nutzungsende != '')
	{
		document.getElementById('filterZeitpunkte').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueZeitpunkte').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterZeitpunkte').src = "../styles/images/checkbox.gif";
		if(document.getElementById('Zeitpunkte').style.display == 'none')
			document.getElementById('filtermenueZeitpunkte').style.fontWeight = 'normal';
	}
	
	var zustandAussen = ['AlleZustaendeAussen','10A','11A','12A','13A','14A','15A','16A','17A','18A','19A','20A','21A','30A','31A','32A','40A','41A','42A','50A','51A','52A','60A','70A','80A'];
	var selectedZustaendeAussen = [];
	var counter = 0;
	if(!document.getElementById('AlleZustaendeAussen').selected)
	{
		for(var i = 0; i < 25; i++)
		{
			if(document.getElementById(zustandAussen[i]).selected)
			{
				var subA = zustandAussen[i].substring(0,2);
				selectedZustaendeAussen[counter] = subA;
				counter++;
			}
		}
		document.getElementById('filterZustandAussen').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueZustandAussen').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterZustandAussen').src = "../styles/images/checkbox.gif";
		if(document.getElementById('ZustandAussen').style.display == 'none')
			document.getElementById('filtermenueZustandAussen').style.fontWeight = 'normal';
	}
	
	var zustandInnen = ['AlleZustaendeInnen','10I','11I','12I','14I','19I','20I','21I','30I','31I','32I','50I','51I','52I','70I','80I'];
	var selectedZustaendeInnen = [];
	var counter = 0;
	if(!document.getElementById('AlleZustaendeInnen').selected)
	{
		for(var k = 0; k < 16; k++)
		{
			if(document.getElementById(zustandInnen[k]).selected)
			{
				var subI = zustandInnen[k].substring(0,2);
				selectedZustaendeInnen[counter] = subI;
				counter++;
			}
		}
		document.getElementById('filterZustandInnen').src = "../styles/images/checkboxOk.gif";
		document.getElementById('filtermenueZustandInnen').style.fontWeight = 'bold';
	}
	else
	{
		document.getElementById('filterZustandInnen').src = "../styles/images/checkbox.gif";
		if(document.getElementById('ZustandInnen').style.display == 'none')
			document.getElementById('filtermenueZustandInnen').style.fontWeight = 'normal';
	}
	toDatabase(southWestLat, northEastLat, southWestLng, northEastLng, sakralFilterByCity, selectedBundeslaender, selectedTypen, lat, lng, radius, zeitraumVon, zeitraumBis, erbautAm, abgerissenAm, nutzungsende, selectedZustaendeAussen, selectedZustaendeInnen, typeChart);
}

function toDatabase(southWestLat, northEastLat, southWestLng, northEastLng, sakralFilterByCity, selectedBundeslaender, selectedTypen, lat, lng, radius, zeitraumVon, zeitraumBis, erbautAm, abgerissenAm, nutzungsende, selectedZustaendeAussen, selectedZustaendeInnen, typeChart)
{
	var data= "&swLat="+southWestLat+"&swLng="+southWestLng+"&neLat="+northEastLat+"&neLng="+northEastLng+"&sakralOrt="+sakralFilterByCity+"&bundeslaender="+selectedBundeslaender+"&typ="+selectedTypen+"&lat="+lat+"&lng="+lng+"&radius="+radius+"&zeitraumVon="+zeitraumVon+"&zeitraumBis="+zeitraumBis+"&erbautAm="+erbautAm+"&abgerissenAm="+abgerissenAm+"&nutzungsende="+nutzungsende+"&zustandAussen="+selectedZustaendeAussen+"&zustandInnen="+selectedZustaendeInnen+"&typeChart="+typeChart+"&year="+chronologyYear+"&expert="+varExpert;
	if(data != filterData)
	{
		if(typeChart == '')
		{
			request = getXMLHttpRequestObject() ;
			request.open('POST', '../db/filterSettings.php', true) ;
			request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			//request.setRequestHeader("Content-length", variable.length);
			request.onreadystatechange = function() 
			{
				if(request.readyState == 4)
				{
					//alert(request.responseText);
					parent.getMarkers2(request.responseText);
					pause = false;
					typeChartTrue = true;
					refreshFilters();
				}
			};
			request.send(data);
			filterData = data;
			//setNumbers();
		}
		else
		{
			request = getXMLHttpRequestObject() ;
			request.open('POST', '../db/filterSettings.php', true) ;
			request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			//request.setRequestHeader("Content-length", variable.length);
			request.onreadystatechange = function() 
			{
				if(request.readyState == 4)
				{		
					document.getElementById('typeChart2').src = ""+request.responseText;
					pause = false;
					setNumbers();
				}
			};
			request.send(data);
		}
	}
	else
		pause = false;
}

function getGeocode(strasse, nr, plz, ort)
{
	request = getXMLHttpRequestObject();
    request.open('POST', '../db/Geocode.php', true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //request.setRequestHeader("Content-length", variable.length);
    request.onreadystatechange = function() 
	{
		if(request.readyState == 4)
		{
			var coordinates = request.responseText;
			var coordinatesParts = coordinates.split(",");
			geoLat = coordinatesParts[1];
			geoLng = coordinatesParts[0];
			pause = false;
			refreshFilters();
		}
	};
    request.send("&strasse="+strasse+"&nr="+nr+"&plz="+plz+"&ort="+ort);
}

function getXMLHttpRequestObject()
{
    var requestObject;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer")
	{
        requestObject = new ActiveXObject("Microsoft.XMLHTTP");
    }
	else
	{
        requestObject = new XMLHttpRequest();
    }
    return requestObject;
}

function updateBaustil()
{
	request = getXMLHttpRequestObject();
    request.open('POST', '../db/filterSettings.php', true);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.onreadystatechange = function() 
	{
		if(request.readyState == 4)
		{
			result = request.responseText;
			var sub = result.split(",");
			for(var i=0; i < sub.length; i++)
			{
				appendOption(sub[i]);
				baustiltypen[i+1] = sub[i];
			}
		}
	};
	request.send("&baustilUpdate=update");


}

function appendOption(element)
{
  var elOptNew = document.createElement('option');
  elOptNew.text = ''+element;
  elOptNew.id = ''+element;
  var elSel = document.getElementById('baustil');

  try {
    elSel.add(elOptNew, null);
  }
  catch(ex) {
    elSel.add(elOptNew);
  }
}

function showFilter(element)
{
	document.getElementById(element).style.display = 'block';
	document.getElementById('filtermenue'+element).style.textDecoration = 'underline';
	document.getElementById('filtermenue'+element).style.fontWeight = 'bold';
	document.getElementById('filtermenue'+element).style.color = '#6290B7';
	
	if(element == 'Chronologie' && boolMySlider == true)
	{
		initMySlider();
		boolMySlider = false;
	}
	
	var filterElemente = ['Chronologie','Bundesland','Umkreis','Typen','Ort','ZustandAussen','ZustandInnen','Zeitpunkte'];
	for(var i = 0; i < filterElemente.length; i++)
	{
		if(filterElemente[i] != element)
		{
			document.getElementById(filterElemente[i]).style.display = 'none';
			document.getElementById('filtermenue'+filterElemente[i]).style.textDecoration = 'none';
			document.getElementById('filtermenue'+filterElemente[i]).style.color = 'black';
		}
	}
	refreshFilters();
}

function resetFilter(element)
{
		if(element == 'Zeitpunkte')
			deselectCheckbox();
		if(element == 'Chronologie')
		 {
			chronologyYear = '';
			document.getElementById('filter'+element).src = "../styles/images/checkbox.gif";
		 }
		else
		{
			document.getElementById('form'+element).reset();
			document.getElementById('filter'+element).src = "../styles/images/checkbox.gif";
		}
		showFilter(element);
		refreshFilters();
		if(element == 'Ort')
			searchForCity();
}

function setLocalExpert()
{
	if(varExpert == "")
		varExpert = "expert";
	else
		varExpert = "";
}

function setNumbers()
{
	request = getXMLHttpRequestObject();
    request.open('POST', '../db/getChronology.php', true) ;
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    //request.setRequestHeader("Content-length", variable.length);
    request.onreadystatechange = function() 
	{
		if(request.readyState == 4)
		{
			result = request.responseText;
			var years = result.split(",");
			if(chronologyYear != "")
				document.getElementById('typeChart2').src = "http://chart.apis.google.com/chart?cht=p&chd=t:"+years[0]+","+years[1]+","+years[2]+"&chs=273x75&chco=6290B7&chf=bg,s,65432100&chl=Erbaut ["+years[0]+"]|Abgerissen ["+years[1]+"]|Nutzungsende ["+years[2]+"]";
		}
	};
    if(chronologyYear == "")
		var getYear = "allEAN";
	else
		getYear = chronologyYear;
	request.send("&year="+getYear);
}

function searchForCity()
{
	parent.searchCity();
}

function getOrtsValue()
{
	return document.getElementById('ortsSuche').value;
}

function changeCheckbox(element)
{
		if(element == 'checkboxErbautAm')
		{
			if(checkboxErbautAm == false)
			{
				document.getElementById('checkboxErbautAm').src = "../styles/images/checkboxOk.gif";
				checkboxErbautAm = true;
			}
			else
			{
				document.getElementById('checkboxErbautAm').src = "../styles/images/checkbox.gif";
				checkboxErbautAm = false;
			}
		}
		if(element == 'checkboxAbgerissenAm')
		{
			if(checkboxAbgerissenAm == false)
			{
				document.getElementById('checkboxAbgerissenAm').src = "../styles/images/checkboxOk.gif";
				checkboxAbgerissenAm = true;
			}
			else
			{
				document.getElementById('checkboxAbgerissenAm').src = "../styles/images/checkbox.gif";
				checkboxAbgerissenAm = false;
			}
		}
		if(element == 'checkboxNutzungsende')
		{
			if(checkboxNutzungsende == false)
			{
				document.getElementById('checkboxNutzungsende').src = "../styles/images/checkboxOk.gif";
				checkboxNutzungsende = true;
			}
			else
			{
				document.getElementById('checkboxNutzungsende').src = "../styles/images/checkbox.gif";
				checkboxNutzungsende = false;
			}
		}
		refreshFilters();

}

function deselectCheckbox()
{
				document.getElementById('checkboxErbautAm').src = "../styles/images/checkbox.gif";
				checkboxErbautAm = false;
				document.getElementById('checkboxAbgerissenAm').src = "../styles/images/checkbox.gif";
				checkboxAbgerissenAm = false;
				document.getElementById('checkboxNutzungsende').src = "../styles/images/checkbox.gif";
				checkboxNutzungsende = false;
}

function initOrt()
{
	document.getElementById('Ort').style.display = 'block';
	document.getElementById('filtermenueOrt').style.textDecoration = 'underline';
	document.getElementById('filtermenueOrt').style.fontWeight = 'bold';
	document.getElementById('filtermenueOrt').style.color = '#6290B7';
}