<!--
var fenetre;var som_expo;var numero; var mUndefined;

// determine si on navigue avec explorer.	
function navig() {crosoft=(navigator.appName.indexOf("Microsoft")!=-1)}

// recharge la page.
function rel() {location.reload();}

// envoie un mail à redaction@coconino.fr, "sujet" et "contenu" sont facultatifs
// on peut ecrire : courrier(); pour l'appeler.
function courrier(sujet, contenu) {self.location="mailto:redaction@coconino.fr"+((sujet!=null)?("?subject="+sujet):(""));}


// séquence la chaine mNUrl, suite d'éléments séparés par des virgules, et place les éléments dans un tableau appelé bout[] à partir de l'indice i, en général de valeur initiale i=0. La fonction est récursive, et elle est toujours appelée par les scripts : callpage2; testrequete; faitlapop et faitlapop2.
function sequenceur(i,mNUrl) { 
                          indice=mNUrl.indexOf(",") ;
                          if (indice!=-1) {
                                           bout[i]=mNUrl.substring(0,indice); 
                                           mNUrl=mNUrl.substring(indice+1);
                                           i=i+1; 
                                           sequenceur(i,mNUrl);
                                           }
                          else {  
                                           bout[i]=mNUrl;
                                           }
                        }

//Récupère une requete située dans l'adresse de la page et déclenche le chargement d'une nouvelle page à l'adresse indiquée dans cette requète pour la frame supérieure, et à l'adresse indiquée par le paramètre "bas" (jaune_exp.htm ou black_exp.htm) pour la frame inférieure. Le script n'apparait que dans l'expo sur accueil.htm et detect.htm et permet d'afficher un contenu demandé depuis le portail par exemple.
function callpage2(bas)  {
			i=0;
                       	bout= new Array();
			mNUrl=new String(parent.location.search);
                     if (mNUrl=="") return;
                       	mNUrl=mNUrl.substring(1);
			sequenceur(i,mNUrl);
		       	strRep='';
		for(i=0;i<parseInt(bout[0]);i++){
			strRep+="../";// le premier élement de la requete est un chiffre qui indique le nombre de dossiers à remonter pour trouver le fichier indiqué comme second element de la requete.
		}	
			reste=bout[2];
			for (i=3;i<bout.length;i++) {reste=reste+','+bout[i];}
			mNUrl=strRep+bout[1]+'.htm?'+reste;// après l'adresse on place les eventuels éléments restants de la première requetre dans une nouvelle requete (ex: une pop-up à ouvrir une fois la page chargée).
			bas=bas+'.htm';
			if (bas!='undefined.htm') {top.FrBlind.location.href=bas;self.location.href=mNUrl;}
			else return mNUrl;
                       	}
						
//ouvre la page dont l'adresse est indiquée dans "lien", en passant "requete" comme requete, et dans "blind" l'adresse de la frame inferieure à ouvrir (jaune_exp.htm ou black_exp.htm). Utlisé seulement dans l'expo ou son sommaire. Recourt à doMove1 si le script agit depuis le sommaire en pop-up, ou doMove si il agit depuis la fenetre principale de l'expo.
function Slabonne(lien,requete,blind) {if (window.name=="TS550467012"||window.name=="TS550467011"||self.name=="liste"&&lien!="")
					 {doMove1(lien,requete,blind);} 
					else {doMove(lien,requete,blind);}}
					
// charge l'adresse "lien" dans la frame supérieure suivie de la requete "requete", et l'adresse "blind" dans la frame inferieure.					
function doMove(lien,requete,blind) { 
//alert('doMove('+lien+','+requete+','+blind+')');
	top.FrSite.location.href=lien+'.htm?'+requete;
	top.FrBlind.location.href=blind+'.htm';}

// Agit comme doMove, mais depuis la pop-up sommaire de l'expo, où toControl designe la fenetre principale, valeur initialisée lors de l'ouverture du sommaire.
function doMove1(lien,requete,blind) { 
//alert('doMove1('+lien+','+requete+','+blind+')');
	top.toControl.FrSite.location=lien+'.htm?'+requete;
	top.toControl.FrBlind.location=blind+'.htm';}


