/* 
var G_INCOMPAT = false;function GScript(src) {document.write('<' + 'script src="' + src + '"' +' type="text/javascript"><' + '/script>');}function GBrowserIsCompatible() {if (G_INCOMPAT) return false;return true;}function GVerify() {}function GApiInit() {if (GApiInit.called) return;GApiInit.called = true;GAddMessages({160: '\x3cH1\x3eServer-Fehler\x3c/H1\x3eEin kurzzeitiger Server-Fehler ist aufgetreten und Ihre Anforderung konnte nicht ausgeführt werden. \x3cp\x3eWiederholen Sie den Vorgang in etwa einer Minute.\x3c/p\x3e',1415: ',',1416: '.',1547: 'Meilen',1616: 'km',4100: 'm',4101: 'ft',10018: 'Laden...',10021: 'Vergrößern',10022: 'Verkleinern',10024: 'Ziehen zum Zoomen',10029: 'Zurück zum letzten Ergebnis',10049: 'Karte',10050: 'Satellit',10093: 'Nutzungsbedingungen',10109: 'm',10110: 'ft',10111: 'Karte',10112: 'Sat',10116: 'Hybrid',10117: 'Hyb',10120: 'Karten mit diesem Zoomwert stehen für diese Region leider nicht zur Verfügung. \x3cp\x3eVerkleinern Sie die Ansicht für einen besseren Überblick.\x3c/p\x3e',10121: 'Grafiken mit diesem Zoomwert stehen für diese Region leider nicht zur Verfügung. \x3cp\x3eVerkleinern Sie die Ansicht für einen besseren Überblick.\x3c/p\x3e',10507: 'Nach links verschieben',10508: 'Nach rechts verschieben',10509: 'Nach oben verschieben',10510: 'Nach unten verschieben',10511: 'Stadtplan anzeigen',10512: 'Satellitenbilder anzeigen',10513: 'Satellitenbilder mit Straßennamen anzeigen',10806: 'Klicken, um diese Region in Google Maps anzuzeigen',10807: 'Verkehr',10808: 'Verkehr anzeigen',10809: 'Verkehr ausblenden',12150: '%1$s auf %2$s',12151: '%1$s auf %2$s Höhe %3$s',12152: '%1$s auf %2$s zwischen %3$s und %4$s',10985: 'Vergrößern',10986: 'Verkleinern',11047: 'Karte hier zentrieren',11089: '\x3ca href\x3d\x22javascript:void(0);\x22\x3eVergrößern\x3c/a\x3e, um Verkehr für diese Region anzuzeigen',11259: 'Vollbild',11751: 'Stadtplan mit Gelände anzeigen',11752: 'Stil:',11757: 'Kartenstil ändern',11758: 'Gelände',11759: 'Gelände',11794: 'Labels anzeigen',11303: 'Street View - Hilfe',11274: 'Zur Verwendung der Street View benötigen Sie Adobe Flash Player, Version %1$d oder neuer.',11382: 'Holen Sie sich den neuesten Flash Player.',11314: 'Leider ist die Street View momentan aufgrund hoher Nachfrage nicht verfügbar.\x3cbr\x3eBitte versuchen Sie es zu einem späteren Zeitpunkt erneut!',1559: 'N',1560: 'S',1561: 'W',1562: 'O',1608: 'NW',1591: 'NO',1605: 'SW',1606: 'SO',11907: 'Dieses Bild ist nicht mehr verfügbar',10041: 'Hilfe',12471: 'Aktuelle Position',12492: 'Earth',0: ''});if (!GValidateKey("")) {G_INCOMPAT = true;return;}}var GLoad;(function() {var jslinker={version:"132",jsbinary:[{id:"maps2",url:"http://maps.google.com/intl/de_ALL/mapfiles/132e/maps2/main.js"},{id:"maps2.api",url:"http://maps.google.com/intl/de_ALL/mapfiles/132e/maps2.api/main.js"},{id:"gc",url:"http://maps.google.com/intl/de_ALL/mapfiles/132e/gc.js"}]};GLoad = function(callback) {var apiCallback = callback || GLoadApi;GApiInit();var opts = {public_api:true,export_legacy_names:true,jsmain:"http://maps.google.com/intl/de_ALL/mapfiles/132e/maps2.api/main.js"};var pageArgs = {};var jsinit = window.GJsLoaderInit;jsinit && jsinit(opts.jsmain);apiCallback(["http://mt0.google.com/mt?v\x3dw2.86\x26hl\x3dde\x26","http://mt1.google.com/mt?v\x3dw2.86\x26hl\x3dde\x26","http://mt2.google.com/mt?v\x3dw2.86\x26hl\x3dde\x26","http://mt3.google.com/mt?v\x3dw2.86\x26hl\x3dde\x26"], ["http://khm0.google.com/kh?v\x3d33\x26hl\x3dde\x26","http://khm1.google.com/kh?v\x3d33\x26hl\x3dde\x26","http://khm2.google.com/kh?v\x3d33\x26hl\x3dde\x26","http://khm3.google.com/kh?v\x3d33\x26hl\x3dde\x26"], ["http://mt0.google.com/mt?v\x3dw2t.86\x26hl\x3dde\x26","http://mt1.google.com/mt?v\x3dw2t.86\x26hl\x3dde\x26","http://mt2.google.com/mt?v\x3dw2t.86\x26hl\x3dde\x26","http://mt3.google.com/mt?v\x3dw2t.86\x26hl\x3dde\x26"],"","","",false,"google.maps.",opts,["http://mt0.google.com/mt?v\x3dw2p.87\x26hl\x3dde\x26","http://mt1.google.com/mt?v\x3dw2p.87\x26hl\x3dde\x26","http://mt2.google.com/mt?v\x3dw2p.87\x26hl\x3dde\x26","http://mt3.google.com/mt?v\x3dw2p.87\x26hl\x3dde\x26"],jslinker,pageArgs);}})();function GUnload() {if (window.GUnloadApi) {GUnloadApi();}}var _mIsRtl = false;var _mF = [ ,,false,true,true,100,4096,"bounds_cippppt.txt","cities_cippppt.txt","local/add/flagStreetView",true,true,400,true,true,,true,,true,"/maps/c/ui/HovercardLauncher/dommanifest.js",,true,true,false,false,true,true,false,true,true,true,,true,true,,true,,true,"http://maps.google.com/maps/stk/fetch",0,,true,true,,,true,,,,"http://maps.google.com/maps/stk/style",true,"107485602240773805043.00043dadc95ca3874f1fa",,"US,AU,NZ,MX,DK,FR,BE,CA,DE,GB,IE,PR,PT,RU,SG,JM",false,1000,42,"http://cbk0.google.com",false,true,"ar,iw",false,true,,true,true,,false,"http://suggestqueries.google.cn/complete/maps","http://pagead2.googlesyndication.com/pagead/imgad?id\x3dCMKp3NaV5_mE1AEQEBgQMgieroCd6vHEKA",false,,true,true,,false,5000,true,,false,"SS","en,fr",false,"tbr","Earth","SATELLITE_3D_MAP",false,true,true,true,"getEarthInstance",false,true,true,true,true,,true,true,"","1",true,false,false,true,false,true,25,"0.25","AU,BE,FR,NZ,US",true,false,false,false,500,"http://chart.apis.google.com/chart?cht\x3dqr\x26chs\x3d80x80\x26chld\x3d|0\x26chl\x3d",false,,,true,false,false,,true,false,false,false,true,false,false,true,false,false,true,false,,false,false,false,false,10,false,false,true,false,false,false,10,"infowindow_v1","http://csi.gstatic.com/csi",false,false,10,"http://mt.google.com/maptilecompress?t\x3d1\x26c\x3d10","http://mt.google.com/maptilecompress?t\x3d2\x26q\x3d20","http://mt.google.com/maptilecompress?t\x3d3\x26q\x3d25","http://mt.google.com/maptilecompress?t\x3d6\x26q\x3d30",,false,false,"US,AU,NZ,FR,DK,MX,BE,CA,DE,GB,IE,PR,PT,RU,SG,JM",false,true,"windows-firefox,windows-ie,windows-mozilla",false,false,20000,400,30,,false ];var _mHost = "http://maps.google.com";var _mUri = "/maps";var _mDomain = "google.com";var _mStaticPath = "http://maps.google.com/intl/de_ALL/mapfiles/";var _mJavascriptVersion = G_API_VERSION = "132e";var _mTermsUrl = "http://www.google.com/intl/de_ALL/help/terms_maps.html";var _mHL = "de";var _mGL = "";var _mLocalSearchUrl = "http://www.google.com/uds/solutions/localsearch/gmlocalsearch.js";var _mTrafficEnableApi = true;var _mTrafficTileServerUrls = ['http://mt0.google.com/mapstt','http://mt1.google.com/mapstt','http://mt2.google.com/mapstt','http://mt3.google.com/mapstt'];var _mCityblockLatestFlashUrl = "http://maps.google.com/local_url?q=http://www.adobe.com/shockwave/download/download.cgi%3FP1_Prod_Version%3DShockwaveFlash&amp;dq=&amp;file=api&amp;s=ANYYN7manSNIV_th6k0SFvGB4jz36is1Gg";var _mCityblockLogUsage = true;var _mCityblockInfowindowLogUsage = false;var _mCityblockDrivingDirectionsLogUsage =false;var _mCityblockPrintwindowLogUsage =false;var _mCityblockPrintwindowImpressionLogUsage =false;var _mCityblockUseSsl = false;var _mSavedLocationsLogUsage = true;var _mAddressBookUrl = "/maps?file\x3dapi\x26ie\x3dUTF8\x26hl\x3dde\x26sidr\x3d1\x26oi\x3dsl_menu_edit";var _mWizActions = {hyphenSep: 1,breakSep: 2,dir: 3,searchNear: 6,savePlace: 9};var _mIGoogleUseXSS = false;var _mIGoogleEt = "bj6MYAfX";var _mIGoogleServerTrustedUrl = "";var _mMMEnablePanelTab = true;var _mIdcRouterPath = "/maps/mpl/router";var _mIdcRelayPath = "/maps/mpl/relay";var _mIGoogleServerUntrustedUrl = "http://maps.gmodules.com";var _mMplGGeoXml = 100;var _mMplGPoly = 1000;var _mMplMapViews = 100;var _mMplGeocoding = 100;var _mMplDirections = 100;var _mMplEnableGoogleLinks = true;var _mMMEnableAddContent = true;var _mMSEnablePublicView = true;var _mMSSurveyUrl = "";var _mSatelliteToken = "fzwq2khhteS-YlT7_sCl6YSUhtC6zN2rsozbkg";var _mMapCopy = "Kartendaten \x26#169;2008";var _mSatelliteCopy = "Grafiken \x26#169;2008";var _mGoogleCopy = "\x26#169;2008 Google";var _mPreferMetric = false;var _mPanelWidth = 23.75; var _mMapPrintUrl = 'http://www.google.com/mapprint';var _mSvgEnabled = true;var _mSvgForced = false;var _mLogInfoWinExp = true;var _mLogPanZoomClks = false;var _mLogWizard = true;var _mLogLimitExceeded = true;var _mLogPrefs = true;var _mMMLogMyMapViewpoints = true;var _mSXBmwAssistUrl = '';var _mSXCarEnabled = true;var _mSXServices = {};var _mSXPhoneEnabled = true;var _mSXQRCodeEnabled = false;var _mLyrcItems = [{label:"12102",layer_id:"lmc:panoramio"},{label:"12210",layer_id:"lmc:wikipedia_de"}];var _mAttrInpNumMap = {'Hundert': 100,'Tausend': 1000,'k': 1000,'Million': 1000000,'Mio.': 1000000,'Milliarde': 1000000000,'Mrd.': 1000000000};var _mMSMarker = 'Ortsmarke';var _mMSLine = 'Linie';var _mMSPolygon = 'Form';var _mMSImage = 'Bild';var _mDirectionsDragging = true;var _mDirectionsEnableCityblock = true;var _mDirectionsEnableApi = true;var _mAdSenseForMapsEnable = "true";var _mAdSenseForMapsFeedUrl = "http://pagead2.googlesyndication.com/afmaps/ads";var _mSesameLearnMoreUrl = "http://maps.google.com/support/bin/answer.py?answer\x3d68474\x26hl\x3dde#modify";var _mSesameSurveyLink = "";var _mSesameSurveyUrls = ["","","",""];var _mSesameMoveLearnMoreUrl ="http://maps.google.com/support/bin/answer.py?answer\x3d68474\x26hl\x3dde#modify";var _mReviewsWidgetUrl = "/reviews/scripts/annotations_bootstrap.js?hl\x3dde\x26amp;gl\x3d";var _mIsLeafEnabled = true;var _mLearnMoreLogUsage = true;var _mTumblerLoaderV1Url = _mStaticPath + "ge/v/1/4/loader.js";var _mUserPreferences = false;function GLoadMapsScript() {if (GBrowserIsCompatible()) {GScript("http://maps.google.com/intl/de_ALL/mapfiles/132e/maps2.api/main.js");}}(function() {if (!window.google) window.google = {};if (!window.google.maps) window.google.maps = {};var ns = window.google.maps;ns.BrowserIsCompatible = GBrowserIsCompatible;ns.Unload = GUnload;})();GLoadMapsScript();
 */
