
function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}
function hideDiv() { 
		if (document.getElementById) { // DOM3 = IE5, NS6 
			document.getElementById('hideshow').style.visibility = 'hidden'; 
		} 
		else { 
				if (document.layers) { // Netscape 4 
					document.hideshow.visibility = 'hidden'; 
				} 
				else { // IE 4 
					document.all.hideshow.style.visibility = 'hidden'; 
				} 
		} 
	}

function showDiv() { 
	if (document.getElementById) { // DOM3 = IE5, NS6 
		document.getElementById('hideshow').style.visibility = 'visible'; 
	} 
	else { 
		if (document.layers) { // Netscape 4 
			document.hideshow.visibility = 'visible'; 
		} 
		else { // IE 4 
			document.all.hideshow.style.visibility = 'visible'; 
		} 
	} 
} 
/*### KC-TEXT ####*/
function fenetreCent(url,nom,largeur,hauteur,options) {
var haut=(screen.height-hauteur)/2;
var Gauche=(screen.width-largeur)/2;
fencent=window.open(url,nom,"top="+haut+",left="+Gauche+",width="+largeur+",height="+hauteur+","+options);
}
function getTextLength(){
	var value = document.getElementById('kc-text-value').value;
	var displayValue = document.getElementById('length-kc-text');
		value.length > 0 ? displayValue.innerHTML = value.length : displayValue.innerHTML = "0";

		var resultat = document.getElementById('resultat-kc-text');

		if(!resultat.getElementsByTagName('div').length){
				resultat.innerHTML = value;
			}
}
function cutText(length){
	var chaine = document.getElementById('kc-text-value').value;
	var	sizeChaine = chaine.length;
	var chaineRestante = chaine.substr(length, sizeChaine);
	if(length > 0 && sizeChaine > 0){
		
			//Met la portion de chaine dans chaine
			chaineCoupee = chaine.substr(0, length);

			// position du dernier espace
			espace = strrpos(chaineCoupee, " " );
			// test si il ya un espace
			if (espace){
				//si ya 1 espace, coupe de nouveau la chaine
				chaineCoupee = chaineCoupee.substr (0, espace );
				/* Ajoute ... à la chaine
				if(length != sizeChaine){
					chaine += '...';
				}*/
			}
			
			
		var overText = (length - sizeChaine);
		var displayOver = document.getElementById('overText');
			if(overText < 0){
				displayOver.innerHTML = "Votre chaine fait <span class='red'>" + -overText + "</span> caractères de trop";
			}else{
				displayOver.innerHTML = "Votre chaine fait moins de <span class='red'>" + length + "</span> caractères";
			}
		var resultat = document.getElementById('resultat-kc-text');
		var chaineColoriee = "<span class='grisetext italic'>" + chaineRestante + "</span>";
		resultat.innerHTML = "<span class='strong'>" + chaineCoupee + "</span>" + " " + chaineColoriee;
		
	}
}
function strrpos (haystack, needle, offset) {
    var i = (haystack+'').lastIndexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}
function display_resolution(width,height){
	var div = document.getElementById('infos');
	var line_width = "<p align='center'><strong>Largeur</strong>: "+width+" pixels</p>";
	var line_height= "<p align='center'><strong>Hauteur</strong>: "+height+" pixels</p>";
	div.innerHTML = line_width + line_height;
}
//Specify affected tags. Add or remove from list:
var tgs = new Array( 'div','td','tr');

//Specify spectrum of different font sizes:
var szs = new Array( '10px','11px','12px','13px','14px','15px','16px' );
var startSz = 2;

function ts( trgt,inc ) {
	if (!document.getElementById) return
	var d = document,cEl = null,sz = startSz,i,j,cTags;
	
	sz += inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 6 ) sz = 6;
	startSz = sz;
		
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize = szs[ sz ];

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
	}
}

//Pour ie

function focusLogin(){
	var inputLogin = document.getElementById('login');
	if(inputLogin ){
		inputLogin.style.backgroundImage = "url('/img/form/input_recherche.gif')";
	
	}
}
function focusPwd(){
	var inputPwd = document.getElementById('pass');
	if(inputPwd ){
		inputPwd.style.backgroundImage = "url('/img/form/input_recherche.gif')";
	
	}
}

function focusNewsletter(){
	var inputNewsletter = document.getElementById('newsletter');
	if(inputNewsletter ){
		inputNewsletter.style.backgroundImage = "url('/img/form/input_recherche.gif')";
	
	}
}