// Utilisé dans les modules monopage: une seule page html permet de visionner l'une après l'autre toute une séquence d'images sur le principe d'un roll-over. Le script deplace un pointeur selon le sens (-1 ou +1) dans un liste de fichiers images numérotés et affiche dans la page l'image désignée."type", jpg ou gif, désigne le type d'images de la séquence. "taille", indique le nombre d'images de la séquence.
var val_num;zeros="";var racine="";// les variables seront conservées entre deux appels à zgplace.
function zgplace(sens,type,taille) {       if(racine=="") {defracine('.htm','/');}
// Si besoin est, définit ( par defracine(); ) à partir du nom de la page où on se trouve la racine qui sera suivie d'un numéro pour désigner les images que l'on va swapper.
					   val_numsuiv=val_num+sens;
					   if (val_numsuiv>0 && val_numsuiv<=taille)
// gère le passage aux dizaines, ou aux centaines par l'ajout ou le retrait de "0" devant la chaine.
					   {       if (String(val_numsuiv).length!=String(val_num).length)
					                   {if (String(val_numsuiv).length<String(val_num).length)                                                  						   					                                                                   {zeros+="0";} else {nlle_longueur=zeros.length-1;
							                 zeros=zeros.substring(0,nlle_longueur);}
                                                           }
// voilà, c'est fait.
					   numero=zeros+String(val_numsuiv);val_num=val_numsuiv;

					   gdpicture=racine+numero+"."+type;// reconstitue le nom du fichier à afficher.
					   document.limage.src=gdpicture;// charge le fichier comme source de l'image nommée "limage".
					   }
					   else //si "taille" est dépassée, on charge la page htm de couverture du module.
					   {gdpicture="cv"+racine+".htm";
					   location.href=gdpicture;
					   }
				   }

// Sur la page d'un module monopage, ce script lit dans la requete quelle image du module il doit afficher.
function testrequete(type,taille) {
					numero=location.search;
				         numero=numero.substring(1);	 
					 i=0;
					 bout= new Array();
					 sequenceur(i,numero);
					 numero=bout.length;
					 numero=bout[numero-1];// le numéro de l'image a afficher est stocké dans le dernier élément de la requete.
                                         val_num=Math.abs(numero);
					 ecart=numero.length-String(val_num).length;
					 for (i=0; i<ecart; i++)
					 zeros=zeros+"0";
				         zgplace(0,type,taille);
				         }

// définit la chaine, racine pour désigner les images à swapper dans le module en ajoutant une numérotation, ou la page de couverture en la faisant préceder de "cv".
function defracine(ext,deb)  {racine=location.href; // tous les fichiers du module sont nommés d'aprés une même racine qui sert déjà à désigner la page où l'on se trouve.
		       i=racine.indexOf(ext);
//dans l'adresse de la page, la racine est ce qui se trouve entre "deb", en général "/" et "ext", en général ".htm", c'est à dire le nom du fichier lui-même.
			racine=racine.substring(0,i);
			fin=i-1;
			do {caractere=racine.substr(i-1,1);i--;}
			while ((caractere)!=deb)
			racine=racine.substr(i+1,fin)
		       }

// Declenche l'ouverture automatique d'un lien de la page (en général en pop-up), s'il est indiqué dans la requete.
function faitlapop()  {	
	laferme();// commence par fermer une eventuelle pop-up déjà ouverte.
	pop=location.search;
	pop=pop.substring(1);if (pop==""||pop==',') return;
	bout= new Array();
	sequenceur(0,pop);
	pop=bout[0];
	lien=Math.abs(pop);
	// cherche dans le tableau links[] si un élément correspond à la requete :
	//d'abord si le lien est indiqué dans la requete par son numéro dans le tableau (presque plus utilisé) : 
		if (lien==pop) {document.location=document.links[pop];
			return;
			}
	//Ensuite si l'un des éléments de links[] comporte la chaine extraite de la requete.
		for(i=0;i<document.links.length;i++)
	{
	rac=document.links[i];
	rac=String(rac);
	if (rac.indexOf(pop)!=-1) {
        
	document.location=document.links[i];return;
	}
	}
        }

function faitlapop2()  {	
	pop=location.search;
	pop=pop.substring(1);if (pop==""||pop==',') return false;
	bout= new Array();
	sequenceur(0,pop);
	pop=bout[0];
	for (m=0;m<document.forms.length;m++)
	{
		for(i=0;i<document.forms[m].select.options.length;i++)
	{
	rac=document.forms[m].select.options[i].value;
	if (rac.indexOf(pop)!=-1) {
	c = new Option(document.forms[m].select.options[i].text,rac,true,true);
    document.forms[m].select.options[i]=c;
	jumpMenu(document.forms[m].select);break;}
	}
	}
        }

