/*
	init : function(){
		//////////////////////////////////////////////////////////////////////////////////////////////////
		//								Controle du formulaire											//
		//////////////////////////////////////////////////////////////////////////////////////////////////
			1) Mettre la form avec une id "valid_form"
			2) Créer les champs:
				<tr>
					<td width="200px" class="formulaire_titre"><?php echo $_SESSION['multi_14']?> :</td>
					<td width="320px" class="formulaire_input"><input name="titre_fr" id="titre_fr" type="text" /></td>
					<td width="30px"><img id="img_titre_fr" /></td>
				</tr>
			3) Pour la vérification de l'existance du login, mettre cette id="login"
			4) Pour la vérification de l'adresse mail valide, mettre cette id="mail"
			5) Pour la vérification de l'adresse mail valide & pour savoir si cette adresse existe ds la base, mettre cette id="login_mail"
			6) Pour la vérification de 2 mots de passe mettre ces id="mdp1 & mdp2" 
			7) Pour la vérification par cryptogramme mettre cette id="code" et faire un copier coller de ca =>  class="<?PHP echo SID?>"
			8) Pour ne mettre que des chiffres dans l'input désiré, mettre cette class="verif_form_chiffre"
			9) Pour les conditions générales mettre dans l'input l'id="conditions"
			10) Pour activer le popup mettre cette class="thickbox"
			11) Pour changer l'alert destiné au message d'erreur, mettre au début du formulaire "javascript.options.message_error_verif_form='le message à mettre'"
			12) Ne pas oublier d'importer JQUERY
			13) Ne pas oublier d'importer THICKBOX
	}
*/


