/*--------------------------------------------------------------------------------------------------
MoodyKiosk v1.0 Javascript Suite: Funzioni comuni per la gestione della navigazione e degli effetti
Release 1.0
Autore: Savioli Massimiliano
Copyright 2009 www.ombreinluce.it - www.3pix.it     Tutti i diritti sono riservati
---------------------------------------------------------------------------------------------------*/ 


// ritorna un oggetto flash
function getFlashMovieObject(movieName)
{
    if (window.document[movieName]) 
    {
        return window.document[movieName];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[movieName])   
        return document.embeds[movieName]; 
    }
    else
    {
        return document.getElementById(movieName);
    }     
}

        
// inizializza l'array degli oggetti swf contenenti video flv relativi ai contenuti
function outputStatusFlvContent(e) 
{
    if (e.success)
    {
        flvVideos[e.id]=e.ref;
    }  
}


// lancia la funzione relativa al contatore dei click ("writeClicks") e ricarica il sito        
function pageReset()
{
    writeClicks();
}


// esegue le funzioni temporizzate "home2" (lancia lo screenSaver) e "pageReset" (ricarica il sito)
// esegue la funzione "home" che inizializza il sito e visualizza lo screenSaver piccolo
// inserisce l'esecuzione sugli eventi di "onmousedown" e "onkeydown"        
function reload()
{
    if (fl_screen_saver)
    {
        timeout = setTimeout("home2()", interval);
    }
    reset = setInterval("pageReset()", resetInterval);
    home();
    if (fl_screen_saver)
    {
        document.body.onmousedown = function(){clearTimeout(timeout);timeout = setTimeout("home2()", interval);}
        document.body.onkeydown = function(){clearTimeout(timeout);timeout = setTimeout("home2()", interval);}
    }           
}


// inizializza il sito e visualizza lo screenSaver piccolo spegnendo categorie, oggetti e screenSaver
function home ()
{
    clickCounter++; // incremento contatore click
    stopMovie(); // fermo i filmati
    if (fl_screen_saver)
    {
        sospendi(1); // fermo lo screenSaver
    }
    if (cat2Visible!=0)
    {
        var elToHide=document.getElementById(cat2Visible);
        
        if (fl_intro)
        {
            elToHide.style.display="none";
        }
        else
        {
            if (fl_effects_cat)
            {
                // Effetti Mootools
                eff_cat_out(cat2Visible); 
                // Fine Effetti Mootools
            }
            else
            {
                elToHide.style.display="none";    
            }
        } 
        
    }
    elDivPath=document.getElementById("categoriePath");
    if (elDivPath.style.display=="block")
    {
        elDivPath.style.display="none";
    }

    colInte=document.getElementById("intestazione");
    // caso particolare utenza
    colInte.style.background="url(templates/8/intestazione.jpg)";
    // caso particolare utenza fine 
    col1=document.getElementById("finestraSinistra");
    col2=document.getElementById("finestraCentro");
    col3=document.getElementById("finestraDestra");
    colScreenSaver=document.getElementById("screenSaver");
    var displType=""; 
    if (browserInfo[0]=="Microsoft Internet Explorer")
    {
        displType="block"; 
    }
    else
    {
        displType="table-cell";
        colInte.style.display=displType;
    }
    col1.style.display=displType;
    col2.style.display=displType;
    col3.style.display=displType;
    
    if (!fl_intro)
    {
        if (fl_screen_saver)
        {   
            if(colScreenSaver.style.visibility=="visible")
            {
                if (fl_effects_screen)
                {
                    // Effetti Mootools
                    eff_screen_out();
                    // Fine Effetti Mootools
                }
                else
                {
                    colScreenSaver.style.visibility="hidden";    
                }
            }    
        }
        else
        {
            colScreenSaver.style.visibility="hidden";   
        }    
    }
    else
    {
        colScreenSaver.style.visibility="hidden";
    }
    if (fl_navigation_main)
    {
        document.getElementById("menuButtonScreenDiv").style.display="none";
        document.getElementById("menuButtonDiv").style.display="block";
    }  
    
    if (fl_intro)
    {
        divScreenSmall=document.getElementById("screenSmall");
        divScreenSmall.style.display="block";
        cat2Visible="screenSmall";

        if (scrSmallFileName!="")
        {
            // carico lo screenSaver piccolo
            codiceHtml ="";
            indirizzo="users/1/media/banners/"+scrSmallFileName;
            idTagContenuto="screenSmallSwf";
            codiceHtml = codiceHtml + "<object name='" + idTagContenuto + "' id='" + idTagContenuto + "_swf' type='application/x-shockwave-flash' width='" + scrSmallBanWidth + "' height='" + scrSmallBanHeight + "' data='" + indirizzo + "'>\n";
            codiceHtml = codiceHtml + "<param name='movie' value='" + indirizzo + "'>\n";
            codiceHtml = codiceHtml + "<param name='wmode' value='transparent'>\n";
            codiceHtml = codiceHtml + "<param name='loop' value='true'>\n";
            codiceHtml = codiceHtml + "</object>\n";
            divScreenSmall.innerHTML = codiceHtml;
        }
        
        if (fl_effects_intro)
        {
            // Effetti Mootools
            eff_intro();
            // Fine Effetti Mootools
        }
    }
      
}


