/**
 * @author 汤恒杰 Added 2008.11.03
 * 与搜索条相关功能实现
 * (游戏选择，区服弹出层,及相关功能)
 */
 
 
 //设置所有游戏层
 function settingAllGamesLayer(_id)
 {
	//设置所以游戏层的显示和隐藏 
	setShowAndHide(_id);
	//设置游戏区和服在选择游戏后的显示形式 
	SettingDiv(_id);
	//初始化所有的游戏公司的样式
	initializeAllCopTags();
 }
 
 
 //设置区或者服的层
 function settingGameAreaOrServerLayer(_event,_id,_ddlId)
 {
	//从下拉列表当中获取已经存在的区或者服的所有数据,然后添加到区或者服的层中
	getDropDownListData(_event,_id,_ddlId);
	//设置所以游戏层的显示和隐藏 
	setShowAndHide(_id);
	//设置游戏区和服在选择游戏后的显示形式 
	SettingDiv(_id);
 }

 
 
//选择了某一游戏后执行的 Ajax 联动及相关操作
function sG(obj)
{
	//先去隐藏弹出层
	document.getElementById('divGame').style.display = "none";

	//根据游戏名称去获取游戏的 id
	autoReq = setTimeout("doRequestGameidByGameName('" + obj + "')",300);
}

 
 //在根据游戏名称获取了游戏 id 后执行的联动和相关操作
 function executeReleateOpAfterSelect(gameid,gameName)
 {
	//执行联动
	doGameRelatedList2('GameAreas','ddlBizTypes',ga_id,go_id,gs_id,gameid,tp);
	
	if(document.getElementById(gm_id) == null)
		return;
	else
		document.getElementById(gm_id).value = gameid;
	
	if(gameName)
	{
	   if(gameName.length>=7)
	   {
		  gameName = gameName.substring(0,7);
	   }
	}
	
	document.getElementById(span_id).innerHTML = "&nbsp;"+gameName;

	//Stop delay
	clearTimeout(autoReq);
 }
 
 
//设置所以游戏层的显示和隐藏 
function setShowAndHide(id)
{
	setDirectStyle(id);
	
	//隐藏基它展开的
	switch(id)
	{
		case "divGame":
			setOthersHide('divGameZone','divGameServers');
			break;
		case "divGameZone":
			setOthersHide('divGame','divGameServers');
			break;
		case "divGameServers":
			setOthersHide('divGame','divGameZone');
			break;
		default:
			break;
	}
}
 
 //设置游戏区和服在选择游戏后的显示形式 
 function SettingDiv(id)
{
	document.getElementById(id).style.visibility='visible';
	document.getElementById(id).getElementsByTagName('iframe')[0].style.display='block';

	//初始化游戏区，游戏服的下拉列表框上的 Div 层的文字	
	if(id=='divGame')
	{
			document.getElementById('divSelectGA').innerHTML ='游戏区';
			document.getElementById('divSelectGS').innerHTML = '游戏服务器';
	}
}

//设置某一个Div的显示样式
function setDirectStyle(id)
{
	var objStyle = document.getElementById(id).style.display;
	 
	 if(objStyle=='block')
	 {
		document.getElementById(id).style.display = 'none';
	 }
	 else
	 {
		document.getElementById(id).style.display = 'block';
	 }
}

//初始化所有的游戏公司的样式
function initializeAllCopTags()
{
	var _tagsAllCopGames = document.getElementById("divAllCopGamesTag").getElementsByTagName("li");
	for(i=0; i<_tagsAllCopGames.length; i++)
	{
		_tagsAllCopGames[i].className='seaMenu_off';
		_tagsAllCopGames[i].style.color='#0066cc';
	}
}

//设置基它 Div 的显示样式
function setOthersHide(id1,id2)
{
	document.getElementById(id1).style.display='none';
	document.getElementById(id2).style.display='none';
}


//维护选择游戏栏的游戏名称长度
function settingSpanGameNameLenght()
{
	var objSpan = document.getElementById(span_id);
	if(objSpan)
	{
		var objSpan_value = objSpan.innerHTML;
		
		objSpan.innerHTML = (objSpan_value.length>=7) ? ("&nbsp;" + objSpan_value.substring(0,7)) : ("&nbsp;" + objSpan_value);
	}
}

