﻿
(function ($) {

    $.fn.assetLauncher = function (options) {
        var defaults = {
            assetId: 0,
            type: null, // image | video | ezine | file
            filename: null,
            caption: null
        };
        var options = $.extend(defaults, options);

        launchImage = function () {
            var o = options;
            var html = [];

            html.push('<img src="', o.filename, '" />');
            html.push('<div class="assetCaption">', o.caption, '</div>');

            showOverlay(html.join(''), 'assetOverlayImage');
        };

        launchVideo = function () {
            var o = options;
            var html = [];

            html.push('<div id="jwplayerContainer"></div>');
            html.push('<div class="assetCaption">', o.caption, '</div>');

            showOverlay(html.join(''), 'assetOverlayVideo');
            launchVideo_initJWPlayer();
        };

        launchVideo_initJWPlayer = function () {
            var o = options;
            jwplayer("jwplayerContainer").setup({
                autostart: false,
                allowfullscreen: true,
                file: o.filename,
                flashplayer: "/_common/jwplayer/player.swf",
                width: 604,
                height: 340,
                controlbar: 'bottom'
            });
        };

        showOverlay = function (html, className) {
            var overlay = $('.assetOverlay');

            overlay.attr('class', 'assetOverlay ' + className);
            overlay.find('div').html(html);

            var api = overlay.data('overlay');
            api.load();
        };

        return this.each(function () {
            var o = options, scope = this;

            $(this).bind('click', function (e) {

                if (o.type === 'image') {
                    launchImage();
                }

                if (o.type === 'video') {
                    launchVideo();
                }

                e.preventDefault();
                return false;
            });
        });
    };

})(jQuery);
