//------------------------------------------------------------------------------
//
//  geo.js  Copyright by Harald Kotte
//  V1 Jun 2006
//  V2 Aug 2006
//	V3 Sep 2006
//	V3.fr Dez 2006
//  http://api.local.yahoo.com/MapsService/V1/trafficData?appid=YahooDemo&latitude=41&longitude=-74&radius=2
//------------------------------------------------------------------------------

	str = window.location.search;
	str = str.substring(1,str.length);
	if (str != "de" && str != "en" && str != "fr") { str="de"; var lang = "de";}
	if (str == "de"){
		var lang = "de";
		var tb = new Array();
			tb[1] = "Geowalk auf Ihrer Website<br><a href='download.html'>Download<a>";
			tb[2] = "Ein Doppelklick auf die Landkarte und Sie erfahren mehr...&nbsp; <b>nearBYclick!</b><br>Es gibt keine Marker...<br>So einfach ist das Konzept!";
			tb[3] = "Springen Sie durch Eingabe eines Ortes sofort dorthin. Dem Ortsnamen mu&szlig;, getrennt duch ein Komma, die  Landeskennung folgen.<br>Beispiel: Eckental, de";
			tb[4] = "In manchen F&auml;llen erzielen Sie in der englischen Version bessere Ergebnisse.";
			tb[5] = "NEU!&nbsp;&nbsp;Drag and Drop";
			tb[6] = "<a href='http:////googlemapsmania.blogspot.com' target='_blank'><img src='images/gmm.gif' border='0'></a><br><a href='http:////www.geojob.de' target='_blank'><img src='images/sts.gif' border='0'></a>"
		var continent = new Array ("|Amerika|","|Europa|","|Afrika|","|Asien|","|Ozeanien|");
		var tab_menu = new Array ("INFO","HOTEL","FOTOS","VIDEOS","NEWS","TRAVEL","USA-Wetter","JOBS","EVENTS","DEMO");
		var cb_menu = new Array (" ","Information","Hotel","Fotos","Videos", "Nachrichten","Reisebericht","Wetter us","Jobangebote de/us","Veranstaltungen","Demografie us");
		var keyb_msg = "Bitte nicht die Return-Taste benutzen. Klicken Sie auf den OK-Button.";
		var n_gef = "nicht gefunden";
		var notmorethan4 = "Bitte nicht mehr als 4 Themen gleichzeitig w&auml;hlen.";
		document.formular.address.value = "Berlin, DE";
	}
	if (str == "en"){ 
		var lang = "en";
		var tb = new Array();
			tb[1] = "Geowalk on your website<br><a href='download.html'>Download<a>";
			tb[2] = "Doubleclick the map...<br>There is no marker.... <br>NEW <b>nearBYclick!</b> <br>it&acute;s plain simple.";
			tb[3] = "Jump to the exact location by filling in a specific address.";
			tb[4] = "In some cases you may obtain better results by using the German version.";
			tb[5] = "NEW!&nbsp;&nbsp;Drag and Drop";
			tb[6] = "<a href='http:////googlemapsmania.blogspot.com' target='_blank'><img src='images/gmm.gif' border='0'></a><br><a href='http:////www.geojob.de' target='_blank'><img src='images/sts.gif' border='0'></a>"
		var continent = new Array ("|America|","|Europe|","|Africa|","|Asia|","|Oceania|");
		var tab_menu = new Array ("INFO","HOTEL","PHOTOS","VIDEOS","NEWS","TRAVEL","USA-Weather","JOBS","EVENTS","DEMO");
		var cb_menu = new Array (" ","Information","Hotel","Photos","Videos","News","Travel","Weather us","Jobs de/us","Events","Demographics us");
		var keyb_msg = "Don't use the RETURN Key. Please click the OK-Button.";
		var n_gef = "not found";
		var notmorethan4 = "Do not use more than 4 items, please.";
	document.formular.address.value = "Washington, DC";      
	}

	if (str == "fr"){ 
		var lang = "fr";
		var tb = new Array();
			tb[1] = "Geowalk sur votre site Web<br><a href='download.html'>Download<a>";
			tb[2] = "Double-clique la carte...<br>Il n'y a aucun rep&egrave;re.... <br>NOUVEAU <b>nearBYclick!</b> <br>Il est simple ordinaire.";
			tb[3] = "Jump to the exact location by filling in a specific address.";
			tb[4] = "In some cases you may obtain better results by using the German version.";
			tb[5] = "NEW!&nbsp;&nbsp;Drag and Drop";
			tb[6] = "<a href='http:////googlemapsmania.blogspot.com' target='_blank'><img src='images/gmm.gif' border='0'></a><br><a href='http:////www.geojob.de' target='_blank'><img src='images/sts.gif' border='0'></a>"
		var continent = new Array ("|Am&eacute;rique|","|Europe|","|Africa|","|Asie|","|Oc&eacute;anie|");
		var tab_menu = new Array ("INFO","HOTEL","PHOTOS","VIDEOS","NEWS","TRAVEL","USA-Weather","JOBS","EVENTS","DEMO");
		var cb_menu = new Array (" ","Information","H&ocirc;tel","Photo","Vid&eacute;o","News","Travel","Weather us","Jobs de/us","Events","Demographics us");
		var keyb_msg = "Don't use the RETURN Key. Please click the OK-Button.";
		var n_gef = "not found";
		var notmorethan4 = "Do not use more than 4 items, please.";
	document.formular.address.value = "Paris, FR";      
	}


	for (var x = 1; x < 7; x++) {
		document.getElementById('tb'+x).innerHTML = tb[x];
	 }

	for (var x = 1; x < 11; x++) {
		document.getElementById('cb'+x).innerHTML =  cb_menu[x];
	}


	var html_str='';
	for (var x = 0; x < 5; x++) {
		html_str += '<a href="#" onclick="javascript:mapContinent('+ x +')">'+ continent[x] + '</a>&nbsp;';
	}
	html_str += '&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="javascript:zoomIN(3)">|+in+|</a>&nbsp;';
	html_str += '<a href="#" onclick="javascript:zoomIN(1)">|+|</a>&nbsp&nbsp;';
	html_str += '<a href="#" onclick="javascript:zoomOUT(1)">|-|</a>&nbsp;';
	html_str += '<a href="#" onclick="javascript:zoomOUT(3)">|-out-|</a>&nbsp;&nbsp;&nbsp;&nbsp;';
	html_str += '<a href="#" onclick="javascript:mapType(0)">|Map|</a>&nbsp;';
	html_str += '<a href="#" onclick="javascript:mapType(1)">|Satellit|</a>&nbsp;';
	html_str += '<a href="#" onclick="javascript:mapType(2)">|Hybrid|</a>&nbsp;&nbsp;';

	document.getElementById('oben').innerHTML = html_str;

	_mSvgEnabled = true;
	_mSvgForced  = true;
	var lat = 0;
	var lng = 0;
	var zf = 0.99;
	var panto = false;
	var p2 = false;
	var p2lat = 0;
	var p2lng = 0;
	var windowOpen = false;



