var Weite = 0;
var Hoehe = 0;

function getAjaxUrl(){
	var projektid = $("#projektid").val();
	return "http://" + projektid + ".map2web.eu";
	//alert ("http://" + projektid + ".map2web.eu");
}

String.prototype.trim = function() {

 // skip leading and trailing whitespace
 // and return everything in between
  var x=this;
  x=x.replace(/^\s*(.*)/, "$1");
  x=x.replace(/(.*?)\s*$/, "$1");
  return x;
}


function Fensterweite () {
  if (window.innerWidth) {
    return window.innerWidth;
  } else if (document.body && document.body.clientWidth) {
    return document.body.clientWidth;
  } else {
    return 0;
  }
}

function Fensterhoehe () {
  if (window.innerHeight) {
    return window.innerHeight;
  } else if (document.body && document.body.clientHeight) {
    return document.body.clientHeight;
  } else {
    return 0;
  }
}
function ieload() {
	if (!window.Weite && document.body && document.body.clientWidth) {
	  window.onresize = ausrichten;
	  Weite = Fensterweite();
	  Hoehe = Fensterhoehe();
	}
}
//richtet alle Elemente beim Laden und ändern der Fenstergröße aus.
var firstLoad = true;
function ausrichten(){
	//alert(Fensterhoehe() + " - " + Hoehe);
   if (Weite != Fensterweite() || Hoehe != Fensterhoehe() || firstLoad == true)
   {
      	firstLoad = false;
      	Weite = Fensterweite();
      	Hoehe = Fensterhoehe();

    	var left = document.getElementById("leftcol").offsetWidth;
    	var mapwidth = Weite - left;
		if(navigator.userAgent.indexOf("MSIE") != -1) mapwidth-=3;
        	document.getElementById("map").style.width = mapwidth + "px"

        if(mapwidth < 500) document.body.style.overflow = "auto";
		else document.body.style.overflow = "hidden";

		var top = document.getElementById("rightheader").offsetHeight;
		var mapheight = Hoehe - top;

    	document.getElementById("map").style.height = mapheight + "px";

	}
}

/* Überwachung von Netscape initialisieren */
if (!window.Weite && window.innerWidth) {
  window.onresize = ausrichten;
  Weite = Fensterweite();
  Hoehe = Fensterhoehe();
}
function iestart(){
/* Überwachung von Internet Explorer initialisieren */
if (!window.Weite && document.body && document.body.clientWidth) {
  window.onresize = ausrichten;
  Weite = Fensterweite();
  Hoehe = Fensterhoehe();
}
}

function osm_getTileURL(bounds) {
    var res = this.map.getResolution();
    var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
    var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
    var z = this.map.getZoom();
    var limit = Math.pow(2, z);

    if (y < 0 || y >= limit) {
        return OpenLayers.Util.getImagesLocation() + "404.png";
    } else {
        x = ((x % limit) + limit) % limit;
        return this.url + z + "/" + x + "/" + y + "." + this.type;
    }
}



function imprint (url) {
 fenster = window.open(url, "Popupfenster", "width=600,height=600,resizable=yes,scrollbars=yes");
 fenster.focus();
 return false;
}


function initKulturMap(extent,min_zoom,max_zoom){

		var tilecache_url = "http://cache.map2web.eu/cache";
			var serverResolutions = [
									1747.17810630859389675607,
									873.58905315429694837803,
									436.79452657714847418902,
									218.39726328857423709451,
									109.19863164428711854725,
									54.59931582214355927363,
									27.29965791107177963681,
									13.64982895553588981841,
									6.82491447776794490920,
									3.41245723888397245460,
									1.70622861944198622730,
									0.85311430972099311365,
									0.42655715486049655683
									];
	        var map;
            var untiled;
            var tiled;

            var pureCoverage = false;
            OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
            OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;

            format = 'image/png';

			var extent = extent.split(',');

			if(extent.length != 4)
			{
				alert('Please insert the max. extent in the following format (x1, y1, x2, y2)');
				return 0;
			}

			var bounds = new OpenLayers.Bounds(
                267706.64152,5098424.07964,714984.236735,5542944.01865
            );


            var restrictedbounds = new OpenLayers.Bounds(
                parseFloat(extent[0]),parseFloat(extent[1]),
                parseFloat(extent[2]),parseFloat(extent[3])
            );

            var options = {
                controls: [],
                maxExtent: bounds,
                restrictedExtent: restrictedbounds,
                maxResolution: serverResolutions[min_zoom],
                minResolution: serverResolutions[max_zoom],
                projection: "EPSG:32633",
                units: 'm'
            };

            map = new OpenLayers.Map('map', options);

            tilecache = new OpenLayers.Layer.TileCache("Karten Layer",
                [tilecache_url],
                "kulturrundgang",
                {
                	"serverResolutions": serverResolutions,
                	"minZoomLevel" : 1,
                	"maxZoomLevel" : 12,
					"format": "image/jpeg"
                }

            );

            map.addLayers([tilecache]);

			var panZoomBar = new OpenLayers.Control.PanZoomBar();
			map.addControl(panZoomBar);

			panZoomBar.div.style.marginTop = "-50px";
			panZoomBar.div.style.marginLeft = "-6px";
        	panZoomBar.div.style.zIndex = "1100";

            map.addControl(new OpenLayers.Control.Navigation());

			map.setBaseLayer(tiled);
            map.zoomToExtent(bounds);
        	return map;

}

