﻿//--------------------------------------------------------------------------------------
// Copyright (C) 2007 Shanda Networking Corporation All rights reserved.	
// Created Date:	2007-12-13  
// Modified Date	2007-12-13 
// File: 	        MobileBook.cs
// Author:	        dingboyang
// Version:         1.0
// Description:     定义Ajax应用-从主站搬过的啦！	
// This source code can only be used in Snda Networking project	
//--------------------------------------------------------------------------------------
function CmfuAjax()
{
    this.xml = false;
    this.GetXmlHttp = function()
    {
        /*@cc_on@*/
        /*@if (@_jscript_version >= 5)
        try
        {
            this.xml = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e)
        {
            try
            {
                this.xml = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2)
            {
                this.xml = false;
            }
        }
        @end@*/
        if (!this.xml && typeof XMLHttpRequest != 'undefined')
        {
            this.xml = new XMLHttpRequest();
        }
    }
    this.GetXmlHttp();
    var xmlHttp = this.xml;
    var ajax = this;
    var callBack = null; //外部接口

    //定义updatePage方法
    this.updatePage = function()
    {
        if (xmlHttp.readyState == 4)
        {
            var response = eval('(' + xmlHttp.responseText + ')');
            if (callBack != null && typeof callBack == "function")
            {
                callBack(response);
            }
        }
    }

    //定义toQueryString方法
    this.toQueryString = function(json)
    {
        var query = "";
        if (json != null)
        {
            for (var param in json)
            {
                query += param + "=" + escape(json[param]) + "&"
            }
        }
        return query;
    }

    //定义Invoke方法
    this.invoke = function(opName, params, pageCallBack, method)
    {
        if (xmlHttp)
        {
            var query = "opName=" + opName + "&";
            query += this.toQueryString(params);
            query = query.substring(0, query.length - 1);
            callBack = pageCallBack;
            if (method != null && method.toUpperCase() == "GET")
            {
                var url = "AjaxDataService.aspx?" + query;
                xmlHttp.onreadystatechange = ajax.updatePage;
                xmlHttp.open("GET", url, true);
                xmlHttp.setRequestHeader("CMFUAJAX-Ver", "ver1.0");
                xmlHttp.send(null);
            } else
            {
                var url = "AjaxDataService.aspx";
                xmlHttp.onreadystatechange = ajax.updatePage;
                xmlHttp.open("POST", url, true);
                xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                xmlHttp.setRequestHeader("CMFUAJAX-Ver", "ver1.0");
                xmlHttp.send(query);
            }
        }
    }
}
///////////////////// 定义 MyAjax ////////////////////////////
var MyAjax = {
    //用户登录
    //	LoginUserWithInfo:function(ptId, password, token, challenge, saveCookie,valicateCode) {
    //		new CmfuAjax().invoke("LoginUserWithInfo", {"ptId":ptId, "password":password, "token":token, "challenge":challenge, "saveCookie":saveCookie,"valicateCode":valicateCode}, arguments[6]);
    //	},	
    LoginUserWithInfo: function(ptId, password, token, challenge, saveCookie, valicateCode, sn)
    {
        new CmfuAjax().invoke("LoginUserWithInfo", { "ptId": ptId, "password": password, "token": token, "challenge": challenge, "saveCookie": saveCookie, "valicateCode": valicateCode, "sn": sn }, arguments[7]);
    },
    //用户注销
    SignOut: function()
    {
        new CmfuAjax().invoke("SignOut", {}, arguments[0]);
    },
    //用户注册
    RegeditMsnUser: function(pUserName, pPass, pEmail, pSex)
    {
        new CmfuAjax().invoke("RegeditMsnUser", { "pUserName": pUserName, "pPass": pPass, "pEmail": pEmail, "pSex": pSex }, arguments[4]);
    },
    //获取用户信息
    CheckLoginWithInfo: function()
    {
        new CmfuAjax().invoke("CheckLoginWithInfo", {}, arguments[0]);
    },
    //检查用户名
    IsUsernameValid: function(pUserName)
    {
        new CmfuAjax().invoke("IsUsernameValid", { "pUserName": pUserName }, arguments[1]);
    },
    //修改密码
    ModifyPass: function(pUserId, pOldPass, pNewPass, pEkey)
    {
        new CmfuAjax().invoke("ModifyPass", { "pUserId": pUserId, "pOldPass": pOldPass, "pNewPass": pNewPass, "pEkey": pEkey }, arguments[4]);
    },
    //章节订阅
    BuyMultChapter: function(strBookId, strChapterId)
    {
        new CmfuAjax().invoke("BuyMultChapter", { "strBookId": strBookId, "strChapterId": strChapterId }, arguments[2]);
    },
    //加入书架
    AddBookToFavor: function(pBookId)
    {
        new CmfuAjax().invoke("AddBookToFavor", { "pBookId": pBookId }, arguments[1]);
    },
    //书籍下架
    DelFavorBook: function(pUserId, pBookCaseId, pBookId)
    {
        new CmfuAjax().invoke("DelFavorBook", { "pUserId": pUserId, "pBookCaseId": pBookCaseId, "pBookId": pBookId }, arguments[3]);
    },
    //添加书签
    AddOrReplaceBookmark: function(pBookId, pChapterId)
    {
        new CmfuAjax().invoke("AddOrReplaceBookmark", { "pBookId": pBookId, "pChapterId": pChapterId }, arguments[2]);
    },
    //提交留言
    SumitBookReview: function(BookId, UserId, ValidateCode, NickName, Subject, Content)
    {
        new CmfuAjax().invoke("SumitBookReview", { "BookId": BookId, "UserId": UserId, "ValidateCode": ValidateCode, "NickName": NickName, "Subject": Subject, "Content": Content }, arguments[6]);
    }
}



