/**
 * @author 汤恒杰 Added 2008.11.03
 * 与搜索条相关的能过 Ajax 取数据的功能实现
 */
 
//全局变量
var GameRelatedListGameCallBackCol = "";
var GameRelatedListGameCallBackCol2 = "";
var GameRelatedListGameCallBackCol3 = "";
var firstOptionText = "游戏名称";

var games_request = false;
var OfferTypes_request = false;
var setAreaAndServer_request = false;
var charactor_request = false;
var compgames_request = false;
var gamesByCmpName_request = false;
var gameidBygName_request = false;

var tempPrefix ="";
var tempCmpPrefix = "";
var tempCmpContentID = "";
var tempGameName = "";


function doRequestGameidByGameName(gameName)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		gameidBygName_request = new XMLHttpRequest();
		if (gameidBygName_request.overrideMimeType) {//设置MiME 类别
			gameidBygName_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			gameidBygName_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				gameidBygName_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!gameidBygName_request) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest 对象实例.");
		return false;
	}
	
	tempGameName = gameName;
	gameidBygName_request.onreadystatechange = onGameIdGetReadyCallback;
	
	// 确定发送请求的方式和URL 以及是否同步执行下段代码
	var u = encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=GETIDBYGAMENAME&GameName="+encodeURI(gameName));
	gameidBygName_request.open("POST", '/Controls/Common/Proxy.aspx?url=' +u, false);
	gameidBygName_request.send("");	
}

 
//执行区的联动 
function doGameRelatedList2(gameType,gameType2, col,col2,col3, id,col4)
{
	GameRelatedListGameCallBackCol = col;
	GameRelatedListGameCallBackCol2 = col2;

	//加载游戏所支持的物品种类
	GameRelatedListLoading2();	
	
	//加载游戏区
	GetGames(gameType,id);
	
	//获取物品类型
	GetOfferTypes(id);
	
	//重置服务器列表的值
	ddlItemDel(col3);

	document.getElementById(col3).options[0] = new Option("全服","-1");
}

  //执行服的联动 
 function doGameRelatedList(gameType, col, id,col3)
{
	GameRelatedListGameCallBackCol = col;
	
	GameRelatedListLoading();	
	
	GetGames(gameType,id);

	if(col3!=null)
	{
		ddlItemDel(col3);
		GetOfferTypes(id);	
		document.getElementById(col3).options[0] = new Option("全服","-1");
	}
}
 

//选择游戏
function GetGames(gameType,id)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		games_request = new XMLHttpRequest();
		if (games_request.overrideMimeType) {//设置MiME 类别
			games_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			games_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				games_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!games_request) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest 对象实例.");
		return false;
	}
	games_request.onreadystatechange = GameRelatedListGameCallBack;
	
	// 确定发送请求的方式和URL 以及是否同步执行下段代码
	var u = encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=games&gameType=" +gameType + "&id=" +id + "&tradingType=other");
	games_request.open("POST", '/Controls/Common/Proxy.aspx?url=' +u, false);
	games_request.send("");	
}

//加载所选游戏支持的物品种类
function GetOfferTypes(id)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		OfferTypes_request = new XMLHttpRequest();
		if (OfferTypes_request.overrideMimeType) {//设置MiME 类别
			OfferTypes_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			OfferTypes_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				OfferTypes_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!OfferTypes_request) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest 对象实例.");
		return false;
	}
	OfferTypes_request.onreadystatechange = GameRelatedListOffersCallBack;
	var u = encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=GetOfferTypesByGameID&gameType=offertypes&gameid=" + id);
	OfferTypes_request.open("POST", '/Controls/Common/Proxy.aspx?url=' + u, true);
	OfferTypes_request.send("");	
}

//根据物品类型设置区服
function SettingGameAreaServer()
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		setAreaAndServer_request = new XMLHttpRequest();
		if (setAreaAndServer_request.overrideMimeType) {//设置MiME 类别
			setAreaAndServer_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			setAreaAndServer_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				setAreaAndServer_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	var _BizTypesID = document.getElementById(go_id).value;
	
	setAreaAndServer_request.onreadystatechange = IsDisplayGameAreaServer;
	var url =encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=ISSUPPORTGAMEAREASERVER&BizoffTypeid=" + _BizTypesID );
	setAreaAndServer_request.open("get", '/Controls/Common/Proxy.aspx?url=' + url, true);
	setAreaAndServer_request.send(null);
}

