﻿var CONST_OP_SUCC_GET				= 0;
var CONST_OP_SUCC_SAVE				= 1;
var CONST_OP_ERR_NOTLOGIN			= -6;

var CONST_AJAX_OP_ALL_GET			= 'allget';
var CONST_AJAX_OP_DIG_SAVE			= 'digsave';
var CONST_AJAX_OP_DIGPEOPLE_SAVE		= 'digpeoplesave';
var CONST_AJAX_OP_FAV_GET			= 'favget';
var CONST_AJAX_OP_FAV_SAVE			= 'favsave';
var CONST_AJAX_OP_FAV_MODIFY			= 'favmodify';
var CONST_AJAX_OP_FAVPEOPLE_SAVE		= 'favpeoplesave';
var CONST_AJAX_OP_FAVCOUNT_SAVE			= 'favcountsave';
var CONST_AJAX_OP_FAV_DELETE			= 'favdelete';
var CONST_AJAX_OP_VISIT_SAVE			= 'visitsave';
var CONST_AJAX_OP_VOTE_SAVE			= 'votesave';
var CONST_AJAX_OP_VOTEPEOPLE_SAVE		= 'votepeoplesave';
var CONST_AJAX_OP_VISITOR_SAVE			= 'visitorsave';
var CONST_AJAX_OP_PLAYED_GET			= 'playedget';
var CONST_AJAX_OP_PLAYED_SAVE			= 'playedsave';

var CONST_HASHDB_USER_TYPE_FAVED		= 'faved';
var CONST_HASHDB_USER_TYPE_DIGED		= 'diged';
var CONST_HASHDB_USER_TYPE_VISITOR_PEOPLE	= 'visitorpeople';
var CONST_HASHDB_USER_TYPE_VOTE_PEOPLE		= 'votepeople';
var CONST_HASHDB_USER_TYPE_PLAYED		= 'played';

var CONST_LOGIN_ERROR_SUCCESS			= 0;	//	登录成功
var CONST_LOGIN_ERROR_PARAM			= -1;	//	参数错误
var CONST_LOGIN_ERROR_USRNOTEXIST		= -2;	//	用户名不存在
var CONST_LOGIN_ERROR_PASSWORD			= -3;	//	密码错误
var CONST_LOGIN_ERROR_DENY			= -4;	//	拒绝登录

var CONST_REMOTE_RANGE_STEP			= 900000;

var g_timerSystemHint				= 0;
var g_bGameLoadFinished				= false;

/** 
 *	XGame Framework
 */
function CXGameFramework()
{
	var m_oThis			= this;
	var m_oUsrData			= {};
	var m_ArrRegedOnLoadFunc	= [];

	this.installFrame = function()
	{
		vw_event_attach( window, "load", handleLoad );
	};
	this.installFrameEx = function()
	{
		handleLoad();
	};
	this.setUserData = function( oUsrData )
	{
		m_oUsrData = oUsrData;
	};
	this.isLogin = function()
	{
		return m_oUsrData.bIsLogin;
	};
	this.getSafeUId = function()
	{
		return m_oUsrData.sSafeUId;
	};
	this.getUserName = function()
	{
		return m_oUsrData.sUserName;
	};

	//
	//	priate
	//
	function handleLoad()
	{
		//	预装载
		preloadImg();
	}
	function preloadImg()
	{
		var i;
		var ArrImg =
		[
			'/system/images/en/nav_home.gif', '/system/images/en/nav_home_.gif', '/system/images/en/nav_service.gif', '/system/images/en/nav_service_.gif', '/system/images/en/nav_news.gif', '/system/images/en/nav_news_.gif', '/system/images/en/nav_aboutus.gif', '/system/images/en/nav_aboutus_.gif', '/system/images/en/nav_contactus.gif', '/system/images/en/nav_contactus_.gif', '/system/images/fr/nav_home.gif', '/system/images/fr/nav_home_.gif', '/system/images/fr/nav_service.gif', '/system/images/fr/nav_service_.gif', '/system/images/fr/nav_news.gif', '/system/images/fr/nav_news_.gif', '/system/images/fr/nav_aboutus.gif', '/system/images/fr/nav_aboutus_.gif', '/system/images/fr/nav_contactus.gif', '/system/images/fr/nav_contactus_.gif', '/system/images/zhcn/nav_home.gif', '/system/images/zhcn/nav_home_.gif', '/system/images/zhcn/nav_service.gif', '/system/images/zhcn/nav_service_.gif', '/system/images/zhcn/nav_news.gif', '/system/images/zhcn/nav_news_.gif', '/system/images/zhcn/nav_aboutus.gif', '/system/images/zhcn/nav_aboutus_.gif', '/system/images/zhcn/nav_contactus.gif', '/system/images/zhcn/nav_contactus_.gif'
		];
		for ( i = 0; i < ArrImg.length; i ++ )
		{
			(new Image).src = ArrImg[ i ];
		}
	}
}
var g_cFrm = new CXGameFramework();
g_cFrm.installFrame();

