// Ouverture d'une page
function open_page(url, scrollcontent, scrollpane)
{
	// Valeurs par défaut
	if (!scrollcontent) {var scrollcontent=$('#content')}
	if (!scrollcontent) {var scrollpane=$('#center')}
	
	$.ajax(
	{
		url: url,
		success: function (data, textStatus, XMLHttpRequest)
		{
			scrollcontent.fadeOut("fast", function()
			{
				scrollcontent.html(data + '<div style="clear: left;"></div>');
				scrollcontent.delay(200);
				scrollcontent.fadeIn("fast", function()
				{
					// Se lance quand on survole une application
					$('.app').hover(
						function ()
						{
							$(this).css('background-color', 'rgba(0,0,0,0.01)').css('border-color', 'rgba(255,255,255,0.01)');
							$(this).animate({'background-color' : 'rgba(0,0,0,0.25)', 'border-color' : 'rgba(255,255,255,0.5)'});
						},
						function ()
						{
							$(this).animate({'background-color' : 'rgba(0,0,0,0)', 'border-color' : 'rgba(255,255,255,0)'});
						}
					);
					$(".app").simpletooltip();
					
					AllowClick=true;
					// Se lance quand on clique sur une application
					$(".app").click(function()
					{
						if (AllowClick==true) {
							$(this).rotate3Di('+=360', 500, {easing: 'linear', complete: function (){}});
							 document.location.href = $(this).attr("lch");
							 AllowClick=false
							 AllowClick = setTimeout("AllowClick=true;",2000);
						}
						

					});
					
					scrollcontent.find(".subtabs a").click(function()
					{
						open_page($(this).attr("href"), scrollcontent.find(".subcontent"));
						$(".subtabs a").css("opacity","0.6");
						
						//$(this).addClass("subtabs-selected");
						$(this).css("opacity","1");
						return false;
					});
					
					if (scrollcontent.find(".subtabs a:first").attr("href") != undefined)
					{
						$(".subtabs a").css("opacity","0.6");
						$(".subtabs a:first").css("opacity","1");
						open_page(scrollcontent.find(".subtabs a:first").attr("href"), scrollcontent.find(".subcontent"));
					}
					
					scrollbar_display();
				});
			});
		},
		error: function (XMLHttpRequest, textStatus, errorThrown)
		{
			scrollcontent.html("Erreur: Le fichier de l'onglet n'existe pas");
			scrollbar_display();
		}
	});
}

// Redéfinie les dimensions des blocs
function resize()
{
	$('#center').height($(window).height() - 85);
	$("#scrollbar").height($(window).height() - 65);
	$('#cat-left').height($(window).height() - 71);
	$('#cat-list').css("margin-top", 0);
	scrollbar_display();
	scrollcats_display();
}

// Affiche (ou non) les boutons de défilement des catégories
function scrollcats_display()
{
	if (($('#cat-left').height() + 23) >= $('#cat-list').height())
	{
		$('#cat-left').height($('#cat-list').height());
		$('#cat-top,#cat-bottom').css("cursor","auto").css("border", "none");
		$("#cat-top").css("background-image", 'url("./theme/' + theme + '/cat-list.png")');
		$("#cat-bottom").css("background-image", 'url("./theme/' + theme + '/cat-list.png")').height($(window).height() - 48 - $('#cat-list').height());
	}
	else
	{
		if (parseInt($('#cat-list').css("margin-top")) < 0)
		{
			$('#cat-top').css("background-image", 'url("./theme/' + theme + '/arrow-top.png")').css("cursor","pointer");
		}
		else
		{
			$('#cat-top').css("background-image", 'url("./theme/' + theme + '/cat-list.png")').css("cursor","auto");
		}
		
		if (parseInt($('#cat-list').css("margin-top")) > ($('#cat-left').height() - $('#cat-list').height()))
		{
			$('#cat-bottom').css("background-image", 'url("./theme/' + theme + '/arrow-bottom.png")').css("cursor","pointer").height(23);
		}
		else
		{
			$('#cat-bottom').css("background-image", 'url("./theme/' + theme + '/cat-list.png")').css("cursor","auto").height(23);
		}
	}
}