//添加书籍到书架
function AddBookToFavor(pBookId)
{
    if (pBookId == 0 || pBookId == -1)
    {
        alert("书籍信息错误！");
        return false;
    }
    MyAjax.AddBookToFavor(pBookId, CallBackAddBookToFavor);
}
//添加书籍后续处理
function CallBackAddBookToFavor(result)
{
    if (result)
    {
        if (result.value.Code == 1)
        {
            alert("书籍成功加入到书架！");
            window.open("MyBookCase.aspx", "_blank", "");
        } else
        {
            alert(result.value.Messge);
            return false;
        }
    }
}
// 图书下架
function DelFavorBook(pUserId, pBookCaseId, pBookId)
{
    if (window.confirm("您确定要将该书下架吗？"))
    {
        MyAjax.DelFavorBook(pUserId, pBookCaseId, pBookId, CallBackDelFavorBook);
    } else
    {
        return false;
    }
}
function CallBackDelFavorBook(result)
{
    if (result)
    {
        if (result.value.Code == 1)
        {
            alert("书籍下架成功！");
            window.location.reload();
        } else
        {
            alert(result.value.Messge);
            return false;
        }
    }
}

//添加书签
function AddOrReplaceBookmark(pBookId, pChapterId)
{
    if (pBookId == 0 || pBookId == -1)
    {
        alert("书籍信息错误！");
        return false;
    }
    if (pChapterId == 0 || pChapterId == -1)
    {
        alert("加入书签的章节错误！");
        return false;
    }
    MyAjax.AddOrReplaceBookmark(pBookId, pChapterId, CallBackAddOrReplaceBookmark);
}
//添加书签后续处理
function CallBackAddOrReplaceBookmark(result)
{
    if (result)
    {
        if (result.value.Code == 1)
        {
            alert(result.value.Messge);
            window.open("MyBookCase.aspx", "_blank", "");
        } else
        {
            alert(result.value.Messge);
            return false;
        }
    }
}



