var Popup = {
//    this: Popup, // C'est moi qui est inventé ça, je ne sais pas si c'est très correct
    mode: 'FullMedia', // FullMedia ou InfoPage
    menu_layer: false,
    media_type: '',
    menu_size: 5,
    menu_title_size: 12,
    menu_start: -1,
    menu_end:-1,
    menu_selected:-1,
    url:'./media_view.php',
    layer_content:'#flypopupc',
    searchList: null,

/* Public methods:
        init (sur le onLoad de la page)
        open (à l'ouverture de la popup)
        loadContent (dans la page ajax)
        onClose (lors de la fermeture de la popup - lancer automatiquement sur le paramètre 'closeObj' de la méthode 'open')
*/

    init: function() {
        // Si la variable searchList n'existe pas la barre des résultats de la recherche ne s'affichera pas
        if (typeof(searchList) != "undefined") Popup.searchList = searchList;
        $('#dark').click(function () { $(this).hide(); });

    },

    open: function (obj,popupLayer,menuLayer,backgroundLayer,idm) {

        if (menuLayer && Popup.searchList) {
            Popup.menu_layer = menuLayer;
            $(Popup.menu_layer).html('<div id="pop-header"><div id="previous-page"></div><div id="next-page"></div><ul id="vignettes"></ul></div>');

            $('#pop-header > div').hover(function(){ if (!($(this).hasClass('disable'))) $(this).addClass("clicme")},function(){$(this).removeClass("clicme")});

            // Find media position
            if (Popup.searchList) {
                for(i=0;i<Popup.searchList.length;i++) {
                    if (Popup.searchList[i]['id']==idm) Popup.menu_selected=i;
                }
            }

            Popup.drawMenu(Popup.menu_selected);

            // box offset
            $(popupLayer).css('top','30px');
        } else {
            Popup.menu_layer = '';

            // box offset
            $(popupLayer).css('top','100px');
        }

        Popup.openUrl(obj);

        Popup.openBox(popupLayer,backgroundLayer);
    },

    openBox: function (popupLayer,backgroundLayer) {
        setFullScreen(backgroundLayer);
        $(backgroundLayer).show();
        $(popupLayer).fadeIn("fast");
        $(backgroundLayer).click(function(){
            //$(popupLayer).fadeOut("fast",function(){ $(closeObj).hide(); });
            Popup.onClose();
            $(popupLayer).hide();
            $(backgroundLayer).hide();
        });
    },

    drawMenu: function(mediaPosition) {
        start = Math.max(0,mediaPosition-2);
        Popup.drawMenuFromStart(start,mediaPosition);
    },

    drawMenuFromStart: function(start,mediaPosition) {
        if (start == 0) end = Math.min(Popup.menu_size,Popup.searchList.length-1); else  end = Math.min(start+Popup.menu_size,Popup.searchList.length-1);
        Popup.drawMenu2(start,end,mediaPosition);
    },

    drawMenu2: function(start,end,mediaPosition) {
        Popup.menu_selected = mediaPosition;
        Popup.menu_start = start;
        Popup.menu_end = end;
        str = "";
        for (i=start;i<=end;i++) {
            title    = Popup.searchList[i]["title"];
            vignette = Popup.searchList[i]["vignette"];
            id       = Popup.searchList[i]["id"];
            if (title.length > Popup.menu_title_size) title=title.substring(0,Popup.menu_title_size-2)+"...";
            vigClass = (i==mediaPosition)?' class="selected"':'';
            str = str + '<li id="VIG_'+id+'" onClick="Popup.openFicheByPosition('+i+');"'+vigClass+'><div><img src="'+vignette+'" border="0" width="74px"/><br /><span>'+title+'</span></div></li>';
        }

        $("#pop-header ul").html(str);
        $('div#pop-header ul li').hover(function () { if (!($(this).hasClass('selected'))) $(this).addClass('over'); }, function() { $(this).removeClass('over'); });
        $("#pop-header div#previous-page").unbind("click");
        $("#pop-header div#next-page").unbind("click");
        $("#pop-header div#previous-page").click(function(){ $("#pop-header ul").html(Popup.gotoPreviousMedia()); });
        $("#pop-header div#next-page").click(function(){ $("#pop-header ul").html(Popup.gotoNextMedia()); });
    },

    gotoPreviousMedia: function() {
        if (Popup.menu_selected<=0) return;
        Popup.menu_selected = Popup.menu_selected - 1;
        if (Popup.menu_selected>=Popup.menu_start) { Popup.openFicheByPosition(Popup.menu_selected); }
        else { Popup.drawMenuFromStart(Math.max(0,Popup.menu_start-5),Popup.menu_selected); Popup.openFicheByPosition(Popup.menu_selected); }
    },

    gotoNextMedia: function() {
        if (Popup.menu_selected>=Popup.searchList.length-1) return;
        Popup.menu_selected = Popup.menu_selected + 1;
        if (Popup.menu_selected<=Popup.menu_end) { Popup.openFicheByPosition(Popup.menu_selected); }
        else { Popup.drawMenuFromStart(Math.min(Popup.searchList.length-6,Popup.menu_start+5),Popup.menu_selected); Popup.openFicheByPosition(Popup.menu_selected); }
    },

    openFicheByPosition: function(position) {
      Popup.menu_selected = position;
      if (Popup.menu_selected==0) $("#pop-header div#previous-page").addClass('disable').removeClass("linkCursor"); else $("#pop-header div#previous-page").removeClass('disable');
      if (Popup.menu_selected==Popup.searchList.length-1) $("#pop-header div#next-page").addClass('disable').removeClass("linkCursor"); else $("#pop-header div#next-page").removeClass('disable');
      id = Popup.searchList[Popup.menu_selected]["id"];
      Popup.openFiche(id);
    },

    openUrl: function(p_url) {
      $.ajax({type: "GET",  url: p_url, dataType: "html", scriptCharset: "utf-8", contentType: "text/html; charset=utf-8", success: function(data){$(Popup.layer_content).html(data);}});
    },

    openFiche: function(id) {
      $("#pop-header ul li").removeClass("selected");
      $("#pop-header ul li#VIG_"+id).addClass("selected");
      $.ajax({type: "GET",  url: Popup.url, dataType: "html", data: {id: id}, scriptCharset: "utf-8", contentType: "text/html; charset=utf-8", success: function(data){$(Popup.layer_content).html(data);}});
    },

    loadContent: function (media_type,media_id) {

        Popup.media_id = media_id;

        if (!media_type) Popup.media_type='';

        //-- Tabbox initialization
        var tabContainers = $('div#pop-tabbox > div');
        tabContainers.hide().filter(':first').show();
        $('div#pop-tabbox ul li').click(function (){
            tabContainers.hide();
            tabContainers.filter('#'+this.id.split("_",1)[0]).show();
            $('div#pop-tabbox ul li').removeClass('selected');
            $(this).removeClass('over');
            $(this).addClass('selected');
            return false;
        }).filter(':first').click();
        $('div#pop-tabbox ul li').hover(function () {
            if (!($(this).hasClass('selected'))) $(this).addClass('over');
        }, function() {
            $(this).removeClass('over');
        });

        //-- Copyright info
        if($.browser.msie && /6.0/.test(navigator.userAgent)){
            $('div#pop-visu div#copyright').hover(function () {
                $(this).find('span').show();
            }, function() {
                $(this).find('span').hide();
            });

            $('div#pop-visu-full div#copyright').hover(function () {
                $(this).find('span').show();
            }, function() {
                $(this).find('span').hide();
            });
        }

        //-- Toggle visu view
        $('div#pop-visu div#ecran_plus').click(function () { Popup.showFullMedia(); });
        $('div#pop-visu-full div#ecran_moins').click(function () { Popup.showInfoPage(); });

        if (Popup.mode == "FullMedia") $('div#pop-info').hide();

        //-- Preload images (tabbox) -- ! Doesn't seem do work
        $.preloadImages("image/popup/info_ovr.png", "image/popup/info_sel.png","image/popup/map_ovr.png", "image/popup/map_sel.png","image/popup/details_ovr.png", "image/popup/details_sel.png");

        //-- Flash initialization if video
       if ((Popup.media_type=="Video")||(Popup.media_type=="Audio")||(Popup.media_type=="Dossier")) {

            // <![CDATA[
            Nom_Browser = navigator.appName;

            if(navigator.appVersion.indexOf("MSIE") != - 1){
                var temp = navigator.appVersion.split("MSIE");
                Version_Browser =parseFloat(temp[1]);
            }
            else { Version_Browser = navigator.appVersion.substring(0,1);}

            var so_full = new SWFObject("players/simplePlayer.swf", "player_full", "720", "540", "9", "#000000");
            so_full.useExpressInstall('players/swf/expressinstall.swf');
            so_full.addVariable("autoPlay","true");
            so_full.addVariable("versionBrowser",Version_Browser);
            so_full.addVariable("xmlScript","http://v0.bio-scene.org/xmlmanu.php?idm=");
            so_full.addVariable("idm",Popup.media_id);
            so_full.addVariable("cheminSWF", "players/swf/");
            so_full.addVariable("agrandir","false");
            so_full.addVariable("reduceJSFct","onSwfInfoClic"); //
            so_full.addVariable("endVideoJSFct","onSwfVideoEnd");

            so_full.addParam("scale", "noscale");
            so_full.addParam("salign", "lt");
            so_full.addParam("align", "TL");
            so_full.addParam("wmode", "transparent");
            so_full.addParam("allowFullScreen", "true");
            so_full.write("flashcontent_full");

            var so_small = new SWFObject("players/simplePlayer.swf", "player_small", "360", "270", "9", "#000000");
            so_small.useExpressInstall('players/swf/expressinstall.swf');
            so_small.addVariable("autoPlay","false");
            so_small.addVariable("versionBrowser",Version_Browser);
            so_small.addVariable("xmlScript","http://v0.bio-scene.org/xmlmanu.php?idm=");
            so_small.addVariable("idm",Popup.media_id);
            so_small.addVariable("cheminSWF", "players/swf/");
            so_small.addVariable("MC_w","360");
            so_small.addVariable("MC_h","270");
            so_small.addVariable("agrandir","true");
            so_small.addVariable("enlargeJSFct","onSwfEnlargeClic");

            so_small.addParam("scale", "noscale");
            so_small.addParam("salign", "lt");
            so_small.addParam("align", "TL");
            so_small.addParam("wmode", "transparent");
            so_small.addParam("allowFullScreen", "true");
            so_small.write("flashcontent_small");

            // ]]>
        }
    },

    onClose: function() {
        if (Popup.menu_layer) $(Popup.menu_layer).html('');
        if ((Popup.media_type=="Video")||(Popup.media_type=="Audio")||(Popup.media_type=="Dossier")) {
            if (Popup.mode == "FullMedia") document.getElementById("player_full").pauseVideo();
            if (Popup.mode == "InfoPage") document.getElementById("player_small").pauseVideo();
        }
    },

    showFullMedia : function() {
        $('div#pop-tabbox').hide();
        $('div#pop-description').hide();
        $('div#pop-info').hide(1000, function() {$('div#pop-tabbox').show();$('div#pop-description').show();});
        Popup.mode = "FullMedia";
    },

    showInfoPage : function() {
        $('div#pop-tabbox').hide();
        $('div#pop-description').hide();
        $('div#pop-info').show(1000, function() {$('div#pop-tabbox').show();$('div#pop-description').show();});
        Popup.mode = "InfoPage";
    },

    onSwfInfoClic: function() {
        document.getElementById("player_full").pauseMedia();
        Popup.showInfoPage();
    },

    onSwfEnlargeClic: function() {
        Popup.showFullMedia();
    },

    onSwfVideoEnd: function () {
        if ($('div#pop-info').is(':hidden'))
            Popup.showInfoPage();
    }

}