var map;
var gdir;
var gpoint;
var mgr;
var geocoder;
var address;
var myGecodes = new Array();
var myGeocodeUmkreis = new Array();
var myUmkreis;
var myCustomers = new Array();
var myCatFilter = new Array();
var isSetUmkreis = false;
// SKGeocode

function SKGeocode(lat, lon) {
	this._lat = lat;
	this._lon = lon;
}

SKGeocode._lat;
SKGeocode._lon;

SKGeocode.prototype.getLat = function() {
	return this._lat;
}
SKGeocode.prototype.getLon = function() {
	return this._lon;
}

function addGeocode(lat, lon) {
	myGecodes.push(new SKGeocode(lat, lon));
	alert("new GC");
}

var SKMapReferenz = new SKGeocode(47.659668, 9.170665);
var SKMapInitZoom=false;
/*
 * Customer
 */
function Customer(titel, zip, city, areacode, phone, street, nr, link, img,
		lat, lon, cat) {
	this._titel = titel;
	this._zip = zip;
	this._city = city;
	this._street = street;
	this._areacode = areacode;
	this._phone = phone;
	this._nr = nr;
	this._link = link;
	this._img = img;
	this._lat = lat;
	this._lon = lon;
	this._cat = cat;
}

function addCustomer(customer) {
	myCustomers.push(customer);

}
/*
 * init sidebar map for search results
 */
