var languageId = '';
var invalidMsg = '';

var helpTitleField = new Array;
var helpTextField = new Array;
var helpTitlePage;
var helpTextPage;


function AfficheByClicPage(en_savoir_plus)
{
	document.getElementById(en_savoir_plus).style.visibility = 'hidden';
	document.getElementById(en_savoir_plus).style.display = 'none';	
	document.getElementById('divAidePage').style.display = 'block';
	document.getElementById('divAidePage').style.visibility = 'visible';
}

function CacheByClicPage(en_savoir_plus)
{
	document.getElementById('divAidePage').style.visibility='hidden';
	document.getElementById('divAidePage').style.display='none';	
	document.getElementById(en_savoir_plus).style.display='block';
	document.getElementById(en_savoir_plus).style.visibility='visible';	
}

function getOffsetPosition (inID, inTYPE)
{
	 var iVal = 0;
	 var oObj = document.getElementById(inID);
	 var sType = 'oObj.offset' + inTYPE;
	 while (oObj && oObj.tagName != 'BODY')
	 {
	 	iVal += eval(sType);
		oObj = oObj.offsetParent;
	 }
	 return iVal;
}


function ShowAttributHelp(idObject)
{
	// Comptage des ligne du tableau contenant les textes pour limiter la boucle
	var NbHelpTextField = helpTextField.length;

	// Masquer les autre aide qui serait eventuellement ouvertes
	// Creation des div pour les champs de formulaires
	for(i=0; i < NbHelpTextField; i++)
	{
		document.getElementById('divAideChampContenair[' + i + ']').style.display='none';
		document.getElementById('divAideChampContenair[' + i + ']').style.visibility='hidden';
	}

	//	Parametrage de la position de la div pour l'aide des champs
	var	linkId =  'Link[' + idObject + ']';
	var	FinalPositionX = getOffsetPosition(linkId, 'Left');	
		FinalPositionX = FinalPositionX - 230;
	var FinalPositionY = getOffsetPosition(linkId, 'Top');
		FinalPositionY = FinalPositionY - 3;

	//	Conteneur du texte d'aide et de l'ombre
	var divIdContenair =  'divAideChampContenair[' + idObject + ']';
	document.getElementById(divIdContenair).style.display		=	'block';
	document.getElementById(divIdContenair).style.visibility	=	'visible';
	document.getElementById(divIdContenair).style.left			=	FinalPositionX + "px";
	document.getElementById(divIdContenair).style.top			=	FinalPositionY + "px";	
	
	//	Gestion bug dimension du IFRAME et Shadow
	document.getElementById("iframeAideChamp[" + idObject + "]").style.height 		= document.getElementById("divAideChampContenair[" + idObject + "]").offsetHeight + 2;
	document.getElementById("iframeAideChamp[" + idObject + "]").style.width 		= document.getElementById("divAideChampContenair[" + idObject + "]").offsetWidth;
	document.getElementById("divAideChampShadow[" + idObject + "]").style.height 	= document.getElementById("divAideChamp[" + idObject + "]").offsetHeight;
}


//	Cache detail format 02 (Champ de formulaire)
function CacheByClicField(idObject)
{
	document.getElementById('divAideChampContenair[' + idObject + ']').style.visibility='hidden';
	document.getElementById('divAideChampContenair[' + idObject + ']').style.display='none';
}


/*
 * Gestion du contenu de l'aide 
 * Function de formatage des div pour l'aide de la PAGE
 */
function createHelpPage(helpTitle, helpText) 
{
	document.write(	"<div class=\"aide\" id=\"divAidePage\" style=\"display:none; visibility:hidden; " + "background-color: #fdfdfd;	border: 1px solid #d6d6d6; padding: 5px 5px 5px 5px; margin: 0px 0px 10px 0px;\">");
	document.write(helpTitle);
	document.write(helpText);
	document.write("<div align=\"right\"><a href=\"javascript:CacheByClicPage('en_savoir_plus');\" class=\"aide\">Fermer</a></div>");
	document.write("</div>");
}

/*
 * Gestion du contenu de l'aide 
 * Function de formatage des div pour l'aide des champs
 */
var increment			= 0;
var node_01				= new Array;
var CloseLink			= new Array;
var AideChampContenair	= new Array;
var AideChampIframe		= new Array;
var AideChampShadow		= new Array;
var AideChampTXT 		= new Array;
var AideTitre			= new Array;
var AideTitreTXT		= new Array;
var AideTexte			= new Array;
var AideTexteTXT		= new Array;


