
    // hostname als variable
	var tld = window.location.hostname;
 
	// trenne anhand von punkt
	tld = tld.split(".");
 
	// letzten eintrag im array bestimmen
	pos = tld.length - 1;
 
	// array eintrag als varibale
	tld = tld[pos];
	


var gmarkers = [];	
var zaehler = 0;
var gicons = [];
	  gicons[5] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_grosshaendler.png");
      gicons[6] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_installateur.png");
      gicons[7] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_standard.png");
      if(tld == "com") {
      gicons[5] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_english_a.png");
      gicons[6] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_english_adv.png");
      gicons[7] = new GIcon(G_DEFAULT_ICON, "/fileadmin/images/icon_english_pp.png");
      }


function myclick(i) {
      GEvent.trigger(gmarkers[i], "click");
	  
	  
	  var pos=$("#map").position();
	  $('html,body').animate({scrollTop: pos.top}, 500); 
	  
    }
function createMarker(point,html,icon) {
			var marker = new GMarker(point,gicons[icon]);
			GEvent.addListener(marker, "click", function() {
			  marker.openInfoWindowHtml(html);
			});
			
			// The new marker "mouseover" listener        
			GEvent.addListener(marker,"mouseover", function() {
			  marker.openInfoWindowHtml(html);
			});        
			gmarkers.push(marker);
			return marker;
		}
/**
 * @author sven
 */
$(document).ready(function()
{ 	
	
	
	restart_googlemap();
	
	/*
	 * Umkreissuche
	 */
	$("input#suche_umkreis").click(function(){
		googlemap(); 
	});
	
	
	$("input#plz").keypress(function (e) {  
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {  
		 googlemap();
		}  
	});  
	
	
	$("select#land").change(function(){
		$("#plz").attr("value","");
		$(".plz").attr("value","");
		if($(this).val()!="DE")
		{
			
			$("#umkreis").hide();
			/*$("#plz").flushCache();
			$(".ac_results").remove();
			var url="typo3conf/ext/wk_googlemap/res/php/autocomplete.php?lang="+$("#lang").val()+"&typ="+$("#typ").val()+"&feld=plz&land="+$(this).val();
			$("#plz_"+$(this).val()).autocomplete(url, {
				width: 120,
				minChars:1,
				max:100,
				mustMatch:true
			});*/
			$(".plz").hide();
			$("#plz").hide();
			$("#plz_"+$(this).val()).show();
			
		}
		else
		{
			$(".plz").hide();
			$("#plz").show();
			$("#plz").attr("value","");
			$("#umkreis").show();
		}
	});
	
	
	//Autocomplete
	/*var url="typo3conf/ext/wk_googlemap/res/php/autocomplete.php?lang="+$("#lang").val()+"&typ="+$("#typ").val()+"&feld=plz";
	$("#autocomplete_search #plz").autocomplete(url, {
		width: 120,
		minChars:1,
		max:100,
		mustMatch:true
	});*/
	
		
});