//------------------------------------------------------------------------------
//
//  Menuleiste
//
//------------------------------------------------------------------------------

function mapContinent(type) {

	if (windowOpen) {
		map.clearOverlays();
		windowOpen = false;
	}

	switch (type) {
	case 0:
		map.setCenter(new GLatLng(25,-100),3);
		break;
	case 1:
		map.setCenter(new GLatLng(51.167,6.94),4);
		break;
	case 2:
		map.setCenter(new GLatLng(0,20),3);
		break;
	case 3:
		map.setCenter(new GLatLng(20,100),3);
		break;
	case 4:
		map.setCenter(new GLatLng(-20,140),3);
		break;
	default:
		//map.setMapType(G_NORMAL_MAP);
		break;
	}
}


function mapType(type) {

	switch (type) {
	case 2:
		map.setMapType(G_HYBRID_MAP);
		break;
	case 1:
		map.setMapType(G_SATELLITE_MAP);
		break;
	default:
		map.setMapType(G_NORMAL_MAP);
		break;
	}
}

function zoomIN(type){
	ist=map.getZoom();
	if (ist<17) map.setZoom(ist+type);
}

function zoomOUT(type){
	ist=map.getZoom();
	if (ist>=2) map.setZoom(ist-type);
}


//------------------------------------------------------------------------------
//
//  Modulanzeige / geocoding
//
//------------------------------------------------------------------------------


	function OpenTheInfoWindow(point){
		
		map.clearOverlays();

		lat = point.y;
		lng = point.x;

		f_width = "435";
		f_height = "310";

		var tabs = new Array();   

	// tabs.push(new GInfoWindowTab('xy','lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang ));
		
		if (document.what.kind[0].checked) {
			url_to_php = 'vac_data.php?lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang;
			//alert(url_to_php);
			info= '<iframe id="box0" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[0],info));
		}

		if (document.what.kind[1].checked) {
			url_to_php = 'vac_hotel.php?lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang;
			hotel= '<iframe id="box1" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[1],hotel));
		}
		
		if (document.what.kind[2].checked) {
			url_to_php = 'vac_pic.php?lat=' + lat + '&lng=' + lng + '&page=1' + '&cache=' + zf + '&l=' + lang;
			bilder= '<iframe id="box2" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[2],bilder));
		}
		
		if (document.what.kind[3].checked) {
			url_to_php = 'vac_video.php?lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang;
			news= '<iframe id="box3" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[3],news));
		}

		if (document.what.kind[4].checked) {
			url_to_php = 'vac_news.php?lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang;
			news= '<iframe id="box4" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[4],news));
		}

		if (document.what.kind[5].checked) {
			url_to_php = 'vac_travel.php?lat=' + lat + '&lng=' + lng + '&cache=' + zf + '&l=' + lang;
			travel= '<iframe id="box5" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[5],travel));
		}

		if (lat > 24.5 && lat < 49.5  && lng < -50 && lng > -128) {
			if (document.what.kind[6].checked) {
				url_to_php = 'vac_weather.php?lat=' + lat + '&lng=' + lng + '&page=1' + '&cache=' + zf + '&l=' + lang;
				wetter= '<iframe id="box6" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';        
				tabs.push(new GInfoWindowTab(tab_menu[6],wetter));
			}
		}

		if (document.what.kind[7].checked) {
			url_to_php = 'vac_job.php?lat=' + lat + '&lng=' + lng + '&page=1'+ '&cache=' + zf + '&l=' + lang;
			job= '<iframe id="box7" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[7],job));
		}

		if (document.what.kind[8].checked) {
			url_to_php = 'vac_event.php?lat=' + lat + '&lng=' + lng + '&page=1'+ '&cache=' + zf + '&l=' + lang;
			eventx= '<iframe id="box8" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
			tabs.push(new GInfoWindowTab(tab_menu[8],eventx));
		}

		if (lat > 24.5 && lat < 49.5  && lng < -50 && lng > -128) {
			if (document.what.kind[9].checked) {
				url_to_php = 'vac_demo.php?lat=' + lat + '&lng=' + lng + '&page=1' + '&cache=' + zf + '&l=' + lang;
				demo= '<iframe id="box9" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';        
				tabs.push(new GInfoWindowTab(tab_menu[9],demo));
			}
		}
/*
		url_to_php = 'vac_quiz.php?lat=' + lat + '&lng=' + lng + '&page=1'+ '&cache=' + zf + '&l=' + lang;
		quiz= '<iframe id="box10" frameborder="0" width="' + f_width + '" height="' + f_height + '" src="'+ url_to_php +'"></iframe>';
		tabs.push(new GInfoWindowTab('QUIZ',quiz));
*/


		var newicon = new GIcon(icon);
		//icon.image = "http://www.google.com/mapfiles/markerA.png";

		// var marker = new GMarker(point, newicon);
		var marker = new GMarker(point, {draggable: true});

		GEvent.addListener(marker, "dragstart", function() {
		});

		GEvent.addListener(marker, "dragend", function() {
			var point = marker.getPoint(); 
			OpenTheInfoWindow(point);
		});

		marker.my_adds = "info";

		map.addOverlay(marker);

		document.wait.style.visibility = "visible";      
		marker.openInfoWindowTabsHtml(tabs);

	}


	function showAddress(address) {
		if (geocoder) {
			panto = false;
			geocoder.getLatLng(address, function(point) {
				if (!point) {
					alert(address + " " + n_gef);
				} else {
					//ToggleHelp();
					map.setCenter(point, 13);
					panto = true;
					lat = point.y;
					lng = point.x;
					pointArray[0] = point;
					OpenTheInfoWindow(point);
					// var marker = new GMarker(point);
					// map.addOverlay(marker);
					// marker.openInfoWindowHtml('<br>'+address);              
				}
			});
		}
	}