function createHelpField(idObject, helpTitle, helpText, divContent) 
{	
	AideChampContenair[idObject] = document.createElement("div");
	with(AideChampContenair[idObject])
	{	 
		id						= "divAideChampContenair[" + idObject + "]";
		style.visibility		= "hidden";
		style.display			= "none";
		style.position			= "absolute";
		style.top				= "0px";
		style.left				= "0px";
		style.width				= "230px";
		style.zIndex			= "99";
		style.backgroundColor 	= "transparent";
		style.border 			= "0px solid #c1c1c1";
		style.padding			= "0px 10px 0px 0px"; 
	}
	node_01[idObject] = document.getElementById(divContent).appendChild(AideChampContenair[idObject]);

	AideChampIframe[idObject] = document.createElement("iframe");
	with(AideChampIframe[idObject])
	{	
		id						= "iframeAideChamp[" + idObject + "]";
		frameBorder				= "0";
		scrolling				= "no";
		marginWidth				= "0px";
		marginHeight			= "0px";
		//allowTransparency		= "true"; //	Deactive l'effet du iframe
		style.position			= "absolute";
		style.top				= "0px";
		style.left				= "0px";
		style.width				= "100%";
		style.height			= "100%";
		style.zIndex			= "99";
		style.backgroundColor	= "transparent";
		style.border 			= "0px solid #c1c1c1";
		style.padding			= "0px 0px 10px 0px"; 		
	}
	node_01[idObject].appendChild(AideChampIframe[idObject]);

	AideChampShadow[idObject] = document.createElement("div");
	with(AideChampShadow[idObject])
	{	
		id	=	"divAideChampShadow[" + idObject + "]";
		
		style.position		= "absolute";
		style.top			= "10px";
		style.left			= "10px";
		style.width			= "230px";
		style.height		= "100%";
		style.zIndex		= "99";
		style.backgroundColor 	= "#555555";
		style.border 		= "1px solid #dfdfdf";
		style.padding		= "0px 0px 0px 0px";
		style.marging		= "0px 0px 0px 0px";
    	style.opacity 		= "0.2"; 
		style.filter		= "alpha(opacity=20)";
		
	}
	node_01[idObject].appendChild(AideChampShadow[idObject]);

	AideChampTXT[idObject] = document.createElement("div");
	with(AideChampTXT[idObject])
	{	
		id						= "divAideChamp[" + idObject + "]";
		className				= "aide02";
		style.position			= "relative";
		style.top				= "0px";
		style.left				= "0px";
		style.width				= "230px";
		style.height			= "100%";
		style.zIndex			= "99";
		style.backgroundColor 	= "#ffffff";
		style.border 			= "1px solid #c1c1c1";
		style.padding			=	 "0px 0px 0px 0px";
		style.opacity 			= "0.93"; 
	}

	CloseLink[idObject] = "<div align=\"right\" style=\"margin:5px 5px 5px 5px;\"><a href=\"javascript:CacheByClicField(" + idObject +");\" class=\"aide02\">Fermer</a></div>"

	node_01[idObject].appendChild(AideChampTXT[idObject]);
	document.getElementById("divAideChamp[" + idObject + "]").innerHTML = helpTitle[idObject] + helpText[idObject] + CloseLink[idObject];
}



/*
 * Outil pour la gestion des tableaux de résultat
 */

function openPopUpStd(url, pWidth, pHeigh)
{
  		var pLeft = (screen.width) ? (screen.width-pWidth)/2 : 0;
  		var pTop = (screen.height) ? (screen.height-pHeigh)/2 : 0;
		var configPopUP = 'width='+pWidth+',height='+pHeigh+',top='+pTop+',left='+pLeft+', status=1, scrollbars=1, resizable=0';
		myPopUp = window.open(url, 'popEcopubStd', configPopUP);
		myPopUp.focus();
}


function hideAllFlowDetail(arrayIdDiv, arrayIdDivLength)
{
	for (var i = 0; i < arrayIdDivLength; i++)
	{
    	document.getElementById(arrayIdDiv+'['+i+']').style.visibility = "hidden";
		document.getElementById(arrayIdDiv+'['+i+']').style.display = "none";
	}
}

