// fonction.js
// les deux fonctions suivantes ajoutent la propriété outerHTML pour Mozilla
var _emptyTags = {
   "IMG":   true,
   "BR":    true,
   "INPUT": true,
   "META":  true,
   "LINK":  true,
   "PARAM": true,
   "HR":    true
};

if(typeof(HTMLElement)!="undefined"){
	HTMLElement.prototype.__defineGetter__("outerHTML", function () {
	   var attrs = this.attributes;
	   var str = "<" + this.tagName;
	   for (var i = 0; i < attrs.length; i++)
		  str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";
	
	   if (_emptyTags[this.tagName])
		  return str + ">";
	
	   return str + ">" + this.innerHTML + "</" + this.tagName + ">";
	});
	
	HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML) {
	   var r = this.ownerDocument.createRange();
	   r.setStartBefore(this);
	   var df = r.createContextualFragment(sHTML);
	   this.parentNode.replaceChild(df, this);
	});
}


 
/////////////////////////////////////////// AJAX ///////////////////////////////////
//
// fonction ajax principale
//
function getAjax(){ // initialise l'utilisation de l'ajax
 var Ajax = null;
 if(window.XMLHttpRequest) // Firefox et autres
  Ajax = new XMLHttpRequest(); 
 else if(window.ActiveXObject){ // Internet Explorer 
  try {Ajax = new ActiveXObject("Msxml2.XMLHTTP");} 
  catch (e) {Ajax = new ActiveXObject("Microsoft.XMLHTTP");}
 } else { // XMLHttpRequest non supporté par le navigateur 
  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  Ajax = false;
 } 
    return Ajax;
}
 

// fonction ajax avec requete
//
function loadAjax(div,page,vars){ 
 var Ajax = getAjax();
 // On définit ce qu'on va faire quand on aura la réponse
 Ajax.onreadystatechange = function(){
  // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  if(Ajax.readyState == 4 && Ajax.status == 200){
   retour = Ajax.responseText;
   // On met a jour la div transmise
   if(page!=''){
	   document.getElementById(div).innerHTML = retour;
   }else{document.getElementById(div).innerHTML = '';}
  } else {
   var chargement = '<br><font class=bleu12>chargement en cours...</font><br>&nbsp;';
   document.getElementById(div).innerHTML = chargement;
  }
 }
 // poste la page
 Ajax.open("POST",page,true);
 // ne pas oublier ça pour le post
 Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 // arguments
 //var menu = document.getElementById('journee');
 //var journee = menu.options[menu.selectedIndex].value;
 Ajax.send(vars);
}

function loadSELECT(div,page){ 

 var lacategorie = document.getElementById('lacategorie').options[document.getElementById('lacategorie').selectedIndex].value;

 var Ajax = getAjax();
 // On définit ce qu'on va faire quand on aura la réponse
 Ajax.onreadystatechange = function(){
  // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  if(Ajax.readyState == 4 && Ajax.status == 200){
   retour = Ajax.responseText;
   // On met a jour la div transmise

	   document.getElementById(div).innerHTML = retour;
  
  } else {
   var chargement = '<font class=vert12>Chargement en cours...</font>';
   document.getElementById(div).innerHTML = chargement;
  }
 }
 // poste la page
 Ajax.open("POST",page,true);
 // ne pas oublier ça pour le post
 Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 // arguments
 //var menu = document.getElementById('journee');
 //var journee = menu.options[menu.selectedIndex].value;

Ajax.send("lacategorie="+lacategorie);
}


// outerHTML au lieu de inner
function loadAjaxOuter(div,page,vars){ 
 var Ajax = getAjax();
 // On définit ce qu'on va faire quand on aura la réponse
 Ajax.onreadystatechange = function(){
  // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
  if(Ajax.readyState == 4 && Ajax.status == 200){
   retour = Ajax.responseText;
   // On met a jour la div transmise
   if(page!=''){
	   // on remplace le outer
	   document.getElementById(div).outerHTML = retour;
   }else{document.getElementById(div).innerHTML = '';}
  } else {
   var chargement = '<span class=bleu12>chargement en cours...</span>';
   document.getElementById(div).innerHTML = chargement;
  }
 }
 // poste la page
 Ajax.open("POST",page,true);
 // ne pas oublier ça pour le post
 Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 // arguments
 //var menu = document.getElementById('journee');
 //var journee = menu.options[menu.selectedIndex].value;
 Ajax.send(vars);
}

 
////////////////////////////////////// VOILAGE //////////////////////////////////////////

