window.targetUrlDomain = 'jdle';

/* fonction qui remplace la value en valeur vide du champ input text */
function changeCouleurRecherche(champ) {
	if (champ.value == 'Saisissez votre recherche')
		champ.value = '';
}

function changeTextHeaderNewsLetter(champ) {
	if (champ.value == 'Votre e-mail')
		champ.value = '';
}

var recHead = true;
function inputRecherche(recherche) {
	if (recHead == true && recherche.value == 'Saisissez votre recherche') {
		recHead = false;
		recherche.value = '';
		recherche.className = 'inputTextHead';
	}
}

/* fonction de popup des outil des articles */
function montre(id) {
var d = document.getElementById(id);
     for (var i = 1; i<=80; i++) {
          if (document.getElementById('popdiv'+i)) {document.getElementById('popdiv'+i).style.display='none';}
     }
	if (d) {d.style.display='block';}
}

function onlyNumericKeyPress(input) {
	console.debug(input);
	if (input) {
		console.debug(new String(input.value).replace(/[^0-9]+/, ''));
		input.value = new String(input.value).replace(/[^0-9]+/, '');
	}
	return true;
}

function outilReseau(id){
	if (document.getElementById(id).className == "visible"){
		document.getElementById(id).className = "invisible";
	}
	else {
		document.getElementById(id).className = "visible";	
	}
}

function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) 
   {
      for(var i=0; i<document.images.length; i++)
      {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
         {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }    
}

function closeTimer(){   //Timer de 5 secondes (5000 milisecondes)
   timeoutID = setTimeout("document.getElementById('envoieArticleReaction').className='invisible'",5000);
}

function closeTimer2(){   //Timer de 5 secondes (5000 milisecondes)
   timeoutID = setTimeout("document.getElementById('envoieArticleReaction2').className='invisible'",5000);
}

// Vérification du mot de passe
function testMotCle(champ){
	if (champ.value.length == 0){
		 return false;
	}
	else{ 
		if (champ.value == 'Saisissez votre recherche'){
			return false;
		}
		else{ 
			return true;
		}
	}
}

function urlencode(str) {

	var reg1 = / & /g;
	var reg2 = / /g;
	
    return (str.replace(reg1, '+').replace(reg2, '+'));
}

// Vérification du mot de passe
function testRecherche(form, root) {
	var recherche = form.q.value;
	if (form.numero) {
		var numero = form.numero.value;
	} else {
		numero = "";
	}
	if (form.date) {
		var date = '&date=' + form.date.value;
	} else {
		date = "";
	}
	if ((recherche.length == 0 || recherche == 'Saisissez votre recherche') && numero.length == 0 && date.length == 0){
		 return false;
	}
	else {
		if (recherche == 'Saisissez votre recherche') {
			recherche = '';
		}
		if (numero.length != 0) {
			if (numero != parseInt(numero)) {
				alert("Veuillez entrer un num\351ro valide");
				return false;
			} else  {
				numero = '&numero=' + numero;
			}
		}
		document.location.href = root + 'recherche=' + urlencode(recherche) + numero + date;
		return false;
	}
}

function in_array(needle, haystack, argStrict) {
    var key = '', strict = !!argStrict;

    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }

    return false;
}

function php_trim (str) {
	return String(str).replace(/((^\s*)|(\s*$))/, '');
}


function afficheconnexion(){
	var statusconnexion = document.getElementById('boite-connexion-contenu').style.display;
	
	if (statusconnexion == 'block') {
		document.getElementById('boite-connexion-contenu').style.display='none';
	}
	else {
		document.getElementById('boite-connexion-contenu').style.display='block';
		}
}

function soumettre(id,cible){
	document.getElementById(id).target = "_blank";
	window.open(cible, '_blank');
}

/**
 * jQuery emptyonclick plugin
 * Created by Andreas Creten (andreas@madewithlove.be) on 2008-06-06.
 * Copyright (c) 2008 madewithlove. All rights reserved.
 * Version: 1.2
 */
jQuery.fn.extend({
   emptyonclick: function(options) {
       return this.each(function() {
           new jQuery.EmptyOnClick(this, options);
       });
   }
});