function initMap(gisdata){

	        var map;
            var untiled;
            var tiled;

			var projecttype = $("#projecttype");

			var min_zoom = $('#min_zoom').val();
			var max_zoom = $('#max_zoom').val();

			var serverResolutions = [
									3331.57812500000000000000,
									1665.78906250000000000000,
									832.89453125000000000000,
									416.44726562500000000000,
									208.22363281250000000000,
									104.11181640625000000000,
									52.05590820312500000000,
									26.02795410156250000000,
									13.01397705078125000000,
									6.50698852539062500000,
									3.25349426269531250000,
									1.62674713134765625000,
									0.81337356567382812500,
									0.40668678283691406250,
									0.20334339141845703125,
									0.10167169570922851562,
									0.05083584785461425781,
									0.02541792392730712891,
									0.01270896196365356445,
									0.00635448098182678223
									];


			var serverResolutions_at = [
									1747.17810630859389675607,
									873.58905315429694837803,
									436.79452657714847418902,
									218.39726328857423709451,
									109.19863164428711854725,
									54.59931582214355927363,
									27.29965791107177963681,
									13.64982895553588981841,
									6.82491447776794490920,
									3.41245723888397245460,
									1.70622861944198622730,
									0.85311430972099311365,
									0.42655715486049655683
									];


			var tilecache_url = "http://cache.map2web.eu/cache";

            var pureCoverage = false;
            OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
            //OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
	OpenLayers.DOTS_PER_INCH = 96;
            format = 'image/png';

			var extent = $('#extent').val().split(',');
			var rendering_extent = $('#rendering_extent').val().split(',');
			var projection = $('#projection').val();

			if(projection != 'EPSG:32634'){
				serverResolutions = serverResolutions_at;
				var karte = "austria";
			}
			else{
				var karte = "romania";
			}

			if(projecttype.val() == 'simple')
			{
				var karte = "austria-cc";
			}
			

			var projektid = $('#projektid').val();

			if(extent.length != 4)
			{
				alert('Please insert the max. extent in the following format (x1, y1, x2, y2)');
				return 0;
			}

			//Bounds Österreich

			var bounds = new OpenLayers.Bounds(
                parseFloat(rendering_extent[0]),parseFloat(rendering_extent[1]),
                parseFloat(rendering_extent[2]),parseFloat(rendering_extent[3])
            );


            var restrictedbounds = new OpenLayers.Bounds(
                parseFloat(extent[0]),parseFloat(extent[1]),
                parseFloat(extent[2]),parseFloat(extent[3])
            );

            var options = {
                controls: [],
                maxExtent: bounds,
                restrictedExtent: restrictedbounds,
                maxResolution: serverResolutions[min_zoom],
                minResolution: serverResolutions[max_zoom],
                projection: projection,
                units: 'm'
            };

            map = new OpenLayers.Map('map', options);

            tilecache2 = new OpenLayers.Layer.TileCache("Karten Layer",
                [tilecache_url],
                karte,
                {
                	"serverResolutions": serverResolutions,
                	"minZoomLevel" : 7,
                	"maxZoomLevel" : 12
                }

            );

            ortho_layer2 = new OpenLayers.Layer.TileCache("Ortho Layer",
                [tilecache_url],
                "ortho-austria",
                {
                	"serverResolutions": serverResolutions,
                	"minZoomLevel" : 7,
                	"maxZoomLevel" : 12,
					"format": "image/jpeg"
                }
            );

            schwechat_layer2 = new OpenLayers.Layer.TileCache("Projekt Layer",
                [tilecache_url],
                projektid,
                {
                	"serverResolutions": serverResolutions,
                	"minZoomLevel" : 7,
                	"maxZoomLevel" : 12,
					"alpha":true,
					"isBaseLayer": false,
					"format": "image/png"
                },
                {"isBaseLayer": false}

            );

            var measureLayer = new OpenLayers.Layer.Vector("Measure Layer");

            map.addLayers([tilecache2,schwechat_layer2,ortho_layer2,measureLayer]);



            //map.addControl(new OpenLayers.Control.Navigation());
            //map.addControl(new OpenLayers.Control.Scale('scale'));
            map.addControl(new OpenLayers.Control.ScaleLine());
            //map.addControl(new OpenLayers.Control.MousePosition('location'));
        	//map.addControl(new OpenLayers.Control.LayerSwitcher());

	var panZoomBar = new OpenLayers.Control.PanZoomBar();
	map.addControl(panZoomBar);
	for (var p = 0; p < 4; p++) {
	    panZoomBar.buttons[p].style.display = 'none';
	}
	panZoomBar.div.style.marginTop = "-50px";
	panZoomBar.div.style.marginLeft = "-6px";
        panZoomBar.div.style.zIndex = "1100";

			OpenLayers.Control.CustomNavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {

			    initialize: function(options) {
			        OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);
			        this.addControls([
			          new OpenLayers.Control.Navigation({'title':$.i18n('Map2Web', 'verschieben')}),
			          new OpenLayers.Control.ZoomBox({'title':$.i18n('Map2Web', 'rechteckzoom'), alwaysZoom:true})
			        ]);
					this.displayClass = 'Map2WebToolbar';
			    },

			    draw: function() {
			        var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
			        this.activateControl(this.controls[0]);
			        return div;
			    }

			});

			OpenLayers.Control.CustomNavToolbarLayerSwitcher = OpenLayers.Class(OpenLayers.Control.Panel, {

			    initialize: function(options) {
			        OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);
					this.displayClass = 'Map2WebLayerSwitcher';
					//this.activate();
			    },

			    draw: function() {
			        var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);
			        this.activateControl(this.controls[0]);
			        return div;
			    }

			});

	       var lineedit = new OpenLayers.Control.DrawFeature(
                measureLayer, OpenLayers.Handler.Path,
                {
                   handlerOptions: {freehand: false, multi: true},
                   displayClass: "olControlDrawFeatureLine",
                   'title':$.i18n('Map2Web', 'längenmessung'),
                   featureAdded: function(){
                   		if(this.layer.features.length > 1)
                   			this.layer.removeFeatures(this.layer.features[0]);
                   		printLineLength(this);
                   }
                }
            );

	       var areaedit = new OpenLayers.Control.DrawFeature(
                measureLayer, OpenLayers.Handler.Polygon,
                {
                   handlerOptions: {freehand: false, multi: true},
                   displayClass: "olControlDrawFeaturePolygon",
                   'title':$.i18n('Map2Web', 'flächenmessung'),
                   featureAdded: function(){
                   		if(this.layer.features.length > 1)
                   			this.layer.removeFeatures(this.layer.features[0]);
                   		printAreaSize(this);
                   }
                }
            );

			var button_zoom_max_extent = new OpenLayers.Control.Button({
                            'title':$.i18n('Map2Web', 'zoomtomaxextent'),
			    displayClass: "olControlZoomToMaxExtent",
			    trigger: function(){
	            	map.zoomToExtent(restrictedbounds);
			    }
			});


			var panel = new OpenLayers.Control.CustomNavToolbar();

            
            if(projecttype.val() != 'simple')
    			panel.addControls([lineedit,areaedit,button_zoom_max_extent]);
            else
     			panel.addControls([button_zoom_max_extent]);           

        	map.addControl(panel);

			//--- Stadtplan/Luftbild ---
			if(projecttype.val() != 'county' && $('#luftbild').val() != 'False') 
			{

				var button_stadtplan = new OpenLayers.Control.Button({
				    displayClass: $.i18n('Map2Web', 'Stadtplan'), 
				    trigger: function(){
				    	map.setBaseLayer(tilecache2);
				    	this.activate();
				    	button_luftbild.deactivate();
				    }
				});

				var button_luftbild = new OpenLayers.Control.Button({
				    displayClass: $.i18n('Map2Web', 'Luftbild'),
				    trigger: function(){
				    	map.setBaseLayer(ortho_layer2);
				    	this.activate();
				    	button_stadtplan.deactivate();
				    }
				});

				var panelLayerSwitcher = new OpenLayers.Control.CustomNavToolbarLayerSwitcher();
				panelLayerSwitcher.addControls([button_stadtplan,button_luftbild]);

        		map.addControl(panelLayerSwitcher);
			}
			else
			{
				//schwechat_layer2.setOpacity(1.0);

			}



			if($('#start_extent').val() != '' && $('#start_extent').val() != null)
			{
				var start_extent = $('#start_extent').val().split(',');

	            var startextent = new OpenLayers.Bounds(
	                parseFloat(start_extent[0]),parseFloat(start_extent[1]),
	                parseFloat(start_extent[2]),parseFloat(start_extent[3])
	            );

	            map.zoomToExtent(startextent);
			}
			else
			{
				map.zoomToExtent(restrictedbounds);
			}





        	return map;




}

function calculateItems()
{
	var itemheight = 23;
	var listHeight;

	if(navigator.userAgent.indexOf("MSIE 6.0") != -1)  listHeight = document.body.clientHeight - 233 -52;
	else listHeight = $(document).height() - 233 -52;

	//listHeight = $(document).height() - 233 -52;

	var gezeigteAnzahl = Math.floor(listHeight / itemheight)-1;

	return gezeigteAnzahl;

}

function printLineLength(feature)
{
	var formatter = new OpenLayers.Format.GeoJSON();
	var gisdata = formatter.write(feature.layer.features[0].geometry);

	$.post("/projekt/calculateLineLength", {'gisdata':gisdata},
			function(data)
			{
				var laenge = parseFloat(data);
				if(laenge > 1000)
				{
					laenge = laenge / 1000;
					$.jGrowl(laenge.toFixed(3) + " km",
						{
							'sticky':true,
							close:function()
							{
								resetMeasureLayer();
							}
						}
					);
				}
				else
				{
					$.jGrowl(laenge.toFixed(2) + " m",
						{
							'sticky':true,
							close:function()
							{
								resetMeasureLayer();
							}
						}
					);
				}
			}
		,'json');
}

function printAreaSize(feature)
{
	var formatter = new OpenLayers.Format.GeoJSON();
	var gisdata = formatter.write(feature.layer.features[0].geometry);

	$.post("/projekt/calculateAreaSize", {'gisdata':gisdata},
			function(data)
			{
				var flaeche = parseFloat(data);
				if(flaeche > 1000000)
				{
					flaeche = flaeche / 1000000;
					$.jGrowl(flaeche.toFixed(3) + " km²",
						{
							'sticky':true,
							close:function()
							{
								resetMeasureLayer();
							}
						}
					);
				}
				else
				{
					$.jGrowl(flaeche.toFixed(2) + " m²",
						{
							'sticky':true,
							close:function()
							{
								resetMeasureLayer();
							}
						}
					);
				}
			}
		,'json');
}

