/**
 *  Client : Arthur Bonnet
 *  Projet : OUE571 - Refonte du portail web Arthur Bonnet
 *  Auteur : Julien Roulette
 *  Date : 12/11/2007
 *   
 *  Fonctionnalité : Fonctions JS de la page d'accueil
 *   
 */

var menus = new Array;
 
// traitement JS rubriques niveau 2 page intérieure
function traitement_niv2() {
    var list = $$('#idList a');
	list.each(
        function(element) {
		  var fx = new Fx.Styles(element, {duration:200, wait:false});
		  element.addEvent('mouseenter', 
          function(){
		      fx.start({
				'padding-left': 25,
                'padding-right': 25,
				'background-color': '#ECE8E7',
				color: '#1B383E'
			  });
		  });
		  element.addEvent('mouseleave', 
          function(){
		      fx.start({
				'padding-left': 20,
				'padding-right': 20,
				'background-color': '#D9D2D0',
				'color': '#1B383E'
			  });
		  });
	   });
}

// trouve un objet dom dans la page courante
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;
}

// Dissimule tous les éléments d'une famille sauf le premier
function hidemenus(menu){
    var k=2;
    var hideobj = MM_findObj(menu+''+k);
    while(hideobj!=null){
        //hideobj.style.display='none';
        $(menu+''+k).setStyle('display', 'none');
        k++;
        hideobj = MM_findObj(menu+''+k);
    }
}

// Dissimule tous les éléments d'une famille sauf le premier (magazine)
function hidemenusMag(menu){
    var k=2;
    var hideobj = MM_findObj(menu+''+k);
    while(hideobj!=null){
        hideobj.style.display='none';
        k++;
        hideobj = MM_findObj(menu+''+k);
    }
}

// Affiche le menu ciblé en dissimulant les autres menus de la même famille
function showmenu(id,menu){
	if(menus[menu]==null) menus[menu]='1';
	
	var oldobj = MM_findObj(menu+''+menus[menu]);
	var showobj = MM_findObj(menu+''+id);
	
	if(showobj&&oldobj){
		oldobj.style.display='none';
		showobj.style.display='block';
		
		menus[menu]=id;
	}
}

// Affiche le menu de la popup zoom sur
function showmenuzoomsur(id,menu){
	if(menus[menu]!=id) {
		
		if(menus[menu]==null) menus[menu]='1';
		var oldobj = MM_findObj(menu+''+menus[menu]);
		oldobj.style.display='none';
		
		var oldobj2 = MM_findObj('thistext-'+menus[menu]);
		oldobj2.style.display='none';
		
		var showobj = MM_findObj(menu+''+id);
		$(menu+''+id).setStyle('opacity','0');
		showobj.style.display='block';
		
		var showobj2 = MM_findObj('thistext-'+''+id);
		showobj2.style.display='block';
		
		//new Effect.Appear(showobj);
		$(menu+''+id).setStyle('opacity','0');
		var fx = new Fx.Styles($(menu+''+id), {duration:1000, wait:false});
		fx.start({'opacity': '1'});
		menus[menu]=id;
	}
}

// Défilement des photos sur page designers
function nextphoto(menu){
	if(menus[menu]==null) menus[menu]=1;
	
	id=menus[menu]+1;
	var showobj = MM_findObj(menu+''+id);
	
	if(showobj==null){
		id=1;
	}
	var oldobj = MM_findObj(menu+''+menus[menu]);
	oldobj.style.display='none';

	var showobj = MM_findObj(menu+''+id);
	$(menu+''+id).setStyle('opacity','0');
	var fx = new Fx.Styles($(menu+''+id), {duration:1000, wait:false});
	fx.start({'opacity': '1'});
	
	showobj.style.display='block';
	menus[menu]=id;
}

