var NUM = '0123456789';
var ALPHA = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var ALPHABIS = 'âäàåéêëèïîìôöòüûùÿÄÅÉæÆÖÜÇç';
var SP = ' ';
var OTHER1 = '-\'&';
var OTHER2 = '_$&@"€';
var OTHER3 = '~{([|`\^)]}=+*/,?;.:!§%µ¨£¤<>²_$&@"-\'';
var OTHER4 = '#';

var OTHER5 = '-.:_\\';

/****************************************************************************************************
																																					Librairie JAVASCRIPT

	Version 1.0 (05/10/2000) :
	function isComponentExist(pComponent)
	function isInputValueEmpty(pFieldName)
	
	Version 1.1 (13/10/2000) :
	function ckeckFieldsPriority()
	
	Version 1.2 (26/10/2000) :
	function isFieldValueAllowed(pFieldName, pSetCharAllowed)
	function isFieldValueValidWithMask(pFieldName, pMask)
	
****************************************************************************************************/


/****************************************************************************************************
	function isComponentExist(pComponent)
	Cette fonction permet de tester l'existance d'un composant d'un formulaire.
	Elle renvoie un booléen "true" si le composant existe et "false" sinon
	En entrée : pComponent = le nom complet d'un comosant (ex: document.monForm.monChamp)
	En sortie : "true" si le composant existe et "false" sinon

	Version				Date								Auteur					Navigateurs										Description des modifications
	---------		 ----------------		-----------			--------------------------		--------------------------------------------------
		1.0 					29/09/2000 			OLD							IE4+ et Netscape3+				Code original
*/
function isComponentExist(pComponent) {
	return (typeof(pComponent) != 'undefined');
}



/****************************************************************************************************
	function isInputValueEmpty(pFieldName)
	Cette fonction permet de tester si la valeur d'un champ de type INPUT est vide ou non
	Elle renvoie un booléen "true" si le champ n'a pas de valeur (vide) et "false" sinon
	En entrée : pFieldName = le nom complet d'un champ (ex: document.monForm.monChamp)
	En sortie : "true" si le champ n'a pas de valeur et "false" sinon

	Version				Date								Auteur					Navigateurs										Description des modifications
	---------		 ----------------		-----------			--------------------------		--------------------------------------------------
		1.0 					29/09/2000 			OLD							IE4+ et Netscape3+				Code original
*/
function isInputValueEmpty(pFieldName) {
	if ((typeof(pFieldName) != 'undefined') && (typeof(pFieldName.value) != 'undefined'))
		return (pFieldName.value == '');
	else
		return null;
}



/****************************************************************************************************
	function ckeckFieldsPriority()
	Cette fonction permet de tester l'ordre de priorité de champs d'un formulaire
	Elle renvoie un booléen "true" si l'ordre de saisie des champs est respecté et "false" sinon
	En entrée : Un nombre de paramètres variable mais devant respecter la syntaxe suivante :
		- les paramètres d'indice pair doivent correspondre à un champ de saisie (ex: document.monForm.chp1)
		- les paramètres d'indice impair doivent correspondre à un entier qui définit la propriété du champ de saisie (ex: 1)
			La priorité la plus forte est 0, 1 étant moins prioritaire ...
			Si des champs ont la même priorité et que l'un d'entre eux est renseigné, les autres doivent l'être aussi
	En sortie : "true" si l'ordre de saisie des champs est respecté et "false" sinon
	
	Exemple d'appel : ckeckFieldsPriority(document.monForm.chp1,1,document.monForm.chp2,1,document.monForm.chp3,2)
	
	Version				Date								Auteur					Navigateurs										Description des modifications
	---------		 ----------------		-----------			--------------------------		--------------------------------------------------
		1.0 					13/10/2000 			OLD							IE4+ et Netscape3+				Code original
*/
function ckeckFieldsPriority() {
	var vNbArgs = arguments.length;
	var vIsArgsCorrect = false;
	var vCheckOk = false;
	var vMessage = '';

	if ((vNbArgs > 0) && (vNbArgs % 2 == 0)) { // Il y a un nombre pair de paramètres passés à cette fonction
		var vIsArgsCorrect = true;
		for (var i = 0; i < vNbArgs; i = i + 2) { // vérification des types des paramètres
			if ((typeof(arguments[i]) != 'object') || (typeof(arguments[i].value) != 'string') || (typeof(arguments[i + 1]) != 'number'))
				vIsArgsCorrect = false;
		}
		
		if (vIsArgsCorrect) { // Vérification des propriétés de saisie des champs
			vCheckOk = true;
			var vCpt1 = 0;
			while ((vCpt1 < vNbArgs) && (vCheckOk)) {
				var vCpt2 = vCpt1 + 2;
				while ((vCpt2 < vNbArgs) && (vCheckOk)) {
					if ((arguments[vCpt1].value == '') && (arguments[vCpt2].value != '') && (arguments[vCpt2 + 1] >= arguments[vCpt1 + 1])) {
						vMessage = 'Le champ ' + arguments[vCpt1].name + ' doit être saisi';
						vCheckOk = false;
					}
					else
					if ((arguments[vCpt1].value != '') && (arguments[vCpt2].value == '') && (arguments[vCpt2 + 1] <= arguments[vCpt1 + 1])) {
						vMessage = 'Le champ ' + arguments[vCpt2].name + ' doit être saisi';
						vCheckOk = false;
					}
					vCpt2 = vCpt2 + 2;
				}
				vCpt1 = vCpt1 + 2;
			}
		}
	}

	if (!vIsArgsCorrect) alert('Définition incorrecte de la fonction \'ckeckFieldsPriority()\'');
	if (vMessage != '') alert(vMessage);
	
	return vCheckOk;
}