jQuery.EmptyOnClick = function(element, options) {
   var defaultValue = options.defaultValue,
   	   defaultClass = options.defaultClass || 'defaultValue';
   // Bind event handlers to the element
   jQuery(element)
   // On Focus: Store the default value if it's not set, empty the field
   .bind("focus", function(e) {
       if(defaultValue == jQuery(this).val())
    	   jQuery(this).val('').removeClass(defaultClass);
    })
   // On Blur: if the field is empty, reset the default value
   .bind("blur", function(e) {
       if(!jQuery(this).val()) {
    	   jQuery(this).val(defaultValue).addClass(defaultClass);
       }
   }).each(function(e) {
       if(!jQuery(this).val()) {
    	   jQuery(this).val(defaultValue).addClass(defaultClass);
       }
   });
    // Search for the form which has the element
   jQuery("form:has(#"+element.id+")")
   // If the form gets resetted, set the default value back
   .bind('reset', function(e) {
	   jQuery(element).val(defaultValue).addClass(defaultClass);
       jQuery(element).removeClass(options.changeClass);
   }) 
   // If the form gets submitted empty, remove the default values
   .bind('submit', function(e) {
       if(jQuery(element).val() == defaultValue)
    	   jQuery(element).val('').addClass(defaultClass);
   });
};

jQuery(document).ready(function() {
	
	jQuery(window).error(function(event){
		if (console && console['debug'])
			console.debug(event);
		return true;
	});
	
	window.store = {};
	window.App   = window['App'] || {};
	
	// Configurations
	jQuery.datepicker.regional['fr'] = {closeText:"Ok",prevText:"Prec",nextText:"Suiv",currentText:"Aujourd'hui",monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"],monthNamesShort:["Jan","Fev","Mar","Avr","Mai","Jun","Jul","Aout","Sep","Oct","Nov","Dec"],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayNamesMin:["Di","Lu","Ma","Me","Je","Ve","Sa"],dateFormat:"dd/mm/yy",firstDay:1,isRTL:false};
	jQuery.datepicker.regional['en'] = {closeText:"Ok",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};
	
	jQuery.datepicker.setDefaults(jQuery.extend({
		showMonthAfterYear: false,
		buttonImage: '/images/datepicker.gif',
		showOn: 'button'
	}, jQuery.datepicker.regional[window.App.lang]));

	jQuery.behaviors.apply();
	
});


jQuery.behaviors = (function() {
	var behaviors = [];
	return {
		register: function(behavior) { if (typeof behavior == 'function') behaviors.push(behavior); },
		apply:    function(node) {
			if (!node) node = document.body;
			for (var i = 0, iMax = behaviors.length; i < iMax; i++) behaviors[i](node);
		}
	}
})();



function createXMLHttpRequest(){
	var xmlhttp;
	
	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
		// evite un Bug du navigateur Safari :
		if (xmlhttp.overrideMimeType) xmlhttp.overrideMimeType("text/xml");
	}
	else if (window.ActiveXObject){
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){   
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){return false;}
		}
	}
	
	return xmlhttp;  
}

/**
 * Envoi le formulaire parent de l'element de maniére synchrone
 */
function ajaxForm(elem, onSuccess) {
	
	var form = elem;
	while (form.nodeName != 'FORM' && form.nodeName != 'BODY')
		form = form.parentNode;
	if (form.nodeName != 'FORM') return true;
	
	var HttpRequest = createXMLHttpRequest();
	if (HttpRequest) {
		
		var submitUrl = form.action;
		if (submitUrl == '') submitUrl = '?';
		
		HttpRequest.open("POST", submitUrl, false);
		
		// R�cup�ration des champs
		var formData = '';
		
		var INPUTS   = form.getElementsByTagName('INPUT');
		
		for (var i = 0, iMax = INPUTS.length; i < iMax; i++) {
			if (formData.length) formData += '&';
			var input = INPUTS[i];
			switch (input.type) {
				default:
				case 'text':
					formData += escape(input.name)+'='+escape(input.value);
				break;
				case 'checkbox':
					if (input.checked)
						formData += escape(input.name)+'='+escape(input.value);
				break;
			}
		}	
		
		var TEXTAREAS = form.getElementsByTagName('TEXTAREA');
		for (var i = 0, iMax = TEXTAREAS.length; i < iMax; i++) {
			if (formData.length) formData += '&';
			var input = TEXTAREAS[i];
			formData += escape(input.name)+'='+escape(input.value);
		}
		
		HttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		HttpRequest.setRequestHeader("Content-length", formData.length);
		HttpRequest.setRequestHeader("Connection", "close");
		HttpRequest.send(formData);
		
		var ret = HttpRequest.responseText;
		if (onSuccess.constructor == Function)
			onSuccess(HttpRequest);
	}
	
	return true;
}

