var $=function( elem )
{
	return document.getElementById(elem);
}

function ajaxLoad( url, callback, param1, param2 )
{
	var ajaxobj=false;
	if(window.XMLHttpRequest)
	{
		ajaxobj=new XMLHttpRequest();
		if(ajaxobj.overrideMimeType){
			ajaxobj.overrideMimeType('text/xml');
		}
	}else if(window.ActiveXObject){
		try{
			ajaxobj=new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				ajaxobj=new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){}
		}
	}
	if(!ajaxobj){
		alert('Can not create XMLHTTP-instance');
		return false;
	}
	ajaxobj.onreadystatechange=function(){
		handleAjaxResult(ajaxobj, callback, param1, param2);
	};
	ajaxobj.open('GET',url,true);
	ajaxobj.setRequestHeader("If-Modified-Since","0");
	ajaxobj.send(null);
	//show( "loading", true );
}

function ajaxPost( url, params, callback, param1, param2 )
{
	var ajaxobj=false;
	if(window.XMLHttpRequest)
	{
		ajaxobj=new XMLHttpRequest();
		if(ajaxobj.overrideMimeType){
			ajaxobj.overrideMimeType('text/xml');
		}
	}else if(window.ActiveXObject){
		try{
			ajaxobj=new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				ajaxobj=new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){}
		}
	}
	if(!ajaxobj){
		alert('Can not create XMLHTTP-instance');
		return false;
	}
	ajaxobj.onreadystatechange=function(){
		handleAjaxResult(ajaxobj, callback, param1, param2);
	};
	ajaxobj.open('POST',url,true);
	ajaxobj.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
	ajaxobj.setRequestHeader("If-Modified-Since","0");
	ajaxobj.send(params);
	//show( "loading", true );
}

function handleAjaxResult( ajaxobj, callback, param1, param2 )
{
	if(ajaxobj.readyState==4){
		if(ajaxobj.status==200){
			var txt = ajaxobj.responseText;
			var reg = /^::(.*)::(.*)$/
			var result = reg.exec( txt )
			if( result != null )
			{
				handleMsg( result[1], result[2] );
			}
			else
			{
				callback(  txt, param1, param2 );
			}
			//show( "loading", false );
		}else{
		}
	}
}

function handleMsg( msg, param )
{
	if( msg == "msg" )
	{
		MessageBox( param );
	}
	else if( msg == "relogin" )
	{
		var link = document.createElement("A");
		link.href = "login.jsp";
		document.body.insertBefore(link);
		link.click();
	}
	else if( msg == "quest" )
	{
		ajaxLoad("quest.jsp?questid="+param, showQuestWindow )
	}
	else if( msg == "redirect" )
	{
		location.replace( param )
	}
}

// 以下为处理函数
function showRWindowCont( txt, param1, param2 )
{

	showRWindow();
	$("rwindowcontent").innerHTML=txt;
	$("rwindowtext").innerHTML=param1

}

function endRegister(  )
{
	//showLogin();
	//MessageBox( "注册成功" );
	$('layermsg').style.visibility = 'hidden'
	showRegisterOk();
}

function openNews( txt, param1, param2 )
{
	var reg = /^title=(.*)time=(.*)content=(.*)$/
	var result = reg.exec( txt )
	if( result != null )
	{
		$("newstitle").innerHTML = result[1]
		$("newstime").innerHTML = result[2]
		$("newscontent").innerHTML = result[3]
	}


}

function openGuide( txt, param1, param2 )
{
	$("newstitle").innerHTML = "游戏教程"
	$("newstime").innerHTML = ""
	$("newscontent").innerHTML = txt

}


function popupWindow( id, x1, y1, w1, h1, x2, y2, w2, h2, ms )
{
	$(id).style.left = x1+"px";
	$(id).style.top = y1+"px";
	$(id).style.width = w1+"px";
	$(id).style.height = h1+"px";
	$(id).style.visibility = "visible";
	doPopupWindow( id, x1, y1, w1, h1, x2, y2, w2, h2, 0, ms )
}

function doPopupWindow( id, x1, y1, w1, h1, x2, y2, w2, h2, cf, ms )
{
	if( cf >= ms )
	{
		$(id).style.left = x2+"px";
		$(id).style.top = y2+"px";
		$(id).style.width = w2+"px";
		$(id).style.height = h2+"px";
		return;
	}
	$(id).style.left=Math.floor(x1-(x1-x2)*cf/ms)+"px"
	$(id).style.top=Math.floor(y1-(y1-y2)*cf/ms)+"px"
	$(id).style.width=Math.floor(w1-(w1-w2)*cf/ms)+"px"
	$(id).style.height=Math.floor(h1-(h1-h2)*cf/ms)+"px"

	setTimeout("doPopupWindow( '"+id+"', "+x1+", "+y1+", "+w1+", "+h1+", "+x2+", "+y2+", "+w2+", "+h2+", "+(cf+1)+", "+ms+" )", 10 )
}

var vsstatus = 0 // 0 login 1 register 2 news 3 registerok

function cleanWindow( tovsstatus )
{
	if( vsstatus == tovsstatus ) return;
	if( vsstatus == 0 )$('layerlogin').style.visibility = "hidden";
	if( vsstatus == 1 )$('layerregister').style.visibility = "hidden";
	if( vsstatus == 2 )$('layernews').style.visibility = "hidden";
	if( vsstatus == 3 )$('layerregisterok').style.visibility = "hidden";
}

function showRegister()
{
	cleanWindow( 1 )
	popupWindow('layerregister',450,150,0,0,350,210,300,200,10)
	vsstatus = 1
}

function showRegisterOk()
{
	cleanWindow( 3 )
	popupWindow('layerregisterok',450,150,0,0,350,210,300,200,10)
	vsstatus = 3
}

function showLogin()
{
	cleanWindow( 0 )
	popupWindow('layerlogin',450,150,0,0,350,210,300,200,10)
	vsstatus = 0
}

function showNews()
{
	cleanWindow( 2 )
	popupWindow('layernews',450,150,0,0,300,25,400,500,10)
	vsstatus = 2
}

function doLogin()
{
	ajaxPost( "login", "account="+$('loginaccount').value+"&password="+$('loginpassword').value+"&checkcode="+$('logincheckcode').value )
}

function doRegister()
{
	ajaxPost( "register", "account="+$('registeraccount').value+"&password="+$('registerpassword').value+"&email="+$('registermail').value, endRegister )
	MessageBox2( "正在注册中...请稍候" );
}

function news( newsId )
{
	if( vsstatus != 2 )showNews();
	ajaxLoad( "news.jsp?newsid="+newsId, openNews );
}

function MessageBox( msg )
{
	$('layermsg').innerHTML = msg;
	popupWindow('layermsg',500,150,0,20,350,150,300,20,10)
	setTimeout( "$('layermsg').style.visibility = 'hidden'", 2000 )
	$('imgcc').src='checkcode?t='+Math.random();
}

function MessageBox2( msg )
{
	$('layermsg').innerHTML = msg;
	popupWindow('layermsg',500,150,0,20,350,150,300,20,10)
}

function guide( gid )
{
	if( vsstatus != 2 )showNews();
	ajaxLoad( "guide.jsp?gid="+gid, openGuide );
}

var isXZJsLoad=true;