function resetMeasureLayer(){

	try
	{
		var measureLayer = map.getLayersByName('Measure Layer')[0];
		measureLayer.removeFeatures(measureLayer.features);
	}
	catch(ex)
	{

	}

}

function initVectorLayer(map){

	vectorLayer = map.getLayersByName('Vector Layer')[0];
	try
	{
		map.removeLayer(vectorLayer);
	}
	catch(ex)
	{

	}

	var vectorLayer = new OpenLayers.Layer.Vector("Vector Layer");

    selectControl = new OpenLayers.Control.SelectFeature(vectorLayer,
        {onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
    map.addControl(selectControl);
	selectControl.activate();

    function onPopupClose(evt) {
        selectControl.unselect(selectedFeature);
    }

    function onFeatureSelect(feature) {
        selectedFeature = feature;

	
		$.post( getAjaxUrl() + "/projekt/getDetailInformationHtml",{'id':feature.objektid},
			function(data)
			{
		        popup = new OpenLayers.Popup.FramedCloud("chicken",
                	feature.geometry.getBounds().getCenterLonLat(),
                	null,
                	data,
                    null, true, onPopupClose);
		        feature.popup = popup;
		        map.addPopup(popup);
			}
		);
    }

    function onFeatureUnselect(feature) {
        map.removePopup(feature.popup);
        feature.popup.destroy();
        feature.popup = null;
    }


	return vectorLayer;

}

function printStrassen(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getStreets",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start,'projection':$('#projection').val()},
		function(data)
		{

			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();

			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showStreet','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showStreet','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);

		}
	,'json');
}


function printObjekte(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getObjekte",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start},
		function(data)
		{
			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();

			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showObjekt','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showObjekt','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);
		}
	,'json');

}




function drawOrte(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getOrteList",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start},
		function(data)
		{
			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();
			$('#schlagwortbaum').hide();
			$('#ergebnisliste').show();
			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showOrte','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showOrte','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);
		}
	,'json');
}

function drawCTO(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getTouristicObjectivesList",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start},
		function(data)
		{
			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();
			$('#schlagwortbaum').hide();
			$('#ergebnisliste').show();
			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showCTO','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showCTO','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);
		}
	,'json');
}

function drawNationalParcs(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getNationalParcsList",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start},
		function(data)
		{
			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();
			$('#schlagwortbaum').hide();
			$('#ergebnisliste').show();
			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showNationalParc','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showNationalParc','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);
		}
	,'json');
}





function drawWirtschaft(id,querystring,start,pagesize)
{
	$.post(getAjaxUrl() + "/projekt/getWirtschaft",{'id':id,'querystring':querystring,'pagesize':pagesize,'start':start},
		function(data)
		{
			$('#suche_auswahl_erweitert').show();
			$('#leftbox').hide();
			$('#ergebnisliste').empty();

			$('#suchergebnis_zahl').text(data.anzahl);
			$('#suchergebnisse_anzahl').val(data.anzahl);

			for(i=0;i<=data.objekte.length-1;i++)
			{
				if(i%2 == 0)
					var listelelement = $.LI({'class':'list1'},
											$.A({'class':'showWirtschaft','id':data.objekte[i].id},data.objekte[i].name)
										);
				else
					var listelelement = $.LI({'class':'list2'},
											$.A({'class':'showWirtschaft','id':data.objekte[i].id},data.objekte[i].name)
										);
				$('#ergebnisliste').append(listelelement);
				$(listelelement).show();
			}
			printPagingNumbers(start,pagesize);
		}
	,'json');

}



function printPagingNumbers(start,pagesize)
{
	$("#paging").empty();


	var maxpages = 4;
	var seitenstart;
	var page = start/pagesize;
	var gesamtAnzahl = parseInt($('#suchergebnisse_anzahl').val());
	var seitenanzahl = Math.floor(gesamtAnzahl/pagesize);
	var seitenende;

	if(gesamtAnzahl <= pagesize){
		$('#pager').hide();
	}
	else{
		$('#pager').show();
	}

	if(seitenanzahl <= maxpages) {
		seitenstart = 0;
		seitenende = seitenanzahl;

	}
	else {
		if(page < 3) {
			seitenstart = 0;
			seitenende = maxpages;
		}
		else if(page > seitenanzahl - 3) {
			seitenstart = seitenanzahl - maxpages + 1;
			seitenende = seitenanzahl;
		}
		else {
			seitenstart = page - 2;
			seitenende = page + 2;
		}

	}

	for(var i=seitenstart;i<=seitenende;i++)
	{
		if(i==page)
		{
			var anker = $.A({'class':'pagingnumber aktuell'},
						i+1
						);
		}
		else
		{
			var anker = $.A({'class':'pagingnumber'},
			i+1
			);
		}

		$("#paging").append(anker);
	}
}


function drawFeatures(geom, layer,zoomin){
	var formatter = new OpenLayers.Format.GeoJSON();
	var vectorLayer = layer;

	if(geom.type == 'MultiLineString' || geom.type == 'LineString')
	{
		var style_dyn = {
			'strokeColor': '#' + geom.color,
			'strokeWidth': 4,
			'pointRadius': 4,
			'pointerEvents': "visiblePainted",
			'strokeOpacity': 0.8
		};

		var vector = formatter.read(geom);
		vector[0].style =  style_dyn;
		vector[0].objektid = geom.objektid;
		vectorLayer.addFeatures(vector);
	}
	else if(geom.type == 'Point')
	{
		var feature = formatter.read(geom);
        size = new OpenLayers.Size(12,12);

		var iconpath = "";
		var size = 14;

		if(geom.icon == null)
		{
			iconpath = "/js/images/marker2.gif";
			var size = 10;
		}
		else
		{
			iconpath=geom.icon;
		}

		feature[0].style={
    	    		'pointRadius': size,
			'externalGraphic': iconpath,
			'graphicWidth':size,
			'graphicHeight':size
		}
		feature[0].objektid = geom.objektid;
		vectorLayer.addFeatures(feature);
		if(zoomin==true)
		{
			removeAllPopups();
			$.post( getAjaxUrl() + "/projekt/getDetailInformationHtml",{'id':feature[0].objektid},
				function(data)
				{
				popup = new OpenLayers.Popup.FramedCloud("chicken",
		        	feature[0].geometry.getBounds().getCenterLonLat(),
		        	null,
		        	data,
		            	null, true,
				function()
				{
					map.removePopup(popup);
				}
				);
				feature.popup = popup;
				map.addPopup(popup);
				}
			);

			var x = feature[0].geometry.x;
			var y = feature[0].geometry.y;

			if(x != 0 || y != 0)
			{
		        	var newbounds = new OpenLayers.Bounds(
		                    x-400, y-400,
		                    x+400, y+400
		                );
				map.zoomToExtent(newbounds);
			}
		}

	}
	else if(geom.type == 'MultiPolygon' || geom.type == 'Polygon')
	{
		var feature = formatter.read(geom);

		feature[0].style = {
			'strokeColor': '#' + geom.color,
			'fillColor': '#' + geom.color,
			'strokeWidth': 1,
			'pointerEvents': "visiblePainted",
			'strokeOpacity': 1,
			'fillOpacity': 0.5
		};
		feature[0].objektid = geom.objektid;
		vectorLayer.addFeatures(feature);
	}


}


function removeAllPopups()
{
	var popups = map.popups;
	for(var i=0;i<=popups.length-1;i++)
	{
		map.removePopup(popups[i]);
	}
}

function onPopupClose(evt) {
    function onFeatureUnselect(feature) {
        map.removePopup(feature.popup);
        feature.popup.destroy();
        feature.popup = null;
    }
}

