﻿/// <reference path="MicrosoftAjax.js" />
/// <reference path="jQ.js" />

function siteOperator()
{
    var responseCompletedEventHandler = null;
    var getRequest = function()
    {
        var request = new Sys.Net.WebRequest()
        request.set_url("/Application/SiteOperator.ashx");
        request.set_httpVerb("POST");
        return request;
    }

    var siteOperatorInvoke = function(body, resultEventHandler)
    {
        function request_Completed(response)
        {
            var result = null;
            if (response.get_responseAvailable())
            {
                result = response.get_object();
            }
            if (resultEventHandler != null)
            {
                resultEventHandler(result);
            }
        }
        var request = getRequest();
        request.add_completed(request_Completed);
        request.set_body(body)
        request.invoke()
    }

    this.getFirstAnnounce = function(resultEventHandler)
    {
        //为resultEventHandler参数为REIP.Modle.Announce实例序列化成的JSON字符串
        siteOperatorInvoke("type=FirstAnnounce", resultEventHandler);
    }

    this.getAwardList = function(resultEventHandler)
    {
        //为resultEventHandler参数为REIP.Modle.Announce实例序列化成的JSON字符串
        siteOperatorInvoke("type=awardlist", resultEventHandler)
    }

    this.getAnnounceList = function(resultEventHandler)
    {
        //为resultEventHandler参数为List<REIP.Modle.Announce>实例序列化成的JSON对象
        function request_Completed(response)
        {
            var result = null;
            if (response.get_responseAvailable())
            {
                result = response.get_object();
            }
            if (resultEventHandler != null)
            {
                resultEventHandler(result);
            }
        }
        var request = getRequest();
        request.set_url("/Application/Announce/AnnounceFrontList.ashx");
        request.add_completed(request_Completed);
        request.invoke()
    }

    this.addViewLog = function()
    {
        function request_Completed(response)
        {
            var result = null;
            if (response.get_responseAvailable())
            {
                result = response.get_object();
                siteOperator.viewLogId = result;
            }
        }

        var request = getRequest();
        request.add_completed(request_Completed);
        request.set_body("type=viewlog&mid=" + siteOperator.moduleId + "&refuri=" + encodeURI(document.referrer))
        request.invoke()
    }
    this.updateLeaveTime = function()
    {
        var request = getRequest();
        request.set_body("type=viewtime&lid=" + siteOperator.viewLogId)
        request.invoke()
    }
    this.getOnlineUsers = function(pageIndex, resultEventHandler)
    {
        siteOperatorInvoke("type=onlineuser&i=" + pageIndex.toString(), resultEventHandler)
    }
    this.getNewTran = function(resultEventHandler)
    {
        siteOperatorInvoke("type=newtran", resultEventHandler);
    }
    this.getProducts = function(type, resultEventHandler)
    {
        type = type == null || type == "" ? "lastest" : type;
        siteOperatorInvoke("type=product&product=" + type + "&count=12", resultEventHandler);
    }
    this.getProductCategory = function(resultEventHandler)
    {
        siteOperatorInvoke("type=pcategory", resultEventHandler);
    }
    this.getRetailers = function(resultEventHandler)
    {
        siteOperatorInvoke("type=retailers", resultEventHandler);
    }
    this.getServices = function(resultEventHandler)
    {
        siteOperatorInvoke("type=service", resultEventHandler);
    }
}
siteOperator.viewLogId = 0;
siteOperator.moduleId = 0;
siteOperator.prototype =
{
    getFirstAnnounce: function(resultEventHandler) { },
    getAwardList: function(resultEventHandler) { },
    getAnnounceList: function(resultEventHandler) { },
    addViewLog: function() { },
    getNewTran: function(resultEventHandler) { },
    getProducts: function(type, resultEventHandler) { },
    getProductCategory: function(resultEventHandler) { },
    getRetailers: function(resultEventHandler) { },
    getServices: function(resultEventHandler) { }
}
$addHandler(window, "load",
function()
{
    new siteOperator().addViewLog();
})
$addHandler(window, "unload",
function()
{
    new siteOperator().updateLeaveTime();
})
