/*******************************************************************************
*
*                                **                  **      ******  ******
*                            **  **         **       **      **  **  **  **
*                                **                  **      **  **  **  **
*  **      **     **     **  **  **     **  **       **      **  **  **  **
*  **      **     **     **  **  **    **   **       **  **  ******  ******
*  **      **     **     **  **  ********   **
*   **    ***     ***   ***  **  **     **  **   *******************************
*     ****   ****   *****    **  **     **  **  *******************************
*
* Titre : Wuiki System
* Version : 1.00 BETA-TEST
* Auteur : Wuiki.com/Kyloo.com ~> Fanin David.
* Copyright : Wuiki.com/Kyloo.com ~> Tous les droits réservés.
* Licence : Voir notre espace spécialisé, http://licence.wuiki.com/contrat.htm
*
********************************************************************************
* Page : /wuiki-include/fonctions.js
* Etat : OK.
*******************************************************************************/

/* Fonctions ******************************************************************/

/* Wuiki Fonction - GET XMLHttpRequest *****************************************
aucune variable.
*******************************************************************************/
var xhr = null;
function getXhr(){
	// Navigateur compatible.
	if(window.XMLHttpRequest){
		xhr = new XMLHttpRequest();
	// Internet Explorer.
	}else if(window.ActiveXObject){
		try{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	// Navigateur non compatible.
	}else{
		alert("Apparement, votre navigateur ne supporte pas la technologie Web2.0 ! Téléchargez et installez en deux minutes FireFox ! http://www.mozilla-europe.org/fr");
		xhr = false;
	}
}
/* Wuiki Fonction - Elément XMLHttpRequest *************************************
method : POST ou GET
adresse : page cible
cible : element cible
elements : entrées POST
*******************************************************************************/
function wf_xhr_fenetre(method,adresse,cible,elements){
	// Ouverture OBJET.
	getXhr();
	// Connexion.
	xhr.open(method,adresse,true);
	// POST.
	if(method =='POST'){
		// Edition.
		var ftagc = getcookie("ftag");
		if(ftagc !=undefined){setcookie('ftag',',');}
		// Header.
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		// Variable.
		var envoi ='';
		var elements_tab = elements.split(',');
		var i2 = elements_tab.length;
		for(var i=0;i<i2;i++){
			if(document.getElementById(elements_tab[i]).type =='checkbox'){
				if(document.getElementById(elements_tab[i]).checked)envoi += elements_tab[i]+'='+document.getElementById(elements_tab[i]).value;
			}else{
				envoi += elements_tab[i]+'='+document.getElementById(elements_tab[i]).value;
			}
			if(i < (i2-1))envoi +='&';
		}
		// Envoi.
		xhr.send(envoi);
	// GET.
	}else{
		// Envoi.
		xhr.send(null);
	}
	// Réponse ?
	xhr.onreadystatechange = function(){
		// Serveur ok ?
		if(xhr.readyState == 4 && xhr.status == 200){
			// Modification.
			document.location.href='#';
			document.getElementById(cible).style.display ='block';
			document.getElementById(cible).innerHTML = xhr.responseText;
		}
	}
}
/* Wuiki Fonction - Elément XMLHttpRequest Fermeture ***************************
cible : element cible
*******************************************************************************/
function wf_xhr_fermeture(cible){
	document.getElementById(cible).innerHTML ='';
	document.getElementById(cible).style.display ='none';
}
/* Wuiki Fonction - Element Formulaire TAG *************************************
tag : tag cliqué
valeur : sa valeur si existante
cible : texteara à modifier
element : l'element qui appel la fonction
*******************************************************************************/
function wf_form_tag(tag,valeur,cible,element){
	var cible2 = cible;
	var cible = document.getElementById(cible);
	var ftag = document.getElementById('ftag' + cible2);
	if(tag =='ftag'){
		var ftagc = getcookie("ftag");
		var ftagt = ftagc.split(",");
		ftagt = ftagt.reverse();
		for(var i=1;i<ftagt.length-1;i++){
			cible.value +='[/'+ftagt[i]+']';
			var element = document.getElementById(ftagt[i] + cible2);
			if(element.id !='taille' && element.id !='couleur'  && element.id !='fond')element.value = element.value.substring(0,element.value.length-1);
			ftag.value = ftag.value.substring(0,ftag.value.length-1);
			setcookie('ftag',',');
		}
	}else if(valeur ==''){
		var element = document.getElementById(element);
		var car = element.value.charAt(element.value.length-1);
		if(car =='*'){
			cible.value +='[/'+tag+']';
			element.value = element.value.substring(0,element.value.length-1);
			ftag.value = ftag.value.substring(0,ftag.value.length-1);
			var ftagc = getcookie("ftag");
			tag =','+tag+',';
			ftagc = ftagc.replace(tag,",");
			setcookie('ftag',ftagc);
		}else{
			cible.value +='['+tag+']';
			element.value +='*';
			ftag.value +='*';
			var ftagc = getcookie("ftag");
			if(ftagc ==undefined){setcookie('ftag',','+tag+',');
			}else{setcookie('ftag',ftagc+tag+',');}
		}
	}else if(element ==''){
		cible.value +='['+tag+'='+valeur+'/]';
	}else{
		var element = document.getElementById(element);
		var car = element.value.charAt(element.value.length-1);
		if(car =='*'){
			cible.value +='[/'+tag+']';
			if(element.id !='taille' && element.id !='couleur' && element.id !='fond')element.value = element.value.substring(0,element.value.length-1);
			ftag.value = ftag.value.substring(0,ftag.value.length-1);
			var ftagc = getcookie("ftag");
			tag =','+tag+',';
			ftagc = ftagc.replace(tag,",");
			setcookie('ftag',ftagc);
		}else{
			if(valeur !='non'){
				cible.value +='['+tag+'='+valeur+']';
				ftag.value +='*';
				var ftagc = getcookie("ftag");
				if(ftagc ==undefined){setcookie('ftag',','+tag+',');
				}else{setcookie('ftag',ftagc+tag+',');}
			}
			if(element.id !='taille' && element.id !='couleur' && element.id !='fond')element.value +='*';
		}
	}
	cible.focus();
}
/* Wuiki Fonction - SET Cookie *************************************************
nom : nom du cookie
valeur : valeur du cookie
*******************************************************************************/
function setcookie(nom,valeur){
	if (nom!="") {
		if (valeur!="") {
			document.cookie=nom+"="+escape(valeur);
		}
	}
}
/* Wuiki Fonction - GET Cookie *************************************************
nom : nom du cookie
*******************************************************************************/
function getcookie(nom){
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i,j)==arg) {
			var endstr=document.cookie.indexOf (";",j);
			if (endstr==-1)	{endstr=clen;}
			return unescape(document.cookie.substring(j, endstr));
            }
		i=document.cookie.indexOf(" ",i)+1;
        if (i==0) {break;}
		}
	return null;
}
