﻿CODE:/**
* @author skyzhw
* @filename HttpRequest.class.js
* @function javascript client ajax dealwith
* @datetime 2006-3-20
*/
/* 
* Function: Create a httpRequest object
*/ 
function $$(id)
{
	var objvalue;
	objvalue = document.getElementById(id);
	return objvalue;
	}


function HttpRequest(){
this._httpRequest=null; //HttpRequest request object
this._callBack=null; //Call back function
this._domResult=true; //Result if dom object or text string
this._requestData=null; //Request data
this._requestResult=null; //HttpRequest result
this._stateString=null; //Current request state string
this._error=false; //Current if have error
this._callBackPara=null; //Current callback function parama
//internal method for get HttpRequestObject
this.init=function(){
//Judge if Not IE
if(window.XMLHttpRequest){
this._httpRequest=new XMLHttpRequest();
//Set request mime is text/xml
if(this._httpRequest.overrideMimeType){
this._httpRequest.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){
try{
this._httpRequest=new ActiveXObject("Msxml2.XMLHTTP");
}catch(ex){
try{
this._httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
}catch(ex){
this._setMessage(ex,true);
return;
}
}
}
//Judge HttpRequest object create successful
if(!this._httpRequest){
this._setMessage("HttpRequest object create fail!Please try again......",true);
return;
} 
}
/* 
* Function: Set the request header
* namePar:request's header name
* valuePar:request's header value
*/
this.doSetRequestHeader=function(namePar,valuePar){
if(this._error){
return;
}
this._httpRequest.setRequestHeader(namePar,valuePar);
}
/* 
* Function: Set the request data
* dataPar:request's send data;
*/
this.doSetRequestData=function(dataPar){
if(this._error){
return;
}
this._requestData=dataPar;
}
/*
*Function get RequestHttp Object
*/
this._getRequestObj=function(){
if(this._error){
return;
}
return this._httpRequest;
}
/*
* Function:Set Callback function para
*/
this.doSetCallBack=function(callBack,paraData){
this._callBack=(callBack)?callBack:null;
this._callBackPara=(paraData)?paraData:null;
};
/*
* Function: Get current stateString
*/
this.doGetState=function(){
return this._stateString;
}
/*
* Function: get current Error 
*/
this.doGetError=function(){
return this._error;
}
/*
*
*/
this.doCallBack=function(){
this._callBack(this._requestResult,this._callBackPara);
}

/* 
* Function: Send the request
* urlPar: request's url path
* [methodPar]:request's method
* [domPar]: request's result is dom or string
*/
this.doSendResuest=function(urlPar,methodPar,obj,domPar,asyPar){
if(obj._error){
return;
}
methodPar=((methodPar)?methodPar:"GET");
asyPar=((asyPar)?asyPar:true);
this._domResult=(domPar)?domPar:obj._domResult;
try{
var a=this._getRequestObj();
a.onreadystatechange=function(){
if(obj._error){
return;
}
var readyStateTmp=a.readyState;
if(readyStateTmp==0){
obj._setMessage("No initialize");
}else if(readyStateTmp==1){
obj._setMessage("Reading......");
}else if(readyStateTmp==2){
obj._setMessage("Had read!");
}else if(readyStateTmp==3){
obj._setMessage("Turning each other...... ");
}else if(readyStateTmp==4){
var statusTmp=a.status;
if(statusTmp==404){
obj._setMessage("Not found request file!",true);
}else if(statusTmp==200){
obj._setMessage("Finished"); 
if(this._domResult && window.XMLHttpRequest){
obj._requestResult=a.responseXml;
}else{
obj._requestResult=a.responseText;
}
if(obj._callBack){
obj.doCallBack();
}
}else{
obj._setMessage("Unknow error!");
}
}else{
obj._setMessage("Unknow error!");
} 
}
a.open(methodPar,urlPar,asyPar);
a.send(obj._requestData);
}catch(ex){
obj._setMessage(ex,true);
}
}
/*
* Function: Deal exception error 
* exPar:error string
*/
this._setMessage=function(exPar,mark){
this._stateString=exPar.toString();
this._error=(mark)?mark:false;
}
}
//=============================================
//取返回值
function ajax_shopreturnvalue(url,id,id1,id2,pid,qdnums,SinglePrice,A,B,C,D){
		//没有loading样式
	var idstr;
	idstr = id+'||'+id1+'||'+id2+'||'+pid+'||'+qdnums+'||'+SinglePrice
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
 	doSetCallBack(a_retrunvalue,idstr);  
	doSendResuest(url,"GET",httpRequest);
	}
}