function initOverviewMap() {
	el = document.getElementById("googlemap");
	if (el) {
		createOverviewMap(el);
		return;
	}

}
/*
 * init sidebar map for detail page
 */
function initDetailMap() {
	el = document.getElementById("googleMapDetail");
	if (el) {
		createDetailMap(el);
		return;
	}
}
/*
 * global init
 */
function initialize() {
	el = document.getElementById("googlemap");
	if (el) {
		map = new GMap2(el);
		createOverviewMap(el);
		return;
	}
	el = document.getElementById("googleMapDetail");
	if (el) {
		map = new GMap2(el);
		createDetailMap(el);
		return;
	}
	el = document.getElementById("googleMap2");
	if (el) {
		map = new GMap2(el);
		createPremiumMap(el);
		return;
	}

}
/*
 * Inhalt des Elements lon_i, lat_i code lon | lat null Element nicht vorhanden
 */
function getLonLat(code, i) {
	var el = document.getElementById(code + "_" + i);
	var geo = "";

	if (el) {
		geo = el.value;
	} else
		return null;
	return geo;
}
/*
 * Premium Eintrag
 */
function getPremium(i) {
	var el = document.getElementById("premium" + "_" + i);
	return el;
}
function getDeluxe(i) {
	var el = document.getElementById("deluxe" + "_" + i);
	return el;
}