//Remplace la fonction MM_jumpMenu()lorsque le menu doit ouvrir des pop-up (ex: classics, krazy express). Dans ce cas la valeur de l'option indique l'adresse à ouvrir suivie en requete, et séparés par des virgules, des parametre de la pop-up, largeur, hauteur, scrollbars.
//( le script faitlapop2() que l'on trouve en général sur les pages où se trouve jumpMenu(), agit comme faitlapop() mais au lieu de chercher dans links[], il recherche dans forms[] l'élément à ouvrir correspondant à la requete.)
function jumpMenu(selObj){			
									scroleur="no";//sans scrollbars, par defaut.
									part1=selObj.options[((selObj.mSelected!=null)?(selObj.mSelected):(selObj.selectedIndex))].value;//part1 reçoit la valeur de l'option selectionnée.
//									indy=part1.indexOf("?");
									indy=part1.lastIndexOf("?");
									if (indy==-1) {eval("self.location.href='"+part1+"';");}
									part2=part1.substring(indy+1,indy+4);//la largeur a toujours 3 chiffres
								    part3=part1.substring(indy+5,indy+8);//idem pour la hauteur
									part4=part1.substring(indy+9,indy+10);//la présence d'un seul caractère, n'importe lequel, indique d'afficher les scrollbars.
									part1=part1.substring(0,indy);
									if (part1!="") {
									if (part4!="") {scroleur="yes";}
									part2=Math.abs(part2);
									part3=Math.abs(part3);
									laferme();//on ferme une eventuelle pop-up précedemment ouverte.
									top.fenetre=window.open(part1,'TS550467011','width='+part2+',height='+part3+',scrollbars='+scroleur);
									top.fenetre.toControl=top;// on fait passer dans une variable de la fenetre créée (toControl) la valeur de la fenetre principale, pour que la pop-up puisse agir à son tour sur la fenetre-mère si besoin est.
									top.fenetre.focus();}//On met la pop-up au premier plan si besoin est.
						}

//Ce script neutralise le clic droit pour empecher l'utilisateur d'enregistrer les images, à la place, il ouvre une boite de dialogue avec le copyright de l'image (stocké dans la variable "message").
// la page qui appelle ce script doit comporter le code suivant:
//message='© MARINI & SMOLDEREN / Dargaud'; 
//if (document.layers) window.captureEvents(Event.MOUSEDOWN);
//window.onmousedown=right;
//document.onmousedown=right;
function right(e) {
if (navigator.appName == 'Netscape' &&
(e.which == 3 || e.which == 2))
return false;
else if (navigator.appName == 'Microsoft Internet Explorer' &&
(event.button == 2 || event.button == 3)) {
alert(message);
return false;
}
return true;
}
document.oncontextmenu = function(){return false;};

//ouvre une pop-up sans scrollbars, "a" c'est l'adresse, "b" la largeur, "c" la hauteur.
function ouvrefenetre(a,b,c) {laferme();top.fenetre=window.open(a,"TS550467011","width="+b+",height="+c+",resizable=0");
top.fenetre.toControl=top;// on fait passer dans une variable de la fenetre créée (toControl) la valeur de la fenetre principale, pour que la pop-up puisse agir à son tour sur la fenetre-mère si besoin est.
top.fenetre.focus();}//On met la pop-up au premier plan si besoin est.

//ouvre une pop-up avec scrollbars, "a" c'est l'adresse, "b" la largeur, "c" la hauteur.
function ouvretruc(a,b,c) {top.truc=window.open(a,"TS550467012","width="+b+",height="+c+",scrollbars=yes");
top.truc.toControl=top;}// on fait passer dans une variable de la fenetre créée (toControl) la valeur de la fenetre principale, pour que la pop-up puisse agir à son tour sur la fenetre-mère si besoin est.

//ouvre le sommaire de l'expo dont l'adresse est "a". La fonction vérifie d'abord qu'il n'est pas déjà ouvert, si oui elle le remet simplement au premier plan.
function ouvresom_Expo(a) {
	if((typeof top.som_expo)=="undefined"||((typeof top.som_expo)!="undefined"&&top.som_expo.closed)){;
	top.som_expo=window.open(a,"TS550467018","width=360,height=450");
	top.som_expo.toControl=top;// on fait passer dans une variable (toControl) de la fenetre créée (som_expo) la valeur de la fenetre principale, pour que la pop-up puisse agir à son tour sur la fenetre-mère, indispensable pour un sommaire.
	}else{top.som_expo.focus();}
}

//ouvre le sommaire du portail dont l'adresse est "a". La fonction vérifie d'abord qu'il n'est pas déjà ouvert, si oui elle le remet simplement au premier plan.
function ouvresom_Portail(a) {
	if((typeof top.som_portail)=="undefined"||((typeof top.som_portail)!="undefined"&&top.som_portail.closed)){;
	top.som_portail=window.open(a,"TS550467010","width=360,height=450");
	top.som_portail.toControl=top;// on fait passer dans une variable (toControl) de la fenetre créée (som_portail) la valeur de la fenetre principale, pour que la pop-up puisse agir à son tour sur la fenetre-mère, indispensable pour un sommaire.
	}else{top.som_portail.focus();}
}

//teste si une pop-up est déjà ouverte et la ferme. N'agit pas avec les fenetres ouvertes   par ouvresom_portail(), ouvresom_expo() et ouvretruc().
function laferme() {
	if((typeof top.fenetre)==(typeof mUndefined)) return;
	if(top.fenetre.closed) return;
	top.fenetre.close();
	top.fenetre=mUndefined;}
	
window.defaultStatus = "COCONINO-WORLD.COM - Un monde d'images au beau milieu du web !";
	
/* Ces scripts ont été écrits par J-E VERMOT-DESROCHES, avec l'aide d'Emmanuel from ashita-studio. */
/*           Nous vous en souhaitons une bonne utilisation           */
//-->