﻿

var PurchaseMode = false;
var MediaJson = null;

function flashEvents(json)
{
    switch(json.eventType){
        case "goto_media_page":
        case "start_purchase":
        case "goto_login":
            alert(json.eventType);
            break;
        case "flash_init":
            InitPageFunks();
            break;
        case "start_trailer_on_media_page":
            window.location.href = "MediaPage.aspx?mediaid=" + json.mediaID;
            break;
        case "get_flash_persist":
            //return 'mediaID,52709;selectedFileIndex,0;selectedMediaIndex,0;autoplay,true';
            break;
        case "start_purchase_by_file_id":
            MediaJson = json;
            PrerequisitePurchaseCheck();
            break;
        case "purchase_open":
            ShowPurchaseDialog();
            break;
        case "purchase_complete":
            FinalizePurchase(json);
            break;
        case "purchase_close":
            HidePurchaseDialog();
            break;
    }
}

/*********************** Global Funks *****************************************/

function InitPageFunks()
{
    if (typeof (FirstAjaxRefreshTrigger) == 'function') 
    {
        FirstAjaxRefreshTrigger();
    }
}

function AddToPlaylist()
{
    var FlashPlayerObj = document.getElementsByName('FlashPlayer')[0];
    callFlashAction(FlashPlayerObj, {action:"add_media_by_id", mediaID:MediaID});
}

function RemoveFromPlaylist()
{
    var FlashPlayerObj = document.getElementsByName('FlashPlayer')[0];
    callFlashAction(FlashPlayerObj, {action:"remove_media_by_id", mediaID:MediaID});
}

/***************** Purchase Process *******************************/

function WatchNow()
{
    var FlashPlayerObj = document.getElementsByName('FlashPlayer')[0];
    callFlashAction(FlashPlayerObj, {action:"start_purchase", mediaID:MediaID});
}

function PrerequisitePurchaseCheck()
{
    PurchaseMode = true;
    
    if(siteGUID != "")
    {
        //User is Signed in.
        InitializePurchase();
    }
    else
    {
        //User is Signed out or not registered.
        DoSignIn();
    }
}

function InitializePurchase()
{
    if(PurchaseMode && siteGUID != "")
    {
        var FlashPurchaseObj = document.getElementsByName('ProjectorPurchase')[0];
        callFlashAction(FlashPurchaseObj, {action:"start_purchase_by_file_id", fileID:MediaJson.fileID, mediaID:MediaJson.mediaID, guid:siteGUID, mediaXML:MediaJson.mediaXML});
    }
}

function FinalizePurchase(Json)
{
    var FlashPlayerObj = document.getElementsByName('FlashPlayer')[0];
    callFlashAction(FlashPlayerObj, {action:"purchase_complete", mediaURL:Json.mediaURL, status:Json.status});
    
    HidePurchaseDialog();
}

function ShowPurchaseDialog()
{
    if(PurchaseMode && siteGUID != "")
    {
        var position = getAnchorPosition("FlashPlayer");
    
        document.getElementsByName('PurchaseFlashObjDiv')[0].style.left = position.x + 50 + "px";
        //document.getElementsByName('PurchaseFlashObjDiv')[0].style.top
    
        document.getElementsByName('ProjectorPurchase')[0].width = "600px";
        document.getElementsByName('ProjectorPurchase')[0].height = "400px";
        
        document.getElementById("GrayBackgroundDiv").style.display = 'block';
    }
}

function HidePurchaseDialog()
{
    PurchaseMode = false;
    document.getElementsByName('ProjectorPurchase')[0].width = "1px";
    document.getElementsByName('ProjectorPurchase')[0].height = "1px";
    document.getElementById("GrayBackgroundDiv").style.display = 'none';
    
    if(typeof(MyZoneSidePanel) !== 'undefined') // reload side my zone user control
    {
        $find(MyZoneSidePanel).refresh();
    }
}

function StartPUMethod(url)
{
    var obj = CreateObjFromString(url);
    PurchasePageURL = url;
    
    switch(obj.payment_method){
        case "cc_card":
        case "dc_card":
            PurchaseDialogDisplayFeatures = "width=600,height=600,status=no,toolbar=no,menubar=no,location=no,resizable=yes,dependent=yes";
            document.getElementById("Secure3dDebit").style.display = "block";
            document.getElementById("Secure3dPaypal").style.display = "none";
            OpenPUPurchase();
            break;
        case "paypal":
            PurchaseDialogDisplayFeatures = "width=800,height=800,status=no,toolbar=no,menubar=no,location=no,resizable=yes,dependent=yes,scrollbars=yes";
            document.getElementById("Secure3dPaypal").style.display = "block";
            document.getElementById("Secure3dDebit").style.display = "none";
            OpenPUPurchase();
            break;
    }
}

var timeoutId = null;
var PurchasePageURL = null;
var PurchasePageRef = null;
var PurchaseIntervalID = -1;
var PurchaseDialogDisplayFeatures = "";
function OpenPUPurchase()
{
    document.getElementById("Secure3dDiv").style.display = "block";
}

function StartPUPurchase()
{
    PurchasePageRef = window.open(PurchasePageURL, "secure", PurchaseDialogDisplayFeatures);
     
    IsPurchasePageExist();
}

function IsPurchasePageExist()
{
    try
    {
        if(PurchasePageRef.closed)
            HandlePurchasePageResult("error", "Internal Tvinci Error");
        else
            timeoutId = window.setTimeout(IsPurchasePageExist, 1000);
    }
    catch(err)
    {
        HandlePurchasePageResult("error", "Internal Tvinci Error");
    }
}

function HandlePurchasePageResult(ReturnStatus, ReturnDesc)
{
    clearTimeout(timeoutId);

    var purchaseWindow = document.getElementsByName("ProjectorPurchase")[0];
    callFlashAction(purchaseWindow, {action:"set_purchase_status",status:ReturnStatus,description:ReturnDesc});
}

function CreateObjFromString(url){              
      var obj = new Object();
      var arr = url.split("&");
      for(var i = 0 ; i < arr.length ; i++){
            var val = arr[i];
            var arr2 = val.split("=");
            var key = arr2[0];
            var value = arr2[1];
            obj[key] = value;
      }
      return obj;
}

