function selectMenu( thisobj )		//主导航鼠标滑过函数,带时间延迟              
{
	timer = setTimeout( function(){switchMenu(thisobj)}, 150);              
}
function switchMenu( objTab )
{
	if( typeof objTab == 'undefined' )
	{
		objTab = $j('#index').get(0);
	}
	f_id=objTab.parentNode.id;
	li_list=objTab.parentNode.getElementsByTagName("li");
	tagIndex=-1;
	for (i=0;i<li_list.length;i+=2){
		if (li_list[i]==objTab)
		{
			tagIndex=i;
			break;
		}
	}
	if (tagIndex==-1)
		return;
	for (i=0;i<li_list.length;i+=2){
		objTag=li_list[i];
		objTagDiv=document.getElementById(f_id+"_"+(i/2));
		if (tagIndex==i){
			objTag.className="c_menu";
			if( objTagDiv!=null )	objTagDiv.style.display='block';
		}else{
			objTag.className="";
			if( objTagDiv!=null )	objTagDiv.style.display='none';
		}
	}
}

function switchTab(objTab)
{
	f_id=objTab.parentNode.id;
	li_list=objTab.parentNode.getElementsByTagName("li");
	tagIndex=-1;
	for (i=0;i<li_list.length;i+=2){
		if (li_list[i]==objTab)
		{
			tagIndex=i;
			break;
		}
	}
	if (tagIndex==-1)
		return;
	for (i=0;i<li_list.length;i+=2){
		objTag=li_list[i];
		objTagDiv=document.getElementById(f_id+"_"+(i/2));
		if (tagIndex==i){
			objTag.className="c_nav";
			objTagDiv.style.display='block';
		}else{
			objTag.className="";
			objTagDiv.style.display='none';
		}
	}
}

function fn_SetSortOrder(  strCurrentColumn, strOrderByColumn ,strLinks )
{
	var nSortOrderDesc = 0;
	var query = location.search.substring(1); 
    var pairs = query.split("&"); 
	var strURL = '?';
	for(var i = 0; i < pairs.length; i++) { 
		var pos = pairs[i].indexOf('='); // Look for "name=value" 
		if (pos == -1) continue;		// If not found, skip 
		var argname = pairs[i].substring(0,pos);// Extract the name 
		var value = decodeURIComponent( pairs[i].substring(pos+1) );// Extract the value
		if( argname=='sort_order_desc' )
			nSortOrderDesc = 1 - value;
		if( argname!='sort_order' && argname!='sort_order_desc' && argname!='act' ){
			strURL = strURL + argname+'='+value+'&';
		}
	}
	strURL = strURL + 'sort_order=' + strCurrentColumn + "&sort_order_desc=" + nSortOrderDesc ;
	window.location = strURL ;
}
//信息提示函数，当有参数appear时，提示框将不会消失，默认无此参数
//delay_time为延迟消失的时间，默认为5000ms
function fn_message( message,appear,delay_time)
{
	if( message.length == 0 )	return false;
	var appear=appear && true;
	var delay_time=delay_time?delay_time:5000;
	if(appear)
	{
		$j('div#top_show').find('span').html(message).end().slideDown(100);
		$j("#top_show_close").show().hover(function(){$j(this).css('background','#fef');},function(){$j(this).css('background','none')}).click(function(){
			$j(this).parent('#top_show').slideUp();
		})
	}
	else
	{
		if($j('div#top_show').css('display') == 'block') return;
		$j('div#top_show').find('span').html('<img src="/images/icon_gt.gif" align="absmiddle">'+message).end().slideDown(100).delay(delay_time).slideUp();
	}
	
}

function fn_DisplayOrderImg ( strCurrentColumn, strOrderByColumn , nSortOrderDesc )
{
	if ( strOrderByColumn == strCurrentColumn )
	{
		if ( nSortOrderDesc == "1"  || nSortOrderDesc == "DESC" )
			document.write ( '<img src="images/zh-CN/order_down.gif" border="0">' ) ;
		else
			document.write ( '<img src="images/zh-CN/order_up.gif" border="0">' ) ;
	}
}