function printHouseNumbers(map,here)
{

	if($(here).val() != '-1')
	{

		var vectorLayer = map.getLayersByName('Vector Layer')[0];

        var features = new Array();        

		for(var l=0;l<=vectorLayer.features.length-1;l++){
			if(vectorLayer.features[l].vtype == 'hnr')
            {
				features.push(vectorLayer.features[l]);
            }

		}
        vectorLayer.removeFeatures(features);


		$.post(getAjaxUrl() + "/projekt/getHousenumberGisData",{'id':$(here).val(),'projection':$('#projection').val()},
			function(data)
			{
            
				var formatter = new OpenLayers.Format.GeoJSON();
                
				for(var i=0;i<=data.geometries.length-1;i++)
				{
	                var vector = formatter.read(data.geometries[i]);
			
                    if(data.geometries[i].type == 'Point')
					{
						vector[0].style={
                    	    'pointRadius': 10,
							'externalGraphic': '/js/images/marker2.gif',
							'graphicWidth':10,
							'graphicHeight':10
               			};
					}
                    
	                if(data.geometries[i].type == 'MultiPolygon' || data.geometries[i].type == 'Polygon')
	                {
		                vector[0].style = {
			                'strokeColor': '#0000FF',
			                'fillColor': '#0000FF',
			                'strokeWidth': 1,
			                'pointerEvents': "visiblePainted",
			                'strokeOpacity': 1,
			                'fillOpacity': 0.5
		                };
                        vector[0].vtype = 'hnr';
	                }
                    
					vector[0].vtype = 'hnr';
	                vectorLayer.addFeatures(vector);

				}
			}
		,'json');

	}
	else
	{
		var vectorLayer = map.getLayersByName('Vector Layer')[0];

		for(l=0;l<=vectorLayer.features.length-1;l++){
			if(vectorLayer.features[l].vtype == 'hnr')
				vectorLayer.removeFeatures(vectorLayer.features[l]);
		}

	}

}


var map = null;
var map_mode = 'standard';
var navigationList = [];


window.onload = function() {
	map = initMap();

	var pfad = $('#pfad').val();
	var object_path = pfad.split('/').reverse();
    //--- Nur Objektanzeige, keine Menüs aufklappen ---
    if(object_path.length == 1)
    {
	    $.post(getAjaxUrl() + "/projekt/getWirtschaftGisData",{'id':object_path[0]},
		    function(data)
		    {
			    var style_blue = {
	        			'pointRadius': 10,
				    'externalGraphic': '/js/images/marker2.gif',
				    'graphicWidth':10,
				    'graphicHeight':10
			    };

			    initVectorLayer(map);

			    var gisdata = data;

		    var vectorLayer = initVectorLayer(map);
                	map.addLayers([vectorLayer]);

	            function onPopupClose(evt) {
	                selectControl.unselect(selectedFeature);
	            }

		    drawFeatures(gisdata,vectorLayer,true);
		    }

	    ,'json');        
    }
    //--- Anzeige inklusive Menüs ---
    else
    {
	    for(var i=0;i<=object_path.length-2;i++)
	    {
		    navigationList.push("li#" + object_path[i]);
	    }

	    switchModules(object_path[object_path.length-1]);


    }
	    $('#map').height($(window).height()-102);
	    $('#map').width($(window).width()-234);

	if($('#start_extent').val() != '' && $('#start_extent').val() != null)
	{
		var start_extent = $('#start_extent').val().split(',');

        var startextent = new OpenLayers.Bounds(
            parseFloat(start_extent[0]),parseFloat(start_extent[1]),
            parseFloat(start_extent[2]),parseFloat(start_extent[3])
        );

        var center = startextent.getCenterLonLat();
        map.setCenter(center,$('#max_zoom').val());
        map.zoomToExtent(startextent,false);
	}

}

function printWirtschaft(id){

			var extent = map.getExtent().toBBOX();
			var lon = map.getExtent().getCenterLonLat().lon;
			var lat = map.getExtent().getCenterLonLat().lat;
			var zoom = map.getZoom();
			var ooid = id;
			neuesFenster = window.open(getAjaxUrl() + "/projekt/viewprint/" + $('#objektid').val() + "?extent=" + extent + "&lonlat=" + lon + "," + lat + "&zoom=" + zoom + "&ooid=" + ooid+ "&mode=wirtschaft", "Druckfenster");
			neuesFenster.focus();
}

function printObjekt(id){

			var extent = map.getExtent().toBBOX();
			var lon = map.getExtent().getCenterLonLat().lon;
			var lat = map.getExtent().getCenterLonLat().lat;
			var zoom = map.getZoom();
			var ooid = id;
			neuesFenster = window.open(getAjaxUrl() + "/projekt/viewprint/" + $('#objektid').val() + "?extent=" + extent + "&lonlat=" + lon + "," + lat + "&zoom=" + zoom + "&ooid=" + ooid + "&mode=objekt", "Druckfenster");
			neuesFenster.focus();
}


