// JavaScript Document

/****
 * pour toute les fonctions check_form_* :
 * Vérifie que chaque champ du formulaire contient une information valide
 * exemple : login en alphanumrique, email bien de la forme nom@host.domaine, taille des textes ni trop long ni trop petit ...
 * si une erreur est trouvé, on affiche un msg d'erreur dans le champ "pop_*" initiallement vide et on ne submit pas le formulaire. (var onApop)
 * sinon on corrige l'url (voir fonction correctUrl(str)) puis on submit le formulaire
 ****/
function check_form_user() {
  var elem = document.getElementById("form_new_user").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="new_login") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_login").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (!isAlphaNumeric(elem[i].value)) {
			  document.getElementById("pop_login").innerHTML=' invalide (non alphanum&eacute;ric)';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_login").innerHTML='4 à 20 caractères';
			  onApop = true;
		  } else if (elem[i].value == "admin") {
			  document.getElementById("pop_login").innerHTML='-> pseudo interdit';
			  onApop = true;
		  }
	  } else if (elem[i].name=="new_pass") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_pass").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_pass").innerHTML='4 à 20 caractères';
			  onApop = true;
		  }
  	  } else if (elem[i].name=="new_repass" && elem[i].value=="") {
		  document.getElementById("pop_repass").innerHTML='-> champ vide';
		  onApop = true;
	  } else if (elem[i].name=="new_email") {
		  if (elem[i].value=="") {
		  	document.getElementById("pop_email").innerHTML='-> champ vide';
		  	onApop = true;
	 	  } else if (!isMail(elem[i].value)) {
		 	document.getElementById("pop_email").innerHTML='-> email invalide';
		 	onApop = true;
		  }
	  } else if (elem[i].name=="cd") {
		  if (elem[i].value=="") {
		  	document.getElementById("pop_code").innerHTML='-> champ vide';
		  	onApop = true;
	 	  }
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_new_user",0);
	  auto_submit("form_new_user");
	  return true;
  } else return false;
}//end function

function check_form_user_mail() {
  var elem = document.getElementById("form_new_user_mail").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="new_login") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_login").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (!isAlphaNumeric(elem[i].value)) {
			  document.getElementById("pop_login").innerHTML=' invalide (non alphanum&eacute;ric)';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_login").innerHTML='4 à 20 caractères';
			  onApop = true;
		  } else if (elem[i].value == "admin") {
			  document.getElementById("pop_login").innerHTML='-> pseudo interdit';
			  onApop = true;
		  }
	  } else if (elem[i].name=="new_pass") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_pass").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_pass").innerHTML='4 à 20 caractères';
			  onApop = true;
		  }
  	  } else if (elem[i].name=="new_repass" && elem[i].value=="") {
		  document.getElementById("pop_repass").innerHTML='-> champ vide';
		  onApop = true;
	  } else if (elem[i].name=="cd") {
		  if (elem[i].value=="") {
		  	document.getElementById("pop_code").innerHTML='-> champ vide';
		  	onApop = true;
	 	  }
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_new_user_mail",0);
	  auto_submit("form_new_user_mail");
	  return true;
  } else return false;
}//end function


function check_cond() {
	correctUrl("form_cond",0);
	auto_submit("form_cond");
	return true;
}//end function

function check_contact() {

alert("dddd");
	correctUrl("form_contact",0);
	auto_submit("form_contact");
	return true;  

}//end function


// param : admin : si admin = 1, alors la modif a ete faite par l'admin du site, redirection differente
function check_form_maj_user(ad) {
  var elem;
  if (ad==1) elem = document.getElementById("form_maj_user_admin").elements;
  else elem = document.getElementById("form_maj_user").elements;
  var i;
  var onApop=false;
  var pass=true;
  var strpass;
  for (i = 0;i < elem.length-2;i++) {//-2 car les derniers elements sont les bouttons submit et annuler
	  if (elem[i].name=="new_login") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_login").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (!isAlphaNumeric(elem[i].value)) {
			  document.getElementById("pop_login").innerHTML=' invalide (que alphanumric)';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_login").innerHTML='4 à 20 caractres';
			  onApop = true;
		  } else if (elem[i].value == "admin") {
			  if (elem[i].readonly==false) {
			  	document.getElementById("pop_login").innerHTML='-> pseudo interdit';
			  	onApop = true;
			  }
		  }
	  } else if (elem[i].name=="new_pass") {
		  if (elem[i].value=="") {
			  pass=false;
		  } else if (pass && elem[i].value.length < 4 || elem[i].value.length > 20) {
			  document.getElementById("pop_pass").innerHTML='4 à 20 caractres';
			  onApop = true;
			  pass=false;
		  } else {
			  strpass=elem[i].value;
			  pass=true;
		  }
  	  } else if (pass && elem[i].name=="new_repass") {
		  if (elem[i].value=="") {
		  	document.getElementById("pop_repass").innerHTML='Veuillez confirmer le pass';
		 	onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 20) {
		  	document.getElementById("pop_repass").innerHTML='4 à 20 caractres';
		  	onApop = true;
		  } else if (elem[i].value!=strpass) {
		  	document.getElementById("pop_repass").innerHTML='Confirmation diffrente';
		  	onApop = true;
		  }
	  } else if (elem[i].name=="new_email") {
		  if (elem[i].value=="") {
		  	document.getElementById("pop_email").innerHTML='-> champ vide';
		  	onApop = true;
	 	  } else if (!isMail(elem[i].value)) {
		 	document.getElementById("pop_email").innerHTML='-> email invalide';
		 	onApop = true;
		  }
	  }
  }//end for
  if (!onApop) {
	  if (ad==1) {
		  correctUrl("form_maj_user_admin",0);
		  auto_submit("form_maj_user_admin");
	  } else {
	  	correctUrl("form_maj_user",0);
	  	auto_submit("form_maj_user");
	  }
	  return true;
  } else return false;
}//end function

