jQuery.noConflict();
var googlemap = null;
var markers = [];
var geocoder = null
var infowindows = [];
var infowindowsize = null;

var geocodecount = 0;
jQuery(document).ready(function() {
	jQuery('a.resetmap').click(function() {
		var myLatlng = new google.maps.LatLng(54.20875, 10.372583);
		googlemap.setCenter(myLatlng);
		googlemap.setZoom(4);
   		return false;
	});

    var myLatlng = new google.maps.LatLng(54.20875, 10.372583);
    var myOptions = {
      zoom: 4,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    googlemap = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	geocoder = new google.maps.Geocoder();
	infowindowsize = new google.maps.Size(290,130);
	jQuery('ul#addresslist > li > a').each(function() {
		if (!jQuery(this).hasClass('direct')) {
			var self = this;
			var myid = this.id;
			var myaddr = jQuery(this).attr('rel');
		
			markers[myid] = null;

			infowindows[myid] = new google.maps.InfoWindow({ content:  jQuery('#b'+myid).html(), size: infowindowsize });
		//	console.log(infowindows[myid]);
		
			if (myaddr.length == 0) {
				var mylat = jQuery(this).attr('lat');
				var mylon = jQuery(this).attr('lon');
				var myLatlng = new google.maps.LatLng(mylat,mylon);
				var marker = new google.maps.Marker({
					map: googlemap, 
					position: myLatlng
				});
				google.maps.event.addListener(marker, 'click', function() {
					for (var k in infowindows) {
						infowindows[k].close();
					}
					infowindows[myid].open(googlemap,marker);
				});
				markers[myid] = marker;
			
			} else {
		
				if (geocodecount < 10) {
					geocoder.geocode( { 'address': myaddr}, function (results,status) {
						
						if (status == google.maps.GeocoderStatus.OK) {
							jQuery.post('http://www.yes-forum.eu/typo3conf/ext/12bis3_geomap/save/index.php',{id: myid ,lat:  results[0].geometry.location.lat(), lon:  results[0].geometry.location.lng()});
							var marker = new google.maps.Marker({
								map: googlemap, 
								position: results[0].geometry.location
							
							});
							google.maps.event.addListener(marker, 'click', function() {
								for (var k in infowindows) {
									infowindows[k].close();
								}
								infowindows[myid].open(googlemap,marker);
							});
							markers[myid] = marker;
							
					 	} else {
					 		jQuery(self).addClass('direct').attr('href','http://community.yes-forum.eu/user/view.php?id='+myid.substr(1,myid.length)).unbind('click');
							//console.log([myaddr,results,status]);
					 	}
					 	
					});
					geocodecount++;
				}
			}
			if (!jQuery(this).hasClass('direct')) {
				jQuery(this).click(function() {
					jQuery('ul#addresslist > li > a').removeClass('aktiv');
					jQuery(this).addClass('aktiv');
					var myid = this.id;
					
					googlemap.setCenter(markers[myid].getPosition());
					googlemap.setZoom(15);
					for (var k in infowindows) {
								infowindows[k].close();
							}
					infowindows[myid].open(googlemap,markers[myid]);
				});
			}
		}
	});
});
