﻿var rFun = function showMore(id)
{//相关 热门 最近 游戏切换
	return function()
	{
		var oLi = document.getElementById("moregameTitle").getElementsByTagName("li");
		for(var i = 0;i < oLi.length;i++) oLi[i].className = (i == id) ? "selTitle" : "noselTitle";
		var gameBox = document.getElementById("moregame");
		var cate = document.getElementById("cate").value;
		if(id == 0 || temp[id] != "")
		{
			gameBox.innerHTML = temp[id];
			return;
		}
		var xmlhttp = createXMLHTTP();
		xmlhttp.open("GET","/GetGame/" + id + "_" + cate + ".htm",true);
		xmlhttp.onreadystatechange = function()
		{
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
			{
				gameBox.innerHTML = xmlhttp.responseText;
				temp[id] = gameBox.innerHTML;
			}
		}
		xmlhttp.send(null);
	}
}

function bindEvent()
{//绑定(相关 热门 最近)游戏切换的事件
	var oLi = document.getElementById("moregameTitle").getElementsByTagName("li");
	for(var i = 0;i < oLi.length;i++)
	{
		oLi[i].attachEvent && oLi[i].attachEvent("onclick",rFun(i)) || oLi[i].addEventListener && oLi[i].addEventListener("click",rFun(i),false);
		oLi[i].className = (i == 0) ? "selTitle" : "noselTitle";
	}
	temp[0] = document.getElementById("moregame").innerHTML;
}