function check_form_article() {
  var elem = document.getElementById("form_new_art").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="new_titre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_titre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 150) {
			  document.getElementById("pop_titre").innerHTML='-> 4 à 150 caractères';
			  onApop = true;
		  }
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_new_art",0);
	  auto_submit("form_new_art");
	  return true;
  } else return false;
}//end function

function check_form_maj_article() {
  var elem = document.getElementById("form_maj_art").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="new_titre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_titre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 150) {
			  document.getElementById("pop_titre").innerHTML='-> 4 à 150 caractres';
			  onApop = true;
		  }
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_maj_art",0);
	  auto_submit("form_maj_art");
	  return true;
  } else return false;
}//end function

function check_form_wiki() {

   var elem = document.getElementById("form_new_wiki").elements;
  var cout=document.getElementById("cout");
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {

	  if (elem[i].name=="titre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_titre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 149) {
			  document.getElementById("pop_titre").innerHTML='-> 4 à 150 caractres';
			  onApop = true;
		  }
	  } else if (elem[i].name=="sstitre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_sstitre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 149) {
			  document.getElementById("pop_sstitre").innerHTML='-> 4 à 150 caractres';
			  onApop = true;
		  }
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_new_wiki",0);
	  auto_submit("form_new_wiki");
	  return true;
  } else return false;
}//end function

function check_form_maj_wiki(ad) {

  var elem;
  if (ad==1) elem = document.getElementById("form_maj_wiki_admin").elements;
  else elem = document.getElementById("form_maj_wiki").elements;

  var i;
  var onApop=false;
  if (!onApop) {
	  if (ad==1) {
	  		correctUrl("form_maj_wiki_admin",0);
			auto_submit("form_maj_wiki_admin");
	  }
	  correctUrl("form_maj_wiki",0);
	  auto_submit("form_maj_wiki");

	  return true;
  } else return false;
}//end function

function check_form_maj_accueil(ad) {
  var elem;
  if (ad==1) elem = document.getElementById("form_maj_accueil_admin").elements;
  else elem = document.getElementById("form_maj_accueil").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="titre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_titre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 149) {
			  document.getElementById("pop_titre").innerHTML='-> 4 à 150 caractres';
			  onApop = true;
		  }
	  } else if (elem[i].name=="sstitre") {
		  if (elem[i].value=="") {
			  document.getElementById("pop_sstitre").innerHTML='-> champ vide';
			  onApop = true;
		  } else if (elem[i].value.length < 4 || elem[i].value.length > 149) {
			  document.getElementById("pop_sstitre").innerHTML='-> 4 à 150 caractres';
			  onApop = true;
		  }
	  }

  }//end for

  if (!onApop) {
	  if (ad==1) {
	  		correctUrl("form_maj_accueil_admin",0);
			auto_submit("form_maj_accueil_admin");
	  }
	  correctUrl("form_maj_accueil",0);
	  auto_submit("form_maj_accueil");
	  return true;
  } else return false;
}//end function

function check_form_com() {
  var elem = document.getElementById("form_new_com").elements;
  var i;
  var onApop=false;
  for (i = 0;i < elem.length-1;i++) {
	  if (elem[i].name=="new_texte" && elem[i].value=="") {
		  document.getElementById("pop_texte").innerHTML='-> champ vide';
		  onApop = true;
	  }
  }//end for
  if (!onApop) {
	  correctUrl("form_new_com",0);
	  auto_submit("form_new_com");
	  return true;
  } else return false;
}//end function

function check_form_add_img(url) {

	correctUrl("form_new_img",url);
	auto_submit("form_new_img");

	return true;
}

