var map = null;
Event.observe(window, 'load', init);
var rules = {
	'.wminp' : function(el) {
		el.onfocus = function() {
			if (el.getAttribute('rel') == el.getAttribute('value')) {
				el.value = '';
				el.style.color='#444';
			}
		}
	},
	'.edit' : function(el) {
		el.style.cursor='pointer';
		el.onclick = function() {
			alert(el.getAttribute('rel'));
		}
	},
	'#adder' : function(el) {
		el.onclick = function() {
			Effect.Fade(el);
			$('mini_map').style.width='450px';
			Effect.Appear($('editorpanel'));
		}
	},
	'#_export' : function(el) {
		onclick = function() {
			Effect.Fade('newentry');
			Effect.Fade('idwahl');

			Effect.Appear('exportliste');
		
		}
	
	},
	'#formatwahl' :function(el) {
		el.onchange = function() {
			new Ajax.Updater('./index.php?', {
					onLoading:function(request) {
						map.clearOverlays();
					},   
					parameters:'&format='+ el.value,
					evalScripts:true, 
					asynchronous:true
				  }		
			   );
		}
	},
	'#submitter' : function(el) {
		el.onclick = function() {
			var paras = Form.serialize($('newentry'));
			new Ajax.Request('./index.php', {
					onLoading:function(request) {
						map.clearOverlays();
						Effect.Shake('submitter');
					},   
					onComplete:function() {
						window.setTimeout(function() {
							map.addOverlay(new GGeoXml("http://tools.webmasterei.com/velomap/kml/my.kml?_-_=" + Math.random(1000)));
							$('name').value='';
							$('user_lat').value='';
							$('user_lon').value='';
							$('strasse').value='';
							$('bem').value='';
							$('plz').value='';
							$('ort').value='Hamburg';
							Effect.Fade('submitter');
							Effect.Fade('canceller');
						
						Effect.Appear($('markierer'));
							


},2000);
					},
					parameters:paras,
					evalScripts:true, 
					asynchronous:true
				  }		
			   );
		}	   
	},
	'#canceller' : function(el) {
		Element.hide(el);
		el.onclick = function() {
			map.clearOverlays();
			map.addOverlay(new GGeoXml("http://tools.webmasterei.com/velomap/kml/my.kml?_-_=" + Math.random(1000)));			
			map.panTo(new GLatLng(53.5824,10.011891));
			map.setZoom(12);
			Effect.Fade('submitter');
			Effect.Fade('canceller');
			Effect.Appear($('markierer'));
		}
	},
	'#markierer' : function(el) {
		el.onclick = function() {
			var strasse = $F('strasse');
			var ort = $F('ort');
			var str = strasse + ', ' + ort + ',' + 'Germany';
		    if (geocoder) {
				geocoder.getLatLng(str,function(point) {
					if (!point) {
					} else {
					$('user_lat').value = point.y;
    				$('user_lon').value = point.x;  
  					map.setCenter(point,14);
					Effect.Fade('markierer');
					Effect.Appear('canceller');
					var m = new GMarker(point, {
						title:"Neukunde",
						draggable:true
						});
					map.addOverlay(m);
						GEvent.addListener(m,'dragend',function() {
						Map.updateUserPosition(m)});
					}
					}
				);
			}
		}
	}
		
};


function init(event) {
	Behaviour.register(rules);
	Behaviour.apply(rules);
	if (GBrowserIsCompatible()) {
		map = new GMap2($("mini_map"));
		var kml = new GGeoXml("http://tools.webmasterei.com/velomap/kml/my.kml?_-_=" + Math.random(1000));
		map.addOverlay(kml);
		map.setCenter(new GLatLng(53.6,10.011891),11);
		map.addControl(new GSmallZoomControl());
		mgr = new MarkerManager(map, {trackMarkers:true});
		map.setMapType(G_PHYSICAL_MAP);
		geocoder = new GClientGeocoder();
	    new PeriodicalExecuter(toggleButtons,1);
	}
	Behaviour.apply(rules);

}


function toggleButtons() {
	var strasse = $F('strasse'); 
	var name    = $F('name');
	var lat     = $F('user_lat');
	var lon     = $F('user_lon');
	if (name.length>5 && strasse.length>5 && lat.length>5) Element.show($('submitter'))
	else Element.hide($('submitter'));
}

function elem2form(obj) {
	bFound = false;
	var tmp = obj;
    while (true) {
    	if (tmp.nodeName=='BODY') break;
        else if (tmp.nodeName=='FORM') {
        	bFound = true;
            return tmp;
        } else tmp = tmp.parentNode;
    }
}