function keywordCheck(oForm)
{//检查过滤关键词
	var key = oForm.k.value;
	var order = (oForm.o.value == "" || Number(oForm.o.value) > 4 || Number(oForm.o.value) < 1) ? 1 : oForm.o.value;
	var re = /[$\(\)\*\+-\.\\\[\]\?\^\{\|\}~`!@#%&_=<>\/\,]/igm;
	key = key.replace(re,"");
	if(key == "")
	{
		oForm.k.value = "";
		oForm.k.focus();
		alert("请输入关键词！");
		return false;
	}
	else
	{
		oForm.action = "/Search/" + encodeURI(key) + "_" + order + "_1.htm";
		return true;
	}
}

function addFavorite(sUrl,sName)
{//加入收藏夹 兼容IE，FF
	if(navigator.appName.indexOf("Microsoft") != -1) window.external.addFavorite(sUrl,sName);
	else
	{
		if(window.sidebar) window.sidebar.addPanel(sName,sUrl,"");
		else alert("您所使用的浏览器暂不支持此功能，建议使用Ctrl+D进行添加.");
	}
}


function createXMLHTTP()
{//FF
    var A = null; 
    try
	{ 
        A = new ActiveXObject("Msxml2.XMLHTTP"); 
    } 
    catch(e)
	{ 
        try
		{ 
            A = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(oc)
		{ 
            A = null; 
        } 
    } 
    if (!A && typeof XMLHttpRequest != "undefined")
	{ 
        A = new XMLHttpRequest(); 
    } 
     return A; 
}

function getCookie(cookie_name)
{//获取指定COOKIES的值
	var allcookies = document.cookie;
	var cookie_pos = allcookies.indexOf(cookie_name);
	// 如果找到了索引，就代表cookie存在，反之，就说明不存在。
	if (cookie_pos != -1)
	{// 把cookie_pos放在值的开始，只要给值加1即可。
		cookie_pos += cookie_name.length;
		var cookie_end = allcookies.indexOf(";", cookie_pos);
		if (cookie_end == -1) cookie_end = allcookies.length;
		var value = unescape(allcookies.substring(cookie_pos, cookie_end).replace("=",""));
	}
	return value;
}

function setCookie(name,value,expires,path,domain,secure)
{//设置COOKIES的值
	var expDays = expires * 24 * 60 * 60 * 1000;
	var expDate = new Date();
	expDate.setTime(expDate.getTime() + expDays);
	var expString = ((expires == null) ? "" : (";expires=" + expDate.toGMTString()));
	var pathString = ((path == null) ? "" : (";path=" + path));
	var domainString = ((domain == null) ? "" : (";domain=" + domain));
	var secureString = ((secure == true) ? ";secure" : "");
	document.cookie = name + "=" + escape(value) + expString + pathString + domainString + secureString;
}

function chgAlpha(id,v,t)
{//渐变显示
	if(v > 100) return;
	var obj = document.getElementById(id);
	obj.style.filter = "alpha(opacity=" + v + ")";
	obj.style.opacity = String(v / 100);
	v = v + 10;
	setTimeout("chgAlpha(\"" + id + "\"," + v + "," + t + ")",t);
}

function keywordHighLight(k)
{//高亮关键词
	if(k == "") return;
	//document.getElementById("k").value = k;
	var txtArr = document.getElementById("result").getElementsByTagName("A");
	var re = new RegExp("([" + k + "]+)","igm");
	for(var i = 0;i < txtArr.length;i++) 
	{
		if(txtArr[i].innerHTML.toUpperCase().indexOf("<IMG") == -1) txtArr[i].innerHTML = txtArr[i].innerHTML.replace(re,"<font color=red>$1</font>");
	}
}

/*Image Tips Begin*/
try
{
	var h;
	var d = document.body || document.documentElement;
	var s = getCookie("userSelSvr");
	s = s || "";
	if(s != "") s = "http://" + s; 
	d.attachEvent && d.attachEvent("onmousemove",function(event){showTextLinkImg(event)}) || d.addEventListener && d.addEventListener("mousemove",function(event){showTextLinkImg(event)},false);
}
catch(e){}

function showTextLinkImg(e)
{
	try
	{
		e = e || window.event;
		var elem = (e.target) ? e.target : e.srcElement;
		if(elem.tagName == "A" && elem.getAttribute("img"))
		{
			var imgBox = document.getElementById("imgBox");
			var cWidth = document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth; 
			var cHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
			var sLeft = document.body.scrollLeft + document.documentElement.scrollLeft;
			var sTop = document.body.scrollTop + document.documentElement.scrollTop;
			var iLeft = (e.clientX > cWidth - 135) ? (e.clientX + sLeft - 135) : (e.clientX + sLeft + 15);
			var iTop = (e.clientY > cHeight - 135) ? (e.clientY + sTop - 135) : (e.clientY + sTop + 15);
			imgBox.style.left = iLeft + "px";
			imgBox.style.top = iTop + "px"; 
			h = elem.href;
			if(imgBox.style.display == "none")
			{
				imgBox.innerHTML = "<div><img src=\"" + s + elem.getAttribute("img") + "\"><h1>" + elem.innerHTML + "</h1></div>";
				setTimeout("if(h == \"" + elem.href + "\") document.getElementById(\"imgBox\").style.display = \"block\";",200);
			}
		}
		else hiddenTextLinkImg()
	}
	catch(e){}
}

function hiddenTextLinkImg()
{
	try
	{
		h = "";
		document.getElementById("imgBox").style.display = "none";
	}
	catch(e){}
}
/*Image Tips End*/

/*AutoComplete Begin*/

var k,b,tempWords,stopWords;
var moveOnLi;//鼠标是否在<LI>标签上
var changeByJs;
function initSearch()
{//初始化 绑定事件
	k = document.getElementById("k");
	b = document.getElementById("autoCompBox");
	if("\v" == "v")//IE
	{
		k.attachEvent("onblur",function(event){autoComp(event)});
		k.attachEvent("onclick",function(event){autoComp(event)});
		k.attachEvent("onpropertychange",function(event){autoComp(event)});
		k.attachEvent("onkeydown",function(event){selectArrow(event)});
		b.attachEvent("onmousemove",function(event){selectMove(event)});
		b.attachEvent("onmouseout",function(event){selectMove(event)});
		window.attachEvent("onresize",setBox);
	}
	else
	{
		k.addEventListener("blur",function(event){autoComp(event)},false);
		k.addEventListener("click",function(event){autoComp(event)},false);
		k.addEventListener("input",function(event){autoComp(event)},false);
		k.addEventListener("keydown",function(event){selectArrow(event)},false);
		b.addEventListener("mousemove",function(event){selectMove(event)},false);
		b.addEventListener("mouseout",function(event){selectMove(event)},false);
		window.addEventListener("resize",setBox,false);
	}
	moveOnLi = true;
	changeByJs = false;
}

function setBox()
{//设置下拉框的大小和位置
	var p = getAbsXY(k);
	b.style.width = "329px";
	b.style.left = p[0] + "px";
	b.style.top = p[1] + 28 + "px";
}

function selectMove(e)
{//鼠标在列表上移动
	e = e || window.event;
	var elem = (e.target) ? e.target : e.srcElement;
	moveOnLi = elem.tagName == "LI" || elem.tagName == "SPAN" || elem.tagName == "B" || e.type == "mouseout";
	if(!moveOnLi) k.focus();//点击其他位置后输入框可能失去焦点 需重新成为焦点
	switch(elem.tagName)
	{
		case "B" :
			elem = elem.parentNode.parentNode;
			break;
		case "SPAN" :
		case "A" :
			elem = elem.parentNode;
			break;
	}
	var lis = b.getElementsByTagName("LI");
	for(var i = 0;i < lis.length;i++) lis[i].id = (lis[i] == elem && e.type == "mousemove") ? "autoCompSelected" : ""
}

function selectArrow(e)
{//按向上向下键
	if(b.style.display == "none") return;
	var e = e || window.event;
	if(e.keyCode == 38 || e.keyCode == 40)
	{
		var lis = b.getElementsByTagName("LI");
		if(!lis.length > 0) return;
		var s = (e.keyCode == 38) ? lis.length - 1 : 0;
		for(var i = 0;i < lis.length;i++)
		{
			if(lis[i].id == "autoCompSelected")
			{
				s = i + (e.keyCode == 38 ? -1 : 1);
				if(s < 0) s = lis.length - 1
				if(s >= lis.length) s = 0
			}
			lis[i].id = "";
		}
		lis[s].id = "autoCompSelected";
		changeByJs = true;
		document.getElementById("k").value = lis[s].title;
		changeByJs = false;
	}
}

function autoComp(e)
{//自动提示
	var e = e || window.event;
	if(e.keyCode >= 37 && e.keyCode <= 40) return;
	var filterRe = /[$\(\)\*\+\.\\\[\]\?\^\{\|\}~`!@#%&_= <>\/\,]+/igm;
	var keyWords = k.value.replace(filterRe,"");
	if(keyWords == "") {b.style.display = "none";return;}
	switch(e.type)
	{
		case "click" :
		case "propertychange" :
		case "input" :
			if(changeByJs && e.type == "propertychange") return;
			if(keyWords.indexOf(stopWords) >= 0){b.style.display = "none";return;}//包含已知无结果的关键词
			if(tempWords == keyWords){b.style.display = "block";return;}//关键词无变化
			var xmlhttp = createXMLHTTP();
			xmlhttp.open("GET","/AutoComplete/" + encodeURI(keyWords) + ".htm",true);
			xmlhttp.onreadystatechange = function()
			{
				if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
				{
					var autoCompWords =  xmlhttp.responseText;
					if(autoCompWords != "null")
					{
						if(keyWords == k.value.replace(filterRe,""))//返回结果的过程中关键词没有改变
						{
							setBox();
							b.innerHTML = autoCompWords + "<div><a onclick=\"document.getElementById('submitBut').click();\">更多结果&gt;&gt;</a>&nbsp;</div>";
							var spans = b.getElementsByTagName("SPAN");
							var re = new RegExp("(" + keyWords + ")","igm");
							for(var i=0;i<spans.length;i++) spans[i].innerHTML = spans[i].innerHTML.replace(re,"<b>$1</b>");
							b.style.display = "block";
						}
					}
					else
					{
						b.style.display = "none";
						stopWords = keyWords;//记录没有结果的关键词
					}
				}
			}
			xmlhttp.send(null);
			tempWords = keyWords;
			break
			
		case "blur" :
			if(moveOnLi)
			{
				if(document.getElementById("autoCompSelected"))
				{
					changeByJs = true;
					k.value = document.getElementById("autoCompSelected").title;
					changeByJs = false;
				}
				b.style.display = "none";
			}
			break;
	}
}

function getAbsXY(o)
{
	var eT = 0;
	var eL = 0;
	while(o)
	{
		eT += o.offsetTop;  //距窗口顶部距离
		eL += o.offsetLeft;  //距窗口左边距离
		o = o.offsetParent;
	}
	return [eL,eT];
}   

/*AutoComplete End*/
