// in_array - Funktion
Array.prototype.contains = function (element){
	for (var i = 0; i < this.length; ++i) {
		if (this[i] == element) return true;
		}
	return false;
	}



//Cookie Gueltigkeit
var auszeit = new Date();
auszeit = new Date(auszeit.getTime() +1000*60*60*24*365);

function getCookieVal (offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
	}
function GetCookie (name) {
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen) {
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg)
		return getCookieVal (j);
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
		}
	return null;
	}





var fsize=new Array();

function getSize() {
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
		}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
		}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
		}
	return [ myWidth, myHeight ];
	}


function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
		}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
		}
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
		}
	return [ scrOfX, scrOfY ];
	}




function BW(wo,wie){
	var Quelle = document.getElementById(wo).src;
	var Ergebnis = Quelle.search(/.gif/);
	if(Ergebnis != -1) Endung=".gif";
	else Endung=".jpg";
	if (wie==1){
		Neu = Quelle.replace(Endung,"-a"+Endung);
		document.getElementById(wo).src = Neu;
		}
	else{
		Neu = Quelle.replace("-a"+Endung,Endung);
		document.getElementById(wo).src = Neu;
		}
	}




function anzeigen(das){
	if(document.getElementById(das).style.display=='none') 
		document.getElementById(das).style.display='block'; 
	else document.getElementById(das).style.display='none';
	}




function Zeige(was){
	if(vorschau[was]){
		if(was==0) document.getElementById('vorschau').style.right = 0;
		else document.getElementById('vorschau').style.right = "auto";
		document.getElementById('vorschau').innerHTML = vorschau[was];
		
		}
	else 
		document.getElementById('vorschau').innerHTML = "";
	}


function Schliessen(wo){
	document.getElementById('aktuell['+wo+']').style.position = 'absolute';
	document.getElementById('aktuell['+wo+']').style.top = '-10000px';
	document.cookie="c_aktuell["+wo+"]=1";
	}










//Bilder-Galerie
function Dia(welche){
	Vorschau="";
	Unten='<td valign="bottom" align="center"><span id="bildtitel">'+bt[welche[0]]+'<\/span><img src="./elemente/close2-0.png" onclick="Dia_ende();" align="right" class="close"></td>';
	if(welche.length > 1){
		Vorschau='<td class=\"dvorschau\"><div>';
		for(x=0;x<welche.length;x++){
			Vorschau+='<img src="bilder/bild_klein/'+welche[x]+'.jpg" onclick="Dia_wechsel('+welche[x]+')"> ';
			}
		Vorschau+='<\/div><\/td>';
		Unten='<td id="bildtitel">'+bt[welche[0]]+'<\/td><td valign="bottom" align="right"><img src="./elemente/close2-0.png" onclick="Dia_ende();" align="right" class="close"></td>'
		}
	Dia_HG(1);
	var scrollpos=getScrollXY();
	var pos=(fsize[1]-520)/2 + scrollpos[1];
	document.getElementById('dia').innerHTML = '<table cellpadding="0" cellspacing="0" border="0" id="dia_table" align=\"center\"><tr>'
		+'<td align="center" id="dia_bild"><img id="dia_img" src="bilder/bild_dia/'+welche[0]+'.jpg">'
		+'<\/td>'+Vorschau+'<\/tr>'
		+'<tr>'+Unten+'<\/tr>'
		+'<\/table>';
	document.getElementById('dia').style.visibility="visible";
	document.getElementById('dia_table').style.top=pos+"px";
	}
function Dia_wechsel(was){
	document.getElementById('dia_img').src = "bilder/bild_dia/"+was+".jpg";
	document.getElementById('bildtitel').innerHTML = bt[was];
	}
function Dia_ende(){
	document.getElementById('dia_table').style.top="-2000px";
	document.getElementById('dia').style.visibility='hidden';
	Dia_HG();
	}

