www.gusucode.com > 仿51.com的php源码 1.1 > home/Ajax.js

    function InitAjax()
{
	var XMLHTTP=false;
	try {
		XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e) {
		try {
			XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			XMLHTTP = false;
		}
	}
	if (!XMLHTTP && typeof XMLHttpRequest!='undefined') {
		XMLHTTP = new XMLHttpRequest();
	}
	return XMLHTTP;
}


function LoadXMLHTTP(URL,DivName){
	var XMLHttp = InitAjax();
	XMLHttp.open("GET",URL,true); //异步
	XMLHttp.setRequestHeader('charset','GBK');
	XMLHttp.onreadystatechange = StateChangeProcess;
	XMLHttp.Send(null);

		function StateChangeProcess(){
			if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){
			  eval(DivName).innerHTML = XMLHttp.responseText;
			  XMLHttp.abort();
			 }
		}
}

 function ProcessInterFace_Comment(sCommentId,sType,sUserName){
	//Create:Jonava:2006-10-24;
	var CommentId,Type,url,DivName,UserName;
	CommentId	= sCommentId.split("|")[0];
	Type		= sType;
	UserName	= sUserName;
	url			= "vip_DiaryGetCommentList.php?user="+UserName+"&DispType=All&diary_id="+CommentId;
	DivName		= Type +"_Comment_"+CommentId;

	if(document.all(Type +"_Comment_"+CommentId).style.display=="none" || document.all(Type +"_Comment_"+CommentId).style.display == ""){
		document.all(Type +"_CommentLink_"+CommentId).innerHTML="<u>隐藏</u>";
    }else{
		document.all(Type +"_Comment_"+CommentId).style.display="none";
		document.all(Type +"_CommentLink_"+CommentId).innerHTML="<u>查看</u>";
		return;
    }

	if(document.all(Type +"_Comment_"+CommentId).innerHTML!="" || document.all(Type +"_Comment_"+CommentId).innerHTML!="正在加载评论列表,请稍候..."){
        document.all(Type +"_Comment_"+CommentId).style.display="inline";
    }
	

	LoadXMLHTTP(url,DivName);
 }


//用户UID检测,防止恶意用户刷鲜花或鸡蛋;
function SendGiftConfirm(op, num, tit, user, type) {
	var XMLHttp = InitAjax();
    XMLHttp.open("GET", "/Interface/GetUserInfoInterface.php?action=userEncode", true);
    XMLHttp.onreadystatechange = function() {
	    if (XMLHttp.readyState == 4) {
	       if (XMLHttp.status == 200) {
	           var encode = XMLHttp.responseText;
	           SendGift(op, num, tit, user, encode, type);
	       }
	    }
    }
    XMLHttp.send(null);    
    return false;
}
//执行鲜花鸡蛋逻辑
function SendGift(op, num, tit, user, uid, type){
    if(op==1){
        if(confirm("确定要送鲜花吗?每朵鲜花将消费您51币 0.05元!")){
            var rv=prompt("请输入要鲜花的数量:", "1");
            if(rv){
                if(isNum(rv)){					
					var url = "ProcessInterface_FlowerEgg.php?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type;
					var div_id	= num;
					ProcessInterface_FlowerEgg(url,div_id,user);
                }
                else{
                    alert("请输入数字!");
                    return ;
                }
            }
        }
    }
    else{
        if(confirm("确定要砸鸡蛋吗?每个鸡蛋将消费您51币 0.05元!")){
            var rv=prompt("请输入要鸡蛋的数量:", "1");
            if(rv){
                if(isNum(rv)){
                    //location.href="?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type + "&sgbgurl=<?=urlencode($_SERVER["REQUEST_URI"])?>";
					var url ="ProcessInterface_FlowerEgg.php?user="+user+"&id="+num+"&op="+op+"&uid="+uid+"&num="+rv+"&title="+tit+"&type=" + type;
					var div_id	= num;
					ProcessInterface_FlowerEgg(url,div_id,user);
				}
                else{
                    alert("请输入数字!");
                    return ;
                }
            }
        }   
    }
}