//------------------------------------------------------------------------------
//
//  Themenauswahl / Pinboardsteuerung
//
//------------------------------------------------------------------------------

	function ClearPB(){
		x = confirm("PINBOARD DELETE?\r\nPINWAND LOESCHEN?");
		if (x) {
			document.getElementById('merker').innerHTML='<img src="images/icon14.gif" border="0" align="center" width="26" height="26">&nbsp;PINBOARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b class="S_Button" onclick="ClearPB();">&nbsp;X&nbsp;</b><br><hr>';
		}
	}


	function clear_msg() {
		document.getElementById('error_msg').style.visibility = "hidden";      
		document.getElementById('error_msg').innerHTML = ''; 
		if (!document.what.kind[7].checked) {
			document.getElementById('merker').style.visibility = "hidden";	    	
		}
	}

		
	function morethan4(id) {
		var anz = 0;

		for(var x = 0; x < 10; x++) {
			if (document.what.kind[x].checked) {
				anz++;
			} 
		}
		
		if (anz == 0){
			document.what.kind[0].checked = true;	 	
		}

		if (id == 7 && document.what.kind[7].checked){
			document.getElementById('merker').style.visibility = "visible";
		} else {
			if (id == 7) {
				document.getElementById('merker').style.visibility = "hidden";
			}
		}

		if (anz > 4) {
			document.what.kind[id].checked = false;
			document.getElementById('error_msg').innerHTML = notmorethan4; 
			document.getElementById('error_msg').style.visibility = "visible";
			if (document.what.kind[7].checked) {
				document.getElementById('merker').style.visibility = "visible";	    	
			}
			setTimeout("clear_msg()",2000);
		}

	}


