/*
* PLAN DE VILLE : CHATOU
* Version 1.0
* Creation date: Fevrier 2010
* Author: Dynamik Informatik - PELLET Alexandre - www.dynamik-informatik.fr
* Author email: pellet.alexandre@gmail.com
*/

/**
 * @author apellet
 */
/*
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(6($){$.1L.1b=6(j){7(j.8==U||j.8==1K){1D("1p 1h 1a Z 8.");n 4}2 d={H:q,E:\'1j 1g 1e 19 12\',5:16,s:\'\',m:\'./Q/O/\'};2 j=$.1J(d,j);2 f=4;2 g=4;n J.1B(6(){t=$(J);t.1w("1r-1o");2 h=\'\';7(j.H){h+=\'<3 v="w" p="x">\'+r(j.m+"15"+j.5+".y",j.5,j.5,j)+\'</3>\'}h+=\'<3 v="w" p="I">\'+r(j.m+"10"+j.5+".y",j.5,j.5,j)+\'</3>\';h+=\'<3 p="9"></3>\';h+=\'<3 v="w" p="A">\'+r(j.m+"X"+j.5+".y",j.5,j.5,j)+\'</3>\';h+=\'<3 z="T:S;"></3>\';t.R(h);$("#x").V("P",j.E);$("#A").u(6(){$("#9").k("o","+=1");f=4});$("#I").u(6(){$("#9").k("o","-=1");f=4});$("#x").u(6(){7(j.M){j.M.1I(1H)}l{j.8.1G()}});$("#9").k({1F:18,1z:0,1x:17,1u:j.8.1s(),1q:6(e,a){7(f==4){g=q;j.8.1m(a.1l)}l{f=4}}});1k.1i(j.8,"1n",6(a,c){7(g){g=4;n}f=q;7(a<c){2 b=c-a;D(2 i=0;i<b;i++){$("#9").k("o","+=1")}}l{2 b=a-c;D(2 i=0;i<b;i++){$("#9").k("o","-=1")}}})})}})(1f);6 r(c,b,f,g){7(g.s!=\'\'){c=g.s+c}2 d=4;2 e=1t.1d.1v();7((e.F("1c")>-1)&&(e.F("14")<1)){d=q}l{d=4}2 h=\'\';7(d){2 a="1y:13:1A.11.1C(G=\'"+c+"\', 1E=\'Y\');";h=\'<3 z="B:N;L:\'+f+\'K; C:\'+b+\'K; \'+a+\'" ></3>\'}l{h=\'<W z="B:N;" G="\'+c+\'"  C="\'+b+\'" L="\'+f+\'" >\'}n h}',62,110,'||var|div|false|size|function|if|map|map_zoom_slider|||||||||||slider|else|rep_img|return|moveTo|id|true|pngImage_zoom|prefix_path|obj|click|class|btn|map_zoom_zoom_all|png|style|map_zoom_zoom_plus|cursor|width|for|center_tooltip|indexOf|src|b_center|map_zoom_zoom_moins|this|px|height|all|pointer|images|title|styles|append|both|clear|null|attr|img|zoom_plus_|scale|une|zoom_moins_|Microsoft|initiale|progid|opera|zoom_center_||||carte|affecter|gmap_zoom|msie|userAgent|la|jQuery|sur|devez|addListener|Recenter|GEvent|value|setZoom|zoomend|map_zoom|Vous|change|block|getZoom|navigator|startValue|toLowerCase|addClass|max|filter|min|DXImageTransform|each|AlphaImageLoader|alert|sizingMethod|steps|returnToSavedPosition|window|call|extend|undefined|fn'.split('|'),0,{}))
*/
/**
 * @author apellet
 */
