//--------------------------------------------------------------------------------------
// 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]);
	},	
	//用户注销
	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("书籍成功加入书签！");                
            window.open("MyBookCase.aspx","_blank","");           
        }else{    
            alert(result.value.Messge);
            return false;
        }
    } 
}


