﻿(function () {

	//var videoBox = window.videoBox = new VideoBox();
    
window.videoBox = {

    Show: function (playerId, playerWidth, playerHeight, playerTitle) {
        // Hime some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
        $('embed, object, select').css({ 'visibility': 'hidden' });


        // Apply the HTML markup into body tag
	var imagesBaseUrl = 'https://media.finnkino.fi';
        $('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div style="padding:10px;"><div id="' + playerId + '"><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="' + baseUrl + '/images/ajax-loader.gif' + '"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption">' + playerTitle + '</span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="' + imagesBaseUrl + '/images/lightbox-btn-close.gif' + '"></a></div></div></div></div></div>');
        // Get page sizes
        var arrPageSizes = this.___getPageSize();
        // Style overlay and show it
        $('#jquery-overlay').css({
            backgroundColor: "#000",
            opacity: "0.8",
            width: arrPageSizes[0],
            height: arrPageSizes[1]
        }).fadeIn();
        // Get page scroll
        var arrPageScroll = this.___getPageScroll();
        // Calculate top and left offset for the jquery-lightbox div object and show it
        $('#jquery-lightbox').css({
            top: arrPageScroll[1] + (arrPageSizes[3] / 10),
            left: arrPageScroll[0]
        }).show();
        // Assigning click events in elements to close overlay
        $('#jquery-overlay,#jquery-lightbox').click(function () {
            videoBox._finish();
        });
        $('#lightbox-container-image-box').click(function () {
            return false;
        });
        // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects
        $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function () {
            videoBox._finish();
            return false;
        });
        // If window was resized, calculate the new overlay dimensions
        $(window).resize(function () {
            // Get page sizes
            var arrPageSizes = this.___getPageSize();
            // Style overlay and show it
            $('#jquery-overlay').css({
                width: arrPageSizes[0],
                height: arrPageSizes[1]
            });
            // Get page scroll
            var arrPageScroll = this.___getPageScroll();
            // Calculate top and left offset for the jquery-lightbox div object and show it
            $('#jquery-lightbox').css({
                top: arrPageScroll[1] + (arrPageSizes[3] / 10),
                left: arrPageScroll[0]
            });
        });



        // Show the loading
        $('#lightbox-loading').show();
        // Hide some elements
        $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();


        var containerBorderSize = 10;

        $('#lightbox-container-image-box').css({ width: (playerWidth + (containerBorderSize * 2)) });
        $('#lightbox-container-image-box').css({ height: (playerHeight + (containerBorderSize * 2)) });
        $('#lightbox-container-image-data-box').css({ width: playerWidth });
        $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: playerHeight + (containerBorderSize * 2) });
        $('#lightbox-container-image-data-box').show();
    },

    _finish: function() {
        $('#jquery-lightbox').remove();
        $('#jquery-overlay').fadeOut(function () { $('#jquery-overlay').remove(); });
        // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
        $('embed, object, select').css({ 'visibility': 'visible' });
    },

    /**
    / THIRD FUNCTION
    * getPageSize() by quirksmode.com
    *
    * @return Array Return an array with page width, height and window width, height
    */
    ___getPageSize: function() {
        var xScroll, yScroll;
        if (window.innerHeight && window.scrollMaxY) {
            xScroll = window.innerWidth + window.scrollMaxX;
            yScroll = window.innerHeight + window.scrollMaxY;
        } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
        } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
        }
        var windowWidth, windowHeight;
        if (self.innerHeight) {	// all except Explorer
            if (document.documentElement.clientWidth) {
                windowWidth = document.documentElement.clientWidth;
            } else {
                windowWidth = self.innerWidth;
            }
            windowHeight = self.innerHeight;
        } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
        } else if (document.body) { // other Explorers
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
        }
        // for small pages with total height less then height of the viewport
        if (yScroll < windowHeight) {
            pageHeight = windowHeight;
        } else {
            pageHeight = yScroll;
        }
        // for small pages with total width less then width of the viewport
        if (xScroll < windowWidth) {
            pageWidth = xScroll;
        } else {
            pageWidth = windowWidth;
        }

        var D = document;
        var dheight = Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );

        //arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
        arrayPageSize = new Array(pageWidth, dheight, windowWidth, windowHeight);
        return arrayPageSize;
    },

    /**
    / THIRD FUNCTION
    * getPageScroll() by quirksmode.com
    *
    * @return Array Return an array with x,y page scroll values.
    */
    ___getPageScroll: function() {
        var xScroll, yScroll;
        if (self.pageYOffset) {
            yScroll = self.pageYOffset;
            xScroll = self.pageXOffset;
        } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
            yScroll = document.documentElement.scrollTop;
            xScroll = document.documentElement.scrollLeft;
        } else if (document.body) {// all other Explorers
            yScroll = document.body.scrollTop;
            xScroll = document.body.scrollLeft;
        }
        arrayPageScroll = new Array(xScroll, yScroll);
        return arrayPageScroll;
    }

};