function showHideThisFlowDetail(nameIdDiv, numberId)
{
	var idDiv = nameIdDiv+'['+numberId+']';
	var imgButton = 'imgButton['+numberId+']';

	if(document.getElementById(idDiv).style.display == "none")
	{
		document.getElementById(idDiv).style.display = "block";
		document.getElementById(idDiv).style.visibility = "visible";
		document.getElementById(imgButton).src = "../images/enroule.gif";
	}
	else
	{
		document.getElementById(idDiv).style.visibility = "hidden";
		document.getElementById(idDiv).style.display = "none";
		document.getElementById(imgButton).src = "../images/deroule.gif";
	}
}

/*
 * Outil de gestion des pages
 */

var forbiddenCarData = new Array("/","\n","\t","\"","\'","\\");
var forbiddenCarName = new Array(",",".","£","$","[","]","(",")","{","}","^","*","+","-","!","?","/","\n","\t","\"","\'","\\");


function fillOutRequestedElement(elementList, requestedElement)
{
	requestedElement.value = 0;
	if(elementList.length > 0)
	{
		for(var i = 0; i < elementList.length; ++i)
		{
			if(elementList[i].checked)
			{
				requestedElement.value = elementList[i].value;
				return true;
			}
		}
	}
	else
	{
		if(elementList.checked)
		{
			requestedElement.value = elementList.value;
			return true;
		}
	}
	return false;
}

function fillOutRequestedElementlist(elementList, requestedElement1, requestedElement2, requestedElement3, requestedElement4)
{
	j = 0;
	requestedElement1.value = 0;
	requestedElement2.value = 0;
	requestedElement3.value = 0;
	requestedElement4.value = 0;

	requestedElementList = new Array;
	requestedElementList[0] = requestedElement1;
	requestedElementList[1] = requestedElement2;
	requestedElementList[2] = requestedElement3;
	requestedElementList[3] = requestedElement4;
	
	if(elementList.length > 0)
	{
		j = 0;
		for(var i = 0; i < elementList.length; ++i)
		{
			if(elementList[i].checked)
			{
				if(j < 4) requestedElementList[j].value = elementList[i].value;
				++j;
			}
		}
		if((j < 2)||(j > 4)) return -1;
		else return 1;
	}
	else
	{
		if(elementList.checked) return -1;
	}
	return 0;
}
 
/*
function FillingOut(formName)
{
	if(ValidateFormulaire())
	{
		document.forms[formName].elements["fillingOutType"].value = "fillingOut";
		document.forms[formName].submit();
	}
}

function ShowOnlyNextPage(formName)
{
	document.forms[formName].elements["fillingOutType"].value = "showOnlyNextPage";
	document.forms[formName].submit();
}

function ShowOnlyPreviousPage(formName)
{
	document.forms[formName].elements["fillingOutType"].value = "showOnlyPreviousPage";
	document.forms[formName].submit();
}
*/



function validateFormulaire(tblFormulaire)
{
	var result = true;
	for(var i = 0; i < tblFormulaire.length; ++i)
	{
		switch(tblFormulaire[i][1])
		{
			case 10: result &= isNotEmptyStrData(tblFormulaire[i][0]);	break;
			case 20: result &= isValidStrInt(tblFormulaire[i][0]);		break;
			case 30: result &= isValidStrDouble(tblFormulaire[i][0]);	break;
			case 40: result &= false;									break;
			case 50: result &= isValidStrEmail(tblFormulaire[i][0]);	break;
			case 60: result &= isValidStrName(tblFormulaire[i][0]);		break;
			default: result &= false;									break;
		}
		if(!result)
		{
			alert(tblFormulaire[i][2]+invalidMsg);
			return result;
		}
	}
	return result;
}

function isNotEmptyStrData(strData)
{
	return (strData.length != 0);
}

function isValidStrInt(strData)
{
	if(strData.length == 0) return false;
	if(!isNaN(strData)) return (parseInt(strData, 10) == parseFloat(strData));
	return false;
}

function isValidStrDouble(strData)
{
	if(strData.length == 0) return false;
	return !isNaN(strData);
	return false;
}

function isValidStrValue(strData, typeId)
{
	if(strData.length == 0) return false;
	if(typeId == 20)
	{
		if(!isNaN(strData)) return (parseInt(strData, 10) == parseFloat(strData));
		return false;
	}
	else if(typeId == 30) return !isNaN(strData);
	return false;
}

