var modeDebug = false;

/**
*@desc Permet d'ajouter des évènements au window.onload
*Usage : addLoadEvent(function(){maFonction(monParam)});
*@param string fonction à ajouter
*/
var addLoadEvent = function(func) {
    if(typeof window.addEventListener != 'undefined')
    {
        //.. gecko, safari, konqueror and standard
        window.addEventListener('load', func, false);
    }
    else if(typeof document.addEventListener != 'undefined')
    {
        //.. opera 
        document.addEventListener('load', func, false);
    }
    else if(typeof window.attachEvent != 'undefined')
    {
        //.. win/ie
        window.attachEvent('onload', func);
    }    
    //** remove this condition to degrade older browsers
    else
    {
        //.. mac/ie5 and anything else that gets this far
        if(typeof window.onload == 'function')
        {
            var existing = onload;
            window.onload = function()
            {
                existing();                
                func;
            };
        }
        else
        {
            window.onload = func;
        }
    }
};

/**
*@desc Permet d'ajouter des évènements au window.onresize
*Usage : addResizeEvent(function(){maFonction(monParam)});
*@param string fonction à ajouter
*/
var addResizeEvent = function(func) {
    var oldonresize = window.onresize;
    if (typeof window.onresize != 'function') {
        window.onresize = func;
    } else {
        window.onresize = function() {
            if (oldonresize) {
                oldonresize();
            }
            func();
        }
    }
};

/**
*@desc Permet de connaitre le navigateur
*@return string Nom du navigateur
*/
var navigateur=function() {
	var strChUserAgent = navigator.userAgent;
	var intSplitStart = strChUserAgent.indexOf("(", 0);
	var intSplitEnd = strChUserAgent.indexOf(")", 0);
	var strChStart = strChUserAgent.substring(0, intSplitStart);
	var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
	var strChEnd = strChUserAgent.substring(intSplitEnd);
	
    if(strChMid.indexOf("MSIE 8") != -1)
    {    return "IE8";  }
	if(strChMid.indexOf("MSIE 7") != -1)
	{	return "IE7";  }
	else if(strChMid.indexOf("MSIE 6") != -1)
	{	return "IE6";  }
    else if(strChMid.indexOf("MSIE 6") != -1)
    {    return "IE";  }
	else if(strChEnd.indexOf("Firefox/2") != -1)
	{	return "Firefox2";  }
	else if(strChEnd.indexOf("Firefox") != -1)
	{	return "Firefox";  }
	else if(strChEnd.indexOf("Netscape/7") != -1)
	{	return "NS7";  }
	else if(strChEnd.indexOf("Netscape") != -1)
	{	return "NS";  }
	else if(strChStart.indexOf("Opera/9") != -1)
	{	return "Opera9";  }
	else if(strChStart.indexOf("Opera") != -1)
	{	return "Opera";  }
	else if(strChEnd.indexOf("Safari") != -1)
	{	return "Safari";  }
	else 
	{	return "Autre";  }
};

/**
*@desc Permet de faire fonctionnner les transparences des fichiers png � partir de IE5.5
*/
var correctPNG=function() {
    var browser = navigateur();
    if (browser.indexOf("IE6") != -1) {
        for(var i=0; i<document.images.length; i++) {
            var img = document.images[i];
            var imgName = img.src.toUpperCase();
            if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
            {
                //var dimensionImage = getNaturalDimension(img);
                var imgID = (img.id) ? "id='" + img.id + "' " : ""
                var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                var imgStyle = "display:inline-block;" + img.style.cssText 
                if (img.align == "left") imgStyle = "float:left;" + imgStyle
                if (img.align == "right") imgStyle = "float:right;" + imgStyle
                if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
                var strNewHTML = "<span " + imgID + imgClass + imgTitle
                + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
                img.outerHTML = strNewHTML
                i = i-1
            }
        }
    }
};
//Ajout de la fonction correctPNG à window.onload
addLoadEvent(correctPNG);

