/* TODO :
	Remplacer jquery-ui par les librairies resizable et draggable (après les avoir modifiées)
	Barre admin à décaler de 20 px vers la gauche
	Image de fond à mettre en premier
	Enlever l'écriture du titre de la fenetre qui passe sous les boutons 'minmize' et close : pas possible ??
	Supprimer définitivement la fenetre quand close
	Checker le lecteur flash
	Empêcher le déplacement d'une fenetre au dessus de la page
	Résultats de la recherche à mettre en "lien_interne"
	Ne pas renvoyer false si ctrl+clic
	lors d'un clic sur une fenetre principale, ajuster le titre de la page, ainsi que l'url.
	Gérer la fenetre "dans la même rubrique" pour qu'elle s'actualise lorsqu'on clique sur une fenêtre ??
*/

var debug = false;

$(function(){
	onAjaxLoad(TraiterLiens); 
	TraiterLiens.apply(document.body);
	//NouvelleFenetre("NewWin", "Content", undefined, true, true, {content:'http://127.0.0.1/spip/spip.php?article171&contenu_seul=1#forum60'});
	//NouvelleFenetre("NewWin", "Content", undefined, true, true, {content:'http://127.0.0.1/spip/testboucle.php'});
  $(".containerPlus").buildContainers({
	containment:false,
	elementsPath:"themes/theme_Fenetres/elements/" ,
	mantainOnWindow:false,
	onLoad:function(fenetre){
				// on récupère l'élément <h1> du contenu pour le mettre dans le titre de la fenetre
				var titre = fenetre.find('.mbcontainercontent:first').find('h1:first');
				if (titre.length == 1)
					fenetre.find('.n:first').html(titre.remove().html());
				// on agrandit la fenetre centrale
				if (fenetre.parent().attr('id') == 'contenu')
				    fenetre.mb_resizeTo($(window).height()-40, $(window).width()>800 ? $(window).width()-500 : 300);
			}

  });
});


// onSuccess : fonction appelée quand le contenu ajax a été chargé
NouvelleFenetre = function (titre, contenu, ancre, resizable, draggable, options, cssOptions, onSuccess){
	this.options = {
		content:'',
		buttons:'m,c', 
		icon:'browser.png',
		skin:'default', 
		iconized:false,
		collapsed:false,
		width:600,
		height:400, 
		dock:undefined, 
		grid:undefined,
		gridx:undefined,
		gridy:undefined, 
		rememberMe:false
	};
	this.cssOptions = {
		position:'absolute',
		left:'200px',
		top:'100px'
	};
	$.extend (this.options, options);
	$.extend (this.cssOptions, cssOptions);
	var fenetre = $('<div><div class="no"><div class="ne"><div class="n"></div></div><div class="o"><div class="e"><div class="c"><div class="mbcontainercontent"></div></div></div></div><div><div class="so"><div class="se"><div class="s"></div></div></div></div></div></div>');
	fenetre.find('.mbcontainercontent:first').html(contenu);
	fenetre.find('.n:first').html(titre);
	if (resizable)
		fenetre.addClass('resizable');
	if (draggable)
		fenetre.addClass('draggable');
	fenetre.addClass('containerPlus').attr(this.options).css(this.cssOptions).appendTo(document.body);
	fenetre.buildContainers({
        containment:false,
        elementsPath:"themes/theme_Fenetres/elements/",
        mantainOnWindow:false,
        onSuccess:onSuccess
      });
	return fenetre;
}


// Transforme les liens présents dans la zone passée en paramètre en liens interactifs s'ouvrant dans la zone correspondante
var TraiterLiens = function()
{
	$("a.lien_interne, a.spip_in", this).bind(
		'click',
		function()
		{
			var url = this.href.split('#');
			var newHref = url[0];
			newHref += newHref.indexOf("?") < 0 ? "?" : "&";
			newHref+="contenu_seul=1";
			if (url.length == 2)
				newHref += "#" + url[1];
			var titre = this.title ? this.title : this.text;
			titre += "..."
			// debugging only :
			// newHref = "http://127.0.0.1/spip/testboucle.php";
			// on ajoute un peu d'aléatoire pour que le rndu soit plus joli :
			var left = 200 + Math.floor(Math.random()*40);
			var top = Math.floor(Math.random()*40);
			var height = $(window).height() - 20 - Math.floor(Math.random()*40);
			if (height < 200) height = 200;
			var width = $(window).width() - left - 220 + Math.floor(Math.random()*40);
			if (width < 300) width = 300;
			var fenetre = NouvelleFenetre(titre, "Chargement ...", url.length == 2 ? url[1] : undefined, true, true, 
				{content:newHref, width:width, height:height}, 
				{left:left, top:top},
				function(){
					// on récupère l'élément <h1> du contenu pour le mettre dans le titre de la fenetre
					var titre = fenetre.find('.mbcontainercontent:first').find('h1:first');
					fenetre.find('.n:first').html(titre.remove().html());
					// on traite les liens internes
					TraiterLiens.apply(fenetre.find('.mbcontainercontent:first'));
					// on traite l'url affichée dans la barre d'adresse
					// permet d'autoriser un refresh d'une page
					// TODO !!
					//var tab = document.location.href.split('#');
					//document.location.href = tab[0] + '#' + newHref; 
				}
			);
			if (debug)
				fenetre.find('.s:last').append(newHref);
			return false;
		}
	)
}