/*
 * Detailmap, center (lat,lon)
 */
function createDetailMap(el) {
	lon = getLonLat("lon", 1);
	lat = getLonLat("lat", 1);
	var point = new GLatLng(lat, lon);
	map.setCenter(new GLatLng(lat, lon), 12);
	var mark = addRedMarker(lat, lon, -1);
	map.addControl(new GLargeMapControl);
	createRouteWindowSmall(point,mark);

}
function setDirections(fromAddress, toAddress) {
    gdir.load("from: " + fromAddress + " to: " + toAddress,
              { "locale": "de_DE" });
    return false;
  }

/*
 * Overview Map
 */
function createOverviewMap(el) {
	// map = new GMap2(el);
	// Bodensee Friedrichshafen
	// map.setCenter(new GLatLng(47.648209,9.498906), 9);

	map.setCenter(new GLatLng(SKMapReferenz.getLat(), SKMapReferenz.getLon()),
			7);
	// add marker

	var bounds = new GLatLngBounds();
	var sw;
	var ne;
	var m;
	var i = 0;
	var next = true;
	while (next) {
		lon = getLonLat("lon", i);
		lat = getLonLat("lat", i);
		if ((lon == null || lat == null)) {
			next = false;
		} else if (lon != 0 && lat != 0) {
			bounds.extend(new GLatLng(lat, lon));
			ne = bounds.getNorthEast();
			sw = bounds.getSouthWest();
			bounds = new GLatLngBounds(sw, ne);
			if (getPremium(i) != null || getDeluxe(i) != null) {
				m = addRedMarker(lat, lon, i);
				point = new GLatLng(lat, lon);
				createInfoWindowSmall(point, m, myCustomers[i]);

			}
			// set flag to hitlist
			// document.getElementById
			// ("flag_"+i).src="/img/fahne-rot-karte"+(i+1)+".png";
			else {
				m = addBasicMarker(lat, lon, i);
				point = new GLatLng(lat, lon);
				createInfoWindowSmall(point, m, myCustomers[i]);

			}

		}
		i++;
	}
	// addMarker (map,10);
	/*
	 * GEvent.addListener(map, "click", getAddress); geocoder = new
	 * GClientGeocoder();
	 */
	map.addControl(new GLargeMapControl);
	if ( sw != null){
		map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	} else {
		map.setCenter(new GLatLng(SKMapReferenz.getLat(), SKMapReferenz.getLon()));
	}
		
}
function createPremiumMap(el) {
	// map = new GMap2(el);
	// Bodensee Friedrichshafen
	// map.setCenter(new GLatLng(47.648209,9.498906), 9);
	map.clearOverlays();
	//map.setCenter(new GLatLng(SKMapReferenz.getLat(), SKMapReferenz.getLon()));
	map.addControl(new GLargeMapControl);

	// add marker
	var l = myCustomers.length;
	var next = true;
	var markers = new Array();
	var point;
	var red;
	var bounds = new GLatLngBounds();
	var sw;
	var ne;

	for ( var i = 0; i < l; i++) {

		lat = myCustomers[i]._lat;
		lon = myCustomers[i]._lon;
		if (filter(i)) {
			
			// mit Markermanager
			point = new GLatLng(lat, lon);
			red = createRedMarker(lat, lon, -1);
			createInfoWindow(point, red, myCustomers[i]);
			markers.push(red);

			// bounds 
			if (lat != 0 && lon != 0) {
			bounds.extend(new GLatLng(lat, lon));
			ne = bounds.getNorthEast();
			sw = bounds.getSouthWest();
			bounds = new GLatLngBounds(sw, ne);
			}
			// einzelne generierung
			/*
			 * red = addRedMarker (lat,lon,-1); var point = new GLatLng(lat,lon)
			 * createInfoWindow (point,red,myCustomers[i])
			 */// convenience methode zur einzelnen generierung
			// addRedMarkerWithInfo(myCustomers[i]);
		}
	}
	
	if ( sw == null ){
		map.setCenter(new GLatLng(SKMapReferenz.getLat(), SKMapReferenz.getLon()),7);
		
	} else {

		if (!SKMapInitZoom) {
			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
			SKMapInitZoom = true;
		}else {
		map.setCenter(bounds.getCenter());
		}
	}
	if (mgr == null) {
		mgr = new MarkerManager(map);
	}
	mgr.clearMarkers();
	mgr.addMarkers(markers, map.getZoom());
	mgr.refresh();

}
function startUmkreisSuche(address, umkreis) {
	var adr = document.getElementById(address);
	var ukr = document.getElementById(umkreis);
	el = document.getElementById("googleMap2");

	if (adr.value != "") {
		myUmkreis = $j(ukr).val();
		//myUmkreis = ukr.value;
		isSetUmkreis = false;
		getLocation(adr.value);
		if (el) {
			setTimeout("waitForResponse (el)", 10);
			return false;
		}
	} else {
		myUmkreis = ukr.value;
		myGeocodeUmkreis.splice(0, 2);
		if (el) {

			createPremiumMap(el);
			return false;
		}
	}
	return false;
}
/*
 * address ort oder PLZ callback setGeocodeUmkreis
 */