function check_form_maj_new_wiki_mc(id) {
	var i=0;
	var mc;
	var id_mc;
	var pop_i;
	var onApop = false;
	for (i=0;i<10;i++) {
		mc = "span_"+i;
		if (document.getElementById(mc).innerHTML=="exist") {
			id_mc = "mc"+i;
			if (document.getElementById(id_mc).value.length >= 55)  {
				pop_i = "pop_"+i;
				document.getElementById(pop_i).innerHTML='-> max 55 caractres';
				onApop = true;
			}
		}
	}
	if (!onApop) auto_submit("form_new_wiki_mc");
}

function check_form_maj_droit(input_login,id_form,auteur,admin) {
	onApop = false;
	var logine = document.getElementById(input_login);
	var farm_a_submit = document.getElementById(id_form);
	var lvl = document.getElementById("niveau").value;
	var ok=true;
	if (logine.value==auteur) {
		alert(auteur + " est l'auteur du wiki, il a déjà tous les droits. Vous ne pouvez pas modifier ses droits");	
	}else if(logine.value==admin){
		alert("Vous ne pouvez pas modifier les droits de " + admin);	
	} else {
		
			if (logine.value=="") {
				logine.value='login vide';
				onApop = true;
			} else if (logine.value.length > 20) {
				logine.value='login trop long';
				onApop = true;
			}
			if (!onApop) {
			  auto_submit(id_form);
			  return true;
			} else return false;
		
	}
}

/****
* param :
* form_a_submit id html du formulaire a submit
* submit le formulaire passe en parrametre
****/
function auto_submit(form_a_submit) {
	document.getElementById(form_a_submit).submit();
}

/****
* param :
* champ : champ html  eventuellement modifier
* suprime le message d'erreur eventuellement present dans le champ "pop_*"
****/
function supr_msg_champ_vide(champ) {
	document.getElementById(champ).innerHTML='';
}

/****
* param :
* email : chaine de caractere a verifier
* verifie que la chaine passe en parametre correspond a la syntaxe d'un email
* retourne true si la chaine correspond, false sinon
****/
function isMail(email) { // verif validite email par REGEXP
   var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,4}$/
   return (reg.exec(email)!=null)
}

/****
* param :
* val : chaine de caractere a verifier
* verifie que la chaine passe en parametre le contient que des caracteres alpha numrique (a-z et 0-9)
* retourne true si la chaine correspond, false sinon
****/
function isAlphaNumeric(val) {
	if (val.match(/^[a-zA-Z0-9]+$/)) return true;
	else return false;
}

/****
* param :
* form : string de l'identifiant du formulaire (valeur possible : form_new_wiki et form_maj_wiki)
* rend cliquable ou non certains radio bouttons du formulaire en fonction de la restriction.
* exemple : si la restriction est privé, le prix = 0 n'est plus cliquable
****/
function maj_radio_prix(form) {

	var elem = document.getElementById(form);
        var elem2=document.getElementById("button_submit");
        var cout=document.getElementById("cout");
	var i=0;
	for (i=0;i<elem.restric.length;i++) {

		if ((elem.restric[i].checked==true) && (elem.restric[i].value=="prive")) {

			var j=0;
			document.getElementById("prix").innerHTML="3 Euros / Mois";
			elem.pub[0].checked=true;
			elem.pub[0].disabled=false;
			elem.pub[1].checked=false;
			elem.pub[1].disabled=true;
                        cout.value='3';
                        elem2.value="Payer";
		} else if (elem.restric[i].checked==true &&  elem.restric[i].value=="public" || elem.restric[i].value=="semi-public") {
			var j=0;
			document.getElementById("prix").innerHTML="Gratuit";
			
			elem.pub[0].checked=false;
			elem.pub[0].disabled=false;
			elem.pub[1].checked=true;
			elem.pub[1].disabled=false;
                        cout.value='0';
                        elem2.value="Enregistrer";
		}
	}
}