//------------------------------------------------------------------------------
//
//  Positionszentrierung / Distanz / Umrechnungen
//
//------------------------------------------------------------------------------

	var pointArray = [];
	var distance = 0;
	var c = 256;
	var pixelsPerLonDegree = [];
	for(var d = 17; d >= 0; --d) {
		pixelsPerLonDegree[d] = c / 360;
		c *= 2;
	}


	function updateZoom(xdistance) {
		var i = 0;
		var j = 0;
		var w = document.getElementById("map").style.width;
		var width = parseInt(w.substring(0, w.length-2));

		distance = 0;
		for(var i = 2-1; i >= 0; i--) {
			for(var j = i; j >= 0; j--) {
				var di = dist(pointArray[i], pointArray[j]);				
				if(di > distance) {
					distance = di;
				}
			}
		}

		i = 0;
		while(i < 17 && width < pixelsPerLonDegree[i]*distance) {
			i++;
		}

		var cent = centerPoint(pointArray);
		//alert("  "+distance+"  "+i);
		lat = cent.x;
		lng= cent.y;
		map.setCenter(new GLatLng(lat, lng),17-i-1);
	}
	
	
	function dist(p1, p2) {
		return Math.sqrt(Math.pow(p1.x-p2.x, 2)+Math.pow(p1.y-p2.y,2));
	}


	function centerPoint(array) {
		var p = array[0];
		for(var i = 1; i < array.length; i++) {
			p = midpoint(p, array[i]);
		}
		return p;
	}

	function midpoint(p1, p2) {
		//return new GPoint(p1.x+((p2.x-p1.x)/2), p1.y+((p2.y-p1.y)/2));
		return new GPoint(p1.y+((p2.y-p1.y)/2), p1.x+((p2.x-p1.x)/2));
	}


	function dezInt(num,size,prefix) { 
	/*  dezInt(3,2) ergibt 03		dezInt(3.1,2) ergibt 03
		dezInt(300,2) ergibt 300	dezInt(3,4,"+") ergibt +++3  */
		prefix=(prefix)?prefix:"0"; 
		var minus=(num<0)?"-":"", result=(prefix=="0")?minus:"";
		num=Math.abs(parseInt(num,10)); size-=(""+num).length; 
		for(var i=1;i<=size;i++) { result+=""+prefix; } 
		result+=((prefix!="0")?minus:"")+num; 
		return result; 
	}


	function dez_2_gms(winkel,stellen) {
		wg = Math.floor(winkel);
		wm = Math.floor((winkel-wg)*60);
		ws = Math.round(((winkel-wg)*60-wm)*60*Math.pow(10,2))/Math.pow(10,2);
		return(dezInt(wg,stellen)+'&deg; '+dezInt(wm,2)+'\' '+dezInt(ws,2)+'\'\'');
	}


	function DEC2DMS(dec) {
		var deg = Math.floor(Math.abs(dec));
		var min = Math.floor((Math.abs(dec)-deg)*60);
		var sec = (Math.round((((Math.abs(dec) - deg) - (min/60)) * 60 * 60) * 100) / 100 ) ;
		deg = dec < 0 ? deg * -1 : deg;
		var dms  = deg + '&deg ' + min + '\' ' + sec + '"';
		return dms;
	}


	function getDistance(lat1, lon1, lat2, lon2, unit) {
		var radlat1 = Math.PI * lat1/180
		var radlat2 = Math.PI * lat2/180
		var radlon1 = Math.PI * lon1/180
		var radlon2 = Math.PI * lon2/180
		var theta = lon1-lon2
		var radtheta = Math.PI * theta/180
		var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
		dist = Math.acos(dist)
		dist = dist * 180/Math.PI
		dist = dist * 60 * 1.1515
		if (unit=="K") { dist = dist * 1.609344 }
		if (unit=="N") { dist = dist * 0.8684 }
		return dist
	}



