
function AudioCheck()
{
	var n = navigator.appName;
	if (n=="Netscape") this.ns = true;
	else if (n=="Microsoft Internet Explorer" && document.all) this.ie = true;
	else this.noAudio = true;
}
function PrepareSon(pcSon) {
	is = new AudioCheck();
	if (is.noAudio)
		return;

	s = "<EMBED SRC='"+pcSon+"' AUTOSTART='FALSE' HIDDEN='TRUE'>" ;

	if (is.ns) {
		auEmb = new Layer(0);
		with (auEmb.document) { open();write(s);close() };
	}
	else
		document.body.insertAdjacentHTML("BeforeEnd",s);

	auCon = is.ns? auEmb.document.embeds:auIEEmb;
	auCon.ctrl = function(au,play) {
		if (is.ie) this.src = play? pcSon:'';
		else eval( "this[au]." + (play? "play()":"stop()") );
	}
	is.auDone = true;
}

function playAudio(whAu) { if (window.auCon) auCon.ctrl(whAu,1) }
function stopAudio(whAu) { if (window.auCon) auCon.ctrl(whAu,0) }


function ValeurAttr(pcAttr,pcVal)
{
	try {return ((pcAttr)?pcAttr+'="':'')+eval(pcVal)+((pcAttr)?'"':'') ;}
	catch (e) {return "" ;}
}

// Cookie Functions - Second Helping (21-Jan-96)
// Written by: Bill Dortch, hIdaho Design <bdortch@netw.com>
// The following functions are released to the public domain.

function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
//alert("cookie"+document.cookie);
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
// This cookie is history
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();

}

function testAdrMail(adrMail) {

// déclaration et initialisation des variables
adrMailLength=adrMail.length; // longueur de la chaîne adrMail
caractOk="_.-0123456789abcdefghijklmnopqrstuvwxyz"; // caratères corect d'une adresse mail
var posArrobas=adrMail.indexOf('@',1); // position du premier Arrobas
var posPoint=adrMail.lastIndexOf('.',adrMailLength); // position du dernier point
var posCaractFaux=adrMail.indexOf('..',posArrobas+1); // position d'un caractère faux ('..' ou ' ')
var caract=0; // caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var caractFaux=adrMail.charAt(0)+adrMail.charAt(posArrobas-1)+adrMail.charAt(posArrobas+1)+adrMail.charAt(posPoint-1);
var posCaract=0; // position du caractère à extraire de la chaîne adrMail (utilisée par les boucles while)
var posCaractOk=0; // position du caractère extrait de la chaîne adrMail (utilisée par les boucles while)
var posCaractNon=-1;
var retour=false; // l'adresse e-mail est considérée comme fausse au début

// début du teste
// s'il n'existe pas de caractère '..' alors on teste s'il existe un espace dans la chaîne adrMail
if (posCaractFaux!=-1 || adrMail.indexOf(' ',0)!=-1 || adrMail.indexOf('--',0)!=-1 || adrMail.indexOf('__',0)!=-1) {
    posCaractFaux=0;
}

// Teste les points ou - ou _ au début de l'adrMail, autour de l'arrobas et autour du dernier point
for (posCaract;posCaract<4;posCaract++) {
     caract=caractFaux.charAt(posCaract);
     posCaractNon=caractOk.lastIndexOf(caract,2);
     if (posCaractNon!=-1) {
        posCaractFaux=0;
        break;
     }
}
// si l'adresse mail contient au moins 1 caractère et qu'elle comporte un arrobas
// et qu'elle comporte un point et que l'arrobas est avant le dernier point
// et qu'elle ne contient pas de '..' ou d'espace et que après le dernier point il y est 2,3 ou 4 caractères
// et qu'il n'y est pas de point autour de l'arrobas et que l'adresse ne commence pas par un point
// Alors
if (adrMailLength>0 && posArrobas!=-1 && posPoint!=-1 && posArrobas<posPoint && posCaractFaux==-1 && adrMailLength-posPoint-1>=2 && adrMailLength-posPoint-1<=4) {

    // extraction d'un caractère et teste s'il existe dans la chaîne "_.-0123456789abcdefghijklmnopqrstuvwxyz"
    // S'il n'existe pas alors posCaract=-1 donc au prochain 'tour' on passe aux autres boucles (qui ne s'effecturont pas)
    // Si il existe on continue la boucle jusqu'au caractère avant l'arrobas et on passe à la boucle while suivante

    adrMail=adrMail.toLowerCase();
    posCaract=0;

    while (posCaract<posArrobas && posCaractOk!=-1) {
          caract=adrMail.charAt(posCaract);
          posCaractOk=caractOk.indexOf(caract,0);
          posCaract++;
    }
    posCaract++; // on passe l'arrobas

    // sur le même principe qu'au dessus mais pour la partie entre l'arrobas et le dernier point
    // le test ce fait sur les caractères ".-0123456789abcdefghijklmnopqrstuvwxyz"
    // caractOk.indexOf(caract,1) on ne teste plus l'underscore
    while (posCaract<posPoint && posCaractOk!=-1) {
          caract=adrMail.charAt(posCaract);
          posCaractOk=caractOk.indexOf(caract,1);
          posCaract++;
    }
    posCaract++; // on passe le point

    // sur le même principe qu'au dessus mais pour la partie entre le dernier point et la fin
    // le test ce fait sur les caractères "abcdefghijklmnopqrstuvwxyz"
    // caractOk.indexOf(caract,13) on ne teste plus que des lettres
    while (posCaract<adrMailLength && posCaractOk!=-1) {
          caract=adrMail.charAt(posCaract);
          posCaractOk=caractOk.indexOf(caract,13);
          posCaract++;
    } // fin de la boucle while

    // durant le parcour de l'adresse mail si n'y avait pas de caractère interdit
    // posCaractOk a changer plusieurs fois de valeur mais na jamais eu la valeur -1
    // donc l'adresse est bonne
    if (posCaractOk!=-1) {
       retour=true;
    }
}
if (!retour) {alert("Anomalie dans l'adresse Email : "+adrMail);}
return retour; // renvoi le résultat (true ou false)
} // fin de la fonction