function a_retrunvalue(str,idstr){

		var id0,id1,id2,pid,costmoney,qdnums,SinglePrice,jsonlad;
		jsonlad=idstr.split("||");
		id0 = jsonlad[0];
		id1 = jsonlad[1];
		id2 = jsonlad[2];
		pid = jsonlad[3];
		qdnums = jsonlad[4];
		SinglePrice = jsonlad[5];

		if (str=='ok')
		{
			costmoney =qdnums*SinglePrice;

			$$(id1).value ++;			
			costmoney = Math.round(costmoney*100)/100;	
			
			$$(id2).innerHTML='￥'+costmoney+'元'
			ajaxPro_js_ajax('/shopcar/ajax/codeshop.asp?pid='+pid+'&pnum='+qdnums+'&CooType=EntitiesShop10&costpoint=0&t='+Math.random(),id0);
			//头部数量显示
			//$$("shopshowcar").innerHTML=qdnums;
		}
		else
		{
			alert(str);
			return false;
		}

}
	
//===============================================
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ajax弹出提示---id是预留参数
	function ajaxProcess_alert(url,id){
		//没有loading样式
	
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(ajaxalert,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function ajaxalert(str,id){

	//var jsonlad=str;
	//--------游戏充值部分是否登录ajax判断及提交处理
		if (str=='false09')
		{
			alert('您未登录或登录已超时，请登录后再试！')
			return false;
			}
		else if (str=='true09')
		{
			var checkok;
			checkok='y';
			if(document.game_one.classid.value==""||document.game_one.classid.value=="0000")
				{
					alert("请选择游戏名");
					document.game_one.classid.focus();
					checkok='n';
					return false;
				}
				if(document.game_one.cardid.value==""||document.game_one.cardid.value=="000000")
					{
						alert("请选择面值");
						document.game_one.cardid.focus();
						checkok='n';
						return false;
					}	
					
				if (checkok=='y'){	
					game_one.submit();
				}
			}
		//++++++++++++游戏充值判断部分结束++++++++++++
		else
		{
		alert(str);
		}

	}
	
//********************************************
function ajaxalert(str,id){

	//var jsonlad=str;
	//--------游戏充值部分是否登录ajax判断及提交处理
		if (str=='false09')
		{
			alert('您未登录或登录已超时，请登录后再试！')
			return false;
			}
		else if (str=='true09')
		{
			var checkok;
			checkok='y';
			if(document.game_one.classid.value==""||document.game_one.classid.value=="0000")
				{
					alert("请选择游戏名");
					document.game_one.classid.focus();
					checkok='n';
					return false;
				}
				if(document.game_one.cardid.value==""||document.game_one.cardid.value=="000000")
					{
						alert("请选择面值");
						document.game_one.cardid.focus();
						checkok='n';
						return false;
					}	
					
				if (checkok=='y'){	
					game_one.submit();
				}
			}
		//++++++++++++游戏充值判断部分结束++++++++++++
		else
		{
		alert(str);
		}

	}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++


//ajax中调用ajax
//=======================================================

function ajaxProcess(url,id){

	if(id!='undefined'){
	document.getElementById(id).innerHTML="<div style='padding-top:15px;padding-bottom:10px;width:80%;'><img src='/images/loading.gif'></div>";
	}
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aa,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
	//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
	function ajaxProcess_2(url,id){
		//没有loading样式
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aa,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
	//＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋＋
	
function aa(str,id){

	var jsonlad=str;
	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];

	if (jsonlad.length>1 &&  str.indexOf('{}')>0)
	  {
		for(var k=1;k<jsonlad.length;k++){
	
		jsstr=jsonlad[k].split(";");
				for(var i=0;i<jsstr.length;i++)
				{
				operatestr=jsstr[i].split(",");
				
				//ajaxProcess(''+operatestr[0]+'',''+operatestr[1]+'');
	 			setTimeout("ajaxProcess('"+operatestr[0]+"','"+operatestr[1]+"')",0);
				}
		}
	  }
	}
//==============================================================
//ajax页面调用js有提示
//=======================================================
function ajaxProcessscript(url,id){
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aascript,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function aascript(str,id){
	
	var jsonlad=str;

	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];

	if (jsonlad.length>1)
	  {
		for(var k=1;k<jsonlad.length;k++){

		jsstr=jsonlad[k].split(";");
				for(var i=0;i<jsstr.length-1;i++)
				{
					
				operatestr=jsstr[i].split("||");
				var linkstr=operatestr[1]
				if (confirm(operatestr[0]))
				{
					window.location.href=''+linkstr+'';
				}
				else
				{
				return false;
				}	
		}
	  }
	}
	}
//==============================================================
//ajax页面调用js有提示不跳转
//=======================================================
function ajaxProcessscriptnolink(url,id){
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aascriptnolink,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function aascriptnolink(str,id){

	var jsonlad=str;

	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];

	if (jsonlad.length>1)//有提示
	  {
		for(var k=1;k<jsonlad.length;k++){

		jsstr=jsonlad[k].split(";");
				for(var i=0;i<jsstr.length-1;i++)
				{
					
				//operatestr=jsstr[i].split("||");
				alert(jsstr[i]);

		}
	  }
	}
	}
//==============================================================
//==============================================================
//ajax页面调用js与ajax有提示不跳转
//=======================================================
function ajaxPro_js_ajax(url,id){
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(pro_js_ajax,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function pro_js_ajax(str,id){

	var jsonlad=str;
	var jsonladstr2;
	var jsstr,jsstr2,jsstr3;

	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];
	//===============================================
	if (jsonlad.length>1)//有提示---数据结构  内容{}弹出;弹出||ajax@@id;ajax@@id;
	  {
		 jsonladstr2 = jsonlad[1].split("||")
		
		//==========弹出提示部分============= 
		if(jsonladstr2.length<=1)  //只有弹出提示
		{
			jsstr=jsonladstr2[0].split(";");
			for(var i=0;i<jsstr.length-1;i++)
			{ 
			  alert(jsstr[i]);
			}
		 }
		else//有弹出提示和执行ajax 
		{
			//弹出 
				jsstr=jsonladstr2[0].split(";");
				for(var ii=0;ii<jsstr.length-1;ii++)
				{
				  if(jsstr[ii].trim()!='')
				 	{ alert(jsstr[ii]);}
				}	
			//ajax部分
				jsstr2=jsonladstr2[1].split(";");
				for(var iii=0;iii<jsstr2.length-1;iii++)
				{
					jsstr3=jsstr2[iii].split("@@");
	 				setTimeout("ajaxProcess('"+jsstr3[0]+"','"+jsstr3[1]+"')",100);		  
				}		
			}   


	   //============弹出提示部分===============
	   
	 }
	 //++++++++++++++++++++++++++++++++++++++++++++
}
//==============================================================
//ajax页面调用js只执行js代码
//=======================================================
function ajaxProcessscriptonlyjs(url,id){
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aascriptonlyjs,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function aascriptonlyjs(str,id){

	var jsonlad=str;

	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];

	if (jsonlad.length>1)//
	  {
		for(var k=1;k<jsonlad.length;k++){

		jsstr=jsonlad[k].split(";");
				for(var i=0;i<jsstr.length-1;i++)
				{
				setTimeout(jsstr[i],0); 
		}
	  }
	}
	}
//==============================================================

//==============================================================
//ajax页面调用js没有提示
//=======================================================
function ajaxProcessscriptnotip(url,id){
	var httpRequest=new HttpRequest();
	with(httpRequest){
	init();
	doSetCallBack(aascripttip,id);
	doSendResuest(url,"GET",httpRequest);
	}
	}
function aascripttip(str,id){
	
	var jsonlad=str;

	jsonlad=jsonlad.split("{}");
	document.getElementById(id).innerHTML=jsonlad[0];
	if (jsonlad.length>1)
	  {
		for(var k=1;k<jsonlad.length;k++){

		jsstr=jsonlad[k].split(";");
				for(var i=0;i<jsstr.length-1;i++)
				{
					
				operatestr=jsstr[i].split("||");
				var linkstr=operatestr[0]
				window.location.href=''+linkstr+'';

		}
	  }
	}
	}
//==============================================================
//---------------图片缩放－－－onload=proDownImage(this,95,95);－－－－－－－－－－－－－－－－
function proDownImage(ImgD,wid,hei){
	var proMaxHeight =hei ;
	var proMaxWidth = wid;
      var image=new Image();
      image.src=ImgD.src;
      if(image.width>0 && image.height>0){
      var rate = (proMaxWidth/image.width < proMaxHeight/image.height)?proMaxWidth/image.width:proMaxHeight/image.height;
    if(rate <= 1){   
     ImgD.width = image.width*rate;
     ImgD.height =image.height*rate;
    }
    else {
			ImgD.width = image.width;
			ImgD.height =image.height;
         }
      }
}



//+++++++解决ie6 js不能提交问题+++++++
function doSubmit()
{
	dp2.submit();
}


function Copy_09(theField,tipstr) {
var tempval=document.getElementById(theField);
tempval.focus();
tempval.select();
therange=tempval.createTextRange();
therange.execCommand("Copy");
alert(tipstr);
}

//函数 limitestr＝＝用于textarea限制输入字符数
function limitestr(id,nums)
{
 var str_m;

	str_m=$$(id).value; 

 if(str_m.length>nums) 
 {
 $$(id).value=str_m.substr(0,nums)
 }
}
function picindexcom(para){
	for(var i=1;i<=document.getElementById("pichidden").value;i++)
	{
	
		if(i==para){
		document.getElementById("prepic"+i).className="smallpic selectpic";
		document.getElementById('proimg').getElementsByTagName("img")(0).src=document.getElementById("small"+i).src;
		}
		else
		document.getElementById("prepic"+i).className="smallpic noselectpic";
	}
}
//============================
//函数：Func_expandmenue
//功能：展开关闭菜单、层

//===========================
var lastObj;
function Func_expandmenue(obj){
	if(lastObj != null){
		if(obj == lastObj){
			if(obj.style.display=="none"){
				obj.style.display="block";
			}else{
				obj.style.display="none"				
			}
		}else{
			lastObj.style.display="none"
			obj.style.display="block";
		}
	}else{
		obj.style.display="block";
	}	
	lastObj=obj
}
//去空格函数
String.prototype.trim=function(){ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
//跳转

