//Begin: /Picplan/Subscription.js

/***************************
NAMESPACES
****************************/
if (typeof (CorbisUI) == 'undefined') {
    CorbisUI = {};
}
CorbisUI.Subscription = {};

CorbisUI.Subscription = {
    result: null,

    DownloadSubscriptionImages: function(remainingCount, isContinue, isPurchase) {
        var dropDown = $('SBBX_subscriptions').getElement('select.subscriptionFileSize');
        var FileSize = dropDown.options[dropDown.selectedIndex].value;
        if (isContinue == true) {
            Corbis.Web.UI.Subscription.SubscriptionScriptService.DownloadSubscriptionImages($('SBBX_subscriptions').getElement('div.txtProjectName input').value, FileSize, remainingCount, isContinue, isPurchase, CorbisUI.Subscription.continueDownloadSuccess, CorbisUI.Subscription.DownloadImageFailed);
        }
        else {
            Corbis.Web.UI.Subscription.SubscriptionScriptService.DownloadSubscriptionImages($('SBBX_subscriptions').getElement('div.txtProjectName input').value, FileSize, remainingCount, isContinue, isPurchase, CorbisUI.Subscription.DownloadExceptionCheck, CorbisUI.Subscription.DownloadImageFailed);
            CorbisUI.Subscription.OpenProgressModal();
        }
    },
    DownloadExceptionCheck: function(result) {
        HideModal('downloadProgress');
        if (result.Status == 1) {
            CorbisUI.Subscription.result = result;
            CorbisUI.Subscription.emptySubscriptionBuddy(document.body);
            window.location.href.toLowerCase().contains('mylightboxes.aspx') ? setGlassButtonDisabled($(CorbisUI.GlobalVars.Lightbox.subscriptionDownloadAllBtn), true) : setGlassButtonDisabled(CorbisUI.GlobalVars.SearchResults.subscriptionDownloadAllBtn, true);
            OpenNewIModal(CorbisUI.GlobalVars.SearchResults.urls.downloadSubscription, 640, 540, 'Subscription');
        } else {
            CorbisUI.Subscription.result = result;
            OpenNewIModal(CorbisUI.GlobalVars.SearchResults.urls.downloadSubscriptionException + "?DownloadResult=" + result.Status, 350, 50, 'SubscriptionExceptions');
            if (result.Status == 8) {
                document.body.getElement("div.subscriptionCounts").getElement('.remainingCount').set('text', '0');
            }
        }
    },
    continueDownloadSuccess: function(result) {
        if (result.Status == 1) {
            CorbisUI.Subscription.result = result;
            OpenNewIModal(CorbisUI.GlobalVars.SearchResults.urls.downloadSubscription, 640, 540, 'Subscription');
        } else {
            CorbisUI.Subscription.result = result;
            OpenNewIModal(CorbisUI.GlobalVars.SearchResults.urls.downloadSubscriptionException + "?DownloadResult=" + result.Status, 350, 50, 'SubscriptionExceptions');
        }
    },
    emptySubscriptionBuddy: function(iBody) {
        iBody.getElement("div.subscriptionCounts").getElement('.imageCount').set('text', '0');
        if (iBody.getElement("div.subscriptionCounts").getElement('.remainingCount').get('text') == '0' && iBody.getElement("div.subscriptionCounts").getElement('.imageCount').get('text') == '0') {
            if (iBody.getElement("div.subscriptionContainer").getElement('.centerMe')) {
                iBody.getElement("div.subscriptionContainer").getElement('.centerMe').setStyle('display', 'none');
            }
            if (CorbisUI.DomCache.get('subscriptionContainer').getElement('.remainingZerocenterMe')) {
                iBody.getElement("div.subscriptionContainer").getElement('.remainingZerocenterMe').setStyle('display', 'block');
            }

        }
    },
    setDownloadInfo: function(result) {
        var downloadDiv = $('download');
        var linksContainer = downloadDiv.getElement('div.downloadLinks');
        linksContainer.empty();

        if (!result) {
            CorbisUI.Subscription.DownloadImageFailed(null);
            return;
        }

        $('orderNumber').set('text', result.OrderNumber);
        $('projectName').set('text', result.ProjectName);
        $('emailedTo').set('text', result.ConfirmationEmail);

        //  if (!$('selectImage').hasClass('hdn')) $('selectImage').addClass('hdn');
        downloadDiv.removeClass('hdn');
        if (parent.location.pathname.toLowerCase().endsWith('mylightboxes.aspx')) {
            if (result && result.PackagedCorbisIds) {
                for (var i = 0; i < result.PackagedCorbisIds.length; i++) {
                    var corbisId = result.PackagedCorbisIds[i];
                    var mediaId = parent.CorbisUI.ProductCache.get(corbisId);
                    var product = parent.CorbisUI.ProductCache.get(mediaId);

                    if (product) product.updateIcon('SB', 'deselectIcon');
                }
            }
            CorbisUI.Subscription.Refresh();
        }
        else {

            if (result && result.PackagedCorbisIds) {
                for (var i = 0; i < result.PackagedCorbisIds.length; i++) {
                    var corbisId = result.PackagedCorbisIds[i];
                    var mediaId = parent.CorbisUI.ProductCache.get(corbisId);
                    var product = parent.CorbisUI.ProductCache.get(mediaId);

                    if (product) product.updateIcon('SB', 'deselectIcon');
                }
            }
            CorbisUI.Subscription.Refresh();
        }


        var zipPattern = new RegExp(/[.]zip/i);
        var showHelpText = false;
        result.DownloadPackages.each(
			    function(el) {
			        showHelpText = showHelpText || zipPattern.test(el.Key);
			        var newLink = new Element('a', {
			            'href': el.Value,
			            'html': el.Key
			        });
			        newLink.inject(linksContainer, 'bottom');
			        var win;
			        if (Browser.Engine.webkit) {
			            //Safari doesnt close the download window after the download process is initiated.
			            //Bug: 17179.
			            //TODO: Need to find a better solution or check in the next version of Safari. 
			            //Right now the window will close itself after 5 seconds.
			            win = window.open(el.Value, '_blank', 'height=1,width=1');
			            win.setTimeout("self.close();", 5000);
			        } else {
			            win = window.open(el.Value, '_blank', 'height=100,width=100');
			        }
			    }
		    )

        var dotDiv = downloadDiv.getElement('div.dots');
        var helpTextDiv = downloadDiv.getElement('div.helpText');
        if (showHelpText) {
            dotDiv.removeClass('hdn');
            helpTextDiv.removeClass('hdn');
        }
        else {
            if (!dotDiv.hasClass('hdn')) dotDiv.addClass('hdn');
            if (!helpTextDiv.hasClass('hdn')) helpTextDiv.addClass('hdn');
        }
        if (window.parent.MVCTilePage) {
            window.parent.picplanDownloadCallbackOverride();
        }
    },
    DownloadImageFailed: function(result) {
        if (!executer.get_aborted()) {
            OpenModal('subscriptiondownloaderrormodal');
            window.frames[0].$('modalOverlay').setStyle('opacity', 0.7);
        }
    },
    Refresh: function() {
        parent.CorbisUI.Search.Handler.refreshsubScriptioinBuddy();
    },
    updateRemaining: function(result) {
        parent.document.body.getElement('span.remainingCount').set('text', result.toString());
    },
    methodFailed: function(results, methodName) {
        alert(results.get_message());
    },
    OpenProgressModal: function(url) {
        var options = {
            cornerRadius: 0,
            headerHeight: 0,
            footerHeight: 0,
            contentBgColor: 'transparent',
            useCanvas: false,
            createFromHTML: false
        };
        new CorbisUI.Popup('downloadProgress', options);
        window.frames[0].$('modalOverlay').setStyle('opacity', 0.7);
        window.frames[0].$(parent.document).getElement('#SubscriptionWindow_overlay').setStyles({
            'background-image': 'url(../Images/SubscriptionProgressBackground.gif)',
            'background-repeat': 'no-repeat'
        });
    },

    HideProgressModal: function() {
        $(parent.document).getElement('#SubscriptionWindow_overlay').setStyle('background-image', 'none');
        HideModal('downloadProgress');
    },

    CancelDownload: function() {
        if (executer && executer.get_started()) {
            executer.abort();
        }

        this.HideProgressModal();
    },

    SetFileSize: function(size) {
        $('selectImage').getElements('select.fileSize').each(function(el) {
            el.selectedIndex = (size == 'smallest' ? el.options.length - 1 : 0);
        }
		);
    },
    /* reuse the same code as order page */
    OpenProgressModal: function() {
        keyWatch.start();
        var options = {
            cornerRadius: 0,
            headerHeight: 0,
            footerHeight: 0,
            contentBgColor: 'transparent',
            useCanvas: false
        };
        new CorbisUI.Popup('downloadProgress', options);
        $('modalOverlay').setStyle('opacity', 0.8);
    },
    OpenExpireModal: function() {
        new CorbisUI.Popup('picplanExpireModal', {
            showModalBackground: false,
            closeOnLoseFocus: true,
            positionVert: 0,
            positionHoriz: 0
        });
        ResizeModal('picplanExpireModal');
        var expireModal = document.body.getElement('img.picPlanExpired');
        $('picplanExpireModalWindow').setStyles({
            top: expireModal.offsetHeight + 40,
            left: expireModal.offsetWidth + 90
        });

    }
}

//End: /Picplan/Subscription.js
CorbisUI.debug = true;