/**
 *	MyAccount Class
 *	Create @ 2007-03-26 by liuqixing
 */
//判断中英文字符串的长度 
function  reStrlength( str )
{
     num = str.length;
     var  arr=str.match( /[^\x00-\x80]/ig );
     if(arr!=null) num += arr.length;
     
	return num ;
}

//检查url
function checkURL(str) 
{ 
	var url = /^http:\/\/[A-Za-z0-9\-]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
		 
    return url.test(str);  
} 


function CEditor()
{
	var m_oThis			= this;
	var m_sUId			= 0;
	var m_bIsUploadInProgress	= false;
	var m_ArrBadWords		= [ "法轮功", "64游行" ];

	this.initData = function( sUId )
	{
		m_sUId	= sUId;
	};

	this.initPage = function()
	{
		m_oThis.handleKeyEnter();
	};

	this.handleKeyEnter = function()
	{
		var oFrm = $( "frmlogin" );
		if ( oFrm )
		{
			var callbackFrmLoginKeyEnterProc = function( evt )
			{
				if ( 13 == evt.keyCode )
				{
					oFrm.loginbtn.click();
				}
			};
			qh_event_attach( oFrm.username, "keydown", callbackFrmLoginKeyEnterProc );
			qh_event_attach( oFrm.password, "keydown", callbackFrmLoginKeyEnterProc );
		}
	};

	this.showImgUploadDiv = function( oBtn )
	{
		var oPoint	= $gwp( oBtn );
		oPoint.left	= oPoint.left + 50;
		oPoint.top	= oPoint.top - 50;
/*		$("imgUpload").style.top	= oPoint.top + "px";
		$("imgUpload").style.left	= oPoint.left + "px";
		$("imgUpload").style.position	= "absolute";
		$("imgUpload").style.display = "inline";
*/
		$sw( "imgUpload", true, oPoint );

		$ew( "btn_imgUpload", false );
		$ew( "btn_imgPickup", false );
	};
	this.closeImgUploadDiv = function( bForce )
	{
		if ( bForce || ! m_bIsUploadInProgress )
		{
			$sw( "imgUpload", false );
			$ew( "btn_imgUpload", true );
			$ew( "btn_imgPickup", true );
		}
	};

	this.showImgPickup = function( oBtn )
	{
		if ( ! qh_is_window_show( "imgUpload" ) )
		{
			var oPoint	= $gwp( oBtn );
			oPoint.left	= oPoint.left + 50;
			oPoint.top	= oPoint.top - 80;
			$sw( "imgPickup", true, oPoint );

			$ew( "btn_imgUpload", false );
			$ew( "btn_imgPickup", false );
		}
	};
	this.closeImgPickup = function( bForce )
	{
		$sw( "imgPickup", false );
		$ew( "btn_imgUpload", true );
		$ew( "btn_imgPickup", true );
	};
	this.pickImg = function( oInput )
	{
		var sImgSrc = "/udata/default/" + oInput.value + ".jpg";
		m_oThis.setUImg( sImgSrc );
	};

	this.onchangeFileInput = function( objThis )
	{
		var str = "<img src=\"" + $gwt( objThis ) + "\" height=130>";
		$swt( 'idtdimgprev', str );
	};

	this.onerrorFileInput = function()
	{
		var str = "<img src=\"/images/default_upload_preview.gif\" height=130>";
		$swt( "idtdimgprev", str );
	};

	this.onchangeRadioRssType = function( sType )
	{
		if ( 'rss' == sType )
		{
			$sw( "span_intro_rss", true );
			$sw( "span_intro_txt", false );
		}
		else
		{
			$sw( "span_intro_rss", false );
			$sw( "span_intro_txt", true );
		}
	};

	this.setUImg = function( sSrc )
	{
		$( "id_img_uimg" ).src = sSrc + "?rand=" + Math.floor((Math.random())*10000);
		$swt( "frm_u_image", sSrc );
	};

	this.uploadFile = function( sUImgId )
	{
		var callbackProc =
		{
			postfrm : function( sText, vArglist )
			{
				try
				{
					var oRes = getEvalValue( sText );
                                        if ( oRes )
					{
						if ( 0 == oRes['result'] )
						{
					
							m_oThis.setUImg( oRes['vdata']['vimg'] );
							m_oThis.closeImgUploadDiv( true );
						}
						else
						{
							$swt( "idtdimgprev", "<font color=red>" + oRes['error'] + "</font>" );
						}
					}
					else
					{
                                               throw new Error("上传失败!");
					}
				}
				catch(error)
				{
					processError( error.description, "excep" );
				}

				$ew( "imgupbtn", true );
				$swt( "imgupbtn", " 上传  " );
				m_bIsUploadInProgress = false;	//	标记上传完成
			}
		}

		var sFile = $gwt( "imguptxtfile" );
		//if ( "" == sFile || ( -1 == sFile.indexOf( ":\\" ) ) )
		if ( "" == sFile) 
		{
			alert( "请选择一个文件！" );
			return false;
		}

		$ew( "imgupbtn", false );
		$swt( "imgupbtn", "正在上传.." );
		m_bIsUploadInProgress = true;	//	标记正在上传

		try
		{
			var ajax = new CQhAjax();
			ajax.HttpPostForm( "id_frmupload", "/ajax_imgupload.php", callbackProc , null);
		}
		catch(err)
		{
			$swt( "idtdimgprev", "<font color=red>请选择一个文件！</font>" );
			$swt( "imgupbtn", " 上传  " );
		}
	};

	this.showLoginDiv = function( oBtn )
	{
		var oClient	= qh_get_window_client_size();
		var oBtnPoint	= $gwp( oBtn );
		var oNewPoint	= null;
		if ( QH.env.bFirefox )
		{
			oNewPoint	= { left: ( oClient.width / 2 - 200 ), top: ( oBtnPoint.top - 400 ) };
		}
		else
		{
			oNewPoint	= { left: ( oClient.width / 2 - 200 ), top: ( oBtnPoint.top - 200 ) };
		}
		$sw( "maskAll", true ) ;
		$sw( "preLogin", true, oNewPoint ) ;
		$swf( "frmusername" ) ;
	};
	this.closeLoginDiv = function()
	{
		$sw( "maskAll", false );
		$sw( "preLogin", false );
	};

	this.submitInfoEditForm = function( oBtn )
	{
		var oFrm = oBtn.form;
		with( oFrm )
		{			
			var diy_type_js	=	$gwt('diy_type') ;
			if( diy_type_js == 0 )
			{
				if ( "" == qh_trim( $gwt( oFrm.u_name ) ) || 
				"你的姓名" == qh_trim( $gwt( oFrm.u_name ) ) )
				{
					processError( "请输入你的姓名！" );
					$swf( oFrm.u_name );
					return false;
				}
				if ( isHaveBadWord( qh_trim( $gwt( oFrm.u_name ) ) ) )
				{
					processError( "请不要输入与政治敏感词相关的姓名！" );
					$swf( oFrm.u_name );
					return false;
				}
				if( reStrlength($gwt( oFrm.u_name )) >  18 )
				{
					processError( "你的姓名请不要超过9个汉字！" );
					$swf( oFrm.u_name );
					return false;
				}
				if ( "" == qh_trim( $gwt( oFrm.u_sign ) ) )
				{
					processError( "请输入个性签名！" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "个性签名请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( "" == qh_trim( $gwt( oFrm.u_blogurl ) ) ||
					"http://" == qh_trim( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "请输入您的博客地址，如果没有请点击旁边的“还没有博客”链接注册一个！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( !checkURL( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "博客地址格式不正确！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "个人简介请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
				var nIntroType = $gwt( oFrm.u_introtype );
				if ( 0 == nIntroType && (("" ==  $gwt( oFrm.u_rssurl ))  || ("http://" == $gwt( oFrm.u_rssurl ) )))
				{
					processError( "请输入RSS地址！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if( 0 == nIntroType && !checkURL( $gwt( oFrm.u_rssurl ) ) )
				{
					processError( "最新博客的RSS地址格式不正确！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if ( 1 == nIntroType && "" == qh_trim( $gwt( oFrm.u_intro ) ) )
				{
					processError( "请输入个人简介！" );
					$swf( oFrm.u_intro );
					return false;
				}
				
			}
			else if( diy_type_js == 1　)  //网站版
			{
				if ( "" == qh_trim( $gwt( oFrm.u_name ) ) || 
				"网站名称" == qh_trim( $gwt( oFrm.u_name ) ) )
				{
					processError( "请输入你的网站名称！" );
					$swf( oFrm.u_name );
					return false;
				}
				if ( isHaveBadWord( qh_trim( $gwt( oFrm.u_name ) ) ) )
				{
					processError( "请不要输入与政治敏感词相关的名称！" );
					$swf( oFrm.u_name );
					return false;
				}		
				if( reStrlength($gwt( oFrm.u_name )) >  18 )
				{
					processError( "网站名称请不要超过9个汉字！" );
					$swf( oFrm.u_name );
					return false;
				}		
				if ( "" == qh_trim( $gwt( oFrm.u_sign ) ) )
				{
					processError( "请输入网站口号！" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "网站口号请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( "" == qh_trim( $gwt( oFrm.u_blogurl ) ) ||
					"http://" == qh_trim( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "请输入您的网站主页！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( !checkURL( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "网站主页格式不正确！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "最新资讯请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
				var nIntroType = $gwt( oFrm.u_introtype );
				if ( 0 == nIntroType && (("" ==  $gwt( oFrm.u_rssurl ))  || ("http://" == $gwt( oFrm.u_rssurl ) )))
				{
					processError( "请输入RSS地址！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if( 0 == nIntroType && !checkURL( $gwt( oFrm.u_rssurl ) ) )
				{
					processError( "最新资讯的RSS地址格式不正确！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if ( 1 == nIntroType && "" == qh_trim( $gwt( oFrm.u_intro ) ) )
				{
					processError( "请输入最新资讯！" );
					$swf( oFrm.u_intro );
					return false;
				}
			}
			else
			{
				if ( "" == qh_trim( $gwt( oFrm.u_name ) ) || 
				"公司名称" == qh_trim( $gwt( oFrm.u_name ) ) )
				{
					processError( "请输入你的公司名称！" );
					$swf( oFrm.u_name );
					return false;
				}
				if ( isHaveBadWord( qh_trim( $gwt( oFrm.u_name ) ) ) )
				{
					processError( "请不要输入与政治敏感词相关的名称！" );
					$swf( oFrm.u_name );
					return false;
				}
				if( reStrlength($gwt( oFrm.u_name )) >  18 )
				{
					processError( "公司名称请不要超过9个汉字！" );
					$swf( oFrm.u_name );
					return false;
				}	
				if ( "" == qh_trim( $gwt( oFrm.u_sign ) ) )
				{
					processError( "请输入公司口号！" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "公司口号请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( "" == qh_trim( $gwt( oFrm.u_blogurl ) ) ||
					"http://" == qh_trim( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "请输入您的公司主页！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( !checkURL( $gwt( oFrm.u_blogurl ) ) )
				{
					processError( "公司主页格式不正确！" );
					$swf( oFrm.u_blogurl );
					return false; 
				} 
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "最新资讯请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
				var nIntroType = $gwt( oFrm.u_introtype );
				if ( 0 == nIntroType && (("" ==  $gwt( oFrm.u_rssurl ))  || ("http://" == $gwt( oFrm.u_rssurl ) )))
				{
					processError( "请输入RSS地址！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if( 0 == nIntroType && !checkURL( $gwt( oFrm.u_rssurl ) ) )
				{
					processError( "最新资讯的RSS地址格式不正确！" );
					$swf( oFrm.u_rssurl );
					return false;
				}
				else if ( 1 == nIntroType && "" == qh_trim( $gwt( oFrm.u_intro ) ) )
				{
					processError( "请输入最新资讯！" );
					$swf( oFrm.u_intro );
					return false;
				}
			}
			
			
			var n_bbs_uid = qh_trim( $gwt( oFrm.bbs_uid ) );
			if ( ! n_bbs_uid || "" == n_bbs_uid || "0" == n_bbs_uid )
			{
				this.showLoginDiv( oBtn ); 
				return false;
			}
		}

		var callbackProc =
		{
			postfrm : function( sText, vArglist )
			{
				try
				{
					var oRes = getEvalValue( sText );
					if ( oRes )
					{
						if ( 0 == oRes['result'] )
						{
							if ( m_oThis.isEditPage() )
							{
								alert( "恭喜，信息修改成功！" );
								location.reload();
							}
							else
							{
								alert( "恭喜，定制完成！" );
								qh_rd( "/edit.html" );
							}
						}
						else
						{
							throw new Error( oRes['error'] );
						}
					}
				}
				catch(error)
				{
					processError( error.description, "excep" );
				}

				$ew( oBtn, true );
				$swt( oBtn, " 完成定制 " );
			}
		}

		$ew( oBtn, false );
		$swt( oBtn, " 正在提交.. " );

		var ajax = new CQhAjax();
		ajax.HttpPostForm( "frminfoedit", "/ajax_infosave.php", callbackProc, null );
	};

	this.submitLoginForm = function( oBtn )
	{
		var callbackProc =
		{
			postfrm : function( sText, vArglist )
			{
				try
				{
					var oRes = getEvalValue( sText );
					if ( oRes )
					{
						if ( 0 == oRes['result'] )
						{
							if ( "" != oRes['vdata']['my_u_name'] )
							{
								var sTmpUName = getCleanUserName( oRes['vdata']['my_u_name'] );
								var sCfmInfo = "登录成功！\n\n"
								+ "系统发现你曾经创建过一个名为“" + sTmpUName + "”的360安全卫士定制版，你是否希望保留“" + sTmpUName + "”版？\n\n"
								+ "选择<确定>，保留已有“" + sTmpUName + "”版；(提示：如果你想创建新的版本，请注册一个新用户。)\n"
								+ "选择<取消>，将覆盖原有版本的定制信息。";
								if ( confirm( sCfmInfo ) )
								{
									qh_rd( "/edit.html" );
									return;
								}
							}
							$swt( "frm_is_login", 1 );
							$swt( "frm_bbs_uid", oRes['vdata']['uid'] );
							$swt( "frm_bbs_uname", oRes['vdata']['username'] );
							$swt( "frm_bbs_grade", oRes['vdata']['stars'] );
							m_oThis.closeLoginDiv();
							$("frm_submit_info").click();
						}
						else
						{
							$sw( "frm_tr_errorhint", true );
						}
					}
				}
				catch(error)
				{
					processError( error.description, "excep" );
				}

				$ew( oBtn, true );
				$swt( oBtn, " 登录 " );
			}
		}

		var oFrm = oBtn.form;
		with( oFrm )
		{
			if ( "" == qh_trim( $gwt( oFrm.username ) ) )
			{
				processError( "请输入用户名" );
				qh_set_window_focus( oFrm.username );
				return false;
			}
			if ( "" == qh_trim( $gwt( oFrm.password ) ) )
			{
				processError( "请输入密码" );
				qh_set_window_focus( oFrm.password );
				return false;
			}
		}

		$ew( oBtn, false );
		$swt( oBtn, " 正在提交.. " );

		var ajax = new CQhAjax();
		ajax.HttpPostForm( "frmlogin", "/ajax_login.php", callbackProc, null );
	};

	this.openPreview = function()
	{
		window.open( 'preview.html?bbs_uid=' + $gwt( 'frm_bbs_uid' ) );
	}

	this.postPreview = function()
	{
		var oFrm = $( "frminfoedit" );		
		
		if ( oFrm )
		{
			var diy_type_js	=	$gwt('diy_type') ;
			if( diy_type_js == 0 )
			{
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "个性签名请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "个人简介请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
			}
			else if( diy_type_js == 1 )
			{
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "网站口号请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "最新资讯请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
			}
			else
			{
				if ( qh_trim( $gwt( oFrm.u_sign ) ).length > 100 )
				{
					processError( "公司口号请不要超过 100 个字。" );
					$swf( oFrm.u_sign );
					return false;
				}
				if ( qh_trim( $gwt( oFrm.u_intro ) ).length > 120 )
				{
					processError( "最新资讯请不要超过 120 个字。" );
					$swf( oFrm.u_intro );
					return false;
				}
			}			
			
			oFrm.action		= "preview.html";
			oFrm.target		= "_blank";
			oFrm.postpreview.value	= "1";
			oFrm.submit();
		}
	}

	this.isEditPage = function()
	{
		return ( -1 != location.href.indexOf( "edit.html" ) );
	};

	//////////////////////////////////////////////////
	//	private

	function processError( sMsg, sErrorId, sHintId )
	{
		alert( sMsg );
	}

	function getCleanUserName( sUserName )
	{
		if ( sUserName && sUserName.length )
		{
			sUserName = sUserName.replace( "&amp;", "&" );
			sUserName = sUserName.replace( "&lt;", "<" );
			sUserName = sUserName.replace( "&gt;", ">" );
			sUserName = sUserName.replace( "&quot;", "\"" );
			sUserName = sUserName.replace( "&#039;", "'" );
		}
		return sUserName; 
	}

	function isHaveBadWord( sWord )
	{
		for( var i = 0; i < m_ArrBadWords.length; i ++ )
		{
			if ( -1 != m_ArrBadWords[ i ].indexOf( sWord ) )
			{
				return true;
			}
		}
		return false;
	}	
}