function isValidStrData(strData)
{
	var i;
	var j;
	if(strData.length == 0) return false;
	for(i = 0; i < forbiddenCarData.length; ++i)
	{
		for(j = 0; j < strData.length; ++j) if(strData[j] == forbiddenCarData[i]) return false;
	}
	return true;
}

function isValidStrName(strName)
{
	var i;
	var j;
	if(strName.length == 0) return false;
	for(i = 0; i < forbiddenCarName.length; ++i)
	{
		for(j = 0; j < strName.length; ++j) if(strName[j] == forbiddenCarName[i]) return false;
	}
	return true;
}

function isValidStrEmail(strEmail)
{
	var regExpVerif = new RegExp('@');
	return regExpVerif.test(strEmail);
}


function isBissextile(year)
{
	var result = false;

	if(eval(year%4)==0)
	{
		if(eval(year%100)==0)
		{
			if(eval(year%400)==0) result = true;	
		}
		else result = true;
	}
	return result;
}


function getNbDaysPerMonth(month, year)
{
    switch(month)
	{
        case  1 : return 31;
        case  2 : if(isBissextile(year)) return 29; else return 28;
        case  3 : return 31;
        case  4 : return 30;
        case  5 : return 31;
        case  6 : return 30;
        case  7 : return 31;
        case  8 : return 31;
        case  9 : return 30;
        case 10 : return 31;
        case 11 : return 30;
        case 12 : return 31;
        default : return 0;
    }
}

function isGoodDay(day, month, year)
{
	return (day > 0)&&(day <= getNbDaysPerMonth(month, year));
}

function isGoodMonth(month)
{
	return (month > 0)&&(month <= 12);
}

function isGoodYear(year)
{
	return (year > 0);
}


function isDateValidFr(strDate)
{
    if(strDate.length == 10)
    {
		var day			= parseInt(strDate.substring(0,2), 10);
		var sparator1	= strDate.substring(2,3);
		var month		= parseInt(strDate.substring(3,5), 10);
        var separator2	= strDate.substring(5,6);
		var year		= parseInt(strDate.substring(6,10), 10);

        if(isNaN(day)||isNaN(month)||isNaN(year)||(sparator1 != '/')||(separator2 != '/')) return false;
		else return (isGoodYear(year)&&isGoodMonth(month)&&isGoodDay(day, month, year));
    }
	return false;
}

function isPreviousDateFr(strDatePrev, strDateRef)
{
	var dayRef		= parseInt(strDateRef.substring(0,2), 10);
	var monthRef	= parseInt(strDateRef.substring(3,5), 10);        
	var yearRef		= parseInt(strDateRef.substring(6,10), 10);

	var dayPrev		= parseInt(strDatePrev.substring(0,2), 10);
	var monthPrev	= parseInt(strDatePrev.substring(3,5), 10);        
	var yearPrev	= parseInt(strDatePrev.substring(6,10), 10);

	if(yearPrev > yearRef) return false;
	else if(yearPrev < yearRef) return true;
	else
	{
		if(monthPrev > monthRef) return false;
		else if(monthPrev < monthRef) return true;
		else return (dayPrev <= dayRef);
	}
}
function roundValueJs(Value)
{
    if(Value == 0) return 0;
	var log=Math.log(Math.abs(Value))/Math.log(10)
	return Math.round(Value/Math.pow(10,Math.floor(log)-3))/Math.pow(10,-(Math.floor(log)-3));
}


function isValidFileName(strFileName)
{
	var isCarValid = 0;
	var allowedFileNameCars = new Array;
	allowedFileNameCars[0]  = 'a';
	allowedFileNameCars[1]  = 'b';
	allowedFileNameCars[2]  = 'c';
	allowedFileNameCars[3]  = 'd';
	allowedFileNameCars[4]  = 'e';
	allowedFileNameCars[5]  = 'f';
	allowedFileNameCars[6]  = 'g';
	allowedFileNameCars[7]  = 'h';
	allowedFileNameCars[8]  = 'i';
	allowedFileNameCars[9]  = 'j';
	allowedFileNameCars[10] = 'k';
	allowedFileNameCars[11] = 'l';
	allowedFileNameCars[12] = 'm';
	allowedFileNameCars[13] = 'n';
	allowedFileNameCars[14] = 'o';
	allowedFileNameCars[15] = 'p';
	allowedFileNameCars[16] = 'q';
	allowedFileNameCars[17] = 'r';
	allowedFileNameCars[18] = 's';
	allowedFileNameCars[19] = 't';
	allowedFileNameCars[20] = 'u';
	allowedFileNameCars[21] = 'v';
	allowedFileNameCars[22] = 'x';
	allowedFileNameCars[23] = 'y';
	allowedFileNameCars[24] = 'z';
	allowedFileNameCars[25] = '_';

	for(var i = 0; i < strFileName.length; ++i)
	{
		isCarValid = 0;
		for(var k = 0; k < allowedFileNameCars.length; ++k)
		{
			if(allowedFileNameCars[k][0] == strFileName[i])
			{
				isCarValid = 1;
				break;
			}
		}
		if(!isCarValid) return 0;
	}
	return 1;
}