var javascript = {
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Settings														//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		options : {
			timer: null,//Timer pour l'opacité
			url_img_valid_form: 'images/',//Lien des images vrai / faux pour la validation du formulaire
			WYSIWYG: new Array(),//Tableau avec tous les id de composants qui sont WYSIWYG dans la page
			verification_formulaire: true,
			message_error_verif_form: false
		},

		init : function(){
			//Vérification du formulaire
			if(this.options.verification_formulaire){
				var composant=this.search_tag('img',4,'img_');
				for(var i=0;i<composant.length;i++){
					var valid_img=this.getObj(composant[i]);
					var valid_text=this.getObj(composant[i].substring(4));
					if((valid_text)&&(valid_img)&&(valid_img.src=='')){
						//En cas ou ce soit l'éditeur de texte//
						if(this.getObj(composant[i].substring(4)+'_ifr')){
							this.options.WYSIWYG.push(composant[i].substring(4)+'_ifr');
							valid_img.id='img_'+composant[i].substring(4)+'_ifr';
						}else{
							//Login//
							if(valid_text.id=='mail'){
								$(valid_text).blur(function(){javascript.verif_form(this)});
							}else if(valid_text.id=='code'){
								$(valid_text).attr("autocomplete", "off");
								$(valid_text).blur(function(){javascript.verif_crypto(this.value,this.className)});
							}else{
								$(valid_text).blur(function(){javascript.verif_form(this)});
							}
							
						}
						valid_img.src=this.options.url_img_valid_form+'faux.png';
						valid_img.style.display='none';
					}
				}
				$('input.verif_form_chiffre').keypress(function(event){if((event.keyCode<45||event.keyCode>57)&&event.keyCode!=32&&event.keyCode!=9&&event.keyCode!=8&&event.keyCode!=0)event.returnValue=false;if((event.which<45||event.which>57)&&event.which!=32&&event.which!=8&&event.which!=9&&event.which!=0)return false});
				$(this.getObj('valid_form')).submit(function(){return javascript.disabled_but_valid()});
			}
		},
		
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Ajax															//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		envoieRequete : function(url,id,loading){//20 mars 2008
			//url = url de la page à appeler
			//id = ID de la div pour la réponse de la page
			//loading = "images/loading.gif"
			if(loading)javascript.getObj(id).innerHTML='<div style="color:#FF0000">Chargement en cours...</div><img src="'+loading+'" />';

			var xhr_object=null;
			if(window.XMLHttpRequest)
				xhr_object=new XMLHttpRequest();
			else
				if(window.ActiveXObject) xhr_object=new ActiveXObject("Microsoft.XMLHTTP");
				xhr_object.open("GET",url,true);
				xhr_object.onreadystatechange=function(){
					if(xhr_object.readyState==4){
						javascript.getObj(id).innerHTML=xhr_object.responseText;
					}
				}
			xhr_object.send(null);
		},
		
		file : function(fichier){//20 mars 2008
			//fichier = url de la page à appeler
			if(window.XMLHttpRequest)
				xhr_object=new XMLHttpRequest();
			else if(window.ActiveXObject)
				xhr_object=new ActiveXObject("Microsoft.XMLHTTP");
			else return(false);
			xhr_object.open("GET", fichier, false);
			xhr_object.send(null);
			if(xhr_object.readyState== 4) return(xhr_object.responseText);
			else return(false);
		},
			
		ajax_file : function(url){//20 mars 2008
			//url = url de la page à appeler
			if(texte=this.file(url))return texte;
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Controle Formulaire												//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		verif_form : function(control, login){//20 mars 2008
			//control = Nom du control (ex: this)
			//login = true/false
			if(control.value==''){
				this.form_response(control.id,'faux','faux');//Faux
			}else{
				this.form_response(control.id,'','vrai');		
				if(control.id=='mail'){
					adresse=control.value;
					var place=adresse.indexOf("@",1);
					var point=adresse.indexOf(".",place+1);
					if((place>-1)&&(adresse.length>2)&&(point>1)){
						if(login){
							if(this.file('inscription_login.php?mail='+adresse)=='false'){//Si c'est true
								this.form_response(control.id,'','vrai');
							}else{
								this.form_response(control.id,'Ce login existe deja','faux');
							}
						}else{
							this.form_response(control.id,'','vrai');
						}
					}else{
						this.form_response(control.id,'Ceci n\'est pas une adresse mail valide','faux');
					}
				}else if(control.id.substring(0,3)=='mdp'){
					if(this.getObj('mdp1').value!=this.getObj('mdp2').value){
						this.form_response('mdp1','Les 2 mots de passe doivent avoir la m&ecirc;me valeur','faux');
						this.form_response('mdp2','Les 2 mots de passe doivent avoir la m&ecirc;me valeur','faux');
					}else{
						this.form_response('mdp1','','vrai');
						this.form_response('mdp2','','vrai');
					}
				}
			}
		},
	
		form_response : function(control_id,response,src_img){//20 mars 2008
			//control_id = id du control (ex: this.id)
			//response = un message (ex: vrai ou faux)
			//src_img = vrai/faux
			var id_img='img_'+control_id;
			this.getObj(id_img).src=this.options.url_img_valid_form+src_img+'.png';
			this.getObj(id_img).style.display='inline';
			if(src_img=='vrai'){
				this.getObj(id_img).alt='vrai';
			}else{
				this.getObj(id_img).alt=response;
			}
		},
		
		disabled_but_valid : function(){//20 mars 2008
			var trouv=false;//Si c'est true à la sortie ca veux dire qu'il a trouvé un champ libre
			//Vérification si il y a un editeur WYSIWYG
			for(var i=0;i<this.options.WYSIWYG.length;i++){
				if(this.search_navigator('msie')){
					var texte_WYSIWYG=window.frames[this.options.WYSIWYG[i]].document.body.innerHTML.toLowerCase();
					texte_WYSIWYG=texte_WYSIWYG.replace('<p>','');
					texte_WYSIWYG=texte_WYSIWYG.replace('</p>','');
				}else{
					var texte_WYSIWYG=this.getObj(this.options.WYSIWYG[i]).contentDocument.body.innerHTML.toLowerCase();
					texte_WYSIWYG=texte_WYSIWYG.replace('<p>','');
					texte_WYSIWYG=texte_WYSIWYG.replace('</p>','');
				}
				if((texte_WYSIWYG=='<br mce_bogus="1">')||(texte_WYSIWYG=='&nbsp;')||(texte_WYSIWYG=='')||(texte_WYSIWYG=='<br>')){
					trouv=true;
					javascript.form_response(this.options.WYSIWYG[i],'faux','faux');
				}else{
					javascript.form_response(this.options.WYSIWYG[i],'vrai','vrai');
				}
			}
			
			//On vérifie le reste du formulaire
			var var_return=this.search_tag('img',4,'img_');
			for(var po=0;po<var_return.length;po++){
				var temp=var_return[po].replace('img_','');//Pour tester si l'input existe bien
				if((this.getObj(temp))&&(this.getObj(var_return[po]).alt!='vrai')){//Si c'est différent
					trouv=true;
				}
			}
			
			if((javascript.getObj('conditions'))&&(javascript.getObj('conditions').checked==false))trouv=true;
			
			//Une petite alerte si il y a un champ de vide
			if(trouv){
				if(this.options.message_error_verif_form==false) alert('Veuillez verifier tous les champs svp');
				else alert(this.options.message_error_verif_form);
				return false;
			}else{
				return true;
			}
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Cryptographe													//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		verif_crypto : function(valeur,SID){//20 mars 2008
			//valeur = Valeur saisi par l'utilisateur
			//SID = Cryptogramme créer par PHP
			if(SID==''){
				texte=this.file('js/cryptographe/verifier.php?code='+valeur);
			}else{
				texte=this.file('js/cryptographe/verifier.php?code='+valeur+'&'+SID);
			}
			if(texte==0){
				this.getObj('img_code').src='images/faux.png';
				this.getObj('img_code').alt='faux';
				document.images.cryptogram.src='js/cryptographe/cryptographp.php?cfg=0&1&'+Math.round(Math.random(0)*1000)+1;
			}else if(texte==1){
				this.getObj('img_code').src='images/vrai.png';
				this.getObj('img_code').alt='vrai';
			}
			this.getObj('img_code').style.display='inline';
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								DOM:element														//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		search_tag : function(tag,nbr_caractere,id_search){//20 mars 2008
			//tag = ex: img, input, select, td, tr
			//nbr_caractère = ex: 5 (pour le substring)
			//id_search = Nom de l'id qu'on recherche
			array_trouv=new Array();
			var tags=[tag];
			var i=0;
			for(tagCounter=0;tagCounter<tags.length;tagCounter++){
				var inputs=document.getElementsByTagName(tags[tagCounter]);
				for(var no=0;no<inputs.length;no++){
					if(inputs[no].id.substring(0,nbr_caractere)==id_search){
						array_trouv[i]=inputs[no].id;
						i++;
					}				
				}
			}
			return array_trouv;
		},
		
		del_node : function(tag_name,node_source,node_id_delete){//20 mars 2008
			//tag_name = Nom de la node à supprimer (ex: img, input, select, td, tr)
			//node_source = id du conteneur
			//node_id_delete = id de la node à suppimer
			var tabtr=this.getObj(node_source).getElementsByTagName(tag_name);
			for(i=0;i<tabtr.length;i++){
				if(tabtr[i].id==node_id_delete){
					tabtr[i].parentNode.removeChild(tabtr[i]);
				}
			}
		},
		
		checky : function(){//20 mars 2008
			var array_check=this.search_tag('input',6,'check_');
			for(var i=0;i<array_check.length;i++){
				var element=this.getObj(array_check[i]);
				if(element.type=="checkbox"){
					if(element.checked){
						element.checked=false;
					}else{
						element.checked=true;
					}
				}
			}
		},
		
		loadScript : function(scriptURL){
			var scriptElem=document.createElement('script');
			scriptElem.setAttribute('language','javascript');
			scriptElem.setAttribute('src',scriptURL);
			document.body.appendChild(scriptElem);
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Chiffres														//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		arrondi : function (nb,texte){//20 mars 2008
			//nb = nb d'arrondi derrière la virgule
			//texte = nb à arrondir au format string (ex: String(525/2.54))
			sep=texte.split('.');
			return_texte=sep[0];
			if(sep[1]){
				return_texte+='.';
				if(sep[1].substr(nb,1)>=5){//Plus grand
					var tmp=sep[1].substr(0,nb);
					tmp++;
					if(tmp==100){
						return_texte=Number(sep[0])+1;
					}else{
						return_texte+=tmp;
					}
				}else if(sep[1].substr(nb,1)<5){//Plus petit
					if(sep[1].substr(0,nb)==00){
						return_texte=sep[0];
					}else{
						return_texte+=sep[1].substr(0,nb);
					}
				}
			}
			return return_texte;
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Event															//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		frapper_keyboard : function(e){//20 mars 2008
			//e = event
			return e.keyCode;
		},
		
		addEvent : function(elm,evt,func){//20 mars 2008
			//elm = Element (Ex: document)
			//evt = evenement (Ex: load, unload, click, etc...)
			//func = function à rattacher
			if(elm){
				if(elm.addEventListener)elm.addEventListener(evt,func,false);
				else if(window.attachEvent)elm.attachEvent(("on" + evt), func);
			}
		},
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Localisation Objet												//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		getObj : function(objID){//20 mars 2008
			//objID = id de l'objet (ex: this.id)
			if(document.getElementById)return document.getElementById(objID);
			else if(document.all)return document.all[objID];
			else if(document.layers)return document.layers[objID];
		},
		
		getCoordinates : function(elm){//20 mars 2008
			//elm = Control (ex: this)
			var offsetLeft = 0;
			var offsetTop = 0;
			while(elm.offsetParent){
				offsetLeft += elm.offsetLeft;
				offsetTop += elm.offsetTop;
				if(elm.scrollTop > 0){
					offsetTop -= elm.scrollTop;
				}
				elm = elm.offsetParent;
			}
			return [offsetLeft, offsetTop];
		},
		
		/*replace_div : function(elm_id,coords_x,coords_y,ecarts_x,ecart_y,offset_width,offset_height){
			elm_id=this.getObj(elm_id);
			var left_position = offset_width ? coords_x+offset_width+ecarts_x : coords_x+ecarts_x;
			var top_position = offset_height ? coords_y+offset_height+ecarts_y : coords_y+ecarts_y;
			elm_id.style.left=left_position+'px';
			elm_id.style.top=top_position+'px';
		},*/
	
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Effects															//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		fadeIn : function(id,fadeInSpeed,opacity){//20 mars 2008
			//id = id du control
			//fadeInSpeed = Vitesse du fade-in (Ex: 20) - 0 = pas de fade-in
			//opacity = Rien à mettre ici
			var obj=this.getObj(id);
			if(obj){
				if(document.all) obj.style.position = 'absolute';
				if(fadeInSpeed && obj.style.opacity < 1){
					if(!opacity)opacity=obj.style.opacity*100;
					opacity+=1;
					if(obj.style.opacity > 1) obj.style.opacity = 1;
					setOpacity(obj,opacity);
					if(this.options.timer) clearTimeout(this.options.timer);
					this.options.timer = setTimeout("fadeIn('" + id + "','"+fadeInSpeed+"',"+opacity+")", fadeInSpeed);
				}else{
					obj.style.opacity=100;
					this.setOpacity(obj,100);
				}
			}
		},
		
		fadeOut : function(id,fadeInSpeed,opacity){//20 mars 2008
			//id = id du control
			//fadeInSpeed = Vitesse du fade-out (Ex: 20) - 0 = pas de fade-out
			//opacity = Rien à mettre ici
			var obj=this.getObj(id);
			if(obj){
				if(document.all) obj.style.position = 'absolute';
				if(fadeInSpeed && obj.style.opacity > 0){
					if(!opacity)opacity=(obj.style.opacity*100);
					opacity-=1;
					setOpacity(obj,opacity);
					if(this.options.timer) clearTimeout(this.options.timer);
					this.options.timer = setTimeout("fadeOut('" + id + "','"+fadeInSpeed+"',"+opacity+")", fadeInSpeed);
				}else{
					obj.style.opacity = 0;
					this.setOpacity(obj, 0);
				}
			}
		},
	
		setOpacity : function(obj, opacity){//20 mars 2008
			//obj = object (Ex: document.getElementById('pp'))
			//opacity = Quantité d'opacité à mettre (Ex: 80)
			if(obj && !document.layers){
				obj.style.opacity = opacity / 100;
				obj.style.MozOpacity = opacity / 100;
				obj.style.KhtmlOpacity = opacity / 100;
				obj.style.filter = 'alpha(opacity=' + opacity + ')';
			}
		},
		
	//////////////////////////////////////////////////////////////////////////////////////////////////
	//								Système															//
	//////////////////////////////////////////////////////////////////////////////////////////////////
		search_navigator : function(systeme){//20 mars 2008
			//systeme = safari, opera, msie, mozilla
			return eval("jQuery.browser."+systeme);
			/*browserName = navigator.appName;
			browserVer = parseInt(navigator.appVersion);
			userAgent = navigator.userAgent;
			start = userAgent.indexOf("(");
			end = userAgent.indexOf(";");
			platform= userAgent.substring(start +1,end);
			
			if(browserName == "Netscape" && browserVer >= 3) version = "n3";
			else version = "n2";
			if(browserName == "Microsoft Internet Explorer" && browserVer >= 4) version = "n3";*/
		}
};

javascript.addEvent(window, "load", function(){javascript.init();});