function getLocation(address) {
	address = address + ",de";
	geocoder = new GClientGeocoder();
	geocoder.getLocations(address, setGeocodeUmkreis);

}
function waitForResponse(el) {
	if (!isSetUmkreis)
		setTimeout("waitForResponse(el)", 10);

	createPremiumMap(el);
}
/*
 * setzt globale myGeocodeUmkreis
 */
function setGeocodeUmkreis(response) {

	if (!response || response.Status.code != 200) {
		alert("Status Code:" + response.Status.code);
	} else {
		place = response.Placemark[0];

		myGeocodeUmkreis[0] = (place.Point.coordinates[1]);
		myGeocodeUmkreis[1] = (place.Point.coordinates[0]);
		isSetUmkreis = true;
	}
}

function setFilter(el) {
	if (el.checked) {
		myCatFilter.push(el.value);
	} else {

		for ( var i = 0; i < myCatFilter.length; i++) {
			if (myCatFilter[i] == el.value)
				myCatFilter.splice(i, 1);
		}
	}
	el = document.getElementById("googleMap2");
	if (el) {
		createPremiumMap(el);
		return;
	}

}
/*
 * true: _cat und Umkreis entsprechen den Kriterien aus myUmkreis,
 * myGeocodeUmkreis, myCatFilter false: sonst
 */
