;(function($) {
	$.fn.extend({
		showGoogleMap: function(options,carteOptions) {
		
			options = $.extend({}, $.tab2GMAP.defaults, options);
			carteOptions = $.extend({}, $.tab2GMAP.defaultCarteOptions, carteOptions);
			return this.each(function() {
				new $.tab2GMAP(this, options,carteOptions);
			});
		}
	});
	$.tab2GMAP = function(input, options,carteOptions) {
		var div=$(input).clone();
		
		if(options.keepBaseDiv)
		{		
			var rand_no = Math.random();
			var d = new Date();
			rand_no = Math.round(rand_no * 100000)+"_"+d.getTime();		
			var newdiv = $(input).before('<div id="nd'+rand_no+'" class="'+options.baseDivClass+'"></div>');				
			input= document.getElementById('nd'+rand_no);
		}
		
		carteOptions.center=new google.maps.LatLng(options.firstLatLng[0],options.firstLatLng[1]);
		if(options.customSize)
		{
			$(input).css('width',options.width);
			$(input).css('height',options.height);
		}
				
		$.tab2GMAP.map = new google.maps.Map(input,carteOptions);
		var mbounds = new google.maps.LatLngBounds();

 		var iconDefaultImage =options.iconImage;
	    $.tab2GMAP.infowindow = new google.maps.InfoWindow({content: ''});

		$("div.alternative_carte", div).each(function() {
			// recuperation des infos
			var lat = $("span.latitude" ,$(this)).html();
			
			var longitude = $("span.longitude" ,$(this)).html();
			var nom = $("span.nom" ,$(this)).html();
			var texte = $("span.infobulletexte" ,$(this)).html();
			
			// icone personnalisé
			var picto =$("span.picto" ,$(this)).html();
			currentIcon=iconDefaultImage;
			if(picto != null)currentIcon=picto;				
			
			// Marqueur
			var latlng = new google.maps.LatLng(lat,longitude);
			var newMarker = new google.maps.Marker({
    			position: latlng,
    			map: $.tab2GMAP.map,
    			icon:currentIcon,
    			title:nom
				});		
										
			//info window
			if(options.useInfoWindow)
			{
				newMarker.iwText=texte;
				google.maps.event.addListener(newMarker, 'click', function()
				{
    				$.tab2GMAP.infowindow.content= options.infonWidowStyle+this.iwText+"</div>"
  					$.tab2GMAP.infowindow.open($.tab2GMAP.map,this);
				});
			}
			
			// zoning
			mbounds.extend(latlng);
		});
		if(options.fitBounds)
			$.tab2GMAP.map.fitBounds(mbounds);			
	};

	$.tab2GMAP.map="";
	$.tab2GMAP.infowindow = "";

	// options par defaut
	$.tab2GMAP.defaults = {
		baseDivClass:'carte_google',
		keepBaseDiv:false,
		customSize:false,
		height:'450px',
		width:'98%',
		fitBounds:true,
		firstLatLng: new Array(47,5),
		useInfoWindow: true,
		iconImage:'http://maps.gstatic.com/intl/fr_fr/mapfiles/ms/micons/red-dot.png',
		infonWidowStyle:"<div style='width:250px;height:60px;overflow:auto'>"
	};
	
	// options de la carte
	$.tab2GMAP.defaultCarteOptions = {
		scrollwheel: false,
		mapTypeId: 'roadmap',
		zoom:15,
		disableDefaultUI:false,
		disableDoubleClickZoom:true,
		draggable:true
	};
	
}

)(jQuery);

