//-----------------------------------------Navigateur

function refresh(){
	document.location.href = document.location.href;
}
//parent.location.hash = "hello";
function isIE6(){
	var IE6 = false;
	var strChUserAgent = navigator.userAgent;
	var intSplitStart = strChUserAgent.indexOf("(",0);
	var intSplitEnd = strChUserAgent.indexOf(")",0);
	var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
	if(strChMid.indexOf("MSIE 6") != -1) IE6 = true;
	return IE6;
}
//donne la largeur de la fenetre
function donneLargeur() {
	var L_fen = 0;
	if (typeof(window.innerWidth) == 'number') {
		L_fen = window.innerWidth;
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			L_fen = document.documentElement.clientWidth;
		}
		else {
			if (document.body && document.body.clientWidth) {
				L_fen = document.body.clientWidth;
			}
		}
	}
	return L_fen;
}
//donne la hauteur de la fenetre
function donneHauteur() {
	var H_fen = 0;
	if (typeof(window.innerHeight) == 'number') {
		H_fen = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			H_fen = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				H_fen = document.body.clientHeight;
			}
		}
	}
	return H_fen;
}
window.onload = function() {
	sauve_taille();
}
window.onresize = function() {
	sauve_taille();
}
function sauve_taille(){
	var larg = donneLargeur();
	var haut = donneHauteur();
	//alert(larg+"/"+haut);
	EcrireCookie("largeur", larg);
	EcrireCookie("hauteur", haut);
	if(document.getElementById("taille_fen")){
		document.getElementById("taille_fen").innerHTML = larg+" * "+haut;
	}
}
function donne_url(){
	/*var url_in = document.location.href.split("/");
	alert(url_in);
	var url = "";
	var site = "";
	for(var U = 0; U < url_in.length; U++){		if(url_in[U] == site){			url += site+"/";
			U = 100;
		}else{			url += url_in[U]+"/";
		}
	}
	alert(url);             */
	url = "http://www.freud-lacan.com/";
	return url;
}
var url_site = donne_url();
//alert(url_site);
var serveur = document.location.href.split("/")[2];
//-----------------------------------------Clavier
function test_enter(e){
	valid = false;
	if(window.event){
		if (window.event.type == "keydown" && window.event.keyCode == 13){
        	valid = true;
       	}
	}else if(e){
		if (e.type == "keydown" && e.keyCode == 13){
        	valid = true;
		}
	}
	return valid;
}
//-----------------------------------------Changement de page
//change de page selon la ligne choisie
function choix_ligne(chemin, selObj){
	document.location=chemin+selObj.options[selObj.selectedIndex].value;
}
//valide le formulaire
function valider(form){
	if(verify_save()){
		var htm = '<li>Sauvegarde en cours</li>';
		document.getElementById("menu_action").innerHTML = htm;
		document.getElementById(form).submit();
	}
}
//evalue le formalaire si confirm fenetre
function confirm_eval(texte, chemin){
	if(texte == 0){
		document.location.href = url_site+"eval.php?A="+chemin;
	}else{
		if(confirm(donne_texte_js(texte))){
			document.location.href = url_site+"eval.php?A="+chemin;
		}
	}
}
//change de page
function change_page(page){
	if(page.indexOf(".") == -1){
		document.location.href = url_site+"index.php?A="+page;
	}else{
		document.location.href = url_site+page;
	}
}
function change_admin(event, page){
	var su = LitCookie('su');
	if(su == 1){
		var A = page.substr(0, 1);
		if(A == 1 && event.shiftKey){
			var page = 2+page.substr(1);
		}
	}
	var chemin = url_site+"admin.php?A="+page;
	if(event.ctrlKey){
       	window.open(chemin);
    }else{
    	//document.edition.submit();
		//EcrireCookie("sauve", chemin);
		document.location.href = chemin;
	}
}
//-----------------------------------------Pop up
//ouvre une popup
function ouvrir(chemin, nom_fenetre){
	window.open(chemin, nom_fenetre);
}
//ouvre une popup si confirm fenetre
function confirm_ouvre(texte, chemin){
	if(confirm(texte)){
		window.open(chemin, "Externe");
	}
}
//-----------------------------------------Serial ajax
function AD_serial_js_to_php(donnee, fichier, conteneur, load){
	var serial_out = serialize(donnee);
	//fill_div(serial_out, "g_quizzy");
	serial_out = urlencode(serial_out);
	document.getElementById("debug_variables").innerHTML += serial_out;
	charge_div(fichier+serial_out, conteneur, load);
}
function urlencode(ch) {
	//si distant
	if(serveur != "localhost"){
		ch = ch.replace(/\+/g,"%u002B");
	}
	return escape(ch)
}
//-----------------------------------------XMLHttpRequest
//renvoi le contenu de l'url
function renvoie_fichier(fichier){
	if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else
		return(false);
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else
	return(false);
}

