	
( function($) {
	var opts;
	var map;
	var ele;
//para las direcciones
	var directionsPanel;
    var directions;
		
	$.fn.mgm=function(valores){
		
		var defaults = {
			latitud		: '',
			longitud	: '',
			zoom		: 15,
			marcas		: '',
			cont_dir_id	: 'datos_ruta',
			desde		: '',
			hasta		: '',
			controles	: 0
		}
	//cargamos los parametros establecidos por el usuario
		opts = $.extend(defaults, valores);
		ele = this;
		$.fn.mgm.cargarMapa();
		
		if(opts.marcas != ""){
			var t = opts.marcas.length;
			for(var i=0; i<t; i++){
				map.addOverlay($.fn.mgm.createMarker(opts.marcas[i])); 
			}
		}
		
		if(opts.desde != ""){				
			directionsPanel = document.getElementById(opts.cont_dir_id);
			directions = new GDirections(map, directionsPanel);
			opts.hasta = opts.hasta + ",Valladolid,Spain";
			directions.load("from: " + opts.desde + " to: " + opts.hasta);
		}
	}
	
	$.fn.mgm.cargarMapa=function(){
		var ident = ele.attr("id");
		map = new GMap2(document.getElementById(ident));
		map.setCenter(new GLatLng(opts.latitud,opts.longitud), opts.zoom);
		map.addControl(new GLargeMapControl());
		
		if(opts.controles != 0){
			map.addControl(new GMapTypeControl());
		}
	}
	
	$.fn.mgm.createMarker=function(marca){   
		var point = new GLatLng(marca.latitud, marca.longitud); 
		if(marca.icono){
			var tinyIcon = new GIcon(); 
			tinyIcon.image = marca.icono; 
			tinyIcon.shadow = "images_maps/sadow.png";
			if(marca.iconoSize){
				tinyIcon.iconSize = new GSize(marca.iconoSize.w, marca.iconoSize.h); 
				tinyIcon.iconAnchor = new GPoint((marca.iconoSize.w/2),  marca.iconoSize.h); 
			}else{
				tinyIcon.iconSize = new GSize(25, 29); 
				tinyIcon.iconAnchor = new GPoint(12, 29); 
			}		
			tinyIcon.shadowSize = new GSize(25, 29); 
			tinyIcon.infoWindowAnchor = new GPoint(5, 1); 
			
			var marker = new GMarker(point,{ icon:tinyIcon });  
		}else{
			var marker = new GMarker(point);  
		}
		
		
		if(marca.layer){
			GEvent.addListener(marker, "click", function() {     
				var myHtml = marca.layer;     
				map.openInfoWindowHtml(point, myHtml);   
			});   
		}
		return marker; 
	}  
})(jQuery);