// gestisce la navigazione delle categorie e degli oggetti, attiva lo screenSaver piccolo e ferma l'esecuzione dei filmati 
function showCat(p,p2)
{
    clickCounter++; // incremento contatore click
    stopMovie(); // fermo i filmati

    // spengo lo screen saver
    // (se lo screen saver deve coprire graficamente le categorie di primo livello commentare questo codice)
    colScreenSaver=document.getElementById("screenSaver");
    if (colScreenSaver.style.visibility!="hidden")
    { 
        if (fl_screen_saver)
        {
            sospendi(1);
        }
        
        if (!fl_intro)
        {
            if (fl_screen_saver)
            {
                
                if(colScreenSaver.style.visibility=="visible")
                {
                    if (fl_effects_screen)
                    {
                        // Effetti Mootools
                        eff_screen_out();
                        // Fine Effetti Mootools
                    }
                    else
                    {
                        colScreenSaver.style.visibility="hidden";    
                    }
                }    
            }
            else
            {
                colScreenSaver.style.visibility="hidden";   
            }    
        }
        else
        {
            colScreenSaver.style.visibility="hidden";
        }
    }
    // (fine codice spegnimento screen saver)  

    elId="cat"+p;
    stringBack="javascript:home();";
    if (cat2Visible!=0)
    { 
        if (fl_intro)
        {
            if (cat2Visible=="screenSmall")
            {
                document.getElementById("screenSmall").innerHTML = "";
            }
        }  
        var elToHide=document.getElementById(cat2Visible);
        elToHide.style.display="none";    
    }
    var el=document.getElementById(elId);
    el.style.display="block";
    cat2Visible=elId;   

    // gestione tipologia 10 (Swf)
    for (i=0; i<swfVideos.length; i++) 
    {
        var mytool_array=swfVideos[i].split(";");
        var catSwf=mytool_array[0];
        if (catSwf==p)
        {
            var flashvars = {};
            var params = {
            menu : "false",
            allowfullscreen: "false",
            allowscriptaccess: "always",
            wmode: "transparent"    
            };
            var attributes = {
            id: mytool_array[2],
            name: mytool_array[2]
            };

            // utilizzo la libreria swfobject per embeddare il file swf
            swfobject.embedSWF(mytool_array[1], mytool_array[2] ,"100%", "100%", "9.0.0","",flashvars, params, attributes);
            swfPlaying.push(mytool_array[2]);          
        }    
    }
    // fine gestione tipologia 10 (Swf)

    // gestione percorso di navigazione contenuti e pulsante ritorna
    if (fl_navigation_contents)
    {
        elDivPath=document.getElementById("categoriePath");
        if (elDivPath.style.display=="" || elDivPath.style.display=="none")
        {
            elDivPath.style.display="block";
        }   
        elPath=document.getElementById("catPath");
        elPath.innerHTML=p2;
        elPathBack=document.getElementById("catPathBackAnchor");
        elBackId="cat2PB"+p;
        elBackTxtId="cat2PBTxt"+p;
        var check=document.getElementById(elBackTxtId);
        if (check)
        {
            if (document.getElementById(elBackTxtId).value!="")
            {
                elBackValue=document.getElementById(elBackId).value;
                elBackTxtValue=document.getElementById(elBackTxtId).value;
                stringBack="javascript:showCat("+elBackValue+",'"+elBackTxtValue+"')";
            }
        }
        elPathBack.href=stringBack;
    }
    // fine gestione percorso di navigazione contenuti e pulsante ritorna

    // Effetti Mootools
    var contentCategory=p;
    var pagedContentCategory=contentCategory.toString().indexOf("_");
    if (pagedContentCategory>-1)
    {
        // il parametro p è una stringa (cat_pag) e rappresenta una categoria contenente oggetti con numero di pagina >1, continuazione della categoria in prima pagina
        contentCategory=p.toString().substring(0,pagedContentCategory);
    }
    if (MaxF_in_array(contentsCat,contentCategory))
    {
        if (fl_effects_obj)
        {
            // Effetti Mootools
            // effetto di transizione orizzontale
            eff_obj(elId);
            // Fine Effetti Mootools
        } 
    }
    else
    {
        if (fl_effects_cat)
        { 
            el.style.display="none";
            // Effetti Mootools
            // effetto di transizione verticale 
            eff_cat_in(elId);
            // Fine Effetti Mootools
        } 
    }    
    // fine Effetti Mootools          
}


