var zoomer = 1
var debugParams = 0
var debugData = 0
var precision = 6
var latStart = 52.29504
var lngStart = 12.903442
var zoomStart = 8
var zoomEnd = 17
var pointStart = null
var ie = (navigator.appName.indexOf('Microsoft')!=-1)?true:false;
var map		= null
var iconObj	= null
var icon	= null
var region	= null
var imgRegion	= 'img/region_pur.gif'
var imgRegionOpacity = 30
var inDB = (latDB>0 && lngDB>0) ? true : false
var point = null
var mgrOrt	= null
var mgrObj	= null
var mgrOptionsOrt = {borderPadding:50,maxZoom:13}
//var mgrOptionsObj = {borderPadding:50,maxZoom:18}
var ort = ''
var label = null
var lblObj = []
var frmParams = ''
var ajError = 0
var preis = true
var miete = false
var bebaut = false
var unbebaut = true
var controls = []
var gmarkers = [];
var mCount = 0;
var found = 0
var pics = []
var pathPics = 'bilder/klein_120/'
var iconImg = '5/icon14.png'
var iconImgS = iconImg.replace(/\./,'s.')
var mapClick = 0
var minX = 0
var minY = 0
var maxX = 0
var maxY = 0
var myObjPoints = null
var marker = []
var myLevel = 'ort'
var searchMode = 'ort'
var arrDebug = ['here','from','mode','searchMode','myLevel','idParent','currentLat','currentLng','currentZoom','mCount','frmParams'];
var paramList = {backgroundColor:'#fc6',color:'#006'}
var paramSelList = {backgroundColor:'#f90',color:'#fff'}
var mapInAction = 0
var ctrZoom = null
var zoomVisualParam = {
	sColor:'#f90',
	nOpacity:.2,
	sBorder:'2px solid #a00'
}
var zoomOptionParam = {
	sButtonHTML:"<img src='img/search16.gif' alt='Region mit der Maus markieren' />",
	sButtonZoomingHTML:"<img src='img/search16off.gif' alt='Zoom-Marker deaktivieren' />",
	oButtonStartingStyle:{width:'17px',height:'17px',background:'rgb(0,255,0)',border:'1px solid #000'},
	oButtonStyle:{background:'#fff'},
	oButtonZoomingStyle:{background:'#ccc'},
	nOverlayRemoveMS:6000,
	bStickyZoom:false
}
var zoomCallbackParam = {}
iconObj = new GIcon()
iconObj.image = 'img/icon_k23.png'
iconObj.shadow = 'img/icon_k23s.png'
iconObj.iconSize=new GSize(20,20);
iconObj.shadowSize=new GSize(37,20);
iconObj.iconAnchor=new GPoint(10,20);
iconObj.infoWindowAnchor=new GPoint(10,0);
   
icon = new GIcon()
icon.image = 'img/iconPinnRed.png'
icon.shadow = 'img/iconPinnRedS.png'
icon.iconSize=new GSize(21,21)
icon.shadowSize=new GSize(39,21)
icon.iconAnchor=new GPoint(10,21)
icon.infoWindowAnchor=new GPoint(10,0)

function initGmap() {
	var i;
	Element.setStyle($(here),{color:'#f90',backgroundColor:'#006'});
	if (GBrowserIsCompatible()) {
		var params = {draggableCursor:'move'}
		map = new GMap2($('map'),params);
		controls.push(new GLargeMapControl());
		controls.push(new GMapTypeControl());
		controls.push(new GScaleControl());
		controls.push(new myStartControl());
		if(zoomer==1) {
			controls.push(new GZoomControl(zoomVisualParam,zoomOptionParam));
			for(i=0; i<controls.length; i++) {
				if(i<controls.length-1) map.addControl(controls[i]);
				else map.addControl(controls[i],new GControlPosition(G_ANCHOR_TOP_LEFT,new GSize((ie)?79:127,(ie)?8:7)));
			}
		}
		else {
			for(i=0; i<controls.length; i++) {
				map.addControl(controls[i]);
			}
		}
		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();
		searchMode=(idParent>0)?'ort':'all';
		if(from=='') {
			myLevel = 'ort';
			point = new GLatLng(latStart,lngStart);
			map.setCenter(point);
			map.setZoom(zoomStart);
			myLevel = (map.getZoom()<zoom_obj)?'ort':'obj';
			setMyBounds(map);
			loadObjData();
			setTxtFound();
		}
		else if(from=='detail') {
			mapInAction = 1;
			point = new GLatLng(currentLat,currentLng);
			map.setCenter(point);
			map.setZoom(currentZoom);
			myLevel = (map.getZoom()<zoom_obj)?'ort':'obj';
			setMyBounds(map);
			getList(searchMode);
		}
		map.savePosition();
		mgrOrt = new GMarkerManager(map);
		mgrObj = new GMarkerManager(map);
		setMyBounds(map);
		setOrtIcons();
		if(map.getZoom()<=zoomStart) setRegion();
		
		GEvent.addListener(map,"zoomend",function(o,n){
			mapInAction = 1;
			point = map.getCenter()
			if(n>zoomStart) removeRegion();
			else setRegion();
			currentZoom = n;
			updateAll();
		});
		GEvent.addListener(map,"dragend",function(){
			point = map.getCenter()
			currentLat = point.lat().toFixed(precision)
			currentLng = point.lng().toFixed(precision)
			updateAll()
		});
		GEvent.addListener(map,"dblclick",function(m,p){
			mapInAction = 1;
			point = map.getCenter()
			map.setCenter(point)
		});
		GEvent.addListener(map,"mouseout",function(m,p){
			if(label!=null)	map.removeOverlay(label)
		});
		GEvent.addListener(map,"maptypechanged",function(){
			point = map.getCenter()
			currentZoom = map.getZoom()
			currentLat = point.lat().toFixed(precision)
			currentLng = point.lng().toFixed(precision)
			updateAll()
		});
		removeCenterControl();
		if(debugParams==1) myDebug();
	}
}
/*
if(mode=='suche') {
	if($('list')) {
		Event.observe('list','mouseover',function(e){showThumb(e)},false);
		Event.observe('list','mouseout',function(e){hideThumb(e)},false);
		Event.observe('list','click',function(e){goToObjektFromList(e)},false);
	}
	else {
		Event.stopObserving('list','mouseover',function(e){showThumb(e)},false);
		Event.stopObserving('list','mouseout',function(e){hideThumb(e)},false);
		Event.stopObserving('list','click',function(e){goToObjektFromList(e)},false);
	}
	var i=0;
	for(i=0;i<arrHereLen;i++) {
		Event.observe(arrHere[i],'mouseover',navi.bBtnOver,false);
		Event.observe(arrHere[i],'mouseout',navi.bBtnOut,false);
		Event.observe(arrHere[i],'click',navi.bBtnClick,false);
	}
	observeMyForm();
}
*/
if(mode=='suche') {
	if($('list')) {
		Event.observe('list','mouseover',showThumb,false);
		Event.observe('list','mouseout',hideThumb,false);
		Event.observe('list','click',goToObjektFromList,false);
	}
	else {
		Event.stopObserving('list','mouseover',showThumb,false);
		Event.stopObserving('list','mouseout',hideThumb,false);
		Event.stopObserving('list','click',goToObjektFromList,false);
	}
	var i=0;
	for(i=0;i<arrHereLen;i++) {
		Event.observe(arrHere[i],'mouseover',navi.bBtnOver,false);
		Event.observe(arrHere[i],'mouseout',navi.bBtnOut,false);
		Event.observe(arrHere[i],'click',navi.bBtnClick,false);
	}
	observeMyForm();
}
