var mapDefaultLat = 47.5833453;
var mapDefaultLng = -3.0792343;
var markers = new Array();
var nbMarkers = 0;
var mouseX;
var mouseY;
var tooltipShown = false;
var tooltipIsMovin = false;



$().mousemove(function(e){
	mouseX= e.pageX;
	mouseY= e.pageY;
	$('#visiteToolTip').css({'left':mouseX-104,'top':mouseY-127});
}); 


var Browser = {
  Version: function() {
    var version = 999; // we assume a sane browser
    if (navigator.appVersion.indexOf("MSIE") != -1)
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}

function initializeMap() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("visite"));
		map.setCenter(new GLatLng(mapDefaultLat,mapDefaultLng), 13);
		map.setUIToDefault();
		map.setMapType(G_SATELLITE_MAP);
		return map;
	}
}

function updateContents()
{
	$('.video').each(function(){
		swfobject.embedSWF('/style/flash/mediaplayer.swf?file='+$(this).attr('title'), $(this).attr('id'), '500', '240', '6.0.0',null,null,null,{'wmode':'transparent'});
	});
	
	$('.diaporama').each(function(){
		if ($(this).find('img').length>1)
		{
			$(this).cycle();
		}
		else
		{
			$(this).find('img').css('display','block');
		}
	});
	
	
}
   
function showTitle(title)
{
	if ($('#visiteToolTip').length==0)
	{
		$('body').append('<div id="visiteToolTip" style="display:hidden">');
	}
	$('#visiteToolTip').stop(true);
	$('#visiteToolTip').html(title);
	
	moveTop = 50;
	if (!tooltipShown)
	{
		$('#visiteToolTip').css('display','block');	
		tooltipShown = true;	
	}
	else
	{
		$('#visiteToolTip').css('display','none');	
		tooltipShown = false;	
	}
	
}
    
function addMarker(map,lat,lng,content,icon,category,title)
{
	var new_icon = new GIcon()   
	new_icon.image = "/upload/images/mapicon/default/"+icon;  
	new_icon.size = new GSize(32,32);
	new_icon.iconAnchor = new GPoint(16,32);
	new_icon.infoWindowAnchor = new GPoint(16,64);

	var point = new GLatLng(lat,lng);
	var marker = new GMarker(point,{icon:new_icon});
	GEvent.addListener(marker, "click", function() {
		map.openInfoWindowTabsHtml(point, content,{onOpenFn:function(){updateContents()}});
	});
	
	GEvent.addListener(marker, "mouseover", function() {
		showTitle(title);
	}); 

	GEvent.addListener(marker, "mouseout", function() {
		showTitle(title);
	}); 
	
	nbMarkers++;
    map.addOverlay(marker);
    if (!markers[category]) markers[category] = new Array();
	markers[category][nbMarkers] = marker;
}

function buildMarkers(map)
{
	//map.clearOverlays();
	

	
	$.getJSON('/ajax/visite.php', function(data) {
		
		for(id in data)
		{
			
			lat = data[id].position.split(',')[0];
			lng = data[id].position.split(',')[1];
			icon = data[id].icon;
			category = data[id].category;
			name = data[id].name;
			var tabs = [];  
			for (i in data[id].content)
			{
				tabs.push(new GInfoWindowTab(data[id].content[i]['name'], data[id].content[i]['content']));  
			}

			addMarker(map,lat,lng,tabs,icon,category,name);
		
		}
		showHideMarkers();
		$('#loader').hide();
		$('#visite').show();
	});
}

function showHideMarkers()
{
	$('.visiteCategory').each(function()
	{
		var id = $(this).attr('id').replace('cat','');
		if ($(this).hasClass('selected'))
		{
			for(i in markers[id])
			{
				markers[id][i].show();
			}
			$(this).fadeTo('slow',1);
		}
		else
		{
			for(i in markers[id])
			{
				markers[id][i].hide();
			}
			$(this).fadeTo('slow',0.3);
		}
	});
}


$(document).ready(function(){
	var map = initializeMap();
	$('#visite').hide();
	if (Browser.Version() >= 7) {
		$.getJSON('/ajax/visite.php?getCategories=1', function(data) {
			for(id in data)
			{
				if (data[id]['selected']==1)
				{
					selected = 'selected';
				}
				else
				{
					selected = '';
				}
				var line = '<div class="visiteCategory '+selected+'" id="cat'+data[id]['id']+'"><img src="/upload/images/mapicon/default/'+data[id]['icon']+'"/>'+data[id]['name']+'</div>';
				$('#visiteTools br').before(line);
			}
			
			$('.visiteCategory').click(function()
			{
				if ($(this).hasClass('selected'))
				{
					$(this).removeClass('selected');
				}
				else
				{
					$(this).addClass('selected');
				}
				showHideMarkers();
			});
			buildMarkers(map);
			
		});
	}
	else
	{
		$('#visiteTools br').before('<p class="error">Votre navigateur est incompatible avec cette fonction. Nous vous conseillons d\'installer <a href="http://www.mozilla-europe.org/fr/firefox/">Firefox</a> ou la dernière version d\'<a href="http://www.microsoft.com/france/windows/internet-explorer/default.aspx">Internet Explorer</a>.</p>');
	}
	
});
