String.prototype.trim = function(){
		return this.replace(/(^\s*)|(\s*$)/g, "");
	}

function $(objid){
	return document.getElementById(objid);
}

function getLogonInfoFromCookie(){
	var curUser='';
	var allcookie = document.cookie.split(';');
	var islogon = false;
	for(var i=0;i<allcookie.length;i++){
		var cookieI=allcookie[i].split('=');
		if(cookieI.length>1&&cookieI[0].trim()=='societyguestname'){
			curUser=allcookie[i].split('=')[1];
		}
	}
	return unescape(curUser);
}

function getUidInfoFromCookie(){
	var curUid='';
	var allcookie = document.cookie.split(';');
	var islogon = false;
	for(var i=0;i<allcookie.length;i++){
		var cookieI=allcookie[i].split('=');
		if(cookieI.length>1&&cookieI[0].trim()=='societyguestid'){
			curUid=allcookie[i].split('=')[1];
		}
	}
	return curUid;
}

function getSocietyGuesterFromCookie(){
	var curUser='';
	var allcookie = document.cookie.split(';');
	for(var i=0;i<allcookie.length;i++){
		var cookieI=allcookie[i].split('=');
		if(cookieI.length>1&&cookieI[0].trim()=='societyguester'){
			curUser=allcookie[i].split('=')[1];
		}
	}
	return curUser;
}
function getF(){
	var defaultValue='700030001';
	var winurl = unescape(window.location.href);
	var urlArr = winurl.split('?');	
	if(urlArr.length<2)return defaultValue;
	var wlp = winurl.split('?')[1];	
	var wincs = wlp.split('&');
	for(var i=0;i<wincs.length;i++){
		var tur = wincs[i].split('=');
		if(tur.length<2)continue;
		if(tur[0]=='f')return tur[1];
	}
	return defaultValue;
}
function showerr() {

alert ('This function will come soon !');

}

function showLoginForm(){
	var societyguester = getSocietyGuesterFromCookie();
	var loginTd=document.getElementById('loginTd');
	var tsuserlist = getServerListFromCookie();
	var content='';
	var userid=getUidInfoFromCookie();
	if(societyguester == ''||userid=='' || tsuserlist==undefined){
		content+='<div class="logintit"></div><div class="loginbox"><form action="/login.php" method="post" name="loginForm" id="loginForm" onsubmit="subCheck();return false;"><table width="200" style="margin-top:20px" border="0" align="center" cellpadding="3" cellspacing="0"><tr> <td align="right">遊戲帳號<br /></td><td><input type="text" id="u" name="u" class="ipt1" /></td></tr><tr> <td align="right">遊戲密碼</td><td><input type="password" id="p" name="p"  class="ipt1" /></td></tr><tr><td height="50" colspan="2" align="center"><input type="image" name="imageField" id="imageField" src="http://gimg.hithere.com/htw/img/login.gif" /> <a href="http://gc.imop.tw/common/query"><img src="http://gimg.hithere.com/htw/img/getps.gif" width="87" height="38" border="0" align="absmiddle" /></a></td></tr><tr><td colspan="2" align="center"><img src="http://gimg.hithere.com/htw/tc/login_1.jpg" width="173" height="49" border="0" onclick="Getlist()"/></td></tr></table></div></div><div class="regbox1"><a href="http://www.imop.tw/reg.html?gid=twh&f=59500010001" class="regbut1"></a></div>';
		//content+='<div class="logintit"></div><div class="loginbox" >';
		//content+='<form action="/login.php" method="post" name="loginForm" id="loginForm" onsubmit="subCheck();return false;">';	
		//content+='<table width="200" style="margin-top:15px" border="0" align="center" cellpadding="3" cellspacing="0">';
		//content+='<tr><td height="35" align="right">遊戲帳號<br /></td><td><input type="text" id="u" name="u" class="ipt1" /></td></tr>';
		//content+='<tr><td height="35" align="right">遊戲密碼</td><td><input ttype="password" id="p" name="p"  class="ipt1" /></td></tr>';
		//content+='<tr><td height="50" colspan="2" align="center"><input type="image" name="imageField" id="imageField" src="http://gimg.hithere.com/htw/img/login.gif" /> <a href="http://www.imop.tw/passport/modpassword.php"><img src="http://gimg.hithere.com/htw/img/getps.gif" width="87" height="38" border="0" align="absmiddle" /></a></td></tr></table>';
		//content+='</div></div><div class="regbox"><a href="http://in.h.imop.tw/index.html?f=59500010001" class="regbut"></a><div class="f_l" style="margin-left:55px; margin-top:5px;"><img src="http://gimg.hithere.com/htw/img/login_1.jpg" border="0" usemap="#Map" /></div></div>';
		content+='</form>';

	}else{
		var cookieUserArr = getServerByCookie();
		var url = '';
		if(cookieUserArr != null && cookieUserArr[0] == userid){
			url = cookieUserArr[1];
		}
		var loginContents = getServerContents(url,tsuserlist);
		
		content+='<div class="logintit"></div><div class="loginedbox"><div class="loginedinfo">歡迎您，'+getLogonInfoFromCookie()+'<br />您在以下伺服器登過</div><div class="loged_serbox">'+loginContents+'</div>';
		content+='	<table width="200" style="margin-top:5px" border="0" align="center" cellpadding="3" cellspacing="0"><tr><td height="70" align="center"><a href="http://gc.imop.tw/user/changePassword"><img src="http://gimg.hithere.com/htw/img/adminbut.png"  border="0" align="absmiddle" /></a><a  onclick="javascript:clearCookies();"   href="#"><img src="http://gimg.hithere.com/htw/img/logoutbut.png"  border="0" align="absmiddle" /></a></td></tr></table></div>';

	}
		loginTd.innerHTML=content;
}