function ProcessInterface_FlowerEgg(URL,DivId,UserName){
	var XMLHttp = InitAjax();
	var sUserName = UserName;
	var ReturnValue;
	var sDivId	= DivId;
	XMLHttp.open("GET",URL,true); //异步
	XMLHttp.setRequestHeader('charset','GBK');
	XMLHttp.onreadystatechange = StateChangeProcess;
	XMLHttp.Send(null);
		function StateChangeProcess(){
			if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){
			  ReturnValue = XMLHttp.responseText;
			  PopMessageWindow(ReturnValue,sDivId,sUserName);
			 }
		}
}




//PHP中trim()函数的JS版本;
function trim(inputString) {
	if (typeof inputString != "string") { return inputString; }
		var retValue = inputString;
		var ch = retValue.substring(0, 1);
		while (ch == " ") { 
			//检查字符串开始部分的空格
			retValue = retValue.substring(1, retValue.length);
			ch = retValue.substring(0, 1);
		}
	ch = retValue.substring(retValue.length-1, retValue.length);
	while (ch == " ") {
		//检查字符串结束部分的空格
		retValue = retValue.substring(0, retValue.length-1);
		ch = retValue.substring(retValue.length-1, retValue.length);
	}
	while (retValue.indexOf("  ") != -1) { 
		//将文字中间多个相连的空格变为一个空格
		retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
	}
	return retValue;

} 






//获取鲜花鸡蛋远程返回参数执行不同值;
function PopMessageWindow(ReturnValue,sDivId,UserName){
	
	var sDivId			=	trim(sDivId);
	var sReturnValue	=	trim(ReturnValue.substring(0,1));
	switch(sReturnValue){
		case '1':
			alert("未登录,请先登录!");
			break;
		case '2':
			alert("无效的ID参数");
			break;
		case '3':
			alert("输入的数量不能低于1");
			break;
		case '4':
			alert("无效参数!");
			break;
		case '5':
			alert("抱歉,您不能对自己操作!");
			break;
		case '6':
			alert("抱歉,您的财富不够!");
			break;
		case '7':
			alert("送鲜花或砸鸡蛋的数目不得超过1000!");
			break;
		case '8':
			alert("送鲜花成功!");
			//实时更新当前日记的鲜花或鸡蛋数量;
			var url ="ProcessInterface_FlowerEgg.php?user="+UserName+"&action=GetNewCount&type=flower&diary_id="+sDivId;
			var DivName='flower'+sDivId;
			LoadXMLHTTP(url,DivName);
			break;
		case '9':
			alert("砸鸡蛋成功!");
			//实时更新当前日记的鲜花或鸡蛋数量;
			var url ="ProcessInterface_FlowerEgg.php?user="+UserName+"&action=GetNewCount&type=egg&diary_id="+sDivId;
			var DivName='egg'+sDivId;
			LoadXMLHTTP(url,DivName);
			break;
	}
}




//--------------------------------------------------------------------------------------;
//Create:Jonava:2006-10-31
//Function:ProcessInterface_SaveComment();
//获取客户端表单数据使用AJAX引擎传输数据;

function ProcessInterface_SaveComment(ObjId,UserName){
	
	var strPostValue = GetQuestQuery(ObjId);
	var sObjId	=	ObjId;
	var sUserName	=	UserName;
	var url		=	"ProcessInterface_Comment.php?user="+sUserName+"&diary_id="+sObjId+"&action=Save";
	PostXMLHTTP(url,sObjId,strPostValue,sUserName);
}