function ajaxPopupEmailForm(elem, containerId) {
	
	var form = elem;
	while (form.nodeName != 'FORM' && form.nodeName != 'BODY')
		form = form.parentNode;
	if (form.nodeName != 'FORM') return true;
	
	ajaxForm(elem, function(HttpRequest) {
		
		var responseText = HttpRequest.responseText;
		var successDiv = document.getElementById(form.id+'_success');
		var erreurDiv = document.getElementById(form.id+'_erreur');
		if (erreurDiv)	{
			erreurDiv.innerHTML = '';
			erreurDiv.style.display = 'none';
		}
	
		if (responseText == '0') responseText = 'Echec de l\'envoi, merci de r&eacute;essayer plus tard.';
		if (responseText == '1') 
		{
		
			/* On recherche la zone de saisie email de l'ami pour le vider*/
			var inputs = form.getElementsByTagName('INPUT');
			for (var i = 0, iMax = inputs.length; i < iMax; i++) {
				if (inputs[i].name == "mail_destinataire") {
					inputs[i].value = '';
					break;
				}
			}
			
			if (successDiv) 
			{
				successDiv.style.display = '';
				form.style.display = 'none';
				var container = document.getElementById(containerId);
				console.debug(container);
				if (container) {
					window.setTimeout("document.getElementById('"+containerId+"').style.display = 'none';", 2000);
				}
			}
			else alert('Envoi réussi');
			
		} 
		else 
		{		
			if (responseText.search('<html') != -1)
				responseText = 'Une erreur est survenue';
		
			if (erreurDiv) erreurDiv.innerHTML = responseText;
			else alert(responseText);
		}
	});
	
	return false;
}

function validatComment(nbMin){
	document.getElementById('errors').innerHTML = '';
	ret = true;
	if(trim(document.getElementById('pseudo').value).length == 0){
		document.getElementById('errors').innerHTML = "<div class=\"errorFormReagir\">Merci de fournir un pseudo. </div>";
		ret = false;
	}
		
	if(trim(document.getElementById('email').value).length == 0){
		document.getElementById('errors').innerHTML += "<div class=\"errorFormReagir\">Merci de spécifier une adresse email valide. </div>";
		ret = false;
	}
	
	if(trim(document.getElementById('commentaire').value).length < nbMin){
		document.getElementById('errors').innerHTML += "<div class=\"errorFormReagir\">Votre commentaire doit contenir au moins "+nbMin+" caractères.("+trim(document.getElementById('commentaire').value).length+") </div>";
		ret = false;
	}
	return ret;
}

function trim(val) {
	var retour = ""
	for(i=0;i < val.length;i++)
		if(val.charAt(i) != " ") {
			retour += val.charAt(i)
		}
	return retour
}

/**
 * Espace de nom pour stocker les différents méthodes pour ne pas poluer window
 */