//从区和服的下拉列表中获取数据生成相应的 html 代码
function getDropDownListData(_event,divID, selectID)
{
	var dropListObj =  document.getElementById(selectID);
	var dropListLength = dropListObj.length;
	var srcElement=_event.srcElement || _event.target;

	var oFragment = document.createDocumentFragment(); 
	var oUl = document.createElement("ul"); 
	if(dropListLength >1)
	{
		//1. 获取数据
		//2. 生成 Html 代码
		//3. 加到 指定的 元素当中
		for(i=1; i<=dropListLength-1; i++)
		{
			var oLi = document.createElement("li");
			oLi.innerText="|";                           
			oLi.textContent="|"
			
			oUl.appendChild(oLi);
			var oA =  document.createElement("a");
			oA.href ="javascript:sAreaOrServer('" + dropListObj[i].text +"','" +divID + "','" + selectID + "','" + srcElement.id + "');";
			oA.title = dropListObj[i].text;
			oA.innerHTML = dropListObj[i].text;
			oLi.appendChild(oA);
			oFragment.appendChild(oLi);
		}
	}
	
	var contentObject;
	if(navigator.userAgent.indexOf("Firefox")>0)
	{
		contentObject = document.getElementById(divID).childNodes[3].childNodes[1].childNodes[1];
	}
	else
	{
		contentObject = document.getElementById(divID).childNodes[1].childNodes[0].childNodes[0];
	}
	contentObject.innerHTML = "";
	contentObject.appendChild(oFragment);
}

//当选择区或者服后的事件响应 
function sAreaOrServer(name, divID, dropID,divCover)
{
	//1. 填充下拉框的值
	//2. 填写上层的 div 的值
	//3. 隐藏显示层
	//4. 触发 onchang 事件
	//5. 当选择了区以后初始化服的显示

	var dropObj = document.getElementById(dropID);
	var count = dropObj.length;
	for(i=0; i< count; i++)
	{
		if(dropObj[i].text ==name )
		{
			dropObj[i].selected = true;

			if(divCover !="divSelectGS")
			{ 
				dropObj.onchange();
				document.getElementById("divSelectGS").innerHTML="游戏服务器";
			} 
			break;  
		}
	}
	document.getElementById(divCover).innerHTML = name;
	document.getElementById(divID).style.display = 'none';
} 


//选择某一个字母标签 A~Z 时相对应的动作
function chooseTag_li(obj)
{
    var ul = obj.parentNode;
    if(ul != null)
    {
        for(var j = 0;j < ul.childNodes.length;j++)
        {
            ul.childNodes[j].className ='list_Off';       
            
           if(deletedSpace(ul.childNodes[j].textContent||ul.childNodes[j].innerText)=="热门游戏"||deletedSpace(ul.childNodes[j].textContent||ul.childNodes[j].innerText)=="免交易费")   //添加 by zhangbp 
           {
             ul.childNodes[j].className ='list2_Off';
           }
           if(deletedSpace(ul.childNodes[j].textContent||ul.childNodes[j].innerText)=="Z")
           {
             ul.childNodes[j].className ='list_Off rightLine';  
           }
           
        }
    }
    
   if(deletedSpace(obj.textContent||obj.innerText)=="热门游戏"||deletedSpace(obj.textContent||obj.innerText)=="免交易费")   //添加 zhangbp
    {
       obj.className='list2_On'
    }
    else
    {
     obj.className  = 'list_On';   
    }            
	
    callAjax(obj,judgeInnerText(obj)); 

    //Add by Tanghj 2008.07.21 
	//初始化所有的游戏公司的样式
	initializeAllCopTags();

	
    if(document.getElementById('divCompanyTag'))  
    {
		document.getElementById('divCompanyTag').style.display='none';
    }
	
	//add by Tanghj 2008.09.26
	var objAllCopGamesTag;
	try
	{
		objAllCopGamesTag = document.getElementById('divGsContent');
		if(objAllCopGamesTag)
		{
			var objCollection = objAllCopGamesTag.getElementsByTagName('div');
			if(objCollection)
			{
				for(i=0; i<objCollection.length; i++)
				{
					var id = objCollection[i].id;
					if(id)
					{
						if(id.substring(0,3)=='div')
						{
							//hide
							document.getElementById(id).style.display='none';
						}
					}
				}
			}
		}
	}
	catch(e)
	{}
}