function getServerListFromCookie(){
        var serverList='';
        var allcookie = document.cookie.split(';');
        for(var i=0;i<allcookie.length;i++){
                var cookieI=allcookie[i].split('=');
                if(cookieI.length>1&&cookieI[0].trim()=='hithereuserserverlist'){
                        serverList=allcookie[i].split('=')[1];
                }       
        }                       
        return serverList.split('%2C');
}

function getServerByCookie(){
	var cookieUserArr = null;
	var allcookie = document.cookie.split(';');
	for(var i=0;i<allcookie.length;i++){
		var cookieI=allcookie[i].split('=');
		if(cookieI.length>1&&cookieI[0].trim()=='hithereuserserver'){
			var hithereuserserver = unescape(allcookie[i].split('=')[1]);
			cookieUserArr = hithereuserserver.split(",");
			if(cookieUserArr.length == 2)return cookieUserArr;
		}
	}
	return cookieUserArr;
}
function getServersByUrl(serverlist,url){
	for(var i=0;i<serverlist.length;i++){
		if(serverlist[i][4]==url){
			return serverlist[i];
		}
	}
	return null;
}
function getLoginServerList(userServerList,tsServers,url){
	if(userServerList == undefined || tsServers == undefined)return null;
	var servers=[];
	var n=0;
	for(var i=0;i<userServerList.length;i++){
		for(var j = 0;j < tsServers.length;j++){
			if(tsServers[j][2] == userServerList[i]){
				servers[n] = tsServers[j];
				n++;
			}
		}
	}
	if(url!=''){
		var tag = false;
		for(var m = 0;m < servers.length;m++){
			if(servers[m][4]==url){
				tag=true;
				break;
			}
		}
		var cookieServer = getServersByUrl(tsServers,url);
		if(cookieServer != null && !tag){
			servers[servers.length] = cookieServer;
		}
	}
	return servers;
}