//renvoi le contenu de l'url
function attend_fichier(fichier, action){
	if(window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else
		return(false);
	xhr_object.open("POST", fichier, false);
	xhr_object.send(null);
	if(xhr_object.readyState == 4) {
		action_suite(action, xhr_object.responseText);
	}else{
		return false;
	}
}
//-----------------------------------------Div
//affiche le loader
function affiche_load(sens, div){	if(sens == 1){		var texte = "Chargement en cours";
	}else if(sens == 2){
		var texte = "Sauvegarde en cours";
	}else{		var texte = sens;
	}
	fill_div('<span class="sauve">'+texte+'</span>', div);
	document.getElementById(div).style.display = "block";
}
//remplit la div avec le contenu
function fill_div(contenu_div, nom_div, vu){
	document.getElementById(nom_div).innerHTML = contenu_div;
	if(vu == 1){		if(contenu_div == ""){
			document.getElementById(nom_div).style.display = "none";
		}else{			document.getElementById(nom_div).style.display = "block";
		}
	}
}
//charge un contenu dans une div puis l'affiche
function charge_div(chemin, conteneur, load){	if(load){
		affiche_load(load, conteneur);
		//alert(1);
	}
	var url = url_site+"echange.php?A="+chemin;
	var contenu = renvoie_fichier(url);
	fill_div(contenu, conteneur);
	document.getElementById(conteneur).style.display = "block";
}
//permute l'affichage d'une div
function etat_div(div){
	if(document.getElementById(div)){
		var etat = document.getElementById(div).style.display;
		if(etat == "none" || etat == ""){
			document.getElementById(div).style.display = "block";
		}else{
			document.getElementById(div).style.display = "none";
		}
	}
}
//permute l'affichage d'une div et charge son contenu
function charge_vide_div(chemin, div, load){
	if(document.getElementById(div).innerHTML == ""){
		charge_div(chemin, div, load);
	}else{
		document.getElementById(div).style.display = "none";
		document.getElementById(div).innerHTML = "";
	}
}
//affiche le fond et remplit la div
function ouvre_conteneur(cache, conteneur, contenu){
	document.getElementById(cache).style.display = "block";
	document.getElementById(conteneur).innerHTML = contenu;
	document.getElementById(conteneur).style.display = "block";
}
//cache le fond et vide la div
function ferme_conteneur(cache, conteneur){
	if(document.getElementById(cache)){
		document.getElementById(cache).style.display = "none";
	}
	document.getElementById(conteneur).style.display = "none";
	document.getElementById(conteneur).innerHTML = "";
}
function elargit(nom){
	document.getElementById(nom).style.width = "auto";
}
function reduit(nom, larg){
	document.getElementById(nom).style.width = larg+"px";
}
function montre(div){
	document.getElementById(div).style.display = "block";
}
function cache(div){
	document.getElementById(div).style.display = "none";
}
//-----------------------------------------Cookie
//ecrit le cookie
function EcrireCookie(nom, valeur){
	var valeur = virePlus(valeur);
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
//lire un cookie
function LitCookie(nom) {
	var val = null;
	var liste_cookie = document.cookie.split("; ");
	for(var C = 0; C < liste_cookie.length; C++){
		var cook = (liste_cookie[C]).split("=");
		if(cook[0] == nom){
			var val = cook[1];
		}
	}
	return val;
}
//efface le cookie
function EffaceCookie(nom){
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
}
//-----------------------------------------Texte
function virePlus(valeur){
	var valeur = String(valeur).replace(/\[+]/g , "|P|");
	var valeur = String(valeur).replace(/\[&]/g , "|E|");
	var valeur = String(valeur).replace(/\[#]/g , "|D|");
	return valeur;
}
//-----------------------------------------Debug
function debug_variable(variable, sep){
	var sortie = "";
	for (var item in variable) {
		var val = variable[item];
		if(val != undefined){
			if(val.toString() == "[object Object]"){
	        	sortie += "<hr>"+sep+item+" : <br>";
	        	sortie += debug_variable(val, sep+sep);
	        }else{
	  			sortie += item+' = '+val+"<br>";
			}
		}
	}
	return sortie;
}
//-----------------------------------------Clavier
function test_enter(e){
	valid = false;
	if(window.event){
		if (window.event.type == "keydown" && window.event.keyCode == 13){
        	valid = true;
       	}
	}else if(e){
		if (e.type == "keydown" && e.keyCode == 13){
        	valid = true;
		}
	}
	return valid;
}
//met à jour la couleur
function maj_couleur(nom, couleur){
	document.getElementById(nom).value = '#'+couleur;
	//alert(document.getElementById(nom).value);
}
function htmlentities( string ){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: nobbler
    // +    tweaked by: Jack
    // %          note: table from http://www.the-art-of-web.com/html/character-codes/
    // *     example 1: htmlentities('Kevin & van Zonneveld');
    // *     returns 1: 'Kevin &amp; van Zonneveld'

    var histogram = {}, code = 0, tmp_arr = [], i = 0;
    var stringl = 0;

    histogram['34'] = 'quot';
    histogram['38'] = 'amp';
    histogram['60'] = 'lt';
    histogram['62'] = 'gt';
    histogram['160'] = 'nbsp';
    histogram['161'] = 'iexcl';
    histogram['162'] = 'cent';
    histogram['163'] = 'pound';
    histogram['164'] = 'curren';
    histogram['165'] = 'yen';
    histogram['166'] = 'brvbar';
    histogram['167'] = 'sect';
    histogram['168'] = 'uml';
    histogram['169'] = 'copy';
    histogram['170'] = 'ordf';
    histogram['171'] = 'laquo';
    histogram['172'] = 'not';
    histogram['173'] = 'shy';
    histogram['174'] = 'reg';
    histogram['175'] = 'macr';
    histogram['176'] = 'deg';
    histogram['177'] = 'plusmn';
    histogram['178'] = 'sup2';
    histogram['179'] = 'sup3';
    histogram['180'] = 'acute';
    histogram['181'] = 'micro';
    histogram['182'] = 'para';
    histogram['183'] = 'middot';
    histogram['184'] = 'cedil';
    histogram['185'] = 'sup1';
    histogram['186'] = 'ordm';
    histogram['187'] = 'raquo';
    histogram['188'] = 'frac14';
    histogram['189'] = 'frac12';
    histogram['190'] = 'frac34';
    histogram['191'] = 'iquest';
    histogram['192'] = 'Agrave';
    histogram['193'] = 'Aacute';
    histogram['194'] = 'Acirc';
    histogram['195'] = 'Atilde';
    histogram['196'] = 'Auml';
    histogram['197'] = 'Aring';
    histogram['198'] = 'AElig';
    histogram['199'] = 'Ccedil';
    histogram['200'] = 'Egrave';
    histogram['201'] = 'Eacute';
    histogram['202'] = 'Ecirc';
    histogram['203'] = 'Euml';
    histogram['204'] = 'Igrave';
    histogram['205'] = 'Iacute';
    histogram['206'] = 'Icirc';
    histogram['207'] = 'Iuml';
    histogram['208'] = 'ETH';
    histogram['209'] = 'Ntilde';
    histogram['210'] = 'Ograve';
    histogram['211'] = 'Oacute';
    histogram['212'] = 'Ocirc';
    histogram['213'] = 'Otilde';
    histogram['214'] = 'Ouml';
    histogram['215'] = 'times';
    histogram['216'] = 'Oslash';
    histogram['217'] = 'Ugrave';
    histogram['218'] = 'Uacute';
    histogram['219'] = 'Ucirc';
    histogram['220'] = 'Uuml';
    histogram['221'] = 'Yacute';
    histogram['222'] = 'THORN';
    histogram['223'] = 'szlig';
    histogram['224'] = 'agrave';
    histogram['225'] = 'aacute';
    histogram['226'] = 'acirc';
    histogram['227'] = 'atilde';
    histogram['228'] = 'auml';
    histogram['229'] = 'aring';
    histogram['230'] = 'aelig';
    histogram['231'] = 'ccedil';
    histogram['232'] = 'egrave';
    histogram['233'] = 'eacute';
    histogram['234'] = 'ecirc';
    histogram['235'] = 'euml';
    histogram['236'] = 'igrave';
    histogram['237'] = 'iacute';
    histogram['238'] = 'icirc';
    histogram['239'] = 'iuml';
    histogram['240'] = 'eth';
    histogram['241'] = 'ntilde';
    histogram['242'] = 'ograve';
    histogram['243'] = 'oacute';
    histogram['244'] = 'ocirc';
    histogram['245'] = 'otilde';
    histogram['246'] = 'ouml';
    histogram['247'] = 'divide';
    histogram['248'] = 'oslash';
    histogram['249'] = 'ugrave';
    histogram['250'] = 'uacute';
    histogram['251'] = 'ucirc';
    histogram['252'] = 'uuml';
    histogram['253'] = 'yacute';
    histogram['254'] = 'thorn';
    histogram['255'] = 'yuml';
   	histogram['8216'] = 'lsquo';
    histogram['8217'] = 'rsquo';
   	histogram['8220'] = 'ldquo';
    histogram['8221'] = 'rdquo';
   	histogram['8242'] = 'prime';
    histogram['8243'] = 'Prime';
    histogram['8364'] = 'euro';

    stringl = string.length
    for (i = 0; i < stringl; ++i) {
        code = string.charCodeAt(i);
        if (code in histogram) {
            tmp_arr[i] = '&'+histogram[code]+';';
        } else {
            tmp_arr[i] = string.charAt(i);
        }
    }

    return tmp_arr.join('');
}
//-----------------------------------------
function select_add_option(select_list, title, value){
	var new_line = new Option(title, value, true);
	select_list.options[1] = new_line;
	select_list.selectedIndex = 1;
}
function select_change_option(select_list, title){
	//alert(select_list+", "+title);
	for(var L=0; L<select_list.length; L++){
		if(select_list.options[L].selected == true){
			val = select_list.options[L].value;
			var change_line = new Option(title, val, true);
			select_list.options[L] = change_line;
			select_list.options[L].selected = true;
		}
	}
}
function str_replace (search, replace, subject, count) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Gabriel Paderni
    // +   improved by: Philip Peterson
    // +   improved by: Simon Willison (http://simonwillison.net)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   bugfixed by: Anton Ongson
    // +      input by: Onno Marsman
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    tweaked by: Onno Marsman
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   input by: Oleg Eremeev
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Oleg Eremeev
    // %          note 1: The count parameter must be passed as a string in order
    // %          note 1:  to find a global variable in which the result will be given
    // *     example 1: str_replace(' ', '.', 'Kevin van Zonneveld');
    // *     returns 1: 'Kevin.van.Zonneveld'
    // *     example 2: str_replace(['{name}', 'l'], ['hello', 'm'], '{name}, lars');
    // *     returns 2: 'hemmo, mars'

    var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
            f = [].concat(search),
            r = [].concat(replace),
            s = subject,
            ra = r instanceof Array, sa = s instanceof Array;
    s = [].concat(s);
    if (count) {
        this.window[count] = 0;
    }

    for (i=0, sl=s.length; i < sl; i++) {
        if (s[i] === '') {
            continue;
        }
        for (j=0, fl=f.length; j < fl; j++) {
            temp = s[i]+'';
            repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
            s[i] = (temp).split(f[j]).join(repl);
            if (count && s[i] !== temp) {
                this.window[count] += (temp.length-s[i].length)/f[j].length;}
        }
    }
    return sa ? s : s[0];
}
function AD_str_replace(liste, lettre, texte){	for(var L = 0; L < liste.length; L++){
		texte = str_replace(liste[L], lettre, texte);
	}
	return texte;
}