/****************************************************************************************************
	function isFieldValueAllowed(pFieldName, pSetCharAllowed)
	Cette fonction permet de tester que la valeur d'un champ pFieldName ne contient bien que des caractères définis 
	dans pSetCharAllowed.
	Elle renvoie un booléen "true" si la valeur du champ ne contient que des caractères contenu dans pSetCharAllowed et "false" sinon
	En entrée : pFieldName = le nom complet d'un champ (ex: document.monForm.monChamp)
									 pSetCharAllowed = une chaine de caractères qui définit les caractères autorisés pour la valeur du champ 
									 (ex: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$&#@')
	En sortie : "true" si le champ ne contient que des caractères définis dans pSetCharAllowed et "false" sinon
	
	Version				Date								Auteur					Navigateurs										Description des modifications
	---------		 ----------------		-----------			--------------------------		--------------------------------------------------
		1.0 					26/10/2000 			OLD							IE4+ et Netscape3+				Code original
*/
function isFieldValueAllowed(pFieldName, pSetCharAllowed) {
	var vCheckOk = false;
	
	if ((typeof(pFieldName) != 'undefined') && (typeof(pFieldName.value) != 'undefined')) {
		vCheckOk = true;
		
		if (typeof(pSetCharAllowed) == 'string') {
			var vCpt = 0;
			while ((vCheckOk) && (vCpt < pFieldName.value.length)) {
				vCheckOk = (pSetCharAllowed.indexOf(pFieldName.value.charAt(vCpt)) > -1);
				vCpt++;
			}
		}
	}

	return vCheckOk;
}



/****************************************************************************************************
	isFieldValueValidWithMask(pFieldName, pMask)
	Cette fonction permet de tester que la valeur d'un champ pFieldName est correctement formatée suivant le masque pMask
	Elle renvoie un booléen "true" si la valeur du champ est correctement formatée et "false" sinon
	En entrée : pFieldName = le nom complet d'un champ (ex: document.monForm.monChamp)
									 pMask = une chaine de caractères qui définit le formatage de la valeur du champ
									 (ex: '(###) ###-####')
	En sortie : "true" si la valeur du champ est correctement formatée et "false" sinon

	Les caractères de masque reconnus :
	# : le caractère doit être un nombre
	? : le caractère doit être une lettre
	! : le caractère doit être un nombre ou une lettre
	* : le caractère peut être n'importe quoi
	Il NE FAUT PAS que la valeur de votre champ pFieldName contiennent les caractères #?!
	
	Version				Date								Auteur					Navigateurs										Description des modifications
	---------		 ----------------		-----------			--------------------------		--------------------------------------------------
		1.0 					26/10/2000 			OLD							IE4+ et Netscape3+				Code original
*/
function isFieldValueValidWithMask(pFieldName, pMask) {
	if ((typeof(pFieldName) != 'undefined') && (typeof(pFieldName.value) != 'undefined') && (pFieldName.value.length > 0) 
		&& (typeof(pMask) == 'string') && (pMask.length > 0) && (pFieldName.value.length == pMask.length)) {

		for (vCpt = 0; vCpt < pFieldName.value.length; vCpt++) {
			vFieldValueChar = pFieldName.value.charAt(vCpt);
			vMaskChar = pMask.charAt(vCpt);
			
			if (vMaskChar == '#') { // Cas d'un chiffre
				vRefString = '0123456789';
				if (vRefString.indexOf(vFieldValueChar.toLowerCase()) == -1) 
					return false;
			}
			else 
			if (vMaskChar == '?') { // Cas d'une lettre
				vRefString = 'abcdefghijklmnopqrstuvwxyz';
				if (vRefString.indexOf(vFieldValueChar.toLowerCase()) == -1) 
					return false;
			}
			else 
			if (vMaskChar == '!') { // Cas d'une lettre ou d'un chiffre
				vRefString = '0123456789abcdefghijklmnopqrstuvwxyz';
				if (vRefString.indexOf(vFieldValueChar.toLowerCase()) == -1) 
					return false;
			}
			else 
			if (vMaskChar == '*') { // Cas de n'importe quel caractère
			}
			else
			if (vMaskChar != vFieldValueChar) { // Cas d'un caractère imposé par le masque
				return false;
			}
		}
		return true;
	}
	else
		return false;
}

