﻿Type.registerNamespace('JetShop.StoreControls');

JetShop.StoreControls.MyPagesControl = function(element)
{
    JetShop.StoreControls.MyPagesControl.initializeBase(this, [element]);

    this._endRequestHandlerDelegate = null;
    this._pageRequestManager = null;
}

JetShop.StoreControls.MyPagesControl.prototype =
{
    initialize: function()
    {
        // initialize the base
        JetShop.StoreControls.MyPagesControl.callBaseMethod(this, 'initialize');

        // register handlers
        this._endRequestHandlerDelegate = Function.createDelegate(this, this._handleEndRequest);

        if (Sys.WebForms && Sys.WebForms.PageRequestManager)
        {
            this._pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
        }

        if (this._pageRequestManager !== null)
        {
            this._pageRequestManager.add_endRequest(this._endRequestHandlerDelegate);
        }
    },

    _handleEndRequest: function(sender, arg)
    {
        var id = this.get_id();
        var dataItem = arg.get_dataItems();

        if (dataItem[id])
        {
            var eventItem;
            eval("eventItem = " + dataItem[id]);

            if (eventItem.EventName == 1)
            {
                eval(eventItem.CurrentItem.ClientRefreshFunction);
            }
            else if (eventItem.EventName == 2)
            {
                window.location = eventItem.CurrentRedirectItem.RedirectPage + "?CustomerID=" + eventItem.CurrentRedirectItem.CustomerID + "&CartID=" + eventItem.CurrentRedirectItem.CartID;
            }
        }
    },

    dispose: function()
    {

        if (this._pageRequestManager !== null)
        {
            this._pageRequestManager.remove_endRequest(this._endRequestHandlerDelegate);
        }

        // call to the base to do its dispose
        JetShop.StoreControls.MyPagesControl.callBaseMethod(this, 'dispose');
    }
}

// register the class
JetShop.StoreControls.MyPagesControl.registerClass('JetShop.StoreControls.MyPagesControl', Sys.UI.Control);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();