// Scripts génériques du site


// Gestion des menus du bas
var sf_menubas= {
	// Place le hover sur les images et textes des menus du bandeau "book"
	init:function() {
		// Images
		var	objects=NC.tools.searchClass('menuimg'),i,j=1;
		for(var i in objects) {
			objects[i].mnuNB=j++;
			objects[i].onmouseover=function() { sf_menubas.active(this.mnuNB,1) };
			objects[i].onmouseout=function() { sf_menubas.active(this.mnuNB,0) };
		}
		// Textes
		objects=NC.tools.searchClass('menutexte');
		j=1;
		for(var i in objects) {
			objects[i].mnuNB=j++;
			objects[i].onmouseover=function() { sf_menubas.active(this.mnuNB,1) };
			objects[i].onmouseout=function() { sf_menubas.active(this.mnuNB,0) };
		}
	},

	active:function(id,op) {
		var ombre=document.getElementById('ombre'+id);
		if(ombre) ombre.style.display=op ? 'block' : 'none';
	}
}


// --------------------------



// Affichage d'une mire d'attente éventuelle puis lancement de la routine Ajax 
function sf_ajaxLoader(url0,id0,params,autocenter) {
	var delay=200					// délai avant de lancer la requête ajax
	if(!params) var params={}

	// -- affichage de l'indicateur de progression
	if(id0.indexOf('~')!=-1) {
		var x=id0.split('~'),id=x[0]
		if(!x[2]) x[2]=20			// alpha du conteneur

		var l=document.getElementById(x[1])
		if(l) {
			l.style.filter='alpha(opacity=0)';l.style.opacity=0;l.style.display='block'		// permet de lire la taille de l'image mais sans la rendre apparente
			if(autocenter==1) {	
				l.style.top=Math.floor((i.offsetHeight-l.offsetHeight)/2)+'px'
				l.style.left=Math.floor((i.offsetWidth-l.offsetWidth)/2)+'px'
			}
			l.style.filter='alpha(opacity=100)';l.style.opacity=1;
		}
	}
	else id=id0

	// --  estompage du contenu actuel
	var i=document.getElementById(id)
	if(i) i.style.filter='alpha(opacity=0'+x[2]+')';i.style.opacity=x[2]/100;

	// -- lancement du rafraichissement du contenu, après délai éventuel
	setTimeout('sf_ajaxLoad("'+url0+'",\'sf_ajaxrefresh(x,"'+id0+'")\',\''+params+'\')',delay)

}

// Ajax loader : charge le contenu d'un fichier. Pour préserver une compatibilité maxi malgré l'utilisation du mode POST,
// qui évite l'écueil du cache avec IE6, et le pb de la conversion UTF8, ce script ajax ne devrait lancer que des scripts PHP 
// qui reverront en échange un contenu UTF8'isé, après quelques checks simplea de sécurité
// Ce loader appelle la fonction 'func' passée en argument une fois le chargement terminé
function sf_ajaxLoad(file_url,func,params) {
	var x = false;
	if (window.XMLHttpRequest) x = new XMLHttpRequest()
	else if (window.ActiveXObject) {
		try { x = new ActiveXObject("Msxml2.XMLHTTP") }
		catch (e) {
			try { x = new ActiveXObject("Microsoft.XMLHTTP") }
			catch (e) {}
	 	}
 	}
//	en cas d'erreur de sécurité, de ficher pas trouvé etc. le status n'est pas égal à 200
//	if(x) x.onreadystatechange=function() { if(x.readyState == 4 && x.status == 200) eval(func) }
	if(x) x.onreadystatechange=function() { if(x.readyState == 4) eval(func) }
//	x.open("GET",file_url, true); 										// GET avec IIs6, true -> mode asynchrone
	x.open("POST",file_url, true); 										// POST évite le cache (pas GET), true -> mode asynchrone

	// Header indispensable pour le mode POST
	if(!params) var params='sf_form=true'

	x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//	x.setRequestHeader("Content-length", params.length);				// params.length est tj undefined -> blocage avec IE6...
	x.setRequestHeader("Connection", "close");
//	x.overrideMimeType("text/html; charset=ISO-8859-1")					// OK FF IE7 Safari, mais pas IE6 -> il vaut mieux convertir en UTF8 à la source
//	x.setRequestHeader("Content-Type", "text/html; charset=ISO-8859-1")	// Absolument aucun effet
//	x.send(null);														// en POST, null est censé être remplacé par un formulaire à  soumettre...
	x.send(params)
}

// ----------------------
// post fonction après modif du contenu du BOOK en Ajax : MAJ du contenu (mise à jour de la photo + MAJ du slider)
function sf_ajaxrefresh(r,id0) {
	if(id0.indexOf('~')!=-1) {
		var x=id0.split('~'),id0=x[0]
		var i=document.getElementById(id0),l=document.getElementById(x[1])
		l.style.display='none';
		i.style.filter='alpha(opacity=100)';i.style.opacity=1;		
	}	
	document.getElementById(id0).innerHTML=r.responseText

	//  MAJ de la photo zoom, car étant ratachée au body elle n'est pas mise à jour dans le DIV ajax...
	var x=document.getElementById('photos-0'),		// <div> conteneur de l'ancienne photo
	t=document.getElementById('book-image')			// 
	if(x && t) {
		var c=x.innerHTML.split('<img')				// FF, Safari, GG Chrome
		if(!c[1]) c=x.innerHTML.split('<IMG')		// IE6, Opera
		var i= c[1]? c[1].indexOf('>') : -1
		if(i!=-1) {
			c[1]=c[1].substring(i+1)
			x.innerHTML=c[0]+'<img src="'+t.src+'" alt="" border="0" style="cursor:pointer" onclick="if(typeof(sf_bulle)!=\'undefined\') sf_bulle(sf_bon,0)">'+c[1]
		}
	}

	// MAJ du slider
	x_update('scroll1-slider',0,true)
}



