function killErrors(){return true;}
window.onerror=killErrors;
    function $(id){
	   return document.getElementById(id);
	 }
	 var blnDragging;
var vminLimit= 5; 
var vmaxLimit= 100; 
var zoomstate=$("zoomstate");
zoomstate.style.width="50px";

var playfjd;
var blnDragging=false;
var mPosX;
var mousepositionX;
function readyDragV(){
	
 if(document.layers){return false;}
 var evt=getEvent();
 mPosX=evt.clientX;
 playfjd=zoomstate.style.width;
 blnDragging=true;
 document.onmousemove=volTrackingV;
} 
    var startGameWidth = 32;
    var startGameHeight = 1024;
    function zoomObject(pos){
		if(_gamemode==1)
		{
        var newWidth = Math.ceil( pos*startGameWidth/100 );
        var newHeight = Math.ceil( pos*startGameHeight/100 );
		newWidth=Math.ceil(pos*startGameWidth/10 * _gamewidth)
		newHeight=Math.ceil(pos*startGameWidth/10 * _gameheight)
        $("swfobj").style.width= newWidth+"px";
		$("swfobj").style.height= newHeight+"px";
		$("play").style.width= newWidth+"px";
		$("play").style.height= newHeight+"px";
		}

    }
function volTrackingV(){

	var evt=getEvent();
	mousepositionX=evt.clientX;
	
	if (blnDragging ){
		
		var sliderLength= vmaxLimit;
		var mov =  parseInt(playfjd) + mousepositionX - mPosX;
		
		if(mov <= vminLimit){
			zoomstate.style.width=vminLimit+"px";
			zoomObject(10);
		}
		if(mov > vmaxLimit){
			zoomstate.style.width=vmaxLimit+"px";
			zoomObject(100);
		}
		if ((mov <= vmaxLimit) &&  (mov > vminLimit )){
			zoomstate.style.width=parseInt(playfjd) + mousepositionX - mPosX+"px";
			zoomObject(mov);
		}
	}return false;
}
function overDrag()
{
	blnDragging=false;
	return false;
}
document.write("<script language='JavaScript' src='/stat/?GameId="+_gameid+"'></script>");
var xmlDOM;
var sxmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
function like(action)
{
    if(action=="")
	{
		$("rating").innerHTML="Oops! An error.. try again later!";
		return false;
	}
 	
	 var url="/rt/?GameId=" + _gameid +"&action="+action+"&timeStamp="+new Date().getTime();

	sxmlhttp.open("GET",url,true);
	sxmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	sxmlhttp.onreadystatechange=manges;
	sxmlhttp.send();
}
function manges(){
	if(sxmlhttp.readyState==4){
	var infos=sxmlhttp.getResponseHeader("info");
	if(infos=="thanks"){
		$("rating").innerHTML="Thanks for your rating!";
	}else if(infos==""){
		$("rating").innerHTML="You've already rated this game!";
	}
	else{
		$("rating").innerHTML="Oops! An error.. try again later!";
	}

	}
}
var ArrInfo={
'net':'Sorry, network communication problems, failed to access the specified page!',
'excep':'Sorry, the program prend exception error, please notify the webmaster as soon as possible!',
'tmout':'Sorry, network communication timeout, make sure you have connected to the Internet!'};
function lib_process_error(error,errIdx)
{
if(errIdx&&ArrInfo[errIdx])
	{alert(ArrInfo[errIdx]+"\n"+error);}
else
	{alert(error);}}