// accende lo screenSaver e nasconde le pagine di navigazione di categorie e oggetti        
function home2 ()
{
    stopMovie();
    if (cat2Visible!=0)
    {
        if (fl_intro)
        {
            if (cat2Visible=="screenSmall")
            {
                document.getElementById("screenSmall").innerHTML = "";
            }
        }   
        var elToHide=document.getElementById(cat2Visible);
        elToHide.style.display="none";
        cat2Visible=0; 
    }
    elDivPath=document.getElementById("categoriePath");
    if (elDivPath.style.display=="block")
    {
        elDivPath.style.display="none";
    }
    colInte=document.getElementById("intestazione");
    // caso particolare utenza
    colInte.style.background="url(templates/8/intestazioneScreen.jpg)";
    // caso particolare utenza fine
    col1=document.getElementById("finestraSinistra");
    col2=document.getElementById("finestraCentro");
    col3=document.getElementById("finestraDestra");
    colScreenSaver=document.getElementById("screenSaver");

    if (fl_navigation_main)
    {
        document.getElementById("menuButtonScreenDiv").style.display="block";
        document.getElementById("menuButtonDiv").style.display="none";
    }  

    // se lo screen saver deve coprire graficamente le categorie di primo livello scommentare questo codice
    /* 
    col1.style.display="none";
    col2.style.display="none";
    col3.style.display="none";
    */

    colScreenSaver.style.visibility="visible";

    if (screenBigFlag<2)
    { 
        screenBigFlag++; // lo screenSaver è partito
    }

    if (fl_effects_screen)
    {
        // Effetti Mootools
        eff_screen_in();
        // Fine Effetti Mootools
    }

    riprendi(1); // attiva lo screenSaver   
}