function lib_get_evalvalue( str )
{
	var vRet = null;
	try
	{
		eval( "var vRet = " + str );
	}
	catch(err)
	{
	}
	return vRet;
}

function lib_process_alertmsg( msg )
{
	return lib_show_systemhint( msg );
}
function lib_process_error( error, errIdx )
{
	var ArrInfo =
	{
		'net'	: '很抱歉，网络通讯出现问题，未能成功访问指定页面！',	//	network
		'excep'	: '很抱歉，程序出了点异常错误，请尽快通知网站管理员！',	//	Exception
		'tmout'	: '很抱歉，网络通讯超时，请确认您已经连接到互联网！'	//	Timeout
	};
	if ( errIdx && ArrInfo[ errIdx ] )
	{
		alert( ArrInfo[ errIdx ] + "\n" + error );
	}
	else
	{
		alert( error );
	}
}

//	显示系统黄色警告牌
function lib_show_systemhint( msg, bIsBold, nTimeout )
{
//	if ( ! $iws( "id_tab_syshint" ) )
	{
		var oPt		= vw_get_window_point( "id_nvbar_my" );
		var sTxt	= bIsBold ? ( "<b>" + msg + "</b>" ) : msg;
		oPt.left	+= ( oPt.width + ( VW.env.bIE ? 8 : 5 ) );
		oPt.top		+= ( VW.env.bIE ? -1 : 0 );

		$swt( "id_hintxt", sTxt );
		$sw( "id_tab_syshint", true, oPt );

		if ( g_timerSystemHint )
		{
			window.clearTimeout( g_timerSystemHint );
		}
		window.setTimeout
		(
			function()
			{
				$sw( "id_tab_syshint", false );
				g_timerSystemHint = 0;
			},
			nTimeout ? nTimeout : 30*1000
		);
	}
}

function lib_get_followhinthtml( sType, sContent, nWidth )
{
	//
	//	sType	- [in] ok/wrn/err
	//
	var str = ""
	+ "<div class=mbox>"
	+ "<div class=\"mbox" + sType + "\" "
	+ ( nWidth ? ( " style=\"width:" + nWidth + "px\" " ) : "" ) + ">"
	+ sContent + "</div><div class=sp></div>"
	+ "</div>";
	return str;
}

function lib_get_localtime_string( nTime )
{
	return ( new Date( nTime * 1000 ) ).toLocaleDateString().replace(/[年月]/g, '-').replace(/日/g, '');
}

function lib_show_prelogin( bShow )
{
	lib_show_virtualswf( bShow );

	$sw( "preLogin", bShow );
	$sw( "maskAll", bShow );
	if ( bShow )
	{
		lib_http_get_response
		(
			"/service/?app=hloader&file=area_pre_login",
			30*1000, false,
			function( sText, vArglist )
			{
				$swt( "preLogin", sText );
				$swt( "id_span_safe_uid", g_cFrm.getSafeUId() );
			}
		);
	}
}
function lib_show_premember( bShow )
{
	lib_show_virtualswf( bShow );

	$sw( "preMember", bShow );
	$sw( "maskAll", bShow );
	if ( bShow )
	{
		lib_http_get_response
		(
			"/service/?app=hloader&file=area_pre_member",
			30*1000, false,
			function( sText, vArglist )
			{
				$swt( "preMember", sText );
			}
		);
	}
}
function lib_show_gepopbox( bShow, sTitle, sContent, sButton, pfnSuccCallback )
{
	lib_show_virtualswf( bShow );
	$sw( "gePopBox", bShow );
	$sw( "maskAll", bShow );

	var pfnSetPopBox = function()
	{
		//	设置标题等
		if ( sTitle )
		{
			$swt( "gePopBox_title", sTitle );
		}
		if ( sContent )
		{
			$swt( "gePopBox_msg", sContent );
		}
		if ( sButton )
		{
			if ( "[hidden]" == sButton )
			{
				$sw( "gePopBox_button_row", false );
			}
			else
			{
				$swt( "gePopBox_button", sButton );
			}
		}
	};

	if ( bShow )
	{
		//	为了更好的展示效果，如果是第二次就先处理一下
		if ( $( "gePopBox_title" ) && $( "gePopBox_msg" ) )
		{
			pfnSetPopBox();
		}

		//	发送网络请求，获取最新内容
		lib_http_get_response
		(
			"/service/?app=hloader&file=area_ge_pop_box",
			30*1000, false,
			function( sText, vArglist )
			{
				//	先设置主题 HTML
				$swt( "gePopBox", sText );

				//	设置 PopBox
				pfnSetPopBox();

				//	调用 成功回调函数
				if ( pfnSuccCallback )
				{
					pfnSuccCallback();
				}
			}
		);
	}
}
function lib_save_userlang( sLang )
{
	lib_http_get_response
	(
		"/system/ajax_lang.php?lang=" + sLang,
		30*1000, false,
		function( sText, vArglist )
		{
			var sTmp = new String( top.location );
			if ( -1 != sTmp.indexOf( 'news_show.php' ) )
			{
				top.location = '/news.php';
			}
			else
			{
				top.location = top.location;
			}
		}
	);
}
function lib_show_maskall( bShow )
{
	$sw( "maskAll", bShow );
	if ( false == bShow )
	{
		lib_show_prelogin( false );
		lib_show_premember( false );
		lib_show_gepopbox( false );
	}
}

