function win2(url) {
 	window.open(url,"","height=500,width=740,scrollbars=1,resizable=1");
}
function litnombre(aChaineNombre)
{
	// retire les espaces les points et autres caractères différents des nombres
	var li=0;
	var lChaine=""+aChaineNombre;

	while (li<eval(lChaine.length))
	{
		if (lChaine.charCodeAt(li)<48 || lChaine.charCodeAt(li)>57)
		{
			lChaine=lChaine.substring(0,li)+lChaine.substring(li+1,lChaine.length);
			li--;
		}

		li++;
	}
	return lChaine;
}

function litnombreCompte(aChaineNombre)
{
	// retire les espaces les points et autres caractères différents des nombres
	// pour les lettres A à Z, remplacement par un nombre
	var li=0;
	var lNb;
	var lChaine=""+aChaineNombre;

	while (li<eval(lChaine.length))
	{
		if (lChaine.charCodeAt(li)<48 || lChaine.charCodeAt(li)>57)
		{
			if (lChaine.charCodeAt(li)>=65 || lChaine.charCodeAt(li)<=90)
			{
				lNb=lChaine.charCodeAt(li)-64;
				if (lNb>9)
				{
					lNb=lNb-9;
				}

				if (lNb>9)
				{
					lNb=lNb-8;
				}

				lChar=""+lNb;
				lChaine=lChaine.substring(0,li)+lChar+lChaine.substring(li+1,lChaine.length);
			}
			else
			{
				if (lChaine.charCodeAt(li)>=97 || lChaine.charCodeAt(li)<=122)
				{
					lNb=lChaine.charCodeAt(li)-96;
					if (lNb>9)
					{
						lNb=lNb-9;
					}

					if (lNb>9)
					{
						lNb=lNb-8;
					}
	
					lChar=""+lNb;
					lChaine=lChaine.substring(0,li)+lChar+lChaine.substring(li+1,lChaine.length);
				}
				else
				{	
					// on retire le caractère indésirable
					lChaine=lChaine.substring(0,li)+lChaine.substring(li+1,lChaine.length);
					li--;
				}
			}
		}

		li++;
	}
	return lChaine;
}

function fCalcRib(aNomBanque, aCPBanque, aVilleBanque, aNomTitul, aCodeBanque, aCodeGuichet, aNoCompte, aCleRIB, aLangue)
{
	var lCodeBanque, lCodeGuichet, lNoCompte;
	var lint ;
	var lCompteNum;
	var lCompteStr;
	var lA,	lB, lC, lD, lE, lF, lG, lH, lI, lLength, lLoop, lAsc, lNb;

	var TabMessages = new Array();
	TabMessages['fr']=new Array();
	TabMessages['en']=new Array();
	TabMessages['fr'][0]="Vérification des infos RIB :\n";
	TabMessages['en'][0]="RIB data verification :\n";
	TabMessages['fr'][1]="Le nom de la Banque est vide";
	TabMessages['en'][1]="Bank name is empty";
	TabMessages['fr'][2]="Le Code postal de la Banque est vide";
	TabMessages['en'][2]="Bank postal code is empty";
	TabMessages['fr'][3]="La Ville de l'adresse de la Banque est vide";
	TabMessages['en'][3]="Bank city is empty";
	TabMessages['fr'][4]="Le nom du titulaire est vide";
	TabMessages['en'][4]="Owner is empty";
	TabMessages['fr'][5]="Le code banque n'a pas 5 caractères";
	TabMessages['en'][5]="Bank code doesn't have 5 car.";
	TabMessages['fr'][6]="Le code guichet n'a pas 5 caractères";
	TabMessages['en'][6]="Guichet code doesn't have 5 car.";
	TabMessages['fr'][7]="Le numéro de compte n'a pas 11 caractères";
	TabMessages['en'][7]="Account N° doesn't have 11 car.";
	TabMessages['fr'][8]="Il y a une erreur dans la saisie des informations concernant ce compte, merci de vérifier.";
	TabMessages['en'][8]="There is some mistake in your account informations, please verify";

	if ( (!aLangue) || (aLangue!="fr") )
	{ aLangue="en"; }


	// retire les espaces les points et autres caractères différents des nombres

	lCodeBanque=litnombre(aCodeBanque);
	lCodeGuichet=litnombre(aCodeGuichet);
	lNoCompte=litnombreCompte(aNoCompte);

	if (aNomBanque=="")
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][1]);
		return false;
	}

	if (aCPBanque=="")
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][2]);
		return false;
	}

	if (aVilleBanque=="")
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][3]);
		return false;
	}

	if (aNomTitul=="")
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][4]);
		return false;
	}


	if (lCodeBanque.length!=5)
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][5]);
		return false;
	}

	if (lCodeGuichet.length!=5)
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][6]);
		return false;
	}

	if (lNoCompte.length!=11)
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][7]);
		return false;
	}

	lA=parseFloat(lCodeBanque);
	lB=parseFloat(lCodeGuichet);
	lC=parseFloat(lNoCompte);

	lD=8*lA;


	lA=lD % 97;

	lE=15*lB;
	lB=97-(lE % 97);
	lF=3*lC;
	lC=97-(lF % 97);
	lG=lA+lB+lC;
	lI=lG % 97;

	if (lI==0)
	{
		lI=97;
	}
	if (lI!=aCleRIB)
	{
		alert(TabMessages[aLangue][0]+TabMessages[aLangue][8]);
		return false;
	}

	return true;
} 



function verifcarte(aNumCarte, aCVC)
{
	var lCVC, lNumCarte,lmonth,lyear, m1, n1, n2, n3;

	// retire les espaces les points et autres caractères différents des nombres

	lNumCarte=litnombre(aNumCarte);
	lCVC=litnombre(aCVC);

	if (lNumCarte.length <13)
	{
		alert("Votre Numéro de carte est invalide / Error on Credit card number");
		return 0;
	}
	// verifie le premier caractere qui doit etre un 4 (VISA) ou 5 (ECMC) ou 3(Amex)
        n2 = lNumCarte.substr(0, 1);                   // first digit
	if (n2!=4 && n2!=5 && n2!=3)
	{
		alert("Votre carte n'est pas une CB, VISA, American Express, EuroCard ou Mastercard / Your credit card is not a CB, VISA, American Express, EuroCard or Mastercard");
		return 0;
	}


	n1=lNumCarte;
          m1 = n1.length;                           // number of digits
          m1 = m1 % 2;                              // ...mod 2
          m1 = 2 - m1;                              // first main multiplier
          t1 = 0;                                   // main total
          while (n1.length > 0) {
            n2 = n1.substr(0, 1);                   // first digit
            n1 = n1.substr(1);                      // rest of string
            n3 = m1 * n2;
            if (n3 > 9) { n3 = n3 - 9; }
            t1 = t1 + n3;
            m1 = 3 - m1;
          }
          if ((t1 % 10) == 0) {
          	document.forms[0].NumCarte.value=lNumCarte;
          	document.forms[0].CVC.value=lCVC;
		document.forms[0].submit();
          } else {
		alert("Votre Numéro de carte est invalide / Error on Credit card number");
		return 0;
          }

}