function veriflect(){

	var elem = document.getElementById('form_cat');
	var i=0;
	var j=0;
	for (i=0;i<elem.read_art.length;i++) {
		if (elem.read_art[i].checked==true) {
			for (j=0;j<elem.maj_art.length;j++) {
				if(elem.maj_art[j].value <= elem.read_art[i].value && elem.maj_art[j].checked==true){
					elem.maj_art[i].checked=true;
				}
				if(elem.maj_art[j].value <elem.read_art[i].value){
					elem.maj_art[j].disabled=true;
				}else{
					elem.maj_art[j].disabled=false;
				}
			}
			for (j=0;j<elem.add_art.length;j++) {
				if(elem.add_art[j].value <= elem.read_art[i].value && elem.add_art[j].checked==true){
					elem.add_art[i].checked=true;
				}
				if(elem.add_art[j].value <elem.read_art[i].value){
					elem.add_art[j].disabled=true;
				}else{
					elem.add_art[j].disabled=false;
				}
			}
			for (j=0;j<elem.supr_art.length;j++) {
				if(elem.supr_art[j].value <= elem.read_art[i].value && elem.supr_art[j].checked==true){
					elem.supr_art[i].checked=true;
				}
				if(elem.supr_art[j].value<elem.read_art[i].value){
					elem.supr_art[j].disabled=true;
				}else{
					elem.supr_art[j].disabled=false;
				}
			}
			for (j=0;j<elem.read_com.length;j++) {
				if(elem.read_com[j].value <= elem.read_art[i].value && elem.read_com[j].checked==true){
					elem.read_com[i].checked=true;
				}
				if(elem.read_com[j].value <elem.read_art[i].value){
					elem.read_com[j].disabled=true;
				}else{
					elem.read_com[j].disabled=false;
				}
			}
			for (j=0;j<elem.maj_com.length;j++) {
				if(elem.maj_com[j].value <= elem.read_art[i].value && elem.maj_com[j].checked==true){
					elem.maj_com[i].checked=true;
				}
				if(elem.maj_com[j].value <elem.read_art[i].value){
					elem.maj_com[j].disabled=true;
				}else{
					elem.maj_com[j].disabled=false;
				}
			}
			for (j=0;j<elem.add_com.length;j++) {
				if(elem.add_com[j].value <= elem.read_art[i].value && elem.add_com[j].checked==true){
					elem.add_com[i].checked=true;
				}
				if(elem.add_com[j].value <elem.read_art[i].value){
					elem.add_com[j].disabled=true;
				}else{
					elem.add_com[j].disabled=false;
				}
			}
			for (j=0;j<elem.supr_com.length;j++) {
				if(elem.supr_com[j].value <= elem.read_art[i].value && elem.supr_com[j].checked==true){
					elem.supr_com[i].checked=true;
				}
				if(elem.supr_com[j].value <elem.read_art[i].value){
					elem.supr_com[j].disabled=true;
				}else{
					elem.supr_com[j].disabled=false;
				}
			}
		}
	}
		for (i=0;i<elem.read_com.length;i++) {
		if (elem.read_com[i].checked==true) {
			for (j=0;j<elem.maj_com.length;j++) {
				if(elem.maj_com[j].value <= elem.read_com[i].value && elem.maj_com[j].checked==true){
					elem.maj_com[i].checked=true;
				}
				if(elem.maj_com[j].value <elem.read_com[i].value){
					elem.maj_com[j].disabled=true;
				}else{
					elem.maj_com[j].disabled=false;
				}
			}
			for (j=0;j<elem.add_com.length;j++) {
				if(elem.add_com[j].value <= elem.read_com[i].value && elem.add_com[j].checked==true){
					elem.add_com[i].checked=true;
				}
				if(elem.add_com[j].value <elem.read_com[i].value){
					elem.add_com[j].disabled=true;
				}else{
					elem.add_com[j].disabled=false;
				}
			}
			for (j=0;j<elem.supr_com.length;j++) {
				if(elem.supr_com[j].value <= elem.read_com[i].value && elem.supr_com[j].checked==true){
					elem.supr_com[i].checked=true;
				}
				if(elem.supr_com[j].value <elem.read_com[i].value){
					elem.supr_com[j].disabled=true;
				}else{
					elem.supr_com[j].disabled=false;
				}
			}
		}

	}
}



/****
* param :
* restric : string de la restriction selectionn
* fonction appellé quand le boutton modifier la restriction de VueWiki::form_maj_wiki() est cliqué.
* supprime le boutton et le texte de la restriction et les remplace par un choix en radio boutton
****/
function maj_radio_restric() {
	alert('Attention : modifier la restriction réinitialise la liste de droits !');
	
}




function check_form_pay(titre,sstitre,restric,pub,descr,cout) {

  var onApop=false;
  var en = document.getElementById('encrypted');
 $.ajax({
        type: "POST",
        url: "util/add_wiki_attente.php5",
        data: "titre="+titre+"&sstitre="+sstitre+"&restric="+restric+"&pub="+pub+"&description="+descr+"&cout="+cout,
        success: function(reponse){
		  alert ("dqsdqsd"+reponse);	
            en.value=reponse;
            correctUrl("pay",0);
            auto_submit("pay");
        }
    });
  if (!onApop) {
	  
	  return true;
  } else return false;

}