function CVwAjax()
{
	var m_ArrMsXmlProgid=new Array('MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
	var m_sFrameId="id_frame_ajax_"+parseInt(Math.floor((Math.random())*10000));
	var m_oFrameAjax=null;
	var m_oFormNode=null;
	var m_nTimeOutId=0;
	var m_nIntervalId=0;
	var m_nIntervalTime=50;
	var m_oHttp=null;
	var m_fpCallbackFunc=null;
	var m_vArglist=null;

	this.MyUrlEncode=function(Va){
	return Va.replace(/:/g,'%3A').replace(/\//g, '%2F').replace(/\?/g, '%3F').replace(/&/g, '%26').replace(/=/g,'%3D');};

	this.UrlEncode=function(Va){
	if(encodeURIComponent) return encodeURIComponent(Va);
	if(escape) return escape(Va);};

	this.HtmlEncode=function(Va){
	return Va.replace(/&/g,'&amp').replace(/'/g,'&quot;').replace(/</g,'&lt;').replace(/>/g,'&gt;');};

	this.HttpGetResponse=function(strUrl,fpCallbackFunc,vArglist,sPostData){
	var oHttp=null,bPost=false;
	if(strUrl.length>0){
	strUrl+=(-1!=strUrl.indexOf("?")?"&":"?")+"rand="+Math.floor((Math.random())*10000);
	if(m_oHttp&&m_oHttp&&0!=m_oHttp.readyState){m_oHttp.abort();}
	oHttp=GetHttpObject();
	if(oHttp){
	m_oHttp=oHttp;
	m_fpCallbackFunc=fpCallbackFunc;
	m_vArglist=vArglist;
	bPost=(sPostData&&sPostData.length);
	m_oHttp.open(bPost?"POST":"GET",strUrl,true);
	if(bPost){
	SetHeader("Content-Type","application/x-www-form-urlencoded");
	SetHeader("content-length",sPostData.length);}
	HandleReadyState();
	m_oHttp.send(bPost?sPostData:null);}
	}};

	this.HttpSendPost=function(strUrl,fpCallbackFunc,vArglist,sPostData)
		{return this.HttpGetResponse(strUrl,fpCallbackFunc,vArglist,sPostData);};

	this.HttpPostForm=function(sFormId,strTagUrl,fpCallbackFunc,vArglist){
	var oForm=GetFormObjectById(sFormId);
	if(!oForm) return false;
	m_oFormNode=oForm;
	m_oFrameAjax=CreateFrame(null);
	m_fpCallbackFunc=fpCallbackFunc;
	m_vArglist=vArglist;
	DoPostForm(m_oFormNode,m_oFrameAjax,strTagUrl);
	ReleaseObject();
	return true;};

	this.GetFormData=function(sFormId){
	var oForm=GetFormObjectById(sFormId);
	if(!oForm){return null;}
	var sFormData="",oElement,sName,sValue,bEnable,hasSubmit=false;
	var i=0;
	for(i=0;i<oForm.elements.length;i++){
	oElement=oForm.elements[i];
	bEnable=oForm.elements[i].disabled?false:true;
	sName=oForm.elements[i].name;
	sValue=oForm.elements[i].value;
	if(!bEnable||!sName){continue;}
	switch(oElement.type){
	case "select-one":
	case "select-multiple":{
	for(var j=0;j<oElement.options.length;j++){
	if(oElement.options[j].selected){
	if(window.ActiveXObject){
	sFormData+=encodeURIComponent(sName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}
	else{
	sFormData+=encodeURIComponent(sName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}}break;
	case "radio":
	case "checkbox":{
		if(oElement.checked){
		sFormData+=encodeURIComponent(sName)+'='+encodeURIComponent(sValue)+'&';}}break;
	case "file":
	case undefined:
	case "undefined":
	case "reset":
	case "button":break;
	case "submit":{
		if(hasSubmit==false){
		sFormData+=encodeURIComponent(sName)+'='+encodeURIComponent(sValue)+'&';
		hasSubmit=true;}}break;
	default:{sFormData+=encodeURIComponent(sName)+'='+encodeURIComponent(sValue)+'&';}
	break;}}
	return sFormData.substr(0,sFormData.length-1);};

	function CreateHttpObject()
	{
		var obj=null;
		try{obj=new XMLHttpRequest();}
		catch(e){
			for(var i in m_ArrMsXmlProgid)
				{try{obj=new ActiveXObject(m_ArrMsXmlProgid[i]);break;}catch(e){}}
		}
		finally{return obj;}
	}
	function GetHttpObject(){return CreateHttpObject();}

	function ReleaseObject()
	{if(m_oHttp){m_oHttp=null;}}

	function GetFormObjectById(sFormId)
	{
	var oForm=null;
	if(typeof sFormId=='string')
		{oForm=(document.getElementById(sFormId)||document.forms[sFormId]);}
	else
		if(typeof sFormId=='object'){oForm=sFormId;}
	return oForm;}

	function CreateFrame(sSecureUri)
	{
	var frameId=m_sFrameId;
	var oframe=null;
	if(window.ActiveXObject)
	{
		oframe=document.createElement('<IFRAME id="'+frameId+'" name="'+frameId+'">');
		if(typeof sSecureUri=='boolean')
			{oframe.src="JavaScript:false";}
		else{oframe.src=sSecureUri;}
	}
	else
	{
		oframe=document.createElement('IFRAME');
		oframe.id=frameId;
		oframe.name=frameId;
	}
	oframe.style.position='absolute';
	oframe.style.top='-1000px';
	oframe.style.left='-1000px';
	document.body.appendChild(oframe);
	return oframe;}

	function SetHeader(sLabel,sValue)
	{
	if(!m_oHttp)return;
	if(sLabel&&sLabel.length&&sValue){m_oHttp.setRequestHeader(sLabel,sValue);}}

	function DoPostForm(oForm,oFrameAjax,sUri)
	{
	if(!oForm) return false;
	if(!oFrameAjax) return false;
	oForm.action=sUri;
	oForm.enctype='multipart/form-data';
	oForm.method='POST';
	oForm.target=oFrameAjax.id;
	oForm.submit();
	var CallbackDoPostForm=function(){
	var oResponse={};
	oResponse.responseText=oFrameAjax.contentWindow.document.body?oFrameAjax.contentWindow.document.body.innerHTML:null;
	oResponse.responseXML=oFrameAjax.contentWindow.document.XMLDocument?oFrameAjax.contentWindow.document.XMLDocument:oFrameAjax.contentWindow.document;
	oResponse.argument=m_vArglist;
	if(m_fpCallbackFunc.postfrm)
	{
		if(m_fpCallbackFunc.advmode){m_fpCallbackFunc.postfrm(oResponse);}
		else{m_fpCallbackFunc.postfrm(oResponse.responseText,m_vArglist);}
	}
	if(window.ActiveXObject)
		{oFrameAjax.detachEvent("onload",CallbackDoPostForm);}
	else
		{oFrameAjax.removeEventListener("load",CallbackDoPostForm,false);}
	window.setTimeout(function(){document.body.removeChild(oFrameAjax);},100);
	};
	if(window.ActiveXObject){
	oFrameAjax.attachEvent('onload',CallbackDoPostForm);}
	else{
	oFrameAjax.addEventListener('load',CallbackDoPostForm,false);}}

	function HandleReadyState()
	{
		if(m_fpCallbackFunc&&m_fpCallbackFunc.timeout)
		{m_nTimeOutId=window.setTimeout(function(){ProcessTimeout();},m_fpCallbackFunc.timeout);}
		m_nIntervalId=window.setInterval
		(
		function(){if(m_oHttp&&4==m_oHttp.readyState){ClearAllTimer();HandleTransactionResponse();}},
		m_nIntervalTime);
	}

	function ProcessTimeout()
	{
	if(IsCallInProgress()){m_oHttp.abort();ClearAllTimer();HandleTransactionResponse(true);return true;}
	return false;}

	function ClearAllTimer()
	{
	if(m_nIntervalId){window.clearInterval(m_nIntervalId);}
	if(m_nTimeOutId){window.clearTimeout(m_nTimeOutId);}
	m_nIntervalId=0;
	m_nTimeOutId=0;}

	function IsCallInProgress()
	{
	if(!m_oHttp) return false;
	return(4!=m_oHttp.readyState&&0!=m_oHttp.readyState);}

	function HandleTransactionResponse(bIsTimeout)
	{
		if(!m_fpCallbackFunc){ReleaseObject();return;}
		var nStatusCode=0,oResponse=null,pfnProc=null;
		try
		{
			if(undefined !==m_oHttp.status&&0!=m_oHttp.status)
				{nStatusCode=m_oHttp.status;}
			else
				{nStatusCode=13030;}
		}
		catch(err){nStatusCode=13030;}
		if(nStatusCode>=200&&nStatusCode<300)
		{
			try{
				oResponse=CreateResponseObject();
				if(m_fpCallbackFunc.success)
				{
					if(m_fpCallbackFunc.advmode)
						{m_fpCallbackFunc.success(oResponse);}
					else
						{m_fpCallbackFunc.success(oResponse.responseText,m_vArglist);}
				}
			}
			catch(err){}
		}
		else
		{
			try
			{
				switch(nStatusCode)
				{
					case 12002:
					case 12029:
					case 12030:
					case 12031:
					case 12152:
					case 13030:
					{
						oResponse=CreateExceptionObject(bIsTimeout?bIsTimeout:false);
						if(bIsTimeout&&m_fpCallbackFunc.tmoproc)
							{pfnProc=m_fpCallbackFunc.tmoproc;}
						else
							{pfnProc=m_fpCallbackFunc.failure;}
						if(pfnProc)
						{
							if(m_fpCallbackFunc.advmode)
								{pfnProc(oResponse);}
							else
								{pfnProc(oResponse.responseText,m_vArglist);}
						}
					}break;
					default:{
					oResponse=CreateResponseObject();
					if(m_fpCallbackFunc.failure){
					if(m_fpCallbackFunc.advmode){
					m_fpCallbackFunc.failure(oResponse);}
					else{
					m_fpCallbackFunc.failure(oResponse.responseText,m_vArglist);}}}break;
				}
			}
			catch(err){}
		}
		ReleaseObject();
		oResponse=null;
	}

	function CreateResponseObject()
	{
	var obj={};
	var ArrHeader={};
	try
	{
		var headerStr=m_oHttp.getAllResponseHeaders();
		var header=headerStr.split('\n');
		var delimitPos=0;
		for(var i=0;i<header.length;i++)
		{
			delimitPos=header[i].indexOf(':');
			if(-1!=delimitPos){
			ArrHeader[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}
		}
	}
	catch(e){}
	obj.fid=m_oHttp.fid;
	obj.status=m_oHttp.status;
	obj.statusText=m_oHttp.statusText;
	obj.getResponseHeader=ArrHeader;
	obj.getAllResponseHeaders=headerStr;
	obj.responseText=m_oHttp.responseText;
	obj.responseXML=m_oHttp.responseXML;
	obj.argument=m_vArglist;
	return obj;}

	function CreateExceptionObject(bIsAbort)
	{
	var COMM_CODE=0;
	var COMM_ERROR='communication failure';
	var ABORT_CODE=-1;
	var ABORT_ERROR='transaction timeout or aborted';
	var obj={};
	try{
	obj.fid=m_oHttp.fid;
	obj.argument=m_vArglist;
	if(bIsAbort){
	obj.status=ABORT_CODE;
	obj.statusText=ABORT_ERROR;
	obj.responseText=ABORT_ERROR;}
	else{
	obj.status=COMM_CODE;
	obj.statusText=COMM_ERROR;
	obj.responseText=COMM_ERROR;}}
	catch(e){}
	return obj;}
}
function picxh(comid)
{
var callbackAjaxProc={
			advmode:false,
			timeout:1*60*1000,
			failure:function(sText,vArglist){lib_process_error("","net");},
			success:function(sText,vArglist){
				try
				{
					if (sText=="ok") {alert("Thanks for your vote!");ChangeVoteState(2)} else {alert("You've already rated this game");}
								
				}
				catch(error){lib_process_error(error,"excep");}
			}
		};
		var ajax=new CVwAjax();
		ajax.HttpGetResponse("/vote.asp?id="+_gameid+"&act="+comid,callbackAjaxProc);


}
function zoom_out(){
	var mov =  parseInt(zoomstate.style.width) - 10;
	if (mov<10) { mov=10;}
	zoomstate.style.width = mov+"px";
	zoomObject(mov);
	
}

function zoom_in(){
	var mov =  parseInt(zoomstate.style.width) + 10;
	if (mov > 100){  mov=100;}
	zoomstate.style.width= mov+"px" ;
	zoomObject(mov);
}
function CreateBookmarkLink(url,title){
	if(window.sidebar&&!document.all){window.sidebar.addPanel(title,url,"");}
	else
	if(window.external){window.external.AddFavorite(url,title);}
	else
	if(window.opera&&window.print){return false;}
}
function getEvent(){ //同时兼容ie和ff的写法 
   if(document.all) return window.event; 
   func=getEvent.caller; 
   while(func!=null){ 
   var arg0=func.arguments[0]; 
   if(arg0){ 
       if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ 
          return arg0; 
       } 
   } 
   func=func.caller; 
  } 
  return null; 
}
function CopyCode(c)
{
  c.select()
  text = c.value;
  window.clipboardData.setData("text", text);
  alert("Copy this code to your page");
}

function ChangeVoteState(act){
	if(act==1)
	{
		var callbackAjaxProc={
			advmode:false,
			timeout:1*60*1000,
			failure:function(sText,vArglist){lib_process_error("","net");},
			success:function(sText,vArglist){
				try
				{
					if (sText) {cmtini(sText,act);}
								
				}
				catch(error){lib_process_error(error,"excep");}
			}
		};
		var ajax=new CVwAjax();
		ajax.HttpGetResponse("/svote.asp?id="+_gameid,callbackAjaxProc);
	}
	else
	{
		var callbackAjaxProc={
			advmode:false,
			timeout:1*60*1000,
			failure:function(sText,vArglist){lib_process_error("","net");},
			success:function(sText,vArglist){
				try
				{
					if (sText.indexOf(":")>0) {cmtini(sText,act);} else {alert(sText);}
								
				}
				catch(error){lib_process_error(error,"excep");}
			}
		};
		var ajax=new CVwAjax();
		ajax.HttpGetResponse("/svote.asp?id="+_gameid,callbackAjaxProc);
	}
}
function cmtini(tempv,act)
{
	tempvalue=tempv.split(':');
	if (act==2)
	{
	    $("sgood").disabled="disabled";
	    $("sbad").disabled="disabled";
	}
	$("gp").innerHTML="("+tempvalue[0]+" votes)";
	$("bp").innerHTML="("+tempvalue[1]+" votes)";
        var temptotal;
        temptotal=Math.floor(tempvalue[0])+Math.floor(tempvalue[1]);
        if (temptotal==0)
            temptotal=1;
	$("good").style.width=Math.floor(tempvalue[0])*250/(temptotal)+"px";
	$("bad").style.width=Math.floor(tempvalue[1])*250/(temptotal)+"px";
	$("svote").innerHTML=Math.round(Math.floor(tempvalue[0])*100/(temptotal)*10)/10+"%";
}
ChangeVoteState(1);
window.onunload = firstVis;