function switchModules(id)
{
		$("#reiter").find('li').removeClass('active');

		var tabs = $("#reiter").find('li');

		for(var i=0;i<=tabs.length-1;i++)
		{
			if($($(tabs[i]).find('a')[0]).attr('id') == id)
				$(tabs[i]).addClass('active');
		}
		$("#hauptnavi").hide();
		removeAllPopups();
		resetMeasureLayer();


		//--- Strassen Hasunummern Suche ---
		if(id==1)
		{
			if(map_mode=='kultur')
			{
				$('#map').empty();
				map = initMap();
			}

			kartenLayer = map.getLayersByName('Karten Layer')[0];
			kartenLayer.setOpacity(1);
			//var point = map.getControl("OpenLayers.Control.DrawFeature_40");
			//point.deactivate();

			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);

			$("#treffpunktmailer").hide();
			$("#leftbox").show();
			$("#suche_auswahl").show();
			$("#ergebnisliste").show();
			$("#schlagwortbaum").hide();
			$("#images").slideDown('slow');
		}
		//--- Verkehrsmodul ---
		else if(id==2)
		{
			if(map_mode=='kultur')
			{
				$('#map').empty();
				map = initMap();
			}

			kartenLayer = map.getLayersByName('Karten Layer')[0];
			kartenLayer.setOpacity(0.6);
			//var point = map.getControl("OpenLayers.Control.DrawFeature_40");
			//point.deactivate();

			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);

			$("#treffpunktmailer").hide();
			$("#leftbox").hide();
			//$("#suche_auswahl").hide();
			$("#ergebnisliste").hide();
			$("#pager").hide();
			$("#suche_auswahl_erweitert").hide();
			$("#schlagwortbaum").show();
			$("#images").fadeOut();
			var here = $(this);

			$.post(getAjaxUrl() + "/verkehrsmodul/getSchlagwortBaum",{'id':$('#objektid').val()},
				function(data)
				{
					var ul = $('.ebene1')
					ul.empty();
					if(data.objs.length > 0)
					{
						for(i=0;i<=data.objs.length-1;i++)
						{
							var element = 	$.LI({'id':data.objs[i].id},
												$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
											);
							$(ul).append(element);

						}

						var vectorLayer = initVectorLayer(map);

            			map.addLayers([vectorLayer]);
						var formatter = new OpenLayers.Format.GeoJSON();

						if(navigationList.length>0)
							navigateList();

					}
				}
			,'json');



		}
		//--- Treffpunktmailer ---
		else if(id==3)
		{
			if(map_mode=='kultur')
			{
				$('#map').empty();
				map = initMap();
			}

			kartenLayer = map.getLayersByName('Karten Layer')[0];
			kartenLayer.setOpacity(1);
			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);


			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);


			$("#leftbox").hide();
			//$("#suche_auswahl").hide();
			$("#ergebnisliste").hide();
			$("#pager").hide();
			$("#suche_auswahl_erweitert").hide();
			$("#schlagwortbaum").hide();
			$("#images").fadeOut();
			$("#treffpunktmailer").show();

			var point = map.getControl("OpenLayers.Control.DrawFeature_40");
			point.activate();



		}
		//--- Orte ---
		else if(id==-1)
		{
			kartenLayer = map.getLayersByName('Karten Layer')[0];

			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);

			$("#treffpunktmailer").hide();
			$("#leftbox").hide();
			//$("#suche_auswahl").hide();
			$("#ergebnisliste").hide();
			$("#pager").hide();
			$("#suche_auswahl_erweitert").hide();
			$("#schlagwortbaum").show();
			$("#images").fadeOut();

			var radios = $('.suche_auswahl');
			for(var i=0;i<=radios.length;i++)
			{
				if($(radios[i]).val() == "-1")
				{
					$(radios[i]).attr('checked','checked');
				}
				else
				{
					$(radios[i]).removeAttr('checked');
				}
			}

			var here = $(this);

			$.post(getAjaxUrl() + "/projekt/getOrte",{'id':'-1','portalid':$('#projektid').val()},
				function(data)
				{
					var ul = $('.ebene1')
					ul.empty();
					if(data.objs.length > 0)
					{
						for(i=0;i<=data.objs.length-1;i++)
						{
							var element = 	$.LI({'id':data.objs[i].id},
												$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
											);
							$(ul).append(element);

						}

						var vectorLayer = initVectorLayer(map);

            			map.addLayers([vectorLayer]);
						var formatter = new OpenLayers.Format.GeoJSON();

						if(navigationList.length>0)
							navigateList();

					}
				}
			,'json');
		}
		//--- Touristic Objectives ---
		else if(id==-2)
		{
			kartenLayer = map.getLayersByName('Karten Layer')[0];

			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);

			$("#treffpunktmailer").hide();
			$("#leftbox").hide();
			//$("#suche_auswahl").hide();
			$("#ergebnisliste").hide();
			$("#pager").hide();
			$("#suche_auswahl_erweitert").hide();
			$("#schlagwortbaum").show();
			$("#images").fadeOut();
			var here = $(this);

			var radios = $('.suche_auswahl');
			for(var i=0;i<=radios.length;i++)
			{
				if($(radios[i]).val() == "-2")
				{
					$(radios[i]).attr('checked','checked');
				}
				else
				{
					$(radios[i]).removeAttr('checked');
				}
			}


			$.post(getAjaxUrl() + "/projekt/getTouristicObjectives",{'id':'-1','portalid':$('#projektid').val()},
				function(data)
				{
					var ul = $('.ebene1')
					ul.empty();
					if(data.objs.length > 0)
					{
						for(i=0;i<=data.objs.length-1;i++)
						{
							var element = 	$.LI({'id':data.objs[i].id},
												$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
											);
							$(ul).append(element);

						}

						var vectorLayer = initVectorLayer(map);

            			map.addLayers([vectorLayer]);
						var formatter = new OpenLayers.Format.GeoJSON();

						if(navigationList.length>0)
							navigateList();

					}
				}
			,'json');
		}
		//--- Nationalparks ---
		else if(id==-3)
		{
			kartenLayer = map.getLayersByName('Karten Layer')[0];

			var listHeight = $(document).height() - 233 -52;
			$('#schlagwortbaum').css('height',listHeight);

			$("#treffpunktmailer").hide();
			$("#leftbox").hide();
			//$("#suche_auswahl").hide();
			$("#ergebnisliste").hide();
			$("#pager").hide();
			$("#suche_auswahl_erweitert").hide();
			$("#schlagwortbaum").show();
			$("#images").fadeOut();
			var here = $(this);

			var radios = $('.suche_auswahl');
			for(var i=0;i<=radios.length;i++)
			{
				if($(radios[i]).val() == "-3")
				{
					$(radios[i]).attr('checked','checked');
				}
				else
				{
					$(radios[i]).removeAttr('checked');
				}
			}

			$.post(getAjaxUrl() + "/projekt/getNationalParks",{'id':'-1','portalid':$('#projektid').val()},
				function(data)
				{
					var ul = $('.ebene1')
					ul.empty();
					if(data.objs.length > 0)
					{
						for(i=0;i<=data.objs.length-1;i++)
						{
							var element = 	$.LI({'id':data.objs[i].id},
												$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
											);
							$(ul).append(element);

						}

						var vectorLayer = initVectorLayer(map);

            			map.addLayers([vectorLayer]);
						var formatter = new OpenLayers.Format.GeoJSON();

						if(navigationList.length>0)
							navigateList();

					}
				}
			,'json');
		}    
		else if(id>3)
		{
			if($(this).hasClass('kulturmodul'))
			{
				$('#map').empty();
				var here = $(this);
				$.post(getAjaxUrl() + "/kulturmodul/getExtent",{'id':id},
					function(data)
					{
						map_mode = 'kultur';
						map = initKulturMap(data.max_extent,data.min_zoom,data.max_zoom);
					}
				,'json');



			}
			else
			{
				if(map_mode=='kultur')
				{
					$('#map').empty();
					map = initMap();
				}
				kartenLayer = map.getLayersByName('Karten Layer')[0];
				kartenLayer.setOpacity(1);
				//var point = map.getControl("OpenLayers.Control.DrawFeature_40");
				//point.deactivate();

				var listHeight = $(document).height() - 233 -52;
				$('#schlagwortbaum').css('height',listHeight);
/*				
var listHeight = $(document).height() - 156;
   				$('#schlagwortbaum').css('height',listHeight);
*/
				$("#treffpunktmailer").hide();
				$("#leftbox").hide();
				//$("#suche_auswahl").hide();
				$("#ergebnisliste").hide();
				$("#pager").hide();
				$("#suche_auswahl_erweitert").hide();
				$("#schlagwortbaum").show();
				$("#images").fadeOut();
				var here = $(this);

				var ul = $('.ebene1')
				ul.empty();

				$.post(getAjaxUrl() + "/wirtschaftmodul/getSchlagwortBaum",{'id':id,'gisdata':false},
					function(data)
					{
						if(data.objs.length > 0)
						{
							for(i=0;i<=data.objs.length-1;i++)
							{



							//--- Bild vorhanden ---
							if(data.objs[i].images.length > 0)
							{
								firstImage = data.objs[i].images[0];
								var element = 	$.LI({'id':data.objs[i].id},
													$.DIV({'class':'naviImage'},
														$.IMG({'src':firstImage})
													),
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
														$.SPAN({'class':'naviHeadline'},data.objs[i].name),
														$.SPAN({'class':'naviText'},data.objs[i].adresse)
													)
											);
							}
							//--- kein Bild vorhanden ---
							else
							{
								var element = 	$.LI({'id':data.objs[i].id},
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
														$.SPAN({'class':'naviHeadline'},data.objs[i].name),
														$.SPAN({'class':'naviText'},data.objs[i].adresse)
													)
											);
							}
							$(ul).append(element);













		

							}

							var vectorLayer = initVectorLayer(map);

	            			map.addLayers([vectorLayer]);
							var formatter = new OpenLayers.Format.GeoJSON();

							if(navigationList.length>0)
								navigateList();

						}
					}
				,'json');
			}


		}
}