function getFileName(objectName)
{
	var objectFileName = '';
	var allowedFileNameCars = new Array;
	allowedFileNameCars[0]  = new Array('a', 'a');
	allowedFileNameCars[1]  = new Array('b', 'b');
	allowedFileNameCars[2]  = new Array('c', 'c');
	allowedFileNameCars[3]  = new Array('d', 'd');
	allowedFileNameCars[4]  = new Array('e', 'e');
	allowedFileNameCars[5]  = new Array('f', 'f');
	allowedFileNameCars[6]  = new Array('g', 'g');
	allowedFileNameCars[7]  = new Array('h', 'h');
	allowedFileNameCars[8]  = new Array('i', 'i');
	allowedFileNameCars[9]  = new Array('j', 'j');
	allowedFileNameCars[10] = new Array('k', 'k');
	allowedFileNameCars[11] = new Array('l', 'l');
	allowedFileNameCars[12] = new Array('m', 'm');
	allowedFileNameCars[13] = new Array('n', 'n');
	allowedFileNameCars[14] = new Array('o', 'o');
	allowedFileNameCars[15] = new Array('p', 'p');
	allowedFileNameCars[16] = new Array('q', 'q');
	allowedFileNameCars[17] = new Array('r', 'r');
	allowedFileNameCars[18] = new Array('s', 's');
	allowedFileNameCars[19] = new Array('t', 't');
	allowedFileNameCars[20] = new Array('u', 'u');
	allowedFileNameCars[21] = new Array('v', 'v');
	allowedFileNameCars[22] = new Array('x', 'x');
	allowedFileNameCars[23] = new Array('y', 'y');
	allowedFileNameCars[24] = new Array('z', 'z');
	allowedFileNameCars[25] = new Array('A', 'a');
	allowedFileNameCars[26] = new Array('B', 'b');
	allowedFileNameCars[27] = new Array('C', 'c');
	allowedFileNameCars[28] = new Array('D', 'd');
	allowedFileNameCars[29] = new Array('E', 'e');
	allowedFileNameCars[30] = new Array('F', 'f');
	allowedFileNameCars[31] = new Array('G', 'g');
	allowedFileNameCars[32] = new Array('H', 'h');
	allowedFileNameCars[33] = new Array('I', 'i');
	allowedFileNameCars[34] = new Array('J', 'j');
	allowedFileNameCars[35] = new Array('K', 'k');
	allowedFileNameCars[36] = new Array('L', 'l');
	allowedFileNameCars[37] = new Array('M', 'm');
	allowedFileNameCars[38] = new Array('N', 'n');
	allowedFileNameCars[39] = new Array('O', 'o');
	allowedFileNameCars[40] = new Array('P', 'p');
	allowedFileNameCars[41] = new Array('Q', 'q');
	allowedFileNameCars[42] = new Array('R', 'r');
	allowedFileNameCars[43] = new Array('S', 's');
	allowedFileNameCars[44] = new Array('T', 't');
	allowedFileNameCars[45] = new Array('U', 'u');
	allowedFileNameCars[46] = new Array('V', 'v');
	allowedFileNameCars[47] = new Array('X', 'x');
	allowedFileNameCars[48] = new Array('Y', 'y');
	allowedFileNameCars[49] = new Array('Z', 'z');
	allowedFileNameCars[50] = new Array(' ', '_');

	for(var i = 0; i < objectName.length; ++i)
	{
		for(var k = 0; k < allowedFileNameCars.length; ++k)
		{
			if(allowedFileNameCars[k][0] == objectName[i])
			{
				objectFileName += allowedFileNameCars[k][1];
				break;
			}
		}
	}
	return objectFileName;
}