function AllSelect(form)
{
	for (var i=0;i<form.elements.length;i++)
	{
		var e = form.elements[i];
		e.checked = true;
	}
}
function ReverseSelect(form)
{
	for (var i=0;i<form.elements.length;i++)
	{
		var e = form.elements[i];
		if (e.checked == true){ e.checked = false; }
		else { e.checked = true;}
	}
}
// function to check required form element
function fn_CheckRequired ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	if( theElement.value == "" )
	{
		fn_message( "请您填写" +theElementName + "！" ) ;
		theElement.focus();
		return false ;
	}
	return true;
}

// function to check INT form element
function fn_CheckIntNumber ( theElement , theElementName )
{
	if( isNaN( parseInt ( theElement.value ) ) )
	{
		alert( "\"" + theElementName + "\"" + "不是一个有效的整数！" ) ;
		theElement.focus();
		return false ;
	}
	return true;
}

// function to check Float form element
function fn_CheckFloatNumber ( theElement , theElementName )
{
	if( isNaN( parseFloat ( theElement.value ) ) )
	{
		alert( "\"" + theElementName + "\"" + "不是一个有效的数字！" ) ;
		theElement.focus();
		return false ;
	}
	return true;
}

// function to check Email form element
function fn_CheckEmail ( theElement , theElementName )
{
	if( ! isEmail( theElement.value ) )
	{
		alert( "\"" + theElementName + "\"" + "不是一个有效的E-mail地址！" ) ;
		theElement.focus();
		return false ;
	}
	return true;
}
//function to check  password'complex
function fn_CheckPwd_Complex(input_pwd)
{
	var pwd=input_pwd.value;
	var not_equal=arguments[1];
	if(pwd.length<6 || /^(\d{6,9}|[a-z]{6,9})$/.test(pwd)){
		fn_message( "密码不符合安全规范，必须包括6位以上的字母与数字！" );
		input_pwd.focus();
		return false;
	}	
	else if(pwd == not_equal.value){
		fn_message( "为了您的安全，密码不能与账号相同!" );
		input_pwd.focus();
		return false;
	}
	else return true;
}
// function to check if 2 password match
function fn_ValidatePassword ( thePassword1 , thePasswordName1 , thePassword2 , thePasswordName2 )
{
	if ( thePassword1.value.length < 6 )
	{
		alert ( "\"" + thePasswordName1 + "\"至少要有6个字符！" ) ;
		thePassword1.value = "" ;
		thePassword1.focus ( ) ;
		return false ;
	}

	if ( thePassword2.value.length < 6 )
	{
		alert ( "\"" + thePasswordName2 + "\"至少要有6个字符！" ) ;
		thePassword2.value = "" ;
		thePassword2.focus ( ) ;
		return false ;
	}

	if ( thePassword1.value != thePassword2.value )
	{
		alert ( "两次输入的密码不符合！请重新输入。" )
		thePassword1.value = "" ;
		thePassword2.value = "" ;
		thePassword1.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check valid login name
function fn_ValidateLoginName ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}
	if ( ! fn_CheckLoginName ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"中只能包含字母、数字和\"-\"，\".\"，\"_\"字符！并且只字母字符开头！" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check valid domain name
function fn_ValidateDomainName ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}

	if ( ! fn_CheckDomainName ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"中只能包含字母、数字和\"-\"字符！并且不能以\"-\"字符开头！" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

function fn_ValidateDomainNameOnly ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	theElement.value = theElement.value.toLowerCase() ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}

	if ( ! fn_CheckDomainNameOnly ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"中只能包含字母、数字和\"-\"字符！并且不能以\"-\"字符开头！" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check valid CN domain name
function fn_ValidateCNDomainName ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}

	if ( ! fn_CheckCNDomainName ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"中只能包含中文、字母、数字和\"-\"字符，不能以\"-\"字符开头或结束，至少需要含有一个中文文字，最多不超过20个字符!" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

function fn_ValidateCNDomainNameOnly ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	//theElement.value = theElement.value.toLowerCase() ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}

	if ( ! fn_CheckCNDomainNameOnly ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"中只能包含中文、字母、数字和\"-\"字符，不能以\"-\"字符开头或结束，至少需要含有一个中文文字，最多不超过20个字符!" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check valid ip address
function fn_ValidateIPAddress ( theElement , theElementName )
{
	theElement.value = trimString ( theElement.value ) ;
	if ( theElement.value == "" )
	{
	  alert ( "\"" + theElementName + "\"必须填写！" ) ;
	  theElement.focus ( ) ;
	  return false ;
	}

	if ( ! isIPAddress ( theElement.value ) )
	{
		alert ( "\"" + theElementName + "\"不是合法的IP地址！" ) ;
		theElement.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check valid ip address Group
function fn_ValidateIPAddressGroup ( theElement1 , theElementName1 , theElement2 , theElementName2 )
{
	theElement1.value = trimString ( theElement1.value ) ;
	if ( theElement1.value == "" )
	{
	  alert ( "\"" + theElementName1 + "\"必须填写！" ) ;
	  theElement1.focus ( ) ;
	  return false ;
	}

	if ( ! isIPAddress ( theElement1.value ) )
	{
		alert ( "\"" + theElementName1 + "\"不是合法的IP地址！" ) ;
		theElement1.focus ( ) ;
		return false ;
	}

	theElement2.value = trimString ( theElement2.value ) ;
	if ( theElement2.value == "" )
	{
	  alert ( "\"" + theElementName2 + "\"必须填写！" ) ;
	  theElement2.focus ( ) ;
	  return false ;
	}

	if ( ! isIPAddress ( theElement2.value ) )
	{
		alert ( "\"" + theElementName2 + "\"不是合法的IP地址！" ) ;
		theElement2.focus ( ) ;
		return false ;
	}
	return true ;
}

// function to check or uncheck all checkbox elements of a form by a select-all checkbox value
function fn_ChangeSelectAll( theForm , bSelected )
{
	for ( i = 0 ; i < theForm.elements.length ; i ++ )
	{
		obj = theForm.elements[i] ;
		if ( obj.type == "checkbox" )
		{
			obj.checked = bSelected ;
		}
	}
}

// function to set selected option of select form element by given option value
function fn_FillSelectInput ( theSelectInput , strSelectedValue )
{
	for ( i = 0 ; i < theSelectInput.length ; i ++ )
	{
		if ( theSelectInput.options [ i ].value == strSelectedValue )
		{
			theSelectInput.options[i].selected = true ;
			break ;
		}
	}
}

// function to build select input options of an object list
function fn_BuildOptions( nTotalCount , nItemPerPage , nStartItem )
{
	if( nItemPerPage == -1 )
		return "<option value=\"1\" selected>第1页</option>";

	nPages = Math.ceil( Number( nTotalCount ) / Number ( nItemPerPage ) ) ;

	nPage = Math.ceil( Number( nStartItem ) / Number ( nItemPerPage ) ) ;

	if( nPages > 1 )
	{
		strReturn = "<option value=\"1\">最前页</option>" ;
	}else
	{
		strReturn = "" ;
	}

	if( nPage > 10 )
	{
		strReturn += "<option value=\"" + (nPage-1) + "\">前10页</option>" ;
		nStart = nPage-1 ;
	}else
	{
		nStart = 0 ;
	}

	nEnd = Math.min( nPages , nStart + 10 ) ;
	//alert(nStart);
	//alert(nEnd);
	for( nLoopCount = nStart ; nLoopCount < nEnd ; nLoopCount++ )
	{
		strReturn += "<option value=\"" + (nLoopCount+1) + "\"" ;

		if( nLoopCount == nPage-1 )
			strReturn += " selected " ;

		strReturn += ">第" + (nLoopCount+1) + "页</option>" ;
	}

	if( nPages > nEnd )
	{
		strReturn += "<option value=\"" + (nEnd+1) + "\">后10页</option>" ;
	}

	if( nPages > 1 )
	{
		strReturn += "<option value=\"" + nPages + "\">最后页</option>" ;
	}

	return strReturn;
}

function fn_IsFormChanged( theForm )
{
	var i;
	var obj;
	for( i=0; i<theForm.elements.length; i++ )
	{
		obj = theForm.elements[i];
		if( obj.type == "text" || obj.type == "password" || obj.type == "textarea" )
		{
			if( obj.value != obj.defaultValue )
				return true;
		}else if( obj.type == "checkbox" )
		{
			if( obj.checked != obj.defaultChecked )
				return true;
		}else if( obj.type == "select-one" )
		{
			if( !obj.options[obj.selectedIndex].defaultSelected )
				return true;
		}else if( obj.type == "radio" )
		{
			if (obj.defaultChecked!=obj.checked)
			{
				return true;
			}
		}
	}

	return false;
}

function fn_FillRadioInput ( theRadioInput , strSelectedValue )
{
	for ( i = 0 ; i < theRadioInput.length ; i ++ )
	{
		if ( theRadioInput [ i ].value == strSelectedValue )
		{
			theRadioInput[i].checked = true ;
			break ;
		}
	}
}

function fn_BuildSelectOptions(theSelect,theOptions,theDefaultValue)
{
	while ( theSelect.options.length > 0 && theSelect.options[theSelect.options.length-1].value != "" )
		theSelect.options[theSelect.options.length-1] = null;

	for (var i=0; theOptions[i] && theOptions[i+1]; i+=2)
	{
		theSelect.options[theSelect.options.length] = new Option(theOptions[i+1]);
		theSelect.options[theSelect.options.length-1].value = theOptions[i];
		if ( theOptions[i] == theDefaultValue )
		{
			theSelect.options[theSelect.options.length-1].selected = 1;
		}
	}
}

function isTelephone(str)
{
	regExp = /^[0-9]+(\-[0-9]+){1,2}$/ ;
	return regExp.test ( str ) ;
}

function isPostcode(str)
{
	regExp = /^[0-9]{6,6}$/ ;
	return regExp.test ( str ) ;
}

function fn_DoDefaultSelect ( theSelect , theDefaultValue )
{
	if ( theSelect )
	{
		for ( var i=0; i<theSelect.options.length; i++ )
		{
			if ( theSelect.options[i].value == theDefaultValue )
			{
				theSelect.selectedIndex = i ;
				break;
			}
		}
	}
}

function isMobile(str)
{
	regExp = /^[0-9]{11,11}$/ ;
	return regExp.test ( str ) ;
}

function isIDNumber(str)
{
	regExp1 = /^[0-9]{17,17}[0-9xX]$/ ;
	regExp2 = /^[0-9]{15,15}$/ ;
	return (regExp1.test ( str ) || regExp2.test ( str ));
}

function CreateXMLHTTPObject()
{
	var xObject = null;
	try 
	{
		xObject = new ActiveXObject("Msxml2.xmlhttp.4.0");
	}
	catch (e)
	{
		try
		{
			xObject = new XMLHttpRequest(); 
			if(xObject.overrideMimeType){
				xObject.overrideMimeType('text/xml');
			}
		}
		catch (e)
		{
			try 
			{
				xObject = new ActiveXObject("Msxml2.xmlhttp");
			} 
			catch (e) 
			{
				try 
				{
					xObject = new ActiveXObject("Microsoft.xmlhttp");
				} 
				catch (e) 
				{	
					alert("Error: Unable to create XML HTTP object!");
				}
			}
		}
	}
	return xObject;
}

function initRequest(){
	request = CreateXMLHTTPObject(); 
}