function navigateList()
{

	var here = $(navigationList.pop()).find('a');



	if(here.parent().hasClass('expanded'))
	{
		var vectorLayer = initVectorLayer(map);
        map.addLayers([vectorLayer]);
		here.parent().find('ul').remove();
		here.parent().removeClass('expanded');
		return false;
	}
	else
	{

	here.append($($.IMG({'src':'/js/images/ajax-loader.gif','id':'ajax-loading'})).css('margin-left',10));
		var vectorLayer = initVectorLayer(map);
        map.addLayers([vectorLayer]);
		if(here.hasClass('verkehrsmodul_ordner') || here.hasClass('verkehrsmodul') || here.hasClass('verkehrsmodul_linie') || here.hasClass('verkehrsmodul_flaeche') || here.hasClass('verkehrsmodul_punkt'))
			var url = getAjaxUrl() + "/verkehrsmodul/getSchlagwortBaum";
		else
			var url = getAjaxUrl() + "/wirtschaftmodul/getSchlagwortBaum";



		$.post(url,{'id':here.attr('id')},
			function(data)
			{
				//--- Eigene Gemoetrie falls vorhanden anzeigen ---
				if(data.selfgeometries != null)
				{
					if(data.selfgeometries.geometries.length == 1 )
					{
						drawFeatures(data.selfgeometries.geometries[0],vectorLayer,true);
					}
					else
					{
						for(var i=0;i<=data.selfgeometries.geometries.length-1;i++)
						{
							drawFeatures(data.selfgeometries.geometries[i],vectorLayer,false);
						}
					}
				}

				//--- Geometrie der untergeordneten Objekte anzeigen ---
				if(data.objs.length > 0)
				{
					var ul = $.UL({});

					for(var i=0;i<=data.objs.length-1;i++)
					{
						if(data.objs[i].type == 'wirtschaft')
						{


							var fistimage;
							var images = [];
							//--- Bild vorhanden ---
							if(data.objs[i].images.length > 0)
							{
								firstImage = data.objs[i].images[0];
								var element = 	$.LI({'id':data.objs[i].id},
													$.DIV({'class':'naviImage'},
														$.IMG({'src':firstImage})
													),
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
														$.SPAN({'class':'naviHeadline'},data.objs[i].name),
														$.SPAN({'class':'naviText'},data.objs[i].adresse)
													)
											);
							}
							//--- kein Bild vorhanden ---
							else
							{
								var element = 	$.LI({'id':data.objs[i].id},
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
														$.SPAN({'class':'naviHeadline'},data.objs[i].name),
														$.SPAN({'class':'naviText'},data.objs[i].adresse)
													)
											);
							}
							$(ul).append(element);

						}
						// --- Verkehr od. Schlagwort ---
						else
						{

							if(data.objs[i].type == 'verkehrsmodul_flaeche' || data.objs[i].type == 'verkehrsmodul_linie')
							{
								var div = $.DIV({'class':'verkehrfarbe'});
								$(div).css('background-color','#'+data.objs[i].color);
								var element = 	$.LI({'id':data.objs[i].id},
													div,
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
												);
							}
							else
							{
								var element = 	$.LI({'id':data.objs[i].id},
													$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
												);
							}
							$(ul).append(element);
						}
					}
					here.parent().append(ul);
					here.parent().addClass('expanded');

					for(i=0;i<=data.objs.length-1;i++)
					{
						if(data.objs[i].allchilds.geometries != null && data.objs[i].allchilds.geometries.length > 0)
						{
							var geom = data.objs[i].allchilds.geometries;
							for(var l=0;l<=geom.length-1;l++)
							{
								drawFeatures(geom[l],vectorLayer);
							}
						}
					}

				}
				$('#ajax-loading').remove();

				if(navigationList.length > 0)
					navigateList();

			}
		,'json');
		return false;
	}



}