(function($)
{
	$.fn.gmap_zoom = function(options)
	{	
		if ( options.map == null || options.map == undefined )
		{
			alert ( "Vous devez affecter une map." );
			return false;
		}
		
		var defaults = {
			b_center: true, /*Bouton de recentrage*/
			center_tooltip : 'Recenter sur la carte initiale',
			size : 16, /*Taille des boutons en px*/
			prefix_path: '', /*Défini un début d'url*/
			rep_img:'./styles/images/'
		};

	
		var options = $.extend(defaults, options);
		
		var fromZoomEnd = false;
		var fromSlideChange = false;			
						
						
		
		
		return this.each(function()
		{		
			obj = $(this); 
			obj.addClass ( "block-map_zoom" );  
			
			/*var h = '<div class="btn"><input id="map_zoom_zoom_all" type="image" src="./styles/jquery/images/zoom_center.png" style="border:0px" /></div>';
			h += '<div class="btn"><input id="map_zoom_zoom_moins" type="image" src="./styles/jquery/images/zoom_moins.png" style="border:0px" /></div>';
			h += '<div id="map_zoom_slider"></div>';
			h += '<div class="btn"><input id="map_zoom_zoom_plus" type="image" src="./styles/jquery/images/zoom_plus.png" style="border:0px" /></div>';
			h += '<div style="clear:both;"></div>';
			*/
			
			
			var h = '';
			
			if (options.b_center)
			{
				h += '<div class="btn" id="map_zoom_zoom_all">' + pngImage_zoom ( options.rep_img + "zoom_center_" + options.size + ".png", options.size, options.size, options) + '</div>';
			}
			
			h += '<div class="btn" id="map_zoom_zoom_moins">' + pngImage_zoom (  options.rep_img + "zoom_moins_" + options.size + ".png", options.size, options.size, options ) + '</div>';
			
			h += '<div id="map_zoom_slider"></div>';
			
			h += '<div class="btn" id="map_zoom_zoom_plus">' + pngImage_zoom (  options.rep_img + "zoom_plus_" + options.size + ".png", options.size, options.size, options ) + '</div>';
			h += '<div style="clear:both;"></div>';
			
			
			
			obj.append ( h );			
			
			/*$("#map_zoom_zoom_plus").attr ( "title", "Zoom avant." );
			$("#map_zoom_zoom_moins").attr ( "title", "Zoom arrière." );
			$("#map_zoom_zoom_all").attr ( "title", "Recentrer la carte." );*/
			//$("#map_zoom_zoom_all").css ("display", "none");
			
			$("#map_zoom_zoom_all").attr ( "title", options.center_tooltip );
			
			
			
			$("#map_zoom_zoom_plus").click ( function ()
			{
				//alert('click plus');
				if ( options.map.getCurrentMapType() == G_PHYSICAL_MAP && options.map.getZoom () >= 15)
				{
					//alert('zoom max atteint');
				}
				else
				{
					//alert('on zoom');
					//$("#map_zoom_slider").slider("moveTo", "+=1");
					options.map.setZoom (options.map.getZoom ()+1);
				}
				
				fromZoomEnd = false;
			} );
			$("#map_zoom_zoom_moins").click ( function ()
			{
				$("#map_zoom_slider").slider("moveTo", "-=1");
				//options.map.setZoom (options.map.getZoom ()-1);
				fromZoomEnd = false;
			} );
			$("#map_zoom_zoom_all").click ( function ()
			{
				if ( options.all )
				{
					options.all.call ( window );
				}
				else
				{
					options.map.returnToSavedPosition ();
					if ( options.afterReturn )
					{
						options.afterReturn.call ( window );
					}
					
				}
				
			});
			
			$("#map_zoom_slider").slider ( {steps: 20, min:0,max:19, startValue:options.map.getZoom (), change:function(e,ui)
			{
				//console.log ( "slider. fromSlideChange : %s, fromZoomEnd : %s ",fromSlideChange, fromZoomEnd );
				//alert(slide);
				if ( fromZoomEnd == false )
				{
					//console.log ( "map.setZoom");
					fromSlideChange = true;
					options.map.setZoom ( parseInt(ui.value) );
					
				}
				else
				{
					fromZoomEnd = false;
				}
			} } );
			
			
			GEvent.addListener ( options.map, "zoomend", function ( old_z, new_z ) 
			{
				
				if ( fromSlideChange )
				{
					fromSlideChange = false;
					return;
				}
				fromZoomEnd = true;
				
				if ( old_z < new_z )
				{
					var cnt = new_z - old_z;
					
					//console.log ( "zoom+ : "+cnt );
					
					for ( var i=0; i<cnt; i++ )
					{
						$("#map_zoom_slider").slider("moveTo", "+=1");
					}
				}
				else
				{
					var cnt = old_z - new_z;
					//console.log ( "zoom- : "+cnt );
					for ( var i=0; i<cnt; i++ )
					{
						$("#map_zoom_slider").slider("moveTo", "-=1");
					}
				}
				
				
				
				
			} );
			
			
		});
	};
})(jQuery);


function pngImage_zoom ( img_path, w_z, h_z, options )
{
	if ( options.prefix_path != '' )
	{
		img_path = options.prefix_path + img_path;
	}
	
	var isIE = false;
	var agent = navigator.userAgent.toLowerCase();
	if ((agent.indexOf("msie") > -1) && (agent.indexOf("opera") < 1))
	{
		isIE = true;
	} 
	else 
	{
		isIE = false;
	}

	var h = '';
	
	if ( isIE )
	{
		var loader_in = "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img_path + "', sizingMethod='scale');";
		h = '<div style="cursor:pointer;height:' + h_z + 'px; width:' + w_z + 'px; ' +loader_in+ '" ></div>'; 
	}
	else
	{
		h = '<img style="cursor:pointer;" src="' + img_path + '"  width="' + w_z + '" height="' + h_z + '" >';
	}
	return h;
}