// Affichage autre designer
function otherdesigner(menu, id){		   		
	if(menus[menu]==null) menus[menu]=1;
	var showobj = MM_findObj(menu+''+id);
	
	if(showobj==null){}
	else if(id!=menus[menu]){
		var oldobj = MM_findObj(menu+''+menus[menu]);
		oldobj.style.display='none';
		
		var showobj = MM_findObj(menu+''+id);
		$(menu+''+id).setStyle('opacity','0');
		var fx = new Fx.Styles($(menu+''+id), {duration:1000, wait:false});
		fx.start({'opacity': '1'});
		showobj.style.display='block';
		menus[menu]=id;
	}
}

// Affichage cartouches des offres d'emploi
function cartouche_offres() {
	var list = $$('.article-droite-2 div');
	list.each(function(element) {
		var fx = new Fx.Styles(element, {duration:200, wait:false});
		element.addEvent('mouseenter', function(){
			fx.start({
				'margin-left': 0
			});
		});
		element.addEvent('mouseleave', function(){
			fx.start({
				'margin-left': 10
			});
		});
	});
}

/****************************************************************************************************************/
/*                                       TRAITEMENT JS MAGAZINE                                                 */
/****************************************************************************************************************/

// Traitement magazine type "Reportage"
function mag_left_menu() {
    var list = $$('#listegauche li');
	list.each(function(element) {
        var fx = new Fx.Styles(element, {duration:200, wait:false});
        element.addEvent('mouseenter', function(){
    	   fx.start({
                'margin-left': 15
    	   });
    	});
    	element.addEvent('mouseleave', function(){
    	   fx.start({
    	       'margin-left': 0
    	   });
    	});
    });
}

// Traitement magazine - Zone "bottom"
function mag_bottom() {
    var list = $$('#navigation-bottom li a');
	list.each(function(element) {
	   var fx = new Fx.Styles(element, {duration:200, wait:false});
	   element.addEvent('mouseenter', function(){
    	   fx.start({
    	       'padding-top': 10
    	   });
	   });
       element.addEvent('mouseleave', function(){
	       fx.start({
		       'padding-top': 0
		   });
	   });
	});
}

// Affiche le menu ciblé en dissimulant les autres menus de la même famille
function prevdiapo(menu){
	if(menus[menu]==null) menus[menu]=1;
	id=menus[menu]-1;
	var showobj = MM_findObj(menu+''+id);
	if(showobj!=null){
		var oldobj = MM_findObj(menu+''+menus[menu]);
		oldobj.style.display='none';
        var showobj = MM_findObj(menu+''+id);
		showobj.style.display='block';
		menus[menu]-=1;
	}
}

// Affiche le menu ciblé en dissimulant les autres menus de la même famille
function nextdiapo(menu){
	if(menus[menu]==null) menus[menu]=1;
    id=menus[menu]+1;
	var showobj = MM_findObj(menu+''+id);
	if(showobj!=null){
		var oldobj = MM_findObj(menu+''+menus[menu]);
		oldobj.style.display='none';
	    var showobj = MM_findObj(menu+''+id);
		showobj.style.display='block';
		menus[menu]+=1;
	}
}

// Fonctions popup  
function ouvrirpopup(){
  	$('popup').setStyle('display','block');
  	var fx = new Fx.Styles($('popup'), {duration:200, wait:false});
    fx.start({'margin-top': 0});
}

function fermerpopup(){
  	$('popup').setStyle('display','none');
  	var fx = new Fx.Styles($('popup'), {duration:200, wait:false});
    fx.start({'margin-top': 40});
}
  
function ouvrirpopup_diapo(){
  	$('popup-diapo').setStyle('display','block');
  	var fx = new Fx.Styles($('popup-diapo'), {duration:200, wait:false});
    fx.start({'margin-top': 0});
}

function fermerpopup_diapo(){
  	$('popup-diapo').setStyle('display','none');
  	var fx = new Fx.Styles($('popup-diapo'), {duration:200, wait:false});
    fx.start({'margin-top': 40});
}