//根据传入的字母获取相对应的字母标签下面的所有游戏
function callAjax(_this,value)
{
	var objContainer = document.getElementById('divGsContent');
	if(objContainer)
	{
		var divCollections = objContainer.getElementsByTagName('div');
		if(divCollections)
		{
			//initailize all
			for(i=0; i<divCollections.length; i++)
			{
				var _id = divCollections[i].id;
				if(_id)
				{
					if(_id.substring(0,8).toLowerCase()=="gamelist")
					{
						document.getElementById(_id).style.display="none";
					}
				}
			}

			//从 cookie 中去判断是否存在 prefix 对应的游戏, 如果有则从 Cookie 中读取,否则去 server side request
			judgeCookieOrAjaxReqData(value,'divGsContent')
			
			
			//应用已经存在游戏标签下的游戏层的内容
			for(i=0; i<divCollections.length; i++)
			{
				//针对更新后的 游戏内容的 id 是以  gamelistA~gamelistZ 的方式进行处理
				try
				{
					var divID = divCollections[i].id;
					if(divID)
					{
						if(divID.substring(0,8).toLowerCase()=="gamelist")
						{
							if(divID.toLowerCase() == "gamelist" + deletedSpace(value.toLowerCase()) || deletedSpace(value.toLowerCase())=="热门游戏" || deletedSpace(value.toLowerCase())=="免交易费")
							{
								if(deletedSpace(value.toLowerCase())=="热门游戏")
								{
									blockAndAdd("gamelisthot");
									break;
								}
								else if(deletedSpace(value.toLowerCase())=="免交易费")
								{
									blockAndAdd("gamelistfree");
									break;
								}
								else
								{
									try
									{
										blockAndAdd(divID);
									}catch(e){}
									break;
								}
							}
						}
					}
				}
				catch(e){}
			}
		}
	}
}

//设置显示和如果 innerText 为空的情况下显示  "该字母下暂时没有游戏" 的提示
function blockAndAdd(_id)
{
	document.getElementById(_id).style.display = "block";
	//如果内容为空则显示  "该字母下暂时没有游戏"    add by tanghj 08.10.23
	
	if ((navigator.userAgent.indexOf('MSIE') >= 0) || (navigator.userAgent.indexOf('Opera') >=0))
	{
		if(document.getElementById(_id).innerText=="")
		{
			document.getElementById(_id).innerText = "该字母下暂时没有游戏!";
			document.getElementById(_id).style.textAlign="center";
			//document.getElementById(_id).style.background="#f8f6c5";     
		}
	}
	else
	{
		if(document.getElementById(_id).textContent=="")
		{
			document.getElementById(_id).textContent = "该字母下暂时没有游戏!";
			document.getElementById(_id).style.textAlign="center";
			//document.getElementById(_id).style.background="#f8f6c5";    
		}
	}

}