//------------------------------------------------------------------------------
//
//  Keyboard handling
//
//------------------------------------------------------------------------------

	var key_left = false;
	var key_right = false;

	document.onkeydown = onkeydownHandler;
	document.onkeyup = onkeyupHandler;

	function doNothing(){}

	function onkeydownHandler(e){return keyHandler(e, true);}
	function onkeyupHandler(e){return keyHandler(e, false);}

	function keyHandler(e, flag)
	{
		var evt = e ? e : window.event;
		var keyCode = evt.keyCode ? evt.keyCode : evt.which;

		// alert(keyCode);    

		switch(keyCode)
		{
			//case 13:  alert(keyb_msg);
					  //showAddress(document.getElementById("addr").value);
					 // break;
			//case 32: accelerating = flag; break;
			//case 37: key_left = flag; break;
			//case 39: key_right = flag; break;
			default :  write(); break; //write(String.fromCharCode(keyCode)); break;
		}
		return false;
	}



//------------------------------------------------------------------------------
//
//  Add Buttons
//
//------------------------------------------------------------------------------
//var style_pm = '<div class="Hand" style="position: absolute; top: 0px; left: 0px;"';


function Display_Pos(map) {}
Display_Pos.prototype = new GControl();
Display_Pos.prototype.initialize = function(map) {
	this.map=map;
	var contents = document.createElement("div");
	contents.id = "Display_Pos";
	//contents.style.backgroundColor="#dddddd";
	contents.style.width = "70px"; 
	contents.style.textAlign="center";
	contents.style.fontFamily= "Arial,sans-serif";
	contents.style.fontSize= "10px";
	contents.style.color= "#666666";
	contents.style.height = "22px";
	//contents.style.border="1px solid #8AA5C3";
	//contents.style.border="1px solid #999999";
	//var OptionsHTML = style_pm + 'onclick="Z4();">--<\/div>';
	//contents.innerHTML=OptionsHTML;
	map.getContainer().appendChild(contents);
	return contents;
}

