function trim(myString){return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');}
/*****************************************************************************************************************************

	DESCRIPTION	: FICHIER SERVANT À FAIRE DES CALLS AJAX
	PAR 		: DAVID BOISSONNAULT (davidboiss@gmail.com)
	DATE MODIF	: 15 MARS 2007
			
	UTILISATION :
	
		PREMIÈREMENT 
		
			Ajoutez ceci dans le header de vos pages  :	<script type="text/javascript" src="ajax.js"></script>
			
			Ajoutez ensuite les lignes qui parle de divDebug vers la fin du fichier ajax.css dans votre fichier CSS
	
		1: Retourner la réponse ajax dans un objet HTML 
		
		------8<-----------------[DÉBUT]-Coupez-ici--------------------------------------------------------
		
			callAjax('fichier.php',null,document.getElementById('objetHTML'), [ document.getElementById('objetFORM') ] );
			
			// Note : Le dernier paramêtre est optionnel et est utilisé 
			// seulement si on veut envoyé un formulaire en POST.
			
		------8<-----------------[FIN]-Coupez-ici--------------------------------------------------------
	
	
	
		2: Traité le retour dans une fonction javascript.
		
		------8<-----------------[DÉBUT]-Coupez-ici--------------------------------------------------------
			
			// Déclarez premièrement la fonction qui traite le retour comme ceci :
			
			var fonctionDeRetour = function() {
				if (ajaxOk()) {
					
					// faite ce que vous voulez avec le retour
					
					// La réponse se trouve dans objAjax.responseText 
					// ou bien dans objAjax.responseXML (si vous traitez le XML)
					
					alert(objAjax.responseText);
					
					
					killAjax();
				}
			}
			
			// Appelez ensuite la fonction callAjax de cette manière
			
			callAjax('fichier.php',fonctionDeRetour, [ null ], [ document.getElementById('objetFORM') ] );
			
			// Si on n'envoit pas de formulaire avec notre call, on peut 
			// simplement appeler callAjax('fichier.php',fonctionDeRetour);
			// les derniers paramêtre sont facultatifs.
			
			// Notez qu'il faut passé null au 3ième paramêtre si on envoit un formulaire (4ième paramêtre)
			// car sinon le retour ne sera pas traité dans notre fonction
			
			
		------8<------------------[FIN]-Coupez-ici--------------------------------------------------------
		

*****************************************************************************************************************************/

// Paramêtres à modifier pour qu'ils fittent avec vos besoins.


/**************************************************************************
//Paramêtre ajaxEmptyObject :
//
// 		Lorsqu'un call ajax retourne son contenu dans un objet html
//		est-ce qu'au moment du call on veut vider le contenu du call ?
//		
//			Choix de réponse : true ou false
//			
//			Si true 	: 	L'objet du retour sera vider au moment du call, 
//							et sera mit à jour au moment de la réponse
//							
//			Si false 	: 	L'objet du retour restera comme il est au moment 
//							du call et sera mit à jour seulement lorsque la 
//							réponse ajax sera reçu
//							
*/

var ajaxEmtyObject = false;



/*************************************************************************/


/************************************************************************** 
//Paramêtre ajaxEnableDebug :
//
// 		Lorsqu'on effectue un call ajax est-ce qu'on veut logger 
//		toutes les opérations à l'intérieur d'un objet html ?
//		
//		Les opérations qui seront loggés :
//			
//			1 : Tous les call avec les paramêtres reçu
//			
//			2 : Toutes les réponses de retour.
//			
//			3 : Toutes les fois que des calls auront été ajoutés à la queue.
//			
//			4 : Toutes les exécutions de scripts dans les retours
//			
//		
//		Choix de réponse : true ou false
//			
//			Si true 	: 	On loggera les informations des call, des retour, 
//							et d'autres informations utile au déboggage des 
//							traitements ajax...
//							
//			Si false 	: 	On ne loggera rien (Mode production par exemple)
*/			

var ajaxEnableDebug = false;



/*************************************************************************/


/************************************************************************** 
//
//VEUILLEZ NOTER QUE SI VOUS AVEZ DÉFINI : 
//
//var ajaxEnableDebug = false;
//
//LES PROCHAINS PARAMÊTRES SONT INUTILES.
//
**************************************************************************/


/************************************************************************** 
//Paramêtre ajaxDebugID :
//
//		NOTE : Ce paramêtre est requis seulement si ajaxEnableDebug est true.
//
// 		Lorsqu'on effectue un call ajax est-ce qu'on veut logger toutes 
//		les opérations à l'intérieur d'un objet html ?
//		
//			Réponse : 	un string définissant l'id de l'objet HTML ou on ajoute
//						les informations de déboggage
//			
*/			

var ajaxDebugID = 'divDebug';



/*************************************************************************/


/************************************************************************** 
//Paramêtre ajaxShowDebugOnError :
//
// 		Lorsqu'on effectue un call ajax est-ce qu'on veut afficher 
//		la fenêtre de déboggage si une erreur survient ?
//		
//		Erreur possible :
//			
//			1: 	Lorsque le statut de la réponse est différent de 200 (objAjax.status).
//			
//			2: 	Lors du traitement d'une balise script dans le retour, et que ce 
//				traitement retourne une erreur.
//			
//			3: 	Lorsqu'il est impossible d'effectuer un call Ajax avec le browser.
//		
//		Choix de réponse : true ou false
//			
//			Si true 	: 	On affiche la fenêtre de déboggage en cas d'erreur
//							
//			Si false 	: 	On n'affiche pas la fenêtre de déboggage...
*/			


var ajaxShowDebugOnError = false;



/*************************************************************************/



/**************************************************************************

	  VOUS NE DEVRIEZ PAS AVOIR BESOIN DE MODIFIER LE CODE PLUS BAS.

**************************************************************************/


// Variables qui sont utilisées par plusieurs fonctions et qui doivent être déclarées globalement.  
var objAjax=null;
var ajaxQueue=new Array();
var ajaxReturnObject=null;

//sdfsdf
// Fonction qui effectue les call, les explications pour cette fonction sont décrites au début du fichier.
function callAjax(url,returnFunction,returnObject,formToPost,forcePost) {
	//alert('test ajax');
	// déclaration d'un string vide qui servira a garder le contenu 
	// du formulaire à poster, si formulaire à poster il y a.
	var postData = "";
	
	// si l'objet ajax n'est pas présentement en utilisation, on peut y aller avec le call.
	if (objAjax == null) {
		//alert(formToPost);
		// Si on doit poster un formulaire, on apelle la fonction buildPostData 
		// qui construira le string encodé du formulaire à poster.
		if (!('undefined' == typeof formToPost || formToPost == null)) postData = buildPostData(formToPost);
		if(!('undefined' == typeof forcePost || forcePost == null)) postData = forcePost;
		// vérification si on retourne la réponse dans un objet
		// dans ce cas il sera différent de null et n'aura pas un type 'undefined'
		if (!('undefined' == typeof returnObject || returnObject == null)) {
			
			// On garde alors l'objet de retour globalement pour pouvoir l'utiliser dans la fonction ajaxToElement.
			ajaxReturnObject = returnObject;
			
			// Si on doit vider le contenu de l'objet de retour au moment du call, on le vide...
			if (ajaxEmtyObject) ajaxReturnObject.innerHTML = '';
			
			// La fonction de retour sera donc ajaxToElement
			returnFunction = ajaxToElement;
		}
		else ajaxReturnObject = null;
		
		// Ajout de compatibilité pour la majorité des browsers....
		ajaxAddDebug('Tentative de call ajax', 'URL : '+url+((postData != '') ? '<br/>FORMDATA :'+postData : ''));
		if (window.XMLHttpRequest) {
			// Cette méthode sera utilisé pour la majorité des browsers (IE7, Firefox, Safari, Konqueror, etc...)
			objAjax = new XMLHttpRequest();
			
			// Assignation de la fonction de retour...
			objAjax.onreadystatechange = returnFunction;
			
			if (postData != "") {
				// Si on post un formulaire avec le call, on ouvre l'objet en post 
				// et on envoit le contenu du formulaire à l'aide de la fonction send().
				
				objAjax.open("POST",url,true);
				objAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
				objAjax.send(postData);
			}
			else {
				// Sinon on envoit le call en GET, et on envoit null à la fonction send.
				
				// 		Note : 	je ne sais pas pourquoi on envoit null à la fonction send() avec XMLHttpRequest()
				//				alors qu'on ne passe pas ce paramêtre avec ActiveXObject("Microsoft.XMLHTTP")
				//				mais c'est comme ca que l'exemple sur w3schools est décrite.
				
				objAjax.open("GET",url,true);	
				objAjax.send(null);
			}			
		}
		else if (window.ActiveXObject) {
			
			// Même chose que plus haut mais pour MSIE 6 (Et peut-être MSIE 5.5, je ne suis pas très sur...)
			
			objAjax = new ActiveXObject("Microsoft.XMLHTTP");
			objAjax.onreadystatechange = returnFunction;
			if (postData != "") {
				objAjax.open("POST",url,true);
				objAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
				objAjax.send(postData);
			}
			else {
				objAjax.open("GET",url,true);	
				objAjax.send();
			}
		}
		else {
			// Sinon le call ajax est impossible, aviser l'usager...
			ajaxAddError('Call ajax impossible','Le browser ne comprend ni l\'objet ActiveXObject, ni XMLHttpRequest');
			alert("Browser incompatible avec la technologie du site.");
		}
	}
	
	// Si l'objet ajax était déjà en train d'effectuer un call, 
	// alors on ajoute ce call à la queue, il sera traité dès 
	// que les calls précédents seront terminés.
	else queueAjaxCall(url,returnFunction,returnObject,formToPost);
}

// Fonction qui ajoute un élément dans la queue. 
// Les paramêtre sont les même que la fonction callAjax.
//
// Vous n'aurez pas besoin d'appeler cette fonction
// C'est la fonction callAjax qui s'occupe de l'appeler
// si un call est en traitement.
function queueAjaxCall(url,retfunc,retobj,ftp) {
	var newqueue = new Array();
	newqueue['url'] = url;
	newqueue['retfunc'] = retfunc;
	newqueue['retobj'] = retobj;
	newqueue['ftp'] = ftp;
	ajaxQueue.push(newqueue);
	ajaxAddDebug('Ajout d\'un call ajax à la queue','URL : '+url);
}

// Fonction servant à vérifié le readyState
// il est important d'appeler cette fonction
// et de ne pas vérifier manuellement le readyState
// car cette fonction ajoute le retour dans 
// votre objet de déboggage.
//
// La manière d'utiliser la fonction est décrite 
// dans l'entête du fichier.
function ajaxOk() {
	if (objAjax.readyState == 4) {
		//alert(objAjax.responseText);
		if (objAjax.status == 200) ajaxAddDebug('Réponse reçu',objAjax.responseText);
		else ajaxAddError('Réponse reçu avec un statut différent de 200 ('+objAjax.status+')',objAjax.responseText);
		
		return true;
 	}
	else return false;
}


// Fonction pour envoyer le contenu d'une requete vers un élément HTML.
function ajaxToElement() {
	if (ajaxOk()) {
		
		// Modification de l'objet de retour avec la réponse...
		ajaxReturnObject.innerHTML = objAjax.responseText;
		/*var teststr = objAjax.responseText;
		//alert(teststr);
		var scripts;
		var regexpress = /<script.*>(.*)<\/script>/gmi;
		if (scripts = regexpress.exec(teststr)) {
			alert(scripts[1]);
		}
		// Vérification si on a recu des balises <SCRIPT> dans la réponse et éxécution de ceux-ci.
		*/
		var fs = ajaxReturnObject.getElementsByTagName('script');
		
		for(var x=0;x<fs.length;x++) {
			try { 
				eval(fs[x].innerHTML); 
				ajaxAddDebug('Script exécuté dans la réponse',fs[x].innerHTML);
				
			}
			catch(e) { 
				//alert('Error executing script : '+fs[x].innerHTML);
				ajaxAddError('Un script a retourné une erreur dans la réponse ('+e.description+')',fs[x].innerHTML);
			}
		}
		
		// Destruction de l'objet ajax... 
		killAjax();
	}
}


// Destruction de l'objet ajax.
// À appeler lorsqu'on termine le traitement dans une fonction de retour...
// Vous trouverez un exemple concret dans le header du fichier...
function killAjax() {
	objAjax = null;	
	
	// S'il y a des éléments dans la queue, alors on apelle le premier, puis on l'enleve de la queue...
	if (ajaxQueue.length > 0) {
		callAjax(ajaxQueue[0]['url'],ajaxQueue[0]['retfunc'],ajaxQueue[0]['retobj'],ajaxQueue[0]['ftp'])	
		ajaxQueue.shift();
	}
	
}


// Fonction qui build un string encodé pour poster un formulaire...
function buildPostData(frm) {
	
	// String de retour, on la débute vide...
	var returnData = "";
	
	// Tags html qu'on doit vérifier les valeurs...
	var tags = new Array("input","textarea","select");
	
	// On loop et on cherche chacun des éléments dans le array plus haut...
	for (var k = 0; k < tags.length; ) {
		var ar = frm.getElementsByTagName(tags[k++]);
		var cc = null;
		for (var i = 0; i < ar.length;) {
			cc = ar[i++];
			
			// Si l'objet possède un attribut "name" et n'est pas de type "file"
			// alors on doit l'encoder dans notre string de retour.
			if (cc.name != "" && cc.type != "file") {
				
				// Traitement différent si c'est un checkbox ou un radio... 
				// dans ce cas, seulement si l'attribut checked est différent 
				// de false on doit l'ajouter dans notre string de retour...
				if (cc.getAttribute("type") == 'checkbox' || cc.getAttribute('type') == 'radio') {
					if (cc.checked != false) returnData += (returnData != "") ? "&" + cc.name + "=" + escape(cc.value) : cc.name + "=" + escape(cc.value);
				}
				
				// Sinon, c'est un élément HTML normal, on l'ajoute dans notre string de retour...
				else returnData += (returnData != "") ? "&" + cc.name + "=" + escape(cc.value) : cc.name + "=" + escape(cc.value);					
			}
		}
	}
	
	// On retourne ensuite le string qu'on vient de bâtir...
	return returnData;
}

function ajaxAddDebug(strOperation,strData) {
	// Ajout d'une ligne dans le débug s'il est actif
	if (ajaxEnableDebug) {
		var debugElement = document.createElement('div');
		debugElement.className = 'success';
		var debugInfo = document.createElement('div');
		debugInfo.className = 'operation';
		var txtNode = document.createTextNode(strOperation);
		debugInfo.appendChild(txtNode);
		var debugData = document.createElement('pre');
		debugData.innerHTML = strData.split('<').join('&lt;').split('>').join('&gt;');
		debugElement.appendChild(debugInfo);
		debugElement.appendChild(debugData);
		try{ 
			document.getElementById(ajaxDebugID).appendChild(debugElement); 
			document.getElementById(ajaxDebugID).scrollTop = 99999999;
		}
		catch(e) { alert('L\'objet de déboggage (ID : '+ajaxDebugID+') n\'a pas été trouvé.'); }
	}
	
}

function ajaxAddError(strOperation,strData) {
	// Ajout d'une ligne d'erreur dans le débug s'il est actif et montrer la fenetre si on doit la montrer lors d'une erreur
	if (ajaxEnableDebug) {
		var debugElement = document.createElement('div');
		debugElement.className = 'error';
		var debugInfo = document.createElement('div');
		debugInfo.className = 'operation';
		var txtNode = document.createTextNode(strOperation);
		debugInfo.appendChild(txtNode);
		var debugData = document.createElement('pre');
		debugData.innerHTML = strData.split('<').join('&lt;').split('>').join('&gt;');
		debugElement.appendChild(debugInfo);
		debugElement.appendChild(debugData);
		try{ 
			document.getElementById(ajaxDebugID).appendChild(debugElement); 
			if (ajaxShowDebugOnError) document.getElementById(ajaxDebugID).style.display = 'block';
			document.getElementById(ajaxDebugID).scrollTop = 99999999;
		}
		catch(e) { alert('L\'objet de déboggage (ID : '+ajaxDebugID+') n\'a pas été trouvé.'); }
	}
}

/*setcookie('noexecution',1);

function addBrowserHistory(elm) {
	//alert(elm.getAttribute('onclick'));
	var regex = new RegExp("^(.*)addBrowserHistory.+this.+$","m");
	var regmatch;
	if (regmatch = regex.exec(elm.getAttribute('onclick'))) {
		//alert(regmatch[1]);
		setcookie('noexecution',1);
		var url = 'browserhistory.php?call='+escape(regmatch[1]);
		$('browserHistory').src = url;
		
	}
	//execScript.
	//
}*/
/*
Initialisation des rollovers des images (et preload des images rollover)

 	Exemple d'image qui aura un rollover
	  	<img src="/images/test.jpg" hsrc="/images/test_over.jpg" />
*/

var imgTemp;
var init_rollovers = function() {
	if (!document.getElementById) return;
	var imgOriginSrc;
	var MouseOverHappened;
	var oldtop;
	imgTemp = new Array();
	var imgtags = new Array('img','input');
	for(var e = 0; e < imgtags.length; e++){
	var ttag = imgtags[e];
	for (var i = 0; i < document.getElementsByTagName(ttag).length; i++) {
		//Attribut hsrc pour Rollovers
		if (document.getElementsByTagName(ttag)[i].getAttribute('hsrc')) {
			if (document.getElementsByTagName(ttag)[i].getAttribute('mouseoverinited')) continue;
			
			document.getElementsByTagName(ttag)[i].setAttribute('mouseoverinited',true);
			imgTemp[i] = new Image();
			imgTemp[i].src = document.getElementsByTagName(ttag)[i].getAttribute('hsrc');
			document.getElementsByTagName(ttag)[i].setAttribute('mouseoverappened',false);
			document.getElementsByTagName(ttag)[i].setAttribute('osrc',document.getElementsByTagName(ttag)[i].getAttribute('src'));
			document.getElementsByTagName(ttag)[i].onmouseover = function() {		
				this.setAttribute('mouseoverappened',true);
				this.setAttribute('src',this.getAttribute('hsrc'));
			}
			document.getElementsByTagName(ttag)[i].onmouseout = function() {
				if (this.getAttribute('mouseoverappened')) {
					this.setAttribute('src',this.getAttribute('osrc'));
					this.setAttribute('mouseoverappened',false);
				}
			}
		}
	}
	}
}

try { Event.observe(window, 'load',init_rollovers); } 
catch(e) {
	try { jQuery(document).ready(function () { init_rollovers(); }); } 
	catch(z) {
		try {
			if(window.addEventListener){
				window.addEventListener("load", init_rollovers, false);
			}
			if(window.attachEvent){
				window.attachEvent("onload",init_rollovers);
			}
		} 
		catch(e) { alert('Impossible d\'initialiser les rollovers des images. (Script : /adnbase/js/rollovers.js)'); }
	}
}

function osrc(sender,isrc){
	var oldsrc = sender.src;
	sender.src = isrc;
	sender.onmouseout=function(){
		this.src=oldsrc;
	}
	return false;
}/*	Unobtrusive Flash Objects (UFO) v3.20 <http://www.bobbyvandersluis.com/ufo/>
	Copyright 2005, 2006 Bobby van der Sluis
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

var UFO = {
	req: ["movie", "width", "height"/*, "majorversion", "build"*/],
	opt: ["majorversion", "build", "play", "loop", "menu", "quality", "scale", "salign", "wmode", "bgcolor", "base", "flashvars", "devicefont", "allowscriptaccess", "seamlesstabbing","allowfullscreen"],
	optAtt: ["id", "name", "align"],
	optExc: ["swliveconnect"],
	ximovie: "ufo.swf",
	xiwidth: "215",
	xiheight: "138",
	ua: navigator.userAgent.toLowerCase(),
	pluginType: "",
	fv: [0,0],
	foList: [],
		
	create: function(FO, id) {
		if (!UFO.uaHas("w3cdom") || UFO.uaHas("ieMac")) return;
		UFO.getFlashVersion();
		UFO.foList[id] = UFO.updateFO(FO);
		UFO.createCSS("#" + id, "visibility:hidden;");
		UFO.domLoad(id);
	},

	updateFO: function(FO) {
		if (typeof FO.xi != "undefined" && FO.xi == "true") {
			if (typeof FO.ximovie == "undefined") FO.ximovie = UFO.ximovie;
			if (typeof FO.xiwidth == "undefined") FO.xiwidth = UFO.xiwidth;
			if (typeof FO.xiheight == "undefined") FO.xiheight = UFO.xiheight;
		}
		FO.mainCalled = false;
		return FO;
	},

	domLoad: function(id) {
		var _t = setInterval(function() {
			if ((document.getElementsByTagName("body")[0] != null || document.body != null) && document.getElementById(id) != null) {
				UFO.main(id);
				clearInterval(_t);
			}
		}, 250);
		if (typeof document.addEventListener != "undefined") {
			document.addEventListener("DOMContentLoaded", function() { UFO.main(id); clearInterval(_t); } , null); // Gecko, Opera 9+
		}
	},

	main: function(id) {
		var _fo = UFO.foList[id];
		if (_fo.mainCalled) return;
		UFO.foList[id].mainCalled = true;
		document.getElementById(id).style.visibility = "hidden";
		if (UFO.hasRequired(id)) {
			if (UFO.hasFlashVersion((parseInt(_fo.majorversion, 10) || 7), (parseInt(_fo.build, 10) || 0))) {
				if (typeof _fo.setcontainercss != "undefined" && _fo.setcontainercss == "true") UFO.setContainerCSS(id);
				UFO.writeSWF(id);
			}
			else if (_fo.xi == "true" && UFO.hasFlashVersion(6, 65)) {
				UFO.createDialog(id);
			}
		}
		document.getElementById(id).style.visibility = "visible";
	},
	
	createCSS: function(selector, declaration) {
		var _h = document.getElementsByTagName("head")[0]; 
		var _s = UFO.createElement("style");
		if (!UFO.uaHas("ieWin")) _s.appendChild(document.createTextNode(selector + " {" + declaration + "}")); // bugs in IE/Win
		_s.setAttribute("type", "text/css");
		_s.setAttribute("media", "screen"); 
		_h.appendChild(_s);
		if (UFO.uaHas("ieWin") && document.styleSheets && document.styleSheets.length > 0) {
			var _ls = document.styleSheets[document.styleSheets.length - 1];
			if (typeof _ls.addRule == "object") _ls.addRule(selector, declaration);
		}
	},
	
	setContainerCSS: function(id) {
		var _fo = UFO.foList[id];
		var _w = /%/.test(_fo.width) ? "" : "px";
		var _h = /%/.test(_fo.height) ? "" : "px";
		UFO.createCSS("#" + id, "width:" + _fo.width + _w +"; height:" + _fo.height + _h +";");
		if (_fo.width == "100%") {
			UFO.createCSS("body", "margin-left:0; margin-right:0; padding-left:0; padding-right:0;");
		}
		if (_fo.height == "100%") {
			UFO.createCSS("html", "height:100%; overflow:hidden;");
			UFO.createCSS("body", "margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:0; height:100%;");
		}
	},

	createElement: function(el) {
		return (UFO.uaHas("xml") && typeof document.createElementNS != "undefined") ?  document.createElementNS("http://www.w3.org/1999/xhtml", el) : document.createElement(el);
	},

	createObjParam: function(el, aName, aValue) {
		var _p = UFO.createElement("param");
		_p.setAttribute("name", aName);	
		_p.setAttribute("value", aValue);
		el.appendChild(_p);
	},

	uaHas: function(ft) {
		var _u = UFO.ua;
		switch(ft) {
			case "w3cdom":
				return (typeof document.getElementById != "undefined" && typeof document.getElementsByTagName != "undefined" && (typeof document.createElement != "undefined" || typeof document.createElementNS != "undefined"));
			case "xml":
				var _m = document.getElementsByTagName("meta");
				var _l = _m.length;
				for (var i = 0; i < _l; i++) {
					if (/content-type/i.test(_m[i].getAttribute("http-equiv")) && /xml/i.test(_m[i].getAttribute("content"))) return true;
				}
				return false;
			case "ieMac":
				return /msie/.test(_u) && !/opera/.test(_u) && /mac/.test(_u);
			case "ieWin":
				return /msie/.test(_u) && !/opera/.test(_u) && /win/.test(_u);
			case "gecko":
				return /gecko/.test(_u) && !/applewebkit/.test(_u);
			case "opera":
				return /opera/.test(_u);
			case "safari":
				return /applewebkit/.test(_u);
			default:
				return false;
		}
	},
	
	getFlashVersion: function() {
		if (UFO.fv[0] != 0) return;  
		if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
			UFO.pluginType = "npapi";
			var _d = navigator.plugins["Shockwave Flash"].description;
			if (typeof _d != "undefined") {
				_d = _d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				var _m = parseInt(_d.replace(/^(.*)\..*$/, "$1"), 10);
				var _r = /r/.test(_d) ? parseInt(_d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
				UFO.fv = [_m, _r];
			}
		}
		else if (window.ActiveXObject) {
			UFO.pluginType = "ax";
			try { // avoid fp 6 crashes
				var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
			}
			catch(e) {
				try { 
					var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					UFO.fv = [6, 0];
					_a.AllowScriptAccess = "always"; // throws if fp < 6.47 
				}
				catch(e) {
					if (UFO.fv[0] == 6) return;
				}
				try {
					var _a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
				}
				catch(e) {}
			}
			if (typeof _a == "object") {
				var _d = _a.GetVariable("$version"); // bugs in fp 6.21/6.23
				if (typeof _d != "undefined") {
					_d = _d.replace(/^\S+\s+(.*)$/, "$1").split(",");
					UFO.fv = [parseInt(_d[0], 10), parseInt(_d[2], 10)];
				}
			}
		}
	},

	hasRequired: function(id) {
		var _l = UFO.req.length;
		for (var i = 0; i < _l; i++) {
			if (typeof UFO.foList[id][UFO.req[i]] == "undefined") return false;
		}
		return true;
	},
	
	hasFlashVersion: function(major, release) {
		return (UFO.fv[0] > major || (UFO.fv[0] == major && UFO.fv[1] >= release)) ? true : false;
	},

	writeSWF: function(id) {
		var _fo = UFO.foList[id];
		var _e = document.getElementById(id);
		if (UFO.pluginType == "npapi") {
			if (UFO.uaHas("gecko") || UFO.uaHas("xml")) {
				while(_e.hasChildNodes()) {
					_e.removeChild(_e.firstChild);
				}
				var _obj = UFO.createElement("object");
				_obj.setAttribute("type", "application/x-shockwave-flash");
				_obj.setAttribute("data", _fo.movie);
				_obj.setAttribute("width", _fo.width);
				_obj.setAttribute("height", _fo.height);
				var _l = UFO.optAtt.length;
				for (var i = 0; i < _l; i++) {
					if (typeof _fo[UFO.optAtt[i]] != "undefined") _obj.setAttribute(UFO.optAtt[i], _fo[UFO.optAtt[i]]);
				}
				var _o = UFO.opt.concat(UFO.optExc);
				var _l = _o.length;
				for (var i = 0; i < _l; i++) {
					if (typeof _fo[_o[i]] != "undefined") UFO.createObjParam(_obj, _o[i], _fo[_o[i]]);
				}
				_e.appendChild(_obj);
			}
			else {
				var _emb = "";
				var _o = UFO.opt.concat(UFO.optAtt).concat(UFO.optExc);
				var _l = _o.length;
				for (var i = 0; i < _l; i++) {
					if (typeof _fo[_o[i]] != "undefined") _emb += ' ' + _o[i] + '="' + _fo[_o[i]] + '"';
				}
				_e.innerHTML = '<embed type="application/x-shockwave-flash" src="' + _fo.movie + '" width="' + _fo.width + '" height="' + _fo.height + '" pluginspage="http://www.macromedia.com/go/getflashplayer"' + _emb + '></embed>';
			}
		}
		else if (UFO.pluginType == "ax") {
			var _objAtt = "";
			var _l = UFO.optAtt.length;
			for (var i = 0; i < _l; i++) {
				if (typeof _fo[UFO.optAtt[i]] != "undefined") _objAtt += ' ' + UFO.optAtt[i] + '="' + _fo[UFO.optAtt[i]] + '"';
			}
			var _objPar = "";
			var _l = UFO.opt.length;
			for (var i = 0; i < _l; i++) {
				if (typeof _fo[UFO.opt[i]] != "undefined") _objPar += '<param name="' + UFO.opt[i] + '" value="' + _fo[UFO.opt[i]] + '" />';
			}
			var _p = window.location.protocol == "https:" ? "https:" : "http:";
			_e.innerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + _objAtt + ' width="' + _fo.width + '" height="' + _fo.height + '" codebase="' + _p + '//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + _fo.majorversion + ',0,' + _fo.build + ',0"><param name="movie" value="' + _fo.movie + '" />' + _objPar + '</object>';
		}
	},
		
	createDialog: function(id) {
		var _fo = UFO.foList[id];
		UFO.createCSS("html", "height:100%; overflow:hidden;");
		UFO.createCSS("body", "height:100%; overflow:hidden;");
		UFO.createCSS("#xi-con", "position:absolute; left:0; top:0; z-index:1000; width:100%; height:100%; background-color:#fff; filter:alpha(opacity:75); opacity:0.75;");
		UFO.createCSS("#xi-dia", "position:absolute; left:50%; top:50%; margin-left: -" + Math.round(parseInt(_fo.xiwidth, 10) / 2) + "px; margin-top: -" + Math.round(parseInt(_fo.xiheight, 10) / 2) + "px; width:" + _fo.xiwidth + "px; height:" + _fo.xiheight + "px;");
		var _b = document.getElementsByTagName("body")[0];
		var _c = UFO.createElement("div");
		_c.setAttribute("id", "xi-con");
		var _d = UFO.createElement("div");
		_d.setAttribute("id", "xi-dia");
		_c.appendChild(_d);
		_b.appendChild(_c);
		var _mmu = window.location;
		if (UFO.uaHas("xml") && UFO.uaHas("safari")) {
			var _mmd = document.getElementsByTagName("title")[0].firstChild.nodeValue = document.getElementsByTagName("title")[0].firstChild.nodeValue.slice(0, 47) + " - Flash Player Installation";
		}
		else {
			var _mmd = document.title = document.title.slice(0, 47) + " - Flash Player Installation";
		}
		var _mmp = UFO.pluginType == "ax" ? "ActiveX" : "PlugIn";
		var _uc = typeof _fo.xiurlcancel != "undefined" ? "&xiUrlCancel=" + _fo.xiurlcancel : "";
		var _uf = typeof _fo.xiurlfailed != "undefined" ? "&xiUrlFailed=" + _fo.xiurlfailed : "";
		UFO.foList["xi-dia"] = { movie:_fo.ximovie, width:_fo.xiwidth, height:_fo.xiheight, majorversion:"6", build:"65", flashvars:"MMredirectURL=" + _mmu + "&MMplayerType=" + _mmp + "&MMdoctitle=" + _mmd + _uc + _uf };
		UFO.writeSWF("xi-dia");
	},

	expressInstallCallback: function() {
		var _b = document.getElementsByTagName("body")[0];
		var _c = document.getElementById("xi-con");
		_b.removeChild(_c);
		UFO.createCSS("body", "height:auto; overflow:auto;");
		UFO.createCSS("html", "height:auto; overflow:auto;");
	},

	cleanupIELeaks: function() {
		var _o = document.getElementsByTagName("object");
		var _l = _o.length
		for (var i = 0; i < _l; i++) {
			_o[i].style.display = "none";
			for (var x in _o[i]) {
				if (typeof _o[i][x] == "function") {
					_o[i][x] = null;
				}
			}
		}
	}

};