function isChampValid(pField, pFieldLabel, pSetCharAllowed, pFieldLengthMin, pFieldLengthMax, isFieldMandatory) {
	var vResult = true;
	var vMessage = '';
	var vFieldValue = pField.value;
	var vFieldLength = pField.value.length;
	if (vFieldLength > 0) {
		// Verification des caracteres
		var vCpt = 0;
		while ((vResult) && (vCpt < vFieldLength)) {
			vResult = (pSetCharAllowed.indexOf(vFieldValue.charAt(vCpt)) > -1);

			// Gestion des caractères spéciaux 
			if ((!vResult) && (escape(vFieldValue.charAt(vCpt)).indexOf('%') == 0)) {
				// Autorisation des retours chariots (nécessaire pour les TEXTAREA)
				if ((vFieldValue.charCodeAt(vCpt) == 10) || (vFieldValue.charCodeAt(vCpt) == 13)) {
					vResult = true;
				}
			}
			vCpt++;
		}

		if (!vResult) {
			vMessage += "La valeur du champ '" + pFieldLabel + "' est incorrecte.\n";
		}
		else {
			if (pFieldLengthMin > 0) { // Verification de nombre de caracteres minimum
				if (vFieldLength < pFieldLengthMin) {
					vMessage +="La taille minimum du champ '" + pFieldLabel + "' est de " + pFieldLengthMin + " caractères.\n"; 
					vResult = false;
				}
			}
			if (vFieldLength > pFieldLengthMax) { // Verification de nombre de caracteres maximum
				vMessage +="La taille maximum du champ '" + pFieldLabel + "' est de " + pFieldLengthMax + " caractères.\n"; 
				vResult = false;
			}
		}
	}
	else { // if (vFieldValue == 0)
		if (isFieldMandatory) { // Verification de la saisie obligatoire
			vMessage += "Le champ '" + pFieldLabel + "' est obligatoire.\n";
			vResult = false;
		}
	}
	
	if (!vResult) {
		alert(vMessage);
		if(isComponentExist(pField.enabled)){
			pField.focus();
		}
		
	}
	
	return vResult;
}
/**********************************************************************************************
	Gestion de l'envoi des formulaires
***********************************************************************************************/
function submitForm(pForm, pVerifOK) {
	if (pVerifOK) pForm.submit();
}
/*for(i=0;i<pForm["SEGMENTS[]"].length;i++){
	if(pForm["SEGMENTS[]"].options[0].selected){
		cpt=true;
		i=pForm["SEGMENTS[]"].length+1;
	}
}*/

/**********************************************************************************************
	Renvoie le nom du file
***********************************************************************************************/
function getFile(pValue) {
	var file="";
	var pos="";
	if(pValue!=''){
		pos = pValue.lastIndexOf("\\");
		file = pValue.substring(pos+1,pValue.length);
	}
	return file;
}

function compareElement(chaine,file){
   	var f=false;
	var j=0;
	for(var i = 0; i < file.length; i++)
	{
		if(file[i]!=''){	
			if(chaine == file[i]) {
				j++;
			}
		}
	}
	if(j > 1){
		f=true;
	}
	return f;
}