// Fait défiler les catégories vers le haut
function scrollcats_top()
{
	var margin = parseInt($('#cat-list').css("margin-top")) + 50;
	
	if (margin >= 0)
	{
		$('#cat-list').animate({"margin-top": 0}, "fast", "swing", scrollcats_display);
	}
	else
	{
		$('#cat-list').animate({"margin-top": margin + "px"}, "fast", "swing", scrollcats_display);
	}
}

// Fait défiler les catégories vers le bas
function scrollcats_bottom()
{
	var margin = parseInt($('#cat-list').css('margin-top')) - 50;
	
	if (($('#cat-list').height() + margin) < $('#cat-left').height())
	{
		$('#cat-list').animate({"margin-top": $('#cat-left').height() - $('#cat-list').height() + "px"}, "fast", "swing", scrollcats_display);
	}
	else
	{
		$('#cat-list').animate({"margin-top": margin + "px"}, "fast", "swing", scrollcats_display);
	}
}

// Met à jour les dimensions de la barre de défilement (et la retire si il n'y a rien à faire défiler)
function scrollbar_display()
{
	if ($('#center').height() >= $('#content').height())
	{
		$("#scrollbar").css("display", "none");
		$(".ui-slider-handle").css("display", "none");
		$('#center').css("margin-right", "20px");
		//on repositionne en haut systématiquement
		$('#content').animate({"margin-top": 0}, "fast", "swing"); 
	}
	else
	{
		$("#scrollbar").css("display", "block");
		$(".ui-slider-handle").css("display", "block");
		$('#center').css("margin-right", "40px");
		
	
		scrollbar.slider("value", 100);
		
		var handlesize = $('#center').height() - ((($('#content').height() - $('#center').height()) / $('#content').height()) * $('#center').height());
		handle.css({height: handlesize,'margin-top': -handlesize/2});
		scrollbar.css({height: ($('#scrollbar').height() - handlesize), 'margin-top': handlesize});
		
		var gap = $('#center').height() - ($('#content').height() + parseInt($('#content').css('margin-top') ));
		if(gap > 0)
		{
			scrollcontent.css('margin-top', parseInt($('#content').css('margin-top')) + gap);
		}
	}
}

// Lorsque le slider est déplacé
function scrollbar_slide(e, ui)
{
	if($('#center').height() <= $('#content').height())
	{
		$('#content').css('margin-top', Math.round((1 - ui.value / 100) * ($('#center').height() - $('#content').height())) + 'px');
	}
	else
	{
		$('#content').css('margin-top', 0);
	}
}

// Lorsque la molette de la souris est utilisée dans le bloc scrollcontent
function scrollbar_mousewheel(event, delta)
{
	var sliderVal = scrollbar.slider("option", "value");

	sliderVal += (delta*10000*1/$('#content').height());

	if (sliderVal > scrollbar.slider("option", "max"))
	{
		sliderVal = scrollbar.slider("option", "max");
	}
	else if (sliderVal < scrollbar.slider("option", "min"))
	{
		sliderVal = scrollbar.slider("option", "min");
	}

	scrollbar.slider("value", sliderVal);

	event.preventDefault();
}

//ajouté par pyg : chargement d'une iframe (à optimiser)
function load_iframe(url, imgsrc) 
{
	if (!imgsrc) imgsrc = 'http://www.framakey.org/_img/blank1px.png';
	var img = new Image();
	img.onerror = function (evt){ // pas de connexion trouvée ou site FK HS
		setTimeout('', 1000)
	}
	img.onload = function (evt){ // connexion OK
		$('#default').remove(); //?
		$('#result').append('<iframe name="FKiframe" id="FKiframe" style="width:100%" frameborder="no">');
		$('#FKiframe').attr('src', url); 
		$("#FKiframe").height($("#center").height()-80);
		//frames["FKiframe"].location.href = url;
	}
	img.src = imgsrc;
	imgsrc="";			
}