// Fonctions fiches 
// Fiche suivante
function chngsvt(menu){
	if(menus[menu]==null) menus[menu]=1;
	var id = parseInt(menus[menu])+1;
	$(menu+''+menus[menu]).setStyle('display','none');
	$(menu+'visuel-'+menus[menu]).setStyle('display','none');
			
	if($(menu+''+id)){
    	$(menu+''+id).setStyle('margin-left','15');
		$(menu+''+id).setStyle('display','block');
        var fx = new Fx.Styles($(menu+''+id), {duration:200, wait:false});
		fx.start({'margin-left': 0});
		$(menu+'visuel-'+id).setStyle('display','block');
        var fx = new Fx.Styles($(menu+'visuel-'+id), {duration:200, wait:false});
		menus[menu]=id;
	} else {
		menus[menu]=1;
		$(menu+''+menus[menu]).setStyle('margin-left','15');
		$(menu+''+menus[menu]).setStyle('display','block');
		var fx = new Fx.Styles($(menu+''+menus[menu]), {duration:200, wait:false});
		fx.start({'margin-left': 0});
		$(menu+'visuel-'+menus[menu]).setStyle('display','block');
		var fx = new Fx.Styles($(menu+'visuel-'+menus[menu]), {duration:200, wait:false});
	}
}

// Fonction d'allocation d'un contenu à un endroit donne
function allocatemenus(menu,destination){
	var addingzone = MM_findObj(destination);
	var k=1;
	var addingitem = MM_findObj(menu+''+k);
	while(addingitem!=null){
		addingzone.appendChild(addingitem);
		k++;
		addingitem = MM_findObj(menu+''+k);
	}
}

// Alloue le background au style du block
function allocatebg(menu, bg){
    var addingzonebg = MM_findObj(menu);
    addingzonebg.style.background = bg;
}

// Affichage du plan du site
function affich_plan() {
	var list = $$('.rubriques h3 a');
	list.each(function(element) {
		var fx = new Fx.Styles(element, {duration:200, wait:false});
		element.addEvent('mouseenter', function(){
			fx.start({
				'padding-top': 18,
				'padding-bottom': 0
			});
		});

		element.addEvent('mouseleave', function(){
			fx.start({
				'padding-top': 0,
				'padding-bottom': 18
			});
		});
	});

	var sublist = $$('.rubriques ul li a');
	sublist.each(function(element) {
		var fx = new Fx.Styles(element, {duration:200, wait:false});
		
		element.addEvent('mouseenter', function(){
			fx.start({
				'padding-left': 10,
				'padding-right': 0
			});
		});

		element.addEvent('mouseleave', function(){
			fx.start({
				'padding-left': 0,
				'padding-right': 10
			});
		});
	});
}

/****************************************************************************************************************/
/*                                       TRAITEMENT JS FORMULAIRE                                               */
/****************************************************************************************************************/
// Saisir uniquement des chiffres sur certains champs (cp, tel, etc.)
function numbersonly(myfield, e, dec) {
    var key;
    var keychar;
    if (window.event)
        key = window.event.keyCode;
    else if (e)
        key = e.which;
    else
        return true;
    keychar = String.fromCharCode(key);

    // control keys
    if ((key==null) || (key==0) || (key==8) || 
        (key==9) || (key==13) || (key==27) )
    return true;

    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
    return true;

    // decimal point jump
    else if (dec && (keychar == "."))
    {
        myfield.form.elements[dec].focus();
        return false;
    }
    else
        return false;
}

// retour accueil
function replace() {
    window.location.replace("/?bocuisines/Accueil_Intranet");
}      
// retour page modif cuisine
function replace_modif_cuisine() {

    window.location.replace("/?bocuisines/Modif_Maj_Cuisine");
}

// retour accueil
function replaceEn() {
    window.location.replace("/?bocuisines-en/Accueil_Intranet");
}      
// retour page modif cuisine
function replace_modif_cuisineEn() {

    window.location.replace("/?bocuisines-en/Modif_Maj_Cuisine");
}