/****
* param :
* formid : string de l'identifiant du formulaire qui va etre submit
* modifie la cible de l'action d'un formulaire par sa bonne valeur juste avant qu'il soit submit
* sert  bloquer les bots qui ne voient pas la bonne cible du formulaire
****/
function correctUrl(formid,url) {

	var formobj = document.getElementById(formid);
	var cout=document.getElementById('cout');
	if(formobj) {
		switch (formid) {
		  case 'pay':
		  	formobj.action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr";
			break;
		  case 'form_contact':
		  	formobj.action="util/env_mess.php5";
			break;
		  case 'form_new_art':
		  	formobj.action="util/add_article.php5";
			break;
		  case 'form_new_user':
		  	formobj.action="util/add_user.php5";
			break;
                  case 'form_new_user_mail':
		  	formobj.action="util/add_user_mail.php5";
			break;
		  case 'form_maj_user':
  		  case 'form_maj_user_admin':
		  	formobj.action="util/maj_user.php5";
			break;
		  case 'form_maj_user':
		  	formobj.action="util/add_wiki.php5";
			break;
		  case 'form_new_com':
		  	formobj.action="util/add_com.php5";
			break;
		  case 'form_new_img':
		  	formobj.action="util/add_img.php5?url="+url;
			break;
		  case 'form_maj_art':
		  	formobj.action="util/maj_article.php5?numart="+document.getElementById('numart').value;
			break;
		  case 'form_new_wiki':
				formobj.action="util/add_wiki.php5";
			break;
		  case 'form_maj_wiki':
		  case 'form_maj_wiki_admin':
		  	formobj.action="util/maj_wiki.php5?id="+document.getElementById('id_wiki').value;
			break;
		  case 'form_maj_accueil':
		  case 'form_maj_accueil_admin':
		  	formobj.action="util/maj_accueil.php5?id="+document.getElementById('id_wiki').value;
			break;
		  case 'form_new_art':
		  	formobj.action="index.php5?page=inscr&action=creer";
			break;
		}
	}
	return true;
}

/*****
* param :
*  id : identifiant du wiki
*  ad : 1: modification par l'admin 0: modification par un utilisateur
*    valide le formulaire de la mise à jour des catégories d'un wiki puis attend 1.5sec (pour etre sur que la maj soit effectué)
*    puis recharge la page qui a ouvert l'onglet afin d'afficher la modification
*****/
function maj_cat_parent_window(titre,ad) {
	auto_submit("form_maj_wiki");
	sleep(1500);//si Apache et MySQL mettent plus de 1.5sec a faire la maj, cette maj ne sera pas visible au rechargement de la page 'opener.document'
	if (ad==1) {
		opener.document.location.href=opener.document.location.href;
	} else {
		opener.document.location.href="wiki-"+titre+"&action=majw";
	}
	window.close();
}

/*****
* param :
*  id : identifiant du wiki
*  ad : 1: modification par l'admin 0: modification par un utilisateur
*    verifie puis valide le formulaire de la mise à jour des mots clef d'un wiki puis attend 1.5sec (pour etre sur que la maj soit effectué)
*    puis recharge la page qui a ouvert l'onglet afin d'afficher la modification
*****/
function maj_mc_parent_window(titre,ad) {

	var i=0;
	var mc;
	var id_mc;
	var pop_i;
	var onApop = false;
	for (i=0;i<10;i++) {//10 mots cle max
		mc = "span_"+i;
		if (document.getElementById(mc).innerHTML=="exist") {
			id_mc = "mc"+i;
			if (document.getElementById(id_mc).value.length >= 55)  {
				pop_i = "pop_"+i;
				document.getElementById(pop_i).innerHTML='-> max 55 caractres';
				onApop = true;
			} else if (document.getElementById(id_mc).value=='') {
				pop_i = "pop_"+i;
				document.getElementById(pop_i).innerHTML='-> champs vide';
				onApop = true;
			}
		}
	}
	if (!onApop) {
		auto_submit("form_maj_wiki_mc");
		sleep(1500);
		if (ad==1) {
			opener.document.location.href=opener.document.location.href;
		} else {
			opener.document.location.href="wiki-"+titre+"&action=majw";
		}
		window.close();
	}
}

/*****
*param :
* strString : nombre qu'on veut tester
*  retourne un booleen valant true si strString ne contient que des caracteres numerique et false sinon
*****/
// Fonction de "http://www.pbdr.com/vbtips/asp/JavaNumberValid.htm"
function is_numeric(strString) {
	//  check for valid numeric strings	
	var strValidChars = "0123456789.-";
	var strChar;
	var blnResult = true;
	if (strString.length == 0) return false;
		//  test strString consists of valid characters listed above
		for (i = 0; i < strString.length && blnResult == true; i++)	{
			strChar = strString.charAt(i);
			if (strValidChars.indexOf(strChar) == -1) {
				blnResult = false;
			}
		}
		return blnResult;
}

/*****
*retourne un entier egal a l'heure actuelle
*****/
function DateInt() {
	var now = new Date();
	var h = now.getHours();
	var m = now.getMinutes();
    var s = now.getSeconds();
	return ( h * 60 * 60 ) + ( m * 60 ) + s;
}

/*****
*param :
* intTime : entier de la durée du 'sleep' en millisecondes
*  tourne dans uen boucle pendant intTime millisecondes
*****/
function sleep(intTime) {
	if(!is_numeric(intTime)) {
		return;
	}
	intTime = (intTime/1000);
	var Exp = DateInt() + intTime;
	while(Exp>DateInt()) {
		;
	}
}