//根据标签前缀获取相对应的标签下面的游戏
function getDataByCharactor(_prefix)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		charactor_request = new XMLHttpRequest();
		if (charactor_request.overrideMimeType) {//设置MiME 类别
			charactor_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			charactor_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				charactor_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	tempPrefix = _prefix;
	
	charactor_request.onreadystatechange = onCharactorDataReadyCallback;
	
	var url =encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=GETGAMESBYPREFIX&Prefix=" + _prefix);
	setAreaAndServer_request.open("get", '/Controls/Common/Proxy.aspx?url=' + url, true);
	setAreaAndServer_request.send(null);
}


//加载所有的公司
function getCmpDataByCharactor(_prefix)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		compgames_request = new XMLHttpRequest();
		if (compgames_request.overrideMimeType) {//设置MiME 类别
			compgames_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			compgames_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				compgames_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	tempCmpPrefix = _prefix;
	
	compgames_request.onreadystatechange = onCompanysDataReadyCallback;
	
	var url =encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=GETALLCOMSRCDATA");
	compgames_request.open("get", '/Controls/Common/Proxy.aspx?url=' + url, true);
	compgames_request.send(null);
}

//根据游戏公司，获取它下面的所有游戏
function getCmpGameByCmpName(contentId, codeCmpName)
{
	//开始初始化XMLHttpRequest 对象
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		gamesByCmpName_request = new XMLHttpRequest();
		if (gamesByCmpName_request.overrideMimeType) {//设置MiME 类别
			gamesByCmpName_request.overrideMimeType("text/xml");
		}
	}
	else if (window.ActiveXObject) { // IE 浏览器
		try {
			gamesByCmpName_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				gamesByCmpName_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	tempCmpContentID = contentId;
	
	gamesByCmpName_request.onreadystatechange = onCompanyGamesDataReadyCallback;
	
	var url =encodeURIComponent(getRequestUrl(this.location) + "/ajax.axd?methodName=GETCOMPGAMESSRCDATA&CopName=" + codeCmpName);
	gamesByCmpName_request.open("get", '/Controls/Common/Proxy.aspx?url=' + url, true);
	gamesByCmpName_request.send(null);
}

//根据游戏名称获取游戏 id 
function onGameIdGetReadyCallback()
{
	if (gameidBygName_request.readyState == 4) 
	{ // 判断对象状态
		if (gameidBygName_request.status == 200) 
		{
			var str = gameidBygName_request.responseText.split("$")[0];
			
			var gameid = "";
			if(str !="")
			{
				gameid = str;
			}
			else
			{
				gameid = "-1";
			}
			//执行联动和其它的一切相关操作
			executeReleateOpAfterSelect(gameid,tempGameName);
		}
	}
}

//选择游戏回调
function GameRelatedListGameCallBack()
{
	if (games_request.readyState == 4) 
	{ // 判断对象状态
		if (games_request.status == 200) 
		{ // 信息已经成功返回，开始处理信息
		
			var ddlBizType=document.getElementById(GameRelatedListGameCallBackCol);
			ddlBizType.options.length=1;
			
			if (games_request.responseText != "")
			{
				var str = games_request.responseText.split("$");
				if(str[0]!="")
				{
					for (var i=0; i<str.length-1; i++)
					{
						var objOption  = document.createElement("OPTION");
						objOption.text = str[i+1];
						objOption.value = str[i];
						ddlBizType.options.add(objOption);
						i++;
					}
				}
				
				if(GameRelatedListGameCallBackCol.indexOf("ddlGameAreas") != -1)
					ddlBizType.options[0].text = "游戏区";
				else if(GameRelatedListGameCallBackCol.indexOf("ddlGameServers") !=-1)
					ddlBizType.options[0].text = "游戏服务器";
				else
					ddlBizType.options[0].text = "游戏名称";
			}				
		} 
		else 
		{ //页面不正常
			alert(games_request.status);
		}
	}
}	


//选择物品类型回调
function GameRelatedListOffersCallBack()
{
	if (OfferTypes_request.readyState == 4) 
	{ // 判断对象状态
		if (OfferTypes_request.status == 200) 
		{ // 信息已经成功返回，开始处理信息
			
			var ddlOfferTypes=document.getElementById(GameRelatedListGameCallBackCol2);
			ddlOfferTypes.options.length=1;
			if (OfferTypes_request.responseText != "")
			{
				var str = OfferTypes_request.responseText.split("$");
				if(str[0] != "")
				{
					var objOption2  =document.createElement("OPTION");
					ddlOfferTypes.length=0;
					objOption2.text="全部";
					objOption2.value="-1";
					ddlOfferTypes.options.add(objOption2)
					
					for (var i=0; i<str.length-1; i++)
					{
						var objOption  =document.createElement("OPTION");

						objOption.text = str[i+1];
						objOption.value = str[i];

					  ddlOfferTypes.options.add(objOption);
						//OfferTypes.options[j].value = str[i];
						//OfferTypes.options[j].text = str[i+1];
						i++;
					}
				}
			}
			
			if(GameRelatedListGameCallBackCol2.indexOf("ddlGameAreas") != -1)
				ddlOfferTypes.options[0].text = "全区";
			else if(GameRelatedListGameCallBackCol2.indexOf("ddlGameServers") !=-1)
				ddlOfferTypes.options[0].text = "全服";
			else if(GameRelatedListGameCallBackCol2.indexOf("ddlBizTypes") !=-1)
				ddlOfferTypes.options[0].text = "全部物品";
			else
				ddlOfferTypes.options[0].text = "游戏名称";		
		} 
		else 
		{ //页面不正常
			alert(OfferTypes_request.status);
		}
	}		
}

//选择物品类型设置区和服显示的回调函数
function IsDisplayGameAreaServer()
{
	if(setAreaAndServer_request.readyState == 4)
	{
		if(setAreaAndServer_request.status == 200)
		{
			var str =setAreaAndServer_request.responseText
			if(str !="")
			{
				str = str.split('$')[0];
				if(document.getElementById(go_id).value=='-1')
				{
				   document.getElementById('TdGameArea').style.display="block";
				   document.getElementById('TdGameServers').style.display="block"; 
				}
				else
				{
					if (str.split(',')[0] == "true" && str.split(',')[1] == "true")
					{
						document.getElementById('TdGameArea').style.display="block";
						document.getElementById('TdGameServers').style.display="block";
					}
					else if(str.split(',')[0] == "true" && str.split(',')[1] == "false")
					{
						document.getElementById('TdGameArea').style.display="block";
						document.getElementById('TdGameServers').style.display="none";
					}
					else if(str.split(',')[0] == "false" && str.split(',')[1] == "false")
					{
						document.getElementById('TdGameArea').style.display="none";
						document.getElementById('TdGameServers').style.display="none";
					}
				}
			}  
		}
	}
}

//选择了某个字母标签后的回调函数
function onCharactorDataReadyCallback()
{
	if(charactor_request.readyState ==4)
	{
		if(charactor_request.status==200)
		{
			var str = charactor_request.responseText.split("$")[0];
			if(str != "")
			{			
				//在指它的容器当生成相应标签下的 html
				generateGamesHTML(tempPrefix,str,'divGsContent');
			}
		}
	}
}


//所有游戏公司的回调
function onCompanysDataReadyCallback()
{
	if(compgames_request.readyState ==4)
	{
		if(compgames_request.status==200)
		{
			var str = compgames_request.responseText.split("$")[0];
			if(str != "")
			{
				//在指它的容器当生成相应标签下的 html
				generateCompanysHTML(tempCmpPrefix,str,'divAllCopGamesTag');
			}
		}
	}
}


function onCompanyGamesDataReadyCallback()
{
	if(gamesByCmpName_request.readyState ==4)
	{
		if(gamesByCmpName_request.status==200)
		{
			var str = gamesByCmpName_request.responseText.split("$")[0];
			if(str !="")
			{
				//在指它的容器当生成相应标签下的 html
				generateCmpGamesHTML(tempCmpContentID,str,'divGsContent');
				
			}
		}
	}
}

function GameRelatedListLoading() {
	var ddl = document.getElementById(GameRelatedListGameCallBackCol);
	firstOptionText = ddl.options[0].text;
	ddl.selectedIndex = 0;
	ddl.options[0].value = "-1";
	ddl.options[0].text = "加载中";	
}	

//加载该游戏支持的物品种类
function GameRelatedListLoading2()
{
	//var ddl = document.getElementById(GameRelatedListGameCallBackCol);
	//firstOptionText = ddl.options[0].text;
	//ddl.selectedIndex = 0;
	//ddl.options[0].value = "-1";
	//ddl.options[0].text = "加载中";	
	
	var ddl2 = document.getElementById(GameRelatedListGameCallBackCol2);
	firstOptionText = ddl2.options[0].text;
	ddl2.selectedIndex = 0;
	ddl2.options[0].value = "-1";
	ddl2.options[0].text = "加载中";	
}

//清空DropDownList
function ddlItemDel(ddlName)
{
	//清空DropDownList
	var countnum=document.getElementById(ddlName).options.length;
	for(var i=1;i<countnum;i++)
	{
		//清空DropDownList
		document.getElementById(ddlName).remove(countnum-i);
	}
}