Display_Pos.prototype.getDefaultPosition=function(){
	return new GControlPosition(1,new GSize(0,19));
}

function Z4() {
}


function Display_Lat(map) {}
Display_Lat.prototype = new GControl();
Display_Lat.prototype.initialize = function(map) {
	this.map=map;
	var contents = document.createElement("div");
	contents.id = "Display_Lat";
	//contents.style.backgroundColor="#dddddd";
	contents.style.width = "20px"; 
	contents.style.height = "489px";
	contents.style.textAlign="center";
	contents.style.fontFamily= "Arial,sans-serif";
	contents.style.fontSize= "10px";
	contents.style.color= "#666666";
	//contents.style.border="1px solid #999999";
	//var OptionsHTML = style_pm + 'onclick="Z4();">--<\/div>';
	//contents.innerHTML=OptionsHTML;
	map.getContainer().appendChild(contents);
	return contents;
}

Display_Lat.prototype.getDefaultPosition=function(){
	return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(0,11));
}

function Display_Lng(map) {}
Display_Lng.prototype = new GControl();
Display_Lng.prototype.initialize = function(map) {
	this.map=map;
	var contents = document.createElement("div");
	contents.id = "Display_Lng";
	//contents.style.backgroundColor="#dddddd";
	contents.style.width = "600px"; 
	contents.style.height = "10px";
	contents.style.textAlign="left";
	contents.style.fontFamily= "Arial,sans-serif";
	contents.style.fontSize= "9px";
	contents.style.color= "#666666";
	//contents.style.border="1px solid #999999";
	//var OptionsHTML = style_pm + 'onclick="Z4();">--<\/div>';
	//contents.innerHTML=OptionsHTML;
	map.getContainer().appendChild(contents);
	return contents;
}

Display_Lng.prototype.getDefaultPosition=function(){
	return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(0,0));
}


function Line_X(map) {}
Line_X.prototype = new GControl();
Line_X.prototype.initialize = function(map) {
	this.map=map;
	var contents = document.createElement("div");
	contents.id = "Line_X";
	contents.style.backgroundColor="#dddddd";
	contents.style.width = "580px"; 
	contents.style.height = "1px";
	map.getContainer().appendChild(contents);
	return contents;
}

Line_X.prototype.getDefaultPosition=function(){
	return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(20,250));
}

function Line_Y(map) {}
Line_Y.prototype = new GControl();
Line_Y.prototype.initialize = function(map) {
	this.map=map;
	var contents = document.createElement("div");
	contents.id = "Line_Y";
	contents.style.backgroundColor="#dddddd";
	contents.style.width = "1px"; 
	contents.style.height = "490px";
	map.getContainer().appendChild(contents);
	return contents;
}

Line_Y.prototype.getDefaultPosition=function(){
	return new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize(300,10));
}


	function moveEnd() {
		var center = map.getCenter();
		var zoom = map.getZoom();
		
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var lngSpan = northEast.lng() - southWest.lng();
		var latSpan = northEast.lat() - southWest.lat();
	
		document.getElementById('Display_Lng').innerHTML = '<div class="back"><table border="0" width=100% cellpadding="0" cellspacing="0"><tr valign="top"><td class="lng" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+dez_2_gms(southWest.x,3)+'</td><td class="lng" align="center">'+dez_2_gms(center.x,3)+'</td><td class="lng" align="right">'+dez_2_gms(northEast.x,3)+'&nbsp;</td></tr></table></div>' ;
		document.getElementById('Display_Lat').innerHTML = '<div class="back"><table border="0" height="490" cellpadding="0" cellspacing="0"><tr valign="top"><td class="lat">'+dez_2_gms(northEast.y,2)+'</td></tr><tr valign="middle"><td class="lat">'+dez_2_gms(center.y,2)+'</td></tr><tr valign="bottom"><td class="lat">'+dez_2_gms(southWest.y,2)+'</td></tr></table></div>' ;
	}


	function ReadData() {
		var request = GXmlHttp.create(); 
		request.open("GET", "vac_ip.php", true); 
		request.onreadystatechange = function() { 
			if (request.readyState == 4) { 
				html = request.responseText; 
				//marker.openInfoWindowHtml(html + " " + index); 
				document.getElementById('tb4').innerHTML = html;
			}
		};
		request.send(null); 
	}