// fonction d'affichage d'un objet
//
function affiche(ident){
	//var div_new = "div_"+ident;
	//if(div_encours != div_new){
		//if(div_encours!=""){Effect.BlindUp(div_encours, { duration: 0.8 });}
		//Effect.BlindDown(div_new, { duration: 3 });
		
	//} else{
		//Effect.BlindUp(div_new, { duration: 0.8 });
		//div_encours = "";
	//}
	
	//Effect.BlindDown(div, { duration: 0.8 });
 document.getElementById(ident).style.display='block';
}
//
function affiche2(div) {
 document.getElementById(div).style.display='inline';
}
//
// visibility au lieu de display
function affichev(div) {
	
 document.getElementById(div).style.visibility='visible';
}
// [3] 
// fonction de voilage d'un objet
//
function cache(div) {
 document.getElementById(div).style.display='none';
} 
//
// visibility au lieu de display
function cachev(div) {
 document.getElementById(div).style.visibility='hidden';
}
// [3bis] 
// fonction de voilage/affichage d'un objet
//
function alterne(div) {
 if(document.getElementById(div).style.display=='none'){document.getElementById(div).style.display='block';}
 else{document.getElementById(div).style.display='none';}
}  
// [4] 
// fonction d'affichage d'un objet PARENT
//
function p_affiche(div) {
 parent.document.getElementById(div).style.display='block';
}
// [5] 
// fonction de voilage d'un objet PARENT
//
function p_cache(div) {
 parent.document.getElementById(div).style.display='none';
}
 
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
////// CONTROLE FORMULAIRE
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
	///////////////////////////////////////////////
	///////////////////////////////////////////////	
	// CONTROLE CAPTCHA
    function DrawBotBoot()
    {
        document.write(""+ a + " + " + b +" ? ");
    }    
	
	var a = Math.ceil(Math.random() * 10);
    var b = Math.ceil(Math.random() * 10);       
    var c = a + b
    // FIN

  
  
function controle_champ(form,champ){
	var d = document.getElementById('captcha').value;
	var test=document.forms[form].elements[champ].value;
	var span= 'ctl_'+champ;
	var valid=true;
	var message="";
	switch(champ) {
		case 'captcha':
		if(test=='' || d != c){valid=false;message='code non valide'; }
		break;
		case 'email':
			// test de l'email
			var atom = "[!#-'*+\\-\\/-9=?A-Z^-~]+";
			var regex_adresse = new RegExp("^"+atom+"(\\."+atom+")*@"+atom+"(\\."+atom+")*\\.[a-zA-Z]{2,4}$");
			if(test=='' || test.search(regex_adresse)!=0 || test.length>150){valid=false;message=' //// Email non valide';}
		break;
		case 'cp':
			if(isNaN(test) || test.length!=5){valid=false;message='code-postal non valide';}
		break;
		case 'telephone':
			if(isNaN(test) || test.length!=10){valid=false;message='t&eacute;l&eacute;phone non valide';}
		break;
		case 'log':
			if(test.length<6){valid=false;message='login trop court';}
			else {check_login(test,span);}
		break;
		case 'pass':
			var login=document.forms[form].elements['log'].value
			if(test.length<6){valid=false;message='mot de passe trop court';}
			else if(test==login){valid=false;message='identique au login';}
		break;
		default:
			if(test==''){valid=false;message=' //// Champ obligatoire';}
		break;
	}
	if(valid==false){
		document.getElementById(span).className='orange12';
	} else{
		document.getElementById(span).className='grisF12';
		}
}

// validation inscription
function valideform(form){
	// recupération des champs
	controle_champ('inscription','nom');
	var nom =document.getElementById('ctl_nom').className;
	controle_champ('inscription','prenom');
	var prenom = document.getElementById('ctl_prenom').className;
	controle_champ('inscription','email');
	var email = document.getElementById('ctl_email').className;
	controle_champ('inscription','message');
	var message = document.getElementById('ctl_message').className;
	controle_champ('inscription','captcha');
	var captcha = document.getElementById('ctl_captcha').className;
	
	// variable de controle
	var valide = true;
	// controles
	if(nom!='grisF12' || prenom!='grisF12' || email!='grisF12' || message!='grisF12' || captcha!='grisF12') {valide = false;}
	// actions
	if(valide==false){
		document.getElementById('message_form').innerHTML = '<strong>Impossible de valider le formulaire.</strong>'; return false;
	} else {document.getElementById('message_form').innerHTML = ''; return true;} 
}
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
////// FIN CONTROLE FORMULAIRE
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
////// AFFICHAGE CADRE SUR LES PHOTOS DES FICHES
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
 var OLDcadre="1";
		  function changeIMAGE(cible,zone){
			  document.getElementById('image1').src=cible;
			 // document.getElementById('image'+zone).src=OLDimage;
			  document.getElementById('cadre'+OLDcadre).src = "images/cadre_videP.gif";
			  document.getElementById('cadre'+zone).src = "images/cadre_videPON.gif";
			 
			  OLDcadre=zone;
			  
		  }
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
////// FIN AFFICHAGE CADRE SUR LES PHOTOS DES FICHES
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////