/*
 Ce fichier est la liste des fonctions javascript communes à plusieurs pages et ne nécessitants aucun appel à des constantes.
*/

var win= null;

function NewWindow(mypage,myname,w,h,scroll){

  var winl = (screen.width-w)/2;

  var wint = (screen.height-h)/2;

  var settings ='height='+h+',';

      settings +='width='+w+',';

      settings +='scrollbars='+scroll+',';

      settings +='resizable=yes';

  win=window.open(mypage,"",settings);
  win.moveTo(winl,wint);

  if (parseInt(navigator.appVersion) >= 4){win.focus();}

}


/****************************************/
/*		Gestion des interface de menus	*/
/****************************************/

// Fonction qui permet de changer l'item du menu quand on passe la souris dessus 
function menu_over(menu) {
    menu.style.background='url(images/bouton_clair.gif) no-repeat center center';
    menu.style.color='#1674ac';
}

// Fonction qui permet de remmetre l'item du menu dans sa forme initiale quand la souris sort de cet item.
function menu_out(menu) {
    menu.style.background='url(images/bouton.gif) no-repeat center center';
    menu.style.color='#FFF';
}

// Fonction qui permet de changer l'item du sous-menu quand on passe la souris dessus 
function sous_menu_over(menu) {
    menu.style.color='#1674ac';
}

// Fonction qui permet de remmetre l'item du sous-menu dans sa forme initiale quand la souris sort de cet item.
function sous_menu_out(menu) {
    menu.style.color='#FFF';
}

/****************************************/
/*		Gestion des fonctions communes	*/
/****************************************/

// Fonction qui permet de transformer numéro de téléphone 0000000000 en 00 00 00 00 00
function transform_telephone (id) {	
	
	var list = document.getElementById(id).value;
	var newText = '';
	
	if (list.length == 10) {
		newText = list.substr(0, 2);
		newText += ' ';
		newText += list.substr(2, 2);
		newText += ' ';
		newText += list.substr(4, 2);
		newText += ' ';
		newText += list.substr(6, 2);
		newText += ' ';
		newText += list.substr(8, 2);		
		
		document.getElementById(id).value = newText;
	}			
}

// Fonction qui permet de transformer numéro de sécurité social 0000000000000/00 en 0 00 00 00 000 000/00
function transform_num_ss (id) {	
	
	var list = document.getElementById(id).value;
	var newText = '';
	
	if (list.length == 15) {
		newText = list.substr(0, 1);
		newText += ' ';
		newText += list.substr(1, 2);
		newText += ' ';
		newText += list.substr(3, 2);
		newText += ' ';
		newText += list.substr(5, 2);
		newText += ' ';
		newText += list.substr(7, 3);		
		newText += ' ';
		newText += list.substr(10, 3);		
		newText += '/';
		newText += list.substr(13, 2);		
		document.getElementById(id).value = newText;
	}			
}

// Fonction qui permet de transformer un texte en capitalize (la 1ere lettre en majuscule)
function transform_capitalize (id) {	
	
	var list = document.getElementById(id).value.split(" ");
	var newText = "";
	
	for (i=0; i<list.length; i++) {
		text = list[i];
		first = text.substr(0, 1);
		next = text.substr(1, text.length-1);	
		
		newText += first.toUpperCase() + next.toLowerCase();
		if ((i+1)<list.length)
			newText += " ";
	}
		
	document.getElementById(id).value = newText;
}

// Fonction qui permet de transformer un texte en capitalize (la 1ere lettre en majuscule)
function transform_majuscule (id) {	
	
	var text = document.getElementById(id).value;		
	document.getElementById(id).value = text.toUpperCase();
}

// Fonction qui permet de autocompléter la date
function autocomplete_date (id) {	
	
	var re1 = /^[0-9]$/; 								// tester pour le cas j -> jj/mm/aaaa
	var re2 = /^[0-3][0-9]$/; 							// tester pour le cas jj -> jj/mm/aaaa
	var re3 = /^[0-3][0-9][0-1][0-9]$/; 				// tester pour le cas jjmm -> jj/mm/aaaa
	var re4 = /^[0-3][0-9][0-1][0-9][0-9][0-9]$/; 		// tester pour le cas jjmmaa -> jj/mm/aaaa
	var re5 = /^[0-3][0-9][-\/][0-1][0-9][-\/][0-9][0-9]$/; 		// tester pour le cas jj/mm/aa ou jj-mm-aa -> jj/mm/aaaa
	var valeur = document.getElementById(id).value;
	var today = new Date();
	
	if (re1.test(valeur)) {
		document.getElementById(id).value = "0" + valeur + "/" + (today.getMonth()+1) + "/" + today.getFullYear();
	} else if (re2.test(valeur)) { 
		document.getElementById(id).value = valeur + "/" + (today.getMonth()+1) + "/" + today.getFullYear();
	} else if (re3.test(valeur)) { 
		document.getElementById(id).value = valeur.substr(0, 2) + "/" + valeur.substr(2, 2) + "/" + today.getFullYear();
	} else if (re4.test(valeur)) { 
		if (parseInt(valeur.substr(4, 2), 10) < 20)
			document.getElementById(id).value = valeur.substr(0, 2) + "/" + valeur.substr(2, 2) + "/" + (parseInt(valeur.substr(4, 2), 10)+2000);
		else
			document.getElementById(id).value = valeur.substr(0, 2) + "/" + valeur.substr(2, 2) + "/" + (parseInt(valeur.substr(4, 2), 10)+1900);
	} else if (re5.test(valeur)) { 
		if (parseInt(valeur.substr(6, 2), 10) < 20)
			document.getElementById(id).value = valeur.substr(0, 2) + "/" + valeur.substr(3, 2) + "/" + (parseInt(valeur.substr(6, 2), 10)+2000);
		else
			document.getElementById(id).value = valeur.substr(0, 2) + "/" + valeur.substr(3, 2) + "/" + (parseInt(valeur.substr(6, 2), 10)+1900);

	}
}