function focusPwdPage(){
	var inputPwdPage = document.getElementById('pass-page');
	if(inputPwdPage ){
		inputPwdPage.style.backgroundImage = "url('/img/form/input_recherche.gif')";
	
	}

}

function focusLoginPage(){
	var inputLoginPage = document.getElementById('login-page');
	if(inputLoginPage ){
		inputLoginPage.style.backgroundImage = "url('/img/form/input_recherche.gif')";
	
		}
}

//inputs
function changeBackground(){
	var inputLogin = document.getElementById('login');
	var inputPwd = document.getElementById('pass');
	var inputNewsletter = document.getElementById('newsletter');
	var inputPwdPage = document.getElementById('pass-page');
	var inputLoginPage = document.getElementById('login-page');
	if(inputLogin ){
		if(inputLogin.value != ''){
			inputLogin.style.backgroundImage = "url('/img/form/input_recherche.gif')";
		}else {
			inputLogin.style.backgroundImage = "url('/img/form/input_login.gif')";
			
		}
	}
	if(inputPwd ){
		if(inputPwd.value != '') {
			inputPwd.style.backgroundImage = "url('/img/form/input_recherche.gif')";
		}else {
			inputPwd.style.backgroundImage = "url('/img/form/input_pwd.gif')";
		}
	}
	if(inputNewsletter ){
		if(inputNewsletter.value != ''){
			inputNewsletter.style.backgroundImage = "url('/img/form/input_recherche.gif')";
		}else {
			inputNewsletter.style.backgroundImage = "url('/img/form/input_newsletter.gif')";
		}
	}
	if(inputPwdPage ){
		if(inputPwdPage.value != ''){
			inputPwdPage.style.backgroundImage = "url('/img/form/input_recherche.gif')";
		}else {
			inputPwdPage.style.backgroundImage = "url('/img/form/input_pwd.gif')";
		}
	}
	if(inputLoginPage ){
		if(inputLoginPage.value != ''){
			inputLoginPage.style.backgroundImage = "url('/img/form/input_recherche.gif')";
		}else {
			inputLoginPage.style.backgroundImage = "url('/img/form/input_login.gif')";
		}
	}
}

//formatage de texte
function emotions(text,id) {
        text = ' '+text;
        textarea = document.getElementById('answer');
        textarea.value += text;
        textarea.focus();

}

function url(text,id) {
	var autre = prompt("Votre lien :","http://");
	var textarea = '';
	tabUrl = text.split(']');
	urlEgale = tabUrl[0];
		if(autre != "http://" && autre != "" && autre != null){
			text = ' ' + urlEgale + autre + ']' + autre +  '[/url]';
	        textarea = document.getElementById(id);
	        text.replace(' ',''); 
	        textarea.value += text;
	        textarea.focus();
		}
}
function image(text, id){
	var autre = prompt("Votre image :","http://");
	var textarea = '';
	tabUrl = text.split(']');
	urlEgale = tabUrl[0];
	if(autre != "http://" && autre != "" && autre != null){
		text = ' ' +  urlEgale + ']' + autre  + '[/image]';
        textarea = document.getElementById(id);
        text.replace(' ','');
        textarea.value += text;
        textarea.focus();
	 }
}
function youtube(text, id){
	var autre = prompt("Lien de votre vidéo Youtube :","http://");
	var textarea = '';
	tabUrl = text.split(']');
	urlEgale = tabUrl[0];
	if(autre != "http://" && autre != "" && autre != null){
		text = ' ' +  urlEgale + ']' + autre  + '[/youtube]';
        textarea = document.getElementById(id);
        text.replace(' ','');
        textarea.value += text;
        textarea.focus();
	 }
}
function dailymotion(text, id){
	var autre = prompt("Numéro de votre vidéo Dailymotion :","");
	var textarea = '';
	tabUrl = text.split(']');
	urlEgale = tabUrl[0];
	if(autre != "" && autre != null){
		text = ' ' +  urlEgale + ']' + autre  + '[/dailymotion]';
        textarea = document.getElementById(id);
        text.replace(' ','');
        textarea.value += text;
        textarea.focus();
	 }
}

function addUrl(id){
	var autre = prompt("Votre lien :","http://");
	//var nom = prompt("Nom du lien :","");
        textarea = document.getElementById(id);
        if(autre != "http://" && autre != "" && autre != null){
        	textarea.value += ' ' + autre;
        }
        textarea.focus();
}
function citation(text,id) {
	var autre = prompt("Votre citation :","");
	 text = ' '+text+autre+'[/citation]';
     textarea = document.getElementById('answer');
     if(autre != "" && autre != null){
    	 textarea.value += text;
     }
     textarea.focus();
}

