function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  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=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function GetId(id)
{
return document.getElementById(id);
}

var ib_visible=false; // La variable ib_visible nous dit si la bulle est visible ou non

function movemouse(e) {
  if(ib_visible) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
    if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
    GetId("curseur").style.left=e.pageX + 5;
    GetId("curseur").style.top=e.pageY + 10;
    }
    else {
    GetId("curseur").style.left=window.event.x + 5;
    GetId("curseur").style.top=window.event.y + 10 + document.body.scrollTop;
    }
  }
}

function montre_bulle(text) {
  if(ib_visible==false) {
  GetId("curseur").style.visibility="visible";
  GetId("curseur").innerHTML = text;
  ib_visible=true;
  }
}

function cache_bulle() {
if(ib_visible==true) {
GetId("curseur").style.visibility="hidden";
ib_visible=false;
}
}
// des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
document.onmousemove=movemouse;

//vérifie si un texte est bien constitué uniquement de nombres
function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
return IsNumber;
}

//verifie si une adresse email est valide
function ValidEmail(elm)
{
if (elm.value.indexOf("@") != "-1" &&
    elm.value.indexOf(".") != "-1" &&
    elm.value != "")
    return true;

return false;
}

//verifie si une chaine de caractère contient des caractères interdit
//@-_*.!?,;:%+-/=`~#&
function ForbiddenCharacters(chaine)
{
var ok=1;
if (chaine.value.indexOf("@") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("-") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("_") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("*") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf(".") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("!") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("?") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf(",") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf(";") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf(":") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("%") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("+") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("-") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("/") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("=") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("`") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("~") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("#") != "-1" && ok==1)
	{
	ok=0;	
	}
if (chaine.value.indexOf("&") != "-1" && ok==1)
	{
	ok=0;	
	}

if(ok==1)
	{
	return false;	
	}
else
	{
	return true;	
	}	
}

//variable globale pour le popup
var wpopup;

//ouvre une fenetre en popup
function OpenPopup(page,pagename,pagewidth,pageheight)
{
w=window.open(page,pagename,"width="+pagewidth+",Height="+pageheight+"");
w.focus();	
}

//fonction pour ecrire un cookie avec
//différents arguments possible
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.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=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}

//utilise par lirecookie
function getCookieVal(offset)
{
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

//Fonction qui lit un cookie et renvoie sa valeur
function LireCookie(nom)
{
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
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;
}

//fonction pour effacer un cookie
function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}

//change la page en cours selon le choix dans le menu
function MenuChange(myurl,mymenu)
{
document.menu.incpage.value=myurl;
document.menu.incmenu.value=mymenu;
document.menu.submit();	
}

//validité adresse email
function VerificationEmail(elm)
{
if (elm.value.indexOf("@") != "-1" &&
    elm.value.indexOf(".") != "-1" &&
    elm.value != "")
    return true;

return false;
}

//affichage des photos
function ShowPicture(picname)
{
document.photo.src="../pictures/"+picname+".jpg";	
document.photos.id_photo.value=picname;
}

//validation de la page 1 du paiement
function ValidatePayment1(msg_price,msg_email,msg_nickname)
{
var ok=1;
if(document.payment1.timecredit.value==""&&ok==1)
	{
	alert(msg_price);
	document.payment1.timecredit.focus();
	ok=0;	
	}
if(document.payment1.email.value==""&&ok==1)
	{
	alert(msg_email);
	document.payment1.email.focus();
	ok=0;	
	}
if(ValidEmail(document.payment1.email)==false&&ok==1)
	{
	alert(msg_email);
	document.payment1.email.focus();
	ok=0;	
	}
if(document.payment1.nickname.value==""&&ok==1)
	{
	alert(msg_nickname);
	document.payment1.nickname.focus();
	ok=0;	
	}
if(ok==1)
	{
	document.payment1.submit();	
	}
}

//validation du ticket d'accès sur la page 2 du paiement
function ValidateTicket(error_msg)
{
if(document.payment2.ticket.value.length<8)
	{
	alert(error_msg);
	document.payment2.ticket.focus();	
	}
else
	{
	document.payment2.submit();	
	}	
}