//-----------------------------------------------------------------------------
//
//  main
//
//-----------------------------------------------------------------------------


	if (GBrowserIsCompatible()) {
	
	
		var map = new GMap2(document.getElementById("map"), {draggableCursor:"crosshair"});

		map.addControl(new GSmallMapControl(),new GControlPosition(G_ANCHOR_TOP_LEFT,  new GSize(25,15)));
		//map.addControl(new Display_Pos());
		map.addControl(new Display_Lat());
		map.addControl(new Display_Lng());
		//map.addControl(new Line_X());
		//map.addControl(new Line_Y());

		map.setCenter(new GLatLng(51.167,6.94),4);
		var geocoder = new GClientGeocoder();

		var kb = new GKeyboardHandler(map); 

		var icon = new GIcon();
		icon.image = "images/markeri.png";
		icon.shadow = "images/shadow50.png";
		icon.iconSize = new GSize(20,34);
		icon.shadowSize = new GSize(37, 34);
		icon.iconAnchor = new GPoint(10, 32);
		icon.infoWindowAnchor = new GPoint(5, 1);
			
		//---------------------------------------------------------------------
		// Listener
		//---------------------------------------------------------------------


		GEvent.addListener(map, "click", function(overlay, point) {

			//document.getElementById('tb4').innerHTML = overlay.my_adds;

			if (!overlay && !windowOpen) {
				//map.clearOverlays();
			}
		
			if (overlay.my_adds == "info") {
				panto = true;
				zf = parseInt(Math.random()*100000); zf = zf / 1000;     
				if (p2){
					lat = p2lat;
					lng = p2lng;	
				}
				var point = new GLatLng(lat, lng);
				pointArray[0] = point;
				p2 = false;      		
				OpenTheInfoWindow(point);
			}

		});


		GEvent.addListener(map, "dblclick", function(overlay, point) {

			if (!overlay && !windowOpen) {
				panto = true;
				lat=parseInt(point.y * 100000); lat = lat / 100000;
				lng=parseInt(point.x * 100000); lng = lng / 100000;
				zf = parseInt(Math.random()*100000); zf = zf / 1000;     

				var point = new GLatLng(lat, lng);
				pointArray[0] = point;
				OpenTheInfoWindow(point);
			}

		});


		GEvent.addListener(map, "infowindowopen", function(overlay, point) {
			windowOpen = true;
		});


		GEvent.addListener(map, "infowindowclose", function(overlay, point) {
			windowOpen = false;
			document.wait.style.visibility = "hidden";
			//map.clearOverlays();

			if (panto) {
				map.panTo(new GLatLng(lat, lng));
			}

		});


/*
		GEvent.addListener(map, "mousemove", function(point){
			if (!windowOpen) {
				document.getElementById('Display_Pos').innerHTML = "<div class='back'><div class='cord'>" + dez_2_gms(point.x) + "&nbsp;<br>" + dez_2_gms(point.y) + "&nbsp</div></div>";
			}
		});
*/

		GEvent.addListener(map, "moveend", function(point){
		  moveEnd();
		});
				
		GEvent.addListener(map, "mouseover", function(){
			//map.showControls();
		});

		GEvent.addListener(map, "mouseout", function(){
		   //alert(map.getSelectedTab());
			//map.hideControls(); 
		});
 	 

		moveEnd();


	} else {
		alert("Sorry, the Google Maps API is not compatible with this browser");
}