function verifType(value,type,num){
	var empty_fields="";
	pos = value.lastIndexOf(".");
	ext = value.substring(pos,value.length);
	ext = ext.toLowerCase();
	var name ="";
	if(num==1){
		pos_name = value.lastIndexOf("\\");
		name = value.substring(pos_name+1,value.length);
	}else{
		name =value;
	}
	if(value != ""){
		if(type==1){
			//Advertising
			switch(ext){
					case ".zip":
					case ".jpg":
					case ".pdf":
					case ".gif":
					case ".bmp":
					case ".ppt":
					case ".mpg":
					case ".mpeg":
					case ".jpeg":
					case ".wav":
					case ".wmv":
					case ".rm":
					case ".rv":
					case ".mov":
					case ".asf":
					case ".asx":
					case ".avi":
					case ".cda":
					case ".doc":
					case ".mp3":
					case ".mp4":
					case ".tif":
					case ".wma":
					break;
					default:
						empty_fields+=name+" : ce type de fichier n'est pas autorisé dans un document de type \"Advertising\".";
						empty_fields+="\n Les formats des documents autorisés sont : zip, jpg, pdf, gif, bmp, ppt, mpg, mpeg, wav, wmv, rm, rv, mov, asf, asx, avi, cda, doc, mp3, mp4, tif, wma.";
						break;
			}
		}else if(type==2){
			switch(ext){
					case ".zip":
					case ".jpg":
					case ".pdf":
					case ".gif":
					case ".bmp":
					case ".ppt":
					case ".doc":
					case ".jpeg":
					case ".tif":
					break;
					default:
						empty_fields+=name+" : ce type de fichier n'est pas autorisé dans un document de type \"Packaging\".";
						empty_fields+="\n Les formats des documents autorisés sont : zip, jpg, pdf, gif, bmp, ppt, doc, jpeg, tif.";
						break;
			}
	 	}else if(type==3){
				//Products sheet
			switch(ext){
						case ".zip":
						case ".xls":
						case ".doc":
						case ".jpg":
						case ".jpeg":
							break;
						default:
							empty_fields+=name+" : ce type de fichier n'est pas autorisé dans un document de type \"Product Concept Sheets\".";
							empty_fields+="\n Les formats des documents autorisés sont : zip, xls, doc, jpg, jpeg.";
							break;
			}
		}
	}
	return empty_fields;
}