//--------------------------------------------------------------------------------------;
//Create:Jonava:2006-10-31
//Function:PostXMLHTTP();
//用于处理留言或评论的数据异步传送;
 function PostXMLHTTP(URL,ObjName,sQueryString,sUserName){
	var QueryString	= sQueryString;
	var XMLHttp = InitAjax();
	var sObjName	=	"CommentForms";
	var sCommentId	=	ObjName;
	var sUserName	=	sUserName;
	XMLHttp.open("POST",URL,true); //异步
	XMLHttp.setRequestHeader('charset','GBK');
	XMLHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
	XMLHttp.onreadystatechange = StateChangeProcess;
	XMLHttp.Send(QueryString);
		function StateChangeProcess(){
			if(XMLHttp.readyState == 4 && XMLHttp.Status == 200){
				ReturnValue = XMLHttp.responseText;
				PopMessageCommentWindow(ReturnValue,sObjName,sCommentId,sUserName);	
			 }else if(XMLHttp.readyState == 1){
			
				var sObjId	=	"document.CommentForms";
				var oObj = sObjId;
				document.all(sObjName).disabled="disabled";
				oObj.f_DiaryComment_Memo.disabled="disabled";
				document.all(sObjName).value="正在发送数据...";
			 }
		}

 }


//--------------------------------------------------------------------------------------;
//Create:Jonava:2006-10-31
//Function:GetQuestQuery();
//获取客户端表单数据;\

function GetQuestQuery(ObjId){
	var sObjId	=	"document.CommentForms";
	var oObj = eval(sObjId);
	//alert(sObjId);
	var strPostVlaue	=	"";
	var f_DiaryComment_CommentObjId,f_DiaryComment_ObjTitle,f_DiaryComment_AddDate,f_DiaryComment_Memo,VKey;
	
	f_DiaryComment_CommentObjId	=	oObj.f_DiaryComment_CommentObjId.value;
	f_DiaryComment_ObjTitle		=	oObj.f_DiaryComment_ObjTitle.value;
	f_DiaryComment_AddDate		=	oObj.f_DiaryComment_AddDate.value;
	f_DiaryComment_Memo			=	oObj.f_DiaryComment_Memo.value;
	
	var re_str;
	re_str = /\+/g;
	f_DiaryComment_ObjTitle		=	f_DiaryComment_ObjTitle.replace(re_str,"+");
	f_DiaryComment_Memo			=	f_DiaryComment_Memo.replace(re_str,"+");

	strPostVlaue	=	"f_DiaryComment_CommentObjId="+f_DiaryComment_CommentObjId+"&f_DiaryComment_ObjTitle="+f_DiaryComment_ObjTitle+"&f_DiaryComment_AddDate="+f_DiaryComment_AddDate+"&f_DiaryComment_Memo="+f_DiaryComment_Memo;
	return strPostVlaue;

}

//--------------------------------------------------------------------------------------;
//Create:Jonava:2006-10-31
//Function:PopMessageCommentWindow(ReturnValue);
//获取客户端表单数据;
function PopMessageCommentWindow(ReturnValue,sObjName,sCommentId,sUserName){
	var sDivId			=	trim(sDivId);
	var sReturnValue	=	trim(ReturnValue.substring(0,1));
	var sObjName		=	sObjName;
	switch(sReturnValue){
		case '1':
			alert("未登录,请先登录!");
			callback(sObjName,sCommentId,0);
			break;
		case '2':
			alert("您未设置形像照,请到您的相册上传照片,并设为形象照后再发布留言或评论");
			callback(sObjName,sCommentId,0);
			window.open('http://my.51.com/User/SetSelfPhoto.php');
			break;
		case '3':
			alert("输入的内容中含有禁用字:如不文明用语、垃圾广告或其它非法信息");
			callback(sObjName,sCommentId,0);
			break;
		case '4':
			alert("留言或评论字数不能小于3或者大于125个字符!");
			callback(sObjName,sCommentId,0);
			break;
		case '5':
			alert("对不起,对方设置只有VIP才能发表留言或评论,请升级VIP");
			callback(sObjName,sCommentId,0);
			break;
		case '6':
			alert("对不起,对方拒绝任何人发表留言或评论");
			callback(sObjName,sCommentId,0);
			break;
		case '7':
			alert("对不起,只有VIP的用户才可以发表悄悄话!");
			callback(sObjName,sCommentId,0);
			break;
		case '8':
			alert("对不起,对方已将你列入黑名单,无法发表留言或评论!");
			callback(sObjName,sCommentId,0);
			break;
		case '9':
			alert("您的评论已成功提交!");
			callback(sObjName,sCommentId,1);
			ReNewCommentList(sCommentId,sUserName);
			var commentCount = document.all('comment'+sCommentId).innerText;
			document.all('comment'+sCommentId).innerText = trim(parseInt(commentCount)+ 1);
			break;
		case '0':
			alert("来源参数错误! 请勿从51.COM以外的网站提交数据!");
			callback(sObjName,sCommentId,0);
			break;
		case 'a':
			alert("请勿提交无关评论");
			callback(sObjName,sCommentId,0);
			break;
			
	}
}