/****
* affiche un champs pour entrer un mot cle dans les pages de creation ou modification des mots cle d'un wiki
*****/
function add_mc_liste() {
	var i=0;
	var mc;
	var id_mc;
	for (i=0;i<10;i++) {
		mc = "span_"+i;
		if (document.getElementById(mc).innerHTML=="null") {
			id_mc = "mc_"+i;
			document.getElementById(id_mc).innerHTML='              <span class="disp_none" id="span_'+i+'">exist</span>              <a href="" class="float-right"  onClick="maj_mc_supr('+i+');return false;" >Supprimer</a>              <input type="text" name="mc'+i+'" id="mc'+i+'" class="float-left" value="" onFocus="supr_msg_champ_vide(\'pop_'+i+'\')"/>              <span class="pop_js" id="pop_'+i+'"></span>              <br /><br />';
			break;//pour n'ajouter qu'un champs de mot cle a la fois. Sinon ajoute tout jusqu'a 10
		}
	}
	if (i==10) alert('Pas plus de 10 mots clef');
}

/****
* cache (avec un display:none) un champs pour entrer un mot cle dans les pages de creation ou modification des mots cle d'un wiki
*****/
function maj_mc_supr(num) {
	var elem = "mc_"+num;
	document.getElementById(elem).innerHTML='              <span class="disp_none" id="span_'+num+'">null</span>';	
}

/*****
* AJAX
* Initialise un objet XMLHTTP
*****/
function getXMLHTTP(){
  var xhr=null;
  if(window.XMLHttpRequest) // Firefox et autres
  	xhr = new XMLHttpRequest();
  else if(window.ActiveXObject){ // Internet Explorer
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e1) {
        xhr = null;
      }
    }
  }
  else { // XMLHttpRequest non support� par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  }
  return xhr;
}

/****
AJAX
sert a modifier l'image qui montre si un login entré dans un input text existe
****/
function verifLogin(existe) {
	if (existe==1 || existe==2) {
		var o=document.getElementById("test_login");
	} else if (existe==0) {
		var o=document.getElementById("new_login");
	}
	var http=getXMLHTTP();
	http.onreadystatechange  = function() { 
		if (http.readyState  == 4) {
			if (http.status  == 200) {
				if (existe==1) {
					if (http.responseText==1) {
						document.getElementById('img_login').src='gfx/icones/login_valide.png';
					} else if (http.responseText==0) {
						document.getElementById('img_login').src='gfx/icones/login_invalide.png';
					}
				} else if (existe==0) {
					if (http.responseText==1) {
						document.getElementById("pop_login").innerHTML='-> login indisponible';
						var elem = document.getElementById('button_submit');
						elem.disabled=true;
					} else if (http.responseText==0) {
						supr_msg_champ_vide('pop_login');
						var elem = document.getElementById('button_submit');
						elem.disabled=false;
					}
				} else if (existe==2) {
					if (http.responseText==0) {
						document.getElementById("pop_login").innerHTML='-> login innexistant';
						var elem = document.getElementById('button_submit');
						elem.disabled=true;
					} else if (http.responseText==1) {
						supr_msg_champ_vide('pop_login');
						var elem = document.getElementById('button_submit');
						elem.disabled=false;
					}
				}
			}
		}
	}; 
	http.open("GET", "util/verif_log.php5?login="+o.value,true); 
	http.send(null); 
}

/****
AJAX
sert a modifier l'image qui montre si un titre entré dans un input text existe
****/
function verifTitreWikiexist() {
	
	var o=document.getElementById("titre");
	
	var http=getXMLHTTP();

	http.onreadystatechange  = function() { 

		if (http.readyState  == 4) {
			if (http.status  == 200) {
				
				if (http.responseText==1) {
					document.getElementById("pop_titre").innerHTML='-> titre existant';
					var elem = document.getElementById('button_submit');
					elem.disabled=true;
				}else if (http.responseText==2) {
					document.getElementById("pop_titre").innerHTML='-> catactere non pris en compte';
					var elem = document.getElementById('button_submit');
					elem.disabled=true;
				} else if (http.responseText==0) {
					supr_msg_champ_vide('pop_titre');
					var elem = document.getElementById('button_submit');
					elem.disabled=false;
				}
				
			}
		}
	}; 
	http.open("GET", "util/verif_titre_wiki.php5?titre="+o.value,true); 
	http.send(null); 
}

function verifTitreWikiexistMaj(id) {
	var o=document.getElementById("titre");
	
	var http=getXMLHTTP();

	http.onreadystatechange  = function() { 

		if (http.readyState  == 4) {
			if (http.status  == 200) {
				
				if (http.responseText==1) {
					document.getElementById("pop_titre").innerHTML='-> titre existant';
					var elem = document.getElementById('modifier');
					elem.disabled=true;
				}else if (http.responseText==2) {
					document.getElementById("pop_titre").innerHTML='-> catactere non pris en compte';
					var elem = document.getElementById('modifier');
					elem.disabled=true;
				} else if (http.responseText==0) {
					supr_msg_champ_vide('pop_titre');
					var elem = document.getElementById('modifier');
					elem.disabled=false;
				}
				
			}
		}
	}; 
	http.open("GET", "util/verif_titre_wiki.php5?titre="+o.value+"&id="+id,true); 
	http.send(null); 
}