// Fonction qui permet de tester si un texte est un email valid.
function is_email_valid (email) {
	
	if (email.length <= 0)
		return false;
	else {
		var regExp = /^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_-]+)(([.][a-zA-Z]+)+)$/;	
		return regExp.test(email);
	}
		
	return true;
}

// Fonction qui permet de tester si un texte est une date valide.
function is_date_valid (aDate) {
	
	if (aDate.length <= 0)
		return false;
	else {
		var regExp = /^\d{2}\/+\d{2}\/+\d{4}$/;
		return regExp.test(aDate);
	}
		
	return true;
}

// Fonction qui permet de tester si un texte est une heure valide (HH:MM).
function is_heure_valid (aHeure) {
	
	if (aHeure.length <= 0)
		return false;
	else {
		var regExp = /^\d{2}:\d{2}$/;
		return regExp.test(aHeure);
	}
		
	return true;
}

// Fonction qui permet de calculer un age à partir d'une date
function calculate_age (aDate) {

	var born = new Date(aDate);
	var now = new Date();
	var years = Math.floor((now.getTime() - born.getTime()) / (365 * 24 * 60 * 60 * 1000));
	
	return years;
}

function verifier_email (id) {

	var email = document.getElementById(id).value;
	
	if (email.length > 0) {
		if (!is_email_valid(email)) {
			alert("Adresse email invalide !");			
			document.getElementById(id).focus();
			return false;
		}
	}
	return true;
}


function GetId(id) {
	return document.getElementById(id);
}

var i=false; // La variable i nous dit si la bulle est visible ou non

function move(e) {

  	if(i) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
		if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
			GetId("curseur").style.left=e.pageX + 5+"px";
			GetId("curseur").style.top=e.pageY + 10+"px";
		}
		else { // Modif proposé par TeDeum, merci à lui

			if(document.documentElement.clientWidth>0) {
				GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px";
				GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px";
			}
			else {
				GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px";
				GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px";
			}
		}
  	}
}

function montre(text) {

	  if(i==false) {
		  			
		  GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
		  GetId("curseur").innerHTML = text; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
		  i=true;
	  }
}

function cache() {
	if(i==true) {
		GetId("curseur").style.visibility="hidden"; // Si la bulle etais visible on la cache
		i=false;
	}
}

function checkFileType (myfield) {
	
	var re_text = /\.pdf|\.doc|\.xls|\.ppt|\.pps|\.jpg|\.txt/i;
    var filename = myfield.value;

    /* Checking file type */
    if (filename.search(re_text) == -1)
    {
        alert("Le fichier n'est pas dans le format PDF, Word, Excel, PowerPoint, JPEG ou TXT !");
        myfield.value = "";
		myfield.focus();
        return false;
    }
	
	return true;
}

function file_name_only(str) {
	var slash = '/'
	if (str.match(/\\/)) {
		  slash = '\\'
	}
	sURL = str.substring(str.lastIndexOf(slash) + 1, str.lastIndexOf('.'))
	return sURL
}

function file_name_ext(str) {
	var slash = '/'
	if (str.match(/\\/)) {
		  slash = '\\'
	}
	sURL = str.substring(str.lastIndexOf(slash) + 1)
	return sURL
}

function file_ext(str) {
	sURL = str.substring(str.length - 3)
	return sURL
}

//verifier que le sDate est combiné de nombre
function isInteger(s)
{
	var new_msg = true; 
	var inputStr = s.toString();

	for (var i = 0; i < inputStr.length; i++)
	{
		var oneChar = inputStr.charAt(i);	
		if (oneChar < "0" || oneChar > "9")
			new_msg = false;
	}
	
	return new_msg ;
}