// esegue i filmati e ferma il filmato eventualmente in esecuzione
function playMovie(p)
{
    // mov
    if (p.indexOf("mov_") > -1)
    {
        stopMovie();

        var codiceHtml="";
        var indirizzo= movFileNames[p];
        var idTagContenuto= movVideos[p];

        codiceHtml = codiceHtml + "<object id='" + idTagContenuto + "' classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' codebase='http://www.apple.com/qtactivex/qtplugin.cab'>\n";
        codiceHtml = codiceHtml + "<param name='src' value='" + indirizzo + "'>\n";
        codiceHtml = codiceHtml + "<param name='autoplay' value='true'>\n";
        codiceHtml = codiceHtml + "<param name='loop' value='false'>\n";
        codiceHtml = codiceHtml + "<param name='enablejavascript' value='true'>\n";
        codiceHtml = codiceHtml + "<param name='kioskmode' value='true'>\n"; 
        codiceHtml = codiceHtml + "<param name='href' value='false'>\n";
        codiceHtml = codiceHtml + "<param name='enablehref' value='false'>\n";      
        codiceHtml = codiceHtml + "<param name='controller' value='false'>\n";
        codiceHtml = codiceHtml + "<param name='wmode' value='opaque'>\n";
        codiceHtml = codiceHtml + "<param name='bgcolor' value='black'>\n";
        codiceHtml = codiceHtml + "<param name='scale' value='aspect'>\n"; 
        codiceHtml = codiceHtml + "<param name='showlogo' value='false'>\n";
        codiceHtml = codiceHtml + "<embed name='" + idTagContenuto + "' id='" + idTagContenuto + "' autoplay='true' loop='false' enablejavascript='true' href='false' wmode='opaque' bgcolor='black' kioskmode='true' enablehref='false' controller='false' type='video/quicktime' pluginspage='/quicktime/download/' scale='aspect' showlogo='false' src='" + indirizzo + "'></embed>\n";     
        codiceHtml = codiceHtml + "</object>\n";

        document.getElementById("sinistro_"+idTagContenuto).innerHTML = codiceHtml;
        moviePlaying=p; 
    }
    // flv
    else if (p.indexOf("ply_") > -1)
    {
        if (moviePlaying != "")
        {      
            if (moviePlaying.indexOf("ply_") > -1)
            {
                var player2 = flvVideos[moviePlaying];
                if (player2!=null)
                {
                    // scarico il filmato
                    swfobject.removeSWF(moviePlaying);
                    var d = document.createElement("div");
                    d.setAttribute("id", moviePlaying);
                    document.getElementById("sinistro_"+moviePlaying).appendChild(d);
                    document.getElementById("sinistro_"+p).className="sinistro";     
                }
            }
            else if (moviePlaying.indexOf("mov_") > -1)
            {
                stopMovie();        
            } 
        }    
        var player = flvVideos[p];
        if (player!=null)
        {
            // scarico il filmato
            swfobject.removeSWF(p);
            var d = document.createElement("div");
            d.setAttribute("id", p);
            document.getElementById("sinistro_"+p).appendChild(d);
            document.getElementById("sinistro_"+p).className="sinistro"; 
            // ricarico il filmato
            var indirizzo= flvFileNames[p];
            var flashvars = {
            file: "" + indirizzo,
            autostart: "true",
            autorewind: "true",
            bufferlength: "10",
            flvWidth: "" + flvObjWidth, 
            flvHeight: "" + flvObjHeight
            };
            var params = {
            menu : "false",
            allowfullscreen: "false",
            allowscriptaccess: "always"  
            };
            var attributes = {
            id: ""+p,
            name: ""+p
            };

            // utilizzo la libreria swfobject per ricaricare il file swf
            swfobject.embedSWF("scripts/maxFlvPlayer.swf", p ,"100%","100%", "9.0.0","",flashvars, params, attributes);
            moviePlaying=p;  
        }      
    }
}