/****
AJAX
sert afficher la restriction d'un wiki et modifier la combobox de choix du niveau en fonction de la restriction de ce wiki
****/
function verifTitreWiki() {

	var o=document.getElementById("new_droit_user");
	var http=getXMLHTTP();
	http.onreadystatechange  = function() { 

		if (http.readyState  == 4) {
			if (http.status  == 200) {
				if (http.responseText==0) {
					document.getElementById('wiki_restric').innerHTML='';
					document.getElementById('new_niveau').innerHTML='';
					
				} else if (http.responseText=='public') {
					document.getElementById('wiki_restric').innerHTML='public';
					document.getElementById('new_niveau').innerHTML='<option value="5">5</options><option value="4">4</options><option value="3">3</options><option value="2">2</options><option value="1">1</option>';
					
				} else if (http.responseText=='semi-public') {
					document.getElementById('wiki_restric').innerHTML='semi-public';
					document.getElementById('new_niveau').innerHTML='<option value="5">5</options><option value="4">4</options><option value="3">3</options><option value="2">2</options><option value="1">1</option>';
					
				} else if (http.responseText=='prive') {
					document.getElementById('wiki_restric').innerHTML='prive';
					document.getElementById('new_niveau').innerHTML='<option value="5">5</options><option value="4">4</options><option value="3">3</options><option value="2">2</options><option value="1">1</option>';
				}
			}
		}
	}; 
	http.open("GET","util/verif_titre_wiki.php5?t="+o.value,true); 
	http.send(null); 
}

/****
AJAX
param : 
 numcom : identifiant du commentaire que l'on veut modifier
sert a modifier un commentaire dans la page de back office sans tout recharger.
on tape le nouveau texte du commentaire et on clique sur "modifier".
si le commentaire a bien été modifier, un message l'affiche et pas besoin de recharger la page puisqu'on a deja le nouveau commentaire.
****/
function maj_com_admin(numcom) {
	var http=getXMLHTTP();
	http.onreadystatechange  = function() {
		if (http.readyState  == 4) {
			if (http.status  == 200) {
				if (http.responseText==1) {
					document.getElementById('pop_js_'+numcom).innerHTML='mise à jour réussi';
				} else if (http.responseText==0) {
					document.getElementById('pop_js_'+numcom).innerHTML='erreur de mise à jour';
				}
			}
		}
	};
	var data = "file="+document.getElementById('new_texte_'+numcom).value+"&nc="+numcom;
	http.open("POST","util/maj_com_admin.php5",true); 
	http.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
	http.send(data);
}

/*****
* AJAX 
*param :
*  numcom : identifiant du commentaire a supprimer
* suprime le commentaire ainsi que son affichage dans la page info_article
*****/
function supr_com(numcom) {
	var http=getXMLHTTP();
	http.onreadystatechange  = function() { 
		if (http.readyState  == 4) {
			if (http.status  == 200) {
				if (http.responseText==1) {
					var parent = document.getElementById(numcom).parentNode;
					parent.removeChild(document.getElementById(numcom));
				}
			}
		}
	}; 
	http.open("GET","util/supr_com.php5?nc="+numcom,true);
	http.send(null);
}

/****
todo : retrouver son utilité
*****/
function modif_url_admin(champ) {
	var url=document.location.href;
	var str = 'test_'+champ+'=';
	var indexof = url.indexOf(str,0);
	if (indexof == -1) {
		document.location.href=url;
	} else {
		var patern = '/(test_'+champ+'=).*/'
		var newurl = url.replace(eval(patern),"");
		document.location.href=newurl;
	}
}

function recup_base_url() {
	var url=document.location.href;

	var index_of = url.indexOf('?',0);
	if (index_of == -1){
		url=url+'?';
	}else{
		index_of = url.indexOf('?color',0);
		if (index_of == -1){
			index_of = url.indexOf('&color',0);
			if (index_of == -1){
				url=url+'&';
			}else{
				url=url.substring(0,url.indexOf('color',0));
			}
			
		}else{
			url=url.substring(0,url.indexOf('color',0));
		}
	}
	return url;
}

/*****
*param : 
* form : string du formulaire
* coch : 0 = coché / 1 = décoché
*  coche ou decoche toutes les checkbox du formulaire d'id form
******/
function toutcocher(form,coch) {
	var elem = document.getElementById(form).elements;
	for(i=0;i<elem.length;i++) {
		if(elem[i].type=="checkbox")
			if (coch==0) elem[i].checked=true;
			else if (coch==1) elem[i].checked=false;
	}
}

// FONCTION USELESS /////////////////////////////////////////