function substr(str, len){
	if(!str || !len) { 
		return ''; 
	}
	var a = 0;
	var i = 0;
	var temp = '';
	for (i=0;i<str.length;i++){
		if (str.charCodeAt(i)>255){
			a+=2;
		}else{
			a++;
		}
		if(a > len) { 
			return temp; 
		}
		temp += str.charAt(i);
	}
	return str;
} 
function getDefaultServer(HithereServers){
	var servers=[];
	for(var i = 0;i< HithereServers.length && i < 4;i++){
		servers[i]=HithereServers[i];
	}
	return servers;
}
function getServerContents(url,tsuserlist){
	var serverList = getLoginServerList(tsuserlist,HithereServers,url);
	if(serverList.length<1){
		serverList = getDefaultServer(HithereServers);
	}
	var serverContents='';
	for(var i = 0;i < serverList.length;i ++){


		serverContents += '<div class="serboxin"><div class="sername"><a href="http://'+serverList[i][4]+'" target="_blank">'+serverList[i][3]+'</a></div><div class="f_r"><a href="http://'+serverList[i][4]+'" target="_blank"><img src="http://gimg.hithere.com/htw/img/goinbut.gif" width="59" height="21" border="0" /></a></div></div>';

	}
	return serverContents;
}

function delCookie(name,c_domain){
		expires=new Date();
		expires.setTime(expires.getTime()-1);
		document.cookie=name+"=; expires="+expires.toGMTString()+"; maxage=0 ; path=/ ; domain="+c_domain;
	}

	function clearCookies(){
	var noClearCookies=["societyguestname","societyguester","societyguestid","t"];
	var noClearCookiesSg=["__utma","__utmb","__utmz","__utmc","xyyo_dna","xyyo_cookies","JSESSIONID"];
	var temp=document.cookie.split(";");   
	var loop3;   
	var ts;   
	for (loop3=0;loop3<temp.length;loop3++){   
		ts=temp[loop3].split("=")[0];
		for(var i=0;i<noClearCookies.length;i++){
			if(ts.indexOf(noClearCookies[i])!=-1){
				delCookie(ts,'.imop.tw');
			}
		}
		for(var i=0;i<noClearCookiesSg.length;i++){
			if(ts.indexOf(noClearCookiesSg[i])!=-1){
				delCookie(ts,'.imop.tw');
			}
		}
	}
        showLoginForm();
}

function subCheck(){
	var u=$("u");
	var p=$("p");
	var showInfo = $("showInfo");
	if(u.value==''){
		alert("Cannot input null!");
		u.focus();
		return;
	}
	if(p.value==''){
		alert("Cannot input null!");
		p.focus();
		return;
	}
	login();
}
function initxmlhttp() {
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest != "undefined") {
		try {
			xmlhttp = new XMLHttpRequest();
		}catch (e) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		}catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}

function login(){
	var loginForm=document.getElementById("loginForm");
	var u = document.getElementById("u");
	var p = document.getElementById("p");
	var sBody='u='+u.value+'&p='+p.value
	var oXmlHttp=initxmlhttp();
	oXmlHttp.open("POST",loginForm.action,true);
	oXmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	oXmlHttp.setRequestHeader("Cache-Control", "no-cache");
	oXmlHttp.setRequestHeader("PRAGMA", "no-cache");
	oXmlHttp.setRequestHeader("Expires", "0");
	oXmlHttp.onreadystatechange=function(){
		if(oXmlHttp.readyState==4 && oXmlHttp.status == 200){
			var state=oXmlHttp.responseText;
			if(state<=0){
				if(state==-1 || state==-2){	
					alert('Wrong ID or wrong password!');
				}else if(state==-5){
					alert('Wrong ID or wrong password!');
				}else{
					alert('Login failed,Please check your input.');
				} 
			}else{
				showLoginForm();
                           			}
		}else{
			//showInfo.innerHTML="login...";
		}
	};
	oXmlHttp.send(sBody);
}




function changeServer(id){
document.getElementById('ServerList').innerHTML=getServerList(id);
}