function filter(index) {
	return catFilter(index) && umkreisFilter(index);
}
/*
 * umkreisfilter
 */
function umkreisFilter(index) {
	// test for category
	var l = myGeocodeUmkreis.length;
	var ret = true;
	if (l > 0) {
		var latLow = myGeocodeUmkreis[0] - (myUmkreis) / 111;
		var latHigh = myGeocodeUmkreis[0] + (myUmkreis) / 111;
		var lonLow = myGeocodeUmkreis[1] - (myUmkreis) / 77;
		var lonHigh = myGeocodeUmkreis[1] + (myUmkreis) / 77;
		ret = false;
		if ((myCustomers[index]._lat >= latLow && myCustomers[index]._lat <= latHigh)
				&& (myCustomers[index]._lon >= lonLow && myCustomers[index]._lon <= lonHigh)) {
			ret = true;
			/*
			 * alert ("ll:"+latLow+"lh:"+latHigh+"ol:"+lonLow+"oh:"+lonHigh+"" +
			 * "\nGeo:"+myCustomers[index]._lat+":::"+myCustomers[index]._lon);
			 */}

	}
	return ret;
}

/*
 * cat Filter
 */
function catFilter(index) {
	// test for category
	var l = myCatFilter.length;
	var ret = true;
	if (l > 0) {
		ret = false;
		for ( var i = 0; i < l; i++) {
			var ll = myCustomers[index]._cat.length;
			for ( var j = 0; j < ll; j++) {
				/*
				 * alert
				 * (":"+myCustomers[index]._cat[j]+":"+myCatFilter[i]+":");
				 */if (myCustomers[index]._cat[j] == myCatFilter[i]) {
					ret = true;
				}
			}
		}
	}
	return ret;

}
/*
 * create red marker
 */
function createRedMarker(lat, lon, i) {
	var point = new GLatLng(lat, lon);
	var myIcon = getIcon(i + 1);
	markerOptions = {
		icon :myIcon,
		zIndexProcess :redFlagIndex
	};
	return new GMarker(point, markerOptions);
}
/*
 * create info window
 */