//validation du ticket en cas d'acces direct
function ValidateDirectTicket(error_msg,nickname_msg,badchar_msg)
{
var ok=1;
//nickname non vide
if(document.accesdirect.nickname.value==""&&ok==1)
	{
	alert(nickname_msg);
	document.accesdirect.nickname.focus();
	ok=0;	
	}
//nickname sans caractères interdits ! %
if((document.accesdirect.nickname.value.indexOf("%") != "-1" || document.accesdirect.nickname.value.indexOf("!") != "-1") &&ok==1)
	{
	alert(badchar_msg);
	document.accesdirect.nickname.focus();
	ok=0;	
	}
//ticket 8 caractères
if(document.accesdirect.ticket.value.length<8&&ok==1)
	{
	alert(error_msg);
	document.accesdirect.ticket.focus();
	ok=0;	
	}
if(ok==1)
	{
	document.accesdirect.submit();	
	}	
}

//actualise la fenetre du visioshow si l'utilisateur
//clique parce que chat ou streaming bloqué
//n'autorise que 3 refresh
function RefreshVisioshow(msg)
{
document.chrono.reload.value=parseInt(document.chrono.reload.value,10)+1;
if(document.chrono.reload.value<=3)
	{
	document.chrono.submit();
	}
if(document.chrono.reload.value>3)
	{
	alert(msg);
	window.close();
	}	
}

//change le mois en cours pour l'affichage des statistiques
function SetStatMonth()
{
document.statistiques.mode.value="changemois";
document.statistiques.selecteddate.value="";
document.statistiques.start.value=0;
document.statistiques.submit();	
}

//affiche le détail des statistiques pour une journée particulière
function StatDetails(selecteddate)
{
document.statistiques.mode.value="statdetails";
document.statistiques.selecteddate.value=selecteddate;
document.statistiques.start.value=0;
document.statistiques.submit();		
}

//change la page de details des stats en cours si l'affichage
//dépasse la limite et donc présentation en plusieurs fois
function ChangeStatPage(selecteddate,startpoint)
{
document.statistiques.mode.value="changestatpage";
document.statistiques.selecteddate.value=selecteddate;
document.statistiques.start.value=startpoint;
document.statistiques.submit();		
}
//change le modèle de routeur dont on affiche l'aide technique
//page "aide technique" de l'espace de gestion
function SetSubModel(id)
{
document.aidetechnique.sub_model.value=id;
document.aidetechnique.submit();
}

//modifie la page en cours d'affichage pour les tableaux
function Set_StartResult(start,jsform,mode)
{
	eval("document."+jsform+".mode.value=mode");
	eval("document."+jsform+".start_result.value=start");
	eval("document."+jsform+".submit()");
}

//valide le formulaire popup de demande de rendez-vous 
//avec un performer non connecté
//21600000 sec = 12 heures , 604800000 = 7 jours
function ValidateRdv(confirm_msg,email_msg,date_msg,date_msg2,time_msg)
{
var ok=1;
//date et heure actuelle
var current_date=new Date();
//date et heure du rdv
var rdv_date=new Date(current_date.getFullYear(),parseInt(document.performer_rdv.month.value,10)-1,parseInt(document.performer_rdv.day.value,10),parseInt(document.performer_rdv.hour.value,10),parseInt(document.performer_rdv.min.value,10),0);
//test au moins 6 heures d'avances pour le rendez-vous
if((rdv_date.getTime()<=(current_date.getTime()+21600000))&&ok==1)
	{
	alert(date_msg);
	ok=0;
	}
//test rendez-vous dans 7 jours maxi
if((rdv_date.getTime()>=(current_date.getTime()+604800000))&&ok==1)
	{
	alert(date_msg2);
	ok=0;
	}
if((ValidEmail(document.performer_rdv.email)==false)&&ok==1)
	{
	alert(email_msg);
	ok=0;
	}
if(ok==1)
	{
	if(confirm(confirm_msg))
		{
		document.performer_rdv.submit();
		}
	}
}

//valide le formulaire popup d'alerte email pour un performer
function ValidateEmailAlert(email_msg,confirm_msg)
{
var ok=1;
if((ValidEmail(document.performer_emailalert.email)==false)&&ok==1)
	{
	alert(email_msg);
	ok=0;
	}
if(ok==1)
	{
	if(confirm(confirm_msg))
		{
		document.performer_emailalert.submit();
		}
	}
}

//accepte ou refuse la demande de rendez-vous
//answer doit être accept ou refuse
function AnswerMeetingRequest(id,answer,msg)
{
document.demanderdv.mode.value=answer;
document.demanderdv.id_rdv.value=id;
document.demanderdv.start_result.value="0";
if(confirm(msg))
	{
	document.demanderdv.submit();
	}
}