//选择游戏公司，将要响应的一系列的动作
function chooseCopTag(_event)
{	
	_event = window.event || _event;
	var _this = _event.srcElement || _event.target
	//1. 初始化所有 divAllGamesTag 内的样式
	//2. 设置它里面的所有游戏标签为  display='none';
	//3. 初始当前标签外围的游戏公司的标签的样式
	//4. 设置当前的游戏标签的样式
	//5. 设置当前选择公司标签下对应的游戏列表详情

	var tagsForAllGames = document.getElementById("divAllGamesTag").getElementsByTagName("li");
	for(i=0; i<tagsForAllGames.length; i++)
	{
		tagsForAllGames[i].className='list_Off';    
		 if(deletedSpace(tagsForAllGames[i].innerText||tagsForAllGames[i].textContent)=="热门游戏"||deletedSpace(tagsForAllGames[i].innerText||tagsForAllGames[i].textContent)=="免交易费")   //添加 zhangbp 
		 {
			tagsForAllGames[i].className ='list2_Off';
			 
		}
		if(deletedSpace(tagsForAllGames[i].innerText||tagsForAllGames[i].textContent)=="Z")
		{
			tagsForAllGames[i].className ='list_Off rightLine';  
		}
	}
	
	
	//hide all games ' tag
	var oContainer = document.getElementById('divGsContent');
	if(oContainer)
	{
		var dCollections = oContainer.getElementsByTagName('div');
		if(dCollections)
		{
			//initailize all
			for(i=0; i<dCollections.length; i++)
			{
				var _id = dCollections[i].id;
				if(_id)
				{
					if(_id.substring(0,8).toLowerCase()=="gamelist")
					{
						document.getElementById(_id).style.display="none";
					}
				}
			}
		}
	}
	
	var tagsAllCopGames = document.getElementById("divAllCopGamesTag").getElementsByTagName("li");
	for(i=0; i<tagsAllCopGames.length; i++)
	{
		tagsAllCopGames[i].className='seaMenu_off';
		tagsAllCopGames[i].style.color='#0066cc';
	}
	
	_this.className = "seaMenu_on";
	_this.style.color='#ff6600';
	//选择公司标签下对应的游戏列表详情
	applyCompanyGamesReleatedLayer(_this);
}
   
//设置选择公司标签下对应的游戏列表详情
function applyCompanyGamesReleatedLayer(_this)
{
	//1. 初始化所有公司门下的所有游戏列表
	//2. 设置当前公司旗下的游戏详情显示
	
	//通过 Ajax 去调用
	var cmpName = deletedSpace(_this.innerHTML);
	
	loadCompayGames(_this.id,cmpName,'divGsContent');

	
	var id = _this.id;
	var s_id = id.replace("tag","");
	inializeCopDetailLayer("divGsContent");
	
	var f_id = "divCG" + s_id;
	try
	{
		document.getElementById(f_id).style.display = "block";
	}
	catch(e){}
}
   
 //初始化所有公司门下的所有游戏列表
function inializeCopDetailLayer(id)
{
	var gFrame = document.getElementById(id).childNodes;
	var len = gFrame.length;
	
	for(i=0; i<len; i++)
	{
		var _id = gFrame[i].id;
		if(_id)
		{
			if(_id !="")
			{
				if(deletedSpace(_id.substring(0,5)) =="divCG")
				{
					gFrame[i].style.display = "none";
				}
			}
		}
	}
}
   
//将生成的所有的某公司名下的所以游戏增加到指定的 div
function addGamesToCompanyTag(_this)
{
	var gamesContainer = document.getElementById("divGsContent");
	
	//创建游戏元素结点
	var oDiv;
	if(document.getElementById("divCompanyTag"))
	{
		oDiv = document.getElementById("divCompanyTag");
		oDiv.innerHTML="";
		oDiv.style.display="block";
	}
	else
	{
		oDiv = document.createElement("div"); 
		oDiv.id="divCompanyTag";
		oDiv.innerHTML="";
	}
	
	var oUl = document.createElement("ul"); 
	oDiv.appendChild(oUl);
	
	var games =  getCompayGame(_this.id);
	
	//生成游戏内容
	for(i=0; i<games.length; i++)
	{
		var oLi = document.createElement("li");
		
		oUl.appendChild(oLi);
		var oA =  document.createElement("a");
		oA.href ="javascript:sG('"+deletedSpace(games[i])+"')";
		oA.title = deletedSpace(games[i]);
		oA.innerHTML = deletedSpace(games[i]);
		
		oLi.appendChild(oA);
	}
	
	gamesContainer.appendChild(oDiv);
}
   

//设置在其它游戏中如果有热门游戏的话改变字体的颜色
function changeAColor(_event)
{
	var srcElement=_event.srcElement || _event.target;
	try
	{
		if(_event.type=="mouseover")
		{
			srcElement.style.color="#ffffff";
		}
		else
		{
			srcElement.style.color="#ff6600";
		}
	}
	catch(e){}
}


