/*****************************************
Author:		AME
Created:	28-06-2004
******************************************/

function redirect (pparam, paction) {
	document.location = "frameworkMulti.asp?parameter=" + pparam + "&action=" + paction;
}

function redirTo (pform, pnxtpage, paction) {
	
	
	
	pform.next_page.value = pnxtpage;
	pform.quotation_action.value = paction;
	pform.submit();
}

function checkEntier( o , obj )
{
	
	// définition de l'expression régulière
	var regExp = new RegExp("[0-9]");

	// contrôle de l'expression régulière
	isOk = checkKeyPress(regExp,o)

	//traitements complémentaires
	return isOk
}

function checkMontant( o , obj )
{

	// définition de l'expression régulière
	var regExp = new RegExp("[0-9.]");

	// contrôle de l'expression régulière
	isOk = checkKeyPress(regExp,o)

	// contrôle de la touche DEL pour Netscape
	if (window.top.isNav4) 
		if ( o.which == 8 ) 
			return true

	//traitements complémentaires
/*	if (!isOk) {return false}
	else
		{
		pos = obj.value.lastIndexOf(".");
		if (pos>0)
			{
			if (obj.value.length > pos+2)
				{return false;}
			else
				{return true;}
			}
		else
			{return true;}
		}
*/
}


function fnOnkeyPress(type, o, obj)
{
// out : 	TRUE	==> frappe est acceptée
//		FALSE	==> frappe refusée

		
	if ( saisieEnter( o , obj ) )
		{
		// on a utilisé la touche ENTER pour valider
		return false;
		}
	else
		{
		switch (type)
			{
	case "ENTIER" :
			{
			return checkEntier(o , obj); 
			break;
			}
	case "DATE" :
			{
			if (isIE4)
			{return checkEntier(o , obj ); 
			break;}
			else
			break;
			}
	case "MONTANT" :
			{
			return checkMontant(o , obj); 	
			break;
			}
	default :
			{
			break;
			}
			}
		}
}

function testNavigateur()
{
	window.top.isIE4 =false;
	window.top.isNav4 = false;
	if (parseInt(navigator.appVersion.charAt(0)) >= 4) 
	{
	  window.top.isNav4 = (navigator.appName == "Netscape") ? true : false;
	  window.top.isIE4 = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
	 }

	if ((!isIE4) && (!isNav4) )
	{
		//envoyer vrers une page d'erreur
		alert("Erreur navigateur");
	}
	else
		{
		//alert("Ok pour le navigateur ");
		}
}	

function fnOnFocus(type, obj)
{
	// conservation de l'ancienne valeur pour gérer le 'onchange'
	archValeur = obj.value;
	// traitement particulier de déformatage
	switch (type)
		{
		case "DATE" :
			{
			obj.value = deformateDate( obj.value );
			break;
			}
		case "MONTANT" :
			{
			obj.value = deformateMontant( obj.value );
			break;
			}
			}
	// selection du texte en surbrillance
	obj.select();
}

function saisieEnter( o , obj )
{

	testC = (window.top.isIE4) ? o.keyCode : o.which;
	
	if (testC==13)
		{
		if (obj.form[(getIndex(obj)+1) % obj.form.length].type != "hidden")
			{
			obj.form[(getIndex(obj)+1) % obj.form.length].focus();
			}
		return true ;
		}
	else
		{
		return false ;
		}
}

function checkKeyPress(regExp,o)
{
	
	testC = (window.top.isIE4) ? o.keyCode : o.which;

	if ( (window.top.isNav4) && (testC==8 ) )
		{
		//alert("true");
		return true;
		}

	if (!(regExp.test(String.fromCharCode(testC))))
		{
		if (window.top.isIE4) 
			{event.returnValue=false}
			//alert ("checkKeyPress If");
			return false;
		}
		else
		{
			//alert ("checkKeyPress Else");
			return true;
		}

}

function deformateMontant( montant )
{
	var objRegExp = /\ /g; 		
  	return montant.replace(objRegExp ,'');	
}

