﻿var Page = {
    Carousel: {},
    Video: {}
};

window.onscroll = function() {
    var AmazonMenu = document.getElementById("AmazonMenu");
    var AmazonMenuHolder = document.getElementById("AmazonAdLimit");
    if (scrollTop() <= AmazonMenuHolder.offsetTop) {
        AmazonMenu.style.top = AmazonMenuHolder.offsetTop + "px";
        AmazonMenu.style.position = 'absolute';
    }
    else {
        if ((clientHeight() - scrollTop()) < parseInt(AmazonMenu.style.height) + 25) {
            AmazonMenu.style.position = 'fixed';
            AmazonMenu.style.top = "-" + ((parseInt(AmazonMenu.style.height)) - (clientHeight() - scrollTop() - 50)) + "px";
        }
        else {
            AmazonMenu.style.position = 'fixed';
            AmazonMenu.style.top = '0px';
        }
    }
}

function Popup(Site, VidID, myWidth, myHeight) {
    window.open('/video/watch/?s=' + Site + '&v=' + VidID, 'mywindow', 'width=' + myWidth + ',height=' + myHeight)
}

function setAmazonAd() {
    var AmazonMenu = document.getElementById("AmazonMenu");
    var AmazonMenuHolder = document.getElementById("AmazonAdLimit");
    AmazonMenu.style.top = AmazonMenuHolder.offsetTop + "px";
    AmazonMenu.style.position = 'absolute';
}

Page.Video.Set = function(videoURI, videoSite) {
    scrollTo(0, 0);
    switch (videoSite) {
        case "YouTube":
            document.getElementById("VideoPlayer").innerHTML = "<object width=\"812\" height=\"493\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoURI + "&hl=en&fs=1&\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoURI + "&hl=en&fs=1&\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"812\" height=\"493\"></embed></object>";
            document.getElementById("page.popout").innerHTML = "<div onclick=\"Popup('YouTube', '" + videoURI + "', '812', '493');\" style=\"display:block;height:100%;padding:1px 3px;\">Watch in new window</div>"
            break;
        case "Joost":
            document.getElementById("VideoPlayer").innerHTML = "<object width=\"800\" height=\"450\"><param name=\"movie\" value=\"http://www.joost.com/embed/" + videoURI + "\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowNetworking\" value=\"all\"></param><param name=\"allowScriptAccess\" value=\"always\"></param><embed src=\"http://www.joost.com/embed/" + videoURI + "\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" allowscriptaccess=\"always\" allownetworking=\"all\" width=\"800\" height=\"450\"><noembed><a href=\"http://www.joost.com/" + videoURI + "/t/Chance-Pop-Session-Ep-3-Class-S\">Chance Pop Session Ep. 3 - Class S</a></noembed></embed></object>";
            document.getElementById("page.popout").innerHTML = "<div onclick=\"Popup('Joost', '" + videoURI + "', '800', '450');\" style=\"display:block;height:100%;padding:1px 3px;\">Watch in new window</div>"
            break;
        case "Hulu":
            document.getElementById(Page_hfldVidURIID).value = videoURI;
            document.getElementById(Page_btnVidURIID).click();
            break;
        case "AltHulu":
            document.getElementById("VideoPlayer").innerHTML = "<object width=\"806\" height=\"466\"><param name=\"movie\" value=\"http://www.hulu.com/embed/" + videoURI + "\"></param><param name=\"allowFullScreen\" value=\"true\"></param><embed src=\"http://www.hulu.com/embed/" + videoURI + "\" type=\"application/x-shockwave-flash\" allowFullScreen=\"true\" width=\"806\" height=\"466\"></embed></object>";
            document.getElementById("page.popout").innerHTML = "<div onclick=\"Popup('Hulu', '" + videoURI + "', '806', '466');\" style=\"display:block;height:100%;padding:1px 3px;\">Watch in new window</div>"
            break;
        default:
            window.location = videoURI;
    }
    setAmazonAd();
}

var Carousel = Page.Carousel;