function gras(text,id) {
	
var autre = prompt("Texte à mettre en gras :","");
        text = ' ' + text  + autre + '[/b]';
        textarea = document.getElementById('answer');
        if(autre != "" && autre != null){
        	textarea.value += text;
        }
        textarea.focus();
}
function souligne(text,id) {
	
var autre = prompt("Texte à souligner :","");
        text = ' ' + text  + autre + '[/u]';
        textarea = document.getElementById('answer');
        if(autre != "" && autre != null){
        	textarea.value += text;
        }
        textarea.focus();
}
function italique(text,id) {
	
var autre = prompt("Texte à mettre en italique :","");
        text = ' ' + text  + autre + '[/i]';
        textarea = document.getElementById('answer');
        if(autre != "" && autre != null){
        	textarea.value += text;
        }
        textarea.focus();
}

var ns6 = document.getElementById && !document.all

function restrictinput(maxlength, e, placeholder) {
	if (window.event && event.srcElement.value.length >= maxlength)
		return false
	else if (e.target && e.target == eval(placeholder)
			&& e.target.value.length >= maxlength) {
		var pressedkey = /[a-zA-Z0-9\.\,\/]/
		if (pressedkey.test(String.fromCharCode(e.which)))
			e.stopPropagation()
	}
}

function countlimit(maxlength, e, placeholder) {
	var theform = eval(placeholder)
	var lengthleft = maxlength - theform.value.length
	var placeholderobj = document.all ? document.all[placeholder] : document
			.getElementById(placeholder)
	if (window.event || e.target && e.target == eval(placeholder)) {
		if (lengthleft < 0)
			theform.value = theform.value.substring(0, maxlength)
		placeholderobj.innerHTML = lengthleft
	}
}

function displaylimit(thename, theid, thelimit) {
	var theform = theid != "" ? document.getElementById(theid) : thename
	var limit_text = '<b><span id="' + theform.toString() + '">' + thelimit
			+ '</span></b> caractères'
	if (document.all || ns6)
		document.write(limit_text)
	if (document.all) {
		eval(theform).onkeypress = function() {
			return restrictinput(thelimit, event, theform)
		}
		eval(theform).onkeyup = function() {
			countlimit(thelimit, event, theform)
		}
	} else if (ns6) {
		document.body.addEventListener('keypress', function(event) {
			restrictinput(thelimit, event, theform)
		}, true);
		document.body.addEventListener('keyup', function(event) {
			countlimit(thelimit, event, theform)
		}, true);
	}
}
//Gestion des polices
function diminuer_taille(id,marge){
document.getElementById(id).style.fontSize=
(parseInt(document.getElementById(id).style.fontSize)-marge)+'px';
}
 function augmenter_taille(id,marge){
document.getElementById(id).style.fontSize=
(parseInt(document.getElementById(id).style.fontSize)+marge)+'px';
}  

// Flash acivé ou non
function FlashEnabled() {
	var MM_contentVersion = 6;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin
			: 0;
	if (plugin) {
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
		for ( var i = 0; i < words.length; ++i) {
			if (isNaN(parseInt(words[i])))
				continue;
			var MM_PluginVersion = words[i];
		}
		var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
	} else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE") >= 0
			&& (navigator.appVersion.indexOf("Win") != -1)) {
		document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); // FS hide this
																// from IE4.5
																// Mac by
																// splitting the
																// tag
		document.write('on error resume next \n');
		document
				.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
		document.write('</SCR' + 'IPT\> \n');
	}
	if (MM_FlashCanPlay) {
		document.write('activé');
	} else {
		document.write('désactivé');
	}
}