//不根据 cookie 去读取相应的游戏
function selectGameWithNocookies(gameid, obj)
{
	if(document.getElementById(gm_id) == null)
		return;
		
	doGameRelatedList2('GameAreas','ddlBizTypes',ga_id,go_id,gs_id,gameid,tp);
	
	document.getElementById(span_id).innerHTML = "&nbsp;"+obj;
	document.getElementById('divGame').style.display = "none";
}

//加载所关注的游戏内容
function generateAttentionGames(_id)
{
	generateAttentionGamesHTML(_id,g_history);
}


//为了兼容先上线和后上线会出现不同版本上的差异
function getCharactor(sn)
{
	var ret;
	var allCharactors = {
		0: 0,
		1:"A" ,
		2:"B" ,
		3:"C",
		4:"D" ,
		5:"E",
		6:"F",
		7:"G",
		8:"H" ,
		9:"I" ,
		10:"J" ,
		11:"K" ,
		12:"L",
		13:"M" ,
		14:"N" ,
		15:"O" ,
		16:"P" ,
		17:"Q" ,
		18:"R",
		19:"S",
		20:"T",
		21:"U",
		22:"V",
		23:"W",
		24:"X",
		25:"Y",
		26:"Z",
		27:24
	}
	
	try
	{
		ret= allCharactors[sn];
	}
	catch(e){}
	
	return ret;
}

//根据当前的浏览器来判断当前对象是用 ie 下的 innerText 还是 firefox 下的 textContent
function judgeInnerText(obj)
{
    if ((navigator.userAgent.indexOf('MSIE') >= 0) || (navigator.userAgent.indexOf('Opera') >=0))
    {
        return obj.innerText;
    }
	else
    {
        if (navigator.userAgent.indexOf('Firefox') >= 0)
        {
             return obj.textContent;
        
        }else
             return obj.innerHTML;
    }
}

//生成最终的 http://site..
function getRequestUrl(_url)
{
	var finalHttp = "http://" + getSiteHostName(_url);
	
	return finalHttp;
}

//根据 url 取 域名的 host
function getSiteHostName(_url)
{
	var retHost="";
	
	try
	{
		var host = _url.host;
		if(host)
		{
			if(host=="dlc2c.5173.com" || host=="mall.5173.com" || host=="complain.5173.com" || host=="need.5173.com" || 'message.5173.com')
			{
				retHost = "www.5173.com";
			}
			else
			{
				retHost = host;
			}
		}
		else
		{
			retHost ="www.5173.com";
		}
	}
	catch(e)
	{
		retHost ="www.5173.com";
	}
	
	return retHost;
}

//隐藏和显示搜索栏上的文字提示
function setSearchTip(_event)
{
	var srcElement=_event.srcElement || _event.target;
	if(_event.type=="focus" && srcElement.id=="iHelp")
	{
		srcElement.style.display="none";
		document.getElementById(keywords_id).style.display="block";   //keywords_id  全局变量已注册
		document.getElementById(keywords_id).focus();
	}
	else
	{
		if(_event.type=="blur" && srcElement.id !="iHelp" && document.getElementById(keywords_id).value =="")
		{
			srcElement.style.display="none";
			document.getElementById("iHelp").style.display="block";
		}
	}
} 

//设置页面加载时搜索栏上的关键文字
function setOnloadSearchTip()
{
	var keyObj = document.getElementById(keywords_id);
	if(keyObj)
	{
		var keyObjText = deletedSpace(keyObj.value);
		if(keyObjText !="")
		{
			document.getElementById("iHelp").style.display='none';
			keyObj.style.display='block';
		}
	}
}

//验证是否选中的游戏,只有选择了游戏才可以搜索 
function validGameSelected()
{
	var o = document.getElementById(gm_id);
	if(o)
	{
		if(o.value=="-1")
		{
			alert("请选择游戏!");
			return 1; 
		}
		else
		{
			//有可能是恶意攻击，则 value就会是其它的不规则数据.在此验证
			if(IsNumberOrCharactor(o.value)==false)
			{
				o.value="-1"
				alert("请选择游戏!");
				return 1; 
			}
		}
	}
}