$(document).ready(function()
{
	theme = $("head link#theme").attr("theme");
	
	// Ajout du code html (qui n'est pas à l'origine dans le document pour simplifier la personnalisation du kiosk)
	$('#cat-list').after('<br /><div id="content"></div><div id="scrollbar"></div>').wrap('<div id="left"></div>').before('<div id="cat-top"></div>').after('<div id="cat-bottom"></div>').wrap('<div id="cat-left"></div>');
	
	size = $("#cat-list > li").size() - 1;
	$("#cat-list > li").each(function(i)
	{
		url = $(this).attr("page")
		// Ajout des liens et icones des catégorie (idem)
//		$(this).html('<a href="' + url + '"><span style="background-image: url(' + $(this).attr("icon") + ')">' + $(this).html() + '</span></a>')
		$(this).html('<a href="' + url + '"><span style="background-image: url(./theme/' + theme + '/img/cat/' + $(this).attr("icon") + ')">' + $(this).html() + '</span></a>')
		
		// Supprime la catégorie si elle est vide
		$("<div></div>").load(url, function()
		{
			if ($(this).find(".app, .subtabs a").size()==0)
			{
				$("#cat-list > li").eq(i).hide();
			}
			else
			{
				$(this).removeClass("selected");
			}
			
			// Fin du .each()
			if (i == size)
			{
				resize();
	
				// Ouvre la première page
				$("#cat-list > li > a:visible").eq(0).addClass("selected");
				open_page($("#cat-list > li > a:visible").eq(0).attr("href"));
			}
		});
	});
	
	// Crée la barre de défilement du centre
	$('#content').wrap('<div id="center"></div>');
	
	scrollbar = $("#scrollbar").append('<div class="ui-scrollbar"></div>').find('.ui-scrollbar');
	scrollbar.slider({slide:scrollbar_slide, change:scrollbar_slide, orientation: "vertical", value: 100});
	handle = scrollbar.find('.ui-slider-handle');
	
	$('#content').bind("mousewheel", scrollbar_mousewheel);
	
	// Crée les boutons de défilement des catégories
	$("#cat-top").attr("onclick", "return false;").click(scrollcats_top);
	$("#cat-bottom").attr("onclick", "return false;").click(scrollcats_bottom);
	
	// Crée les icones du panel
	$("#panel .panel-icon").each(function ()
	{
		if ($(this).attr("icon") != undefined && $(this).attr("icon") != "")
		{
			$(this).attr("src", './theme/' + theme + '/img/panel/' + $(this).attr("icon"));
			// la ligne suivante devrait être inutile mais les icones sont mal positionnées sans elle
			$(this).attr("height",22);
		}
		if ($(this).attr("height") != undefined)
		{
			var margin = Math.round((24 - parseInt($(this).attr("height")))/2);
			if (margin > 0) $(this).css("margin-top", margin);
			else $(this).css("margin-top", 0);
		}
		if ($(this).attr("desc") != undefined && $(this).attr("desc") != "")
		{
			$(this).simpletooltip();
		}
	});

	// Ajoute l'horloge dans la barre
	$('#clock').jclock({format: '%a %d %B, %H:%M'});
	
	// Adapte les tailles des blocs à la fenêtre
	resize();
	
	// Se lance quand on redimensionne la fenêtre
	$(window).bind('resize', resize);
	
	// Se lance quand on clique sur une catégorie
	$("#cat-list > li > a").click(function()
	{
		if (!$(this).hasClass("selected"))
		{
			$("#cat-list > li > a.selected").removeClass("selected");
			$(this).addClass("selected");
			open_page($(this).attr("href"));
		}
		return false;
	});
	
	// Se lance quand on survole une icône du panel
	$(".panel-icon").hover(
		function () {$(this).fadeTo('slow', 1);},
		function () {$(this).fadeTo('slow', 0.7);}
	);
	
	// Se lance quand on clique sur une icone du panel
	$(".panel-icon").click(function()
	{
		$('body').append('<img id="effecticon" src="' + $(this).attr('src') + '" style="position: absolute; left: ' + $(this).offset().left + 'px; top: ' + $(this).offset().top + 'px; opacity: 0.5;" />');
		$('#effecticon').animate({'height' : '128px', 'top' : '25px', 'left' :  ($(this).offset().left + $(this).height()/2 - 64), 'opacity' : 0 }, {complete: function () {$('#effecticon').remove();}});
		document.location.href = $(this).attr("lch");
		return false;
	});
});