/**
*@desc Pour ajouter le site aux favoris (IE7, Firefox)
*@param string pLibelle Libellé du site
*@param string pUrl domaine
*/
var libelleFavoris = '';
var ajouterFavoris = function(pLibelle, pUrl) {
    siteURL = window.location.href != "" ? window.location.href : pUrl;
    siteNOM = libelleFavoris != "" ? libelleFavoris : pLibelle;
    
    /*-- MESSAGE --*/
    function myMessage (raccourciClavier) {
        alert ("Utilisez '" + raccourciClavier + "'\npour ajouter " + siteNOM + " dans vos favoris !");
    }

    /*-- TRAITEMENT DES NAVIGATEURS --*/

    //Konqueror
    if (navigator.userAgent.indexOf('Konqueror') >= 0) {
    /*Test a effectuer avant tout les autres car repond TRUE aux differents tests sans pouvoir les exploiter*/
        myMessage("CTRL + B");
    }
    else if (window.sidebar) {
        /* Netscape 6+ ; Mozilla, FireFox et compagnie (K-Meleon ...) */
        window.sidebar.addPanel(siteNOM,siteURL,"");
    }
    else if (window.external) {
        /* Internet Explorer 4+, et ses d�riv�s (Crazy Browser, Avent Browser ...) */
        window.external.AddFavorite(siteURL,siteNOM);
    }
    else if (document.all && (navigator.userAgent.indexOf('Win') < 0)) {
        /* Internet Explorer Mac */
        myMessage("POMME + D");
    }
    else if (window.opera && window.print) {
        /* Opera 6+ */
        myMessage("CTRL + T");
    }
    else if (document.layers) {
        /* Netsccape 4 */
        myMessage("CTRL + D");
    }
    else if (navigator.userAgent.indexOf('Safari') >= 0) {
        /* Safari */
        myMessage("POMME + D ou CTRL + D");
    }
    else alert ("Cette fonction n'est pas disponible pour votre navigateur.");
};