// Java
function JavaActive() {
	if (navigator.javaEnabled()) {
		document.write('activé');
	} else {
		document.write('désactivé');
	}
}
function XHRConnection(pdebug) {
	
	// + ----------------------------------------------------------------------------------
	var conn = false;
	var debug = (pdebug == true || pdebug == false) ? pdebug : false;
	var datas = new String();
	var areaId = new String();
	// Objet XML
	var xmlObj;
	// Type de comportement au chargement du XML
	var xmlLoad;
	
	this.texte_renvoye = "";
	
	// + ----------------------------------------------------------------------------------
	try {
		conn = new XMLHttpRequest();		
	}
	catch (error) {
		if (debug) { alert('Erreur lors de la tentative de cr‚ation de l\'objet \nnew XMLHttpRequest()\n\n' + error); }
		try {
			conn = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error) {
			if (debug) { alert('Erreur lors de la tentative de cr‚ation de l\'objet \nnew ActiveXObject("Microsoft.XMLHTTP")\n\n' + error); }
			try {
				conn = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (error) {
				if (debug) { alert('Erreur lors de la tentative de cr‚ation de l\'objet \nnew ActiveXObject("Msxml2.XMLHTTP")\n\n' + error); }
				conn = false;
			}
		}
	}

	// + ----------------------------------------------------------------------------------
	// + setDebugOff
	// + Désactive l'affichage des exceptions
	// + ----------------------------------------------------------------------------------
	this.setDebugOff = function() {
		debug = false;
	};

	// + ----------------------------------------------------------------------------------
	// + setDebugOn
	// + Active l'affichage des exceptions
	// + ----------------------------------------------------------------------------------
	this.setDebugOn = function() {
		debug = true;
	};
	
	// + ----------------------------------------------------------------------------------
	// + resetData
	// + Permet de vider la pile des données
	// + ----------------------------------------------------------------------------------
	this.resetData = function() {
		datas = new String();
		datas = '';
	};
	
	// + ----------------------------------------------------------------------------------
	// + appendData
	// + Permet d'empiler des données afin de les envoyer
	// + ----------------------------------------------------------------------------------
	this.appendData = function(pfield, pvalue) {
		datas += (datas.length == 0) ? pfield+ "=" + escape(pvalue) : "&" + pfield + "=" + escape(pvalue);
	};
	// + ----------------------------------------------------------------------------------
	// + setRefreshArea
	// + Indique quel elment identifié par id est valoris lorsque l'objet XHR reoit une réponse
	// + ----------------------------------------------------------------------------------
	this.setRefreshArea = function(id) {
		areaId = id;
	};
	
	// + ----------------------------------------------------------------------------------
	// + createXMLObject
	// + Méthode permettant de créer un objet DOM, retourne la réfrence
	// + Inspiré de: http://www.quirksmode.org/dom/importxml.html
	// + ----------------------------------------------------------------------------------
	this.createXMLObject = function() {
		try {
			 	xmlDoc = document.implementation.createDocument("", "", null);
				xmlLoad = 'onload';
		}
		catch (error) {
			try {
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				xmlLoad = 'onreadystatechange ';
			}
			catch (error) {
				if (debug) { alert('Erreur lors de la tentative de cr‚ation de l\'objet XML\n\n'); }
				return false;
			}
		}
		return xmlDoc;
	}
	
	// + ----------------------------------------------------------------------------------
	// + Permet de définir l'objet XML qui doit être valorisé lorsque l'objet XHR reoit une réponse
	// + ----------------------------------------------------------------------------------
	this.setXMLObject = function(obj) {
		if (obj == undefined) {
				if (debug) { alert('Paramètre manquant lors de l\'appel de la méthode setXMLObject'); }
				return false;
		}
		try {
			//xmlObj = this.createXMLObject();
			xmlObj = obj;
		}
		catch (error) {
				if (debug) { alert('Erreur lors de l\'affectation de l\'objet XML dans la méthode setXMLObject'); }
		}
	}
	
	// + ----------------------------------------------------------------------------------
	// + loadXML
	// + Charge un fichier XML
	// + Entrées
	// + 	xml				String		Le fichier XML à charger
	// + 	callBack		Objet		Le nom de la fonction de callback
	// + ----------------------------------------------------------------------------------
	this.loadXML = function(xml, callBack) {
		if (!conn) return false;
		// Chargement pour alimenter un objet DOM
		if (xmlObj && xml) {
			if (typeof callBack == "function") {
				if (xmlLoad == 'onload') {
					xmlObj.onload = callBack;
				}
				else {
					xmlObj.onreadystatechange = function() {
						if (xmlObj.readyState == 4) callBack()
					}
				}
			}
			xmlObj.load(xml);
			return;
		}		
	}

	// + ----------------------------------------------------------------------------------
	// + sendAndLoad
	// + Connexion à la page désirée avec envoie des données, puis mise en attente de la réponse
	// + Entrées
	// + 	Url				String		L'url de la page à laquelle l'objet doit se connecter
	// + 	httpMode		String		La méthode de communication HTTP : GET, HEAD ou POST
	// + 	callBack		Objet		Le nom de la fonction de callback
	// + 	asynch		Integer	Si a 1 l'execution sera faites en synchrone
	// + ----------------------------------------------------------------------------------
	this.sendAndLoad = function(Url, httpMode, callBack, callNext, asynch) {
		if(asynch == 1){
			asynchrone = false;
		}else{
			asynchrone = true;
		}
		
		httpMode = httpMode.toUpperCase();
		conn.onreadystatechange = function() {//alert(conn+" "+conn.readyState);
			
			if (conn.readyState == 4 && conn.status == 200) {
				// Si une fonction de callBack a été définie
				if (typeof callBack == "function") {
					
					callBack(conn);//alert("callback");
					//return;
					
				}
				// Si une zone destinée à récupérer le résultat a été définie
				//else if (areaId.length > 0){
				if (areaId.length > 0){
					try {
						document.getElementById(areaId).innerHTML = conn.responseText;
						
					}
					catch(error) {
						if (debug) { alert('Echec, ' + areaId + ' n\'est pas un objet valide'); }
					}
				}
				else{
					texte_renvoye=conn.responseText;
					
				}
				
				if (typeof callNext == "function") {
					callNext(conn);//alert("callback");
					//return;
					
				}
				return ;
			}
			
		};
		switch(httpMode) {
			case "GET":
				try {
					Url = (datas.length > 0) ? Url + "?" + datas : Url;
					conn.open("GET", Url,asynchrone);
					conn.send(null);
				}
				catch(error) {
					if (debug) { alert('Echec lors de la transaction avec ' + Url + ' via la méthode GET'); }
					return false;
				}
			break;
			case "POST":
				try {
					conn.open("POST", Url,asynchrone); 
					conn.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					conn.send(datas);
				}
				catch(error) {
					if (debug) { alert('Echec lors de la transaction avec ' + Url + ' via la méthode POST'); }
					return false;
				}
			break;
			default :
				return false;
			break;
		}
		return true;
	};
	return this;
}

function getElementsByTagNames(list,obj) {
	if (!obj) var obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}


function LoadAndSave(nom_div,url,id_form,est_div)
{ i=0;
	// Cration de l'objet
	var XHR = new XHRConnection();
	XHR.appendData('demande_ajax', 1);
	if(id_form!=""){
		// Recuperarion des valeurs des elements
		XHR.appendData('send_ajax', 1);
		
		if(est_div==1)
		{
			ladiv=document.getElementById(id_form);
			tab_elem = getElementsByTagNames('input,select,textarea',ladiv);
			for(i=0;i<tab_elem.length;i++){
				name=tab_elem[i].name;
				//alert(name);
				if(tab_elem[i].type=='radio' && tab_elem[i].checked==true){
						XHR.appendData(name, tab_elem[i].value);
				}
				if(tab_elem[i].type=='checkbox' && tab_elem[i].checked==true){
						XHR.appendData(name, tab_elem[i].value);
				}
				if(tab_elem[i].type!='radio' && tab_elem[i].type!='checkbox'){
						XHR.appendData(name, tab_elem[i].value);
				}
			}
		}
		else
		{
			// Recuperation des inputs
			nb=document.getElementById(id_form).length;
			//nb=document[nom_form].length;
				
			for(i=0;i<nb;i++){
				
				//name=document.getElementById(nom_form).elements[i].name;
				/*if(document[nom_form].elements[i].type=='radio' && document[nom_form].elements[i].checked==true){
						XHR.appendData(name, document[nom_form].elements[i].value);
				}
				if(document[nom_form].elements[i].type=='checkbox' && document[nom_form].elements[i].checked==true){
						XHR.appendData(name, document[nom_form].elements[i].value);
				}
				if(document[nom_form].elements[i].type!='radio' && document[nom_form].elements[i].type!='checkbox'){
						XHR.appendData(name, document[nom_form].elements[i].value);
				}*/
				name=document.getElementById(id_form).elements[i].name;
	
				if(document.getElementById(id_form).elements[i].type=='radio' && document.getElementById(id_form).elements[i].checked==true){
						XHR.appendData(name, document.getElementById(id_form).elements[i].value);
				}
				if(document.getElementById(id_form).elements[i].type=='checkbox' && document.getElementById(id_form).elements[i].checked==true){
						XHR.appendData(name, document.getElementById(id_form).elements[i].value);
				}
				if(document.getElementById(id_form).elements[i].type!='radio' && document.getElementById(id_form).elements[i].type!='checkbox'){
						XHR.appendData(name, document.getElementById(id_form).elements[i].value);
				}
				
			}
		}
		// Envoie des informations
		
	}
	
	if(nom_div!="")XHR.setRefreshArea(nom_div);
	XHR.sendAndLoad(url, "POST");
}
//Upload
SI.Files.stylizeAll();