function googlemap()
{
	
	if($("input#plz").val())
	{
		var plz=$("input#plz").val();
	}
	else
	{
		var temp=$("select#land").val();
		 var plz=$("input#plz_"+temp).val();
	}
	

	if (plz!="")
		{
			var data = $("#umkreissuche").serialize();
			geocoder = new GClientGeocoder();
			
			var start = plz
			var km = $("select#umkreis").val();
			var ergebnis_html="";
			$("#ergebnis table").html("");
			var zoom=0;
			var location1= new Array;
			var country="";
			
			
			//Zoom bestimmen
			switch (km){
				case "15":
					zoom=10;
				break;
				case "25":
					zoom=9;
				break;
				case "50":
					zoom=8;
				break;
				default:
					zoom=10;
				break;
			}
			
			/*if($("#land").val())
			{
				country=$("#land").val();
			}
			else
			{
				country="";
			}*/
			
			switch ($("#land").val())
			{
				case "A":
					country="Österreich";
				break;
				case "DE":
					country="Deutschland";
				break;
				case "CH":
					country="Schweiz";
				break;
				case "NL":
					country="Niederlande";
				break;
				case "L":
					country="Luxembourg";
				break;
				default:
					country="";
				break;
			}
			
			var map = new GMap2(document.getElementById("map"));
			 // Create our "tiny" marker icon
	        var blueIcon = new GIcon(G_DEFAULT_ICON);
	        blueIcon.image = "http://gmaps-samples.googlecode.com/svn/trunk/markers/blue/blank.png";
			
			// Set up our GMarkerOptions object
			markerOptions = { icon:blueIcon };
	
			
			switch($("#lang").val())
			{
				case "0":
					var geocode=start+","+country;
				break;
				case "2":
					var geocode="United Kingdom";
					zoom=5;
				break;
				case "3":
					var geocode="Spain";
				break;
				case "5":
					var geocode="Czech Republic";
					zoom=7;
				break;
				case "6":
					var geocode="China";
				break;
				case "7":
					var geocode="French";
				break;
				case "8":
					var geocode="Hungary";
				break;
				case "9":
					var geocode="Italy";
				break;
				case "10":
					var geocode="Netherlands";
				break;
				case "11":
					var geocode="Poland";
					zoom=6;
				break;
				case "12":
					var geocode="Russia";
				break;
				case "13":
					var geocode="USA";
					zoom=4;
				break;
				default:
					var geocode=start+","+country;
				break;
			}
		
			//var geocode=start+","+country;
			
			geocoder.getLocations(geocode, function(response) 
			{
				
				
				
				if (response.Status.code == 200) 
				{
	                location1 = {
	                    lat: response.Placemark[0].Point.coordinates[1],
	                    lon: response.Placemark[0].Point.coordinates[0],
	                    address: response.Placemark[0].address
	                };
					
			
					/*$(response.Placemark).each(function(i,item) 
					{
						if (country!="")
						{
							if (item.AddressDetails.Country.CountryNameCode==country)
							{
								location1 = {
	                    			lat: item.Point.coordinates[1],
	                    			lon: item.Point.coordinates[0],
	                    			address: item.address
	                			};
							}
						
						}
						else
						{
							location1 = {
	                    			lat: item.Point.coordinates[1],
	                    			lon: item.Point.coordinates[0],
	                    			address: item.address
	                			};
						}
					
					});*/
					
					map.setCenter(new GLatLng(location1.lat,location1.lon), zoom,G_HYBRID_MAP);
					map.addControl(new GSmallMapControl());
					map.addControl(new GMapTypeControl());
					map.enableScrollWheelZoom(); 

				}
			});
			
			$("#ergebnis").ajaxComplete(function() {
				$(this).show();
				
			});
			$.ajax
			(
				{
					url:'typo3conf/ext/wk_googlemap/res/php/geocode.php',
					data:"lang="+$("#lang").val()+"&typ="+$("#typ").val()+"&plz="+start+"&km="+km+"&land="+$("#land").val(),
					dataType: 'json',
					async:true,
					success: function (data, status)
					{			
					
						if (data!="")
						{
							 $(data).each(function(i,item) 
							 {  
								 
								if (item.x!="" && item.y!="") 
								{
									var glatlng2 = new GLatLng(item.x, item.y);
						            var html='<b>'+item.firma+'</b><br/><br/>';
									html+=item.strasse+'<br/>';
									html+=item.plz+' '+item.ort+'<br/>';
									if (item.telefon)
									{
										html+='<br/>Tel.: '+item.telefon;
									}
									
									if(item.email)
									{
										html+='<br/>E-Mail: <a href="mailto:'+item.email+'" target="_blank">'+item.email+'</a>';
									}
									if (item.web)
									{
										html+='<br/>Web: <a href="http://'+item.web+'" target="_blank">'+item.web+'</a>';
									}
									if ($("#lang").val() == 0) {
										html += '<br/><br/><a href="http://maps.google.com/maps?f=d&source=s_d&saddr=' + escape(start) + '&daddr=+' + escape(item.strasse) + '+' + item.plz + '+' + escape(item.ort) + '&hl=de" target="_blank">Route berechnen</a>';
									}
									
									if (item.kompetenz==1)
									{
										var typ=7;
									}
									else
									{
										var typ=item.typ;
									}
									
									/*
									 * Marker Icons für England
									 */
									/*
									if($("#lang").val() == "2") {
										if (item.kompetenz==1)
									{
										var typ=8;
									}else{
										var typ=item.typ;
										if(typ == 6) {
											var typ=9;
										}
										if(typ == 5) {
											var typ=10;
										}
									}
									}
									*/
									
									
						            var marker = createMarker(glatlng2,html,typ);
	
						            map.addOverlay(marker);
									
									
									ergebnis_html='<tr>';
									ergebnis_html+='<td width=170><strong><a href="javascript:myclick('+zaehler+');">'+item.firma+'</a></strong></td>';
									ergebnis_html+='<td width=145>'+item.strasse+'<br/>'+item.plz+' '+item.ort+'</td>';
									ergebnis_html+='<td width=90>'+item.telefon+'</td>';
									ergebnis_html+='<td width=190>';
									if (item.web)
									{
										ergebnis_html+='<a href="http://'+item.web+'" target="_blank">'+item.web+'</a><br/>';
									}
									if (item.email)
									{
										ergebnis_html+='<a href="mailto:'+item.email+'" target="_blank">'+item.email.replace('@','(at)')+'</a>';
									}
									ergebnis_html+='</td>';
									
									
									if ($("#lang").val()==0)
									{
										ergebnis_html+='<td width=50 align="right"><strong>'+item.distance+' km</strong></td>';
									}
									
									
									ergebnis_html+='</tr>';	
									
									
									zaehler++;
									$("#ergebnis table").append(ergebnis_html);
								}
					        	
								
					         });
						}
						else
						{
							$("#ergebnis table").append("<tr><td><strong>"+$("#kein_ergebnis").val()+"</strong></td></tr>");
						}
						
					},
					error: function (data, status, e){
						$("#ergebnis table").append(ergebnis_html);
					}
				}
			)
		}
		else
		{
			//alert("Bitte geben Sie eine Postleitzahl ein!");
		}
}