function Dia_HG(wie){
	if(wie){
		var dhoehe=document.body.offsetHeight;
		fsize = getSize();
		if(dhoehe<fsize[1]) dhoehe=fsize[1];
		document.getElementById('dia').style.height = dhoehe+"px";
		if(document.getElementById('ort_select')) document.getElementById('ort_select').style.visibility="hidden";
		}
	else{
		document.getElementById('dia').style.height = 0;
		if(document.getElementById('ort_select')) document.getElementById('ort_select').style.visibility="visible";
		}
	}







//Favs
var v_objekte=new Array();
var v_objekte_t=GetCookie("v_objekte");
if(v_objekte_t){
	var v_objekte_t=v_objekte_t.split(",");
	for(x=0;x<v_objekte_t.length;x++){
		if(v_objekte_t[x] != "")
			v_objekte.push(v_objekte_t[x]);
		}
	}
var fav_offen=0;

function Merken(was){
	if(v_objekte.contains(was)){
		var v_objekte_t=new Array();
		for(var x=0; x<v_objekte.length;x++){
			if(v_objekte[x]!=was)v_objekte_t.push(v_objekte[x]);
			}
		v_objekte=v_objekte_t;
		}
	else v_objekte.push(was);
	document.cookie="v_objekte=" + v_objekte + "; expires=" + auszeit.toGMTString() + ";";
	Make_Favoriten();
	Show_Favleiste();
	}

function Show_Favleiste(){
	if(document.getElementById('favs')){
		if(fav_offen==1) var fav_inhalt='<img src="elemente/fav_z-0-a.gif" id="zeigen" onclick="Show_Favoriten();">';
		else var fav_inhalt='<img src="elemente/fav_z-0.gif" id="zeigen" onMouseover="BW(\'zeigen\',1)" onMouseout="BW(\'zeigen\')" onclick="Show_Favoriten();">';
		if(data.o[pid]){ //data.k.contains(pid)
			if(v_objekte.contains(pid)) fav_inhalt+='<img src="elemente/fav_e-0.gif" id="merken" onMouseover="BW(\'merken\',1)" onMouseout="BW(\'merken\')" onclick="Merken(pid);">';
			else fav_inhalt+='<img src="elemente/fav_m-0.gif" id="merken" onMouseover="BW(\'merken\',1)" onMouseout="BW(\'merken\')" onclick="Merken(pid);">';
			fav_inhalt+='<img src="elemente/fav_d-0.gif" id="drucken" onMouseover="BW(\'drucken\',1)" onMouseout="BW(\'drucken\')">';
			}
		document.getElementById('favs').innerHTML=fav_inhalt;
		}
	}

function Make_Favoriten(){
	var HTML="";
	var HTML_store="";
	for(var x=(v_objekte.length-1); x>=0;x--){
		var temp_img="";
		if(v_objekte[x]){
			if(data.o[v_objekte[x]]){

				temp_img=data.o[v_objekte[x]].c[1];
				
				
				var VBild="";
				if(data.o[v_objekte[x]].c[1]!="") VBild='<img src="./bilder/bild_opt2/'+data.o[v_objekte[x]].c[1]+'">';

				HTML=HTML+'<div class="vs"><div class="v"><div class="vb">'+VBild+'</div>'
				+'<img src="elemente/close.gif" class="close" onClick="Merken('+v_objekte[x]+')">'
				+'<a href="./?id='+v_objekte[x]+'">'+data.o[v_objekte[x]].c[0]+' <img src="./elemente/l_i.gif"></a>'
				+'</div></div>';

				if(data.k.contains(v_objekte[x]))
					HTML_store=HTML_store+'<div class="vs"><div class="v"><div class="vb">'+VBild+'</div>'
					+'<img src="elemente/close.gif" class="close" onClick="Merken('+v_objekte[x]+')">'
					+'<a href="./?id='+v_objekte[x]+'">'+data.o[v_objekte[x]].c[0]+' <img src="./elemente/l_i.gif"></a>'
					+'</div></div>';
				}
			}
		}
	if(document.getElementById('favoriten')) document.getElementById('favoriten').innerHTML = HTML;
	if(document.getElementById('store')) document.getElementById('store').innerHTML = HTML_store;
	}