/** Formulaire documents côté administration */
function verif_champs(pid){
	var cpt_seg=false;
	var cpt_pay=false;
	var cpt_ann=false;
	var pForm = document.forms.saisie;
	/** Contôle des popups */
	for(var i=0; i<pForm.length; i++) {
		var e = pForm.elements[i];
		if(e.type == "select-multiple"){
			switch(e.name){
				case "SEGMENTS[]":
					if(e.value != "")cpt_seg=true;break;
				case "PAYS[]":
					if(e.value != "")cpt_pay=true;break;
				case "ANNEES[]":
					if(e.value != "")cpt_ann=true;break;
			}
		}
	}
	if(!cpt_seg){ 
		alert('Vous devez obligatoirement sélectionner une ou plusieures valeur dans la liste déroulante \'Segments\'');
		return false;
	}
	if(!cpt_pay){ 
		alert('Vous devez obligatoirement sélectionner une ou plusieures valeur dans la liste déroulante \'Pays\'');
		return false;
	}
	if(!cpt_ann){ 
		alert('Vous devez obligatoirement sélectionner une ou plusieures valeur dans la liste déroulante \'Année\'');
		return false;
	}
	/**Contôle upload*/
	var empty_fields="";
	//Type de document
	var type = getSelectedItemValue(pForm.TYPE);
	if(type==1){
			//Advertising
			for(var i=0; i<pForm.length; i++) {
					var e = pForm.elements[i];
					if(e.type == "file"){
						if(e.value != ""){
							empty_fields = verifType(e.value,type,1);
							if(empty_fields!="") i=pForm.length+1;
							/*pos = e.value.lastIndexOf(".");
							ext = e.value.substring(pos,e.value.length);
							ext = ext.toLowerCase();
							switch(ext){
								case ".zip":
								case ".jpg":
								case ".pdf":
								case ".gif":
								case ".bmp":
								case ".ppt":
								case ".mpg":
								case ".mpeg":
								case ".wav":
								case ".wmv":
								case ".rm":
								case ".rv":
								case ".mov":
								break;
								default:
									empty_fields+="Ce type de fichier n'est pas autorisé !";
									i=pForm.length+1;
								break;
							}*/
						}
					}
			}
	}else if(type==2){
			for(var i=0; i<pForm.length; i++) {
					var e = pForm.elements[i];
					if(e.type == "file"){
						if(e.value != ""){
							empty_fields = verifType(e.value,type,1);
							if(empty_fields!="") i=pForm.length+1;
							
							/*pos = e.value.lastIndexOf(".");
							ext = e.value.substring(pos,e.value.length);
							ext = ext.toLowerCase();
							switch(ext){
								case ".zip":
								case ".jpg":
								case ".pdf":
								case ".gif":
								case ".bmp":
								case ".ppt":
								break;
								default:
									empty_fields+="Ce type de fichier n'est pas autorisé !";
									i=pForm.length+1;
								break;
							}*/
						}
					}
			}
 	}else if(type==3){
			//Products sheet
			for(var i=0; i<pForm.length; i++) {
					var e = pForm.elements[i];
					if(e.type == "file"){
						if(e.value != ""){
							empty_fields = verifType(e.value,type,1);
							if(empty_fields!="") i=pForm.length+1;
							/*
							pos = e.value.lastIndexOf(".");
							ext = e.value.substring(pos,e.value.length);
							ext = ext.toLowerCase();
							switch(ext){
								case ".zip":
								case ".xls":
								break;
								default:
									empty_fields+="Ce type de fichier n'est pas autorisé !";
									i=pForm.length+1;
								break;
							}*/
						}
					}
			}
	}
	
	if(document.forms.saisie.id.value!=''){
		//On contôle s'il y a un changement de type.
		empty_fields = verifType(document.forms.saisie.doc_file.value,type,2);
	}
	if(empty_fields!=""){ 
		alert(empty_fields);
		return false;
	}
	var file_1 = file_2=file_3=file_4=file_5="";
	var ALL=NUM+ALPHA+OTHER5+SP;
	/** Contôle des noms de fichiers */
	var lib='';
	if(pid!=''){
		lib="'Document attaché'";
	}else{
		lib="'Document attaché n° 1'";
		document.saisie.doc_file.value=getFile(document.saisie.doc_1.value);
	}
	document.saisie.doc_verif.value = getFile(document.saisie.doc_1.value);
	if(document.saisie.doc_file.value == ''){
		document.saisie.doc_file.value = getFile(document.saisie.doc_1.value);
	}
	file_1=document.saisie.doc_file.value;
	if (!isChampValid(document.saisie.doc_file, lib, ALL, 4, 255, true)) return false;
	
	if(isComponentExist(document.saisie.doc_2)){
		 document.saisie.doc_verif.value = getFile(document.saisie.doc_2.value);
		file_2 = document.saisie.doc_verif.value;
		 if (!isChampValid(document.saisie.doc_2, 'Document attaché n° 2',ALL, 4, 255, false)) return false;
	}
	
	if(isComponentExist(document.saisie.doc_3)){
		document.saisie.doc_verif.value = getFile(document.saisie.doc_3.value);
		file_3= document.saisie.doc_verif.value;
	 	if (!isChampValid(document.saisie.doc_verif, 'Document attaché n° 3', ALL, 4, 255, false)) return false;
	}
	
	if(isComponentExist(document.saisie.doc_4)){
		document.saisie.doc_verif.value = getFile(document.saisie.doc_4.value);
		file_4 =  document.saisie.doc_verif.value;
		if (!isChampValid(document.saisie.doc_verif, 'Document attaché n° 4', ALL, 4, 255, false)) return false;
	}
	
	if(isComponentExist(document.saisie.doc_5)){
		document.saisie.doc_verif.value = getFile(document.saisie.doc_5.value);
		file_5 = document.saisie.doc_verif.value;
		if (!isChampValid(document.saisie.doc_verif, 'Document attaché n° 5', ALL, 4, 255, false)) return false;
	}
	Files = new Array(file_1,file_2,file_3,file_4,file_5);
	//FilesCmp=Files;
	for(var i = 0; i < Files.length; i++)
	{
		if(Files[i]!=''){	
  		 	if(compareElement(Files[i],Files)) {
				alert("L'upload des documents de même nom, n'est pas autorisé.");
				return false;
			}
		}
 	}
	return true;
}