/****
param :
 id_name : id du texte que l'on souhaite faire tourner
 space : rayon de la rotation en pixels
 timeout : temps entre 2 rafraichissement de rotations en millisecondes
 nb_activations : nombre de rotations
fait tourner le texte dans la balise html d'id 'smooth'
****/
var i_smooth = 0;
var j_smooth = 0;
function smooth(id_name,space,timeout,nb_activation) {
	var elem = document.getElementById(id_name);
	mspace = -space;
	switch(i_smooth%16) {
	case 0:
		elem.style.left=space+'px';//droite
		elem.style.top='0px';
		break;
	case 1:
		elem.style.left=(space/4)*3+'px';//bas droite droite
		elem.style.top=space/4+'px';
		break;
	case 2:
		elem.style.left=space/2+'px';//bas droite
		elem.style.top=space/2+'px';
		break;
	case 3:
		elem.style.left=space/4+'px';//bas bas droite
		elem.style.top= (space/4)*3+'px';
		break;
	case 4:
		elem.style.left='0px';//bas
		elem.style.top= space+'px';
		break;
	case 5:
		elem.style.left=mspace/4+'px';//bas bas gauche
		elem.style.top= (space/4)*3+'px';
		break;
	case 6:
		elem.style.left= mspace/2+'px';//bas gauche
		elem.style.top=space/2+'px';
		break;
	case 7:
		elem.style.left= (mspace/4)*3+'px';//bas gauche gauche
		elem.style.top=space/4+'px';
		break;
	case 8:
		elem.style.left= mspace+'px';//gauche
		elem.style.top='0px';
		break;
	case 9:
		elem.style.left= (mspace/4)*3+'px';//haut gauche gauche
		elem.style.top= mspace/4+'px';
		break;
	case 10:
		elem.style.left= mspace/2+'px';//haut gauche
		elem.style.top= mspace/2+'px';
		break;
	case 11:
		elem.style.left= mspace/4+'px';//haut haut gauche
		elem.style.top= (mspace/4)*3+'px';
		break;
	case 12:
		elem.style.left='0px';//haut
		elem.style.top= mspace+'px';
		break;
	case 13:
		elem.style.left= space/4+'px';//haut haut droite
		elem.style.top= (mspace/4)*3+'px';
		break;
	case 14:
		elem.style.left=space/2+'px';//haut droite
		elem.style.top= mspace/2+'px';
		break;
	case 15:
		elem.style.left=(space/4)*3+'px';//haut droite droite
		elem.style.top= mspace/4+'px';
		break;
	}
	i_smooth++;
	if (i_smooth<=(nb_activation*16)) {
		setTimeout('smooth(\"'+id_name+'\",'+space+','+timeout+','+nb_activation+')',timeout);
	} else {
		i_smooth=0;
		elem.style.left='0px';
		elem.style.right='0px';
		elem.style.top='0px';
	}
}

/***
param :
id_name : id du texte que l'ont souhaite déplacer
length : taille total de l'avancement a droite en pixels
speed : ecart entre 2 avancée vers la droite en pixels
timeout : durée entre 2 ecarts en millisecondes
nb_activation : nombre d'aller retours
***/
var i_go_right = 0;
var j_go_right = 0;
function go_right(id_name,length,speed,timeout,nb_activation) {
	var elem_go_right = document.getElementById(id_name);
	if (i_go_right < length) {
		i_go_right += speed;
		elem_go_right.style.marginLeft = i_go_right+'px';
	} else {
		i_go_right = 0;
		j_go_right++;
		elem_go_right.style.marginLeft = i_go_right+'px';
	}
	if (j_go_right<nb_activation) {
		setTimeout('go_right(\"'+id_name+'\",'+length+','+speed+','+timeout+','+nb_activation+')',timeout);
	} else {
		j_go_right=0;
		i_go_right=0;
	}
}

function test() {
	var elem = document.getElementById("smooth2");
	var parent = elem.parentNode;
	var newDiv = document.createElement('div');
	var newSpan = document.createElement('span');

	newDiv.id='div_test';
	newDiv.innerHTML='<br /><br />';
	
	newSpan.id='smooth';
	newSpan.className='smooth';
	newSpan.style.marginLeft='40px';
	newSpan.innerHTML='woot';
	
	parent.appendChild(newDiv);
	newDiv.appendChild(newSpan);
}

function imag()
{
window.document.image.src='generateurcode.php5';
}

function recup(valeur){
	$(location).attr('href',"maj_wiki_conf.php5?id="+valeur);

}

function degrise(){
	
	if(document.getElementById("form_supr_wiki").sel.value!=0){
		$(location).attr('href',"supr_meswiki.php5?id="+document.getElementById("form_supr_wiki").sel.value);
	}else{
		$(location).attr('href',"supr_meswiki.php5");
	}
}

function confirmSupr(page,form){
	var formobj = document.getElementById(form);
	if(confirm('Voulez vous vraiment entrer?')){
		formobj.action=page;
	}
}