function Show_Favoriten(){
	if(fav_offen==0){
		document.getElementById('favoriten').style.top='20px';
		document.getElementById('favoriten').style.visibility='visible';
		fav_offen=1;
		}
	else{
		document.getElementById('favoriten').style.top='-10000px';
		document.getElementById('favoriten').style.visibility='hidden';
		fav_offen=0;
		}
	Show_Favleiste();
	}







//GMap Vorschau
var map_p;
var geocoder;

function load() {
	map_p = new GMap2(document.getElementById("gmap"));
//	map_p.setCenter(new GLatLng(34, 0), 1);
	map_p.setMapType(G_NORMAL_MAP);
	map_p.addControl(new GSmallZoomControl());
	geocoder = new GClientGeocoder();
	geocoder.getLocations(geolocation, addAddressToMap);
	}

function addAddressToMap(response) {
	map_p.clearOverlays();
	if (!response || response.Status.code != 200) {	}
	else{
		place = response.Placemark[0];
		point = new GLatLng(place.Point.coordinates[1],
		place.Point.coordinates[0]);
		marker = new GMarker(point);
		map_p.addOverlay(marker);
		map_p.setCenter(point, 11);
		}
	}




//GMap Komplett
//var map;
var map = null;
var markers = [];
var markerClusterer = null;
var marker_aktiv=0;

var show_arten_t=GetCookie("show_arten");
if(show_arten_t) var show_arten=show_arten_t.split(",");
if(!show_arten)var show_arten=new Array();

var show_objects=new Array();//alle aktuell sichtbaren Marker-IDs
for(var x=0; x<show_arten.length; x++){
	show_objects=show_objects.concat(data.g[show_arten[x]]);
	}

var imageOver="http://chart.apis.google.com/chart?cht=mm&chs=18x32&chco=FFFFFF,FF8C00,000000&ext=.png";
var imageOut=new Array();
for(var i=0;i<data.m.length;i++){
	imageOut[i]="http://chart.apis.google.com/chart?cht=mm&chs=18x32&chco=FFFFFF,"+data.m[i].f+",000000&ext=.png";
	}


function initialize() {
	if(GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById('map'));
		map.setCenter(new GLatLng(50.80, 12.65), 10);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		Show_Legend();
		refreshMap();
		}
	}


function Show_Map(){
	Map_HG(1);
	var scrollpos=getScrollXY();
	var pos=(fsize[1]-560)/2 + scrollpos[1];
	document.getElementById('googlemap').style.visibility='visible';
	document.getElementById('map_div').style.top=pos+"px";
	if(map == null){
		in_store = new Array();
		for(var i = 0; i < data.k.length; ++i){
			var icon = new GIcon(G_DEFAULT_ICON);
			icon.image = imageOut[data.o[data.k[i]].f];
			markers.push(createMarker(i,icon));
			if(v_objekte.contains(data.k[i])) in_store.push(i);
			}
		 initialize();
		 }
	Show_Store();
	}

function Map_ende(){
	document.getElementById('googlemap').style.visibility="hidden";
	Map_HG();
	}

function Map_HG(wie){
	if(wie){
		var dhoehe=document.body.offsetHeight;
		fsize = getSize();
		if(dhoehe<fsize[1]) dhoehe=fsize[1];
		document.getElementById('googlemap').style.height = dhoehe+"px";
		if(document.getElementById('ort_select')) document.getElementById('ort_select').style.visibility="hidden";
		}
	else{
		document.getElementById('googlemap').style.height = 0;
		if(document.getElementById('ort_select')) document.getElementById('ort_select').style.visibility="visible";
		}
	}


