(function() {
    var embedVideo = function(flvPath, settings) {
    	var playerSettings = {
    		hideControlBar: false,
    		width: 310,
    		height: 310,
            containerId: null,
            autostart: true
    	};
    	
    	$.extend(playerSettings, settings);

        var outerPlayerContainerId = "outerPlayerContainer_" + playerSettings.containerId;
        var playerContainerId = "playerContainer_" + playerSettings.containerId;
        var warnMessageTextId = "warnmessagetext_" + playerSettings.containerId;
        var flashInstallLinkId = "flashInstallLink_" + playerSettings.containerId;

        var hideFunc = function() {
            swfobject.removeSWF(playerContainerId);
            $("#"+playerContainerId).remove();
            $("#"+outerPlayerContainerId).append('<div id="'+playerContainerId+'"></div>');
        };

        function showVideo() {
            var playerStr = '<div id="'+outerPlayerContainerId+'"><div id="'+playerContainerId+'"></div></div><div id="' + warnMessageTextId + '" style="display:none;">Your browser doesn\'t support the required version of the Flash plug-in. Click <a id="' + flashInstallLinkId + '" href="http://www.adobe.com/go/getflashplayer" target="_blank">here</a> to install the latest version.</div>';
            if (!playerSettings.containerId) {
                popupMessage.show({
                    content : playerStr,
                    w : playerSettings.width + 22,
                    l : 400,
                    p : 200,
                    isModal : false,
                    callback : hideFunc
                });
            } else {
                $("#" + playerSettings.containerId).html(playerStr);
            }
            if (swfobject.hasFlashPlayerVersion("6.0.65")) {
                playerSettings.file = flvPath;

                if (playerSettings.hideControlBar) {
                    playerSettings.controlbar = 'none';
                    playerSettings.icons = 'false';
                }
                var params = {
                    wmode: "opaque"
                };
                if (popupMessage) {
                    popupMessage.registerCallback(hideFunc);
                }
                swfobject.embedSWF(MediaPlayerProperty.player + ($.browser.msie ? "?forTurnOffCache=" + new Date() : ""), playerContainerId, playerSettings.width, playerSettings.height, "8.0.0", MediaPlayerProperty.install, playerSettings, params, {}, function() {
                    var width = 0, timerId;

                    function recalcSize() {
                        if (!popupMessage) {
                            return;
                        }

                        width = popupMessage.expandToContentWidth();
                        if (parseInt(width) > (parseInt(playerSettings.width) + 20)
                             && $("#"+outerPlayerContainerId).outerHeight() > 0) {
                            popupMessage.center();
                            clearTimeout(timerId);
                        } else {
                            timerId = setTimeout(function(){recalcSize()}, 500);
                        }
                    }

                    recalcSize();
                });
            } else {
                $("#" + warnMessageTextId).show();
            }
        }

        $(function() {
            if (typeof popupMessage === "undefined") {
                return;
            }
            showVideo();
            $("#" + flashInstallLinkId).click(popupMessage.hide);
        });
    };

    if (!window.embedVideo) {
        window.embedVideo = embedVideo;
    }
})();