//	刷新验证码
function lib_refresh_captcha( sImgcapId, sRandomStrId )
{
	var sCapUrl = "/capimg.php";
	var callbackAjaxProc =
	{
		advmode	: false,
		timeout	: 1*60*1000,
		failure : function( sText, vArglist )
			{
				lib_process_error( "", "net" );
			},
		success : function( sText, vArglist )
			{
				var oImg, oText;
				try
				{
					oImg	= $( sImgcapId );
					oText	= $( sRandomStrId );
					if ( oImg && oText )
					{
						oImg.src	= sCapUrl + "?randomStr=" + sText;
						oText.value	= sText;
					}
				}
				catch(error)
				{
					lib_process_error( error, "excep" );
				}
			}
	};
	var ajax = new CVwAjax();
	ajax.HttpGetResponse( sCapUrl + "?op=refresh", callbackAjaxProc, null );
}

//	拷贝字符串到系统剪切板
function lib_copy_text( sTxt )
{
	if ( window.clipboardData )
	{
		window.clipboardData.clearData();
		window.clipboardData.setData( "Text", sTxt );
	}
	else if ( window.netscape )
	{
		try
		{
			netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect" );
		}
		catch ( e )
		{
			alert("拷贝操作被浏览器拒绝！\n请在浏览器地址栏输入 'about:config' 并回车\n然后将 'signed.applets.codebase_principal_support' 设置为 'true'");
		}
		var clip = Components.classes[ '@mozilla.org/widget/clipboard;1' ].createInstance( Components.interfaces.nsIClipboard );
		if ( ! clip )
			return false;

		var trans = Components.classes[ '@mozilla.org/widget/transferable;1' ].createInstance( Components.interfaces.nsITransferable );
		if ( ! trans )
			return false;  

		trans.addDataFlavor( 'text/unicode' );
		var str = new Object();
		var len = new Object();
		var str = Components.classes[ "@mozilla.org/supports-string;1" ].createInstance( Components.interfaces.nsISupportsString );
		var copytext = sTxt;
		str.data = copytext;
		trans.setTransferData( "text/unicode", str, copytext.length*2 );
		var clipid = Components.interfaces.nsIClipboard;
		if ( ! clip )
			return false;
		clip.setData( trans,null,clipid.kGlobalClipboard );
	}
	return true;  
}

//	添加到收藏
function lib_add_favorite( obj, sTitle, sUrl )
{
	if ( window.sidebar && "object" == typeof( window.sidebar ) && "function" == typeof( window.sidebar.addPanel ) )
        {
                //	firefox
                window.sidebar.addPanel( sTitle, sUrl, '' );
        }
        else if ( document.all && "object" == typeof( window.external ) )
        {
                //	ie
                window.external.addFavorite( sUrl, sTitle );
        }
}
function lib_set_homepage( obj, sUrl )
{
	try
	{
		obj.style.behavior = 'url(#default#homepage)';
		obj.setHomePage( 'http://www.yx8.com/clienthp.php' );
	}
	catch(err)
	{}
}

function lib_http_get_response( sUrl, nTimeout, bQuietMode, callbackSuccessProc, vArglist )
{
	if ( ! nTimeout )
	{
		nTimeout = 2*60*1000;
	}

	var callbackAjaxGProc =
	{
		advmode	: false,
		timeout	: nTimeout,
		tmoproc : function( sText, vArglist )
			{
				if ( ! bQuietMode )
				{
					lib_process_error( "", "tmout" );
				}
			},
		failure : function( sText, vArglist )
			{
				if ( ! bQuietMode )
				{
					lib_process_error( "", "net" );
				}
			},
		success : function( sText, vArglist )
			{
				if ( callbackSuccessProc )
				{
					callbackSuccessProc( sText, vArglist );
				}
			}
	};
	window.setTimeout
	(
		function()
		{
			(new CVwAjax()).HttpGetResponse( sUrl, callbackAjaxGProc, vArglist );
		},
		0
	);
}

//	转向成功、失败页面提示用户
function lib_goto_result_page( sType, sTitle, sContent, sBackurl, sBacktxt )
{
	var oAjax = new CVwAjax();
	var sUrl  = "/op_result.php?"
	+ "charset=utf8"
	+ "&type=" + sType
	+ "&title=" + oAjax.UrlEncode( sTitle )
	+ "&content=" + oAjax.UrlEncode( sContent )
	+ "&backurl=" + oAjax.UrlEncode( sBackurl )
	+ "&backtxt=" + oAjax.UrlEncode( sBacktxt );
	vw_rd( sUrl );
}