/*
 * Paramétrage
 */
var PREMIER_CHAMP_ID_CLIENT_NOM = "id1";
var PREMIER_CHAMP_ID_CLIENT_LENGTH = 6;

var SECOND_CHAMP_ID_CLIENT_NOM = "id2";
var SECOND_CHAMP_ID_CLIENT_LENGTH = 11;

var CHAMP_PASS_CLIENT = "dateNaissance";
var PASS_LENGTH = 8;

var ID_FORMULAIRE = "secureForm";

var LIBELLE = "Tapez votre date de naissance (jjmmaaaa)";

var URL_PAGE_AIDE = "/noframe/pavenumaide.html";

var LEFT_PAGE_AIDE = "200px";
var TOP_PAGE_AIDE = "200px";

/*
 * Variables globales
 */
var nbCellules = 16;		//Nombre de cellules du clavier
var libelle_mvs_mdp = "Merci de saisir votre date de naissance au format suivant JJMMAAAA.";
//var libelle_mvs_id = "Merci de saisir les 11 chiffres de votre numéro de compte.";
var libelle_mvs_id = "Votre numéro de compte doit commencer par 503203 puis comporter 11 chiffres supplémentaires";

function envoyerPavNum()
{
	if(verifIdentifiant(document.getElementById(PREMIER_CHAMP_ID_CLIENT_NOM).value, document.getElementById(SECOND_CHAMP_ID_CLIENT_NOM).value))
	{
		afficherPaveNumerique();
		s_login('credit');
	}
	else
	{
		alert(libelle_mvs_id);
	}
}

function afficherPaveNumerique()
{
		document.getElementById("pavenum").style.visibility = "visible";
		//creerDragDrop();
		insererImageTransparente();
		redimensionner(true); //Affichage classique du pavé
		insererLibelle();
		document.getElementById("pavenum_pass").setAttribute("maxlength", PASS_LENGTH);
		var pave = calculerRepartition();
		for(var i=0; i<nbCellules; i++)
		{
			var regExpValTouche = new RegExp("[0-9]{1,1}");
			if(regExpValTouche.test(pave[i]))
			{
				document.getElementById("pavenum_touche_" + i).className = "acc_roll";
			}
			else
			{
				document.getElementById("pavenum_touche_" + i).className = "";
			}			
			var noeudValTouche = document.createTextNode(pave[i]);
			while(document.getElementById("pavenum_touche_" + i).childNodes.length > 0)
			{
				document.getElementById("pavenum_touche_" + i).removeChild(document.getElementById("pavenum_touche_" + i).firstChild);
			}
			document.getElementById("pavenum_touche_" + i).appendChild(noeudValTouche);			
		}
		if(testerNavigateurIE6())
		{
			rolloverJS();
		}
}

/*
 * Fonction des boutons du pavé
 */

function redimensionner(ouverture)
{
	document.getElementById("pavenum_pass").value = "";
	
	var regExpClassique = new RegExp("classique");
	var libelleRedimension;
	if(ouverture)
	{
		libelleRedimension = reduire();
	}
	else
	{
		if(regExpClassique.test(document.getElementById("pavenum").className))
		{
			libelleRedimension = agrandir();
		}
		else
		{
			libelleRedimension = reduire();
		}
	}
	var noeudLibelleRedimension = document.createTextNode(libelleRedimension);
	//document.getElementById("pavenum_redimensionner").removeChild(document.getElementById("pavenum_redimensionner").firstChild);
	//document.getElementById("pavenum_redimensionner").insertBefore(noeudLibelleRedimension, document.getElementById("icone_redimensionner"));
}

function reduire()
{
	document.getElementById("pavenum").className = "classique";
	return "AGRANDIR";
}

function agrandir()
{
	document.getElementById("pavenum").className = "accessible";
	if(testerNavigateurFF15() || testerNavigateurFF2())
	{
		document.getElementById("pavenum_pass").className = "specific_ff";
	}
	return "REDUIRE";
}

function corriger()
{
	document.getElementById("pavenum_pass").value = "";
}

function valider()
{
	var pass = document.getElementById("pavenum_pass").value;

	if(verifPass(pass))
	{
		document.getElementById(CHAMP_PASS_CLIENT).value = document.getElementById("pavenum_pass").value;		
		document.getElementById(ID_FORMULAIRE).submit();
	} 
	else
	{
		alert(libelle_mvs_mdp);
	}
}

function fermerPaveNumerique()
{
	document.getElementById("pavenum_pass").value = "";
	document.getElementById("pavenum").style.visibility = "hidden";
}

function ajouterCaractere(valeurTouche)
{	
	var passCourant = document.getElementById("pavenum_pass").value;
	if(passCourant.length < PASS_LENGTH)
	{
		passCourant = passCourant + valeurTouche;
		document.getElementById("pavenum_pass").value = passCourant;	
	}
}

