function AktionenOverview() {
	var lthis = this;

	this.aktionenKarte = new AktionenKarte();
	this.aktionenKarte.aktionenListeSichtbar = false;
	this.aktionenKarte.moveEndEvent = function() { lthis.hideStatistik() };
	this.aktionenKarte.infoWindowShownEvent = function() { lthis.hideStatistik() };
	
	this.ortSuchen = null;
	this.aktionSuchen = null;
	
	this.currentYear = document.location.pathname.split('/')[2];
	if (this.currentYear == '') this.currentYear = 'alle';
	
	this.registerCallbacks();
	this.statistikNochSichtbar = true;
}
AktionenOverview.prototype = {
	loadAktionen: function() {
		var lthis = this;
		
		var year = document.location.pathname.split('/')[2];
		makeHTTPRequest('/ajax/aktionen/' + year, '',
    				function(request, success) {
    					var aktionen = request.responseXML.getElementsByTagName('aktion');
    					lthis.aktionenKarte.doLoadAktionen(aktionen); });
	},
	
	registerCallbacks: function() {
		var lthis = this;
		var el = document.getElementById('aktionenListe');
		if (el == null) {
			window.setTimeout(function() { lthis.registerCallbacks(); }, 50);
			return;
		}
		
		this.aktionenKarte.registerCallbacks();
		
		this.findElements();
		this.loadAktionen();
	},
	
	findElements: function() {
		var lthis = this;
		
		var linkList = document.getElementById('yearChangeLinkList');
		var links = linkList.getElementsByTagName('a');
		for (var i = 0; i < links.length; i ++) {
			links[i].onclick = function() {
				lthis.aktionenKarte.savePositionInCookie();
				document.location.href = this.href;
			}
		}
		
		this.ortSuchen = document.getElementById('ortSuchen');
	    this.ortSuchen.onkeypress = function(e) {
	    	var ev = e || window.event;
	    	if (ev.keyCode == 13) 
	    		lthis.aktionenKarte.geocoder.getLocations(lthis.ortSuchen.value,
	    					function(result) { lthis.locationFound(result); });
	    };

		this.aktionSuchen = document.getElementById('aktionSuchen');
	    this.aktionSuchen.onkeypress = function(e) {
	    	var ev = e || window.event;
	    	if (ev.keyCode == 13) {
	    		if (this.value == '') return;
				makeHTTPRequest('/ajax/suche aktionen/' + this.currentYear, urlencode({name: this.value}),
    				function(request, success) {
    						lthis.aktionenKarte.zeigeAktionenSucheResultate(request, success);
    						lthis.hideStatistik();
    				});				
	    	}
	    };
	    document.getElementById('clearAktionsSuche').onclick = function() {
	    	lthis.aktionSuchen.value = '';
	    	lthis.aktionenKarte.loescheSuchresultate();
	    	lthis.setAktionenListeHeader();
	    }
	},
	
	initZoomButtons: function(container) {
		var lthis = this;
		var select = document.createElement('select');
		for (var id in this.zoomPoints) {
			var button = document.createElement('option');
			button.appendChild(document.createTextNode(id));
			select.appendChild(button);
		}
		container.appendChild(select);
		select.onchange = function() { lthis.aktionenKarte.zoomTo(this.value || this.options[this.options.selectedIndex].text); return false; };
	},

	locationFound: function(result) {
		if (result.Status.code != 200 || result.Placemark.length == 0) {
			alert("Ort nicht gefunden.");
			return;
		}
        var coords = result.Placemark[0].Point.coordinates;
		this.aktionenKarte.map.setCenter(new google.maps.LatLng(coords[1], coords[0]), 10);
	},
	
	hideStatistik: function() {
		this.statistikNochSichtbar = false;
		this.aktionenKarte.aktionenListeSichtbar = true;
		
		document.getElementById('aktionenStatistik').style.display = 'none';
		this.aktionenKarte.aktionenListe.style.display = 'block';
		
		this.setAktionenListeHeader();
	},
	
	setAktionenListeHeader: function() {
		var str;
		if (this.statistikNochSichtbar) {
			str = 'Statistik';
		} else if (this.aktionenKarte.aktionenSuchresultate != null) {
			str = 'Suchergebnisse';
		} else {
			str = 'Aktionen in Ausschnitt';
		}
		
		this.aktionenKarte.setAktionenListeHeader(str);
	}
}

var aktionenOverview = new AktionenOverview();

function aktOverviewZoom(where) {
    aktionenOverview.aktionenKarte.zoomTo(where);
    return false;
}
