// JavaScript Document

 var map;
 var geocoder;
 var mapcenter;



	

$(document).ready(function() {
						   
			//$('#fuss').css(($.browser.msie && $.browser.version < 7) ? 'height:' + $(window).height() + 'px' : ''); 	
			//$('body').css(($.browser.msie && $.browser.version < 7) ? 'height:' + $(window).height() + 'px' : '');				   
		
	$('#googlelocator-form').submit(function(){
		var ergebnis = searchLocations('');
		return false;
	});
	
	$("#googlelocator-nogeo-a,#googlelocator-noentries-a").fancybox({
				'zoomSpeedIn':	270, 
				'zoomSpeedOut':	270,
				'frameWidth': fancyBoxWidth ,
				'frameHeight': fancyBoxHeight , 
				'overlayShow':	true,
				'overlayOpacity': 0.5,
				'hideOnContentClick': true				
			}); 
					
		if (GBrowserIsCompatible()) {
        	geocoder = new GClientGeocoder();
        	map = new GMap2(document.getElementById('googlelocator-map'),{mapTypes:[G_PHYSICAL_MAP,G_NORMAL_MAP]});
			map.setMapType(G_PHYSICAL_MAP);
        	map.addControl(new GSmallMapControl());
        	map.addControl(new GMapTypeControl());
        	map.setCenter(new GLatLng(startGoogleLat, startGoogleLng), startGoogleZoom);	
    }
	
	//starten = searchLocations('Weiherstrasse 9400 Rorschach');
	
});


function getMarkers(markerXML) {
	
	//alert (markerXML);
	var xml = GXml.parse(markerXML);
    var markers = xml.documentElement.getElementsByTagName('marker');
	
	if (markers.length < 1){
		$('#googlelocator-noentries-a').click();
		return;
	}
	//$('#googlelocator-groupdescription').show();
	$('#googlelocator-list').html('');
	//var html = '<div class="googlelocator-maxentry">'+ maxRepEntries + '</div>';
	
	//var html = document.createElement('div');
  //  $(html).appendTo('#googlelocator-list').html(maxRepEntries).addClass('googlelocator-maxentry');
	
	//$('#googlelocator-list').append(html);
	
    map.clearOverlays();
	
	var bounds = new GLatLngBounds();
	$('#googlelocator-list').html('');
	for (var i = 0; i < markers.length; i++) {
	  var name = markers[i].getAttribute('company');
      var address = markers[i].getAttribute('address') + '<br />'+ markers[i].getAttribute('zip') + ' ' +  markers[i].getAttribute('city');
	  
	  var beschreibung = markers[i].getAttribute('address') + '<br />'+ markers[i].getAttribute('zip') + ' ' +  markers[i].getAttribute('city');
	  beschreibung +=  (markers[i].getAttribute('phone')) ? '<br />Tel ' + markers[i].getAttribute('phone')  : '' ;
	  beschreibung +=  (markers[i].getAttribute('fax')) ? '<br />Fax ' + markers[i].getAttribute('fax')  : '' ;
	  beschreibung +=  (markers[i].getAttribute('weblinks')) ? '<br />' + markers[i].getAttribute('weblinks')  : '' ;
	   
      var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                              parseFloat(markers[i].getAttribute('lng')));
	  //alert (markers[i].getAttribute('pic'));
	  var mIcon = new GIcon(G_DEFAULT_ICON, markers[i].getAttribute('pic'));

      var marker = createMarker(point, name, beschreibung,mIcon);
      map.addOverlay(marker);
	  appendSidebarEntry(marker, name, address);
	  
	  
	  bounds.extend(point);
	}
	
	

	  map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	  if ($.browser.msie && $.browser.version < 7){
				$('#fuss').css( 'height:' + $(window).height() + 'px');  
			 }		
	 													 
}




function searchLocations(startwert) {
if (startwert){
	var address = startwert;
	var umkreis = 0.1;
} else {
 var address = $('#googlelocator-addresse').val();
 var umkreis = 0;
}
	/*	
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   for (i = 0; i < address.length && IsNumber == true; i++) { 
      Char = address.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
         IsNumber = false;
		 break;
      }
	  //alert (Char);
   }
   if (IsNumber && address != ''){
		
   }
   */
   
   address = address + ' ' + plzLand
	//alert (address);

 geocoder.getLatLng(address, function(latlng) {
	 
   if (!latlng) {
	  // mittels jquery Fehlermeldung anzeigen
	   $('#googlelocator-nogeo-a').click();
   } else {
	// suchkoordinaten speichern   
	mapcenter = latlng;
	searchLocationsNear(latlng, umkreis);
   }
 });
 return false;
}



function searchLocationsNear(center, umkreis) {
   if (umkreis){
      var radius = umkreis;
   } else {
      var radius = $('#googlelocator-radius').val();
   }
	
	 var searchUrl = 'index.php?id='+ pageID + '&type=75&lat=' + center.lat() +'&lng=' + center.lng() + '&radius=' + radius;
	 // jquery ajax aufruf
	 $.get(searchUrl,{},function(data){
		   getMarkers(data);
			})
}

function createMarker(point, name, address,pic) {
  var marker = new GMarker(point,{'title':name,'icon':pic});
  var html = '<span class="google-locator-marker-title">' + name + '</span><br /><span class="google-locator-marker-infotext">' + address +'</span>';
  GEvent.addListener(marker, 'click', function() {
	markSidebarMarker(this);						   
	marker.openInfoWindowHtml(html);
	
  });
  return marker;
}

function appendSidebarEntry(marker, name, address) {
  	//var div = document.createElement('div');
	// var html = '<div class="googlelocator-repentry"><h3>' + name + '</h3>' + address  + '<br/>' + '<span class="googlelocator-showinmap">'+ kartenLinkText + '</span></div>';
	var htmlcode = '<div class="googlelocator-repentry"><h3>' + name + '</h3><div class="googlelocator-repentry-details"><p>' + address  + '</p></div></div>';


	var testobjekt = $(htmlcode).appendTo('#googlelocator-list').click(function(){ 
	//$('.googlelocator-repentry').removeClass('repaktiv');	
	GEvent.trigger(marker, 'click');
	//$(this).addClass('repaktiv');
	//location.href = document.location.href + $('#googlelocator-top-a').attr('href');
	return false;
  });
	
 	marker.listelement = testobjekt;
	
	return;
}

function markSidebarMarker(marker){
	$('.googlelocator-repentry.repaktiv').removeClass('repaktiv');
	// alert (marker.listelement.html());
	marker.listelement.addClass('repaktiv');
}