// ferma i filmati
function stopMovie()
{
    if (moviePlaying != "") // c'è un filmato in esecuzione
    {
        // flv
        if (moviePlaying.indexOf("ply_") > -1)
        {   
            var player = flvVideos[moviePlaying]; 
            if (player!=null)
            {  
                // rimuovo il filmato
                swfobject.removeSWF(moviePlaying);
                var d = document.createElement("div");
                d.setAttribute("id", moviePlaying);
                document.getElementById("sinistro_"+moviePlaying).appendChild(d);
                document.getElementById("sinistro_"+moviePlaying).style.background="black"; 
            }   
        }
        // mov
        else if (moviePlaying.indexOf("mov_") > -1)
        {
            eval("document."+moviePlaying+".Stop()");  // fermo il filmato
            document.getElementById("sinistro_"+moviePlaying).innerHTML = "";  
        } 
    }
    moviePlaying=""; // resetto la variabile globale

    // Gestione tipologia 10 (file Swf) 
    for (i=0; i<swfPlaying.length; i++) 
    {
        // rimuovo il file swf
        swfobject.removeSWF(swfPlaying[i]);
        var d2 = document.createElement("div");
        d2.setAttribute("id", swfPlaying[i]);
        document.getElementById("div_"+swfPlaying[i]).appendChild(d2);                
    }
    swfPlaying=[]; // resetto l'array globale
    // Fine Gestione tipologia 10 (file Swf)   
}


// disabilita la selezione dei contenuti testuali con la pressione del click e il trascinamento
function disableSelection(element) 
{
    element.onselectstart = function() 
    {
    return false;
    };
    element.unselectable = "on";
    element.style.MozUserSelect = "none";
    element.style.cursor = "default";
}       


// ritorna il nome del browser da cui il sito è visualizzato
function browsDetect()
{
    var nVer = navigator.appVersion;
    var nAgt = navigator.userAgent;
    var browserName  = '';
    var fullVersion  = 0; 
    var majorVersion = 0;
    var brows = new Array("",0,0);

    // In Internet Explorer, the true version is after "MSIE" in userAgent
    if ((verOffset=nAgt.indexOf("MSIE"))!=-1) 
    {
        browserName  = "Microsoft Internet Explorer";
        fullVersion  = parseFloat(nAgt.substring(verOffset+5));
        majorVersion = parseInt(''+fullVersion);
    }

    // In Opera, the true version is after "Opera" 
    else if ((verOffset=nAgt.indexOf("Opera"))!=-1) 
    {
        browserName  = "Opera";
        fullVersion  = parseFloat(nAgt.substring(verOffset+6));
        majorVersion = parseInt(''+fullVersion);
    }

    // In Firefox, the true version is after "Firefox" 
    else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) 
    {
        browserName  = "Firefox";
        fullVersion  = parseFloat(nAgt.substring(verOffset+8));
        majorVersion = parseInt(''+fullVersion);
    }

    // In most other browsers, "name/version" is at the end of userAgent 
    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
    {
        browserName  = nAgt.substring(nameOffset,verOffset);
        fullVersion  = parseFloat(nAgt.substring(verOffset+1));
        if (!isNaN(fullVersion)) majorVersion = parseInt(''+fullVersion);
        else {fullVersion  = 0; majorVersion = 0;}
    }

    // Finally, if no name and/or no version detected from userAgent...
    if (browserName.toLowerCase() == browserName.toUpperCase() || fullVersion==0 || majorVersion == 0 )
    {
        browserName  = navigator.appName;
        fullVersion  = parseFloat(nVer);
        majorVersion = parseInt(nVer);
    }
    
    brows[0]=browserName;
    brows[1]=fullVersion;
    brows[2]=majorVersion;
    return brows;
}


// cerca l'elemento "element" nell'array "theArray" 
// ritorna true se almeno una occorrenza di "element" è stata trovata, false altrimenti      
function MaxF_in_array(theArray, element)
{
    var res=false;
    for(var e=0;e<theArray.length;e++)
    {
        if(element == theArray[e])
        {
            res=true;
            break;
        }
   }
   return res;
}