/* $Id: common.js,v 1.25 2008/04/07 13:03:40 alex Exp $ */
function connection(form) {
	if (form.newLogin.value == "") {
		alert(common_saisissezLogin);
		form.newLogin.focus();
		return false;
	}
	if (form.newPassword.value == "") {
		alert(common_saisissezPassword);
		form.newPassword.focus();
		return false;
	}
	return true;
}
function selectAll (select) {
	for (var i=0; i<select.length; i++) {
		if (select.options[i].value != "") {
			select.options[i].selected = true;
		}
	}
}
function up (select) {
	var k = select.selectedIndex
	if (k > 0) {
		var optionDessus = new Option(select.options[k-1].text, select.options[k-1].value);
		select.options[k-1] = new Option(select.options[k].text, select.options[k].value);
		select.options[k] = optionDessus;
		select.options[k-1].selected = 1;
	}
}
function down (select) {
	var k = select.selectedIndex
	if (k >= 0 && k < (select.length - 1)) {
		var optionDessous = new Option(select.options[k+1].text, select.options[k+1].value);
		select.options[k+1] = new Option(select.options[k].text, select.options[k].value);
		select.options[k] = optionDessous;
		select.options[k+1].selected = 1;
	}
}
function select2Select (selectA,selectB,order,doubleClic) {
	if (doubleClic && top.optionSelected != selectA.value) {
		top.optionSelected = selectA.value;
		return true;
	}
	// Création du tableau comprenant les valeurs de B
	var optionB = new Array();
	var b=0;
	for (var i=0;i<selectB.length;i++) {
		// Sauvegarde des elements de B
		optionB[b] = new Array(selectB.options[i].value,selectB.options[i].text);
		b++;
	}
	// Mainteanant on boucle sur A pour voir les elements a ajouter dans B
	var optionA = new Array();
	var a=0;
	for (var i=0;i<selectA.length;i++) {
		if (selectA.options[i].selected == true) {
			var oneSelected = true;
			// Element a ajouter dans B
			optionB[b] = new Array(selectA.options[i].value,selectA.options[i].text,1);
			b++;
		} else {
			// Element a laisser dans A
			optionA[a] = new Array(selectA.options[i].value,selectA.options[i].text);
			a++;
		}
	}
	// Si il y a eu au moins un element de A selectionné
	if (oneSelected == true) {
		// On classe le tableau B si classement désiré
		if (order == "order" && b > 0 && b < 256) {
			sort (optionB)
		}
		// On reconstruit A
		selectA.length = 0;
		for (var i=0;i<optionA.length;i++) {
			selectA.options[i] = new Option(optionA[i][1],optionA[i][0]);
		}
		// On reconstruit B
		selectB.length = 0;
		for (var i=0;i<optionB.length;i++) {
			selectB.options[i] = new Option(optionB[i][1],optionB[i][0]);
			if (optionB[i][2] == 1) {
				selectB.options[i].selected = true;
			}
		}
	}
}
function sort (tab) {
	var nb = tab.length-1;
	for (var i=0; i<=nb; i++) {
		for (var j=0; j<(nb-i); j++) {
			var strA = tab[j][1].toLowerCase();
			var strB = tab[j+1][1].toLowerCase();
			var c = 0;
			while (strA.charCodeAt(c) == strB.charCodeAt(c)) {
				c++;
			}
			if (strA.charCodeAt(c) > strB.charCodeAt(c)) {
				var tmp = tab[j+1];
				tab[j+1] = tab[j];
				tab[j] = tmp;
			}
		}
	}
	return tab;
}
function windowOpen (url,nameWindow,largeur,hauteur) {
	// Détermination des tailles maximum
	var maxHeight = screen.height * 0.95;
	var maxWidth = screen.width;
	// Vérification que le taille ne soit pas trop grosse
	if (largeur > maxWidth) largeur = maxWidth;
	if (hauteur > maxHeight) hauteur = maxHeight;
	// Calcul de la position
	var top = (screen.height - hauteur) / 4;
	var left = (screen.width - largeur) / 2;
	// Création de la nouvelle fenètre
	window.open(url,nameWindow,"width=" + largeur + ",height=" + hauteur + ",top=" + top + ",left=" + left + ",menubar=0,location=0,directories=0,status=0,copyhistory=0,scrollbars=1,resizable=1");
}
function selectOnglet(form,onglet) {
	form.onglet.value = onglet;
	form.submit();	
}
function addOption(select,text,value) {
	if (!isOptionInSelect(select,value,text)) {
		select.options[select.length] = new Option(value,text);
	}
}
function delOption(select) {
	// Création du tableau comprenant les valeurs du select
	var option = new Array();
	var a=0;
	for (var i=0;i<select.length;i++) {
		if (select.options[i].selected != true) {
			option[a] = new Array(select.options[i].value,select.options[i].text,1);
			a++;
		}
	}
	// On reconstruit le select
	select.length = 0;
	for (var i=0;i<option.length;i++) {
		select.options[i] = new Option(option[i][1],option[i][0]);
	}
}
function getBc () {
	return Math.round((Math.random()*100) * (Math.random()*100) * (Math.random()*100) * (Math.random()*100));
}
function isOptionInSelect(select,value,text) {
	for (var i=0;i<select.length;i++) {
		if (select.options[i].value == value && select.options[i].text == text) {
			return true;	
		}
	}
	return false;	
}
function isEmailValid(adresse) {
	var verif = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]{2,}[.][a-zA-Z]{2,3}$/
	if (verif.exec(adresse) == null) {
		return false;		
	}
	return true;
}
function ucFirst(str) {
	var firstLetter = str.substr(0,1).toUpperCase()
	return str.substr(0,1).toUpperCase() + str.substr(1,str.length);
}