Carousel.ToggleList = function(start, end) {
    if (start != null) {
        if (start != end) {
            if (start > end) {
                if (start - 6 <= end) start = end + 7;
                document.getElementById("CarouselHolder").style.height = start + "px";
                start -= 7;
                setTimeout("Carousel.ToggleList(" + start + "," + end + ")", 15);
            }
            else {
                if (start + 6 >= end) start = end - 7;
                document.getElementById("CarouselHolder").style.height = start + "px";
                start += 7;
                setTimeout("Carousel.ToggleList(" + start + "," + end + ")", 15);
            }
        }
        else {
            document.getElementById("CarouselHolder").style.height = start + "px";
            if (document.getElementById("CarouselHolder").style.height == "75px") {
                Carousel.setOpacity("CarouselHolder", 0, 100, 1000);
            }
        }
    }
    else {
        var listHeight = document.getElementById("CarouselHolder").style.height;
        if (listHeight == "0px") {
            Carousel.changeOpacity(0, "CarouselHolder");
            Carousel.ToggleList(0, 75);
        }
        if (listHeight == "75px") {
            Carousel.setOpacity("CarouselHolder", 100, 0, 500);
            setTimeout("Carousel.ToggleList(75, 0);", 500);
        }
    }
    var AmazonMenu = document.getElementById("AmazonMenu");
    var AmazonMenuHolder = document.getElementById("AmazonMenuHolder");
    if (scrollTop() <= AmazonMenuHolder.offsetTop) {
        AmazonMenu.style.top = AmazonMenuHolder.offsetTop + "px";
    }
    else {
        AmazonMenu.style.top = scrollTop() + "px";
    }            
}

Carousel.setOpacity = function(id, opacStart, opacEnd, millisec, hide) {
    if (!hide) {
        hide = 0;
    }

    if (navigator.appName == "Microsoft Internet Explorer") {
        millisec = millisec / 3;
    }

    var speed = Math.round(millisec / 100);
    var timer = 0;

    if (opacStart > opacEnd) {
        for (i = opacStart; i >= opacEnd; i--) {
            setTimeout("Carousel.changeOpacity(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    } else if (opacStart < opacEnd) {
        for (i = opacStart; i <= opacEnd; i++) {
            setTimeout("Carousel.changeOpacity(" + i + ",'" + id + "')", (timer * speed));
            timer++;
        }
    }

    if (hide == 1) {
        setTimeout("document.getElementById('" + id + "').style.display='none';", millisec);
    }
}

Carousel.changeOpacity = function(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

Thumbnail.findPosX = function(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft += obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj = obj.offsetParent;
        }
    } else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}





Carousel.findPosX = function(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft += obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj = obj.offsetParent;
        }
    } else if (obj.x) {
        curleft += obj.x;
    }
    return curleft;
}

Carousel.Scroll = function(src, e) {
    if (!e) { var e = window.event };
    var posx = 0;
    if (!e) var e = window.event;
    if (e.pageX) posx = e.pageX;
    else if (e.clientX) posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;

    var MouseX = posx - Carousel.findPosX(src);
    var OldMarginLeft = 0;

    if (document.getElementById("Carousel").style.marginLeft) OldMarginLeft = parseInt(document.getElementById("Carousel").style.marginLeft);
    var LeftOffSet = parseInt((MouseX / src.clientWidth) * (src.scrollWidth - parseInt(OldMarginLeft) - src.clientWidth));
    if (LeftOffSet >= 0) document.getElementById("Carousel").style.marginLeft = "-" + LeftOffSet + "px";
}

Carousel.ScrollIn = function(srcID, e) {
    Carousel.Reset(e, "0px", true);
    Carousel.setStyle(srcID, 60, 0);
    Carousel.setStyle(srcID - 1, 50, 0);
    Carousel.setStyle(srcID + 1, 50, 0);
}

Carousel.Reset = function(e, marginTopSize, force) {
    if (!force) force = false;
    if (!marginTopSize) marginTopSize = "0px";
    var i = 0;
    while (document.getElementById("CarouselObject" + i) && (Carousel.isMouseLeaveOrEnter(e) || force)) {
        document.getElementById("CarouselObject" + i).style.height = "45px";
        document.getElementById("CarouselObject" + i).style.width = "45px";
        document.getElementById("CarouselObject" + i).style.marginTop = marginTopSize;
        i++;
    }
}

Carousel.isMouseLeaveOrEnter = function(e, handler) {
    if (!handler) handler = document.getElementById("CarouselHolder");
    if (e.type != 'mouseout' && e.type != 'mouseover') return false;
    var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
    while (reltg && reltg != handler) reltg = reltg.parentNode;
    return (reltg != handler);
}

Carousel.setStyle = function(objID, objSize, objMarginTop) {
    if (document.getElementById("CarouselObject" + objID)) {
        document.getElementById("CarouselObject" + objID).style.height = objSize + "px";
        document.getElementById("CarouselObject" + objID).style.width = objSize + "px";
        document.getElementById("CarouselObject" + objID).style.marginTop = objMarginTop + "px";
    }
}                