$(document).ready(function(){

	$.i18n($('html').attr('lang'));

	ausrichten();

	$(window).resize(
		function()
		{
			//alert('resized');
			$('#map').height($(window).height()-102);
			$('#map').width($(window).width()-234);
		}

	);

	$('.objekteListe').each(
		function()
		{
			var here = $(this);
			$.post(getAjaxUrl() + "/wirtschaftmodul/getSchlagwortBaum",{'id':here.attr('id')},
				function(data)
				{
					for(i=0;i<=data.length-1;i++)
					{
						var element = 	$.LI({'id':data[i].id},
											$.A({'id':data[i].id,'class':'navigate','href':'#'},data[i].name,' [',data[i].childs,']')
										);
						here.append(element);
					}
				}
			,'json');
		}
	);

	$('.navigate').live('click',
		function()
		{

			var here = $(this);


			if(here.parent().hasClass('expanded'))
			{
				var vectorLayer = initVectorLayer(map);
	            map.addLayers([vectorLayer]);
				here.parent().find('ul').remove();
				here.parent().removeClass('expanded');
				return false;
			}
			else
			{

			here.append($($.IMG({'src':'/js/images/ajax-loader.gif','id':'ajax-loading'})).css('margin-left',10));
				var vectorLayer = initVectorLayer(map);
	            map.addLayers([vectorLayer]);

				if(here.hasClass('verkehrsmodul_ordner') || here.hasClass('verkehrsmodul') || here.hasClass('verkehrsmodul_linie') || here.hasClass('verkehrsmodul_flaeche') || here.hasClass('verkehrsmodul_punkt'))
					var url = getAjaxUrl() + "/verkehrsmodul/getSchlagwortBaum";
		else if(here.hasClass('orte'))
				{
					var url = getAjaxUrl() + "/projekt/getOrte";
					map.zoomToMaxExtent();
				}
				else if(here.hasClass('cto'))
				{
					var url = getAjaxUrl() + "/projekt/getTouristicObjectives";
					map.zoomToMaxExtent();
				}
				else if(here.hasClass('nature'))
				{
					var url = getAjaxUrl() + "/projekt/getNationalParks";
					map.zoomToMaxExtent();
				}				
				else
					var url = getAjaxUrl() + "/wirtschaftmodul/getSchlagwortBaum";

				$.post(url,{'id':here.attr('id'),'portalid':$('#projektid').val()},
					function(data)
					{
						//--- anderen Objekt auf Ebene schliessen --
						//$("li.expanded ul").remove();
						//$("li.expanded").removeClass('expanded');

						//--- Eigene Gemoetrie falls vorhanden anzeigen ---
						if(data.selfgeometries != null)
						{
							if(data.selfgeometries.geometries.length == 1 )
							{
								drawFeatures(data.selfgeometries.geometries[0],vectorLayer,true);
							}
							else
							{
								for(var i=0;i<=data.selfgeometries.geometries.length-1;i++)
								{
									drawFeatures(data.selfgeometries.geometries[i],vectorLayer,false);
								}
							}
						}

						//--- Geometrie der untergeordneten Objekte anzeigen ---
						if(data.objs.length > 0)
						{
							var ul = $.UL();
							for(i=0;i<=data.objs.length-1;i++)
							{
								if(data.objs[i].type == 'wirtschaft')
								{
									var fistimage;
									var images = [];
									//--- Bild vorhanden ---
									if(data.objs[i].images.length > 0)
									{
										firstImage = data.objs[i].images[0];
										var element = 	$.LI({'id':data.objs[i].id},
															$.DIV({'class':'naviImage'},
																$.IMG({'src':firstImage})
															),
															$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
																$.SPAN({'class':'naviHeadline'},data.objs[i].name),
																$.SPAN({'class':'naviText'},data.objs[i].adresse)
															)
													);
									}
									//--- kein Bild vorhanden ---
									else
									{
										var element = 	$.LI({'id':data.objs[i].id},
															$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},
																$.SPAN({'class':'naviHeadline'},data.objs[i].name),
																$.SPAN({'class':'naviText'},data.objs[i].adresse)
															)
													);
									}
									$(ul).append(element);

								}
								// --- Verkehr ---
								else
								{       try{
										var div = $.DIV({'class':'verkehrfarbe'});
										$(div).css('background-color','#'+data.objs[i].color);
									}catch(exception){

									}
									if(data.objs[i].type == 'verkehrsmodul_flaeche' || data.objs[i].type == 'verkehrsmodul_linie')
									{
										var element = 	$.LI({'id':data.objs[i].id},
															div,
															$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
														);
									}
									else
									{
										var element = 	$.LI({'id':data.objs[i].id},
															$.A({'id':data.objs[i].id,'class':'navigate '+data.objs[i].type,'href':'#'},data.objs[i].name)
														);
									}
									$(ul).append(element);
								}
							}
							here.parent().append(ul);
							here.parent().addClass('expanded');

							for(i=0;i<=data.objs.length-1;i++)
							{
								if(data.objs[i].allchilds.geometries != null && data.objs[i].allchilds.geometries.length > 0)
								{
									var geom = data.objs[i].allchilds.geometries;
									for(var l=0;l<=geom.length-1;l++)
									{
										drawFeatures(geom[l],vectorLayer);
									}
								}
							}

						}
						$('#ajax-loading').remove();
					}
				,'json');



				return false;
			}
		}
	);

	$(".showObjekt").live('click',
		function(){
			kartenLayer = map.getLayersByName('Karten Layer')[0];
			kartenLayer.setOpacity(1);
			$.post(getAjaxUrl() + "/projekt/getGebaeudeGisData",
					{'id':$(this).attr('id')},
				function(data)
				{
					style_blue = {
                	    'pointRadius': 10,
						'externalGraphic': '/js/images/marker2.gif',
						'graphicWidth':10,
						'graphicHeight':10
           			}

			var vectorLayer = initVectorLayer(map);
		            map.addLayers([vectorLayer]);

				var gisdata = data;

				drawFeatures(gisdata,vectorLayer,true);
				}


			,'json');

			return false;
		}
	);


	$(".showVerkehr").live('click',
		function(){
			var here = $(this);
			var type = $(this.firstChild).attr('class');
			if(1==1)
			{

				kartenLayer = map.getLayersByName('Karten Layer')[0];
				kartenLayer.setOpacity(0.6);

				var id = $(this).attr('id');
				$.post(getAjaxUrl() + "/verkehrsmodul/getContent",
					{'id':id},
				function(data)
				{
					$('#verkehr').empty();
					if(data.parentid != $('#objektid').val())
					{
						var html = $.LI({'id':data.parentid},
										$.A({'class':'showVerkehr','id':data.parentid,'href':'#'},
											'..'
										)
									);
					}
					$('#verkehr').append(html);
					var data = data.data;
					for(i=0;i<=data.length-1;i++){
						var html = $.LI({'id':data[i].id},
										$.A({'class':'showVerkehr','id':data[i].id,'href':'#'},
											$.SPAN({'class':data[i].type},data[i].name
											)
										)
									);
						$('#verkehr').append(html);
					}
				},'json');

				$.post(getAjaxUrl() + "/verkehrsmodul/getGisData",
					{'id':id},
					function(data)
					{

						var vectorLayer = initVectorLayer(map);

	            		map.addLayers([vectorLayer]);
						var formatter = new OpenLayers.Format.GeoJSON();

						for(i=0;i<=data.geometries.length-1;i++)
						{

							if(data.geometries[i].type == 'MultiLineString')
							{
								var style_dyn = {
									'strokeColor': '#' + data.geometries[i].color,
									'strokeWidth': 2,
									'pointRadius': 2,
									'pointerEvents': "visiblePainted",
									'strokeOpacity': 0.8
								};

								var vector = formatter.read(data.geometries[i]);
								vector[0].style =  style_dyn;
								vector[0].objektid = data.geometries[i].objektid;
								vectorLayer.addFeatures(vector);
							}
							else if(data.geometries[i].type == 'Point')
							{
								var feature = formatter.read(data.geometries[i]);

					            size = new OpenLayers.Size(12,12);
            					icon = new OpenLayers.Icon(data.geometries[i].icon);



								feature[0].style={
	                        	    'pointRadius': 14,
									'externalGraphic': data.geometries[i].icon,
									'graphicWidth':14,
									'graphicHeight':14
	                   			}
								feature[0].objektid = data.geometries[i].objektid;
	                   			vectorLayer.addFeatures(feature);
            					//vectorLayer.addMarker(new OpenLayers.Marker(feature, icon));


							}
							else if(data.geometries[i].type == 'MultiPolygon')
							{
								var feature = formatter.read(data.geometries[i]);

								feature[0].style = {
									'strokeColor': '#' + data.geometries[i].color,
									'fillColor': '#' + data.geometries[i].color,
									'strokeWidth': 1,
									'pointerEvents': "visiblePainted",
									'strokeOpacity': 1,
									'fillOpacity': 0.5
								};
								feature[0].objektid = data.geometries[i].objektid;
	                   			vectorLayer.addFeatures(feature);
							}
						}

					},
				'json');

			}

			return false;
		}
	);




	$(".showStreet").live('click',
		function(){
			kartenLayer = map.getLayersByName('Karten Layer')[0];
			kartenLayer.setOpacity(1);
			var here = $(this);

			$.post(getAjaxUrl() + "/projekt/getStreetGisData",
					{'id':$(this).attr('id'),'projection':$('#projection').val()},
				function(data)
				{
					vectorLayer = map.getLayersByName('Vector Layer')[0];
					try
					{
						map.removeLayer(vectorLayer);
					}
					catch(ex)
					{

					}

		            var vectorLayer = new OpenLayers.Layer.Vector("Vector Layer");
	            	map.addLayers([vectorLayer]);

					var formatter = new OpenLayers.Format.GeoJSON();

					for(i=0;i<=data.geometries.length-1;i++)
					{

						if(data.geometries[i].type == 'LineString' || data.geometries[i].type == 'MultiLineString')
						{
							var style_dyn = {
								'strokeColor': '#66FFFF' ,
	        					'strokeWidth': 12,
	        					'pointRadius': 6,
								'pointerEvents': "visiblePainted",
								'strokeOpacity': 0.6
							};

							var vector = formatter.read(data.geometries[i]);
							vector[0].style =  style_dyn;
							vector[0].objektid = data.geometries[i].objektid;
							vectorLayer.addFeatures(vector);

						}
						if(data.geometries[i].type == 'Point' || data.geometries[i].type == 'MultiPoint')
						{
					        var style_dyn={
                        	    'pointRadius': 10,
						        'externalGraphic': '/js/images/marker2.gif',
						        'graphicWidth':10,
						        'graphicHeight':10
                   			};

							var vector = formatter.read(data.geometries[i]);
							vector[0].style =  style_dyn;
							vector[0].objektid = data.geometries[i].objektid;
							vectorLayer.addFeatures(vector);

						}

					}

					var newbounds = new OpenLayers.Bounds(data.bounds[0],data.bounds[1],data.bounds[2],data.bounds[3]);
					map.zoomToExtent(newbounds);
					if(map.getZoomForExtent(newbounds,true)>5)
					{
						map.zoomTo(5);
					}
                                        else
					{
						map.zoomTo(map.getZoomForExtent(newbounds,true)-1);
					}
				}
			,'json');

			$.post(getAjaxUrl() + "/projekt/getHousenumbers",{'id':$(this).attr('id'),'projection':$('#projection').val()},
				function(data)
				{
					$('#hnr-selector').remove();

					if(data.length > 1)
					{
						var select = $.SELECT({'id':'hnr-selector'});
						for(i=0;i<=data.length-1;i++)
						{
							var element = $.OPTION({'value':data[i].id},data[i].name);
							$(select).append(element);
						}
						here.parent().append(select);
					}
				}
			,'json');

			return false;
		}
	);


	if ($.browser.msie)
	{
		$("#hnr-selector").live('click',
			function()
			{
				//this.blur();
				//this.focus();
				printHouseNumbers(map,this);
			}
		);
	}
	else
	{
		$('#hnr-selector').live('change',
			function()
			{
				printHouseNumbers(map,this);
			}
		);
	}

	$(".showWirtschaft").live('click',
		function(){
			$.post(getAjaxUrl() + "/projekt/getWirtschaftGisData",
					{'id':$(this).attr('id')},
				function(data)
				{
					var style_blue = {
                	    			'pointRadius': 10,
						'externalGraphic': '/js/images/marker2.gif',
						'graphicWidth':10,
						'graphicHeight':10
	    				};

					initVectorLayer(map);

					var gisdata = data;

				var vectorLayer = initVectorLayer(map);
		            map.addLayers([vectorLayer]);

			        function onPopupClose(evt) {
			            selectControl.unselect(selectedFeature);
			        }

				drawFeatures(gisdata,vectorLayer,true);
				}

			,'json');

			return false;
		}
	);


	$("#suchbutton").click(
		function()
		{
			$("#leftbox").show();
			$("#suche_auswahl").show();
			$("#ergebnisliste").show();
			$("#schlagwortbaum").hide();
			$("#reiter").find('li').removeClass('active');
			$($("#reiter").find('li')[0]).addClass('active');
			$("#hauptnavi").hide();
			$("#images").fadeOut();

			var suchtype = $(".suche_auswahl:checked").val();

			//--- Straßensuche ---
			if(suchtype == "1")
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('strassensuche');
				printStrassen($('#objektid').val(),$('#suchfeld').val(),0,pagesize);

			}
			//--- Objektsuche ---
			else if(suchtype == "2")
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('objektsuche');
				printObjekte($('#objektid').val(),$('#suchfeld').val(),0,pagesize);
			}
			//--- Objektsuche ---
			else if(suchtype == "-1")
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('objektsuche');
				drawOrte($('#objektid').val(),$('#suchfeld').val(),0,pagesize);
			}
			//--- Tourismus ---
			else if(suchtype == "-2")
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('objektsuche');
				drawCTO($('#objektid').val(),$('#suchfeld').val(),0,pagesize);
			}
			//--- Objektsuche ---
			else if(suchtype == "-3")
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('objektsuche');
				drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),0,pagesize);
			}
			else
			{
				var pagesize = calculateItems();
				$('#suchergebnisse_pagesize').val(pagesize);
				$('#suchergebnisse_start').val(0);
				$('#suchergebnisse_type').val('objektsuche');
				drawWirtschaft(suchtype,$('#suchfeld').val(),0,pagesize);
			}
			return false;
		}
	);
	/*

	$("#suchfeld").keyup(
		function(e)
		{
			if(e.keyCode == 13) {
				$("#suchbutton").click();
			}
			return false;
		}
	);

*/
	$("#suchfeld").bind("keydown", function(event) {
	      var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
	      if (keycode == 13) { // keycode for enter key
		 $("#suchbutton").click();
		 return false;
	      } else  {
		 return true;
	      }
	   }); // end of function



	$('#firstResults').live('click',
		function()
		{
			var start = 0;
			var pagesize = parseInt($('#suchergebnisse_pagesize').val());
			$('#suchergebnisse_start').val(start);
			$('#suchergebnisse_start').val(start);
			var suchtype = $(".suche_auswahl:checked").val();
			if(suchtype == '2' )
			{
				printObjekte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '1' )
			{
				printStrassen($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-1')
			{
				drawOrte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-2')
			{
				drawCTO($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-3')
			{
				drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
		}
	);


	$('#nextResults').live('click',
		function()
		{
			var start = parseInt($('#suchergebnisse_start').val());
			var pagesize = parseInt($('#suchergebnisse_pagesize').val());
			var start = start + pagesize;
			var gesamtAnzahl = parseInt($('#suchergebnisse_anzahl').val());
			var suchtype = $(".suche_auswahl:checked").val();
			if(start < gesamtAnzahl)
			{
				$('#suchergebnisse_start').val(start);
				if(suchtype == '2' )
				{
					printObjekte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '1' )
				{
					printStrassen($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-1')
				{
					drawOrte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-2')
				{
					drawCTO($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-3')
				{
					drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
			}
		}
	);

	$('#prevResults').live('click',
		function()
		{
			var start = parseInt($('#suchergebnisse_start').val());
			var suchtype = $(".suche_auswahl:checked").val();
			if(start > 0)
			{
				var pagesize = parseInt($('#suchergebnisse_pagesize').val());
				var start = start - pagesize;
				$('#suchergebnisse_start').val(start);
				if(suchtype == '2' )
				{
					printObjekte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '1' )
				{
					printStrassen($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-1')
				{
					drawOrte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-2')
				{
					drawCTO($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
				else if(suchtype == '-3')
				{
					drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
				}
			}
		}
	);

	$('#lastResults').live('click',
		function()
		{
			var pagesize = parseInt($('#suchergebnisse_pagesize').val());
			var gesamtAnzahl = parseInt($('#suchergebnisse_anzahl').val());
			var pages = Math.floor(gesamtAnzahl/pagesize);
			start = pages*pagesize;
			$('#suchergebnisse_start').val(start);
			var suchtype = $(".suche_auswahl:checked").val();
			if(suchtype == '2' )
			{
				printObjekte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '1' )
			{
				printStrassen($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-1')
			{
				drawOrte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-2')
			{
				drawCTO($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-3')
			{
				drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
		}
	);

	$('.pagingnumber').live('click',
		function()
		{
			var page = parseInt($(this).text()) - 1;
			var pagesize = parseInt($('#suchergebnisse_pagesize').val());
			start = page * pagesize;
			$('#suchergebnisse_start').val(start);
			var suchtype = $(".suche_auswahl:checked").val();
			if(suchtype == '2' )
			{
				printObjekte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '1' )
			{
				printStrassen($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-1')
			{
				drawOrte($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-2')
			{
				drawCTO($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
			else if(suchtype == '-3')
			{
				drawNationalParcs($('#objektid').val(),$('#suchfeld').val(),start,pagesize);
			}
		}
	);

	$('.switchModule').live('click',
		function(){
			switchModules($(this).attr('id'));
			return false;
		}
	);


	$('#pfeil_links').live('click',
		function()
		{
			var alleBilder = eval($('#allimages').val());
			var bildnr = parseInt($('#bildnr').val()) - 1;
			if(bildnr == -1)
				bildnr = alleBilder.length - 1;
			$('#bildnr').val(bildnr);
			var bild = alleBilder[bildnr];
			$('#stadtfoto').attr('src',bild);
		}
	);

	$('#pfeil_rechts').live('click',
		function()
		{
			var alleBilder = eval($('#allimages').val());
			var bildnr = parseInt($('#bildnr').val()) + 1;
			if(bildnr >= alleBilder.length)
				bildnr = 0;
			$('#bildnr').val(bildnr);
			var bild = alleBilder[bildnr];
			$('#stadtfoto').attr('src',bild);
		}
	);

	$('.printWirtschaft').live('click',
		function()
		{
			alert('print');
			var extent = map.getExtent().toBBOX();
			var lon = map.getExtent().getCenterLonLat().lon;
			var lat = map.getExtent().getCenterLonLat().lat;
			var zoom = map.getZoom();
			var ooid = $(this).attr('id');
			neuesFenster = window.open(getAjaxUrl() + "/projekt/viewprint/" + $('#objektid').val() + "22?extent=" + extent + "&lonlat=" + lon + "," + lat + "&zoom=" + zoom + "&ooid=" + ooid, "Druckfenster");
			neuesFenster.focus();
			return false;
		}
	);

	$('#language_selection').live('click',
		function()
		{
			$('#language #dropdown').show();
			return false;
		}
	);

	$(".showCTO").live('click',
		function(){
			$.post(getAjaxUrl() + "/projekt/getTouristGisData",
					{'id':$(this).attr('id')},
				function(data)
				{
					var style_blue = {
                	    			'pointRadius': 10,
						'externalGraphic': '/js/images/marker2.gif',
						'graphicWidth':10,
						'graphicHeight':10
	    				};

					initVectorLayer(map);

					var gisdata = data;

				var vectorLayer = initVectorLayer(map);
		            map.addLayers([vectorLayer]);

			        function onPopupClose(evt) {
			            selectControl.unselect(selectedFeature);
			        }

				drawFeatures(gisdata,vectorLayer,true);
				}

			,'json');

			return false;
		}
	);

	$(".showNationalParc").live('click',
		function(){
			$.post(getAjaxUrl() + "/projekt/getNationalParcGisData",
					{'id':$(this).attr('id')},
				function(data)
				{
					var style_blue = {
                	    			'pointRadius': 10,
						'externalGraphic': '/js/images/marker2.gif',
						'graphicWidth':10,
						'graphicHeight':10
	    				};

					initVectorLayer(map);

					var vectorLayer = initVectorLayer(map);
		            map.addLayers([vectorLayer]);

			        function onPopupClose(evt) {
			            selectControl.unselect(selectedFeature);
			        }

					for(var i=0;i<=data.geometries.length-1;i++)
						drawFeatures(data.geometries[i],vectorLayer,true);
				}

			,'json');

			return false;
		}
	);


	$(".showOrte").live('click',
		function(){
			$.post(getAjaxUrl() + "/projekt/getOrteGisData",
					{'id':$(this).attr('id')},
				function(data)
				{
					var style_blue = {
                	    			'pointRadius': 10,
						'externalGraphic': '/js/images/marker2.gif',
						'graphicWidth':10,
						'graphicHeight':10
	    				};

					initVectorLayer(map);

					var gisdata = data;

				var vectorLayer = initVectorLayer(map);
		            map.addLayers([vectorLayer]);

			        function onPopupClose(evt) {
			            selectControl.unselect(selectedFeature);
			        }

				drawFeatures(gisdata,vectorLayer,false);
				}

			,'json');

			return false;
		}
	);



	/*
	for(var i=0;i<=object_path.length-1;i++)
	{
		alert("#" + object_path[i]);
		$("#" + object_path[i]).click();

	}
	*/
	$('#suchergebnisse').height($(document).height() - 233 -30);

    $('.treffer').html($.i18n('Map2Web', 'Treffer'));
	//alert(getAjaxUrl());

});

