﻿function extractTitleForStatistic(media, attrTitle, attrMediaType, attrSeasonNumber, attrEpisodeNumber, attrIsFree, attrPrice) {
    var result = "";
    if (media.mediaType.toLowerCase() == 'movie') {
        result += attrTitle + "=" + media.title.replace(/["']/g, "");
        result += "&" + attrMediaType + "=Movie";
        result += "&" + attrSeasonNumber + "=0";
        result += "&" + attrEpisodeNumber + "=0";

    } else if (media.mediaType.toLowerCase() == 'episode') {
        result += attrTitle + "=" + media.seriesName.replace(/["']/g, "");
        result += "&" + attrMediaType + "=Series";
        result += "&" + attrSeasonNumber + "=" + media.seasonNumber.replace(/["']/g, "");
        result += "&" + attrEpisodeNumber + "=" + media.episodeNumber.replace(/["']/g, "");
    }
    else if (media.mediaType.toLowerCase() == 'package') {
        result = attrTitle + "=" + media.title.replace(/["']/g, "");
    }
    else {
        TvinciPlayerAddToLog("Failed to create query for statistic. unknown type '" + media.mediaType + "'")
        return "";
    }

    result += "&" + attrIsFree + "=" + media.isFree;
    result += "&" + attrPrice + "=" + media.price;

    return result;
}

function GotoNDSInstallationFile() {
    if ((tvinciHelper.browserType & eBrowserType.IE) == eBrowserType.IE) {
        window.location = applicationBaseURL + "installation/orange time.msi";
    }
    else {
        window.location = applicationBaseURL + "drm/nds/players/firefox/setup.exe";
    }
}

function flashEvents(data) {
    try {
        if (data.eventType == "player_content_init") 
        {
            if (typeof (FirstAjaxRefreshTrigger) == 'function') 
            {
                FirstAjaxRefreshTrigger();
            }

            LoadWhatYouWantToSee();

            flashInitialized = true;
        }
    }
    catch (e) {
    }

    var players = document.getElementsByName("player");
    var player;

    if (players == null || players.length == 0) {
        TvinciPlayerAddToLog("cannot find flash player object. ignore request");
        return;
    }
    else {
        player = players[0];
    }


    try {
        if (data.type == "widget_requested" && data.widgetType == "subtitles") {
            pageTracker._trackPageview('/vod/?VS_Purchase_step=subtitle_lang_presented&VS_Price=' + data.price + '&VS_Purchase_type=' + data.mediaType + '&VS_Purchase_name=' + data.mediaName + '&VS_Purchase_Season=' + data.seasonNumber + '&VS_Purchase_episode_num=' + data.episodeNumber);
        }
        else if (data.type == "subtitles_change") {
            pageTracker._trackPageview('/vod/?VS_Purchase_step=subtitle_lang_chosen&subtitle_language=' + data.name + '&VS_Price=' + data.price + '&VS_Purchase_type=' + data.mediaType + '&VS_Purchase_name=' + data.mediaName + '&VS_Purchase_Season=' + data.seasonNumber + '&VS_Purchase_episode_num=' + data.episodeNumber);
        }
        else if (data.eventType == "goto_page") {
        switch (data.page) 
            {
                case "legal":
                    if (data.lang == "ru") {
                        window.open(applicationBaseURL + 'outer/orange/legal.aspx?language=ru');
                    } else {
                        window.open(applicationBaseURL + 'outer/orange/legal.aspx');
                    }
                    return;
                case "login":
                    gotoLogin('', player.callFlashAction({ action: "get_flash_persist" }).persistStr);
                    return;
                case "register":
                    var str;
                    if (registerPageURL.indexOf("?", 0) == -1) {
                        str = registerPageURL + "?" + "Source=Player";
                    }
                    else {
                        str = registerPageURL + "&" + "Source=Player";
                    }
                    gotoPage(str, '', player.callFlashAction({ action: "get_flash_persist" }).persistStr);
                    return;
                case "media_page":
                    //itemID / packageID
                    if (data.autoPurchase) {
                        window.location = applicationBaseURL + "TVMItemInformation.aspx?" + base64encode("AutoPurchase=yes&ID=" + data.mediaID + "&" + top.GetLanguageQuery());
                    } else {
                        window.location = applicationBaseURL + "TVMItemInformation.aspx?" + base64encode("ID=" + data.mediaID + "&" + top.GetLanguageQuery());
                    }
                    return;
                case "package_page":
                    window.location = "http://www.orange.co.il/packages/";
                    //                    if (data.autoPurchase)
                    //                    {
                    //                        window.location = "TVMItemInformation.aspx?" + base64encode("AutoPurchase=yes&ID=" + data.packageID + "&" + top.GetLanguageQuery());
                    //                    }else
                    //                    {
                    //                        window.location = "TVMItemInformation.aspx?" + base64encode("ID=" + data.packageID + "&" + top.GetLanguageQuery());
                    //                    }   
                    return;
                default:
                    return;
            }
        } 
        else if (data.eventType == "get_flash_persist") {
            if (typeof FlashPersistData == 'string') {
                return FlashPersistData;
            } else {
                return "";
            }
        }
        else if (data.eventType == "goto_media_page") {
            if (data.autoPurchase) {
                window.location = applicationBaseURL + "TVMItemInformation.aspx?" + base64encode("AutoPurchase=yes&ID=" + data.mediaID + "&" + top.GetLanguageQuery());
            } else {
                window.location = applicationBaseURL + "TVMItemInformation.aspx?" + base64encode("ID=" + data.mediaID + "&" + top.GetLanguageQuery());
            }
        } else if (data.eventType == "statistics2") {
            try {
                pageTracker._trackPageview(data.content);
            }
            catch (e) {
                TvinciPlayerAddToLog("Failed to write statistic of event 'statistics2' with error - " + e.message);
            }

            //pageTracker._trackPageview("vod?VSAction="+ data.action + "&VSType=" + data.mediaType + "&VSName=" + data.title.replace(/["']/g,"") + "&VSnum=" + data.episodeNumber  + "&VSurl=" + escape(window.location));
        }
        else if (data.eventType == "watchRequest" || data.eventType == "orderRequest") {
            try {
                var title = '';
                var action = '';
                if (data.eventType == "watchRequest") {
                    title = extractTitleForStatistic(data.mediaInfo, "VS_Watch_Now_name", "VS_Watch_Now_type", "VS_Watch_Now_season", "VS_Watch_Now_episode_num", "VS_isFree", "VS_Price");
                    action = 'VS_Watch_Now';
                }
                else if (data.eventType == "orderRequest") {
                    title = extractTitleForStatistic(data.mediaInfo, "VS_Order_Now_name", "VS_Order_Now_type", "VS_Order_Now_season", "VS_Order_Now_episode_num", "VS_isFree", "VS_Price");
                    action = 'VS_Order_Now';
                }

                if (title == '' || action == '')
                    return;

                var pressToken = "";

                if (data.actionStage == 'mainPart') {
                    pressToken = "Player_Center_button";
                } else if (data.actionStage == 'externalAPI') {
                    pressToken = "Page_button";
                } else if (data.actionStage == 'sidebar') {
                    pressToken = "Player_Top_button";
                }
                else {
                    throw "Unknown actionstage '" + data.actionStage + "'";
                }

                pageTracker._trackPageview("/vod/" + action + "/?Pressed_Num=" + pressToken + "&" + title + "&language=" + data.lang);
            }
            catch (e) {
                TvinciPlayerAddToLog("Failed to write statistic of event 'watchRequest' with error - " + e.message);
            }
        } else if (data.eventType == "playerAction") {
            var writeStatistics = true;

            if (data.type == "load" || data.type == "notify") {
                writeStatistics = false;
            }
            else if (data.type == "stop" || data.type == "pause") {
                StopKeepAlive();
            }
            else if (data.type == "play") {
                StartKeepAlive();
            }
            else if (data.type == "first_play") {
                writeStatistics = false;
            }
            else if (data.type == "ViewScreen_WatchNow" || data.type == "ViewScreen_WatchLater") {
                pageTracker._trackPageview('/vod/?VS_Purchase_step=subtitle_lang_chosen&subtitle_language=' + data.sublang + '&VS_Price=' + data.price + '&VS_Purchase_type=' + data.mediaType + '&VS_Purchase_name=' + data.mediaName + '&VS_Purchase_Season=' + data.seasonNumber + '&VS_Purchase_episode_num=' + data.episodeNumber);
            }
            else if (data.type == "mediaSelected") {
                StopKeepAlive();

                writeStatistics = false;

                if (typeof (ShowInformation) == 'function') {
                    ShowInformation(data.mediaID, false);
                }
            }
            else if (data.type == "watchError") {
                try {
                    writeStatistics = false;

                    var title = extractTitleForStatistic(data.mediaInfo, "VS_Error_Item_name", "VS_Error_Item_type", "VS_Error_Item_season", "VS_Error_Item_episode_num", "VS_isFree", "VS_Price");
                    if (title != '') {
                        var type = "";

                        if (data.videoStop == "true") {
                            type = "Error_Stop";
                        } else if (data.videoStop == "false") {
                            type = "Error_Msg";
                        }
                        else {
                            throw "Unknown videoStop mode '" + data.videoStop + "'";
                        }

                        pageTracker._trackPageview("/vod/?VS_Player_Error=" + type + "&" + title);
                    }
                }
                catch (e) {
                    TvinciPlayerAddToLog("Failed to write statistic of event 'watchError' with error - " + e.message);
                }
            } else if (data.type.toLowerCase() == "purchasecomplete") {
                pageTracker._trackPageview('/vod/?VS_Purchase_step=subtitle_lang_presented&VS_Price=' + data.price + '&VS_Purchase_type=' + data.mediaType + '&VS_Purchase_name=' + data.mediaName + '&VS_Purchase_Season=' + data.seasonNumber + '&VS_Purchase_episode_num=' + data.episodeNumber);

                writeStatistics = false;

                // Update item info panel
                var itemInfoPanel = $find(ItemInfoPanel);
                if (typeof itemInfoPanel != 'undefined' && itemInfoPanel != null) {
                    itemInfoPanel.refresh();
                }

                // Update "my" side menu
                var myPurchasesPanel = $find(UserPurchases);
                if (typeof myPurchasesPanel != 'undefined' && myPurchasesPanel != null) {
                    myPurchasesPanel.refresh();
                }
            }

            try {
                if (data.type == "watchRequest" || data.type == "orderRequest") {
                    if (data.actionStage == 'mainPart' || data.actionStage == 'sidebar') {
                        // should be fixed so scroll only if below      
                        //ScrollToAnchor("playerAnchor");                        
                    }

                    var title = '';
                    var action = '';
                    if (data.type == "watchRequest") {
                        title = extractTitleForStatistic(data.mediaInfo, "VS_Watch_Now_name", "VS_Watch_Now_type", "VS_Watch_Now_season", "VS_Watch_Now_episode_num", "VS_isFree", "VS_Price");
                        action = 'VS_Watch_Now';
                    }
                    else if (data.type == "orderRequest") {
                        title = extractTitleForStatistic(data.mediaInfo, "VS_Order_Now_name", "VS_Order_Now_type", "VS_Order_Now_season", "VS_Order_Now_episode_num", "VS_isFree", "VS_Price");
                        action = 'VS_Order_Now';
                    }

                    if (title == '' || action == '') return;

                    var pressToken = "";

                    if (data.actionStage == 'mainPart') {
                        pressToken = "Player_Center_button";
                    } else if (data.actionStage == 'externalAPI') {
                        pressToken = "Page_button";
                    } else if (data.actionStage == 'sidebar') {
                        pressToken = "Player_Top_button";
                    }
                    else {
                        throw "Unknown actionstage '" + data.actionStage + "'";
                    }

                    pageTracker._trackPageview("/vod/" + action + "/?Pressed_Num=" + pressToken + "&" + title + "&language=" + data.lang);
                } else {
                    if (writeStatistics) {
                        var title = extractTitleForStatistic(data.mediaInfo, "VS_Player_name", "VS_Player_type", "VS_Player_season", "VS_Player_episode_num", "VS_isFree", "VS_Price");
                        if (title == '') return;

                        var contentType = "";
                        if (data.fileIndex == "0") {
                            contentType = "Trailer";
                        } else {
                            contentType = "Movie";
                        }

                        pageTracker._trackPageview("/vod/?VS_Player_Action=" + data.type + "&" + title + "&VS_Player_media_type=" + contentType + "&language=" + data.lang);
                    }
                }
            }
            catch (e) {
                TvinciPlayerAddToLog("Failed to write statistic of event 'watchError' with error - " + e.message);
            }
        }
    }
    catch (e) {
    }
}

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try {
    var pageTracker = _gat._getTracker("UA-3291374-1");
    pageTracker._trackPageview();
} catch (err) { }

function ShowPlayer() {
    // check flash
    var ShowInstallComponents = false;

    var wmpInstall = shouldRaiseWMPInstall();
    var flashInstall = shouldRaiseFlashInstall();

    var initializePlayer = !(wmpInstall || flashInstall);

    if (!initializePlayer) {
        if ((tvinciHelper.browserType & eBrowserType.IE) == eBrowserType.IE) {
            initializePlayer = true; // initialize anyway to automatic start installation if needed

            if (flashInstall) {
                document.getElementById("FlashInstallRequired").style.display = "block";
            }

            if (wmpInstall) {
                document.getElementById("GlobalInstallRequired").style.display = "block";
                document.getElementById("WMPInstallButtonIE").style.display = "block";
            }
        }
        else if ((tvinciHelper.browserType & eBrowserType.Firefox) == eBrowserType.Firefox ||
                (tvinciHelper.browserType & eBrowserType.Chrome) == eBrowserType.Chrome ||
                (tvinciHelper.browserType & eBrowserType.Safari) == eBrowserType.Safari) {
            tvinciHelper.toggleFlash("hide");

            if (flashInstall) {
                document.getElementById("GlobalInstallRequired").style.display = "block";
                document.getElementById("FlashInstallButton").style.display = "block";
            }

            if (wmpInstall) {
                document.getElementById("GlobalInstallRequired").style.display = "block";
                document.getElementById("WMPInstallButtonFirefox").style.display = "block";
            }
        }

    }

    if (initializePlayer) {
        if (typeof Initialize_MainPlayer == "function") {
            Initialize_MainPlayer();
        }
    }
}