//检查区和服，是否被工具修改进行恶意攻击
function checkSearchCond()
{
	var oArea = document.getElementById(ga_id);
	var oServer = document.getElementById(gs_id);
	
	if(IsNumberOrCharactor(oArea.value)==false)
	{
		oArea.value = "-1";
	}
	if(IsNumberOrCharactor(oServer.value) == false)
	{
		oServer.value = "-1";
	}
}

//记住每次搜索后的区和服的上次搜索状态
function keepZoneAndServerState()
{
	var objZone = document.getElementById(ga_id);
	var objServer = document.getElementById(gs_id);
	
	if(objZone)
	{
		 var valueZone = objZone.options[objZone.selectedIndex].text;
		 if(valueZone) 
		 {
			 if(valueZone !="")
			 {
				 document.getElementById("divSelectGA").innerText = valueZone;
			 }
			 else
			 {
				document.getElementById("divSelectGA").innerText = "全区";
			 }
		 } 
		 else
		 {
				document.getElementById("divSelectGA").innerText = "全区";
		 }  
		 
	}
	if(objServer)
	{
		var valueServer = objServer.options[objServer.selectedIndex].text;
		if(valueServer)
		{
			if(valueServer !="")
			{
				 document.getElementById("divSelectGS").innerText = valueServer;
			} 
			else
			{
				document.getElementById("divSelectGS").innerText = "全服"; 
			}  
		}
		else
		{
			document.getElementById("divSelectGS").innerText = "全服";
		}
		
	}
} 
/********************************************我关注的游戏的相关联的 JS*************************************************/ 
function change(ID)
{
	if(GetCookie("numMax") == null)
		return;
	var maxNO = GetCookie("numMax");
	
	for(i=ID;i<=maxNO-1;i++)
	{
		SetCookie("cok" + (i),GetCookie("cok"+(i+1)));
	}
	DelCookie("cok"+maxNO);
	
	return maxNO;
}
		
function GoToCook(cokIma,hrefStr)
{
	var ID = 1;
	var Cok = 'cok';
	
	while(GetCookie(Cok + ID) != null)
	{	
		if(GetCookie(Cok + ID) == cokIma)
		{	
			ID = change(ID);
			break;
		}
		ID++;
	}
	var val = cokIma;
	
	SetCookie(Cok + ID,val);
	
	SetCookie("numMax",ID);
	location.href = hrefStr;
}

/********************************************与搜索关键字相关联的 JS*************************************************/ 
function settingSearchTipLayer(_event)
{
	var srcElement=_event.srcElement || _event.target;
	if(window.location==window.parent.location)
	{
		if(_event.type=="mouseover")
		{
			document.getElementById("divSearchTs").style.display="block";
		}
		else
		{
			if(srcElement.id=="divSearchTs")
			{
				if(_event.offsetX>=176 && _event.offsetX <=210 && _event.offsetY>=63 && _event.offsetY<=90)
				{
					document.getElementById("divSearchTs").style.display="block";
				}
				else
				{
					document.getElementById("divSearchTs").style.display="none";
				}
			}
		}
	}
	else
	{
		document.getElementById("divSearchTs").style.display="none";
	}
}

/********************************************与主站头相关联的 JS*************************************************/
//添加收藏夹的功能
function addBookmark(title,url) 
{
	if (window.sidebar) 
	{ 
		window.sidebar.addPanel(title, url,""); 
	} 
	else if( document.all ) 
	{
		window.external.AddFavorite( url, title);
	} 
	else if( window.opera && window.print ) 
	{
		return true;
	}
}

//设为主页的功能
function SetHome(obj,vrl)
{
	try
	{
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage(vrl);
	}
	catch(e){
		if(window.netscape) 
		{
			try 
			{
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
			} 
			catch (e) 
			{ 
				alert("此操作被浏览器拒绝！\n请在浏览器地址栏输入“about:config”并回车\n然后将[signed.applets.codebase_principal_support]设置为'true'"); 
			}
			var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
			prefs.setCharPref('browser.startup.homepage',vrl);
		}
	}
}