﻿var MultimediaVideoHelper = function() {

    var createLink = function(url, text) {
        return "<a href='" + url + "'>" + text + "</a>";
    };

    var createRelatedArticleLink = function(html) {

        var listItem = document.createElement('LI');
        listItem.innerHTML = html;
        document.getElementById('relatedArticleList').appendChild(listItem);
    };

    var unescapeHtml = function(str) {
        if (str == null)
            return '';
        str = str.replace(/\&apos;/g, "'");
        str = str.replace(/\&quot;/g, "\"");
        return str;
    };

    var loadplayer = function() {
        flowplayer("player", "/flash/flowplayer/flowplayer.commercial-3.1.3.swf", {

            // ## Product key [*.fin24.com]
            key: '#@48d9fd9e984eebbc4ad',
            onLoad: function() {

            },
            plugins: {
                controls: {
                    tooltips: {
                        buttons: true,
                        play: 'Play',
                        pause: 'Pause',
                        fullscreen: 'Full Screen'
                    },
                    tooltipColor: '#112233',    // ## Background color for all tooltips
                    tooltipTextColor: '#FFFFFF' // ## tooltips text color
                }
            },

            clip: {                         // ## Pause on first frame of the video
                autoPlay: true,
                autoBuffering: false
            }
        });
    };

    var loadplayerFromImage = function(imageElement) {        
        $('#mvStartImage').hide();
        $('#player').show();

        loadplayer();
    };

    var loadVideo = function(path, image) {
        $('#player').attr('href', path);
        $('#mvStartImage').attr('src', image);
        $('#mvStartImage').show();
        $('#player').hide();
    };

    var setArticleFields = function(container) {
        window.scrollTo(0, 200);

        $('#lblNowPlayingHeadline').text(container.headline);
        $('#lblNowPlayingTimestamp').text(container.publicationdate);
        $('#lblNowPlayingSynopsis').text(container.synopsis);

        document.getElementById('relatedArticleList').innerHTML = '';

        if (container.relatedarticles.length > 0) {
            var relatedArticlesJSON = JSON.parse(container.relatedarticles);

            for (var i = 0; i < relatedArticlesJSON.length; i++) {
                createRelatedArticleLink(createLink(relatedArticlesJSON[i].m_relatedArticleUrl, unescapeHtml(relatedArticlesJSON[i].m_heading)));
            }
        }
    };


    var attachClickEvents = function() {
        // Carousel img click. 
        $('div.carousel_thumbnail').click(function() {
            var container = {
                headline: $(this).attr('headline')
                , story: $(this).attr('story')
                , publicationdate: $(this).attr('publicationdate')
                , synopsis: $(this).attr('synopsis')
                , startupimage: $(this).attr('startupimage')
                , overlayimage: $(this).attr('overlayimage')
                , mediaurl: $(this).attr('mediaurl')
                , relatedarticles: $(this).attr('relatedarticles')
            };

            setArticleFields(container);

            loadVideo(container.mediaurl, container.overlayimage);
        });

        // remove aritcle link from article
        $('div.carousel_thumbnail h4 a').attr('href', 'javascript:void(0);');

        // Overlay click.
        $('#mvStartImage').click(function(img) {
            loadplayerFromImage(img);
        });

    };

    var setup = function() {
        attachClickEvents();
        $('#player').hide();
    };

    return {
        Setup: function() { setup(); }
    }
};