Utile = {
		
	/**
	 * Renvoi un UID aléatoire et unique
	 * @return string
	 */
	randomUID: function() {
		 return (Math.random()*Math.pow(10, 16)).toString()+'_'+(new Date().valueOf());
	},
	
	/**
	 * Décode et renvoi un objet contenant les paramètres JS stockées dans la balise params d'un noeud
	 * @param Element element Le noeud Element d'où extraire les paramètres
	 * @param Object toExtend Un eventuel objet a étendre
	 * @return Object
	 */
	getParams: function(element, toExtend) {
		var paramString  = element.getAttribute('params');
		var returnObject = toExtend || {};
		if (paramString == null) return returnObject;
		
		try { eval('var params = {'+paramString+'}'); }
		catch (e) { var params = {}; }

		return jQuery.extend(returnObject, params);
	},
	
	/**
	 * Converti une date jj/mm/aaaa vers sont format ISO.
	 */
	frDateToISODate: function(string, asDate) {
		var ISODateText = string.slice(3, 5)+'/'+string.slice(0, 2)+'/'+string.slice(6);
		return asDate ? new Date(Date.parse(ISODateText)) : ISODateText;
	},
	
	/**
	 * Fonction date comme ne php. 
	 * @param format
	 * @param timestamp
	 * @return string
	 * From PHPJS
	 */
	date: function(format, timestamp) {
	    var that = this;
	    var jsdate=((typeof(timestamp) == 'undefined') ? new Date() : (typeof(timestamp) == 'number') ? new Date(timestamp*1000) : new Date(timestamp));
	    var pad = function (n, c){if ( (n = n + "").length < c )return new Array(++c - n.length).join("0") + n;else return n;};
	    var _dst = function (t) {var dst=0;var jan1 = new Date(t.getFullYear(), 0, 1, 0, 0, 0, 0);var june1 = new Date(t.getFullYear(), 6, 1, 0, 0, 0, 0);var temp = jan1.toUTCString();var jan2 = new Date(temp.slice(0, temp.lastIndexOf(' ')-1));temp = june1.toUTCString();var june2 = new Date(temp.slice(0, temp.lastIndexOf(' ')-1));var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);if (std_time_offset === daylight_time_offset) dst = 0;else {var hemisphere = std_time_offset - daylight_time_offset;if (hemisphere >= 0) std_time_offset = daylight_time_offset;dst = 1;};return dst;};
	    var ret = '';
	    var txt_weekdays = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
	    var txt_ordin = {1:"er",2:"me",3:"me",21:"",22:"",23:"",31:""};
	    var txt_months =  ["", "Janvier", "Fevrier", "Mars", "Avril","Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre","Decembre"];
	    var f = {d: function (){return pad(f.j(), 2);},D: function (){var t = f.l();return t.substr(0,3);},j: function (){return jsdate.getDate();},l: function (){return txt_weekdays[f.w()];},N: function (){return f.w() + 1;},S: function (){return txt_ordin[f.j()] ? txt_ordin[f.j()] : 'th';},w: function (){return jsdate.getDay();},z: function (){return (jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5 >> 0;},W: function (){var a = f.z(), b = 364 + f.L() - a;var nd2, nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1;if (b <= 2 && ((jsdate.getDay() || 7) - 1) <= 2 - b){return 1;}if (a <= 2 && nd >= 4 && a >= (6 - nd)){nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31");return that.date("W", Math.round(nd2.getTime()/1000));};return (1 + (nd <= 3 ? ((a + nd) / 7) : (a - (7 - nd)) / 7) >> 0);},F: function (){return txt_months[f.n()];},m: function (){return pad(f.n(), 2);},M: function (){var t = f.F();return t.substr(0,3);},n: function (){return jsdate.getMonth() + 1;},t: function (){var n;if ( (n = jsdate.getMonth() + 1) == 2 ){return 28 + f.L();};if ( n & 1 && n < 8 || !(n & 1) && n > 7 ){return 31;};return 30;},L: function (){var y = f.Y();return (!(y & 3) && (y % 1e2 || !(y % 4e2))) ? 1 : 0;},o: function (){if (f.n() === 12 && f.W() === 1) {return jsdate.getFullYear()+1;}if (f.n() === 1 && f.W() >= 52) {return jsdate.getFullYear()-1;};return jsdate.getFullYear();},Y: function (){return jsdate.getFullYear();},y: function (){return (jsdate.getFullYear() + "").slice(2);},a: function (){return jsdate.getHours() > 11 ? "pm" : "am";},A: function (){return f.a().toUpperCase();},B: function (){var off=(jsdate.getTimezoneOffset()+60)*60;var theSeconds=(jsdate.getHours()*3600)+(jsdate.getMinutes()*60)+jsdate.getSeconds()+off;var beat=Math.floor(theSeconds/86.4);if(beat>1000){beat-=1000;};if(beat<0){beat+=1000;};if((String(beat)).length==1){beat="00"+beat;};if((String(beat)).length==2){beat="0"+beat;};return beat;},g: function (){return jsdate.getHours() % 12 || 12;},G: function (){return jsdate.getHours();},h: function (){return pad(f.g(), 2);},H: function (){return pad(jsdate.getHours(), 2);},i: function (){return pad(jsdate.getMinutes(), 2);},s: function (){return pad(jsdate.getSeconds(), 2);},u: function (){return pad(jsdate.getMilliseconds()*1000, 6);},e: function () {return 'UTC';},I: function (){return _dst(jsdate);},O: function (){var t = pad(Math.abs(jsdate.getTimezoneOffset()/60*100), 4);t = (jsdate.getTimezoneOffset() > 0) ? "-"+t : "+"+t;return t;},P: function (){var O = f.O();return (O.substr(0, 3) + ":" + O.substr(3, 2));},T: function () {return 'UTC';},Z: function (){return -jsdate.getTimezoneOffset()*60;},c: function (){return f.Y() + "-" + f.m() + "-" + f.d() + "T" + f.h() + ":" + f.i() + ":" + f.s() + f.P();},r: function (){return f.D()+', '+f.d()+' '+f.M()+' '+f.Y()+' '+f.H()+':'+f.i()+':'+f.s()+' '+f.O();},U: function (){return Math.round(jsdate.getTime()/1000);}};
	    return format.replace(/[\\]?([a-zA-Z])/g, function (t, s){
	        if ( t!=s ){ret = s;} else if (f[s]){ret = f[s]();} else {ret = s;}
	        return ret;
	    });
	},
	
	/**
	 * Gère le redimensionnement automatique des dialogues
	 */
	dialogResize: function(body) {
		
		var jBody 		= jQuery(body),
			jBodyChilds = jBody.children(),
			options     = body.options;
		
		
		if (options.autoWidth || options.autoHeight) {
			
			var width  = body.preCalculedWidth  || -1,
				height = body.preCalculedHeight || -1,
				windowInnerWidth  = window.innerWidth  || document.documentElement.clientWidth,
				windowInnerHeight = window.innerHeight || document.documentElement.clientHeight,
				windowScrollTop   = jQuery(window).scrollTop(),
				windowScrollLeft  = jQuery(window).scrollLeft();
			
			if (width == -1 | height == -1) {
				jBodyChilds.each(function() {
					var jThis = jQuery(this);
					var position = jThis.position();
					width  = Math.max(width,  jThis.width()  + position.left);
					height = Math.max(height, jThis.height() + position.top);
				});
				body.preCalculedWidth  = width;
				body.preCalculedHeight = height;
			}
			
			if (options['maxWidth'])
				width  = Math.min(width, options.maxWidth);
			if (options['maxHeight'])
				height = Math.min(height, options.maxHeight);
			
			if (options['minWidth'])
				width  = Math.max(width, options.minWidth);
			if (options['minHeight'])
				height = Math.max(height, options.minHeight);
			
			// Pas plus grand que la fenêtre elle même , moins 20 pixels autours (20 à gauche et 20 à droite => 40)
			width  = Math.min(windowInnerWidth  - 40, width);
			height = Math.min(windowInnerHeight - 40, height);
			
			var left = (windowInnerWidth  - width)  / 2;
			var top  = (windowInnerHeight - height) / 2;
			if (width)  {
				body.parentNode.style.width  = width+'px';
				body.parentNode.style.left   =  (left + windowScrollLeft)+'px';
				if (jBodyChilds.length == 1) {
					jBodyChilds.get(0).style.width  = width+'px';
				}
			}
			
			if (height) {
				body.parentNode.style.height = height+'px';
				body.parentNode.style.top    = (top + windowScrollTop)+'px';
				if (jBodyChilds.length == 1) {
					jBodyChilds.get(0).style.height     = height+'px';
					jBodyChilds.get(0).dialogAutoHeight = true;
				}
			}
		}
	},
	
	// Converti une url en objet
	deserialize: function(url) {
		
		var data = {};
		var chunks = String(url).split('&');
		for (var i = 0; i < chunks.length; i++) {
			var pair = chunks[i].split('=');
			data[pair[0]] = (pair.length == 2) ? pair[1] : null;
		}
		return data;
		
	},

	parseHTTPHeaders: function(string) {
		// Parse HTTP Headers as returned by the server
		var headerLines = string.replace(/\r/g,"").split("\n"),
			headers = {};
		for (var i = 0; i < headerLines.length; i++) {
			var name = String(headerLines[i]).replace(/^([^:]+):.*$/, '$1');
			if (name == '') continue;
			headers[name] = headerLines[i].replace(/^[^:]+: ?(.*)$/, '$1');
		}
		return headers;
	}
		
	
}

jQuery.behaviors = (function() {
	var behaviors = [];
	return {
		register: function(behavior) { if (typeof behavior == 'function') behaviors.push(behavior); },
		apply:    function(node) {
			if (!node) node = document.body;
			for (var i = 0, iMax = behaviors.length; i < iMax; i++) behaviors[i](node);
		}
	}
})();

 
var timer;
 
function TempoOnglet(node){
	
	clearTimeout(timer);
	timer = setTimeout("nextOnglet()",15000,node);
}
 
 
function SetOnglet(node)
{
	jQuery('.jqTabs', node).each(function() {
		var parentThis = this;
		
		jQuery('.jqPanel:not(.on)', this).hide();
		jQuery('.jqOnglets > li', this).click(function () {
			
			jQuery('.jqOnglets > li', parentThis).removeClass('on');
			jQuery(this).addClass('on');
			
			
			var tabId = jQuery(this).children('a').attr('href');			
			jQuery('.jqPanel', parentThis).hide();
			jQuery(tabId, parentThis).show();
			TempoOnglet(node);
			return false;
		});		
		
	});
	
}

function nextOnglet(node)
{
		jQuery('.jqTabs', node).each(function() {
		var parentThis = this;
		jQuery('.jqPanel:not(.on)', this).hide();
		var onglet_select = jQuery('.jqOnglets > li.on', parentThis);
		if(onglet_select.children('a').attr('href')=="#panel_5")
		{
			//si on arrive au dernier onglet on affiche le premier.
			jQuery('#t1', parentThis).parent().addClass('on');
		}
		else
		{
			onglet_select.next().addClass('on');	
		}
		onglet_select.removeClass('on');
		
		var tabId = jQuery('.jqOnglets > li.on', parentThis).children('a').attr('href');			
		jQuery('.jqPanel', parentThis).hide();
		jQuery(tabId, parentThis).show();
			});
		TempoOnglet(node);
}
 
 
jQuery.behaviors.register(function(node) {
	// onglets	
	SetOnglet(node);
	TempoOnglet(node);
	
	
	// Gestion des tips dans les champs de recherches
	jQuery("input.jqInputTip", node).each(function() {
		if (!this.id) this.id = Utile.randomUID();
		var params = Utile.getParams(this, {inputTextTip:''});
		jQuery(this).emptyonclick({defaultValue: params.inputTextTip});
		if (this.value == '') this.value = params.inputTextTip;
	});
	
	// Mise en place des différents artefacts
	jQuery(".jqDatePicker", node).each(function(index, elem) {
		
		var jElem = jQuery(elem);
		
		var getDatePickerOptions = function(input, parseMinMax) {
			
			var options = {changeYear: true};
			var params = Utile.getParams(input, {datePickerMin:'',datePickerMax:''});
			var dateMin = new String(params.datePickerMin.constructor == Date ? Utile.date('d/m/Y', params.datePickerMin) : params.datePickerMin);
			var dateMax = new String(params.datePickerMax.constructor == Date ? Utile.date('d/m/Y', params.datePickerMax) : params.datePickerMax);
			
			if (dateMin.charAt(0) == '#') { // Utilisation de la valeur du champs input
				if (dateMin.slice(1) != input.id || parseMinMax) {
					var inputMin = document.getElementById(dateMin.slice(1));
					if (inputMin && /^(?:\d{2}(\/|-)){2}\d{4}$/.test(inputMin.value))
						options.minDate = Utile.frDateToISODate(inputMin.value, true);
				}
			}
			else {
				options.minDate = dateMin != '' ? Utile.frDateToISODate(dateMin, true) : null;
			}
			
			if (dateMax.charAt(0) == '#') { // Utilisation de la valeur du champs input
				if (dateMax.slice(1) != input.id || parseMinMax) {
					var inputMax = document.getElementById(dateMax.slice(1));
					if (inputMax && /^(?:\d{2}(\/|-)){2}\d{4}$/.test(inputMax.value))
						options.maxDate = Utile.frDateToISODate(inputMax.value, true);
				}
			}
			else {
				options.maxDate = dateMax != '' ? Utile.frDateToISODate(dateMax, true) : null;
			}
			return options;
		}
		
		var checkDateRange = function(elem) {
			if (elem['nodeName'] != 'INPUT') return false;
			var options = getDatePickerOptions(elem, true);
			
			// On vérifie juste que la date supérieur l'est bien
			if (options['maxDate'] && options['minDate']) {
				return !(options.maxDate < options.minDate);
			}
			
			return true;
		}
		
		// Sélecteur de dates
		jElem.datepicker({
			beforeShow: function(input) {
				return getDatePickerOptions(input);
			}
		});
		
		// On lie la vérification de la plage de date au formulaire
		if (elem.form['nodeName'] == "FORM") {
			
			var options = Utile.getParams(elem, {datePickerMin: '', datePickerMax: ''});
			
			// Si le range 
			var doBind = (options['datePickerMin'][0] != '#' && options['datePickerMax'][0] != '#');
			// Cas d'un range composé de seulement un input
			doBind |= (options['datePickerMin'][0] != '#' ^ options['datePickerMax'][0] != '#');
			// Cas d'un dateRange composé de deux inputs: on ne lie que sur l'un des deux
			doBind |= (options['datePickerMin'][0] == '#' && options['datePickerMax'][0] == '#' && elem.id == options['datePickerMin'].slice(1));
			
			if (doBind) {
				jQuery(elem.form).submit(function() {
					var options = getDatePickerOptions(elem, true);
					
					// On vérifie juste que la date supérieur l'est bien
					if (options['maxDate'] && options['minDate']) {
						return !(options.maxDate < options.minDate);
					}
					return true;
				});
			}
		}
	});

	// Gestion des focus pour les input
	jQuery(":input", node).focus(function() {
		jQuery(this).addClass('hasFocus');
	}).blur(function() {
		jQuery(this).removeClass('hasFocus');
	})
	
	// Gestion des popup depuis un lien
	jQuery("a.jqPopup", node).click(function(event) {
		jqPopup(event.currentTarget);
		event.stopPropagation();
		return false;
	});

	jQuery("#libelle_liste", node).change(function(event) {
		if($("#libelle_liste option:selected").val()>0)
		{
			$('#nomDossier').attr("disabled", true);
		}
		else
		{
			$('#nomDossier').attr("disabled", false);
		}
		 
		return false;
	});
	
	
	// Permet a un élément interne de provoquer le rechargement
	jQuery('.jqPopupReplace', node).each(function() {
		var jThis = jQuery(this);
		if (this.nodeName == 'FORM') {
			jThis.submit(jqPopupReplace);
		}
		else if (this.nodeName == 'A') {
			jThis.click(jqPopupReplace);
		}
	});
	
	
	jQuery(".jqSubmitOnClick", node).click(function() {
		var form = this['form'] || jQuery(this).closest('form').get(0);
		if (form['submit']) jQuery(form).trigger('submit');
	});
	
	jQuery(".jqToggleCheckbox", node).click(function(event) {
		
		// Empèche le toggle de se faire si l'utilisateur a cliqué sur un lien
		if (jQuery(event.target).closest('a').get(0))
			return true;
			
		// Empèche le toggle de se faire si l'utilisateur a cliqué sur la checkbox
		if (jQuery(event.target).is('input') || jQuery(event.target).is('label'))
			return true;
		
		var params = Utile.getParams(this);
		if (!params['toggleCheckboxId']) return false;
		var checkbox = document.getElementById(params['toggleCheckboxId']);
		if (!checkbox) return false;
		if (checkbox.disabled) return false;
		if (checkbox.type == 'checkbox') checkbox.checked =! checkbox.checked;
		
	});
	
});

/**
 * @return DOMElement Le conteneur des donnée
 */
jqPopup = function(elem, url, data, callback, options) {
	// Création de la div en utilisant DOM car un lag existe dans la synchro
	var body  = document.createElement("div"),
		jBody = jQuery(body);
	
	
	// Traitement des options
	if (!options) options = {};
	var jqThis = jQuery(elem),
		params = Utile.getParams(elem, {popupFrame: false, popupReloadOnClose: false});
	jQuery.extend(params, options);
	var options = {
			draggable:   params.popupDraggable   || false,
			modal:       params.popupModal       || true,
			autoOpen:    params.popupAutoOpen    || true,
			position:    params.popupPosition    || 'center',
			autoHeight:  params.popupAutoHeight  || params.popupAutoResize || false,
			autoWidth:   params.popupAutoWidth   || params.popupAutoResize || false,
			dialogClass: params.popupDialogClass || 'jqDialogSimple',
			close: function(event, ui) {
				jQuery(elem).dialog("destroy");
				var parentNode = body.parentNode;
				parentNode.removeChild(body);
				parentNode.parentNode.removeChild(parentNode);
			},
			open: function(dialogEvent) {
				jQuery(".ui-widget-overlay").click(function() {
					jQuery(dialogEvent.target).dialog("close");
					if (params.popupReloadOnClose) window.location = window.location;
				});
			}
	};
	if (params['popupWidth'])  options.width  = params.popupWidth;
	if (params['popupHeight']) options.height = params.popupHeight;

	body.options = options;
	body.id = '#'+tmpDivId;
	
	var tmpDivId = (elem.id || Utile.randomUID()) + '_popup',
		tmpDivFrameId = tmpDivId + '_ifrm';
	
	if (!url && elem.nodeName == 'A') {
		url = elem.href.replace('#', ' #');
	}
	
	if (!data) data = null;

	if (params.popupFrame) {
		// Impossible de charger par POST. On envoi les données par GET
		if (data) {
			var serializedData = jQuery.param(data);
			url += url.search(/\?/) === false ? '?' : '&';
			url += serializedData;
		}
		
		jBody.append('<iframe src="'+url+'" style="width:100%;height:100%;border:0;padding:0;margin:0" id="'+tmpDivFrameId+'"></iframe>');
		document.body.appendChild(body);
		jBody.dialog(options);
		
	}
	else {
		if (!data) data = {};
		data.fromJs = true;
		
		if (!jQuery.isFunction(callback)) callback = function(responseText, textStatus, XMLHttpRequest) {
			if (Utile) Utile.dialogResize(body);
			if (jQuery.behaviors) jQuery.behaviors.apply(body);
		}
		jBody.append('<div style="height:100%;background: white url(\'images/red-ajax-loader.gif\') no-repeat center center">&nbsp;</div>');
		jBody.dialog(options).load(url, data, callback);
	}
	
	// Dans le cas d'un redimensionnement de fenêtre
	jQuery(window).resize(function() {
		Utile.dialogResize(body);
	});
	
	return body;
	
}

jqPopupReplace = function(event) {
	
	var target	= event.target,
		data	= null,
		url		= null,
		method  = 'GET';
	
	
	// On recherche la div qui contient les données
	var jBody = jQuery(target).parents('.ui-dialog-content.ui-widget-content');
	var body  = jBody.get(0);
	if (!jBody) return true;
	
	if (target.nodeName == 'FORM') {
		var form  = target,
			jForm = jQuery(target),
			formMethod = form.method.toUpperCase();
		
		data  = jForm.serialize();
		data += (data == '' ? '' : '&')+'fromJs=1';
		url   = form.action;
		if (formMethod == 'POST') {
			data = Utile.deserialize(data);
		}
		else {
			url += (/\?/.test(url) ? '&' : '?') + data;
		}
	}
	else if (target.nodeName == 'A') {
		url = target.href;
	}
	
	jBody.load(url, data, function() {
		if (Utile) Utile.dialogResize(body);
		if (jQuery.behaviors) jQuery.behaviors.apply(body);
	});
	
	event.stopPropagation();
	return false; 
	
}

/*
 * jQuery emptyonclick plugin
 *
 * Created by Andreas Creten (andreas@madewithlove.be) on 2008-06-06.
 * Copyright (c) 2008 madewithlove. All rights reserved.
 *
 * Version: 1.2
 *
 * Changelog :
 * Version 1.2 (17 Jun 2008)
 *  - Empty the fields onsubmit when they are not changed
 *
 * Version 1.1 (11 Jun 2008)
 *  - Fixed a bug when working with an empty field (no default value)
 *
 * Version 1.0 (06 Jun 2008):
 *  - Original version
 */
jQuery.fn.extend({
    emptyonclick: function(options) {
        return this.each(function() {
            new jQuery.EmptyOnClick(this, options);
        });
    }
});
jQuery.EmptyOnClick = function(element, options) {
    var defaultValue = options.defaultValue;
    // Bind event handlers to the element
    $(element)
    // On Focus: Store the default value if it's not set, empty the field
    .bind("focus", function(e) {
        if(defaultValue == $(this).val())
            $(this).val('');
     })
    // On Blur: if the field is empty, reset the default value
    .bind("blur", function(e) {
        if(!$(this).val()) {
            $(this).val(defaultValue);
        }
    });
     // Search for the form which has the element
    $("form:has(#"+element.id+")")
    // If the form gets resetted, set the default value back
    .bind('reset', function(e) {
        $(element).val(defaultValue);
        $(element).removeClass(options.changeClass);
    }) 
    // If the form gets submitted empty, remove the default values
    .bind('submit', function(e) {
    	if($(element).val() == defaultValue)
            $(element).val('');
    });
};