function Show_HTML(wo){
	var VBild="";
	if(data.o[data.k[wo]].c[1]!="") VBild='<img src="./bilder/bild_opt2/'+data.o[data.k[wo]].c[1]+'">';
	var HTML='<div class="v1"><div class="v"><div class="vb">'+VBild+'</div>'
+'<div class="vt"><h4><a href="./?id='+data.k[wo]+'">'+data.o[data.k[wo]].c[0]+' <img src="./elemente/l_i.gif"></a></h4>'
+'<p>'+data.o[data.k[wo]].c[2]+'</p></div><div class="va">'+data.o[data.k[wo]].c[3]+'</div></div></div>';
	document.getElementById('map_preview').innerHTML = HTML;
	markers[wo].setImage(imageOver);
	if(wo != marker_aktiv){
		marker_aktiv_temp=marker_aktiv;
		marker_aktiv=wo;
		if(!markers[marker_aktiv].isHidden()) markers[marker_aktiv_temp].setImage(imageOut[data.o[data.k[marker_aktiv_temp]].f]);
		}
	}


var in_store=new Array();

function Store(wo){
	if(!v_objekte.contains(data.k[wo])) Merken(data.k[wo]);
	}


function Show_Store(){
	Make_Favoriten();
	}


function Show_Legend(){
	var legende="";
	for(var i = 0; i < data.m.length; ++i) {
		legende+='<div onMouseover="anzeigen(\'leg'+i+'\')" onMouseout="anzeigen(\'leg'+i+'\')" style="background-color:#'+data.m[i].f+'">'
		+'<div class="hm">'+data.m[i].m+'</div><span id="leg'+i+'" style="display: none;">';

		for(var j=0; j<data.m[i].c.length;++j){
			var checked= "";
			if(show_arten.contains(data.m[i].c[j])) checked=" checked";
			
			legende+='<p><input type="checkbox" onChange="Change_Objects('+data.m[i].c[j]+')"'+checked+'> '+data.m[i].n[j]+'</p>';
			}
		legende+='</span></div>';
		}
	legende+='<div onMouseover="anzeigen(\'leg_help\')" onMouseout="anzeigen(\'leg_help\')" style="background-color:#888888">'
		+'<div class="hm">Hilfe</div><span id="leg_help" style="display: none;">'
		+platzhalter_map
		+'</span></div>';
	document.getElementById('legende').innerHTML=legende;
	}


function Change_Objects(was){
	if(show_arten.contains(was)){
		show_arten_t=new Array();
		for(var x=0; x< show_arten.length; ++x){
			if(show_arten[x]!=was) show_arten_t.push(show_arten[x]);
			}
		show_arten=show_arten_t;
		}
	else{
		show_arten.push(was);
		}
	show_objects=new Array();
	for(var x=0; x<show_arten.length; x++){
		show_objects=show_objects.concat(data.g[show_arten[x]]);
		}
	refreshMap();
	document.cookie = "show_arten=" + show_arten + "; expires=" + auszeit.toGMTString() + ";";
	}


function createMarker(number,icon) {
	var latlng = new GLatLng(data.o[data.k[number]].lat, data.o[data.k[number]].lng);
	var marker = new GMarker(latlng, {icon: icon});
	GEvent.addListener(marker, "mouseover", function(){Show_HTML(number);});
	GEvent.addListener(marker, "click", function(){Store(number)});
	return marker;
	}


function refreshMap(){
	if(markerClusterer != null){
		markerClusterer.clearMarkers();
		}
	var zoom = 12;
	var size = 20;
	var style = -1;
	zoom = zoom == -1 ? null : zoom;
	size = size == -1 ? null : size;
	style = style == "-1" ? null: parseInt(style, 10);
	markerClusterer = new MarkerClusterer(map, markers, {maxZoom: zoom, gridSize: size, styles: null});
	}