function fnOnBlur(lang, type, obj, longueur)
{
// out : 	TRUE	==> on doit executer les règles de gestions
//		FALSE	==> on ne doit pas exécuter les règles de gestions :
//				* donnée non valide
//				* donnée non modifiée

	var donneeValide;
	if ( obj.value != "" )
		{
		//si la chaine est différente de vide
		switch (type)
			{
			case "AUTHORISATION" :
				{
				donneeValide= isAuthorNbr(obj); 
				if (!donneeValide) {msgErreur = eval("auth1_" + lang) }
				break;
				}			
			case "ENTIER" :
				{
				donneeValide = isEntier(obj,longueur);
				if (!donneeValide) {msgErreur = eval("date1_" + lang) }
				break;
				}
			case "DATE" :
				{
				donneeValide= isDate(obj); 
				if (!donneeValide) {msgErreur = eval("date2_" + lang) }
				else
				{obj.value  = formateDate( obj.value );}
				break;
				}
			case "MONTANT" :
				{
				donneeValide= isMontant(obj); 	
				if (!donneeValide) {msgErreur = "Vous devez saisir un MONTANT valide" }
				else {obj.value= formateMontant( obj.value ) }
				break;
				}
			default :
				{
				donneeValide = true;
				break;
				}
			}

		if (!donneeValide)
			{
			gestionErreur( obj , msgErreur  );
			return false;
			}
		}


	// dans ce cas, soit la chaine est vide, soit la chaine est donneeValide=true	
	gestionOK ( obj );
	//si modification de la donnée, on renvoie true
	return ( obj.value != archValeur );
}

function isMontant(o)
{
	var objRegExp = /((^\d\d*\.\d{1,2}$)|(^\d\d*$))/;
	return objRegExp.test( o.value );		
}

function gestionOK ( obj )
{
	if ( window.top.isIE4 ) {obj.style.backgroundColor="white";}
}

function formateMontant( montant , type)
{

montant = montant.toString().replace(/\ /g,'');
if (isNaN(montant) ) montant= "0";	
centime = Math.floor((montant*100+0.5)%100);
montant = Math.floor(montant).toString();
if (centime<10) centime = "0" + centime;
for (var i = 0 ; i<Math.floor((montant.length-(1+i))/3) ; i++)
	montant = montant.substring(0,montant.length-(4*i+3)) + "" + montant.substring(montant.length-(4*i+3));

return (montant + "." + centime);

		
}

function checkDigit(pNum) {
	var strBase, strCheckDigit, nBase, nCheckDigit;
	var strNum = new String(pNum);
	if (strNum.length > 2){
		strBase = strNum.substr(0, strNum.length - 2);
		strCheckDigit = strNum.substr(strNum.length - 2, 2);
		nBase = Number(strBase);
		nCheckDigit = Number(strCheckDigit);
		if (97- (nBase % 97) != nCheckDigit)
			return(false);
		else
			return(true);
	} else {
		return(false);
	}
	
}

function checkfields (pForm) {
	var sError = "";
	var ind;
	if(pForm.name=="form_main"){
		ind = pForm.search_criteria.length;
		if(pForm.search_criteria[ind - 2].checked == true){
			
			if (pForm.vat_number.value.length != 10)
			{
				sError += eval("user_reg07_" + lang);
			}
			else
			{
				if(!checkDigit(pForm.vat_number.value))
					sError += eval("user_reg07_" + lang);
			}
			
		}
	}
	 else if (pForm.name=="form_contract_proposal"){
		if(pForm.accept.checked == false){
			sError += eval("quot01_" + lang);
		}
	}
	
	if(sError != "") {
		alert(sError);
		return(false);
	}
	else {
		return(true);
	}
}

function checkEntry(sRegExp) {
	var isOK;
	var regExp = new RegExp(sRegExp);
	isOk = checkKeyPress(regExp,event)

	return isOk
}

function calculateTotal()
{
	var x;
	if((document.form_main.nbr_benef.value != '')&&(document.form_main.face_value.value != ''))
	{
		x=(document.form_main.nbr_benef.value*document.form_main.face_value.value);
		document.getElementById("total").innerHTML=formateMontant(x);
	}
}

function redir(x)
{
	var x;
	var flag;
	
	for (i=0; i<document.form.product.length; i++)
	{
		if (document.form.product[i].checked == true)
		{
			flag = 1;
			break;
		}
		else
		{
			flag=0;
		}
	}
	if(flag==1)
	{
		if ((document.form.wish[x].checked==true)&&(document.form.product[x].checked==true))
		{
			window.location="http://soeasy.sodexo.com";
		}
		else
		{
			document.form.submit();;
		}
	}
	else
	{
		document.form.wish[x].checked=false;
		alert("Veuillez d'abord indiquer pour quel(s) chèque(s) vous disposez d'un contrat");
	}
}
