// © ATELIER 33 / ALL RIGHTS RESERVED / 2008 / http://www.atelier33.com / contact@atelier33.com
// Toute copie complete ou partielle de ce code est interdite ;) -=]U-R[=-
//=============================================================================================\\
//                                          COMMON LIB                                         \\
//=============================================================================================\\
function GeneRound(pvValue, pvNbDecimal, isRound)
{ 	
	//var msg1=pvValue+" | "+pvNbDecimal+" | "+isRound+"\n";
	var pvCoeff=Math.pow(10, parseInt(pvNbDecimal)); //msg1+=pvCoeff+"\n";	
	var pvValue=pvValue.toString().replace(",","."); pvValue=pvValue.replace(" ", ""); //msg1+=pvValue+"\n";	
	var pvRound=Math.round(parseFloat(pvValue)*pvCoeff)/pvCoeff; //msg1+=pvRound+"\n"; 	
	//alert(msg1);	
	return pvRound;
}
//----------------------
//CHECK
//----------------------
function CountChar(pvTxtLen, pvCounterBox)
{	
	var pvBox=pvCounterBox.replace("CW.value", ".value");
	var pvTxt=unescape(encodeURIComponent(eval(pvBox)));
	var pvTxtLen=pvTxt.length+2;
	var pvAct=eval(pvCounterBox+"="+pvTxtLen);
}
//----------------------
function check_rw1(pvObj)
{
	var AllowChar="-0123456789abcdefghijklmnopqrstuvwxyz"; var bRw=true; var iChar=0; var sChar="";
	var pvVal=pvObj.value; //alert(pvVal);
	var pvVal=pvVal.toString().toLowerCase().replace(" ","-"); //pvVal=unescape(encodeURIComponent(DaVal));
	if(!check_empty(pvVal)){bRw=false;}
	for(iChar=0; iChar<pvVal.length; iChar++){ sChar=pvVal.charAt(iChar); bRw=(AllowChar.indexOf(sChar, 0)>=0);	if(!bRw){break;} }	
	/*alert(bRw); bRw=false;*/
	pvObj.value=pvVal; return bRw; 
}
//----------------------
function check_pass1(pvVal, pvLen)
{
	var AllowChar="0123456789abcdefghijklmnopqrstuvwxyz"; var bPwd=true; var iChar=0; var sChar="";
	pvVal=pvVal.toString().toLowerCase();	
	if(!check_empty(pvVal)){bPwd=false;}
	for(iChar=0; iChar<pvVal.length; iChar++){ sChar=pvVal.charAt(iChar); bPwd=(AllowChar.indexOf(sChar, 0)>=0); if(!bPwd){break;} }	
	//if(parseInt(pvVal.length)!=parseInt(pvLen)){bPwd=false;}
	return bPwd; 
}
//----------------------
function check_equalstr1(pvVal1, pvVal2)
{
	var bEqu=true; pvVal1=pvVal1.toString(); pvVal2=pvVal2.toString();	
	if(pvVal1!=pvVal2){bEqu=false;}	
	return bEqu; 
}
//----------------------
function check_empty(text){return (text.length > 0);}
//----------------------
function check_emptylm(pvName, pvVal, bUpdateCounter)
{
	if(bUpdateCounter){eval('$("#'+pvName+'_CW").empty().append($("#'+pvName+'").val().length)');}
	if( (!pvVal.length>0) || ( parseInt(pvVal.length)>parseInt($("#"+pvName+"_LM").val())) ){return false;} else {return true;}
} 
//----------------------
function check_list(box){ if(box.options.length==0){return false;} else {return true;} }
//----------------------
function check_email(adresse){ if((adresse=="") || (adresse.indexOf('@')==-1) || (adresse.indexOf('.')==-1)){ return false;} else { return true; } }
//----------------------
function check_per2(DaVal, IsPositif, IsZero)
{
	var AllowNum="-0123456789."; var bPer=true; var iChar=0; var sChar="";
	var DaVal=DaVal.toString().replace(" ",""); DaVal=DaVal.replace(",",".");
	if(!check_empty(DaVal)){bPer=false;}
	for(iChar=0; iChar<DaVal.length; iChar++){ sChar=DaVal.charAt(iChar); bPer=(AllowNum.indexOf(sChar, 0)>=0);	if(!bPer){break;} }	
	if(IsPositif && parseFloat(DaVal)<0){bPer=false;}
	if(!IsZero && parseFloat(DaVal)==0){bPer=false;}
	if(parseFloat(DaVal)>100){bPer=false;}
	if(isNaN(DaVal)){bPer=false;}	
	return bPer; 
}
//----------------------
function check_int2(DaVal, IsPositif, IsZero)
{
	var AllowNum="-0123456789"; var bInt=true; var iChar=0; var sChar="";
	var DaVal=DaVal.toString().replace(" ","");
	if(!check_empty(DaVal)){bInt=false;}
	for(iChar=0; iChar<DaVal.length; iChar++){ sChar=DaVal.charAt(iChar); bInt=(AllowNum.indexOf(sChar, 0)>=0);	if(!bInt){break;} }	
	if(IsPositif && parseInt(DaVal)<0){bInt=false;}
	if(!IsZero && parseInt(DaVal)==0){bInt=false;}
	if(isNaN(DaVal)){bInt=false ;}	
	return bInt; 
}
//----------------------
function check_float2(DaVal, IsPositif, IsZero)
{
	var AllowNum="-0123456789."; var bFloat=true; var iChar=0; var sChar="";
	var DaVal=DaVal.toString().replace(" ",""); DaVal=DaVal.replace(",",".");
	if(!check_empty(DaVal)){bFloat=false;}
	for(iChar=0; iChar<DaVal.length; iChar++){ sChar=DaVal.charAt(iChar); bFloat=(AllowNum.indexOf(sChar, 0)>=0);	if(!bFloat){break;} }	
	if(IsPositif && parseFloat(DaVal)<0){bFloat=false;}
	if(!IsZero && parseFloat(DaVal)==0){bFloat=false;}
	if(isNaN(DaVal)){bFloat=false ;}	
	return bFloat; 
}
//----------------------
function check_len(pvName, pvForm)
{
	var pvBox=eval(pvForm+"."+pvName);
	var pvTxt=unescape(encodeURIComponent(pvBox.value));
	var pvTxtLen=pvTxt.length+2;
	var pvTxtLenMax=eval(pvForm+"."+pvName+"LM.value");
	var pvAct=eval(pvForm+"."+pvName+"CW.value="+pvTxtLen);
	if (parseInt(pvTxtLen)>parseInt(pvTxtLenMax)){return false;} else {return true;}
}
//----------------------------
function check_radio1(pvForm, pvName)
{
	var Dis=eval(pvForm); var pvRadio=eval("Dis."+pvName); var i=0; var pvValue=0;
	if(pvRadio)
		{ 	if(pvRadio.length!=undefined)	{ for (i=pvRadio.length-1;i>-1; i--){ if (pvRadio[i].checked) { pvValue=pvRadio[i].value; break; } } }
			else							{ if (pvRadio.checked) {pvValue=pvRadio.value;} }
		}	
	return pvValue;	
}
//----------------------
function check_url(DaUrl,DaType)
{
	var e; 
	switch (DaType)
	{
		case "VALIDE"	:			 
			 e=new RegExp("^(http://|https://){0,1}[A-Za-z0-9][A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,}[\43-\176]*$");
			 //alert(DaUrl); alert(e.test(DaUrl));
			 if (!e.test(DaUrl)){return false;} else {return true;}
			break;
   	default				: 
			if(DaUrl!=""){winUrl=window.open(DaUrl,'URL','menubar=yes,scrollbars=yes,resizable=yes,status=yes,width=500,height=500');}
			break;       
	}	
}
//----------------------
function check_tel(DaBox, IsOblg)
{
	//VARS
	var sMsg=""; var temp=""; var DaAct=""; var bCheck=false;	var reg=/^\d+$/
	//TO LOWER CASE
	temp=eval("DaBox.value.toLowerCase()"); 
	if(IsOblg){bCheck=true;}	else {if(temp!=""){bCheck=true;}}	
	if(bCheck)
		{
		temp=temp.replace(/[abcdefghijklmnopqrstuvwxyz]/gi,"");
		temp=temp.replace(/[ ]/gi,"");
		temp=temp.replace(/[\.]/gi,"");	
		temp=temp.replace(/[\\]/gi,"");
		temp=temp.replace(/[\/]/gi,"");	
		temp=temp.replace(/[\[\]]/gi,"");
		temp=temp.replace(/[-,;?!:&=+#<>]/gi,"");
		temp=temp.replace(/[*°\(\)%]/gi,"");
		DaAct=eval("DaBox.value=temp");
		//REG EXP CHECK	+ OUTPUT		
		if((reg.exec(temp)==null) || (temp.length<10)){return false;}
		else 																					{return true;}
		}
	else
		{return true}
}
//----------------------
function check_select_date1(pvName)
{
	var pvDate=$("#"+pvName).val()+"/"+$("#"+pvName.replace("_DAY", "_MONTH")).val()+"/"+$("#"+pvName.replace("_DAY", "_YEAR")).val();
	return check_date(pvDate); 
}
//----------------------
function check_date(d) 
{	
	var e; var j=0; var m=0; var a=0;
	//jj/mm/aa ou jj/mm/aaaa
	//EMPTY ?
	if (d==""){return false;}
	
	//10 ALPHA ?
	if (d.length!=10){return false;}
		
	//REG EXP ?
	e=new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
	if (!e.test(d))	{	return false;}
	else
			{
				//GRAB jj mm aaaa || aa
				j=parseInt(d.split("/")[0], 10); m=parseInt(d.split("/")[1], 10); a=parseInt(d.split("/")[2], 10);
				//COMPLETE aa
				if (a<1000){if (a < 89){a+=2000;} else {a+=1900;}}
				//ANNEE BISEXTILE
				if (a%4==0 && a%100!=0 || a%400==0){fev=29;} else {fev=28;}
				//NB JOURS
				nbJours=new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
				//CHECK jj mm aaaa
				return (m>=1 && m<=12 && j>=1 && j<=nbJours[m-1]);
		 }
}
//----------------------
function check_time1(pvTime) 
{	
	var e; var h=0; var m=0; var s=0;	
	if (pvTime=="::"){return false;} //EMPTY ?
	if (pvTime.length!=8){return false;} //LEN 8 ?	
	h=parseInt(pvTime.split(":")[0], 10); m=parseInt(pvTime.split(":")[1], 10);	s=parseInt(pvTime.split(":")[2], 10); //alert(h+" "+m+" "+s);	
	return (h>=0 && h<=23 && h>=0 && h<=59 && s>=0 && s<=59);	
}
//----------------------
//OTHER STUFF
//----------------------
function ReloadOpener(){opener.location.reload(true)}
//----------------------
function ReloadPage(){self.location.reload(true)}
//----------------------
function ReloadParent(){parent.location.reload(true)}
//----------------------
//DHTML 
//----------------------
function GetDivTxt(DaTxt,which,DaAct) 
{
/*
TO REPLACE WITH JQUERY
_utils\adm_js\adm_spec.js _utils\img_bank#.asp _utils\img_prev#.asp 
*/
	oWhich=GetDaID(which); window.focus(); 
	switch (DaAct)
	{
		case "APPEND"	: oWhich.innerHTML+=DaTxt; break;
		default			: oWhich.innerHTML=DaTxt; break;       
	}	
}
//----------------------
function GetDaID(which) //TO REPLACE WITH JQUERY
{
/*
TO REPLACE WITH JQUERY
mailer1\mailer1.js
*/
	if (!document.getElementById|document.all){return}
	else
		{
		if (document.getElementById){oWhich = eval ("document.getElementById('" + which + "')")}
		else						{oWhich = eval ("document.all." + which)}
		}
	return oWhich;
}
//----------------------
//CHECKBOXES
//----------------------
function ManageCheckBox01(DaBox, DaNum, DaCheck){ for(i=1; i<=DaNum; i++){eval(DaBox+i+'.checked='+DaCheck);} }
//----------------------
//LISTBOXES
//----------------------
function Gene2BoxAdd1(pvBox, pvVal1, pvVal2) 
{	
	var bFlag=true;
	
	//alert(pvBox+" | "+pvVal1+" | "+pvVal2);
			
	try {eval("var BoxTo1=parent."+pvBox); eval("var BoxTo2=parent."+pvBox+"Descr");}
	catch (e) {if(e!=""){bFlag=false;}}
	
	if(!bFlag)
	{
		bFlag=true;
		try {eval("var BoxTo1=opener."+pvBox); eval("var BoxTo2=opener."+pvBox+"Descr");}
		catch (e) {if(e!==""){bFlag=false;}}
	}	
	
	if(!bFlag){alert("Windows conversation error : "+e.description)}
	else {BoxTo1.value=pvVal1;	BoxTo2.value=pvVal2;}
}
//----------------------
function GeneListDel(pvBox)  {
   for(var i=0; i<pvBox.options.length; i++)  
   	{ if(pvBox.options[i].selected && pvBox.options[i].value!=""){pvBox.options[i]=null; i--;} }
}
//----------------------
function GeneListAdd1(pvBox, pvValue,pvTxt) 
{	
	var bFlag=true;
	var no=new Option(); no.value=pvValue; no.text=pvTxt;
		
	try {eval("var BoxTo=parent.document."+pvBox);}
	catch (e) {if(e!=""){bFlag=false;}}
	
	if(!bFlag)
	{
		bFlag=true;
		try {eval("var BoxTo=opener.document."+pvBox);}
		catch (e) {if(e!==""){bFlag=false;}}
	}	
	if(!bFlag){alert("Windows conversation error : "+e.description)}
	else {BoxTo.options[BoxTo.options.length]=no;}
}
//----------------------
function GeneListAddX(pvFBox, pvTBox) 
 {
   for(var i=0; i<pvFBox.options.length; i++)
   	{
     if(pvFBox.options[i].selected && pvFBox.options[i].value!="")
	 	{
        var NewOpt=new Option(); NewOpt.value=pvFBox.options[i].value; NewOpt.text=pvFBox.options[i].text;
        pvTBox.options[pvTBox.options.length]=NewOpt;
     	}
	}
}
//----------------------
function GeneListFocus(pvBox){for(var i=0; i<pvBox.options.length; i++){pvBox.options[i].selected=true;}}
//----------------------
function GeneListMove(pvFrom, pvTo) 
 {
   for(var i=0; i<pvFrom.options.length; i++)  
   	{
     if(pvFrom.options[i].selected && pvFrom.options[i].value!="")
	 	{
        var NewOpt=new Option(); 
		NewOpt.value=pvFrom.options[i].value; NewOpt.text=pvFrom.options[i].text; 
		pvTo.options[pvTo.options.length]=NewOpt;
     	}
	}
}
//----------------------
function GeneUtf8Encode (string) 
{
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";
	for (var n = 0; n < string.length; n++) 
	{
		var c = string.charCodeAt(n);
		if (c < 128) {
                utftext += String.fromCharCode(c);
            }
        else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    }
//----------------------
function GeneDateAdd1(pvType, pvForm, pvArg1) 
{
	var Dis=eval(pvForm); var pvAct="";
	var pvDate=""; var pvDay=""; var pvMonth="00"; var pvYear=""; var pvHour=""; var pvMin=""; var pvSec="";
			
	switch (pvType.toUpperCase())
	{
		case "FORMY4M2D2H2M2S2" :
			var pvDate=new Date();			
			var pvDay=pvDate.getDate(); pvDay=pvDay+""; while(pvDay.length<2) {pvDay="0"+pvDay;}			
			var pvMonth=pvDate.getMonth(); pvMonth=pvMonth+''; while(pvMonth.length<2) {pvMonth="0"+pvMonth;}			
			var pvYear=pvDate.getFullYear();
			var pvHour=pvDate.getHours(); pvHour=pvHour+""; while(pvHour.length<2) {pvHour="0"+pvHour;}	
			var pvMin=pvDate.getMinutes(); pvMin=pvMin+""; while(pvMin.length<2) {pvMin="0"+pvMin;}	
			var pvSec=pvDate.getSeconds(); pvSec=pvSec+""; while(pvSec.length<2) {pvSec="0"+pvSec;}			
			pvAct=eval("Dis."+pvArg1+"_day.value=pvDay");
			pvAct=eval("Dis."+pvArg1+"_month.value=pvMonth");
			pvAct=eval("Dis."+pvArg1+"_year.value=pvYear");
			pvAct=eval("Dis."+pvArg1+"_hour.value=pvHour");
			pvAct=eval("Dis."+pvArg1+"_min.value=pvMin");
			pvAct=eval("Dis."+pvArg1+"_sec.value=pvSec");		
			break;
			
		default :
			break;
	}
}
//----------------------
function GeneDateDel1(pvType, pvForm, pvArg1) 
{
	var Dis=eval(pvForm); var pvAct="";
	var pvDate=""; var pvDay=""; var pvMonth="00"; var pvYear=""; var pvHour=""; var pvMin=""; var pvSec="";

			
	switch (pvType.toUpperCase())
	{
		case "FORMY4M2D2H2M2S2" :	
			pvAct=eval("Dis."+pvArg1+"_day.value='00'");
			pvAct=eval("Dis."+pvArg1+"_month.value='00'");
			pvAct=eval("Dis."+pvArg1+"_year.value='0000'");
			pvAct=eval("Dis."+pvArg1+"_hour.value='00'");
			pvAct=eval("Dis."+pvArg1+"_min.value='00'");
			pvAct=eval("Dis."+pvArg1+"_sec.value='00'");		
			break;
			
		default :
			break;
	}
}
//----------------------
function Gene_trace_form(pvArg1)
{
	var EltsType=new Array("input","select","textarea");
 	var msg="";	
	var pvForm=document.getElementById(pvArg1);
	//var Elts=document.getElementsByTagName(EltsType[iEltsType]);
	
	for(var iEltsType=0; iEltsType<EltsType.length; iEltsType++)
	{
		msg+="EltsType="+EltsType[iEltsType]+"\n";
		var Elts=document.getElementsByTagName(EltsType[iEltsType]);
		for (var i=0; i<Elts.length; i++) 
		{ 		
			msg+=i+" | name="+Elts[i].getAttribute("name")+" | ";
			msg+="type="+Elts[i].getAttribute("type")+" | ";
			msg+="dataempty="+Elts[i].getAttribute("dataempty")+" | ";
			msg+="\n";
		}
	}	
	alert(msg);
}
//----------------------
function JQ_COUNT_CHAR(pvBox){ var pvAct=eval('$("#'+pvBox+'_CW").empty().append($("#'+pvBox+'").val().length)'); }
//----------------------
function Gene_pwd1(length, special, pvBox) {
  var iteration = 0;
  var password = "";
  var randomNumber;
  if(special == undefined){
      var special = false;
  }
  while(iteration < length){
    randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
    if(!special){
      if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
      if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
      if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
      if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
    }
    iteration++;
    password += String.fromCharCode(randomNumber);
  }
  
  if (pvBox!=""){$("#"+pvBox).val(password);} else {return password;}
  
}
//----------------------
