﻿
/// <reference name="MicrosoftAjax.Debug.js" />
/// <reference path="JSHashtable.js" />
/// <reference path="ProductMain.js" />

Sys.Net.WebRequestManager.set_defaultTimeout(1000000);
Sys.Net.WebRequestManager.add_completedRequest(completedHandler);
Sys.Net.WebRequestManager.add_invokingRequest(invokingHandler);
var g_iTimeoutId;

// Sys.Net.WebRequestManager.add_invokingRequest(invokingHandler)
function invokingHandler(sender)
{    
    if(g_iProgressDelay !== -1)
    {
        g_iTimeoutId = setTimeout(function() {
                    Sys.UI.DomElement.removeCssClass($get('divModalPage_Progress'), 'displayNone')
                                           }, g_iProgressDelay);
    }        
}


// Sys.Net.WebRequestManager.add_completedRequest(completedHandler)
function completedHandler(result)
{     
    //Sys.Debug.trace('*** WEB_REQUEST_MANAGER_COMPLETED ***');
    if(g_iProgressDelay !== -1)
    {
        clearTimeout(g_iTimeoutId);
        if(Sys.UI.DomElement.containsCssClass($get('divModalPage_Progress'), 'displayNone') === false)     
            Sys.UI.DomElement.addCssClass($get('divModalPage_Progress'), 'displayNone');                                            
    }
    
    var strPostedData = result.get_webRequest().get_body();
    var strFunction = getPostDataValue('function', strPostedData);
    switch(strFunction)
    {
        case 'GetSessionProducts':
            onGetSessionProducts(result.get_responseData());            
            break;
    }            
}
/**********************************************************/
/*                Start of Web Requests                   */
/**********************************************************/
function getSessionProducts()
{
    var webRequest = new Sys.Net.WebRequest();
    webRequest.set_url('Products.aspx');
    webRequest.set_body(encodeURI('function=GetSessionProducts'));
    Sys.Net.WebRequestManager.executeRequest(webRequest);
}

// web request callbacks

function onGetSessionProducts(result)
{       
    products = JSON.parse(result);
    gInitProdCount = products.SelectedCount;  
    updateProductCount();   
    updateEnabling();      
    
    if($get('chkShowSelectedOnly').checked === true)
        toggleShowSelectedProductsOnly(true); 
    for(var i=1; i<=9; i++)
    {
      if($get('chkPclm_' + i.toString()).checked === false)
      {
        var pclm = $get('chkPclm_' + i.toString());
        clickCheck(pclm.id, pclm.value, pclm.checked);
      }
    }
    
    // loop through all the products    
    var strPclm = "-1";
    for(prodKey in products.Products)
    {
        strPclm = products.Products[prodKey];
        gHashProds.add_item(prodKey, strPclm);
        
    }         
    
    applyHashProdsToGrid();    
    
    if(!Sys.UI.DomElement.containsCssClass($get('divModalPage_Progress'), 'displayNone'))  
        Sys.UI.DomElement.addCssClass($get('divModalPage_Progress'), 'displayNone');
}

/**********************************************************/
/*              Start of Page Method calls                */
/**********************************************************/

function isRetrieveCodeValid(strRetrieveCode)
{    
    Sys.UI.DomElement.addCssClass($get('divModalPage_ModalResume'), 'displayNone');
    PageMethods.DoesRetrieveCodeExist(strRetrieveCode, onIsRetrieveCodeValid);
        
}

function onIsRetrieveCodeValid(result, userContext, methodName)
{
    if(result === true)
    {
        $get('ucModalResume_inpResume').click();
    }
    else
    {
        Sys.UI.DomElement.removeCssClass($get('ucModalRefError_divModalPage_ModalRefError'), 'displayNone');
    }    
}

if( typeof(Sys) !== 'undefined' )
  Sys.Application.notifyScriptLoaded();