(function ($) {
	var map;
	var myurl = document.URL;
	var shortet = myurl.split('/index.html')
	/** Google Maps Behaviors **/
	Drupal.behaviors.GoogleMaps = {
		attach: function(context, settings){
			
			$(document).ready(function() {
				var bgrad = document.getElementById('bgrad').innerHTML;
				var lgrad = document.getElementById('lgrad').innerHTML;

				gmaps_initialize(bgrad, lgrad);
			});
			/** Maximalen und Minimalen Zoom festlegen **/
			var MaxZoom = 21;
			var MinZoom = 13;
		
			/** Funktion für den Vergrößern Button **/
			function FullscreenControl(controlDiv, map) {
				
				/**
				 * Festlegen des CSS Stils,
				 * Wird an diesem Punkt eher zur Positionierung des Buttons genutzt
				 * 3px vom nächsten Element Abstand und 5px vom unteren Rand
				 **/
				controlDiv.style.paddingLeft = '3px';
				controlDiv.style.paddingBottom = '5px';

				/** CSS für den Button selbst **/
				var controlUI = document.createElement('DIV');
				controlUI.style.cursor = 'pointer';
				controlUI.style.background = 'transparent url(./fullscreen.png) no-repeat';
				controlUI.style.width = '29px';
				controlUI.style.height = '26px';
				controlUI.title = 'Klicken um Kartenbereich zu vergroessern';
				controlDiv.appendChild(controlUI);
			
				/** Klick Event für das aus zoomen der Map **/
				google.maps.event.addDomListener(controlUI, 'click', function() {
					if($("#map").height() == '300')
					{
						$("#map").animate({height: "585px"}, "slow", function(){
							google.maps.event.trigger(map, 'resize');
						});
					}
					if($("#map").height() == '585')
					{
						$("#map").animate({height: "300px"}, "slow", function(){
							google.maps.event.trigger(map, 'resize');
						});
					}			
				});
			}
			
			/** Funktion für den aus zoomen Button **/
			function ZoomoutControl(controlDiv, map) {

				/**
				 * Festlegen des CSS Stils,
				 * Wird an diesem Punkt eher zur Positionierung des Buttons genutzt
				 * 5px vom linken Rand Abstand und 5px vom unteren Rand
				 **/
				controlDiv.style.paddingLeft = '5px';
				controlDiv.style.paddingBottom = '5px';

				/** CSS für den Button selbst **/
				var controlUI = document.createElement('DIV');
				controlUI.style.cursor = 'pointer';
				controlUI.style.background = 'transparent url(./minus.png) no-repeat';
				controlUI.style.width = '29px';
				controlUI.style.height = '26px';
				controlUI.title = 'Klicken um aus der Karte heraus zu zoomen.';
				controlDiv.appendChild(controlUI);
				
				/** Klick Event für das aus und einfahren des Divs **/
				google.maps.event.addDomListener(controlUI, 'click', function() {
					var ActZoom = map.getZoom();
					if(ActZoom > MinZoom){
						map.setZoom(parseInt(map.getZoom())-1);
					}
				});
			}
			
			/** Funktion für den ein zoomen Button **/
			function ZoominControl(controlDiv, map) {

				/**
				 * Festlegen des CSS Stils,
				 * Wird an diesem Punkt eher zur Positionierung des Buttons genutzt
				 * 5px vom linken Rand Abstand und 5px vom unteren Rand
				 **/
				controlDiv.style.paddingLeft = '3px';
				controlDiv.style.paddingBottom = '5px';

				/** CSS für den Button selbst **/
				var controlUI = document.createElement('DIV');
				controlUI.style.cursor = 'pointer';
				controlUI.style.background = 'transparent url(./plus.png) no-repeat';
				controlUI.style.width = '29px';
				controlUI.style.height = '26px';
				controlUI.title = 'Klicken um in die Karte hinein zu zoomen.';
				controlDiv.appendChild(controlUI);
			
				/** Klick Event für das ein zoomen der Map **/
				google.maps.event.addDomListener(controlUI, 'click', function() {
					var ActZoom = map.getZoom();
					if(ActZoom < MaxZoom){
						map.setZoom(parseInt(map.getZoom())+1);
					}
				});
			}

			/** Funktion zum initialisieren der Karte **/
			function gmaps_initialize(bgrad, lgrad) {	
				/** Festlegen des Karten mittelpunktes (.NFQ | Netzfrequenz GmbH) **/
				var home = new google.maps.LatLng(bgrad,lgrad);
				
				/** Festlegen des Karten Divs **/
				var mapDiv = document.getElementById('map');
				
				/** Festlegen der Karten Optionen **/
				var myOptions = {
					zoom: 17,
					center: home,
					mapTypeId: google.maps.MapTypeId.HYBRID,
					disableDefaultUI: true,
					disableDoubleClickZoom: true,
					scrollwheel: false
				}
				/** Rendern der Karte **/
				map = new google.maps.Map(mapDiv, myOptions);
				
				var iconBgrad = bgrad - 0.00005;
				var iconLgrad = lgrad - 0.000103;
				
				/** NFQ Marker setzen */
				var marker = new google.maps.Marker({  
					position: new google.maps.LatLng(iconBgrad,iconLgrad),  
					map: map,
					title: '.NFQ | Netzfrequenz GmbH',  
					clickable: false,
					icon: './icon.png'
				});
				
				/**
				 * Divs erstellen die die Bedienelemente
				 * enthalten sollen und übergeben der 
				 * zugehörigen Funktionen an diese Divs
				 **/
				var fullscreenControlDiv = document.createElement('DIV');
				var fullscreenControl = new FullscreenControl(fullscreenControlDiv, map);
				
				var zoomoutControlDiv = document.createElement('DIV');
				var zoomoutControl = new ZoomoutControl(zoomoutControlDiv, map);
				
				var zoominControlDiv = document.createElement('DIV');
				var zoominControl = new ZoominControl(zoominControlDiv, map);

				zoomoutControlDiv.index = 1;
				map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(zoomoutControlDiv);
				
				zoominControlDiv.index = 2;
				map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(zoominControlDiv);
				
				fullscreenControlDiv.index = 3;
				map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(fullscreenControlDiv);
			}
		}
	};
	
	Drupal.behaviors.GoogleMapsRouting = {
		attach: function(context, settings){
			$('#route_form').submit(function() {
			
				var street_nr = $('#street').val();
				var plz = $('#plz').val();
				var city = $('#city').val();
				var street_replace = street_nr.replace(' ','+');
				var street_encode = escape(street_replace);
				
				window.open('http://maps.google.de/maps?saddr='+street_encode+',+'+plz+'+'+city+'&daddr=Bergiusstr.+13,+86199+Augsburg');
				
				return false;
			});
		}
	};
})(jQuery);;

