// VAR globales
var explorateur	= "";
if(document.getElementById && document.all) 	explorateur	= "ie5";
if(!document.all && document.getElementById)	explorateur	= "ns6";

// FONCTIONS

function round_n (nombre, nbChiffres) { 
	return Math.round(nombre*Math.pow(10,nbChiffres))/Math.pow(10,nbChiffres); 
}
//---Transforme un nombre en nombre en X digits avec des 0 devant
function toXdigits(myIntegerNumber,X) {
	myIntegerNumber		= parseInt(myIntegerNumber,10);
	myIntegerNumber		+= '';
	myNewIntegerNumber	= '';
	for(Xi=myIntegerNumber.length; Xi<X; Xi++) myNewIntegerNumber += '0';
	return myNewIntegerNumber += myIntegerNumber;
}

function checkEmail(email) {
  var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
  if(reg.test(email)==true) return true;
  else return false;
}

function displayPostIt(elementId) {
	setDisplay(elementId,'block')
}

function hidePostIt(elementId) {
	setDisplay(elementId,'none');
}

//####################		FONCTION SUR BBCODE

// Création du BBCode
function storeCaret(selec,name,formulaire) {
	if(!name) name = 'contenu' ; 
	if(!formulaire) formulaire = 'Formulaire' ; 
	var regexp = new RegExp("[\r]","gi");
	var oField = document.forms[formulaire].elements[name];
	
	if (explorateur == "ns6") { 	// Si on est sur Mozilla		

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else {	// Si on est sur IE		
		var str = document.selection.createRange().text;

		if (str.length>0) {
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
			sel.collapse();
			sel.select();
		}
		else {
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
			//placer(document.forms['Formulaire'].elements['contenu'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();
		}
	}
}

function storeCaret_lien(selec,name,formulaire) {
	if(!name) name = 'contenu' ; 
	if(!formulaire) formulaire = 'Formulaire' ; 
	var url = prompt("Veuillez entrer l'url du lien.\nExemple : http://www.google.fr",'http://');
	var oField = document.forms[formulaire].elements[name];
	
	if(url) {
		var regexp = new RegExp("[\r]","gi");
		if (explorateur == "ns6") { 	// Si on est sur Mozilla
		
			objectValue = oField.value;
	
			deb = oField.selectionStart;
			fin = oField.selectionEnd;
	
			objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
			objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
			objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
	
		//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			if(objectSelected	== "") objectSelected	= url;
			oField.value = objectValueDeb + "[" + selec + "='"+url+"']" + objectSelected + "[/" + selec + "]" + objectValueFin;
			oField.selectionStart = strlen(objectValueDeb);
			oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "='"+url+"']" + objectSelected + "[/" + selec + "]");
			oField.focus();
			oField.setSelectionRange(
				objectValueDeb.length + selec.length + 5,
				objectValueDeb.length + selec.length + 5);
		}
		else { // Si on est sur IE
			
			var str = document.selection.createRange().text;
	
			if (str.length>0) {
			// Si on a selectionné du texte
				var sel = document.selection.createRange();
				sel.text = "[" + selec + "='"+url+"']" + str + "[/" + selec + "]";
				sel.collapse();
				sel.select();
			}
			else {
				oField.focus(oField.caretPos);
			//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
				oField.focus(oField.value.length);
				oField.caretPos = document.selection.createRange().duplicate();
				
				var bidon = "%~%";
				var orig = oField.value;
				oField.caretPos.text = bidon;
				var i = oField.value.search(bidon);
				oField.value = orig.substr(0,i) + "[" + selec + "='"+url+"']"+url+"[/" + selec + "]" + orig.substr(i, oField.value.length);
				var r = 0;
				for(n = 0; n < i; n++)
				{if(regexp.test(oField.value.substr(n,5)) == true){r++;}};
				pos = i + 5 + selec.length - r;
				//placer(document.forms['Formulaire'].elements['contenu'], pos);
				var r = oField.createTextRange();
				r.moveStart('character', pos);
				r.collapse();
				r.select();	
			}
		}
	}
}

function storeCaret_img(selec,name,formulaire) {
	if(!name) name = 'contenu' ; 
	if(!formulaire) formulaire = 'Formulaire' ; 
	var regexp = new RegExp("[\r]","gi");
	var oField = document.forms[formulaire].elements[name];

	if (explorateur == "ns6") { 	// Si on est sur Mozilla		

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "" + selec + "" + objectSelected + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "" + selec + "" + objectSelected);
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length,
			objectValueDeb.length + selec.length);
	}
	else {	// Si on est sur IE

		var str = document.selection.createRange().text;

		if (str.length>0) {
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "" + selec + "" + str;
			sel.collapse();
			sel.select();
		}
		else {
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "" + selec + "" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
			//placer(document.forms['Formulaire'].elements['contenu'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}

function popupParam(page, popupName, params) {
	if(!params) params				= 'width=670,height=650,top=0,left=0,resizable=no,scrollbars=yes';
	if(!popupName) popupName	= 'popup';
	// on ouvre dans une fenêtre le fichier passé en paramètre. Cette ouverture peut être améliorée en passant d'autres paramètres que la taille et la position de la fenêtre.
	wchoix=window.open(page, popupName, params);
}


//####################		FONCTION SUR LES DIV

//---fonction qui ecrit dans les div
function writeDiv(div_id,contenu) {
	 document.getElementById(div_id).innerHTML = contenu;
}
//--Supprime un DIV
function removeDiv(div_id) {
	document.getElementById(div_id).parentNode.removeChild(document.getElementById(div_id));
}
//---test si le div est affiché ou non
function isDisplayed(div_id) {
	if(document.getElementById(div_id).style.display == "none") return false;
	return true;
}
//---affiche ou cache le div
function setDisplay(div_id,displaying) {	
	document.getElementById(div_id).style.display	= displaying;
}
//---Change image
function swapPicture(img_id,imageLink) {	
	document.getElementById(img_id).src	= imageLink;
}
//####################		DEBUG MODE
//---affiche les attributs d'un noeud
function afficheAttribut(obj) {
	data=null;
	for(prop in obj) {
		if(prop!="outerText" && prop!="innerText" && prop!="innerHTML" && prop!="outerHTML") data+=prop+" = "+obj[prop]+" \t|<br>";
	}
	writeDiv("debugMode",data);
}
function debug(string) {
	writeDiv("debugMode",string);
}