function afficherAide()
{
	window.open(URL_PAGE_AIDE,'pavenumaide', 'directories=no, resizable=no, menubar=no, location=no, scrollbar=no, width=250, height=250, top='+TOP_PAGE_AIDE+',left='+LEFT_PAGE_AIDE);
}

/*
 * Fonctionnalités annexes du pavé numérique
 */
function calculerRepartition()
{	
	var nums=[0,1,2,3,4,5,6,7,8,9,"","","","","",""];
	return nums.sort(function() {return 0.5 - Math.random();});
}


function insererImageTransparente()
{
	var id_span = "pavenum_span_img_trans";

	if(document.getElementById(id_span))
	{
		var elem = document.getElementById(id_span);
		var url = "";
		url = getURL(id_span);
		var debut = url.indexOf("(");
		var fin = url.indexOf(")");
		url = url.substring(debut+1,fin);

		//Suppression des " misent par IE
		if(url.charAt("0") == '"')
		{
			url = url.substring(1,url.length);
		}
		if(url.charAt(url.length-1) == '"')
		{
			url = url.substring(0,url.length-1);
		}
		envoyerRequeteCpt(url);
		
		document.getElementById("pavenum_haut").removeChild(document.getElementById(id_span));
	}
	var span_img = document.createElement("span");
	span_img.setAttribute("id",id_span);
	span_img.setAttribute("name",id_span);
	
	document.getElementById("pavenum_haut").appendChild(span_img);
}

function getURL(idSpan)
{
	var elem = document.getElementById(idSpan);
	if(testerNavigateurIE6() || testerNavigateurIE7())
	{
		URL = elem.currentStyle['backgroundImage'];
	}
	else
	{
		URL = document.defaultView.getComputedStyle(elem,null).getPropertyValue('background-image');
	}
	return URL;
}

function envoyerRequeteCpt(url)
{
	var httpRequest = false;
	if(window.XMLHttpRequest)
	{
	  	httpRequest= new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
	  	try
	  	{
        	httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
        	try
        	{
            	httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
            catch(e){}
		}
 	}
   	url = url+"&redirection=true";
	try
	{
		httpRequest.open("GET", url, true);
 		httpRequest.send(null);
	}
	catch(e){}
}


function insererLibelle()
{
	if(document.getElementById("pavenum_label").childNodes.length == 0)
	{
		var noeudLibelle = document.createTextNode(LIBELLE);
		document.getElementById("pavenum_label").appendChild(noeudLibelle);
	}
}


/*
 * Fonctions de contrôle surfacique
 */
function verifIdentifiant(premierId, secondId)
{
	//var regExpPremierIdClient = new RegExp("^[0-9]{"+PREMIER_CHAMP_ID_CLIENT_LENGTH+"}$");
	var regExpPremierIdClient = new RegExp("^503203$");
	var regExpSecondIdClient = new RegExp("^[0-9]{"+SECOND_CHAMP_ID_CLIENT_LENGTH+"}$");
	return regExpPremierIdClient.test(premierId) && regExpSecondIdClient.test(secondId);
}

function verifPass(pass)
{
	var regExpPass = new RegExp("^[0-9]{"+PASS_LENGTH+"}$");
	return regExpPass.test(pass);
}


/*
 * Permet de mettre en place le rollover par JavaScript
 */
function rolloverJS()
{
	var elems = document.getElementById("pavenum_clavier").getElementsByTagName("td");
	for (var i=0; i<elems.length; i++)
	{
		elems[i].onmouseover= function(){
										if(this.className=='acc_roll'){
											this.className += ' rollover';
										}
										};
		elems[i].onmouseout= function(){
										this.className = this.className.replace(new RegExp(" rollover"), "");
										};
	}
}


/*
 * Fonctions de tests des navigateurs accepté par l'aménagement
 */
function testerNavigateurIE6(){
	var maRegExp = new RegExp("MSIE 6");
	return maRegExp.test(navigator.userAgent);
}

function testerNavigateurIE7(){
	var maRegExp = new RegExp("MSIE 7");
	return maRegExp.test(navigator.userAgent);
}

function testerNavigateurFF15(){	
	var maRegExp = new RegExp("Firefox/1.5");
	return maRegExp.test(navigator.userAgent);
}

function testerNavigateurFF2(){	
	var maRegExp = new RegExp("Firefox/2.0");
	return maRegExp.test(navigator.userAgent);
}

function testerNavigateurSafari2(){
	var regExpSafari = new RegExp("AppleWebKit/4");
	return regExpSafari.test(navigator.userAgent);
}

function testerNavigateurSafari3(){
	var regExpVersion = new RegExp("Mac OS");
	var regExpSafari = new RegExp("AppleWebKit/5");
	return regExpVersion.test(navigator.userAgent) && regExpSafari.test(navigator.userAgent);
}

