var fieldErrorColor = "#E66869";
var fieldOkColor = "#ffffff";
var boxErrorBadColor = "#A30000";
var boxErrorOkColor = "#00A300";
var tabForms = new Array();




//jQuery's noConflict mode
jQuery.noConflict();

//extension de Jquery pour trouver les positions d'un élément.
jQuery.fn.extend({
	findPos : function() {
       var obj = jQuery(this).get(0);
       var curleft = obj.offsetLeft || 0;
       var curtop = obj.offsetTop || 0;
       while (obj = obj.offsetParent) {
                curleft += obj.offsetLeft
                curtop += obj.offsetTop
       }
       return {x:curleft,y:curtop};
	} 
});
jQuery(document).ready(function(){
	
});


//---------------------------------VALIDATION DE FORMULAIRE
function findSubmitForm(form){
  jQuery("#"+form+" input[type=submit]").each(function(e){
    jQuery(this).click(submitClick);
  });
}
function submitClick(e){
  //on va rechercher les élèments à valider pour le formulaire
  var nomForm = jQuery(this).parent("form").attr("id");
  var erreur = true;
  var errMess = '';
  var req;
  
  if(tabForms[nomForm] && tabForms[nomForm].length){
    //on repasse tous les champs en blanc
    goToWhite(nomForm);
    
    for(var it in tabForms[nomForm]){
      req = tabForms[nomForm][it]["typeR"].split(" ");
      for(var field in req){
        if(!valideField(nomForm,tabForms[nomForm][it]["id"],req[field])){
          errMess += '<li>'+tabForms[nomForm][it]["err"]+'</li>';
          erreur = false;
          //on change la couleur du fond
          goToPink(jQuery('#'+tabForms[nomForm][it]["id"]).get(0));
        }
      }
    }
  }
  
  if(!erreur){
    wErreur('<p>Les erreurs suivantes sont survenues : </p><ul>'+errMess+'</ul>','erreur');
    e.stopPropagation();
  }
  
  return erreur;
}

function valideField(idForm,idField,typeR){
  typeR = typeR.split('|');
  var champ = jQuery('#'+idField);

  switch(typeR[0]){
    case 'notEmpty':{
      return ((jQuery.trim(jQuery(champ).attr("value")))!="");
    }break;
    case 'notFirst':{
      return (jQuery(champ).get(0).selectedIndex != 0);
    }break;
    default : return true;
  }
}

var dmcCouleur = {
  setHexa : function (valeur){
  	var test = this.test(valeur);
  	if(typeof test =="object"){
  		var n = (Number(test[0])<<16) + (Number(test[1])<<8) + Number(test[2]);
  		var iValColor=this.dec2hex(n);
  		var sChaineColor='';
  		for(iCharChaineColor=iValColor.length;iCharChaineColor<6;iCharChaineColor++){
  			sChaineColor='0'+sChaineColor;
  		}
  		return '#' + sChaineColor + iValColor;
  	}
  		return "#".test;
  },
	dec2hex:function (dec){
		var hexa='0123456789ABCDEF',hex=''
		while (dec>15){
			tmp=dec-(Math.floor(dec/16))*16;
			hex=hexa.charAt(tmp)+hex;
			dec=Math.floor(dec/16);
		}
		hex=hexa.charAt(dec)+hex;
		return(hex);
	},
	test:function (valeur){
		if(result = valeur.match(/rgb\((.*)\)/)){
		 if(result[1]){ return result[1].split(",");}
		}
		return (valeur.replace(/#/gi,''));
	}
};

function goToPink(elem){
  if(elem.style)
    elem.style.backgroundColor=fieldErrorColor;
}
function goToWhite(nomForm){
  var form=document.getElementById(nomForm);
  if(form!=undefined){
    for(var i=0;i<form.length;i++){
      if(dmcCouleur.setHexa(form[i].style.backgroundColor)==fieldErrorColor)
        if(form[i].style)
          form[i].style.backgroundColor=fieldOkColor;
    }
  }
}
//---------------------------------FIN DE VALIDATION DE FORMULAIRE


//---------------------------------BLOC D'ERREUR
function wErreur(msg,typ){
    //on fait scroller la page tout en haut
    this.scroll(1,1);
    
    var couleur = (typ=='erreur') ? boxErrorBadColor : boxErrorOkColor;
      
    //on supprime tout avant de commencer
    if(document.getElementById('wErr')){
      document.body.removeChild(document.getElementById('wErr'));
      document.body.removeChild(document.getElementById('iErr'));  
    }
      
    //conteneur
    var divCont;
    if(!document.getElementById("wErr")){
      divCont = document.createElement("div");
			divCont.id = "wErr";
      document.body.appendChild(divCont);
    }else
      divCont =document.getElementById("wErr");
    
    divCont.innerHTML="";
    divCont.style.backgroundColor = couleur;
    
    //iFrame
    var divIframe;
    if(!document.getElementById("iErr")){
      divIframe = document.createElement("iframe");
			divIframe.id = "iErr";
			divIframe.src = "a";
      document.body.appendChild(divIframe);
    }else
      divIframe =document.getElementById("iErr");
      
    //texte
    var divTxt;
    if(!document.getElementById("tErr")){
      divTxt = document.createElement("div");
			divTxt.id = "tErr";
      divCont.appendChild(divTxt);
    }else
      divTxt =document.getElementById("tErr");
    divTxt.innerHTML = msg;
    
    //on retaille si c'est trop grand
    if(divTxt.offsetWidth>400)
      divTxt.style.width=400+"px";
    else
      divTxt.style.width=divTxt.offsetWidth;
    if(divTxt.offsetWidth<300)
      divTxt.style.width=300+"px";
    else
      divTxt.style.width=divTxt.offsetWidth;
    if(divTxt.offsetHeight<40)
      divTxt.style.height=40+"px";
    else
      divTxt.style.width=divTxt.offsetWidth;
    
    //on cherche la taille de l'écran
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) {
      //Non-IE
      myWidth = window.innerWidth;
      myHeight = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
      //IE 6+ in 'standards compliant mode'
      myWidth = document.documentElement.clientWidth;
      myHeight = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
      //IE 4 compatible
      myWidth = document.body.clientWidth;
      myHeight = document.body.clientHeight;
    }    
    //gestion du style de la popup
    divCont.style.width=60+ divTxt.offsetWidth+35+"px";
    divCont.style.height=10+ divTxt.offsetHeight+20+"px";
    divCont.style.left=(myWidth/2)-(divTxt.offsetWidth/2)+"px";
    divCont.style.top=(myHeight/2)+"px";
    //gestion du style de la pseudo frame
    divIframe.style.width = divCont.offsetWidth+"px";
    divIframe.style.height = divCont.offsetHeight+"px";
    divIframe.style.top = divCont.offsetTop+"px";
    divIframe.style.left = divCont.offsetLeft+"px";
    divIframe.style.zIndex = divCont.style.zIndex - 1;
    
    //gestion de la croix de fermeture
    var divCroix;
    if(!document.getElementById("cErr")){
      divCroix = document.createElement("a");
			divCroix.id = "cErr";
			divCroix.href = "javascript:;";
      divCont.appendChild(divCroix);
    }else
      divCroix =document.getElementById("cErr");
    divCroix.innerHTML = "Fermer &times;"
    
    jQuery("#cErr").click(function(e){
      jQuery("#wErr").fadeOut('normal');
    });
  }
//---------------------------------FIN DE BLOC D'ERREUR
