if(typeof Splicd == "undefined") {
    
    splices = {};
    
    function onYouTubePlayerReady(playerId)
    {
        splice = splices[playerId];
                    
        splice.player = document.getElementById("splicd-" + playerId);
        splice.player.addEventListener("onStateChange", 'splices["' + playerId + '"].playerStateChange');
    }
    
    function startInterval(id, seconds)
    {
        return setInterval(function() {splices[id].checkYouTubePlayHead()}, seconds * 1000);
    }
    
    Splicd = function()
    {
        var defaults = { video_id: null, start: 0, end: 0 , autostart: false, width: 425, height: 344, unique_id: Math.floor((Math.random() * 100000)) };
        
        for(key in defaults)
            this[key] = arguments[0][key] || defaults[key];
                    
        this.video = 'http://www.youtube.com/v/' + this.video_id + '&amp;enablejsapi=1&amp;start=' + this.start + '&amp;playerapiid=' + this.unique_id;
        
        document.write('<div class="splicdVideo" style="width: ' + this.width + 'px;">'); /// rho removed margin-bottom: 10px;
            document.write('<object width="' + this.width + '" height="' + this.height + '" type="application/x-shockwave-flash" id="splicd-' + this.unique_id + '" data="' + this.video + '">');
                document.write('<param name="movie" value="' + this.video + '" />');
                document.write('<param name="allowScriptAccess" value="always" />');
                document.write('<param name="allowFullScreen" value="true" />');
            document.write('</object></div>'); /// rho added missing </div>
        
        splices[this.unique_id] = this;
    };
    
    Splicd.prototype =
    {
        playerStateChange: function(state)
        {
            if(state == 5 || state == 3)   
                this.splice = true;
                            
            if(state == 1)
                this.timer = startInterval(this.unique_id, 1);
                
            if(state == 2 || state == 0) 
                clearInterval(this.timer);
        },
        checkYouTubePlayHead: function()
        {
            var current = this.player.getCurrentTime();
                         
            if((current >= this.end) && this.splice) {
                this.player.seekTo(this.start, true);
                this.player.pauseVideo();
            }
            
            if(current > this.start)
                this.played = true;            
        },
        playAll: function()
        {
            this.splice = false;
            this.player.seekTo(0, true);
        },
        playSplice: function()
        {
            this.splice = true;
            this.player.seekTo(this.start, true);
        }
    }
}
function togglePannelStatus(content)
{
    var expand = (content.style.display=="none");
    content.style.display = (expand ? "block" : "none");
    toggleChevronIcon(content);
}

// current animated collapsible panel content
var currentContent = null;

function togglePannelAnimatedStatus(content, interval, step)
{
    // wait for another animated expand/collapse action to end
    if (currentContent==null)
    {
        currentContent = content;
        var expand = (content.style.display=="none");
        if (expand)
            content.style.display = "block";
        var max_height = content.offsetHeight;

        var step_height = step + (expand ? 0 : -max_height);
        toggleChevronIcon(content);
                
        // schedule first animated collapse/expand event
        content.style.height = Math.abs(step_height) + "px";
        setTimeout("togglePannelAnimatingStatus(" + interval + "," + step
            + "," + max_height + "," + step_height + ")", interval);
    }
}

function togglePannelAnimatingStatus(interval, step, max_height, step_height)
{
    var step_height_abs = Math.abs(step_height);

    // schedule next animated collapse/expand event
    if (step_height_abs>=step && step_height_abs<=(max_height-step))
    {
        step_height += step;
        currentContent.style.height = Math.abs(step_height) + "px";
        setTimeout("togglePannelAnimatingStatus(" + interval + "," + step
            + "," + max_height + "," + step_height + ")", interval);
    }
    // animated expand/collapse done
    else
    {
        if (step_height_abs<step)
            currentContent.style.display = "none";
        currentContent.style.height = "";
        currentContent = null;
    }
}

// change chevron icon into either collapse or expand
function toggleChevronIcon(content)
{
    var chevron = content.parentNode.firstChild.childNodes[1].childNodes[0];
    var expand = (chevron.src.indexOf("expand.gif")>0);
    chevron.src = chevron.src
        .split(expand ? "expand.gif" : "collapse.gif")
        .join(expand ? "collapse.gif" : "expand.gif");
}