/**
*@desc print_r javascript
*@param array array
*@param string pUrl domaine
*@return string
*/
var print_r = function( array, return_val ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Michael White (http://crestidg.com)
    // +   improved by: Ben Bryan
    // *     example 1: print_r(1, true);
    // *     returns 1: 1
    var output = "", pad_char = " ", pad_val = 4;
    var formatArray = function (obj, cur_depth, pad_val, pad_char) {
        if (cur_depth > 0) {
            cur_depth++;
        }

        var base_pad = repeat_char(pad_val*cur_depth, pad_char);
        var thick_pad = repeat_char(pad_val*(cur_depth+1), pad_char);
        var str = "";

        if (obj instanceof Array || obj instanceof Object) {
            str += "Array\n" + base_pad + "(\n";
            for (var key in obj) {
                if (obj[key] instanceof Array) {
                    str += thick_pad + "["+key+"] => "+formatArray(obj[key], cur_depth+1, pad_val, pad_char);
                } else {
                    str += thick_pad + "["+key+"] => " + obj[key] + "\n";
                }
            }
            str += base_pad + ")\n";
        } else {
            str = obj.toString();
        }

        return str;
    };

    var repeat_char = function (len, pad_char) {
        var str = "";
        for(var i=0; i < len; i++) {
            str += pad_char;
        };
        return str;
    };
    output = formatArray(array, 0, pad_val, pad_char);

    if (return_val !== true) {
        document.write("<pre>" + output + "</pre>");
        return true;
    } else {
        return output;
    }
};

/**
*@desc Permet de cacher la div (divIntro) contenant l'intro flash
*@param integer duree_loading Durée de chargement de l'anim d'intro
*@param integer duree_regardee Durée de visionnage de l'anim d'intro
*@param bool regardee_completement true si l'anim a été regardée complètement
*/
var hide_intro = function(duree_loading, duree_regardee, regardee_completement)
{	
	if(typeof(document.getElementById('divIntro')) != 'undefined')
    {
         document.getElementById('divIntro').style.display = 'none';
         var divAnim = document.getElementById(idDivAnim);
         if(divAnim != null) {
            divAnim.innerHTML = tampon_navig;       
         }
         if(document.getElementById('ConteneurQuicksearch') != null)
         {
            document.getElementById('ConteneurQuicksearch').outerHTML = tampon_qs;
         }
         var htmlElement = document.getElementsByTagName('html')[0];
         htmlElement.style.overflow = '';
         if(document.body)
         {                                            
            document.body.style.overflow = "";
         }
		 
		 if (modeDebug) {
		 	alert('duree_loading : ' + duree_loading);
		 	alert('duree_regardee : ' + duree_regardee);
		 	alert('regardee_completement : ' + regardee_completement);
		 }
		 
		 if (duree_loading != undefined) {
		 	if(duree_regardee == undefined) { duree_regardee = 0; }
			if(regardee_completement == undefined) { regardee_completement = 0; }
			
		 	envoiStatsAnim(duree_loading, duree_regardee, regardee_completement);
		 }
    }
};


/**
*@desc Permet d'envoyer les stats fournies par l'anim d'intro, à un script PHP, pour l'enregistrement en base
*@param integer duree_loading Durée de chargement de l'anim d'intro
*@param integer duree_regardee Durée de visionnage de l'anim d'intro
*@param bool regardee_completement true si l'anim a été regardée complètement
*/
var envoiStatsAnim = function(duree_loading, duree_regardee, regardee_completement)
{
    var xhr = createXHR();
    if (modeDebug) {
		xhr.onreadystatechange = function(){
			if (xhr.readyState == 4) {
				if (xhr.status == 200) {
					alert(xhr.responseText);
				}
			}
		};
	}
	
	var adresseURL = document.URL.split('/');

	var urlStats = '/apicius_plateforme2/intro/stats.php?lang=' + adresseURL[3] + '&duree_loading=' + duree_loading + '&duree_regardee=' + duree_regardee+ '&regardee_completement=' + regardee_completement;  
    xhr.open("GET", urlStats , true);
    xhr.send(null);
};

/**
*@desc Permet de rechercher les mots saisis par l'internaute dans des blocs E-news
*@param string mots
*/
var speedsearch = function(modeSearch, mots, exact, aumoins, aucun, langue)
{
	if(document.getElementById('ResultSearch')) {
		document.getElementById('ResultSearch').innerHTML = '';
	}
    if (!exact && !aumoins && !aucun && !langue) {      //Recherche simple 
        //Trim de la valeur envoyée
        mots = mots.replace(/^\s+|\s+$/g, "");
        if (mots != "") {
            var retour = chargePage('speed-search-texte.php?advancedsearch='+(modeSearch == 'advanced' ? 1 : 0)+'&s_q=' + mots, 0, false, 'displayed')
        }
    } else {                                            //Recherche avancée
        //Trim de la valeur envoyée
        mots = mots.replace(/^\s+|\s+$/g, "");
        exact = exact.replace(/^\s+|\s+$/g, "");
        aumoins = aumoins.replace(/^\s+|\s+$/g, "");
        aucun = aucun.replace(/^\s+|\s+$/g, "");
        
        if (mots + exact + aumoins + aucun != "") {
            var retour = chargePage('speed-search-texte.php?advancedsearch='+(modeSearch == 'advanced' ? 1 : 0)+'&s_q=' + mots + '&s_eqp=' + exact + '&s_oq=' + aumoins + '&s_eq=' + aucun + '&s_lg=' + langue, 0, false, 'displayed')
        }
    }
    //Pour ne pas valider le formulaire
    return false;
}

/**
*@desc Permet d'afficher l'heure et qu'elle se rafraichisse
*/
var heureLocale = null;
var intervalleHeureLocale = null;
var refreshTime = function(heure, intervalleSeconde) {
	objectHtmlLocalTime = document.getElementById('localTime');
	if(objectHtmlLocalTime) {
		if(typeof(heure) == 'string') {
			heureTab = heure.split(':');
			heureLocale = new Date();	
			if(heureTab.length == 2) {
				heureLocale.setHours(heureTab[0], heureTab[1]);
			} else if(heureTab.length == 3) {
				heureLocale.setHours(heureTab[0], heureTab[1], heureTab[2]);
			}
		}
		if(typeof(intervalleSeconde) == 'number') {
			intervalleHeureLocale = intervalleSeconde;
		}
		heureLocale.setSeconds(heureLocale.getSeconds() + intervalleHeureLocale);
	   
		var  h = heureLocale.getHours();
		if (h<10) {h = "0" + h}
		
		var m = '';
		if(intervalleHeureLocale <= 60) {
			m = heureLocale.getMinutes();
			if (m<10) {m = "0" + m}
			m = ":" + m;
		}
		
		var s = '';
		if(intervalleHeureLocale <= 1) {
			s = heureLocale.getSeconds();
			if (s<10) {s = "0" + s}
			s = ":" + s;
		}
		
		objectHtmlLocalTime.innerHTML = h+m+s;
		
		setTimeout("refreshTime()", intervalleHeureLocale * 1000);
	}
};
// Fonction a utiliser si vous souhaiter envoyer des infos vers Flash
var emetteurVersFlash = function(nomPage) {
    var doc_flash ;
    
   /* var doc_flash = swfobject.getObjectById("navigation");*/
    
    if(/*!doc_flash && */document.getElementById("navigation"))
    {
        if (navigator.appName.indexOf("Microsoft") != -1)
        {
            doc_flash = window["navigation"];
        }
        else
        {
            if (document["navigation"].length != undefined)
            {
                doc_flash = document["navigation"][1];
            }
            else
            {
                doc_flash = document["navigation"];
            }
        }        
    }
    
    if(doc_flash && doc_flash.recepteurDepuisJavascript) {
        doc_flash.recepteurDepuisJavascript(nomPage);
    }
};


// Fonction a utiliser si vous souhaitez renvoyer des infos depuis Flash
var recepteurDepuisFlash = function(pParam) {
};


//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
//Attention ce n'est pas la fonction d'orige elle à été hacké par Ghislain et Jean pour le support de la molette sous IE
var flashmousewheel=function(e){
   nav = navigateur();
   if(nav.indexOf("IE")!=-1){ document.body.scrollTop-=e.wheelDelta/2; }
 }

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else 
    return src + ext;   
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{
  var str = '<object onmousewheel="flashmousewheel(event);"';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs) {
    str += i + '="' + embedAttrs[i] + '" ';
  }
  str += ' ></embed></object>';
  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "name":
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "id":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

/*--------------------------------------------------------------------------
 *  Smooth Scroller Script, version 1.0.1
 *  (c) 2007 Dezinerfolio Inc. <midart@gmail.com>
 *
 *  For details, please check the website : http://dezinerfolio.com/
 *
/*--------------------------------------------------------------------------*/

Scroller = {
    // control the speed of the scroller.
    // dont change it here directly, please use Scroller.speed=50;
    speed:80,
    shouldStop: false,

    // returns the Y position of the div
    gy: function (d) {
        gy = d.offsetTop;
        if (d.offsetParent) while (d = d.offsetParent) gy += d.offsetTop;
        return gy;
    },

    // returns the current scroll position
    scrollTop: function (){
        body=document.body;
        d=document.documentElement;
        if (body && body.scrollTop) return body.scrollTop;
        if (d && d.scrollTop) return d.scrollTop;
        if (window.pageYOffset) return window.pageYOffset;
        return 0;
    },

    // attach an event for an element
    // (element, type, function)
    add: function(element, type, d) {
        if (element.addEventListener) return element.addEventListener(type, d,false);
        if (element.attachEvent) return element.attachEvent('on'+type, d);
    },

    // kill an event of an element
    end: function(e){
        if (window.event) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
            return;
        }
        if (e.preventDefault && e.stopPropagation) {
          e.preventDefault();
          e.stopPropagation();
        }
    },
    
    // move the scroll bar to the particular div.
    scroll: function(d){
        if(Scroller.shouldStop) return;
        i = window.innerHeight || document.documentElement.clientHeight;
        h=document.body.scrollHeight;
        a = Scroller.scrollTop();
        if(d>a)
            if(h-d>i)
                a+=Math.ceil((d-a)/Math.abs(100-Scroller.speed));
            else
                a+=Math.ceil((d-a-(h-d))/Math.abs(100-Scroller.speed));
        else
            a = a+(d-a)/Math.abs(100-Scroller.speed);
        window.scrollTo(0,a);
        if(a==d || Scroller.offsetTop==a) clearInterval(Scroller.interval);
            Scroller.offsetTop=a;
    },
    scrollToElement : function(el){
        this.shouldStop = false; 
        Scroller.end(this); 
        clearInterval(Scroller.interval); 
        Scroller.interval=setInterval('Scroller.scroll('+Scroller.gy(el)+')',10);  
    },
    requestStop : function(){
        Scroller.shouldStop = true;
    },
    init : function(){
        /** Firefox. */
         if (window.addEventListener)
        window.addEventListener('DOMMouseScroll', Scroller.requestStop, false);
        /** IE/Opera. */
        window.onmousewheel = document.onmousewheel = Scroller.requestStop;
    }
}

Scroller.init();


function cameFrom(where) {
if (!document.referrer && !where) return true;
else return (document.referrer.indexOf(where)>=0)
}
if (cameFrom("google")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.fr")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.es")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.de")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.it")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.en")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.jp")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.uk")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.ch")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.fr")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.es")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.de")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.it")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.en")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.jp")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.uk")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("msn.ch")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("yahoo.fr")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("yahoo")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("altavista")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("altavista.fr")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("dogpile")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("voila.fr")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.co.uk")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("google.nl")) {
location.replace("http://www." + Url + "/");
}
else if (cameFrom("live")) {
location.replace("http://www." + Url + "/");
}