/****************************************************************************************************************/
/*                                       STYLE SCROLLBAR DEFILEMENT                                             */
/****************************************************************************************************************/
var cds = {
	O  : [],
	ok : false,
	ym : 0,
	N  : 0,
	fo : 0,
	sc : 0,
	sp : 0,
	to : 0,
	/* on mouse move */
	m_move : function(e) {
		if (!e) e = window.event;
		/* release drag outside of the window - IE only */
		if (cds.fo.sg && !cds.w3c && !e.button) { cds.m_up(); return; }
		/* vertical mouse position */
		cds.ym = e.screenY;
		/* drag scrollbar */
		if (cds.fo.sg) cds.fo.scrollTop = cds.fo.sZ + (cds.ym - cds.fo.yZ) / cds.fo.r;
	},
	/* on mouse up */
	m_up : function (e) {
		if (!e) e = window.event;
		var tg = (e.target) ? e.target : e.srcElement;
		/* clear and skin scrollbar */
		if (cds.fo) cds.fo.sb.className = (tg.className.indexOf('scrollbar') > 0) ? 'cds_scrollbar cds_scrollbar_over' : 'cds_scrollbar';
		document.onselectstart = '';
		cds.clr();
		cds.fo.sg = false;
	},
	/* clear */
	clr : function () {
		clearTimeout(cds.to);
		cds.sc = 0;
		return false;
	},
	/* refresh all scrollbars */
	refresh : function () {
		for (var i = 0, N = cds.N; i < N; i++) {
			var o = cds.O[i];
			o.v_scroll();
			o.sb.style.width = o.st.style.width = o.su.style.width = o.su.style.height = o.sd.style.width = o.sd.style.height = o.w + 'px';
			o.sb.style.height = Math.ceil(Math.max(o.w * .5, o.r * o.offsetHeight) + 1) + 'px';
		}
	},
	/* arrows scrolling loop */
	a_scroll : function () {
		if (cds.sc != 0) {
			cds.fo.scrollTop += 6 * cds.sc / cds.fo.r;
			cds.to = setTimeout(cds.a_scroll, cds.sp);
			cds.sp = 32;
		}
	},
	/* start arrows scrolling */
	m_down : function (o, s) {
		if (cds.sc == 0) {
			o.dv.sb.className = 'cds_scrollbar cds_scrollbar_pushed';
			cds.fo = o.dv;
			cds.sc = s;
			cds.sp = 400;
			cds.a_scroll();
		}
	},
	/* init script */
	init : function () {
		if (window.oper || (!window.addEventListener && !window.attachEvent)) { this.ok = false; return; }
		/* add events */
		function addEvent (o, e, f) {
			if (window.addEventListener) { o.addEventListener(e, f, false); cds.w3c = true; return true; }
			if (window.attachEvent) return o.attachEvent('on' + e, f);
			return false;
		}
		this.ok = addEvent(window.document, 'mousemove', cds.m_move);
		this.ok = addEvent(window.document, 'mouseup', cds.m_up);
		this.ok = addEvent(window, 'resize', cds.refresh);
		return this.ok;
	},
	/* add skinable scrollbar */
	add : function (id) {
		/* get div */
		var dv = document.getElementById(id);
		/* init script */
		if (!cds.ok) cds.init();
		/* return on error */
		if (!cds.ok || !dv) return false;
		/* append div function */
		function cDiv (c) {
			var o = document.createElement('div');
			o.dv = dv;
			o.className = c;
			dc.appendChild(o);
			return o;
		}
		/* clone the original div to create an empty container */
		var dc = dv.cloneNode(false);
		dc.style.overflow = "hidden";
		/* insert the container into the div's parent */
		dv.parentNode.appendChild(dc);
		/* move the original div into the container */
		dc.appendChild(dv);
		/* modify its positionning to fit into the container */
		dv.style.position = 'absolute';
		dv.style.left = dv.style.top = '0px';
		dv.style.width = dv.style.height = '100%';
		/* push div reference in array */
		cds.O[cds.N++] = dv;
		dv.sg = false;
		/* create and append skinned scrollbar HTML elements to the container, on top of the original div */
		dv.st = cDiv('cds_track');
		dv.sb = cDiv('cds_scrollbar');
		dv.su = cDiv('cds_up');
		dv.sd = cDiv('cds_down');
		/* scrollbar on mouse down */
		dv.sb.onmousedown = function (e) {
			if (!this.dv.sg) {
				if (!e) e = window.event;
				/* save active/scrollable div */
				cds.fo = this.dv;
				/* save vertical mouse and scroll position */
				this.dv.yZ = e.screenY;
				this.dv.sZ = dv.scrollTop;
				this.dv.sg = true;
				/* pushed skin */
				this.className = 'cds_scrollbar cds_scrollbar_pushed';
				document.onselectstart = function () { return false; }
			}
			return false;
		}
		/* track on mouse down */
		dv.st.onmousedown = function (e) {
			if (!e) e = window.event;
			/* save active/scrollable div */
			cds.fo = this.dv;
			/* calculate scrollbar position */
			cds.ym = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
			for (var o = this.dv, y = 0; o != null; o = o.offsetParent) y += o.offsetTop;
			this.dv.scrollTop = (cds.ym - y - (this.dv.r * this.dv.offsetHeight / 2) - this.dv.w) / this.dv.r;
			this.dv.sb.onmousedown(e);
		}
		/* arrows on mouse down */
		dv.su.onmousedown = dv.su.ondblclick = function (e) { cds.m_down(this, -1); return false; }
		dv.sd.onmousedown = dv.sd.ondblclick = function (e) { cds.m_down(this,  1); return false; }
		/* release events */
		dv.su.onmouseout = dv.su.onmouseup = cds.clr;
		dv.sd.onmouseout = dv.sd.onmouseup = cds.clr;
		/* scrollbar on mouse over skin */
		dv.sb.onmouseover = function (e) {
			if (!this.dv.sg) this.className = 'cds_scrollbar cds_scrollbar_over';
			return false;
		}
		/* scrollbar on mouse out (default) skin */
		dv.sb.onmouseout  = function (e) {
			if (!this.dv.sg) this.className = 'cds_scrollbar';
			return false;
		}
		/* scrollbar repositionning */
		dv.v_scroll = function () {
			this.r = (this.offsetHeight - 2 * this.w) / this.scrollHeight;
			this.sb.style.top = Math.floor(this.w + this.scrollTop * this.r) + 'px';
		}
		/* calculate scrollbar width */
		dv.w = dv.offsetWidth - dv.clientWidth + 1;
		/* init scroll */
		dv.v_scroll();
		cds.refresh();
		/* hook on scroll browser's event */
		dv.onscroll = dv.v_scroll;
		return dv;
	}
} 

