var geo;
var map;
var allmap;
var clap1;
var marker;
var gbounds;
var rules = {
/*       '#langmenu' : function(el) {
		var options = el.childNodes;
		var bar = '<select id="langmenu" onchange="self.location = $F(\'langmenu\')">';
		for (var i=0;i <options.length; i++) {
			var link = options[i].firstChild.href;
			var option;

			//if (link)  option = '<option value="' + link + '">' + options[i].innerHTML + '</option>\n';
		//	else option = '<option selected="selected">' + options[i].firstChild.nodeValue +'</option>\n';
			bar  += option;
		} 
		bar += '</select>';
	},*/
	'.tx-mmforum-pi5-configleft' :function(el) {
		$$('.box')[0].style.width='740px';
	},
	'.selectacl' : function(el) {
		el.onchange = function() {
		    	$('acl=' +el.id).value = el.value;
		}
	},/*
 	'.hiddenacl' : function(el) {
 		var id = el.id.split('=')[1];
 		var val =  el.value;
   	        $(id).value = val;
	        el.parentNode.parentNode.hide();
	},*/
	'#gaddr' : function(el) {
		el.onblur = function() {
			if ($F('gaddr').length >5) {
				showAddress(); 
			}
		}
	},
	'#gmap' : function(el) {
		map = new GMap2($('gmap'));
   		map.setCenter(new GLatLng( 52.5573,10.04383),3);
    	map.addControl(new GSmallZoomControl());
    	geo = new GClientGeocoder(); 
    	clap1  = new GIcon(G_DEFAULT_ICON, "/typo3/sysext/t3skin/icons/module_tools_user.gif");
	    clap1.iconSize = new GSize(18,22);
    },
    '#allmap' : function(el) {
		allmap = new GMap2($('allmap'));
   		allmap.setCenter(new GLatLng(33,10),1);
    		allmap.addControl(new GSmallZoomControl());
    		allmap.setMapType(G_PHYSICAL_MAP); 
    		gbounds = new GLatLngBounds();
    		clap1  = new GIcon(G_DEFAULT_ICON,"/fileadmin/templates/img/clap.png");
	        clap1.iconSize = new GSize(20,20);
	        clap1.shadow = '/fileadmin/templates/img/shadow.png';
			clap1.transparent = '/fileadmin/templates/img/transparent.png';
			clap1.iconAnchor = new GPoint(5,10);
   		    setMarker(allmap,53,10);
      		setTimeout(function(){allmap.checkResize();},1);
      		new Ajax.Request('index.php?&type=77&id=26&_=' + Math.random(), {
				method: 'post',
				onSuccess: function(transport) {
					var points = eval('(' +transport.responseText+')');
					var c=0;
					for (var i in points) {
						var p = points[i];
						var point = new GLatLng(p.lati,p.longi);
						gbounds.extend(point);
						var marker = createMarker(point,p.stadt,p.zeit);
						allmap.addOverlay(marker);
						c++;
					};
					 allmap.setZoom(allmap.getBoundsZoomLevel(gbounds));
					 allmap.setCenter(gbounds.getCenter());
					allmaps.checkResize();
					
				}
		});
    },
	'.x' : function(el) {
		el.onfocus = function() {
			el.style.border='1px solid black';
		},
		el.onblur = function() {
			el.style.border='1px solid #eee';
		}
	},
	'#loginstarter' : function(el)  {
		el.onclick = function() {
			Effect.BlindDown('loginbox',{to:.9});
		}
	},
	'#loginbox' : function(el) {
		Element.setOpacity(el,'0.9');
	
	},
	'#loginerror' : function(el) {
		$('loginbox').show();
		Effect.Pulsate(el);
	},
//	'#intro' : function(el) {el.setOpacity(.9);},'#menu' : function(el) {el.setOpacity(.7)},
	'#geostart' : function(el) {
		el.onclick = showAddress;      
       },
   	'#latlng' : function() {
		if ($F('latlng').length>1) {
			var latlng = $F('latlng').split(',');
			setMarker(map,latlng[0],latlng[1]);
		}
	}
};


function createMarker(point,ort,zeit) {
    var marker = new GMarker(point,{icon:clap1,title:ort + ' ' + zeit,opacity:'0.6'});
    return marker;
 }


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

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

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

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


Event.observe(window, 'load', Init);
Event.observe(document, 'keypress', function(e){ if(e.keyCode == Event.KEY_DOWN ||e.keyCode==Event.KEY_RIGHT||e.keyCode == Event.KEY_PAGEDOWN) Event.stop(e);});