function restart_googlemap()
{
	geocoder = new GClientGeocoder();
	var map = new GMap2(document.getElementById("map"));
	var zoom=5;
	switch($("#lang").val())
			{
				case "0":
					var geocode="Germany";
					zoom=6;
				break;
				case "2":
					var geocode="United Kingdom";
					zoom=5;
				break;
				case "3":
					var geocode="Spain";
				break;
				case "5":
					var geocode="Czech Republic";
					zoom=7;
				break;
				case "6":
					var geocode="China";
				break;
				case "7":
					var geocode="French";
				break;
				case "8":
					var geocode="Hungary";
				break;
				case "9":
					var geocode="Italy";
				break;
				case "10":
					var geocode="Netherlands";
				break;
				case "11":
					var geocode="Poland";
					zoom=6;
				break;
				case "12":
					var geocode="Russia";
				break;
				case "13":
					var geocode="USA";
					zoom=4;
				break;
				default:
					var geocode="Germany";
				break;
			}
		
			
			geocoder.getLocations(geocode, function(response) 
			{
				
				
				
				if (response.Status.code == 200) 
				{
	                location1 = {
	                    lat: response.Placemark[0].Point.coordinates[1],
	                    lon: response.Placemark[0].Point.coordinates[0],
	                    address: response.Placemark[0].address
	                };
					
					
					map.setCenter(new GLatLng(location1.lat,location1.lon), zoom,G_HYBRID_MAP);
					map.addControl(new GSmallMapControl());
					map.addControl(new GMapTypeControl());
					map.enableScrollWheelZoom(); 
		       	 	
				}
			});
	
}

