var geo;
var marker;
var car;

var rules = {
	'#umap' : function(e) {
		e.style.marginTop='0.5em';
		map = new GMap2($("umap"));
	    car  = new GIcon(G_DEFAULT_ICON, "./caricon.png");
	    car.iconSize = new GSize(32,18);
   		map.setCenter(new GLatLng( 48.893373,8.704383),2);
    	map.addControl(new GSmallMapControl());
    	GEvent.addListener(map, "zoomend", function(){
    		if (marker) {
    			map.panTo(marker.getLatLng());
    		}
    	}); 
		geo = new GClientGeocoder(); 
    	
	},
	'#marke' : function(elem) {
		elem.onchange = function() {
			$('modell').focus();
		}
	},
	'#plzort' : function(elem) {
		elem.autocomplete = 'off';
		new Ajax.Autocompleter('plzort','plzwahl','plzsuche.php',{ 
				paramName:"plz", 
  				minChars:2,
  				updateElement:function(elem) {
  					$('plzort').value = elem.innerHTML;
  				}
		});
	},
	'#kz' : function(elem) {
		elem.autocomplete = 'off';
		elem.style.width='2.5em';
		new Ajax.Autocompleter('kz','kzliste','getkz.php',{ 
				paramName:"nadel", 
  				minChars:1,
  				updateElement:function(elem) {
  					var kz = elem.id.split('_')[1];
  					var kzort = elem.id.split('_')[2];
  					$('kzort').innerHTML = kzort;
  					$('kz').value = kz;
  					$('nr').focus();
  				}
		});
		elem.onkeyup = function() {
			elem.value= $F('kz').toUpperCase()
		},
		elem.onfocus = function() {
			$('kzort').innerHTML = '';
		}
	
	},
	'#blz' : function(elem) {
		elem.autocomplete = 'off';
		elem.style.width='2.5em';
		new Ajax.Autocompleter('blz','blzwahl','getblz.php',{ 
				paramName:"nadel", 
  				minChars:4,
  				updateElement:function(elem) {
  					var blz = elem.id.split('_')[0];
  					var blzname = elem.id.split('_')[1];
  					$('blzname').innerHTML = blzname;
  					$('blz').value = blz;
  				}
		});
		elem.onfocus = function() {
			$('blzname').innerHTML = '';
		},
		elem.onkeyup = function() {
			if ($F('blz').length >4) $('blzname').innerHTML = 'kein Kreditinstitut gefunden.';
			else $('blzname').innerHTML = '';
		}
	
	},

	'.datum' : function(e) {
		e.style.width= '7em';
		e.onclick = function() {
			scwShow(e,e); 
		}
	},
	'#start' : function(e) {
		e.style.width='80px';
		e.onclick = showAddress;
	},
	'#unfallort' : function(e) {
		e.autocomplete="off" 
		e.style.width='300px';
	}
	
	    

};


function Init() {
	Behaviour.register(rules);
	Behaviour.apply(rules); 
}


 
function setMarker(lat,lng) {
		map.clearOverlays();
		marker = new GMarker(new GLatLng(lat,lng),{draggable:true,icon:car});
		var latlng = marker.getLatLng();   
		map.addOverlay(marker);
		map.setCenter(new GLatLng(lat,lng),14);
		GEvent.addListener(marker, "dragend", saveLoc); 
}
 
function saveLoc(loc) {
	var latlng = marker.getLatLng();    				
	geo.getLocations(latlng,showPoint);
}

function showPoint(response) {
        if (response.Status.code == G_GEO_SUCCESS) {
        	place = response.Placemark[0].address;
        	$('unfallort').value = place;
      	} 
}

function showAddress() {
	var search = $F('unfallort');
    geo.getLocations(search, function (result) { 
    	if (result.Status.code == G_GEO_SUCCESS) {
			var p = result.Placemark[0].Point.coordinates;
			$('unfallort').value = result.Placemark[0].address;
			setMarker(p[1],p[0]);
		} else {
			var example = 'Leipzig, Karl-Liebknecht-Straße 2';
			alert("Keine gültige Adresse. \nEin Beispiel wäre: \n" + example  );
			$('unfallort').value= example;
		}
	});
}


Event.observe(window, 'load', Init);