function createInfoWindow(point, marker, customer) {
	/*
	 * <div class="img_wrap"> <div class="list_img"><img wicket:id="thumbnail"
	 * src="img/marketplace_jpg/3292253.jpg" border="0" width="45" height="34"
	 * alt="" />
	 * 
	 * </div> </wicket:enclosure> <div class="name"><a
	 * wicket:id="customerLink"><wicket:message wicket:id="title" /></a> |
	 * Tel: (0<span wicket:id="areaCode" />) <span wicket:id="phone" /></div>
	 * <div class="adress"><span wicket:id="street" /> <span
	 * wicket:id="streetNr" /><span wicket:id="streetNrAddon" />, <span
	 * wicket:id="zip" /> <span wicket:id="city" /></div>
	 */

	GEvent
			.addListener(
					marker,
					"mouseover",
					function() {
						var myHtml = ""
								+ "	<div class='list_karte'><div class=''name'><img src='"
								+ customer._img
								+ "' border='0' width='45'	height='34' alt='mein bild' /><br><a class='lnk' href='"
								+ customer._link + "'>" + customer._titel
								+ "</a><br>Tel: 0<span>" + customer._areacode
								+ "</span>-<span>" + customer._phone
								+ "</span></div><div class='adress'>"
								+ customer._street + " <span>" + customer._nr
								+ ", <span>" + customer._zip + "</span> <span>"
								+ customer._city + "</span></div>" + "</div>";
						map.openInfoWindowHtml(point, myHtml);

					});

}

function createInfoWindowSmall(point, marker, customer) {
	/*
	 * <div class="img_wrap"> <div class="list_img"><img wicket:id="thumbnail"
	 * src="img/marketplace_jpg/3292253.jpg" border="0" width="45" height="34"
	 * alt="" />
	 * 
	 * </div> </wicket:enclosure> <div class="name"><a
	 * wicket:id="customerLink"><wicket:message wicket:id="title" /></a> |
	 * Tel: (0<span wicket:id="areaCode" />) <span wicket:id="phone" /></div>
	 * <div class="adress"><span wicket:id="street" /> <span
	 * wicket:id="streetNr" /><span wicket:id="streetNrAddon" />, <span
	 * wicket:id="zip" /> <span wicket:id="city" /></div>
	 */

	GEvent
			.addListener(
					marker,
					"mouseover",
					function() {

						
						var myHtml = ""
								+ "	<div class='list_karte'><div class='name' ><a class='lnk' href='"
								+ customer._link + "'>" + customer._titel
								+ "</a><br>Tel: 0<span>" + customer._areacode
								+ "</span>-<span>" + customer._phone
								+ "</span></div>" + "</div>";
						map.openInfoWindowHtml(point, myHtml);

					});

}
function createRouteWindowSmall(point, marker) {
	/*
      dirn.loadFromWaypoints(["37.600470,-122.384050", 
           "37.789010,-122.425420", 
           "38.029940,-122.255420", 
           "39.026450,-119.945700"] ); 
	 */

	gdir = new GDirections(map);
    GEvent.addListener(gdir, "initialize", onGDirectionsLoad);
    GEvent.addListener(gdir, "error", handleErrors);

	//gpoint = point;
	gpoint = ""+point.lat() + ","+point.lng();
	var myPoint2 = (point.lng()+0.1) + ","+point.lat();
	//alert (myPoint2);
	GEvent
			.addListener(
					marker,
					"mouseover",
					function() {

						var myHtml = ""
								+ "	<div class='list_karte'>Wegbeschreibung<br/>"
								+"<form action='' "
								//+"onsubmit='gdir.loadFromWaypoints([\"37.600470,-122.384050\",  \"39.026450,-119.945700\"]);return false'>"
								//+"onsubmit='gdir.loadFromWaypoints([this.from.value,  \"Ostrach, im grund 7\"]);return false'>"
								+"onsubmit='gdir.loadFromWaypoints([this.from.value, gpoint ]);map.closeInfoWindow();return false'>"
								+"von: <input type='text' name='from'><br/>"
								+"<input type='submit' value='OK'/></form</div>";
						map.openInfoWindowHtml(point, myHtml);

					});
 
}

/*
 * Add Marker to Map
 */
