/* gnTools.js v 2.1
 * Some horrible javascript to provide gimmicky animation
 * Bastiaan Egberts
 * 20110615
 * $Rev$
 * 
 */
var bConnectHandlers=true;
var bEnableAnimations=true;
var iAnimationEnlargeDelay=50;
var showreelContainerCollapsedPx = 40;
var showreelContainerExpandedPx = 450;
var movePlaceholderByPx = -205;
var showreelMinimizedOpacity = 0.5;
var connections = [];
var connections2 = []; // will not be disconnected
var node;
var placeholder;
var showreel_txt;
var nodeInnerHTML;
var pageRoot;

////////////////////////////////////////////////////////////////////////////////

dojo.ready(function(){     // This executes on page load

    node =          dojo.byId("showreelContainer");
    placeholder =   dojo.byId("showreelPlaceholder" );
    showreel_txt =  dojo.byId("showreel_txt");

    /* TODO: Not al IE are Equal, ... we might want to keep some of the fluff for
     *  7 and above 
     */
    // IE?   
    //   if(dojo.isIE){ 
    /* in case of interwibblesExploder we destroy the
     * showreelcontainer and leave the detritus to be
     * cared about by somebody who's not me.
     */
    //    dojo.byId('showreelLink').setAttribute("onclick","true");//enable link to showreel
    //  exit;//and stop the script    
    //}

    ////////////////////////////////////////////////////////////////////////////////

    dojo.style(node,"cursor","pointer");
    // dojo.style(node,"position", "absolute");
    dojo.style(placeholder,"position", "relative");
    
    shrinkContainer();
    dojo.style(placeholder, "top", "-225px");
    ////dojo.style(node, "height", showreelContainerCollapsedPx + "px");
    // in .css: dojo.style(node, "overflow", "hidden");
    // done by funcion: dojo.style(node, "opacity", showreelMinimizedOpacity);
    // connect the eventhandlers    
     connectHandlers(placeholder);
     
    dojo.query(".media").forEach(function(node){
        connectHandlers(node);
    });
  
       
    });

    ////////////////////////////////////////////////////////////////////////////////
    function connectHandlers(muppet){
    console.log('muppet: ' + muppet);
    
        //var muppet =   placeholder // dojo.byId("showreelContainer");
        if(muppet===placeholder){
            
            connections.push(dojo.connect(muppet,"onmouseenter", function(){
                enlargeContainer()
            }));
            connections.push(dojo.connect(muppet,"onmouseleave", function(){
                shrinkContainer()
            }));

            connections.push(dojo.connect(muppet,"onclick", function(){
                loadPlayer(['flv/showreel-iix-mmix.flv']);
            }));
        }
        else
        {
            //console.log(dojo.query('>',muppet));
            
            //console.log('playlist: ' + playlist);
            connections2.push(dojo.connect(muppet,"onclick", function(){
                pageRoot="http://gentlenarcotic.net/";
                //enlargeContainer();
                playlist = [(dojo.attr(dojo.query('>',muppet)[0],'href'))];
                //console.log(playlist,(dojo.attr(dojo.query('>',muppet)[0],'coverImage')))
                loadPlayer(playlist,(dojo.attr(dojo.query('>',muppet)[0],'coverImage')));
            }));    
        }
    }
    ////////////////////////////////////////////////////////////////////////////////
    function enlargeContainer(){
        //   dojo.style(node, "position", "absolute");
        var enlargeShR = dojo.animateProperty({
            node: node,        
            delay: iAnimationEnlargeDelay,
            duration: 700,
            properties:{
                opacity: {
                    end: 1
                },
                height: {
                    //start: showreelContainerCollapsedPx,
                    end:showreelContainerExpandedPx,
                    unit:"px"
                }
            }
        })//.play();
        var movePlaceholderDn = dojo.animateProperty({
            node: placeholder,
            delay: 50,
            duration: 740,
            properties:{
                top: {
                    end: 0,
                    unit: "px"

                }
            }
        })
        enlargeShR.play();
        movePlaceholderDn.play();

 
    }

    function shrinkContainer(){
        //output +='\nshrink container';
        //  dojo.byId("debug").innerHTML= "DEBUG: " + output;
        var shrinkSR = dojo.animateProperty({
            node: node,
            delay: 50,
            duration: 700,
            properties:{
                // fade back in and make text bigger
                opacity: {
                    end: showreelMinimizedOpacity // make a variable for this!
                },
                height: {
                    end:showreelContainerCollapsedPx,
                    unit:"px"
                }
            }
        })
        var movePlaceholderUp = dojo.animateProperty({
            node: placeholder,
            delay: 0,
            duration: 740,
            properties:{
                top: {
                    end: movePlaceholderByPx //movePlaceholderByPx
                
                }
            }
        })
        shrinkSR.play();
        movePlaceholderUp.play();

    }

    function loadPlayer(playlist,coverImage){
   
        dojo.style(showreel_txt,"opacity", "1")
        dojo.style(dojo.byId("showreelDesc"),"background-color", "#000")
        dojo.style(dojo.byId("showreelDesc"),"opacity", "1")
        iAnimationEnlargeDelay=0;
    
        // disconnect event handlers
        disconnectHandlers();
        // maximize container just in case
        enlargeContainer();
   
        pageRoot="http://gentlenarcotic.net/";
        dojo.destroy(dojo.byId('showreelLink'));
    
        callFlowplayer(playlist,coverImage);
    
        return(false);//catch click, don't load other page
    }

    function callFlowplayer(playlist, coverImage){
    
    if(typeof(coverImage)==='undefined'){coverImage=""};
    
        console.log('-->flowplayer: ' + playlist )
        flowplayer(node, 
        "flowplayer-3.2.7.swf", 
        {
            "clip":{
                //"provider":"pseudostreaming",
                "autoPlay":"true",
                "autoBuffering":"true",
                "allowfullscreen":"false",
                "baseurl":pageRoot,
                // "url":"http://10.0.0.1/gentlenarcotic.net/flv/showreel-iix-mmix.flv"
                "coverImage": {"url": coverImage, "scaling": "fit"},
                "url": playlist
                
            },
            //"playlist":playlist,
            "screen":{
                "height":"100pct",
                "top":0
            },
            "plugins":{
                "controls":{
                    "buttonOffColor":"rgba(130,130,130,1)",
                    "timeColor":"#ffffff",
                    "borderRadius":"0px",
                    "bufferGradient":"none",
                    "sliderColor":"#000000",
                    "zIndex":1,
                    "backgroundColor":"rgba(0, 0, 0, 0)",
                    "scrubberHeightRatio":0.6,
                    "volumeSliderGradient":"none",
                    "tooltipTextColor":"#ffffff",
                    "sliderGradient":"none",
                    "spacing":{
                        "time":6,
                        "volume":8,
                        "all":2
                    },
                    "timeBorderRadius":20,
                    "timeBgHeightRatio":0.8,
                    "volumeSliderHeightRatio":0.6,
                    "progressGradient":"none",
                    "height":26
                    ,
                    "volumeColor":"#4599ff",
                    "timeSeparator":" ",
                    "tooltips":{
                        "marginBottom":5,
                        "buttons":false
                    },
                    "name":"controls",
                    "volumeBarHeightRatio":0.2,
                    "opacity":1,
                    "timeFontSize":12,
                    "left":"50pct",
                    "tooltipColor":"rgba(0, 0, 0, 0)",
                    "border":"0px",
                    "bufferColor":"#a3a3a3",
                    "volumeSliderColor":"#ffffff",
                    "buttonColor":"#ffffff",
                    "durationColor":"#b8d9ff",
                    "autoHide":{
                        "enabled":true,
                        "hideDelay":500,
                        "hideStyle":"fade",
                        "mouseOutDelay":500,
                        "hideDuration":400,
                        "fullscreenOnly":false
                    },
                    "backgroundGradient":"none",
                    "width":"100pct",
                    "sliderBorder":"1px solid rgba(128, 128, 128, 0.7)",
                    "display":"block",
                    "buttonOverColor":"#ffffff",
                    "url":"flowplayer.controls-3.2.5.swf",
                    "fullscreen":false,
                    "progressColor":"#4599ff",
                    "timeBorder":"0px solid rgba(0, 0, 0, 0.3)",
                    "timeBgColor":"rgb(0, 0, 0, 0)",
                    "scrubberBarHeightRatio":0.2,
                    "bottom":0,
                    "volumeBorder":"1px solid rgba(128, 128, 128, 0.7)",
                    "builtIn":false,
                    "margins":[2,12,2,12]
                }
            },
            onLoad: function() {	// called when player has finished loading
                this.setVolume(75);
            }
        })

    }



    function disconnectHandlers(){
        dojo.forEach(connections, dojo.disconnect);
        //output += '\ndisconnected handlers ' + node;
        //dojo.byId("debug").innerHTML= "DEBUG: " + output;
        dojo.forEach(connections, dojo.disconnect);
        console.log('handlers disconnected')
    }

    function movePlaceholderUp() {/*
    if(placeholder==null){
        console.log('woef!')
    }
    console.log(typeof(placeholder));
    console.log(dojo.position(placeholder));
    dojo.style(placeholder, "position", "relative")
    //dojo.style(placeholder, "top", "-210px");
    dojo.style(placeholder, "display", "block")
    //placeholder.y=0;
   
    var movePlaceholderUp = dojo.animateProperty({
        node: placeholder,
        delay: 0,
        duration: 740,
        properties:{
            // fade back in and make text bigger
            top: {
                end: movePlaceholderByPx
            }
        }
    })
    movePlaceholderUp.play();
    console.log(dojo.position(placeholder));*/
    }