/** Formulaire revues de produit */
function verif_revue(pid){
	var pForm = document.forms.saisie;
	/**Contôle upload*/
	var empty_fields="";
	for(var i=0; i<pForm.length; i++) {
		var e = pForm.elements[i];
		if(e.type == "file"){
			if(e.value != ""){
				pos = e.value.lastIndexOf(".");
				ext = e.value.substring(pos,e.value.length);
				ext = ext.toLowerCase();
				switch(ext){
					case ".xls":
					case ".pdf":
					case ".ppt":
					case ".doc":
					case ".zip":
					break;
					default:
						empty_fields+="Ce type de fichier n'est pas autorisé !";
						i=pForm.length+1;
					break;
				}
			}
		}
	}
	var ALL=NUM+ALPHA+OTHER5+SP;
	/** Contôle des noms de fichiers */
	//alert(pid);
	if(pid==''){
		document.saisie.doc_file.value=getFile(document.saisie.doc.value);
	}
	document.saisie.doc_verif.value = getFile(document.saisie.doc.value);
	if(document.saisie.doc_file.value == ''){
		document.saisie.doc_file.value = getFile(document.saisie.doc.value);
	}
	if (!isChampValid(document.saisie.doc_file, 'Document attaché', ALL, 4, 255, true)) return false;
	
	if(empty_fields){ 
		alert(empty_fields);
		return false;
	}	
	return true;
}
/** Ecran de recherche */
function Checking(){
	var cpt_mar=false;
	var cpt_seg=false;
	var cpt_pay=false;
	var cpt_ann=false;
	var pForm = document.forms.recherche;
	/** Contôle des popups */
	for(var i=0; i<pForm.length; i++) {
		var e = pForm.elements[i];
		if(e.type == "select-multiple"){
			switch(e.name){
				case "MARQUES[]":
					if(e.value != "")cpt_mar=true;break;
				case "SEGMENTS[]":
					if(e.value != "")cpt_seg=true;break;
				case "PAYS[]":
					if(e.value != "")cpt_pay=true;break;
				case "ANNEES[]":
					if(e.value != "")cpt_ann=true;break;
			}
		}
	}
	if(!cpt_seg){ 
		alert('You must obligatorily select one or plusieures value in the drop-down list \'Product Category\'');
		return false;
	}
	if(!cpt_mar){ 
		alert('You must obligatorily select one or plusieures value in the drop-down list \'Brand\'');
		return false;
	}
	if(!cpt_pay){ 
		alert('You must obligatorily select one or plusieures value in the drop-down list \'Country\'');
		return false;
	}
	if(!cpt_ann){ 
		alert('You must obligatorily select one or plusieures value in the drop-down list \'Year\'');
		return false;
	}
	return true;
}

function val(pUrl){
	document.pagination.action=pUrl;
	document.pagination.submit();
}
function tri(pUrl,pColTri,pPreColTri,pOrder){
	document.form1.coltri.value =pColTri;
	document.form1.precoltri.value = pPreColTri;
	document.form1.ordre.value = pOrder;
	document.form1.action=pUrl;
	document.form1.submit();
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

/*Clavier virtuel */
function annuler() {
	//document.login.reset();
	document.login.password.value="";
	NbClic = 0;
}
function press(val, casse){
	if (maj){
		if (casse){
			val=val.toUpperCase();
		}else{
			val=tab[val];
		}
	}
	if (clavier && (NbClic<6)){
		document.login.password.value+=val;
		NbClic++;
		//document.login.password.focus();
	}
}

function claviersur(obj){
	clavier=obj;
}
function backslash(){
	var l=document.login.password.value.length;
	document.login.password.value=document.login.password.value.substr(0,l-1);
}
function capslock(){
	maj=(maj)?false:true;
	if (maj){
		document.getElementById("CapsLock").style.backgroundColor="FF0";
	}else{
		document.getElementById("CapsLock").style.backgroundColor="transparent";
	}
}

/* Contôle de saisie du clavier virtuel */
function verif(){
   	if (!vCheckForm.check()) return false;
	return true;
}
function keypresshandler(e) {
	if (document.all) e = window.event; // for IE
	
	if (document.layers) { // for NN4
		if (e.which == 13) submitForm(document.login, verif());
	}
	else {
		if (e.keyCode == 13) submitForm(document.login, verif());
	}
}

function submitForm(pForm, pVerifOK) {
	if (pVerifOK) {
		if(isComponentExist(document.login.password)){
			document.login.code.value = document.login.password.value;
		}
		pForm.submit();
	}
}