/****************************************************************************************************************/
/*                                       POPUPS EN TOUS GENRES (SAGAS...)                                       */
/****************************************************************************************************************/
// Ouverture popup "Sagas"
function ouvrirpopupsaga(){
	$('overlay').setStyle('opacity','0');
	$('overlay').setStyle('display','block');
	var fx = new Fx.Styles($('overlay'), {duration:1000, wait:false});
	fx.start({'opacity': '0.8'});
	
	$('page-popup-saga').setStyle('opacity','0');
	$('page-popup-saga').setStyle('display','block');
	var fx = new Fx.Styles($('page-popup-saga'), {duration:1000, wait:false});
	fx.start({'opacity': '1'});
}

// Fermeture popup "Sagas"
function fermerpopupsaga(){
	$('overlay').setStyle('display','none');
	$('page-popup-saga').setStyle('display','none');
}

// Ouverture popup "Ainsi nait un modele"
function ouvrirpopupainsinait(){
	$('overlay').setStyle('opacity','0');
	$('overlay').setStyle('display','block');
	var fx = new Fx.Styles($('overlay'), {duration:1000, wait:false});
	fx.start({'opacity': '1'});
		
	$('page-popup-ainsinait').setStyle('opacity','0');
	$('page-popup-ainsinait').setStyle('display','block');
	var fx = new Fx.Styles($('page-popup-ainsinait'), {duration:1000, wait:false});
	fx.start({'opacity': '1'});
		
}
 
// Fermeture popup "Ainsi nait un modele"         
function fermerpopupainsinait(){
  	$('overlay').setStyle('display','none');
  	$('page-popup-ainsinait').setStyle('display','none');
}