//更新评论框状态
function callback(sObjName,sCommentId,State){
	var sObjName = sObjName;
	//var sObjId	=	"document.CommentForms";
	var oObj = "document.CommentForms"
	var sState	=	State;
	document.all(sObjName).disabled=false;
	document.all('f_DiaryComment_Memo').disabled=false;
	if(sState==1){
		document.all('f_DiaryComment_Memo').value="";
	}
	document.all(sObjName).value=" 提交评论 ";
}

//更新评论列表
function ReNewCommentList(sCommentId,sUserName){
	var URL;
	var thisURL = (document.URL);
	obj=thisURL.match(/showdiarys/g);
	URL = "vip_DiaryGetCommentList.php?user="+sUserName+"&DispType=All&diary_id="+sCommentId;

	if(obj!=null){ 
		URL = "vip_DiaryGetCommentList.php?user="+sUserName+"&diary_id="+sCommentId;
	}
		

	
	LoadXMLHTTP(URL,'Diary_Comment_'+sCommentId);	
}


//加载评论发布框;
function showCommentForms(sCommentId,sCommentTitle,sCommentOnwer){
	var DivName = "DIV_"+sCommentId;
	
	if(document.all(DivName).style.display=='none' || document.all(DivName).style.display==''){
		document.all(DivName).style.display='inline';
		var url="ProcessInterface_CommentForms.php?user="+sCommentOnwer+"&CommentObjId="+sCommentId+"&ObjTitle="+sCommentTitle;
		LoadXMLHTTP(url,DivName);
	}else{
		document.all(DivName).style.display='none';
		document.all(DivName).innerHTML = "";
	}
	
}


//计算评论留言等字符长度
function CountStringLength(max){
	str = document.all('f_DiaryComment_Memo').value;
	if(str.length>max || str.length < 3)
    {
		alert("提示:输入的字符不能少于3个或不能多于 "+max+" 个!");
		document.all('f_DiaryComment_Memo').value=str.substring(0,max);
		return false;
	}
	return true;
}

//CTRL + ENTER函数
function SubmitCommentForms(obj, field)
{
	if (event.ctrlKey && event.keyCode == 13) {
		obj.form.submit();
		if (document.getElementById(field)) {
			document.getElementById(field).value='正在发送...';
			document.getElementById(field).disabled=true;
		}
	}
}

//下载表情
function DownloadFace(){
	var moodListObj = document.getElementById("face");
	if(moodListObj.innerText == ''){
		var URL;
		URL = "ProcessInterface_showface.php";
		LoadXMLHTTP(URL,'face');
	}


	if (moodListObj) {
		moodListObj.style.display = (moodListObj.style.display == "inline") ? "none" : "inline";
		//moodListObj.style.display = 'inline';
		moodListObj.style.top	=	getIE('font-face','top') +21 + "px";
		moodListObj.style.left	=	getIE('font-face','left') + "px";
	}

	if(document.all('font-face')){
			document.all('font-face').src='/images/ubbeditor/face_click.gif';
	}

	
}

function getIE(t,z){ 
                e=document.getElementById(t);
                var t=e.offsetTop; 
                var l=e.offsetLeft; 
                while(e=e.offsetParent){ 
                        t+=e.offsetTop; 
                        l+=e.offsetLeft; 
                }
                if(z=='top'){
					return t;
				}else if(z=='left'){
					return l;	
				}
				
        }