
/*******************************************/
/* Fonction pour les informations légales  */
/*******************************************/

function poplegal(langue) 
{
	//popup window des informations légales
	win = window.open("/legal_"+langue+".htm","legalinfo","height=432,width=281,top=0,left=0,resizable=1,scrollbars=1");
}

/********************************************/
/* Fonctions employées dans les formulaires */
/********************************************/

function IsHex(mychar)
{
	//A(65)-F(70) ou a(97)-f(102) ou 0(48) .. 9(57)
	if((mychar>=48)&&(mychar<=57))
	{
		return(true);
	}
	else if(((mychar>=65)&&(mychar<=70))||((mychar>=97)&&(mychar<=102)))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

function IsAlpha(mychar)
{
	//A(65)-Z(90) ou a(97)-z(122)
	if(((mychar>=65)&&(mychar<=90))||((mychar>=97)&&(mychar<=122)))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function IsNumeric(mychar)
{
	//0(48) .. 9(57)
	if((mychar>=48)&&(mychar<=57))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function IsSpace(mychar)
{
	//Space(32)
	if(mychar==32)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function IsSpecialChar(mychar)
{
	//Space(32), CR(13), LF(10) or TAB(9)
	if((mychar==32)||(mychar==13)||(mychar==10)||(mychar==9))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function IsCommaSemicolon(mychar)
{
	if((mychar==",")||(mychar==";"))
	{
		return true;
	}
	else
	{
		return false;
	}
}

function TrimString(string)
{
	var len=string.length;
	for(i=0;i<len;i++)
	{
		if(!IsSpecialChar(string.charCodeAt(i))) // le premier caractère non spécial
		{
			for(j=len-1;j>=0;j--)
			{
				if(!IsSpecialChar(string.charCodeAt(j))) // le premier caractère non spécial en partant de la fin
				{
					return string.substr(i,(j-i+1));
				}
			}
		}
	}
	return "";
}

function TrimStringCommaSemicolon(string)
{
	var len=string.length;
	for(i=0;i<len;i++)
	{
		if((!IsSpecialChar(string.charCodeAt(i)))&&(!IsCommaSemicolon(string.charAt(i)))) // le premier caractère non spécial
		{
			for(j=len-1;j>=0;j--)
			{
				if((!IsSpecialChar(string.charCodeAt(j)))&&(!IsCommaSemicolon(string.charAt(j)))) // le premier caractère non spécial en partant de la fin
				{
					return string.substr(i,(j-i+1));
				}
			}
		}
	}
	return "";
}

function isEmail(elm)
{
	if((elm.value.indexOf(" ") + "" == "-1")&&(elm.value.indexOf("@") + "" != "-1")&&(elm.value.lastIndexOf(".") > elm.value.indexOf("@"))&&(elm.value != "")) 
		return true;
	else return false;
}

function FormateString(string,number,size)
{
	string=TrimString(string.toUpperCase()); //épuration des caractères spéciaux au début et en fin de chaîne et conversion en majuscules
	if(string.length<size) return ""; //trop courte
	var len=string.length;
	var newstring="";
	for(i=0;i<len;i++) // extraction des caractères alphanumériques
	{
		if(IsAlpha(string.charCodeAt(i))||IsNumeric(string.charCodeAt(i)))
		{
			newstring=newstring+string.charAt(i);
		}
	}
	if(newstring.length!=size) return ""; // taille incorrecte
	else
	{
		var returnstring="";
		for(i=0;i<size;i=i+number) // formatage en bloc de number caractères
		{
			returnstring+=" "+newstring.substr(i,number);
		}
		return(TrimString(returnstring));
	}
}

function FormateProductCode(string,number,size)
{
	string=TrimString(string); //épuration des caractères spéciaux au début et en fin de chaîne
	if(isFinite(Number(string))) return(string);
	else return(FormateString(string,number,size));
}

function FormateMACAddress(string)
{
	var size=12;
	var number=2;

	string=TrimString(string.toUpperCase()); //épuration des caractères spéciaux au début et en fin de chaîne et conversion en majuscules
	if(string.length<size) return(""); //trop courte
	var len=string.length;
	var newstring="";
	for(i=0;i<len;i++) // extraction des caractères alphanumériques
	{
		if(IsHex(string.charCodeAt(i)))
		{
			newstring=newstring+string.charAt(i);
		}
	}
	if(newstring.length!=size) return(""); // taille incorrecte
	else
	{
		var returnstring=newstring.substr(0,number);
		for(i=number;i<size;i=i+number) // formatage en bloc de number caractères
		{
			returnstring+="-"+newstring.substr(i,number);
		}
		return(returnstring);
	}
}

function inRange(string,min,max,def)
{
	string=TrimString(string.toUpperCase()); //épuration des caractères spéciaux au début et en fin de chaîne et conversion en majuscules

	if(string == "") 
	{
		return def;
	}
	else if((Number(string) >= min) && (Number(string) <= max))
	{
		return string;
	}
	else
	{
		return def;
	}
}

function isDate(string)
{
	string=TrimString(string); //épuration des caractères spéciaux au début et en fin de chaîne
	var len=string.length;
	if((len < 5)||(len >10)||(!IsNumeric(string.charCodeAt(0)))||(!IsNumeric(string.charCodeAt(len-1))))
	{
		return(false);
	}

	for(i=1;i<(len-1);i++)
	{
		if((!IsNumeric(string.charCodeAt(i)))&&(string.charAt(i) != "/"))
		{
			return(false);
		}
	}
	return(true);
}

function isFutureDate(year, month, day)
{
	today = new Date();
	future = new Date(year, month-1, day);
	diff = future - today;
	alert (today="\\n"+future+"\\n"+diff);
	if (diff >= 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function FormateEmail(email)
{
	email=TrimStringCommaSemicolon(email.toLowerCase()); //enlève les "blancs" et , et ; en début et fin de chaine

	//extraction de chaque adresse email potentielle (séparées par des , ou ;)
	var virgule = email.indexOf(",");
	var myarraylen = 0;
	var myarray = new Array(10);

	while(virgule >=0)
	{
		myarray[myarraylen] = TrimStringCommaSemicolon(email.substring(0, virgule));
		email = TrimStringCommaSemicolon(email.substring(virgule+1, email.length));
		virgule = email.indexOf(",");
		myarraylen++;
	}
	if(email != "")
	{
		myarray[myarraylen] = TrimStringCommaSemicolon(email.substring(virgule+1, email.length));
		myarraylen++;
	}
	if(myarraylen == 0)
	{
		return("");
	}

	//analyse de chaque morceau
	var newemail = "";
	for(j = 0; j < myarraylen ; j++)
	{
		email = myarray[j];
//		alert(email);

		// Vérification de la validité de email: si ok je renvoie email, sinon je renvoie ""
		var lastsubmenu = email.length - 1;

		if((email.indexOf("@") < 1) || (email.indexOf("@") != email.lastIndexOf("@")))
		{
//			alert("Invalid email address : @");
			return("");
		}
		else if((email.lastIndexOf(".") != lastsubmenu -2) && (email.lastIndexOf(".") != lastsubmenu -3))
		{
//			alert("Invalid email address : .");
			return("");
		}
		else if(email.indexOf("@") > email.lastIndexOf(".") - 3)
		{
//			alert("Invalid email address : @.");
			return("");
		}

		for(i = 0; i <= lastsubmenu; i++) // passage en revue des caractères et échec dès qu'un caractère n'est pas alphanumérique ou . - _ @
		{
			if((email.charAt(i) == ".") || (email.charAt(i) == "-") || (email.charAt(i) == "_") || (email.charAt(i) == "@") || (IsAlpha(email.charCodeAt(i))) || (IsNumeric(email.charCodeAt(i))))
			{
				continue;
			}
			else
			{
//				alert("Invalid email address : a-z,0-9,.,-,_");
				return("");
			}
		}

		if(newemail == "")
		{
			newemail = email;
		}
		else
		{
			newemail = newemail + "," + email;
		}
	}
	return(newemail);
}

function isSelectedCheckbox(elements,checkbox)
{
	// Vérifie si au moins une checkbox est cochée
	for(i=0;i<elements.length;i++)
	{
		if((elements[i].type == "checkbox")&&(elements[i].checked))
		{
			myString = new String(elements[i].name);
			if(myString.search(checkbox) >= 0)
			{
				return(true);
			}
		}
	}
	return(false);
}

function isSelectedSpecificElement(elements,name,value)
{
	// Vérifie si la checkbox ayant pour valeur value est cochée
	for(i=0;i<elements.length;i++)
	{
		if((elements[i].type =="checkbox")&&(elements[i].checked))
		{
			myString = new String(elements[i].name);
			myValue = new String(elements[i].value);
			if((myString.search(name)>=0)&&(myValue.search(value)>=0))
			{
				return(true);
			}
		}
	}
	return(false);
}

function resetForm(FormName)
{
	//resette les differents elements du formulaire
	var formulaire = (document.layers) ? document.mask.document.inter.document.FormName : document.forms["FormName"];

	for(i=0;i<formulaire.elements.length;i++)
	{
		formulaire.elements[i].disabled=0;
		switch (formulaire.elements[i].type)
		{
		case "select-one":
			formulaire.elements[i].selectedIndex="";
			break;
		case "hidden":
		case "text":
		case "textarea":
			formulaire.elements[i].value="";
			break;
		case "checkbox":
			formulaire.elements[i].checked=0;
			break;
		default:
		}
	}
}

/********************************************/
/* Fonction pour ouvrir une popup           */
/********************************************/

function popWindow(url,name,width,height,resizeable,scrollbars)
{
	//popup window générique
	if (name == '')
	{
		name = 'Bionatics';
	}
	if ((width == 0) || (width == ''))
	{
		width = 400;
	}
	if ((height == 0) || (height == ''))
	{
		height = 400;
	}
	win = window.open(url,name,"width="+width+",height="+height+",resizable="+resizeable+",toolbar=0,scrollbars="+scrollbars+"1,status=0,menubar=0");
}

/* spécifique pour enchaîner plusieurs images avec nom conventionnel */

function pop(image,nb)
{ 
	newWin = eval ("window.open(\"../pop.php?Image="+image+"&amp;Nombre="+nb+"\",\"pop\",\"top=10,left=10,width=100,height=100,resizable=1,menubar=0,scrollbars=1,status=0,titlebar=0,toolbar=0\");");
}


/************************************************/
/* Fonctions pour changer la langue d'affichage */
/************************************************/

function ChangeLangue(langue, old)
{
	if (langue==old)
	{
		document.cookie = "langue="+langue+"; path=/;";
	}
	else
	{
		document.cookie = "langue="+langue+"; path=/;";
		location.reload();
	}
}

/*****************************************/
/* Fonctions pour rediriger vers la page */
/*****************************************/

function gotoPage(page)
{
	if(page != "")
	{
		location.href = page;
	}
}

/********************************************/
/* Fonctions pour le défilement des tickers */
/* http://javascripts.vbarsan.com           */
/* This notice may not be removed           */
/********************************************/

//-- Begin Scroller's Parameters and message -->

//important note: text to be displayed can be set here or can be set before within variable wwholemessage
//if(string(wwholemessage)=="") wwholemessage='<span class="txtw">No message to display</span>';

//scroller width: change to your own;
var wwidth=490;

//scroller height: change to your own;
var wheight=15;

//scroller's speed: change to your own;
var sspeed=2;
var restart=sspeed;
var rspeed=sspeed;

//-- end Parameters and message-->

//-- begin: Scroller's Algorithm -->
var sizeupw=0;
var operbr=navigator.userAgent.toLowerCase().indexOf('opera');
if((operbr==-1)&&(navigator.product&&navigator.product=="Gecko"))
{
	var agt = navigator.userAgent.toLowerCase();
	var rvStart = agt.indexOf('rv:');
	var rvEnd = agt.indexOf(')', rvStart);
	var check15 = agt.substring(rvStart+3, rvEnd);
	
	if(parseFloat(check15)>=1.8) 
	{
		operbr=0;
	}
}

if (navigator.appVersion.indexOf("Mac")!=-1) 
{
	operbr=0;
}

function startw()
{
	if(document.getElementById)
	{
//		alert('ns6');
		ns6marqueew(document.getElementById('wslider'));
	}
	else if(document.all) 
	{
//		alert('ie');
		iemarqueew(wslider);
	}
	else if(document.layers)
	{
//		alert('ns4');
		ns4marqueew(document.wslider1.document.wslider2);
	}
	else
	{
//		alert('inconnu');
	}
}

function iemarqueew(whichdiv)
{
	iedivw=eval(whichdiv);
	iedivw.style.pixelLeft=wwidth;
	iedivw.innerHTML='<nobr>'+wwholemessage+'</nobr>';
	sizeupw=iedivw.offsetWidth;
	ieslidew();
}

function ieslidew()
{
	if(iedivw.style.pixelLeft>=sizeupw*(-1))
	{
		iedivw.style.pixelLeft-=sspeed;
		setTimeout("ieslidew()",50);
	}
	else
	{
		iedivw.style.pixelLeft=wwidth;
		ieslidew();
	}
}

function ns4marqueew(whichlayer)
{
	ns4layerw=eval(whichlayer);
	ns4layerw.left=wwidth;
	ns4layerw.document.write('<nobr>'+wwholemessage+'</nobr>');
	ns4layerw.document.close();
	sizeupw=ns4layerw.document.width;
	ns4slidew();
}
	
function ns4slidew()
{
	if(ns4layerw.left>=sizeupw*(-1))
	{
		ns4layerw.left-=sspeed;
		setTimeout("ns4slidew()",50);
	}
	else
	{
		ns4layerw.left=wwidth;ns4slidew();
	}
}
		
		
function ns6marqueew(whichdiv)
{
	ns6divw=eval(whichdiv);
	ns6divw.style.left=wwidth+'px';
	ns6divw.innerHTML='<nobr>'+wwholemessage+'</nobr>';
	//sizeupw=ns6divw.offsetWidth; // offsetWidth is a property of IE
	sizeupw=5.5*wwholemessage.length; // formula to obtain approximation of the length in pixel of the message to display (font is 11px)
	/*
	if(operbr!=-1)
	{
		document.getElementById('operaslider').innerHTML='<nobr>'+wwholemessage+'</nobr>';
		sizeupw=document.getElementById('operaslider').offsetWidth;
	}
	*/

	ns6slidew();
}

function ns6slidew()
{
//	alert(parseInt(ns6divw.style.left));
//	alert(sizeupw);
	if(parseInt(ns6divw.style.left)>=sizeupw*(-1))
	{
//		alert("slide");
		newpos=parseInt(ns6divw.style.left)-sspeed;
		ns6divw.style.left=newpos+'px';
		setTimeout("ns6slidew()",50);
	}
	else
	{
		ns6divw.style.left=wwidth+'px';
		ns6slidew();
	} 
}

//-- end Algorithm -->

//-- begin div creation where tickers will be displayed -->

function createDivTicker()
{
	if(document.getElementById || document.all)
	{
		document.write('<div style="position:relative;overflow:hidden;width:'+wwidth+'px;height:'+wheight+'px;clip:rect(0 '+wwidth+' '+wheight+' 0);" onmouseover="sspeed=0;" onmouseout="sspeed=restart;">');

		if(operbr!=-1) 
		{
			document.write('<div id="operaslider" style="position:absolute;visibility:hidden;"></div>');
		}

		document.write('<div id="wslider" style="position:relative;height:'+wheight+'px;"></div></div>');
	}
	else if(document.layers) 
	{
		document.write('<ilayer width=&{'+wwidth+'}; height=&{'+wheight+'}; name="wslider1"><layer name="wslider2" width=&{'+wwidth+'}; height=&{'+wheight+'}; onmouseover="sspeed=0;" onmouseout="sspeed=restart;"></layer></ilayer>');
	}
}

//-- end div creation  -->