if (typeof window.attachEvent != "undefined" && UFO.uaHas("ieWin")) {
	window.attachEvent("onunload", UFO.cleanupIELeaks);
}
/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();// Fonctions relative aux cookies..


function getexpirydate( nodays){
	var UTCstring;
	Today = new Date();
	nomilli=Date.parse(Today);
	Today.setTime(nomilli+nodays*24*60*60*1000);
	UTCstring = Today.toUTCString();
	return UTCstring;
}
function getcookie(cookiename) {
	var cookiestring=""+document.cookie;
	var index1=cookiestring.indexOf(cookiename);
	if (index1==-1 || cookiename=="") return ""; 
	var index2=cookiestring.indexOf(';',index1);
	if (index2==-1) index2=cookiestring.length; 
	return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(name,value,duration){
	if (arguments.length == 3) cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
	else if (arguments.length == 2) cookiestring=name+"="+escape(value);
	else if (arguments.length == 1) cookiestring=name+"=;EXPIRES="+getexpirydate(-1);
	else return;
	document.cookie=cookiestring;
	if(!getcookie(name)) return false;
	else return true;
}
var mousewent = null;
var mouset = null;
var adnInterval = new Object;
var evil = ($.browser.msie && $.browser.version.substr(0,1)<7);


function mainmenuJQ(s){
	$('ul li.parent ul').hide();
	$(function(){
		$('ul li.parent a').hover(function(){
			clearTimeout(mousewent);
			mousewent = null;
			
			$(this).parent().addClass("shover");
			$(this).parent().children('ul').slideDown(s);
		},function(){
			clearTimeout(mousewent);
			mouset = this;
			mousewent = setTimeout(function(){
				$(mouset).parent().children('ul').slideUp(s,function(){mainmenuJQhide(this)});
			},20);
		});
		
		$('ul li.parent ul').hover(function(){
			clearTimeout(mousewent);
			mousewent = null;
			
			$(this).parent().addClass("shover");
			$(this).show();
		},function(){
			clearTimeout(mousewent);
			mouset = this;
			mousewent = setTimeout(function(){
				$(mouset).slideUp(s,function(){mainmenuJQhide(this)});
			},20);
		});
	});
}
function mainmenuJQhide(sender){
	$(sender).hide();
	$(sender).parent().removeClass("shover");
	mousewent = null;
}

function changeSizeTxtJQ(plus){
	if(document.getElementById("contenu") && document.getElementById("outils")){
		var cH = (document.getElementById("contenu"));
		
		if(plus==-1) $("#contenu").eq(0).css("fontSize",getcookie("fSizeJQ")+"px");
		
		var fSize = parseInt($("#contenu").eq(0).css("fontSize"));
		
		$("#outils li.small a").removeClass("hidden");
		$("#outils li.large a").removeClass("hidden");
		
		if(plus!=-1){
			if(plus){
				if(fSize<17){
					fSize++;
					cH.style.fontSize = fSize+"px";
				}
			}else{
				if(fSize>10){
					fSize--;
					cH.style.fontSize = fSize+"px";
				}
			}
		}
		
		if(fSize>=17) $("#outils li.large a").addClass("hidden");
		if(fSize<=10) $("#outils li.small a").addClass("hidden");
		
		setcookie("fSizeJQ",fSize,30);
	}
	return false;
}

function pMyPage(){
	window.print();
	return false;
}

$(function(){
	$('#astuces').show();
	$('#outils li.small a').bind('click', function(){
		changeSizeTxtJQ(0);
		return false;
	});
	$('#outils li.large a').bind('click', function(){
		changeSizeTxtJQ(1);
		return false;
	});
	$('#outils li.print a').bind('click', function(){
		return pMyPage();
	});
	if(getcookie("fSizeJQ")) changeSizeTxtJQ(-1);
});

function tapis(sens,selector,sid,speed,trans,step,size){
	//var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
	
	if($(selector).length>0){
		if($("#"+sid+"").length==0){
			$(selector).wrapAll('<div id="'+sid+'" style="overflow: hidden; position: relative;" />');
			$(selector).wrapAll('<div class="scroll" style="position: absolute; top: 0px; left: 0px;" />');
			$("#"+sid+" "+selector).wrap('<div class="wrapper" />');
		}
		
		tapisContent = $("#"+sid+" .scroll").eq(0);
		steps = $("#"+sid+" .wrapper");
		
		var scrollsize=0;
		for(i=0;i<size;i++){
			scrollsize+= (sens=="top") ? $(steps).eq(i).height() : $(steps).eq(i).width();
		}
		
		if(sens=="top"){
			$("#"+sid+"").height(scrollsize);
		}else{
			$("#"+sid+"").width(scrollsize);
		}
		
		if(steps.length>step){
			clearInterval(adnInterval[sid]);
			adnInterval[sid] = setInterval(function(){
				roulant(sid,trans,step,sens,tapisContent);  
			}, speed);
			
			$(tapisContent).mouseenter(function(){
				clearInterval(adnInterval[sid]);
				adnInterval[sid] = null;
			});
			$(tapisContent).mouseleave(function(){
				if(!adnInterval[sid]) tapis(sens,selector,sid,speed,trans,step,size);
			});
		}
	}
}
function roulant(sid,s,c,sens,t){
	var ss = 0;
	var arr = $("#"+sid+" .wrapper");
	
	for(i=0;i<c;i++){
		ss+= (sens=="top") ? $(arr).eq(i).height() : $(arr).eq(i).width();
		$(t).append($(arr).eq(i).clone());
	}
	
	// PM ----- ou autre programmeur : VÉRIFIER QUE ÉTAPE S'EXECUTE APRES L'ANIMATION !!!! ????
	if(sens=="top"){
		$(t).animate({top: "-="+ss+"px"}, s, "linear", function(){etape(c,sens,ss,t,arr);});
	}else{
		$(t).animate({left: "-="+ss+"px"}, s, "linear", function(){etape(c,sens,ss,t,arr);});
	}
}
function etape(c,sens,ss,t,arr){
	$(t).css(sens,'0px');
	for(i=0;i<c;i++){
		$(arr).eq(i).remove();
	}
}

jQuery.fn.adnDeon = function() {
	var o = $(this[0]);
	var params = arguments[0] || {};
		if(!params.tag) params.tag = "h4";
		if(!params.separator) params.separator = "hr";
		if(!params.container) params.container = "#"+$(o).attr("id");
		if(!params.expanderClass) params.expanderClass = "adnDeonExpander";
		if(!params.containerClass) params.containerClass = "adnDeonHolder";
		if(!params.separatorClass) params.separatorClass = "adnDeonSep";
		//params.collapsible
		//params.scrollToExpander
		//params.autoExpand
		if(!params.slideUpSpeed) params.slideUpSpeed = 600;
		if(!params.slideDownSpeed) params.slideDownSpeed = 800;
	
	if($(""+params.container+" div."+params.containerClass+"").length==0){
		$(""+params.container+" "+params.tag+", "+params.container+" "+params.separator+"").each(function(index){
			$(this).addClass(""+params.expanderClass+"");
			$(this).attr("id","adnDeonEx_"+index);
			if($(this).is(""+params.separator+"")){
				$(this).nextAll().wrapAll('<div class="'+params.separatorClass+'" />');
			}else{
				$(this).nextAll().wrapAll('<div class="'+params.containerClass+'" />');
			}
		 });
		 
		 var expanders = $(""+params.container+" "+params.tag+", "+params.container+" "+params.separator+"").remove();
		 var containers = $(""+params.container+" div."+params.containerClass+", "+params.container+" div."+params.separatorClass+"").remove();
		 
		 //alert(expanders.length + " " + containers.length);
		 
		 $(expanders).each(function(index){
			$(""+params.container+"").append(this);
			$(""+params.container+"").append($(containers).eq(index));
		 });
		 
		 $(""+params.container+" div."+params.containerClass+"").hide();
		 if(!params.separatorShow) $(""+params.container+" "+params.separator+"").hide();
		
		 $(""+params.container+" "+params.tag+"").bind("click",function(index){
			if($(this).next("div."+params.containerClass+"").is(":hidden")){
				$(""+params.container+" "+params.tag+"").removeClass(""+params.expanderClass+"_O");
				$(""+params.container+" div."+params.containerClass+"").slideUp(params.slideUpSpeed);
				$(this).addClass(""+params.expanderClass+"_O");
				$(this).next("div."+params.containerClass+"").slideDown(params.slideDownSpeed,function(){
					var thePrev = this;
					if(params.scrollToExpander==true) window.location = "#"+$(thePrev).prev(""+params.tag+"").attr("id");
				});
			}else{
				if(params.collapsible){
					$(""+params.container+" "+params.tag+"").removeClass(""+params.expanderClass+"_O");
					$(""+params.container+" div."+params.containerClass+"").slideUp(params.slideUpSpeed);
				}
			}
		 });
		 if(params.autoExpand){
			var expandIndex = 0;
			if(params.autoExpand=="first"){
				expandIndex = 0;
			}else{
				if(params.autoExpand=="last"){
					expandIndex = $(""+params.container+" "+params.tag+"").length-1;
				}else{
					expandIndex=params.autoExpand;
				}
			}
			$(""+params.container+" "+params.tag+"").eq(expandIndex).addClass(""+params.expanderClass+"_O");
			$(""+params.container+" div."+params.containerClass+"").eq(expandIndex).slideDown();
		}
	}
};

jQuery.fn.adnPerfectCol = function() {
	var params = arguments[0] || {};
		if(!params.count) params.count = 2;
		if(!params.wclass) params.wclass = "adnPerfectColWrapper";
		if(!params.cclass) params.cclass = "adnPerfectColCol";
		if(!params.heading) params.heading = "h3";
	
	 $(this).wrapAll('<div class="'+params.wclass+'" />');
	
	var colWidth = $(this).eq(0).parent("div").width()/params.count;
	colWidth = Math.round(colWidth-0.5);
	for(i=0;i<params.count;i++){
		$(this).eq(0).parent("div").append('<div class="'+params.cclass+'" style="width:'+colWidth+'px;"></div>');
	}
	var colIndex = 0;
	for(i=0;i<$(this).length;i++){
		var cols = $('div."'+params.wclass+' div .'+params.cclass);
		var prevColIndex = ((colIndex-1)<0) ? params.count-1 : colIndex-1;
		
		var oHeight = $(cols).eq(colIndex).height();
		if(i+0){
			var coldHeading = $(this).eq(i).find(params.heading);
			oHeight += $(coldHeading).height();
			oHeight += parseInt($(coldHeading).css("marginTop").replace("px",""));
			oHeight += parseInt($(coldHeading).css("marginBottom").replace("px",""));
			oHeight += parseInt($(coldHeading).css("paddingTop").replace("px",""));
			oHeight += parseInt($(coldHeading).css("paddingBottom").replace("px",""));
			//oHeight += parseInt($(this).eq(i).find("h3").css("padding").replace("px",""));
		}
		
		if(oHeight>$(cols).eq(prevColIndex).height()) colIndex = ((colIndex+1)>=params.count) ? 0 : (colIndex+1);
		$(cols).eq(colIndex).append($(this).eq(i));
	}
};

jQuery.fn.adnFadder = function() {
	var o = $(this);
	var timeName = $(this).selector;
	
	var params = arguments[0] || {};
		if(!params.wclass) params.wclass = "adnFadderWrapper";
		if(!params.sclass) params.sclass = "adnFadderSelected";
		//params.pages
		//params.ppictures
		
		//params.autoFade
		if(!params.fout) params.fout = 400;
		if(!params.fin) params.fin = 800;
		
		//params.navigation
		if(!params.pclass) params.pclass = "adnFadderPrevious";
		if(!params.ptext) params.ptext = "&laquo;";
		if(!params.nclass) params.nclass = "adnFadderNext";
		if(!params.ntext) params.ntext = "&raquo;";
	$(o).hide();
	$(o).wrapAll('<div class="'+params.wclass+'" />');
	
	var links = $(o).find("a:first");
	
	var toAppend = "";
	var toPrepend = "";
	if(params.pages){
		for(i=0;i<links.length;i++){
			toAppend = (i+1);
			if(params.ppictures){
				toAppend = $(o).eq(i).find(""+params.ppictures);
				toAppend = toAppend = '<img src="/adnbase/spacer.gif" style="background-image: url('+$(toAppend).eq(0).attr("src")+');" alt="" />';
				$(o).eq(i).find(""+params.ppictures).remove();
			}
			toAppend = '<a href="'+links[i].href+'">'+toAppend+'</a>';
			if($(""+params.pages).is("ul")) toAppend = '<li>'+toAppend+'</li>';
			$(""+params.pages).append(toAppend);
		}
		var paging = $(""+params.pages+" a");
		$(paging).click(function() {
			var mIndex = $(paging).index(this);
			fadeIt(mIndex,true);
			return false;
		});
	}
	if(params.navigation){
			toPrepend = '<a href="#" class="'+params.pclass+'">'+params.ptext+'</a>';
			toAppend = '<a href="#" class="'+params.nclass+'">'+params.ntext+'</a>';
			if($(""+params.navigation).is("ul")){
				toPrepend = '<li>'+toPrepend+'</li>';
				toAppend = '<li>'+toAppend+'</li>';
			}
			$(""+params.navigation).prepend(toPrepend);
			$(""+params.navigation).append(toAppend);
			
			$(""+params.navigation+" a:first").click(function() {
				var toFind = -1;
				
				for(i=0;i<$(o).length;i++){
					if($(o).eq(i).is(":visible")) toFind = i;
				}
				toFind = (toFind==0) ? $(o).length-1 : toFind-1;
				
				fadeIt(toFind,true);
				return false;
			});
			
			$(""+params.navigation+" a:last").click(function() {
				var toFind = -1;
				
				for(i=0;i<$(o).length;i++){
					if($(o).eq(i).is(":visible")) toFind = i;
				}
				toFind = (toFind>=($(o).length-1)) ? 0 : toFind+1;
				
				fadeIt(toFind,true);
				return false;
			});
	}
	
	function fadeIt(mIndex,fade){
		if($(o).eq(mIndex).is(":hidden")){
			
			if(fade){
				$(o).fadeOut(params.fout);
				$(o).eq(mIndex).fadeIn(params.fin);
			}else{
				$(o).eq(mIndex).show();
			}
			
			if(params.pages && $(paging).length>0){
				$(paging).removeClass(params.sclass);
				$(paging).eq(mIndex).addClass(params.sclass);
			}
		}
		
		mIndex = ((mIndex)>=($(o).length-1)) ? 0 : mIndex+1;
		if(params.autoFade){
			clearInterval(adnInterval[timeName]);
			adnInterval[timeName] = setInterval(function(){
				fadeIt(mIndex,true);
			}, params.autoFade);
		}
	}
	
	fadeIt(0,false);
};

jQuery.fn.adnNiceSelect = function() {
	var o = $(this);
	var params = arguments[0] || {};
		if(!params.toshow) params.toshow = "li"; //Elements qui seront les <option>
		if(!params.zIndex) params.zIndex = 100; //zIndex du selectbox
		if(!params.cancel) params.cancel = false; //cancelle le click sur les liens
		if(!params.aclass) params.aclass = "top"; //classe de la fleche du haut
		if(!params.optcount) params.optcount = 10; //nombre d'options affiches a l'ouverture du selectbox
		if(!params.speed) params.speed = 3; //coefficiant de vitesse, multiplie les milisecondes de scrolling
		if(!params.wclass) params.wclass = "adnNiceSelectWrap"; //classe par defaut des wrapper de UL
		if(!params.scrollType) params.scrollType = "linear"; //classe par defaut des wrapper de UL
		
	if(!params.clickIt) params.clickIt = false; //BETA pas encore pret

	if(params.cancel){
		$(o).find(""+params.toshow+" a").click(function(){
			var parent = $(this).parents("div").eq(1);
			var inp = $(parent).find("input");
				$(inp).val($(this).attr("rel"));
			var sI = $(parent).find("a").index(this);
				$(inp).attr("tabindex",sI);
				hideSelect($(parent),sI);
			return false;
		});
	}
	$(o).each(function(index) {
		$(this).find("ul").wrapAll('<div class="'+params.wclass+'" />');
		
		hideSelect(this,0);
		
		$(this).find("div").append('<img class="'+params.aclass+'" src="/adnbase/spacer.gif" alt="" /><img src="/adnbase/spacer.gif" alt="" />');
		$(this).append('<input tabindex="0" name="'+$(this).find("ul").attr("class")+'" type="hidden" value="'+$(this).find(""+params.toshow+" a:first").attr("rel")+'" />');
		
		$(this).find("img[class!="+params.aclass+"]").mousedown(function(){
			 plusSelect(this,0);
		});
		$(this).find("img."+params.aclass+"").mousedown(function(){
			plusSelect(this,1);
		});
		$(this).find("img").mouseup(function(){
			$(this).parents("div").eq(0).find("ul").stop();
		});
		
		if(!params.clickIt){
			$(this).mouseenter(function(){
				showSelect(this,$(this).find("input").attr("tabindex"));
			});
		}else{
			$(this).click(function(){
				if($(this).find("div:first").css("position")!="absolute"){
					showSelect(this,$(this).find("input").attr("tabindex"));
				}
			});
		}
		$(this).mouseleave(function(){
			hideSelect(this,$(this).find("input").attr("tabindex"));
		});
	});
	
	function showSelect(sender,sIndex){
		sIndex = parseInt(sIndex);
		hideSelect(sender,sIndex);

		$(sender).find(""+params.toshow+"").show();
		$(sender).css("zIndex",params.zIndex+1);
		
		$(sender).find("div, ul").css("position","absolute");
		if($(sender).find(""+params.toshow+"").length>params.optcount){
			$(sender).find("div").height($(sender).find(""+params.toshow+":first").height()*params.optcount);
		}else{
			$(sender).find("div").height($(sender).find("ul").height());
		}
	}
	function hideSelect(sender,sIndex){
		$(sender).find("div, ul").css("position","relative");
		$(sender).find("div").height("auto");
		$(sender).find("ul").css("top","0px");
		
		sIndex = parseInt(sIndex);
		var sHandler = $(sender).find(""+params.toshow+"");
		sHandler.hide();
		sHandler.eq(sIndex).show();
		$(sender).css("zIndex",(params.zIndex));
	}

	function plusSelect(sender,sens){
		var ul = $(sender).parents("div").eq(0).find("ul");
		var offs = $(ul).css("top");
			offs = parseInt(offs.replace("px",""));
		
		var scrollH = $(sender).parents("div").eq(0).find("ul").height()-$(sender).parents("div").eq(0).height();
			scrollH += (!sens) ? offs : 0;
			if(sens) scrollH = (-offs);

		var scrollS = scrollH*params.speed;
		if(!sens) scrollH = (-scrollH);
			
		$(sender).parents("div").eq(0).find("ul").animate({ 
			top: "+="+scrollH+"px"
		}, {
			duration: scrollS,
			easing: params.scrollType
		});
	}	
};

/*jQuery.fn.adnImgRadioCheck = function() {
	if(!($.browser.msie && $.browser.version.substr(0,1)<8)){
		var o = $(this);
		var params = arguments[0] || {};
			if(!params.imgpath) params.imgpath = "/adnbase/spacer.gif";
			if(!params.cclass) params.cclass = "adnImgRadioCheck";
		
		var inps = $(o);
		for(i=0;i<inps.length;i++){
			$(inps[i]).css("position","absolute");
			$(inps[i]).css("left","-999em");
			$(inps[i]).after("<img src='/adnbase/spacer.gif' />");
			var imgCheck = $(inps[i]).next("img").eq(0);
		
			$(imgCheck).addClass(params.cclass+"_"+$(inps[i]).attr("type"));
			if(inps[i].checked) $(imgCheck).addClass("checked");
			$(imgCheck).attr("rel",params.cclass+"_"+$(inps[i]).attr("name"));
			$(inps[i]).change(function(){checkIt(this)});
		}
	}
	
	function checkIt(sender){
		if($(sender).is(":checked")){
			$("img[rel="+params.cclass+"_"+$(sender).attr("name")+"]").removeClass("checked");
			$(sender).next("img").addClass("checked");
		}else{
			$(sender).next("img").removeClass("checked");
		}
	}
};*/

jQuery.fn.adnScrollNews = function() {
	var o = $(this);
	var timeName = $(this).selector;
	
	var params = arguments[0] || {};
		if(!params.nfoHolder) params.nfoHolder = "#adnScrollNewsHolder";
		if(!params.newsList) params.newsList = "li";
		if(!params.sclass) params.sclass = "adnScrollNewsSelected";
		//params.addLink
		
		if(!params.fspeed) params.fspeed = 5000;
		//params.fade = false;
		if(!params.fout) params.fout = 400;
		if(!params.fin) params.fin = 800;
	
	var maxHeight = 0;
	$(o).find(params.newsList).each(function(index){
		$(this).mouseenter(function(){
			fadeIt(index,true);
		});
		$(o).find(params.nfoHolder).html($(this).html());
		var curHeight = $(o).find(params.nfoHolder).children(":first").height();
		maxHeight = ( maxHeight < curHeight ) ? curHeight : maxHeight;
	});
	
	function fadeIt(mIndex,fade){
		$(o).find(params.nfoHolder).children(":first").css("height",maxHeight+"px");
		$(o).find(params.nfoHolder).css("height",$(o).find(params.nfoHolder).children(":first").outerHeight()+"px");
		
		$(o).find(params.newsList).removeClass(params.sclass);
		$(o).find(params.newsList).eq(mIndex).addClass(params.sclass);
		
		var oldDetail = $(o).find(params.nfoHolder).children(":first");
		var newDetail = $(oldDetail).clone();
			
		$(oldDetail).after(newDetail);
		
		$(newDetail).hide();
		
		$(newDetail).html($(o).find(params.newsList).eq(mIndex).children(":first").html());
		if(params.addLink){
			var href = $(o).find(params.newsList).eq(mIndex).attr("href");
			$(newDetail).find(params.addLink).wrap('<'+'a href="'+href+'" /'+'>');
		}
		
		if($(newDetail).is(":hidden")){
			if(params.fade && fade){
				$(oldDetail).animate({opacity: 1}, 0, function() {
					$(oldDetail).fadeOut(params.fout);
				});
				$(newDetail).animate({opacity: 1}, 0, function() {
					$(newDetail).fadeIn(params.fin);
				});
			}else{
				$(oldDetail).hide();
				$(newDetail).show();
			}
			$(oldDetail).remove();
		}

		mIndex = ((mIndex)>=($(o).find(params.newsList).length-1)) ? 0 : mIndex+1;
		
		clearInterval(adnInterval[timeName]);
		adnInterval[timeName] = setInterval(function(){
			fadeIt(mIndex,true);
		}, params.fspeed);
	}
	
	fadeIt(0,false);
};

(function($){var i=function(e){if(!e)var e=window.event;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation()};$.fn.checkbox=function(f){try{document.execCommand('BackgroundImageCache',false,true)}catch(e){}var g={cls:'jquery-checkbox',empty:'/adnbase/spacer.gif'};g=$.extend(g,f||{});var h=function(a){var b=a.checked;var c=a.disabled;var d=$(a);if(a.stateInterval)clearInterval(a.stateInterval);a.stateInterval=setInterval(function(){if(a.disabled!=c)d.trigger((c=!!a.disabled)?'disable':'enable');if(a.checked!=b)d.trigger((b=!!a.checked)?'check':'uncheck')},10);return d};return this.each(function(){var a=this;var b=h(a);if(a.wrapper)a.wrapper.remove();a.wrapper=$('<span class="'+g.cls+'"><span class="mark"><img src="'+g.empty+'" /></span></span>');a.wrapperInner=a.wrapper.children('span:eq(0)');a.wrapper.hover(function(e){a.wrapperInner.addClass(g.cls+'-hover');i(e)},function(e){a.wrapperInner.removeClass(g.cls+'-hover');i(e)});b.css({position:'absolute',zIndex:-1,visibility:'hidden'}).after(a.wrapper);var c=false;if(b.attr('id')){c=$('label[for='+b.attr('id')+']');if(!c.length)c=false}if(!c){c=b.closest?b.closest('label'):b.parents('label:eq(0)');if(!c.length)c=false}if(c){c.hover(function(e){a.wrapper.trigger('mouseover',[e])},function(e){a.wrapper.trigger('mouseout',[e])});c.click(function(e){b.trigger('click',[e]);i(e);return false})}a.wrapper.click(function(e){b.trigger('click',[e]);i(e);return false});b.click(function(e){i(e)});b.bind('disable',function(){a.wrapperInner.addClass(g.cls+'-disabled')}).bind('enable',function(){a.wrapperInner.removeClass(g.cls+'-disabled')});b.bind('check',function(){a.wrapper.addClass(g.cls+'-checked')}).bind('uncheck',function(){a.wrapper.removeClass(g.cls+'-checked')});$('img',a.wrapper).bind('dragstart',function(){return false}).bind('mousedown',function(){return false});if(window.getSelection)a.wrapper.css('MozUserSelect','none');if(a.checked)a.wrapper.addClass(g.cls+'-checked');if(a.disabled)a.wrapperInner.addClass(g.cls+'-disabled')})}})(jQuery);/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 * 
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 *
 * Version: 1.3.1 (05/03/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

(function($) {

	var tmp, loading, overlay, wrap, outer, inner, close, nav_left, nav_right,

		selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],

		ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,

		loadingTimer, loadingFrame = 1,

		start_pos, final_pos, busy = false, shadow = 20, fx = $.extend($('<div/>')[0], { prop: 0 }), titleh = 0, 

		isIE6 = !$.support.opacity && !window.XMLHttpRequest,

		/*
		 * Private methods 
		 */

		fancybox_abort = function() {
			loading.hide();

			imgPreloader.onerror = imgPreloader.onload = null;

			if (ajaxLoader) {
				ajaxLoader.abort();
			}

			tmp.empty();
		},

		fancybox_error = function() {
			$.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>', {
				'scrolling'		: 'no',
				'padding'		: 20,
				'transitionIn'	: 'none',
				'transitionOut'	: 'none'
			});
		},

		fancybox_get_viewport = function() {
			return [ $(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ];
		},

		fancybox_get_zoom_to = function () {
			var view	= fancybox_get_viewport(),
				to		= {},

				margin = currentOpts.margin,
				resize = currentOpts.autoScale,

				horizontal_space	= (shadow + margin) * 2,
				vertical_space		= (shadow + margin) * 2,
				double_padding		= (currentOpts.padding * 2),
				
				ratio;

			if (currentOpts.width.toString().indexOf('%') > -1) {
				to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2) ;
				resize = false;

			} else {
				to.width = currentOpts.width + double_padding;
			}

			if (currentOpts.height.toString().indexOf('%') > -1) {
				to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2);
				resize = false;

			} else {
				to.height = currentOpts.height + double_padding;
			}

			if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) {
				if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
					horizontal_space	+= double_padding;
					vertical_space		+= double_padding;

					ratio = Math.min(Math.min( view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min( view[1] - vertical_space, currentOpts.height) / currentOpts.height);

					to.width	= Math.round(ratio * (to.width	- double_padding)) + double_padding;
					to.height	= Math.round(ratio * (to.height	- double_padding)) + double_padding;

				} else {
					to.width	= Math.min(to.width,	(view[0] - horizontal_space));
					to.height	= Math.min(to.height,	(view[1] - vertical_space));
				}
			}

			to.top	= view[3] + ((view[1] - (to.height	+ (shadow * 2 ))) * 0.5);
			to.left	= view[2] + ((view[0] - (to.width	+ (shadow * 2 ))) * 0.5);

			if (currentOpts.autoScale === false) {
				to.top	= Math.max(view[3] + margin, to.top);
				to.left	= Math.max(view[2] + margin, to.left);
			}

			return to;
		},

		fancybox_format_title = function(title) {
			if (title && title.length) {
				switch (currentOpts.titlePosition) {
					case 'inside':
						return title;
					case 'over':
						return '<span id="fancybox-title-over">' + title + '</span>';
					default:
						return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">' + title + '</span><span id="fancybox-title-right"></span></span>';
				}
			}

			return false;
		},

		fancybox_process_title = function() {
			var title	= currentOpts.title,
				width	= final_pos.width - (currentOpts.padding * 2),
				titlec	= 'fancybox-title-' + currentOpts.titlePosition;
				
			$('#fancybox-title').remove();

			titleh = 0;

			if (currentOpts.titleShow === false) {
				return;
			}

			title = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(title, currentArray, currentIndex, currentOpts) : fancybox_format_title(title);
			
			if (!title || title === '') {
				return;
			}

			$('<div id="fancybox-title" class="' + titlec + '" />').css({
				'width'			: width,
				'paddingLeft'	: currentOpts.padding,
				'paddingRight'	: currentOpts.padding
			}).html(title).appendTo('body');
			
			switch (currentOpts.titlePosition) {
				case 'inside':
					titleh = $("#fancybox-title").outerHeight(true) - currentOpts.padding;
					final_pos.height += titleh;
					final_pos.top -= (titleh/2);
				break;

				case 'over':
					$('#fancybox-title').css('bottom', currentOpts.padding);
				break;

				default:
					var testo =  $("#fancybox-title").outerHeight(true);
					final_pos.top -= (testo/2);
					$('#fancybox-title').css('bottom', testo * -1);
				break;
			}

			$('#fancybox-title').appendTo( outer ).hide();
		},

		fancybox_set_navigation = function() {
			$(document).unbind('keydown.fb').bind('keydown.fb', function(e) {
				if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
					e.preventDefault();
					$.fancybox.close();

				} else if (e.keyCode == 37) {
					e.preventDefault();
					$.fancybox.prev();

				} else if (e.keyCode == 39) {
					e.preventDefault();
					$.fancybox.next();
				}
			});

			if ($.fn.mousewheel) {
				wrap.unbind('mousewheel.fb');

				if (currentArray.length > 1) {
					wrap.bind('mousewheel.fb', function(e, delta) {
						e.preventDefault();

						if (busy || delta === 0) {
							return;
						}

						if (delta > 0) {
							$.fancybox.prev();
						} else {
							$.fancybox.next();
						}
					});
				}
			}

			if (!currentOpts.showNavArrows) { return; }

			if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
				nav_left.show();
				$("#fancybox-title-over .prev").show();
				$("#fancybox-title-over .prev").click(function(e) {
					e.preventDefault();
					$.fancybox.prev();
				});
			}

			if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
				nav_right.show();
				$("#fancybox-title-over .next").show();
				$("#fancybox-title-over .next").click(function(e) {
					e.preventDefault();
					$.fancybox.next();
				});
			}
		},

		fancybox_preload_images = function() {
			var href, 
				objNext;
				
			if ((currentArray.length -1) > currentIndex) {
				href = currentArray[ currentIndex + 1 ].href;

				if (typeof href !== 'undefined' && href.match(imgRegExp)) {
					objNext = new Image();
					objNext.src = href;
				}
			}

			if (currentIndex > 0) {
				href = currentArray[ currentIndex - 1 ].href;

				if (typeof href !== 'undefined' && href.match(imgRegExp)) {
					objNext = new Image();
					objNext.src = href;
				}
			}
		},

		_finish = function () {
			
			inner.css('overflow', (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible')));
			
			if (!$.support.opacity) {
				inner.get(0).style.removeAttribute('filter');
				wrap.get(0).style.removeAttribute('filter');
			}
			
			$('#fancybox-title').show();

			if (currentOpts.hideOnContentClick)	{
				inner.one('click', $.fancybox.close);
			}
			if (currentOpts.hideOnOverlayClick)	{
				overlay.one('click', $.fancybox.close);
			}

			if (currentOpts.showCloseButton) {
				close.show();
			}

			fancybox_set_navigation();

			
			$(window).bind("resize.fb", $.fancybox.center);

			if (currentOpts.centerOnScroll) {
				$(window).bind("scroll.fb", $.fancybox.center);
			} else {
				$(window).unbind("scroll.fb");
			}

			if ($.isFunction(currentOpts.onComplete)) {
				currentOpts.onComplete(currentArray, currentIndex, currentOpts);
			}

			busy = false;

			fancybox_preload_images();
		},

		fancybox_draw = function(pos) {
			var width	= Math.round(start_pos.width	+ (final_pos.width	- start_pos.width)	* pos),
				height	= Math.round(start_pos.height	+ (final_pos.height	- start_pos.height)	* pos),

				top		= Math.round(start_pos.top	+ (final_pos.top	- start_pos.top)	* pos),
				left	= Math.round(start_pos.left	+ (final_pos.left	- start_pos.left)	* pos);

			wrap.css({
				'width'		: width		+ 'px',
				'height'	: height	+ 'px',
				'top'		: top		+ 'px',
				'left'		: left		+ 'px'
			});

			width	= Math.max(width - currentOpts.padding * 2, 0);
			height	= Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0);

			inner.css({
				'width'		: width		+ 'px',
				'height'	: height	+ 'px'
			});

			if (typeof final_pos.opacity !== 'undefined') {
				wrap.css('opacity', (pos < 0.5 ? 0.5 : pos));
			}
		},

		fancybox_get_obj_pos = function(obj) {
			var pos		= obj.offset();

			pos.top		+= parseFloat( obj.css('paddingTop') )	|| 0;
			pos.left	+= parseFloat( obj.css('paddingLeft') )	|| 0;

			pos.top		+= parseFloat( obj.css('border-top-width') )	|| 0;
			pos.left	+= parseFloat( obj.css('border-left-width') )	|| 0;

			pos.width	= obj.width();
			pos.height	= obj.height();
			
			return pos;
		},

		fancybox_get_zoom_from = function() {
			var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
				from = {},
				pos,
				view;
			
			if (orig && orig.length) {
				pos = fancybox_get_obj_pos(orig);

				from = {
					width	: (pos.width	+ (currentOpts.padding * 2)),
					height	: (pos.height	+ (currentOpts.padding * 2)),
					top		: (pos.top		- currentOpts.padding - shadow),
					left	: (pos.left		- currentOpts.padding - shadow)
				};
				
			} else {
				view = fancybox_get_viewport();

				from = {
					width	: 1,
					height	: 1,
					top		: view[3] + view[1] * 0.5,
					left	: view[2] + view[0] * 0.5
				};
			}
			
			return from;
		},

		fancybox_show = function() {
			loading.hide();

			if (wrap.is(":visible") && $.isFunction(currentOpts.onCleanup)) {
				if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {
					$.event.trigger('fancybox-cancel');

					busy = false;
					return;
				}
			}

			currentArray	= selectedArray;
			currentIndex	= selectedIndex;
			currentOpts		= selectedOpts;

			inner.get(0).scrollTop	= 0;
			inner.get(0).scrollLeft	= 0;

			if (currentOpts.overlayShow) {
				if (isIE6) {
					$('select:not(#fancybox-tmp select)').filter(function() {
						return this.style.visibility !== 'hidden';
					}).css({'visibility':'hidden'}).one('fancybox-cleanup', function() {
						this.style.visibility = 'inherit';
					});
				}

				overlay.css({
					'background-color'	: currentOpts.overlayColor,
					'opacity'			: currentOpts.overlayOpacity
				}).unbind().show();
			}

			final_pos = fancybox_get_zoom_to();

			fancybox_process_title();

			if (wrap.is(":visible")) {
				$( close.add( nav_left ).add( nav_right ) ).hide();

				var pos = wrap.position(),
					equal;

				start_pos = {
					top		:	pos.top,
					left	:	pos.left,
					width	:	wrap.width(),
					height	:	wrap.height()
				};

				equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);

				inner.fadeOut(currentOpts.changeFade, function() {
					var finish_resizing = function() {
						inner.html( tmp.contents() ).fadeIn(currentOpts.changeFade, _finish);
					};
					
					$.event.trigger('fancybox-change');

					inner.empty().css('overflow', 'hidden');

					if (equal) {
						inner.css({
							top			: currentOpts.padding,
							left		: currentOpts.padding,
							width		: Math.max(final_pos.width	- (currentOpts.padding * 2), 1),
							height		: Math.max(final_pos.height	- (currentOpts.padding * 2) - titleh, 1)
						});
						
						finish_resizing();

					} else {
						inner.css({
							top			: currentOpts.padding,
							left		: currentOpts.padding,
							width		: Math.max(start_pos.width	- (currentOpts.padding * 2), 1),
							height		: Math.max(start_pos.height	- (currentOpts.padding * 2), 1)
						});
						
						fx.prop = 0;

						$(fx).animate({ prop: 1 }, {
							 duration	: currentOpts.changeSpeed,
							 easing		: currentOpts.easingChange,
							 step		: fancybox_draw,
							 complete	: finish_resizing
						});
					}
				});

				return;
			}

			wrap.css('opacity', 1);

			if (currentOpts.transitionIn == 'elastic') {
				start_pos = fancybox_get_zoom_from();

				inner.css({
						top			: currentOpts.padding,
						left		: currentOpts.padding,
						width		: Math.max(start_pos.width	- (currentOpts.padding * 2), 1),
						height		: Math.max(start_pos.height	- (currentOpts.padding * 2), 1)
					})
					.html( tmp.contents() );

				wrap.css(start_pos).show();

				if (currentOpts.opacity) {
					final_pos.opacity = 0;
				}

				fx.prop = 0;

				$(fx).animate({ prop: 1 }, {
					 duration	: currentOpts.speedIn,
					 easing		: currentOpts.easingIn,
					 step		: fancybox_draw,
					 complete	: _finish
				});

			} else {
				inner.css({
						top			: currentOpts.padding,
						left		: currentOpts.padding,
						width		: Math.max(final_pos.width	- (currentOpts.padding * 2), 1),
						height		: Math.max(final_pos.height	- (currentOpts.padding * 2) - titleh, 1)
					})
					.html( tmp.contents() );

				wrap.css( final_pos ).fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
			}
		},

		fancybox_process_inline = function() {
			tmp.width(	selectedOpts.width );
			tmp.height(	selectedOpts.height );

			if (selectedOpts.width	== 'auto') {
				selectedOpts.width = tmp.width();
			}
			if (selectedOpts.height	== 'auto') {
				selectedOpts.height	= tmp.height();
			}

			fancybox_show();
		},
		
		fancybox_process_image = function() {
			busy = true;

			selectedOpts.width	= imgPreloader.width;
			selectedOpts.height	= imgPreloader.height;

			$("<img />").attr({
				'id'	: 'fancybox-img',
				'src'	: imgPreloader.src,
				'alt'	: selectedOpts.title
			}).appendTo( tmp );

			fancybox_show();
		},

		fancybox_start = function() {
			fancybox_abort();

			var obj	= selectedArray[ selectedIndex ],
				href, 
				type, 
				title,
				str,
				emb,
				selector,
				data;

			selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));
			title = obj.title || $(obj).title || selectedOpts.title || '';
			
			if (obj.nodeName && !selectedOpts.orig) {
				selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
			}

			if (title === '' && selectedOpts.orig) {
				title = selectedOpts.orig.attr('alt');
			}

			if (obj.nodeName && (/^(?:javascript|#)/i).test(obj.href)) {
				href = selectedOpts.href || null;
			} else {
				href = selectedOpts.href || obj.href || null;
			}

			if (selectedOpts.type) {
				type = selectedOpts.type;

				if (!href) {
					href = selectedOpts.content;
				}
				
			} else if (selectedOpts.content) {
				type	= 'html';

			} else if (href) {
				if (href.match(imgRegExp)) {
					type = 'image';

				} else if (href.match(swfRegExp)) {
					type = 'swf';

				} else if ($(obj).hasClass("iframe")) {
					type = 'iframe';

				} else if (href.match(/#/)) {
					obj = href.substr(href.indexOf("#"));

					type = $(obj).length > 0 ? 'inline' : 'ajax';
				} else {
					type = 'ajax';
				}
			} else {
				type = 'inline';
			}
			
			selectedOpts.type	= type;
			selectedOpts.href	= href;
			selectedOpts.title	= title;

			if (selectedOpts.autoDimensions && selectedOpts.type !== 'iframe' && selectedOpts.type !== 'swf') {
				selectedOpts.width		= 'auto';
				selectedOpts.height		= 'auto';
			}

			if (selectedOpts.modal) {
				selectedOpts.overlayShow		= true;
				selectedOpts.hideOnOverlayClick	= false;
				selectedOpts.hideOnContentClick	= false;
				selectedOpts.enableEscapeButton	= false;
				selectedOpts.showCloseButton	= false;
			}

			if ($.isFunction(selectedOpts.onStart)) {
				if (selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts) === false) {
					busy = false;
					return;
				}
			}

			tmp.css('padding', (shadow + selectedOpts.padding + selectedOpts.margin));

			$('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
				$(this).replaceWith(inner.children());
			});

			switch (type) {
				case 'html' :
					tmp.html( selectedOpts.content );
					fancybox_process_inline();
				break;

				case 'inline' :
					$('<div class="fancybox-inline-tmp" />').hide().insertBefore( $(obj) ).bind('fancybox-cleanup', function() {
						$(this).replaceWith(inner.children());
					}).bind('fancybox-cancel', function() {
						$(this).replaceWith(tmp.children());
					});

					$(obj).appendTo(tmp);

					fancybox_process_inline();
				break;

				case 'image':
					busy = false;

					$.fancybox.showActivity();

					imgPreloader = new Image();

					imgPreloader.onerror = function() {
						fancybox_error();
					};

					imgPreloader.onload = function() {
						imgPreloader.onerror = null;
						imgPreloader.onload = null;
						fancybox_process_image();
					};

					imgPreloader.src = href;
		
				break;

				case 'swf':
					str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';
					emb = '';
					
					$.each(selectedOpts.swf, function(name, val) {
						str += '<param name="' + name + '" value="' + val + '"></param>';
						emb += ' ' + name + '="' + val + '"';
					});

					str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';

					tmp.html(str);

					fancybox_process_inline();
				break;

				case 'ajax':
					selector	= href.split('#', 2);
					data		= selectedOpts.ajax.data || {};

					if (selector.length > 1) {
						href = selector[0];

						if (typeof data == "string") {
							data += '&selector=' + selector[1];
						} else {
							data.selector = selector[1];
						}
					}

					busy = false;
					$.fancybox.showActivity();

					ajaxLoader = $.ajax($.extend(selectedOpts.ajax, {
						url		: href,
						data	: data,
						error	: fancybox_error,
						success : function(data, textStatus, XMLHttpRequest) {
							if (ajaxLoader.status == 200) {
								tmp.html( data );
								fancybox_process_inline();
							}
						}
					}));

				break;

				case 'iframe' :
					$('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" scrolling="' + selectedOpts.scrolling + '" src="' + selectedOpts.href + '"></iframe>').appendTo(tmp);
					fancybox_show();
				break;
			}
		},

		fancybox_animate_loading = function() {
			if (!loading.is(':visible')){
				clearInterval(loadingTimer);
				return;
			}

			$('div', loading).css('top', (loadingFrame * -40) + 'px');

			loadingFrame = (loadingFrame + 1) % 12;
		},

		fancybox_init = function() {
			if ($("#fancybox-wrap").length) {
				return;
			}

			$('body').append(
				tmp			= $('<div id="fancybox-tmp"></div>'),
				loading		= $('<div id="fancybox-loading"><div></div></div>'),
				overlay		= $('<div id="fancybox-overlay"></div>'),
				wrap		= $('<div id="fancybox-wrap"></div>')
			);

			if (!$.support.opacity) {
				wrap.addClass('fancybox-ie');
				loading.addClass('fancybox-ie');
			}

			outer = $('<div id="fancybox-outer"></div>')
				.append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>')
				.appendTo( wrap );

			outer.append(
				inner		= $('<div id="fancybox-inner"></div>'),
				close		= $('<a id="fancybox-close"></a>'),

				nav_left	= $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
				nav_right	= $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')
			);

			close.click($.fancybox.close);
			loading.click($.fancybox.cancel);

			nav_left.click(function(e) {
				e.preventDefault();
				$.fancybox.prev();
			});

			nav_right.click(function(e) {
				e.preventDefault();
				$.fancybox.next();
			});
			
			if (isIE6) {
				overlay.get(0).style.setExpression('height',	"document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");
				loading.get(0).style.setExpression('top',		"(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");

				outer.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>');
			}
		};

	/*
	 * Public methods 
	 */

	$.fn.fancybox = function(options) {
		$(this)
			.data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
			.unbind('click.fb').bind('click.fb', function(e) {
				e.preventDefault();

				if (busy) {
					return;
				}

				busy = true;

				$(this).blur();

				selectedArray	= [];
				selectedIndex	= 0;

				var rel = $(this).attr('rel') || '';

				if (!rel || rel == '' || rel === 'nofollow') {
					selectedArray.push(this);

				} else {
					selectedArray	= $("a[rel=" + rel + "], area[rel=" + rel + "]");
					selectedIndex	= selectedArray.index( this );
				}

				fancybox_start();

				return false;
			});

		return this;
	};

	$.fancybox = function(obj) {
		if (busy) {
			return;
		}

		busy = true;

		var opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};

		selectedArray	= [];
		selectedIndex	= opts.index || 0;

		if ($.isArray(obj)) {
			for (var i = 0, j = obj.length; i < j; i++) {
				if (typeof obj[i] == 'object') {
					$(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
				} else {
					obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
				}
			}

			selectedArray = jQuery.merge(selectedArray, obj);

		} else {
			if (typeof obj == 'object') {
				$(obj).data('fancybox', $.extend({}, opts, obj));
			} else {
				obj = $({}).data('fancybox', $.extend({content : obj}, opts));
			}

			selectedArray.push(obj);
		}

		if (selectedIndex > selectedArray.length || selectedIndex < 0) {
			selectedIndex = 0;
		}

		fancybox_start();
	};

	$.fancybox.showActivity = function() {
		clearInterval(loadingTimer);

		loading.show();
		loadingTimer = setInterval(fancybox_animate_loading, 66);
	};

	$.fancybox.hideActivity = function() {
		loading.hide();
	};

	$.fancybox.next = function() {
		return $.fancybox.pos( currentIndex + 1);
	};
	
	$.fancybox.prev = function() {
		return $.fancybox.pos( currentIndex - 1);
	};

	$.fancybox.pos = function(pos) {
		if (busy) {
			return;
		}

		pos = parseInt(pos, 10);

		if (pos > -1 && currentArray.length > pos) {
			selectedIndex = pos;
			fancybox_start();
		}

		if (currentOpts.cyclic && currentArray.length > 1 && pos < 0) {
			selectedIndex = currentArray.length - 1;
			fancybox_start();
		}

		if (currentOpts.cyclic && currentArray.length > 1 && pos >= currentArray.length) {
			selectedIndex = 0;
			fancybox_start();
		}

		return;
	};

	$.fancybox.cancel = function() {
		if (busy) {
			return;
		}

		busy = true;

		$.event.trigger('fancybox-cancel');

		fancybox_abort();

		if (selectedOpts && $.isFunction(selectedOpts.onCancel)) {
			selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);
		}

		busy = false;
	};

	// Note: within an iframe use - parent.$.fancybox.close();
	$.fancybox.close = function() {
		if (busy || wrap.is(':hidden')) {
			return;
		}

		busy = true;

		if (currentOpts && $.isFunction(currentOpts.onCleanup)) {
			if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {
				busy = false;
				return;
			}
		}

		fancybox_abort();

		$(close.add( nav_left ).add( nav_right )).hide();

		$('#fancybox-title').remove();

		wrap.add(inner).add(overlay).unbind();

		$(window).unbind("resize.fb scroll.fb");
		$(document).unbind('keydown.fb');

		function _cleanup() {
			overlay.fadeOut('fast');

			wrap.hide();

			$.event.trigger('fancybox-cleanup');

			inner.empty();

			if ($.isFunction(currentOpts.onClosed)) {
				currentOpts.onClosed(currentArray, currentIndex, currentOpts);
			}

			currentArray	= selectedOpts	= [];
			currentIndex	= selectedIndex	= 0;
			currentOpts		= selectedOpts	= {};

			busy = false;
		}

		inner.css('overflow', 'hidden');

		if (currentOpts.transitionOut == 'elastic') {
			start_pos = fancybox_get_zoom_from();

			var pos = wrap.position();

			final_pos = {
				top		:	pos.top,
				left	:	pos.left,
				width	:	wrap.width(),
				height	:	wrap.height()
			};

			if (currentOpts.opacity) {
				final_pos.opacity = 1;
			}

			fx.prop = 1;

			$(fx).animate({ prop: 0 }, {
				 duration	: currentOpts.speedOut,
				 easing		: currentOpts.easingOut,
				 step		: fancybox_draw,
				 complete	: _cleanup
			});

		} else {
			wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
		}
	};

	$.fancybox.resize = function() {
		var c, h;
		
		if (busy || wrap.is(':hidden')) {
			return;
		}

		busy = true;

		c = inner.wrapInner("<div style='overflow:auto'></div>").children();
		h = c.height();

		wrap.css({height:	h + (currentOpts.padding * 2) + titleh});
		inner.css({height:	h});

		c.replaceWith(c.children());
		
		$.fancybox.center();
	};

	$.fancybox.center = function() {
		busy = true;

		var view	= fancybox_get_viewport(),
			margin	= currentOpts.margin,
			to		= {};

		//to.top	= view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2 ))) * 0.5);
		to.top	= view[3] + ((view[1] - ((wrap.height()) + (shadow * 2 ))) * 0.5);
		to.left	= view[2] + ((view[0] - (wrap.width() + (shadow * 2 ))) * 0.5);

		to.top	= Math.max(view[3] + margin, to.top);
		to.left	= Math.max(view[2] + margin, to.left);

		wrap.css(to);
		busy = false;
	};

	$.fn.fancybox.defaults = {
		padding				:	10,
		margin				:	20,
		opacity				:	false,
		modal				:	false,
		cyclic				:	false,
		scrolling			:	'auto',	// 'auto', 'yes' or 'no'

		width				:	560,
		height				:	340,

		autoScale			:	true,
		autoDimensions		:	true,
		centerOnScroll		:	true,

		ajax				:	{},
		swf					:	{ wmode: 'transparent' },

		hideOnOverlayClick	:	true,
		hideOnContentClick	:	false,

		overlayShow			:	true,
		overlayOpacity		:	0.6,
		overlayColor		:	'#666',

		titleShow			:	true,
		titlePosition		:	'over',	// 'outside', 'inside' or 'over'
		titleFormat			:	function(title, currentArray, currentIndex, currentOpts) {
		    if(title!=""){
				var navigatorAligator = "";
				if(currentArray.length>1) navigatorAligator = '<div><a class="next" href="javascript:;"></a><span>Image ' +  (currentIndex + 1) + ' / ' + currentArray.length + '</span><a class="prev" href="javascript:;"></a></div>';
				return '<div id="fancybox-title-over">' + title + navigatorAligator + '</div>';
			}
		},


		transitionIn		:	'fade',	// 'elastic', 'fade' or 'none'
		transitionOut		:	'fade',	// 'elastic', 'fade' or 'none'

		speedIn				:	300,
		speedOut			:	300,

		changeSpeed			:	300,
		changeFade			:	'fast',

		easingIn			:	'swing',
		easingOut			:	'swing',

		showCloseButton		:	true,
		showNavArrows		:	true,
		enableEscapeButton	:	true,

		onStart				:	null,
		onCancel			:	null,
		onComplete			:	null,
		onCleanup			:	null,
		onClosed			:	null
	};

	$(document).ready(function() {
		fancybox_init();
	});

})(jQuery);
document.write('<link rel="stylesheet" type="text/css" href="/adnbase/images/fancybox-1.3.1/jquery.fancybox-1.3.1.css" media="screen" />');
$(function(){$("a[rel^=fancy]").fancybox();});