function addRedMarker(lat, lon, i) {
	var red = createRedMarker(lat, lon, i);
	map.addOverlay(red);
	return red;
}
/*
 * Fill Array with Markers and Info Window
 */
function addRedMarkerToArray(customer) {
	var point = new GLatLng(customer._lat, customer._lon);
	var red = addRedMarker(lat, lon, -1);

}

/*
 * Marker with Info Window
 */
function addRedMarkerWithInfo(customer) {
	var point = new GLatLng(customer._lat, customer._lon);
	var red = addRedMarker(lat, lon, -1);
	createInfoWindow(point, red, customer);
}
function addBasicMarker(lat, lon, i) {
	var point = new GLatLng(lat, lon);
	var myIcon = getGreyIcon(i + 1);
	var m;
	markerOptions = {
		icon :myIcon
	};
	m = new GMarker(point, markerOptions);
	map.addOverlay(m);
	return m;
}

function redFlagIndex() {
	return 5;
}
/*
 * deprecated
 */
function addMarker(map, anzahl) {
	// Add 10 markers to the map at random locations
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	var lngSpan = northEast.lng() - southWest.lng();
	var latSpan = northEast.lat() - southWest.lat();

	for ( var i = 0; i < anzahl; i++) {
		var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
				southWest.lng() + lngSpan * Math.random());
		var myIcon = getIcon(i + 1);

		markerOptions = {
			icon :myIcon
		};
		map.addOverlay(new GMarker(point, markerOptions));
	}

}
/*
 * gets Flag for Map
 */
function getIcon(index) {
	var myIcon = new GIcon();
	if (index > 0) {
		myIcon.image = "/img/fahne-rot-karte" + (index) + ".png";
	} else {
		myIcon.image = "/img/fahne-rot-karte.png";
	}

	myIcon.iconSize = new GSize(30, 31);
	myIcon.shadowSize = new GSize(37, 31);
	myIcon.iconAnchor = new GPoint(9, 31);
	myIcon.infoWindowAnchor = new GPoint(9, 2);
	return myIcon;
}

function getGreyIcon(index) {
	var myIcon = new GIcon();
	myIcon.image = "/img/fahne-grau-karte.png";
	myIcon.iconSize = new GSize(30, 31);
	myIcon.shadowSize = new GSize(37, 31);
	myIcon.iconAnchor = new GPoint(9, 31);
	myIcon.infoWindowAnchor = new GPoint(9, 2);
	return myIcon;
}

/*
 * test
 */
function getAddress(overlay, latlng) {
	if (latlng != null) {
		address = latlng;
		geocoder.getLocations(latlng, showAddress);
	}
}

function showAddress(response) {
	map.clearOverlays();
	if (!response || response.Status.code != 200) {
		alert("Status Code:" + response.Status.code);
	} else {
		place = response.Placemark[0];
		point = new GLatLng(place.Point.coordinates[1],
				place.Point.coordinates[0]);
		marker = new GMarker(point);
		map.addOverlay(marker);
		marker.openInfoWindowHtml('<b>orig latlng:</b>' + response.name
				+ '<br/>' + '<b>latlng:</b>' + place.Point.coordinates[0] + ","
				+ place.Point.coordinates[1] + '<br>' + '<b>Status Code:</b>'
				+ response.Status.code + '<br>' + '<b>Status Request:</b>'
				+ response.Status.request + '<br>' + '<b>Address:</b>'
				+ place.address + '<br>' + '<b>Accuracy:</b>'
				+ place.AddressDetails.Accuracy + '<br>'
				+ '<b>Country code:</b> '
				+ place.AddressDetails.Country.CountryNameCode);
	}
}
function onGDirectionsLoad(){ 
    // Use this function to access information about the latest load()
    // results.

    // e.g.
// document.getElementById("getStatus").innerHTML = gdir.getStatus().code;
// and yada yada yada...
	map.closeInfoWindow();
}

function handleErrors(){
	   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	     alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
	     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
	   
	   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	     alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);

	//   else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS)  <--- Doc bug... this is either not defined, or Doc is wrong
	//     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	     
	   else if (gdir.getStatus().code == G_GEO_BAD_KEY)
	     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);

	   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
	     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	    
	   else alert("An unknown error occurred.");
	   
	}