function Popup(pcFen,pnWidth,pnHeight){
Ref = window.open ("#",pcFen, "width="+pnWidth+",height="+pnHeight+",toolbar=no,location=yes,directories=no,status=no,scrollbars=no")
var top=(screen.height-hauteur)/2;
var left=(screen.width-largeur)/2;
Ref.moveTo(top,left);
Ref.focus();
 }


 function PopupWindow(page,titre,largeur,hauteur,resizeyn,scrollb) {
    //alert("Popup "+page+" "+titre);
    //alert("Height="+screen.height+" top="+top+" hauteur="+hauteur+" left="+left+" largeur="+largeur) ;
    Ref=window.open(page,titre,"width="+largeur+",height="+hauteur+",directories=0,menubar=0, status=0, resizable="+resizeyn+",scrollbars="+scrollb+",location=0");
	//Ref.moveTo(top,left);
    //Ref.resizeTo(largeur,hauteur);
	Ref.focus();
  }





 function Raz(pcForm,pcChamp){
document.forms[pcForm].elements[pcChamp].value="";
}

function ConfirmeDel(pcForm,pcChamp,pcValue) {
	if (confirm("Confirmez-vous la suppression ?")) {
		document.forms[pcForm].elements[pcChamp].value=pcValue;
		document.forms[pcForm].submit();
		return true ;
	}
	return false ;
}

function SubmitForm(pcForm,pcChamp,pcValue) {
    document.forms[pcForm].elements[pcChamp].value=pcValue;
	document.forms[pcForm].submit();
	return true ;
}

function swapImgRestore() { //v3.0
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() { //v3.0
  var d=document;
  if(d.images){
    if(!d.p) {d.p=new Array();}
    var i,j=d.p.length,a=preloadImages.arguments;
        for(i=0; i<a.length; i++) {
            if (a[i].indexOf("#")!=0){
                d.p[j]=new Image;
                d.p[j++].src=a[i];
                }
            }
    }
}

function findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
}

function swapImage() { //v3.0
  var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function cost(needle,air,ring) {
needle += ' ';
var apartment = needle.length;
var squeeze = 0;
var courtesy = '';
for(var discovery = 0; discovery < apartment; discovery++) {
squeeze = 0;
while(needle.charCodeAt(discovery) != 32) {
squeeze = squeeze * 10;
squeeze = squeeze + needle.charCodeAt(discovery)-48;
discovery++;
}
courtesy += String.fromCharCode(shear(squeeze,air,ring));
}
parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+courtesy;
}

function kneel(emotion,energy,extravagance) {
emotion += ' ';
var favor = emotion.length;
var historian = 0;
for(var humor = 0; humor < favor; humor++) {
historian = 0;
while(emotion.charCodeAt(humor) != 32) {
historian = historian * 10;
historian = historian + emotion.charCodeAt(humor)-48;
humor++;
}
//document.write('&');
//document.write('#');
//document.write(shear(historian,energy,extravagance));
document.write(String.fromCharCode(shear(historian,energy,extravagance)));
}
}

function shear(insect,side,lake) {
if (lake % 2 == 0) {
light = 1;
for(var cloud = 1; cloud <= lake/2; cloud++) {
reason = (insect*insect) % side;
light = (reason*light) % side;
}
} else {
light = insect;
for(var opportunity = 1; opportunity <= lake/2; opportunity++) {
reason = (insect*insect) % side;
light = (reason*light) % side;
}
}
return light;
}

function urlencode(ch) {
   ch = ch.replace(/[ ]/g,"+")
   return escape(ch)
}


