﻿//
// JS 相关的方法 //
//


// ##########################################################################
// ####################### Debug相关的操作 ################################
// #########################################################################

// debug 的配置
var debug = ",1,";

var VArray = new Array();
var VSwapArray = new Array();
var VCtrlClassArray = new Array();
var VListControlClassArray = new Array();
var VUploadFileAttrClassArray = new Array();
var VUploadFileValueClassArray = new Array();

var StringFlagContains = 1;
var StringFlagHead = 2;
var StringFlagEnd = 4;
var StringFlagIgnoreCase = 8;
var StringFlagFindFlag = 16;

var ListControlOptionALL = 0;
var ListControlOptionValue = 1;
var ListControlOptionText = 2;

// var CanoeDDD = new Array();

// ##########################################################
// 字符串属性的操作
// ##########################################################

String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g,"");
}

function string_ltrim() 
{
	var str = this.replace(/(\s*)(.*)/g, "$2");
	return str;
}

function string_rtrim() 
{
	var str = this.reverse();
	var str = str.ltrim();
	var str = str.reverse();
	return str;
}

function string_reverse() {
	var str = "";
	for(var i=this.length-1;i>=0;i--) {
		str = str + this.substr(i, 1);
	}
	return str;
}

// 是否为空（过滤和空格）
function string_isBlank()
{
	var str = this.trim();
	if(str.length>0)
	{
		return false;
	}
	else
	{
		return true;
	}
}

// 是否为纯数字 //
function string_isNumber()
{
	var str = this.trim();
	var found;
	for(var i=0;i<str.length;i++)
	{
		var c = str.substr(i,1);
		if(c=="0"||c=="1"||c=="2"||c=="3"||c=="4"||c=="5"||c=="6"||c=="7"||c=="8"||c=="9")
			found = false;
		else
			found = true;		
		
		if(found)
			return false;
	}
	return true;
}



String.prototype.ltrim = string_ltrim;
String.prototype.rtrim = string_rtrim;
String.prototype.reverse = string_reverse;
String.prototype.isBlank = string_isBlank;
String.prototype.isNumber = string_isNumber;

// ##########################################################
// 字符串属性的操作 End
// ##########################################################

//
// DEBUG提示
//
function DebugAlert(obj,objIdx)
{
    if(objIdx == "")
        return false;
        
    if(IsContains(debug,"," + objIdx + ","))
    {
        alert(obj);
    }

    return true;
}

// ##########################################################################
// ###################### Debug相关的操作END ##############################
// #########################################################################



// ###########################################################################
// ####################### 控件的基础操作 #################################
// #########################################################################


// 通过控件ID获得对应的控件 //
function $(objID)
{
    if(document == null)
        return null;
        
	return document.getElementById(objID);
}

// 通过控件ID获得对应的控件的Value值 //
function $V(objID,objDefault)
{
    var objCtrl = document.getElementById(objID);
    if(objCtrl == null)
        return objDefault;
    else
        return objCtrl.value;        
        
}

// 通过控件ID获得对应的控件被trim后的Value值 //
function $VT(objID,objDefault)
{
    var objValue = $V(objID,objDefault).trim();   
    return objValue;
}

// 通过控件ID，获得对应控件是否被选中
function $VC(objID)
{
    return $VCD(objID,false);
}
// 通过控件ID，获得对应控件是否被选中
function $VCD(objID,objDefault)
{
    var obj = $(objID);
    if(obj == null)
        return objDefault;
    else
        return obj.checked;
}

// 通过控件ID，获得对应控件的escape值
function $VTE(objID,objDefault)
{
    var objValue = $V(objID,objDefault).trim(); 
    if(objValue == "")
        return "";  
    else        
        return escape(objValue);
}

// 通过控件ID，获得对应控件的Int型值
function $VNum(objID,objDefault)
{
    var objValue = $VT(objID);
    
    if(objValue == null || objValue == "")
        return objDefault;
    else
    {
        if(!IsAllDigit(objValue))        
            return objDefault;
        else
            return parseInt(objValue,10);
    }
}

function GetCtrlValueByCtrlIdAndCtrlType(objCtrlId,objCtrlType)
{
    var objTmpCtrlType = GetLowerCase(objCtrlType);
    var objReturn = "";
    
    if(IsContainsAll(objTmpCtrlType,"RadioButtonList",true))
    {
        objReturn = GetRadioButtunListValueByPreIdName(objCtrlId+"_");
        
        if(objReturn == null)
            return "";
    }
    else if(IsContainsAll(objTmpCtrlType,"CheckBoxList",true))
    {
        objReturn = GetCheckBoxListIdxSByPreIdName(objCtrlId+"_");
        
        if(objReturn == null)
            return "";

    }
    else
    {
        var objThis = $(objCtrlId);
        
        if(objThis == null)
            return null;
            
        var objType = GetLowerCase(objThis.type);
        var objTagName = GetLowerCase(objThis.tagName);      

        if(objType == "text"
                || objType == "hidden"  
                || objType == "password"
                || objTagName == "select"
                || objTagName == "textarea"
                )   
        {
            return objThis.value;
        } 
        else if(objType == "checkbox" || objType == "radio")    
        {
            return objThis.checked;
        }
        else if(objTagName == "div" 
            || objTagName == "span" 
            || objTagName == "label" 
            || objTagName == "table" 
            || objTagName == "tbody" 
            || objTagName == "tr" 
            || objTagName == "td" 
            || objTagName == "th" )
        {
            return objThis.innerHTML;
        }
        else 
            return "";
    }
            
}

// 类的操作
function $ValueClass(objId,objDefault,objIsTrim,objType)
{
    var objThis = $(objId);
    
    if(objThis == null)
    {
        return GetRetClass(2,objDefault,"");
        
    }
    else
    { 
        if(GetLowerCase(objThis.type) == "text"
            || GetLowerCase(objThis.type) == "hidden"  
            || GetLowerCase(objThis.type) == "password"
            || GetLowerCase(objThis.tagName) == "select"
            || GetLowerCase(objThis.tagName) == "textarea"
            )
        {

            var objValue = objThis.value;
            
            
            if(objIsTrim)
            {
                objValue = ("" + objValue).trim();
            }

            if(objType == "string")
                return GetRetClass(1,objValue,objValue);
            else if(objType == "int")
            {
                var objReturnValue = GetIntNumberClass(objValue,objDefault);   

                return objReturnValue;
            }
            else if(objType == "float")
            {
                var objReturnValue = GetTheNumberClass(objValue,objDefault);   
                return objReturnValue;
            }
            else if(objType == "bool")                
            {
                if(objValue == "1")
                    return GetRetClass(1,true,objValue);
                else
                    return GetRetClass(1,false,objValue);
            }
            else 
                return GetRetClass(1,objValue,objValue);
        }
        else if(objThis.type=="checkbox" || objThis.type == "radio")
        {
            var objCheck = objThis.checked;
            
            if(objType == "bool")            
                return GetRetClass(1,objCheck,objCheck);
            else if(objType == "string")
                return GetRetClass(1,((objCheck) ? "1":"0"),objCheck);
            else if(objType == "int" || objType == "float")
                return GetRetClass(1,((objCheck) ? 1:0),objCheck);
            else 
                return GetRetClass(1,objCheck,objCheck);           
        }
        else
        {
            return GetRetClass(1,objDefault,objCheck);
        }
                
    }  
}

function $Value(objId,objDefault,objIsTrim,objType)
{
    var objRetClass = $ValueClass(objId,objDefault,objIsTrim,objType);
    
    if(objRetClass==null)
        return objDefault;     
    else
        return objRetClass.Value;       
}

// 获得控件的位置
function getOffsetTop(elm) 
{
    if(elm == null)
        return 0;
        
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	
	while(mOffsetParent)
	{
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	
	return mOffsetTop;
}

function getOffsetLeft(elm) 
{
    if(elm == null)
        return 0;
        
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	while(mOffsetParent) 
	{
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	return mOffsetLeft;
}

function GetValue(obj)
{
    return GetValueNullToDefault(obj,"");
}

function GetValueNullToDefault(obj,objDefault)
{
    if(obj == null || obj.value == null)
        return objDefault;

    return obj.value; 
}

// 获得控件的父控件
function GetParentElement(objThis)
{
    if(objThis == null)
        return null;
        
    return objThis.parentElement;            
}

// 循环打印控件
function WhileParent(objThis)
{
    while(true)
    {
        if(objThis == null)
            break;
            
        alert(objThis.id + " ~ " + objThis.tagName + " ~ " + objThis.type);
        
        objThis = objThis.parentElement;
                    
    }
}

// 

// ##########################################################################
// ####################### JS 相关的配置 ##################################
// #########################################################################


function GetNavigatorIsIE()
{
    if(window == null || window.navigator == null || window.navigator.userAgent == null)
        return false; 
        
    return (window.navigator.userAgent.indexOf("MSIE")>=1);
    
}

function GetType(objName)
{
    return typeof(objName);
}

function IsBooleanType(objName)
{
    return (GetType(objName) == "boolean");
}

function IsStringType(objName)
{
    return (GetType(objName) == "string");
}

function IsNumberType(objName)
{
    return (GetType(objName) == "number");
}

function IsIntType(objName)
{
    if(!IsNumberType(objName))
        return false;
        
    return IsTheInt(objName);        
}

function IsObj(objName)
{
    return (GetType(objName) != "undefined");
}

function IsObjType(objName,objType)
{
    return (GetType(objName) == objType);
}


// 获得控件
function GetCtrlObj(objId)
{
    if(typeof($) == "undefined")
    {
        return document.getElementById(objId);
    }
    else
    {
        return $(objId);
    }
}

// 获得PhyPath
function GetPhyPath()
{
   
    //  
    if(typeof(objCommonPhyPath) == "undefined")
    {   
        return "/WebSite";
    }
    else
    {
        return objCommonPhyPath;
    }
}

function GetNoImage()
{
    if(typeof(objCommonNoImage) == "undefined")
    {   
        return GetPhyPath() + "/images/noimage/noimage.jpg";
    }
    else
    {
        return objCommonNoImage;
    }
}

// 是否锁屏 //
var bDivIsLock = false;

// 是否IE //
var isIE = GetNavigatorIsIE();
// 网站URL //
var strSiteUrl = "http://www.163.cn/";
// 网站名称 //
var strSiteName = "163.CN信息龙";
// 滚动的图片地址 //
var ImgProgress = "<img src='" + GetPhyPath() + "/images/progress.gif' />";

// 是否自适应 //
var IsResize = false;
// 是否置顶 
var IsTop = false;


// ##########################################################################
// ########################### 浏览器相关的配置 ##########################
// #########################################################################

var ua = navigator.userAgent;
var $IE = (navigator.appName == "Microsoft Internet Explorer");
var $IE5 = $IE && (ua.indexOf('MSIE 5') != -1);
var $IE5_0 = $IE && (ua.indexOf('MSIE 5.0') != -1);
var $Gecko = ua.indexOf('Gecko') != -1;
var $Safari = ua.indexOf('Safari') != -1;
var $Opera = ua.indexOf('Opera') != -1;
var $Mac = ua.indexOf('Mac') != -1;
var $NS7 = ua.indexOf('Netscape/7') != -1;
var $NS71 = ua.indexOf('Netscape/7.1') != -1;
	
if ($Opera) 
{
	$IE = true;
	$Gecko = false;
	$Safari =  false;
}
if ($IE5) 
{
        $IE = true;
        $Gecko = false;
        $Safari =  false;
}

// ##########################################################################
// ########################## 浏览器相关的配置END ########################
// #########################################################################


function GetCtrl(objThis,objCtrlId)
{
    if(objThis == null)
        objThis = $(objCtrlId);
        
    return objThis;        
}

// ##########################################################################
// ####################### 控件的可见与不可见操作 #######################
// #########################################################################

// 判断控件是否可见
function IsShowByCtrlIdAndCtrlType(objCtrlId,objCtrlType)
{
    return IsShow($(objCtrlId)); 
}

// 判断控件是否可见
function IsShow(objThis)
{
    if(objThis == null)
        return false;

    var bFlag = IsVisible(objThis);        
    
    if(!bFlag)
        return false;
        
    if(IsHidden(objThis))
        return false;        

    while(true)
    {
        objThis = GetParentElement(objThis);

        if(objThis == null)
            return true;
            
        bFlag = IsVisible(objThis);            
        
        if(!bFlag)
            return false;
            
        if(IsHidden(objThis))
            return false;              
    }

    return true;
    
}

function IsHidden(objThis)
{
    if(objThis == null)
        return false;
        
    var IsInput = StringCompare(objThis.tagName ,"input",true,true);    
    var IsHidden = StringCompare(objThis.type ,"hidden",true,true);    
    
    // alert(objThis.type + " ~ " + objThis.tagName);
    
    return IsInput && IsHidden;
}

function IsVisible(objThis)
{
    if(objThis == null)
        return false;
        
    return !(StringCompare(objThis.style.display,"none",true,true) || StringCompare(objThis.style.visibility,"hidden",true,true));       
}

// 更改控件的display //
function ChangeCtrlDisplay(objCtrl)
{
    if(objCtrl == null)
        return false;
        
    var objStyle = GetCtrlDisplay(objCtrl,"none");

    if(objStyle == "none")
        SetCtrlDisplay(objCtrl,"");
    else               
        SetCtrlDisplay(objCtrl,"none");
        
    return true;        
}

// 获得控件的display //
function GetCtrlDisplay(objCtrl,objDefault)
{
    if(objCtrl == null)
        return objDefault;
    else
        return objCtrl.style.display; 
}

// 设置控件的display //
function SetCtrlDisplay(objCtrl,objDefault)
{
    objDefault = GetTextNullToDefault(objDefault,"");

    if(objCtrl == null)
        return false;

    objCtrl.style.display = objDefault;
    
    return true;    
}


function SetCtrlDisplayByBoolean(objCtrl,objFlag)
{
    if(objCtrl == null)
        return false;

    if(objFlag)
        objCtrl.style.display = "block";
    else        
        objCtrl.style.display = "none";

    return true;    
}


// 更改控件的display //
function ChangeCtrlVisibility(objCtrl)
{
    if(objCtrl == null)
        return false;
        
    var objStyle = GetCtrlVisibility(objCtrl,"visible");
    
    if(objStyle == "visible")
        SetCtrlVisibility(objCtrl,"hidden");
    else               
        SetCtrlVisibility(objCtrl,"visible");
        
    return true;        
}

// 获得控件的display //
function GetCtrlVisibility(objCtrl,objDefault)
{
    objDefault = GetTextNullToDefault(objDefault,"visible");
        
    if(objCtrl == null)
        return objDefault;
    else
        return objCtrl.style.visibility; 
}

// 设置控件的display //
function SetCtrlVisibility(objCtrl,objDefault)
{
    objDefault = GetTextNullToDefault(objDefault,"visible");

    if(objCtrl == null)
        return false;

    objCtrl.style.visibility = objDefault;

    return true;    
}

function SetCtrlVisibilityByBoolean(objCtrl,objFlag)
{
    if(objCtrl == null)
        return false;

    if(objFlag)
        objCtrl.style.visibility = "visible";
    else        
        objCtrl.style.visibility = "hidden";

    return true;    
}


// ##########################################################################
// ########################### 字符串相关的操作 ##########################
// #########################################################################

// 添加字符串 //
function HeadLinkStringText(objAddChar,objStrText,objStr)
{
    if(objStr == null)
        objStr = "";
        
    if(objAddChar == null)
        objAddChar = ",";
        
    if(objStrText == null || objStrText == "")
        return objStr;
        
    if(objStr == "")
        objStr = objStrText;
    else
        objStr = objStr + objAddChar + objStrText;

    return objStr;                
}

function StringGetHeadBySplit(objStr,objSplit)
{
    objStr = GetTextNullToEmpty(objStr);
    
    var objSplitIndex = objStr.indexOf(objSplit);

    if(objSplitIndex == -1)
        return objStr;
    else
        return objStr.substr(0,objSplitIndex);
}

function StringGetEndBySplit(objStr,objSplit)
{
    objStr = GetTextNullToEmpty(objStr);
    
    var objSplitIndex = objStr.indexOf(objSplit);
    
    if(objSplitIndex == -1)
        return "";
    else
        return objStr.substr(objSplitIndex + objSplit.length);
}

// 截断字符
function SubStr(str,idx)
{
    return SubStr2(str,idx,-1);
}

// 截断字符
function SubStr2(str,idx,iSize)
{
    if(str == null)
        return "";
    
    if(idx < 0)
        return "";

    if(iSize == 0)
        return "";
        
    if(iSize == -1)
        return str.substr(idx);
    else        
        return str.substr(idx,iSize);
}


// 获得length //
function GetLength(strTemp)
{
    if(strTemp == null)
        return 0;

    return strTemp.length;
}

// 获得字数方法
function GetStrLength(strTemp)
{
    if(strTemp == null
        || strTemp == "")
        return 0;
        
	var i = 0;
	var sum = 0;
    var iLen = GetLength(strTemp);

	sum=0;

	for(i=0; i < iLen; i++)
	{
		if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255)) 
			sum = sum + 1;
		else 
			sum = sum + 2;
	}
	return sum;
}

// 
// 截断字符 //
// 
function SubStringPro(str, length)
{
	var stri = '';
	var i = 0;
	var j = 0;
	var strLen = str.length;
	
	// alert(strLen);
	
	for(i=0,j=0; j<length && i < strLen;)
	{
		if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255)) {
			stri += str.charAt(i);
			j++;
		} else {
			stri += str.charAt(i);
			j += 2;
		}
		i++;
	}
	
	return stri;
}

function StringCompare(objOne,objTwo,isTrim,isLower)
{
    if(objOne == null || objTwo == null)
    {
        return (objOne == objTwo);
    }
    
    var one = "" + objOne;
    var two = "" + objTwo;
    
    if(isTrim)
    {
        one = one.trim();
        two = two.trim();
    }
    
    if(isLower)
    {
        one = GetLowerCase(one);
        two = GetLowerCase(two);
    }
      
    return (one == two);        
            
}

function GetLowerCase(obj)
{
    return GetTextNullToEmpty(obj).toLowerCase();
}

function GetUpperCase(obj)
{
    return GetTextNullToEmpty(obj).toUpperCase();
}

function IsContains(obj,objItem)
{
    return IsContainsAll(obj,objItem,false);
}

function IsContainsAll(obj,objItem,objAll)
{
    if(obj == null || objItem == null)
        return false;

    if(objAll)
    {
        obj = GetLowerCase(obj);
        objItem = GetLowerCase(objItem);
    }     
    
    if(objItem == "")
        return true; 

    return (obj.indexOf(objItem) != -1);
            
}

//
// 是否为null
// 
function IsNull(objValue)
{
    return (objValue == null);
}

function IsNullOrNaN(objValue)
{
    return IsNull(objValue) || isNaN(objValue);
}

//
// 是否为null或为空
//
function IsNullOrEmpty(objValue)
{
    if(objValue == null)
        return true;

    return (("" + objValue) == "");
}

function IsNullOrEmptyOrNaN(objValue)
{
    return IsNullOrEmpty(objValue) || isNaN(objValue);
}

//
// 是否为null或为空，trim()后是否为空
// 
function IsNullOrEmptyAndBlank(objValue)
{
    return (GetTrimText(objValue) == "");
}

function IsNullOrEmptyAndBlankOrNaN(objValue)
{
    return IsNullOrEmptyAndBlank(objValue) || isNaN(objValue);
}


// 把null转换成default
function GetTextNullToDefault(objValue,objDefault)
{
    if(objValue == null)
        return objDefault;
    else
        return objValue;
}

function GetTextNullOrEmptyToDefault(objValue,objDefault)
{
    if(IsNullOrEmpty(objValue))
        return objDefault;
    else
        return objValue;
}

function GetTextNullOrEmptyAndBlankToDefault(objValue,objDefault)
{
    if(IsNullOrEmptyAndBlank(objValue))
        return objDefault;
    else
        return objValue.trim();
}


// 把null转换成""
function GetTextNullToEmpty(objValue)
{
    return GetTextNullToDefault(objValue,"");
}

// 把string的空格trim掉
function GetTrimText(objValue)
{
    return Trim(objValue);    
}



// 把string的空格trim掉
function Trim(objValue)
{
    objValue = "" + GetTextNullToEmpty(objValue);
    return objValue.trim();
}

// 把string进行编码
function GetEncodeText(objValue)
{
    objValue = GetTextNullToEmpty(objValue);
    return escape(objValue);
}

// 把string，trim掉在编码
function GetEncodeTrimText(objValue)
{
    objValue = GetTrimText(objValue);
    return escape(objValue);
}

// 把string进行编码
function GetDecodeText(objValue)
{
    objValue = GetTextNullToEmpty(objValue);
    return unescape(objValue);
}

// 把string，trim掉在编码
function GetDecodeTrimText(objValue)
{
    objValue = GetTrimText(objValue);
    return unescape(objValue);
}

// 把string 转化成HTML相关的string 
function   GetHtmlString(str)   
{   
    if(str == null)
        return "";

    var iLen = GetLength(str);        
    var   s   =   "";   
    
    if   (str.length   ==   0)   
        return   "";   
        
    for   (var   i=0;   i< iLen;   i++)   
    {   
          switch   (str.substr(i,1))   
          {   
                  case   "<"     :   s   +=   "&lt;";       break;   
                  case   ">"     :   s   +=   "&gt;";       break;   
                  case   "&"     :   s   +=   "&amp;";     break;   
                  case   " "     :   s   +=   "&nbsp;";   break;   
                  case   "\""   :   s   +=   "&quot;";   break;   
                  case   "\n"   :   s   +=   "<br />";       break;   
                  default       :   s   +=   str.substr(i,1);   break;   
          }   
    }   
    return   s;   
}   

// ##########################################################################
// ########################### 控件区域 ###################################
// #########################################################################


// ##########################################################################
// ########################### 基础操作 ###################################
// #########################################################################

function GetCtrlId(obj)
{
    if(obj == null)
        return "";
    else
        return obj.id;        
}

function GetCtrlName(obj)
{
    if(obj == null)
        return "";
    else
        return obj.name;        
}

function CompareToChecked(objOne,objTwo)
{
    if(objOne == null || objTwo == null)
        return false;
        
    return (objOne.checked == objTwo.checked);        
}

function GetCtrlCheckFlagByCtrlIdAndFlag(objId,objFlag )
{
    return GetCtrlCheckFlagByCtrlAndFlag ($(objId),objFlag);
}

function GetCtrlCheckFlagByCtrlAndFlag(objId,objFlag )
{
    if(objId == null)
        return objFlag;
    else
        return objId.checked;        
} 
 
function SetCtrlCheckFlagByCtrlIdAndFlag(objId,objFlag )
{
    return SetCtrlCheckFlagByCtrlAndFlag ($(objId),objFlag);
}

function SetCtrlCheckFlagByCtrlAndFlag(objId,objFlag )
{
    if(objId == null)
        return false;
        
    objId.checked = objFlag; 
    
    if(typeof(ClearShowAnswer) != "undefined")
    {
        eval("ClearShowAnswer()");
    }
    
    return true;    
}
 
 
function SetCtrlCheckFlagByCtrlId (objId  )
{
    var obj = $(objId);
    if(obj == null)
        return false;
    else
    {
        obj.checked = !obj.checked;
        
        if(typeof(ClearShowAnswer) != "undefined")
        {
            eval("ClearShowAnswer()");
        }
    }
}

function OnSetValueByCtrlId(obj,objValue)
{
    return OnSetValueByCtrl($(obj),objValue);
}

function OnSetValueByCtrl(obj,objValue)
{
    if(obj == null)
        return false;
        
    obj.value = objValue;
    
    return true;
}

function OnSetClickByCtrlId(obj )
{
    return OnSetClickByCtrl($(obj) );
}

function OnSetClickByCtrl(obj )
{
    if(obj == null)
        return false;
        
    obj.click();

    return true;
}


function OnSetCheckedByCtrlId(obj,objChecked )
{
    return OnSetCheckedByCtrl($(obj),objChecked );
}

function OnSetCheckedByCtrl(obj,objChecked )
{
    if(obj == null)
        return false;
        
    obj.checked = objChecked;

    return true;
}

// ##########################################################################
// ########################### 基础操作END ################################
// ########################################################################


// ##########################################################################
// ################## innerText和innerHTML控件区域 ########################
// #########################################################################
 
// 设置DIV或Span的InnerHTML
function OnSetInnerHTMLValueByCtrlId(objId,objValue)
{
    return OnSetInnerHTMLValueByCtrl($(objId),objValue);
}

function OnSetInnerHTMLValueByCtrl(obj,objValue)
{
    if(obj == null)
        return false;

    obj.innerHTML = objValue;
}

function OnSetInnerTextValueByCtrlId(objId,objValue)
{
    return OnSetInnerTextValueByCtrl($(objId),objValue);
}

function OnSetInnerTextValueByCtrl(obj,objValue)
{
    if(obj == null)
        return false;
        
    obj.innerText = objValue;
}


// 设置DIV或Span的InnerHTML
function OnSetInnerHTMLValueByCtrlIdAndResponse(objId,objValue)
{
    return OnSetInnerHTMLValueByCtrlAndResponse($(objId),objValue);
}

function OnSetInnerHTMLValueByCtrlAndResponse(obj,objValue)
{
    if(obj == null || objValue == null)
        return false;

    obj.innerHTML = objValue.value;
}

function OnSetInnerTextValueByCtrlIdAndResponse(objId,objValue)
{
    return OnSetInnerTextValueByCtrlAndResponse($(objId),objValue);
}

function OnSetInnerTextValueByCtrlAndResponse(obj,objValue)
{
    if(obj == null || objValue == null)
        return false;

    obj.innerText = objValue.value;
}

// ##########################################################################
// ################# innerText和innerHTML控件区域END ######################
// #########################################################################

// ##########################################################################
// ########################### ListControl控件区域 ########################
// #########################################################################

function SetListControlNextSelectedIndexByCtrl(objCtrl)
{
    if(objCtrl == null)
        return false;
        
    var iIdx = GetListControlSelectedIndex(objCtrl);
    
    return SetListControlNextSelectedIndex(objCtrl,iIdx+1);    
}

function SetListControlNextSelectedIndex(objCtrl,objIndex)
{
    if(objCtrl == null)
        return false;
        
    var iLen = GetListControlLength(objCtrl);
    
    if(iLen == 0)
        return true;
        
    if(objIndex < 0)
        objIndex = 0; 
        
    if(iLen <= objIndex)                
    {
        objIndex = iLen - 1;
    }
    
    return SetListControlSelectedIndex(objCtrl,objIndex,0);
}


// 
// 获得ListControl（select）的Item个数
// 
function GetListControlLength(objCtrl)
{
    if(objCtrl == null)
        return 0;

    return objCtrl.length;        
}

// 
// 获得ListControl（select）的SelectedIndex
// 
function GetListControlSelectedIndex(objCtrl)
{
    if(objCtrl == null)
        return -1;
    
    return objCtrl.selectedIndex;            
}

//
// 是否NULL或空ListControl
// 
function IsNullOrEmptyListControl(objCtrl)
{
    return (objCtrl == null || GetListControlLength(objCtrl) == 0);
}

//
// 是否非（NULL或空ListControl）
// 
function IsNotNullOrEmptyListControl(objCtrl)
{
    return !IsNullOrEmptyListControl(objCtrl);
}

//
// 获得ListControl的选中的Value 
// 
function GetListControlSelectedValue(objCtrl,objDefault)
{
    if(IsNullOrEmptyListControl(objCtrl))
        return objDefault;

    return objCtrl.value;            
}

//
// 获得ListControl的选中的子项
// 
function GetListControlSelectedOption(objCtrl)
{
    if(IsNullOrEmptyListControl(objCtrl))
        return null;
    
    var objIndex = GetListControlSelectedIndex(objCtrl);
    if(!IsSelectedIndex(objCtrl,objIndex))
        return null;

    return objCtrl.options[objIndex];           
}

function GetListControlOptionByIdx(objCtrl,objIndex)
{
    if(IsNullOrEmptyListControl(objCtrl))
            return null;    
            
    if(!IsSelectedIndex(objCtrl,objIndex))
        return null;

    return objCtrl.options[objIndex];                     
}

//
// 获得ListControl的选中的Text
//
function GetListControlSelectedText(objCtrl,objDefault)
{
    var item = GetListControlSelectedOption(objCtrl);
    
    
    
    if(item == null)
        return objDefault;
    else
        return item.text;
}

//
// 设置ListControl（select）的SelectedIndex
// 
function SetListControlSelectedIndex(objCtrl,objIndex,objDefaultIndex)
{
    if(objCtrl == null)
        return -1;
        
    if(IsSelectedIndex(objCtrl,objIndex))      
        objCtrl.selectedIndex = objIndex;
    else if(IsSelectedIndex(objDefaultIndex))
        objCtrl.selectedIndex = objDefaultIndex;

    return objCtrl.selectedIndex;            
}

// 
// 是否有效的SelectIndex
// 
function IsSelectedIndex(objCtrl, objIndex)
{
    if(objCtrl == null)
        return false;
        
    return (objIndex >=0 && objIndex < GetListControlLength(objCtrl));         
}

//
// 通过selectedIndex获得ListControl的Value
// 
function GetListControlValueBySelectedIndex(objCtrl, selectedIndex,objDefaultValue)
{
    if(objCtrl == null)
        return objDefaultValue;
        
    if(IsSelectedIndex(objCtrl, selectedIndex)) 
    {
        return objCtrl.options[selectedIndex].value;
    }
    else
        return objDefaultValue;        
}

//
// 通过Value获得其对应的Index
// 
function GetListControlIndexByValue(objCtrl, objValue, objStartIndex)
{
    if(objCtrl == null || objValue == null)
        return false;
        
    var i = objStartIndex;
    if(i < 0)
        i = 0;

    var iLen = GetListControlLength(objCtrl);   

    
    for(; i < iLen; ++i)
    {
        if(GetListControlValueBySelectedIndex(objCtrl,i,null) == objValue)
            return i;
    }
    
    return -1;
}

//
// 通过Value获得ListControl（select）的SelectedIndex
// 

// 下拉框 DropDownList //
// 通过Value设置Select
function ListControlSelectedByValue(objCtrl,objValue)
{
    // 
    var objIndex = GetListControlIndexByValue(objCtrl,objValue,0);
    if(objIndex == -1)
        return -1;
    else
        return SetListControlSelectedIndex(objCtrl,objIndex,-1); 
}

function ListControlRemoveAll(objCtrl)
{
    if(objCtrl == null)
        return false;
        
	objCtrl.length = 0;
	
	/*
	var len=objCtrl.length;
	for(var i=len-1;i>=0;i--)
	{      
		obj.remove(i);  
	}
	*/
}	

function ListControlAddItem(ddl,objText,objValue)
{
    
    return ListControlInsertItem(ddl,objText,objValue,-1); 
}

function ListControlInsertItem(ddl,objText,objValue,objIdx)
{
    if(ddl == null || objText == null || objValue == null)
        return false;
    
    var iLen = GetLength(ddl);

    // var op = new Option(  objValue,objText);
    var op = new Option(objText,  objValue );

    if(objIdx < 0 || objIdx >= iLen)
        ddl.options.add(op);    
    else
        ddl.options.insert(objIdx ,op);    

    return true;    
}

function ListControlRemoveItem(ddl,idx)
{
    if(ddl == null)
        return false;

    var iLen = GetLength(ddl);
    
    if(iLen == 0)
        return true;

    if(idx == -1)
        ddl.remove(iLen-1);
    else if(idx < -1)
        return false;
    else        
    {
        if(idx >= iLen)
            return true;
        else
            ddl.remove(idx);
    }

    return true;         
}

function FindListControlIdxByValue(ddl,find, findFlag,fromIdx)
{
    return FindListControlIdx(ddl,find,ListControlOptionValue,findFlag,fromIdx);
}

function FindListControlIdxByText(ddl,find, findFlag,fromIdx)
{
    return FindListControlIdx(ddl,find,ListControlOptionText,findFlag,fromIdx);
}

function FindListControlIdx(ddl,find,type,findFlag,fromIdx)
{
    if(ddl == null)
        return -1;
        
    if(type != ListControlOptionALL && type != ListControlOptionText && type != ListControlOptionValue)
        return -1;        

    var iLen = GetLength(ddl);
    
    if(iLen == 0)
        return -1;
        
    if(fromIdx < 0)
        fromIdx = 0;

    var i = 0;
    
    var isFindValue = false;
    var isFindText = false;

    for(i = fromIdx; i < iLen; ++i)
    {
        var op = ddl.options[i];
        
        if(op == null)
            continue;
         
        isFindValue = StringFind(op.value,find,findFlag);
        isFindText = StringFind(StringRemoveTreeLine(op.text),find,findFlag);
        
        if(type == ListControlOptionValue)
        {
            if(isFindValue)
                return i;
        }
        
        if(type == ListControlOptionText)
        {
            if(isFindText)
                return i;
        }
        
        if(type == ListControlOptionALL)
        {
            if(isFindValue || isFindText)
                return i;
        }            
                    
    }
    
    return -1;
}

// ##########################################################################
// ######################## ListControl控件区域END ########################
// #########################################################################

// ##########################################################################
// ######################## CheckBoxList控件区域 ##########################
// #########################################################################

function GetCheckBoxListIdxSByPreIdName(objTheID,objAddChar,objCheck)
{
    var i = 0;
    var objReturn = "";

    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
    
        if(objCtrl.checked == objCheck)
        {
            if(objReturn == "")
                objReturn = i + "";
            else
                objReturn = objReturn + objAddChar + i; 
        }
    
        ++i;
    }
    
    return objReturn;
}

// ##########################################################################
// ##################### CheckBoxList控件区域END ##########################
// ########################################################################

// ##########################################################################
// ##################### RadioButtunList控件区域 ##########################
// ########################################################################

function RadioButtunListItemClick(objThis,objTheID,objArray)
{
    if(objTheID == null || objArray == null || objThis == null)
        return false;
        
    var objIdx = GetRadioButtunListIdxByCtrl(objThis,objTheID);
    
    if(objIdx == -1)
        return false;

    var iLen = GetLength(objArray);

    for(var i = 0; i < iLen; ++i)
    {
        SetCtrlDisplayByBoolean($(objArray[i]),(i == objIdx));
    }

    return true;        
}

function GetRadioButtunListIdxByCtrl(objThis, objTheID)
{
    if(objThis == null)
        return -1;

    var i = 0;

    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
            
        if(objCtrl == objThis)
            return i;

        ++i;
    }
    
    return -1;
    
}

// 通过ID获得radiobuttonlist的Value
function GetRadioButtunListValueByPreIdName(objTheID)
{
    var i = 0;
    var objReturn = "";
    
    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
    
        if(objCtrl.checked)
        {
            return objCtrl.value;
        }
    
        ++i;
    }
    
    return objReturn;
}

function GetRadioButtunListTextByPreIdName(objTheID)
{
    var i = 0;
    var objReturn = "";
    
    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
    
        if(objCtrl.checked)
        {
            var objP = objCtrl.parentElement;
            if(objP == null)
                return "";
            
            var objCN = objP.childNodes;
            
            if(objCN == null)
                return "";    
                
            if(((i*2)+1) > objCN.length)
                return "";   
                
            if(objCtrl.parentElement.childNodes[i*2+1] == null)
                return "";    
            else
                return objCtrl.parentElement.childNodes[i*2+1].innerText;
        }
    
        ++i;
    }
    
    return objReturn;
}


function GetRadioButtunListIdxByPreIdName(objTheID)
{
    var i = 0;
    var objReturn = "";
    
    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
    
        if(objCtrl.checked)
        {
            return i;
        }
    
        ++i;
    }
    
    return -1;
}

function SetRadioButtunListIdxByPreIdNameAndValue(objTheID,objValue)
{
    var i = 0;
    var objReturn = "";
    
    while(true)
    {
        var objCtrl = $(objTheID + i);
        if(objCtrl == null)
            break;
    
        if(objCtrl.value == objValue)
        {
            objCtrl.checked = true;
            return i;
        }

        ++i;
    }
    
    return -1;
}

// ##########################################################################
// ################### RadioButtunList控件区域END #########################
// ########################################################################


// #########################################################################
// ######################## Image相关的操作 ##############################
// ########################################################################
// 
// Image相关的操作
// 
function ImgChangeSize(val,h,w)
{
    if(val == null)
        return false;
        
    if(h <= 0)
        h = 200;
        
    if(w <= 0)
        w = 300; 

	var height = val.height;
	
	var width = val.width; 
	
	if(height > h && width<=w)
	{
		val.height = h;
	}
	else if(height <= h && width > w)
	{
		val.width = w;
	}
	else if(height > h && width > w)
	{
	    val.height = h;
	    val.width = w;
	}
	return true;
}

// 修改Image的src
function ImgChangeSrc(objThis,objUrl)
{
    objUrl = GetTrimText(GetTextNullToEmpty(objUrl));
    
    if(objUrl == "" || objThis == null)
        return false;

	objThis.src = objUrl;
	
	return true;
}

// 修改Image的alt
function ImgChangeAlt(objThis,objText)
{
    objText = GetTextNullToEmpty(objText);
    
    if(objThis == null)
        return false;

	objThis.alt = objText;
	
	return true;
}

// 修改Image的src和alt
function ImgChangeSrcAndAlt(objThis,objText,objUrl)
{
    if(!ImgChangeAlt(objThis,objText))
        return false;
        
    return ImgChangeSrc(objThis,objUrl);        
}

// #########################################################################
// ######################## Image相关的操作END ###########################
// ########################################################################

// #########################################################################
// ######################## 创建控件相关的操作 ##########################
// ########################################################################

// 
// 创建元素
// 
function CreateElement(myDoc,tagName,name,id,type,value)
{
    if(myDoc == null)
        myDoc = document;

    var element = null;
    try 
    {
        element = myDoc.createElement('<'+tagName+' name="'+name+'" />');
        element.id = id;
        element.type = type;
        element.value = value;
    }
    catch (e)
    {
    
    }
    if (!element)
    {
        element = myDoc.createElement(tagName);
        element.setAttribute("type",type);
        element.setAttribute("id",id);
        element.setAttribute("name",name);
        element.setAttribute("value",value);
   }
   return element;
} 

// 创建radio
function CreateRadio(myDoc,name,id,value,isChecked)
{
    if(myDoc == null)
        myDoc = document;

    var oRadio = null;
    if(isIE)
    {
        oRadio = myDoc.createElement("<input name='" + name + (isChecked ? "' checked='"+ isChecked +"'/>" : "' />"));
        oRadio.id = id;
        oRadio.type = "radio";
        oRadio.value = value;
    }
    else
    {
        oRadio = myDoc.createElement("input");
        oRadio.setAttribute("type","radio");
        oRadio.setAttribute("id",id);
        oRadio.setAttribute("name",name);
        oRadio.setAttribute("value",value);
        if(isChecked)
        {
            oRadio.setAttribute("checked",isChecked);
        }        
    }
    
    return oRadio;
}



function CreateImage(myDoc,theID,theName,TheSrc,TheAlt,TheCursor)
{
    if(myDoc == null)
        myDoc = document;
        
    var element = null;
    try 
    {
        element = myDoc.createElement('<img name="'+theName+'" />');
        element.id = theID;
        element.src = TheSrc;
        element.alt = TheAlt;
        
        if(TheCursor != "")
        {
            element.style.cursor = TheCursor;
        }
        
    }
    catch (e)
    {
    
    }
    if (!element)
    {
        element = myDoc.createElement(img);
        element.setAttribute("id",theID);
        element.setAttribute("name",theName);
        element.setAttribute("src",TheSrc);
        element.setAttribute("alt",TheAlt);
        
        if(TheCursor != "")
        {
            element.setAttribute("style","cursor:" + TheCursor + ";");
        }
   }
   return element;
}





function CreateCtrl(myDoc,tagName,name,id,value)
{
    return CreateCtrlForServer(myDoc,tagName,name,id,value,false);
}

function CreateCtrlForServer(myDoc,tagName,name,id,value,bServer)
{
    
    if(myDoc == null)
        myDoc = document;

    var lowerTagName = GetLowerCase(tagName); 

    var element = null;

    if(lowerTagName == "text"
            || lowerTagName == "hidden"  
            || lowerTagName == "password"
            || lowerTagName == "button"
            || lowerTagName == "checkbox"
            || lowerTagName == "radio")
    {
        element = myDoc.createElement("input");
        element.setAttribute("type",lowerTagName);
    }
    else        
        element = myDoc.createElement(tagName);
    
    if(id != null && id != "")
        element.setAttribute("id",id);
        
    if(name != null && name != "")         
        element.setAttribute("name",name);
        
    if(bServer)
        element.setAttribute("runat","server");       

    if(value != null && value != "")
    {


        if(lowerTagName == "text"
            || lowerTagName == "hidden"  
            || lowerTagName == "password"
            || lowerTagName == "button"
            || lowerTagName == "textarea"
            || lowerTagName == "checkbox"
            || lowerTagName == "radio"
            )    
        {
            element.setAttribute("value",value);            
        }   
        else 
        {
            if(lowerTagName == "div"
                || lowerTagName == "span"  
                || lowerTagName == "td"
                )            
            {
                element.innerHTML = value;
            }                
        }         
    }
    
    return element; 
}


function AddCtrl(objP,objItem )
{
    if(objP == null || objItem == null)
        return false;
        
    objP.appendChild(objItem);        
}

function RemoveCtrl(objP,objItem )
{
    if(objP == null || objItem == null)
        return false;
        
    objP.removeChild(objItem);        
}



// ##########################################################################
// ######################## 创建控件相关的操作END ########################
// #########################################################################


// ##########################################################################
// ########################### 控件区域END ################################
// #########################################################################

// ##########################################################################
// ########################### 文本操作区域 ###############################
// #########################################################################

// 
// 通过控件Id设置Value
// 
function SetValueByCtrlIdAndValue(objId,objValue)
{
    return SetValueByCtrlAndValue(GetCtrlObj(objId),objValue);
}

//
// 通过控件设置Value
// 
function SetValueByCtrlAndValue(objCtrl,objValue)
{
    objValue = GetTextNullToEmpty(objValue);

    if(objCtrl == null)
        return false;
    else
        objCtrl.value = objValue;            
    
}

function GetValueByCtrlAndValue(objCtrl,objValue)
{
    if(objCtrl == null)
        return objValue;
    else
        return objCtrl.value; 
}


// ##########################################################################
// ########################### 校验操作区域 ###############################
// #########################################################################

// 字符是否是数字
function IsDigit(cCheck)
{
	// 判断传入的字符是否是数字
    return (('0'<=cCheck) && (cCheck<='9'));
}

// 字符串是否是数字
function IsAllDigit(str)
{
	// 判断传入的字符串是否是数字
    if ((str == null) || (str.length == 0))
    {
        return false;
    }

    var chCurrent;
    
	for (i=0; i<str.length; i++)
    {
        chCurrent = str.charAt(i);
        if (!IsDigit(chCurrent))
        {
            return false;
		}
    }
	return true;
}

// 
function IsTheNumber(str)
{
	// 判断传入的字符串是否是数字
	//alert('cc');
    if (str == null)
		return false;
		
	str = str.trim();
	
	if(str.length == 0)
    {
        return false;
    }

	var i = 0;
	var bFind = false;
	
    var chCurrent = str.charAt(i);
	
	if(chCurrent == '-' || chCurrent == '+')
	{
		++i;
		chCurrent = str.charAt(i);
		if(!IsDigit(chCurrent)) 
			return false;
	}
	else if(!IsDigit(chCurrent)) 
		return false;
		
	++i;

	for (; i<str.length; ++i)
    {
        chCurrent = str.charAt(i);
        if (!IsDigit(chCurrent))
        {
			if(chCurrent == '.')
			{
				if(bFind)
					return false;
				
				bFind = true;
			}
			else
	            return false;
		}
    }
	return true;
}

function IsTheInt(str)
{
	// 判断传入的字符串是否是整型数
	//alert('cc');
    if (str == null)
		return false;
		
	str = str.trim();
	
	if(str.length == 0)
    {
        return false;
    }

	var i = 0; 

    var chCurrent = str.charAt(i);
	
	if(chCurrent == '-' || chCurrent == '+')
	{
		++i;
		chCurrent = str.charAt(i);
		if(!IsDigit(chCurrent)) 
			return false;
	}
	else if(!IsDigit(chCurrent)) 
		return false;
		
	++i;

	for (; i<str.length; ++i)
    {
        chCurrent = str.charAt(i);
        if (!IsDigit(chCurrent))
        {
            return false;
		}
    }
	return true;
}

// 判断传入的字符串是否是字符0-9
function IsAllDigitChar(str)
{
    if( str == null)
        return false;

	// 判断传入的字符串是否是字符a-zA-Z
	var reg = /[^0-9]/g;
	return (!reg.test(str.trim()));    
}

function IsAllChar(str)
{
    if( str == null)
        return false;
        
	// 判断传入的字符串是否是字符a-zA-Z
	var reg = /[^a-zA-Z]/g;
	return (!reg.test(str.trim()));
}

function IsCharAndNum(str)
{
    if( str == null)
        return false;
        
	// 判断传入的字符串是否是数字和字符a-zA-Z
	var reg = /[^0-9a-zA-Z]/g;
	return (!reg.test(str.trim()));
}

function IsASCII(str)
{
	// 判断传入的字符传是否是ASCII码
	if(str == null)
	    return false;

	var len = str.length;
	for(var i=0; i<len; i++)
	{
		if((parseInt(str.charCodeAt(i),10)<0)||(parseInt(str.charCodeAt(i),10)>255))
		{
			return false;
		}
	}
	return true;
}

// 是否时间 //
function IsValidDate( stringDate )
{
	// 判断是否是合法日期
	var strDate = Trim(stringDate);
	
	if(strDate.length != 8) 
	    return false;

	if(!IsAllDigitChar(strDate)) 
	    return false;
	    
	var nYear = parseInt( strDate.substring( 0, 4 ),10);
	
	var nMonth = parseInt(strDate.substring( 4, 6 ),10);
	
	var nDay = parseInt(strDate.substring( 6, 8 ),10);
	
	if( isNaN( nYear ) || isNaN(nMonth) || isNaN(nDay))
	    return false;
	    
    if(nMonth > 12 || nMonth <= 0 || nDay > 31 || nDay <= 0)
        return false;	

    return IsTheCorrectDay(nYear,nMonth,nDay); 

}

function IsValidTime( stringTime )
{
	// 判断是否是合法的时间
	var strTime = Trim(stringTime);
	
	if(strTime.length != 6) 
	    return false;
	    
	if(!IsAllDigit(strTime)) 
	    return false;
	    
	var nHour = strTime.substring( 0, 2 );
	
	var nMinute = strTime.substring( 2, 4 );
	
	var nSecond = strTime.substring( 4, 6 );
	
	if ( nHour >= 24 || nMinute >= 60 || nSecond >= 60 )
	{
		return false;
	}
	
	return true;
}

function IsValidEmail(email)
{
	// 判断是否是合法的Email
  var re = /\w+@\w+\.\w+/;
  if (re.test(email))
    return true;
  else
    return false;
}

function IsValidPhone(val)
{
    if(val == null)
        return false;

    if (val.length > 20) 
        return false;

    val = val.split(" ").join("");

    val = val.split("-").join("");

    if(val.indexOf("+")==0) 
        val=val.substring(1);

    return !isNaN(val);
}


//
// 是否手机号码
// 
function IsValidMobile(phone)
{
    //[+86]
    if(phone == null)
        return false;
        
    if(phone.indexOf("+86") == 0)
        phone = SubStr(phone,3);
    else if(phone.indexOf("(+86)") == 0)
        phone = SubStr(phone,5);
    else if(phone.indexOf("86") == 0)
        phone = SubStr(phone,2);
    else if(phone.indexOf("(86)") == 0)
        phone = SubStr(phone,4);        

    if(phone.indexOf("0") == 0)
        phone = SubStr(phone,1);

	var reg=/(^0{0,1}1[358][0-9]{9}$)/;
	var objPhoneRegResult = reg.test(Trim(phone));

    return objPhoneRegResult;
}

//
// 是否邮编
// 
function IsValidZip(zip)
{
    //[+86]
    if(zip == null)
        return false;
        
    zip = ("" + zip).trim();
    
    if(!IsAllDigitChar(zip))        
        return false;
        
    return (GetLength(zip) == 6); 
}

function CheckIDNumber(sID)
{
	// 身份证验证
	if(!(/^\d{15}$|^\d{18}$|^\d{17}[xX]$/.test(sID)))
	{
		return false;
	}
	
	return true;
}

// 判断字符个数范围 //
function CheckByteLength(str,minlen,maxlen) 
{
	// 传入字符串 //
	// 传出true/false //
	if (str == null) 
		return false;
		
	var l = str.length;
	var blen = 0;
	
	for(i=0; i<l; i++) 
	{
		if ((str.charCodeAt(i) & 0xff00) != 0) 
		{
			blen ++;
		}
		blen ++;
	}
	if (blen > maxlen || blen < minlen) 
	{
		return false;
	}
	return true;
} 

function validateUsernameByCtrl(objCtrl)
{
    if(objCtrl == null)
        return false;

    return validateUsername(objCtrl.value);
}

function validateUsername(obj)
{
    return validateUsernameByLen(obj,5,20);
}

function validateUsernameByLen(obj,one,two)
{
	// 
	if(obj == null)
		return false;

    if(one > two)
    {
        var tmp = one;
        one = two;
        two = tmp;
    }		
		
	var str = ("" + obj).trim();
	var patn =   /^[a-zA-Z0-9_]+$/; 

	if(!CheckByteLength(str,one,two)) 
		return false;
	
	if(!patn.test(str))
	{
		return false;
	}
	return true; 
}


// 验证密码
function validatePasswordByCtl(obj)
{
    if(obj == null)
        return false;
        
    return validatePassword(obj.value);            
}
    
function validatePassword(obj)
{
    return validatePasswordByLen(obj,6,20);
}

function validatePasswordByLen(obj,one,two)
{
    if(obj == null)
        return false;

    if(one > two)
    {
        var tmp = one;
        one = two;
        two = tmp;
    }	
 
    var str = obj+"";
    
    if(!CheckByteLength(str,one,two)) 
		return false;

	var patn1 = /^[ a-zA-Z0-9_]+$/;
	if( !patn1.test(str) ) 
		return false;
		
	return true; 
    
}


// 验证Email
function validateEmail(obj)
{
    if(obj == null)
        return false;
    else
        return validateEmailStr(obj.value);      
}

// 验证Email
function validateEmailStr(obj)
{
    if(obj == null || obj.trim() == "")
        return false;
        
	var str = obj.trim();
	
	var patn = /^[_a-zA-Z0-9\-]+(\.[_a-zA-Z0-9\-]*)*@[a-zA-Z0-9\-]+([\.][a-zA-Z0-9\-]+)+$/;
	if(patn.test(str))
	{
		return true;
	}else{
		return false; //incorrect format
	}
}

function CheckNumber(val)
{
   var patt=/^\d+$/;
   return patt.test(val) ;
}

function CheckNumberNotZero(val)
{
    var patt=/^[1-9]\d*$/
    return patt.test(val) ; 
}

// ##########################################################################
// ########################### 校验操作区域END ############################
// #########################################################################

// ##########################################################################
// ########################### 属性的操作 #################################
// #########################################################################




// ##########################################################################
// ########################### 属性的操作END ##############################
// #########################################################################



// ##########################################################################
// ########################### 提示的操作 #################################
// #########################################################################

function AlertNoEmpty(objMsg)
{
    objMsg = GetTextNullToEmpty(objMsg);
    
    if(objMsg == "")
        return;
        
    alert(objMsg);        
}

function MyAlert(objMsg,objThis)
{
    return MyAlertNoEmpty(objMsg,objThis,false);
}

function MyAlertNoEmpty(objMsg,objThis,objNoEmpty)
{
    if(objNoEmpty)
        AlertNoEmpty(objMsg);
    else        
        alert(objMsg);

    SetCtrlFocusAndSelect(objThis);

    return false;
}

function SetCtrlFocusAndSelect(objCtrl)
{
    // 
    if(objCtrl == null) 
        return false;

    if(!IsShow(objCtrl))
        return true;
        
    // alert("IsShow is false");        

    objCtrl.focus();       

    if(StringCompare( objCtrl.type,"text",true,true)
        || StringCompare("textarea" ,objCtrl.tagName,true,true))
    {
        objCtrl.select();        
    }
    
    return true;        
} 




// ##########################################################################
// ########################### 提示的操作END ##############################
// #########################################################################



// ##########################################################################
// ########################### 其它相关的操作 ############################
// ########################################################################

// 
// open 新窗口 //
// 
function MyOpen(objUrl)
{
    return MyOpenHW(objUrl,100,400);	
}

// 
// open 新窗口
// 
function MyOpenHW(objUrl,objH,objW)
{
    return window.open (objUrl, 'newwindow', 'height=' + objH + ', width=' + objW + ', top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes,resizable=yes,location=yes, status=yes');
}

// 
// 通过参数，打开URL（居中）
// 
function WinOpen(url,n,w,h)
{
        var left = (screen.width-w)/2;
        var top = (screen.height-h)/2;
        var f = "width="+w+",height="+h+",top="+top+",left="+left;
        window.open(url,n,f);
}

function WinOpenDialog(url,w,h)
{
    var feature = "dialogWidth:"+w+"px;dialogHeight:"+h+"px;center:yes;status:no;help:no";
    return showModalDialog(url,window,feature);
}


function MyShowModalDialog(url,w,h)
{
    return window.showModalDialog(url,"","dialogHeight: " + h + "px; dialogWidth:" + w + "px;center: yes; help: yes;resizable: yes; status: yes;");
}

function OnGo(objUrl)
{
    if(IsNullOrEmptyAndBlank(objUrl))
        objUrl = window.location;

    window.location = objUrl; 
}

function AddDate()
{
    var date=new Date();

    return "&thetimestamp="+date;
}


function OnBodyCopy()
{
    if(document == null || document.body == null || window == null)
        return;
        
    document.body.oncopy = function () 
    { 
        setTimeout( 
            function () 
            { 
                var text = clipboardData.getData("text");
                if (text) 
                { 
                    text = text + "\r\n文章来源: " + strSiteName + "(" + strSiteUrl + ") 出处："+ window.location.href; clipboardData.setData("text", text);
                } 
            }, 100 
        ) 
    }    
}

function GetCurLocation()
{
    if(window == null)
        return "";
        
    return window.location;        
}

function CopyCurUrl()
{
    var url = GetCurLocation();
    
    CopyToClipboard(url,"复制成功！");
}

//
// IE和firefox通用的复制到剪贴板的JS函数
// 
function CopyToClipboard(txt,objMessage) 
{        
    if(txt == null)
        txt = "";
        
    objMessage = GetTextNullToDefault(objMessage, "复制成功，^_^，请Ctrl+v粘贴到你的QQ或MSN上与好友分享！");      

    if(window.clipboardData)
    {
        window.clipboardData.clearData(); 
        window.clipboardData.setData("Text", txt);
        alert(objMessage);
    } 
     else if(navigator.userAgent.indexOf("Opera") != -1) 
     {
        window.location = txt;
     }
     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;
        var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
        if (!trans)
               return;
        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 = txt;
        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); 
        alert(objMessage); 
     } 
}  

//返回汉字的拼音的第一个字母
function GetPY(str)
{
    str = GetTextNullToEmpty(str);
    
    var ret = '';
    var iLen = GetLength(str);

    for(var i=0 ; i < iLen; ++i )
    {
        var ch = str.charAt(i);

        ret += CheckCh(ch);
    }
    
    return ret;
}

// 获得首字母
function CheckCh(ch)
{
    ch = GetTextNullToEmpty(ch);
    
    if(ch == "")
        return "";

    var uni = ch.charCodeAt(0);
    
    var strChineseFirstPY = 'ydyqsxmwzssxjbymgcczqpssqbycdscdqldylybssjgyzzjjfkcclzdhwdwzjljpfyynwjjtmyhzwzhflzppqhgscyyynjqyxxgjhhsdsjnkktmomlcrxypsnqseccqzggllyjlmyzzsecykyyhqwjssggyxyzyjwwkdjhychmyxjtlxjyqbyxzldwrdjrwysrldzjpcbzjjbrcftleczstzfxxzhtrqhybdlyczssymmrfmyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxypsftzyhhyzyswcjyxsclcxxwzzxnbgnnxbxlzszsbsgpysyzdhmdzbqbzcwdzzyytzhbtsyybzgntnxqywqskbphhlxgybfmjebjhhgqtjcysxstkzhlyckglysmzxyalmeldccxgzyrjxsdltyzcqkcnnjwhjtzzcqljststbnxbtyxceqxgkwjyflzqlyhyxspsfxlmpbysxxxydjczylllsjxfhjxpjbtffyabyxbhzzbjyzlwlczggbtssmdtjzxpthyqtgljscqfzkjzjqnlzwlslhdzbwjncjzyzsqqycqyrzcjjwybrtwpyftwexcskdzctbzhyzzyyjxzcffzzmjyxxsdzzottbzlqwfckszsxfyrlnyjmbdthjxsqqccsbxyytsyfbxdztgbcnslcyzzpsazyzzscjcshzqydxlbpjllmqxtydzxsqjtzpxlcglqtzwjbhctsyjsfxyejjtlbgxsxjmyjqqpfzasyjntydjxkjcdjszcbartdclyjqmwnqnclllkbybzzsyhqqltwlccxtxllzntylnewyzyxczxxgrkrmtcndnjtsyyssdqdghsdbjghrwrqlybglxhlgtgxbqjdzpyjsjyjctmrnymgrzjczgjmzmgxmpryxkjnymsgmzjymkmfxmldtgfbhcjhkylpfmdxlqjjsmtqgzsjlqdldgjycalcmzcsdjllnxdjffffjczfmzffpfkhkgdpsxktacjdhhzddcrrcfqyjkqccwjdxhwjlyllzgcfcqdsmlzpbjjplsbcjggdckkdezsqcckjgcgkdjtjdlzycxklqscgjcltfpcqczgwpjdqyzjjbyjhsjdzwgfsjgzkqcczllpspkjgqjhzzljplgjgjjthjjyjzczmlzlyqbgjwmljkxzdznjqsyzmljlljkywxmkjlhskjgbmclyymkxjqlbmllkmdxxkwyxyslmlpsjqqjqxyxfjtjdxmxxllcxqbsyjbgwymbggbcyxpjygpepfgdjgbhbnsqjyzjkjkhxqfgqzkfhygkhdkllsdjqxpqykybnqsxqnszswhbsxwhxwbzzxdmnsjbsbkbbzklylxgwxdrwyqzmywsjqlcjxxjxkjeqxscyetlzhlyyysdzpaqyzcmtlshtzcfyzyxyljsdcjqagyslcqlyyyshmrqqkldxzscsssydycjysfsjbfrsszqsbxxpxjysdrckgjlgdkzjzbdktcsyqpyhstcldjdhmxmcgxyzhjddtmhltxzxylymohyjcltyfbqqxpfbdfhhtksqhzyywcnxxcrwhowgyjlegwdqcwgfjycsntmytolbygwqwesjpwnmlrydzsztxyqpzgcwxhngpyxshmyqjxztdppbfyhzhtjyfdzwkgkzbldntsxhqeegzzylzmmzyjzgxzxkhkstxnxxwylyapsthxdwhzympxagkydxbhnhxkdpjnmyhylpmgocslnzhkxxlpzzlbmlsfbhhgygyyggbhscyaqtywlxtzqcezydqdqmmhtkllszhlsjzwfyhqswscwlqazynytlsxthaznkzzszzlaxxzwwctgqqtddyztcchyqzflxpslzygpzsznglndqtbdlxgtctajdkywnsyzljhhzzcwnyyzywmhychhyxhjkzwsxhzyxlyskqyspslyzwmyppkbyglkzhtyxaxqsyshxasmchkdscrswjpwxsgzjlwwschsjhsqnhcsegndaqtbaalzzmsstdqjcjktscjaxplggxhhgxxzcxpdmmhldgtybysjmxhmrcpxxjzckzxshmlqxxtthxwzfkhcczdytcjyxqhlxdhypjqxylsyydzozjnyxqezysqyayxwypdgxddxsppyzndltwrhxydxzzjhtcxmczlhpyyyymhzllhnxmylllmdcppxhmxdkycyrdltxjchhzzxzlcclylnzshzjzzlnnrlwhyqsnjhxyntttkyjpychhyegkcttwlgqrlggtgtygyhpyhylqyqgcwyqkpyyyttttlhyhlltyttsplkyzxgzwgpydsszzdqxskcqnmjjzzbxyqmjrtffbtkhzkbxljjkdxjtlbwfzpptkqtztgpdgntpjyfalqmkgxbdclzfhzclllladpmxdjhlcclgyhdzfgyddgcyyfgydxkssebdhykdkdkhnaxxybpbyyhxzqgaffqyjxdmljcsqzllpchbsxgjyndybyqspzwjlzksddtactbxzdyzypjzqsjnkktknjdjgyypgtlfyqkasdntcyhblwdzhbbydwjrygkzyheyyfjmsdtyfzjjhgcxplxhldwxxjkytcyksssmtwcttqzlpbszdzwzxgzagyktywxlhlspbclloqmmzsslcmbjcszzkydczjgqqdsmcytzqqlwzqzxssfpttfqmddzdshdtdwfhtdyzjyqjqkypbdjyyxtljhdrqxxxhaydhrjlklytwhllrllrcxylbwsrszzsymkzzhhkyhxksmdsydycjpbzbsqlfcxxxnxkxwywsdzyqoggqmmyhcdzttfjyybgstttybykjdhkyxbelhtypjqnfxfdykzhqkzbyjtzbxhfdxkdaswtawajldyjsfhbldnntnqjtjnchxfjsrfwhzfmdryjyjwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxzemmqbsqehxfzmbmflzzsrxymjgsxwzjsprydjsjgxhjjgljjynzzjxhgxkymlpyyycxytwqzswhwlyrjlpxslsxmfswwklctnxnynpsjszhdzeptxmyywxyysywlxjqzqxzdcleeelmcpjpclwbxsqhfwwtffjtnqjhjqdxhwlbyznfjlalkyyjldxhhycstyywnrjyxywtrmdrqhwqcmfjdyzmhmyyxjwmyzqzxtlmrspwwchaqbxygzypxyyrrclmpymgksjszysrmyjsnxtplnbappypylxyyzkynldzyjzcznnlmzhharqmpgwqtzmxxmllhgdzxyhxkyxycjmffyyhjfsbssqlxxndycannmtcjcyprrnytyqnyymbmsxndlylysljrlxysxqmllyzlzjjjkyzzcsfbzxxmstbjgnxyzhlxnmcwscyzyfzlxbrnnnylbnrtgzqysatswryhyjzmzdhzgzdwybsscskxsyhytxxgcqgxzzshyxjscrhmkkbxczjyjymkqhzjfnbhmqhysnjnzybknqmclgqhwlznzswxkhljhyybqlbfcdsxdldspfzpskjyzwzxzddxjsmmegjscssmgclxxkyyylnypwwwgydkzjgggzggsycknjwnjpcxbjjtqtjwdsspjxzxnzxumelpxfsxtllxcljxjjljzxctpswxlydhlyqrwhsycsqyybyaywjjjqfwqcqqcjqgxaldbzzyjgkgxpltzyfxjltpadkyqhpmatlcpdckbmtxybhklenxdleegqdymsawhzmljtwygxlyqzljeeyybqqffnlyxrdsctgjgxyynkllyqkcctlhjlqmkkzgcyygllljdzgydhzwxpysjbzkdzgyzzhywyfqytyzszyezzlymhjjhtsmqwyzlkyywzcsrkqytltdxwctyjklwsqzwbdcqyncjsrszjlkcdcdtlzzzacqqzzddxyplxzbqjylzlllqddzqjyjyjzyxnyyynyjxkxdazwyrdljyyyrjlxlldyxjcywywnqcclddnyyynyckczhxxcclgzqjgkwppcqqjysbzzxyjsqpxjpzbsbdsfnsfpzxhdwztdwpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpdgphtmjthzsmmbgzmbzjcfzwfzbbzmqcfmbdmcjxlgpnjbbxgyhyyjgptzgzmqbqtcgyxjxlwzkydpdymgcftpfxyztzxdzxtgkmtybbclbjaskytssqyymszxfjewlxllszbqjjjaklylxlycctsxmcwfkkkbsxlllljyxtyltjyytdpjhnhnnkbyqnfqyyzbyyessessgdyhfhwtcjbsdzztfdmxhcnjzymqwsryjdzjqpdqbbstjggfbkjbxtgqhngwjxjgdllthzhhyyyyyysxwtyyyccbdbpypzycczyjpzywcbdlfwzcwjdxxhyhlhwzzxjtczlcdpxujczzzlyxjjtxphfxwpywxzptdzzbdzcyhjhmlxbqxsbylrdtgjrrcttthytczwmxfytwwzcwjwxjywcskybzscctzqnhxnwxxkhkfhtswoccjybcmpzzykbnnzpbzhhzdlsyddytyfjpxyngfxbyqxcbhxcpsxtyzdmkysnxsxlhkmzxlyhdhkwhxxsskqyhhcjyxglhzxcsnhekdtgzxqypkdhextykcnymyyypkqyyykxzlthjqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqktlxkgnqcdgzjwyjjlyhhqtttnwchmxcxwhwszjydjccdbqcdgdnyxzthcqrxcbhztqcbxwgqwyybxhmbymyqtyexmqkyaqyrgyzslfykkqhyssqyshjgjcnxkzycxsbxyxhyylstycxqthysmgscpmmgcccccmtztasmgqzjhklosqylswtmxsyqkdzljqqyplsycztcqqpbbqjzclpkhqzyyxxdtddtsjcxffllchqxmjlwcjcxtspycxndtjshjwxdqqjskxyamylsjhmlalykxcyydmnmdqmxmcznncybzkkyflmchcmlhxrcjjhsylnmtjzgzgywjxsrxcwjgjqhqzdqjdcjjzkjkgdzqgjjyjylxzxxcdqhhheytmhlfsbdjsyyshfystczqlpbdrfrztzykywhszyqkwdqzrkmsynbcrxqbjyfazpzzedzcjywbcjwhyjbqszywryszptdkzpfpbnztklqyhbbzpnpptyzzybqnydcpjmmcycqmcyfzzdcmnlfpbplngqjtbttnjzpzbbznjkljqylnbzqhksjznggqszzkyxshpzsnbcgzkddzqanzhjkdrtlzlswjljzlywtjndjzjhxyayncbgtzcssqmnjpjytyswxzfkwjqtkhtzplbhsnjzsyzbwzzzzlsylsbjhdwwqpslmmfbjdwaqyztcjtbnnwzxqxcdslqgdsdpdzhjtqqpswlyyjzlgyxyzlctcbjtktyczjtqkbsjlgmgzdmcsgpynjzyqyyknxrpwszxmtncszzyxybyhyzaxywqcjtllckjjtjhgdxdxyqyzzbywdlwqcglzgjgqrqzczssbcrpcskydznxjsqgxssjmydnstztpbdltkzwxqwqtzexnqczgwezkssbybrtssslccgbpszqszlccglllzxhzqthczmqgyzqznmcocszjmmzsqpjygqljyjppldxrgzyxccsxhshgtznlzwzkjcxtcfcjxlbmqbczzwpqdnhxljcthyzlgylnlszzpcxdscqqhjqksxzpbajyemsmjtzdxlcjyryynwjbngzztmjxltbslyrzpylsscnxphllhyllqqzqlxymrsycxzlmmczltzsdwtjjllnzggqxpfskygyghbfzpdkmwghcxmsgdxjmcjzdycabxjdlnbcdqygskydqtxdjjyxmszqazdzfslqxyjsjzylbtxxwxqqzbjzufbblylwdsljhxjyzjwtdjczfqzqzzdzsxzzqlzcdzfjhyspympqzmlpplffxjjnzzylsjeyqzfpfzksywjjjhrdjzzxtxxglghydxcskyswmmzcwybazbjkshfhjcxmhfqhyxxyzftsjyzfxyxpzlchmzmbxhzzsxyfymncwdabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsnxqqjgzyzywllcwxzfxxyxyhxmkyyswsqmnlnaycyspmjkhwcqhylajjmzxhmmcnzhbhxclxtjpltxyjhdyylttxfszhyxxsjbjyayrsmxyplckduyhlxrlnllstyzyyqygyhhsccsmzctzqxkyqfpyyrpfflkquntszllzmwwtcqqyzwtllmlmpwmbzsstzrbpddtlqjjbxzcsrzqqygwcsxfwzlxccrszdzmcyggdzqsgtjswljmymmzyhfbjdgyxccpshxnzcsbsjyjgjmppwaffyfnxhyzxzylremzgzcyzsszdlljcsqfnxzkptxzgxjjgfmyyysnbtylbnlhpfzdcyfbmgqrrssszxysgtzrnydzzcdgpjafjfzknzblczszpsgcycjszlmlrszbzzldlsllysxsqzqlyxzlskkbrxbrbzcycxzzzeeyfgklzlyyhgzsgzlfjhgtgwkraajyzkzqtsshjjxdcyzuyjlzyrzdqqhgjzxsszbykjpbfrtjxllfqwjhylqtymblpzdxtzygbdhzzrbgxhwnjtjxlkscfsmwlsdqysjtxkzscfwjlbxftzlljzllqblsqmqqcgczfpbphzczjlpyyggdtgwdcfczqyyyqyssclxzsklzzzgffcqnwglhqyzjjczlqzzyjpjzzbpdccmhjgxdqdgdlzqmfgpsytsdyfwwdjzjysxyyczcyhzwpbykxrylybhkjksfxtzjmmckhlltnyymsyxyzpyjqycsycwmtjjkqyrhllqxpsgtlyycljscpxjyzfnmlrgjjtyzbxyzmsjyjhhfzqmsyxrszcwtlrtqzsstkxgqkgsptgcznjsjcqcxhmxggztqydjkzdlbzsxjlhyqgggthqszpyhjhhgyygkggcwjzzylczlxqsftgzslllmljskctbllzzszmmnytpzsxqhjcjyqxyzxzqzcpshkzzysxcdfgmwqrllqxrfztlystctmjcxjjxhjnxtnrztzfqyhqgllgcxszsjdjljcydsjtlnyxhszxcgjzyqpylfhdjsbpcczhjjjqzjqdybssllcmyttmqtbhjqnnygkyrqyqmzgcjkpdcgmyzhqllsllclmholzgdyyfzsljcqzlylzqjeshnylljxgjxlysyyyxnbzljsszcqqcjyllzltjyllzllbnylgqchxyyxoxcxqkyjxxxyklxsxxyqxcykqxqcsgyxxyqxygytqohxhxpyxxxulcyeychzzcbwqbbwjqzscszsslzylkdesjzwmymcytsdsxxscjpqqsqylyyzycmdjdzywcbtjsydjkcyddjlbdjjsodzysyxqqyxdhhgqqyqhdyxwgmmmajdybbbppbcmuupljzsmtxerxjmhqnutpjdcbssmssstkjtssmmtrcplzszmlqdsdmjmqpnqdxcfynbfsdqxyxhyaykqyddlqyyysszbydslntfqtzqpzmchdhczcwfdxtmyqsphqyyxsrgjcwtjtzzqmgwjjtjhtqjbbhwzpxxhyqfxxqywyyhyscdydhhqmnmtmwcpbszppzzglmzfollcfwhmmsjzttdhzzyffytzzgzyskyjxqyjzqbhmbzzlyghgfmshpzfzsnclpbqsnjxzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjluydtmlymqjpwxyhxsktqjezrpxxzhhmhwqpwqlyjjqjjzszcphjlchhnxjlqwzjhbmzyxbdhhypzlhlhlgfwlchyytlhjxcjmscpxstkpnhqxsrtyxxtesyjctlsslstdlllwwyhdhrjzsfgxtsyczynyhtdhwjslhtzdqdjzxxqhgyltzphcsqfclnjtclzpfstpdynylgmjllycqhysshchylhqyqtmzypbywrfqykqsyslzdqjmpxyyssrhzjnywtqdfzbwwtwwrxcwhgyhxmkmyyyqmsmzhngcepmlqqmtcwctmmpxjpjjhfxyyzsxzhtybmstsyjttqqqyylhynpyqzlcyzhzwsmylkfjxlwgxypjytysyxymzckttwlksmzsylmpwlzwxwqzssaqsyxyrhssntsrapxcpwcmgdxhxzdzyfjhgzttsbjhgyzszysmyclllxbtyxhbbzjkssdmalxhycfygmqypjycqxjllljgslzgqlycjcczotyxmtmttllwtgpxymzmklpszzzxhkqysxctyjzyhxshyxzkxlzwpsqpyhjwpjpwxqqylxsdhmrslzzyzwttcyxyszzshbsccstplwsscjchnlcgchssphylhfhhxjsxyllnylszdhzxylsxlwzykcldyaxzcmddyspjtqjzlnwqpssswctstszlblnxsmnyymjqbqhrzwtyydchqlxkpzwbgqybkfcmzwpzllyylszydwhxpsbcmljbscgbhxlqhyrljxyswxwxzsldfhlslynjlzyflyjycdrjlfsyzfsllcqyqfgjyhyxzlylmstdjcyhbzllnwlxxygyyhsmgdhxxhhlzzjzxczzzcyqzfngwpylcpkpyypmclqkdgxzggwqbdxzzkzfbxxlzxjtpjpttbytszzdwslchzhsltyxhqlhyxxxyyzyswtxzkhlxzxzpyhgchkcfsyhutjrlxfjxptztwhplyxfcrhxshxkyxxyhzqdxqwulhyhmjtbflkhtxcwhjfwjcfpqryqxcyyyqygrpywsgsungwchkzdxyflxxhjjbyzwtsxxncyjjymswzjqrmhxzwfqsylzjzgbhynslbgttcsybyxxwxyhxyyxnsqyxmqywrgyqlxbbzljsylpsytjzyhyzawlrorjmksczjxxxyxchdyxryxxjdtsqfxlyltsffyxlmtyjmjuyyyxltzcsxqzqhzxlyyxzhdnbrxxxjctyhlbrlmbrllaxkyllljlyxxlycrylcjtgjcmtlzllcyzzpzpcyawhjjfybdyyzsmpckzdqyqpbpcjpdcyzmdpbcyydycnnplmtmlrmfmmgwyzbsjgygsmzqqqztxmkqwgxllpjgzbqcdjjjfpkjkcxbljmswmdtqjxldlppbxcwrcqfbfqjczahzgmykphyyhzykndkzmbpjyxpxyhlfpnyygxjdbkxnxhjmzjxstrstldxskzysybzxjlxyslbzyslhxjpfxpqnbylljqkygzmcyzzymccslclhzfwfwyxzmwsxtynxjhpyymcyspmhysmydyshqyzchmjjmzcaagcfjbbhplyzylxxsdjgxdhkxxtxxnbhrmlyjsltxmrhnlxqjxyzllyswqgdlbjhdcgjyqycmhwfmjybmbyjyjwymdpwhxqldygpdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqyxbexyxhgcxbpldyhwettwwcjmbtxchxyqxllxflyxlljlssfwdpzsmyjclmwytczpchqekcqbwlcqydplqppqzqfjqdjhymmcxtxdrmjwrhxcjzylqxdyynhyyhrslsrsywwzjymtltllgtqcjzyabtckzcjyccqljzqxalmzyhywlwdxzxqdllqshgpjfjljhjabcqzdjgtkhsstcyjlpswzlxzxrwgldlzrlzxtgsllllzlyxxwgdzygbdphzpbrlwsxqbpfdwofmwhlypcbjccldmbzpbzzlcyqxldomzblzwpdwyygdstthcsqsccrsssyslfybfntyjszdfndpdhdzzmbblslcmyffgtjjqwftmtpjwfnlbzcmmjtgbdzlqlpyfhyymjylsdchdzjwjcctljcldtljjcpddsqdsszybndbjlggjzxsxnlycybjxqycbylzcfzppgkcxzdzfztjjfjsjxzbnzyjqttyjyhtyczhymdjxttmpxsplzcdwslshxypzgtfmlcjtycbpmgdkwycyzcdszzyhflyctygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdllmqyyhfslqllxftyhabxgwnywyypllsdldllbjcyxjzmlhljdxyyqytdlllbugbfdfbbqjzzmdpjhgclgmjjpgaehhbwcqxaxhhhzchxyphjaxhlphjpgpzjqcqzgjjzzuzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxkxgalxzdaglmdgxmwzqyxxdxxpfdmmssympfmdmmkxksyzyshdzkxsysmmzzzmsydnzzczxfplstmzdnmxckjmztyymzmzzmsxhhdczjemxxkljstlwlsqlyjzllzjssdppmhnlzjczyhmxxhgzcjmdhxtkgrmxfwmcgmwkdtksxqmmmfzzydkmsclcmpcgmhspxqpzdsslcxkyxtwlwjyahzjgzqmcsnxyymmpmlkjxmhlmlqmxctkzmjqyszjsyszhsyjzjcdajzybsdqjzgwzqqxfkdmsdjlfwehkzqkjpeypzyszcdwyjffmzzylttdzzefmzlbnpplplpepszalltylkckqzkgenqlwagyxydpxlhsxqqwqcqxqclhyxxmlyccwlymqyskgchlcjnszkpyzkcqzqljpdmdzhlasxlbydwqlwdnbqcryddztjybkbwszdxdtnpjdtctqdfxqqmgnxeclttbkpwslctyqlpwyzzklpygzcqqpllkccylpqmzczqcljslqzdjxlddhpzqdljjxzqdxyzqkzljcyqdyjppypqykjyrmpcbymcxkllzllfqpylllmbsglcysslrsysqtmxyxzqzfdzuysyztffmzzsmzqhzssccmlyxwtpzgxzjgzgsjsgkddhtqggzllbjdzlcbchyxyzhzfywxyzymsdbzzyjgtsmtfxqyxqstdgslnxdlryzzlryylxqhtxsrtzngzxbnqqzfmykmzjbzymkbpnlyzpblmcnqyzzzsjzhjctzkhyzzjrdyzhnpxglfztlkgjtctssyllgzrzbbqzzklpklczyssuyxbjfpnjzzxcdwxzyjxzzdjjkggrsrjkmsmzjlsjywqskyhqjsxpjzzzlsnshrnypztwchklpsrzlzxyjqxqkysjycztlqzybbybwzpqdwwyzcytjcjxckcwdkkzxsgkdzxwwyyjqyytcytdllxwkczkklcclzcqqdzlqlcsfqchqhsfsmqzzlnbjjzbsjhtszdysjqjpdlzcdcwjkjzzlpycgmzwdjjbsjqzsyzyhhxjpbjydssxdzncglqmbtsfsbpdzdlznfgfjgfsmpxjqlmblgqcyyxbqkdjjqyrfkztjdhczklbsdzcfjtplljgxhyxzcsszzxstjygkgckgyoqxjplzpbpgtgyjzghzqzzlbjlsqfzgkqqjzgyczbzqtldxrjxbsxxpzxhyzyclwdxjjhxmfdzpfzhqhqmqgkslyhtycgfrzgnqxclpdlbzcsczqlljblhbzcypzzppdymzzsgyhckcpzjgsljlnscdsldlxbmstlddfjmkdjdhzlzxlszqpqpgjllybdszgqlbzlslkyyhzttntjyqtzzpszqztlljtyyllqllqyzqlbdzlslyyzymdfszsnhlxznczqzpbwskrfbsyzmthblgjpmczzlstlxshtcsyzlzblfeqhlxflcjlyljqcbzlzjhhsstbrmhxzhjzclxfnbgxgtqjcztmsfzkjmssnxljkbhsjxntnlzdntlmsjxgzjyjczxyjyjwrwwqnztnfjszpzshzjfyrdjsfszjzbjfzqzzhzlxfysbzqlzsgyftzdcszxzjbqmszkjrhyjzckmjkhchgtxkxqglxpxfxtrtylxjxhdtsjxhjzjxzwzlcqsbtxwxgxtxxhxftsdkfjhzyjfjxrzsdllltqsqqzqwzxsyqtwgwbzcgzllyzbclmqqtzhzxzxljfrmyzflxysqxxjkxrmqdzdmmyybsqbhgzmwfwxgmxlzpyytgzyccdxyzxywgsyjyznbhpzjsqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjxsflbyzmyqhxjsxrxsqzzzsslyfrczjrcrxhhzxqydyhxsjjhzcxzbtynsysxjbqlpxzqpymlxzkyxlxcjlcysxxzzlxdllljjyhzxgyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrjkrdhhgxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfsgclyjbpmlysmsxlszjqqhjzfxgfqfqbpxzgyyqxgztcqwyltlgwsgwhrlfsfgzjmgmgbgtjfsyzzgzyzaflsspmlpflcwbjzcljjmzlpjjlymqdmyyyfbgygyzmlyzdxqyxrqqqhsyyyqxyljtyxfsfsllgnqcyhycwfhcccfxpylypllzyxxxxxkqhhxshjzcfzsczjxcpzwhhhhhapylqalpqafyhxdylukmzqgggddesrnnzltzgchyppysqjjhclljtolnjpzljlhymheydydsqycddhgzundzclzyzllzntnyzgslhslpjjbdgwxpcdutjcklkclwkllcasstkzzdnqnttlyyzssysszzryljqkcqdhhcrxrzydgrgcwcgzqfffppjfzynakrgywyqpqxxfkjtszzxswzddfbbxtbgtzkznpzzpzxzpjszbmqhkcyxyldkljnypkyghgdzjxxeahpnzkztzcmxcxmmjxnkszqnmnlwbwwxjkyhcpstmcsqtzjyxtpctpdtnnpglllzsjlspblplqhdtnjnlyyrszffjfqwdphzdwmrzcclodaxnssnyzrestyjwjyjdbcfxnmwttbylwstszgybljpxglboclhpcbjltmxzljylzxcltpnclckxtpzjswcyxsfyszdkntlbyjcyjllstgqcbxryzxbxklylhzlqzlnzcxwjzljzjncjhxmnzzgjzzxtzjxycyycxxjyyxjjxsssjstssttppgqtcsxwzdcsyfptfbfhfbblzjclzzdbxgcxlqpxkfzflsyltuwbmqjhszbmddbcysccldxycddqlyjjwmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxpftwwzqswqrfkjlzjqqyfbrxjhhfwjjzyqazmyfrhcyybyqwlpexcczstyrlttdmqlykmbbgmyyjprkznpbsxyxbhyzdjdnghpmfsgmwfzmfqmmbcmzzcjjlcnuxyqlmlrygqzcyxzlwjgcjcggmcjnfyzzjhycprrcmtzqzxhfqgtjxccjeaqcrjyhplqlszdjrbcqhqdyrhylyxjsymhzydwldfryhbpydtsscnwbxglpzmlzztqsscpjmxxycsjytycghycjwyrxxlfemwjnmkllswtxhyyyncmmcwjdqdjzglljwjrkhpzggflccsczmcbltbhbqjxqdspdjzzgkglfqywbzyzjltstdhqhctcbchflqmpwdshyytqwcnzzjtlbymbpdyyyxsqkxwyyflxxncwcxypmaelykkjmzzzbrxyyqjfljpfhhhytzzxsgqqmhspgdzqwbwpjhzjdyscqwzktxxsqlzyymysdzgrxckkujlwpysyscsyzlrmlqsyljxbcxtlwdqzpcycykpppnsxfyzjjrcemhszmsxlxglrwgcstlrsxbzgbzgztcplujlslylymtxmtzpalzxpxjtjwtcyyzlblxbzlqmylxpghdslssdmxmbdzzsxwhamlczcpjmcnhjysnsygchskqmzzqdllkablwjxsfmocdxjrrlyqzkjmybyqlyhetfjzfrfksryxfjtwdsxxsysqjyslyxwjhsnlxyyxhbhawhhjzxwmyljcsslkydztxbzsyfdxgxzjkhsxxybssxdpynzwrptqzczenygcxqfjykjbzmljcmqqxuoxslyxxlylljdzbtymhpfsttqqwlhokyblzzalzxqlhzwrrqhlstmypyxjjxmqsjfnbxyxyjxxyqylthylqyfmlkljtmllhszwkzhljmlhljkljstlqxylmbhhlnlzxqjhxcfxxlhyhjjgbyzzkbxscqdjqdsujzyyhzhhmgsxcsymxfebcqwwrbpyyjqtyzcyqyqqzyhmwffhgzfrjfcdpxntqyzpdykhjlfrzxppxzdbbgzqstlgdgylcqmlchhmfywlzyxkjlypqhsywmqqgqzmlzjnsqxjqsyjycbehsxfszpxzwfllbcyyjdytdthwzsfjmqqyjlmqxxlldttkhhybfpwtyysqqwnqwlgwdebzwcmygculkjxtmxmyjsxhybrwfymwfrxyqmxysztzztfykmldhqdxwyynlcryjblpsxcxywlsprrjwxhqyphtydnxhhmmywytzcsqmtssccdalwztcpqpyjllqzyjswxmzzmmylmxclmxczmxmzsqtzppqqblpgxqzhfljjhytjsrxwzxsccdlxtyjdcqjxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllpypsyjysxcqqdcmqjzzxhnpnxzmekmxhykyqlxsxtxjyyhwdcwdzhqyybgybcyscfgpsjnzdyzzjzxrzrqjjymcanyrjtldppyzbstjkxxzypfdwfgzzrpymtngxzqbyxnbufnqkrjqzmjegrzgyclkxzdskknsxkcljspjyyzlqqjybzssqlllkjxtbktylccddblsppfylgydtzjyqggkqttfzxbdktyyhybbfytyybclpdytgdhryrnjsptcsnyjqhklllzslydxxwbcjqspxbpjzjcjdzffxxbrmlazhcsndlbjdszblprztswsbxbcllxxlzdjzsjpylyxxyftfffbhjjxgbyxjpmmmpssjzjmtlyzjxswxtyledqpjmygqzjgdjlqjwjqllsjgjgygmscljjxdtygjqjqjcjzcjgdzzsxqgsjggcxhqxsnqlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyyjxncyzxfxmsyszxyyschshxzzzgzzzgfjdltylnpzgyjyzyyqzpbxqbdztzczyxxyhhsqxshdhgqhjhgywsztmzmlhyxgebtylzkqwytjzrclekystdbcykqqsayxcjxwwgsbhjyzydhcsjkqcxswxfltynyzpzcczjqtzwjqdzzzqzljjxlsbhpyxxpsxshheztxfptlqyzzxhytxncfzyyhxgnxmywxtzsjpthhgymxmxqzxtsbczyjyxxtyyzypcqlmmszmjzzllzxgxzaajzyxjmzxwdxzsxzdzxleyjjzqbhzwzzzqtzpsxztdsxjjjznyazphxyysrnqdthzhyykyjhdzxzlswclybzyecwcycrylcxnhzydzydyjdfrjjhtrsqtxyxjrjhojynxelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwysstclzstsymcdhjxxyweyxczaydmpxmdsxybsqmjmzjmtzqlpjyqzcgqhxjhhlxxhlhdldjqcldwbsxfzzyyschtytyybhecxhykgjpxhhyzjfxhwhbdzfyzbcapnpgnydmsxhmmmmamynbyjtmpxyymcthjbzyfcgtyhwphftwzzezsbzegpfmtskftycmhfllhgpzjxzjgzjyxzsbbqsczzlzccstpgxmjsftcczjzdjxcybzlfcjsyzfgszlybcwzzbyzdzypswyjzxzbdsyuxlzzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjqzlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqyxzjqdccztqcdxzjyqjqchxztdlgscxzsyqjqtzwlqdqztqchqqjzyezzzpbwkdjfcjpztypqyqttynlmbdktjzpqzqzzfpzsbnjlgyjdxjdzzkzgqkxdlpzjtcjdqbxdjqjstcknxbxzmslyjcqmtjqwwcjqnjnlllhjcwqtbzqydzczpzzdzyddcyzzzccjttjfzdprrtztjdcqtqzdtjnplzbcllctzsxkjzqzpzlbzrbtjdcxfczdbccjjltqqpldcgzdbbzjcqdcjwynllzyzccdwllxwzlxrxntqqczxkqlsgdfqtddglrlajjtkuymkqlltzytdyyczgjwyxdxfrskstqtenqmrkqzhhqkdldazfkypbggpzrebzzykzzspegjxgykqzzzslysyyyzwfqzylzzlzhwchkypqgnpgblplrrjyxccsyyhsfzfybzyytgzxylxczwxxzjzblfflgskhyjzeyjhlpllllczgxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjyspyxzlzlxgccpzbllcybbbbubbcbpcrnnzczyrbfsrldcgqyyqxygmqzwtzytyjxyfwtehzzjywlccntzyjjzdedpzdztsyqjhdymbjnyjzlxtsstphndjxxbyxqtzqddtjtdyytgwscszqflshlglbczphdlyzjyckwtytylbnytsdsycctyszyyebhexhqdtwnygyclxtszystqmygzazccszzdslzclzrqxyyeljsbymxsxztembbllyyllytdqyshymrqwkfkbfxnxsbychxbwjyhtqbpbsbwdzylkgzskyhxqzjxhxjxgnljkzlyycdxlfyfghljgjybxqlybxqpqgztzplncypxdjyqydymrbesjyyhkxxstmxrczzywxyqybmcllyzhqyzwqxdbxbzwzmslpdmyskfmzklzcyqyczlqxfzzydqzpzygyjyzmzxdzfyfyttqtzhgspczmlccytzxjcytjmkslpzhysnzllytpzctzzcktxdhxxtqcyfksmqccyyazhtjpcylzlyjbjxtpnyljyynrxsylmmnxjsmybcsysylzylxjjqyldzlpqbfzzblfndxqkczfywhgqmrdsxycytxnqqjzyypfzxdyzfprxejdgyqbxrcnfyyqpghyjdyzxgrhtkylnwdzntsmpklbthbpyszbztjzszzjtyyxzphsszzbzczptqfzmyflypybbjqxzmxxdjmtsyskkbjzxhjcklpsmkyjzcxtmljyxrzzqslxxqpyzxmkyxxxjcljprmyygadyskqlsndhyzkqxzyztcghztlmlwzybwsyctbhjhjfcwztxwytkzlxqshlyjzjxtmplpycgltbzztlzjcyjgdtclklpllqpjmzpapxyzlkktkdzczzbnzdydyqzjyjgmctxltgxszlmlhbglkfwnwzhdxuhlfmkyslgxdtwwfrjejztzhydxykshwfzcqshktmqqhtzhymjdjskhxzjzbzzxympagqmstpxlsklzynwrtsqlszbpspsgzwyhtlkssswhzzlyytnxjgmjszsufwnlsoztxgxlsammlbwldszylakqcqctmycfjbslxclzzclxxksbzqclhjpsqplsxxckslnhpsfqqytxyjzlqldxzqjzdyydjnzptuzdskjfsljhylzsqzlbtxydgtqfdbyazxdzhzjnhhqbyknxjjqczmlljzkspldyclbblxklelxjlbqycxjxgcnlcqplzlzyjtzljgyzdzpltqcsxfdmnycxgbtjdcznbgbqyqjwgkfhtnpyqzqgbkpbbyzmtjdytblsqmpsxtbnpdxklemyycjynzctldykzzxddxhqshdgmzsjycctayrzlpyltlkxslzcggexclfxlkjrtlqjaqzncmbydkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlgbyjbrbtmlbyjdzxlcjlpldlpcqdhlxzlycblcxzzjadjlnzmmsssmybhbsqkbhrsxxjmxsdznzpxlgbrhwggfcxgmsklltsjyycqltskywyyhywxbxqywpywykqlsqptntkhqcwdqktwpxxhcpthtwumssyhbwcrwxhjmkmzngwtmlkfghkjylsyycxwhyeclqhkqhttqkhfzldxqwyzyydesbpkyrzpjfyyzjceqdzzdlatzbbfjllcxdlmjssxegygsjqxcwbxsszpdyzcxdnyxppzydlyjczpltxlsxyzyrxcyyydylwwnzsahjsyqyhgywwaxtjzdaxysrltdpssyyfnejdxyzhlxlllzqzsjnyqyqqxyjghzgzcyjchzlycdshwshjzyjxcllnxzjjyyxnfxmwfpylcyllabwddhwdxjmcxztzpmlqzhsfhzynztlldywlslxhymmylmbwwkyxyadtxylldjpybpwuxjmwmllsafdllyflbhhhbqqltzjcqjldjtffkmmmbythygdcqrddwrqjxnbysnwzdbyytbjhpybyttjxaahgqdqtmystqxkbtzpkjlzrbeqqssmjjbdjotgtbxpgbktlhqxjjjcthxqdwjlwrfwqgwshckryswgftgygbxsdwdwrfhwytjjxxxjyzyslpyyypayxhydqkxshxyxgskqhywfdddpplcjlqqeewxksyykdypltjthkjltcyyhhjttpltzzcdlthqkzxqysteeywyyzyxxyysttjkllpzmcyhqgxyhsrmbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyppthyyktyezyenmdshlcrpqfdgfxzpsftljxxjbswyysksflxlpplbbblbsfxfyzbsjssylpbbffffsscjdstzsxzryysyffsyzyzbjtbctsbsdhrtjjbytcxyjeylxcbnebjdsyxykgsjzbxbytfzwgenyhhthzhhxfwgcstbgxklsxywmtmbyxjstzscdyqrcytwxzfhmymcxlznsdjtttxrycfyjsbsdyerxjljxbbdeynjghxgckgscymblxjmsznskgxfbnbpthfjaafxyxfpxmypqdtzcxzzpxrsywzdlybbktyqpqjpzypzjznjpzjlzzfysbttslmptzrtdxqsjehbzylzdhljsqmlhtxtjecxslzzspktlzkqqyfsygywpcpqfhqhytqxzkrsgttsqczlptxcdyyzxsqzslxlzmycpcqbzyxhbsxlzdltcdxtylzjyyzpzyzltxjsjxhlpmytxcqrblzssfjzztnjytxmyjhlhpplcyxqjqqkzzscpzkswalqsblcczjsxgwwwygyktjbbztdkhxhkgtgpbkqyslpxpjckbmllxdzstbklggqkqlsbkktfxrmdkbftpzfrtbbrferqgxyjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnxxdhddjcyygylxgzlxsygmqqgkhbpmxyxlytqwlwgcpbmqxcyzydrjbhtdjyhqshtmjsbyplwhlzffnypmhxxhpltbqpfbjwqdbygpnztpfzjgsddtqshzeawzzylltyybwjkxxghlfkxdjtmszsqynzggswqsphtlsskmclzxyszqzxncjdqgzdlfnykljcjllzlmzznhydsshthzzlzzbbhqzwwycrzhlyqqjbeyfxxxwhsrxwqhwpslmsskzttygyqqwrslalhmjtqjsmxqbjjzjxzyzkxbyqxbjxshztsfjlxmxzxfghkzszggylclsarjyhslllmzxelglxydjytlfbhbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypqlbxbmmywxgslzhglzgqyflzbyfzjfrysfmbyzhqgfwzsyfyjjphzbyyzffwodgrlmftwlbzgycqxcdjygzyyyytytydwegazyhxjlzyyhlrmgrxxzclhneljjtjtpwjybjjbxjjtjteekhwsljplpsfyzpqqbdlqjjtyyqlyzkdksqjyyqzldqtgjqyzjsucmryqthtejmfctyhypkmhyzwjdqfhyyxwshctxrljhqxhccyyyjltkttytmxgtcjtzayyoczlylbszywjytsjyhbyshfjlygjxxtmzyyltxxypzlxyjzyzyypnhmymdyylblhlsyyqqllnjjymsoyqbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljljxcjjyclycjpcpzjzjmmylcqlnqljqjsxyjmlszljqlycmmhcfmmfpqqmfylqmcffqmmmmhmznfhhjgtthhkhslnchhyqdxtmmqdcyzyxyqmyqyltdcyyyzazzcymzydlzfffmmycqzwzzmabtbyztdmnzzggdftypcgqyttssffwfdtzqssystwxjhxytsxxylbyqhwwkxhzxwznnzzjzjjqjccchyyxbzxzcyztllcqxynjycyycynzzqyyyewyczdcjycchyjlbtzyycqwmpwpymlgkdldlgkqqbgychjxy';
    
    //如果不在汉字处理范围之内,返回原字符
    if(uni > 40869 || uni < 19968)
        return ch; 
        
    return strChineseFirstPY.charAt(uni-19968);
}

// 根据鼠标或焦点事件，设置文本框和按钮样式,此函数会与样式相关
function IEvent(sType,oInput)
{
    if(oInput == null)
        return;

	var onStyle;
	var offStyle;
	var eleType;
	
	eleType = oInput.type;
	
	// 设置关联样式
	if("button" == eleType || "submit" == eleType || "reset" == eleType || "textarea" == oInput.tagName)
	{
		onStyle = "button_on";
		offStyle = "button_off";
	}
	else
	{
		onStyle = "input_on";
		offStyle = "input_off";
	}
	// 根据事件选择样式
	switch (sType)
	{
		case "focus" :
			oInput.isfocus = true;
		case "mouseover" :
			oInput.className = onStyle;
			break;
		case "blur" :
			oInput.isfocus = false;
		case "mouseout" :
			if(!oInput.isfocus)
			{
				oInput.className = offStyle;
			}
			break;
	}
}

//
// 通过控件Id设置网页的标题 //
// 
function SetDocumentTitleByCtrlId(objId)
{
    return SetDocumentTitleByCtrl($(objId));
}

// 通过控件设置网页的标题
function SetDocumentTitleByCtrl(objCtrl)
{
    if(objCtrl == null)
        return false;
        
    return SetDocumentTitle(obj.value);        
    
}


function SetDocumentTitleByCtrlIdOneAndTwo(objId,objParentId)
{
    var obj = $(objId);
    var objParent = $(objParentId);
    
    if(obj == null)
        return false;
        
    var objPValue = "";
    if(objParent != null)
        objPValue = objParent.value;        
        
    SetDocumentTitle(obj.value + objPValue);        
    
}

// 设置网页的标题 //
function SetDocumentTitle(objTitle)
{
    if(document == null)
        return false;
        
    document.title=objTitle;
    
    return true;
}

// ##########################################################################
// ########################### 其它相关的操作END #########################
// ########################################################################


// ##########################################################################
// ########################### Cookie的操作 ###############################
// ########################################################################

// 设置Cookie
function setCookie(name,value)
{
  var Days = 1; //此 cookie 将被保存 1 天
  var exp  = new Date();    //new Date("December 31, 9998");
  exp.setTime(exp.getTime() + Days*24*60*60*1000);
  document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}

// 获取Cookie
function getCookie(name)
{
  var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
  if(arr != null) return unescape(arr[2]); return null;
}

// 删除Cookie
function delCookie(name)
{
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval=getCookie(name);
  if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}

// ##########################################################################
// ########################### Cookie的操作END ############################
// ########################################################################

// 设定记录的Count值
function Base_Default_Remark_Value_Count()
{
	return Base_Remark_Value_Count($('txt_Remark'),$('lbl_Remark_Max_Number'),$('lbl_Had_Input_Remark_Number'));
}

// 设定记录的Count值
function Base_Remark_Value_Count(objRemark,objMaxNumber,objHadNumber)
{
	if(objRemark == null || objMaxNumber == null || objHadNumber == null)
		return false;

	var iMaxNumber = GetIntNumberByCtrl(objMaxNumber);

	var iHadNumber = GetStrLength(objRemark.value);
	
	objHadNumber.innerText = iHadNumber;

	if(iHadNumber > iMaxNumber)
	{
		objHadNumber.style.color = "#ff0000";
		return false;
	}
	else
	{
		objHadNumber.style.color = "#0000ff";
		return true;
	}
}

// 分页的相关事件 
function HTMLPage_CheckInput(bid,mv,objHtml)
{
    if(IsNullOrEmptyAndBlank( objHtml))
        objHtml = "html";
    else
        objHtml = GetTrimText(objHtml);
        
    var el = document.getElementById(bid);
    
    if(el == null)
        return false;

    var r = new RegExp("^\\s*(\\d+)\\s*$");

    if(r.test(el.value))
    {
        if(RegExp.$1<1||RegExp.$1>mv)
        {
            alert("页索引超出范围！");
            el.focus();
            el.select();
            return false;
        }
        else
        {
            window.location = el.value.trim() + "." + objHtml;
            return true;
        }
    }
    
    alert("页索引不是有效的数值！");
    el.focus();
    el.select();
    return false;
}


//// ##########################################################################
//// ########################### Ajax的操作 #################################
//// ########################################################################

function makeAjaxRequest()
{
	var httpRequest = null;

	if(window.XMLHttpRequest)
	{
		httpRequest = new XMLHttpRequest();
	}
    else if(window.ActiveXObject)
    {
        httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        if(httpRequest == null)
        {
            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }	 

	if(httpRequest == null)
		return null;
	else
	{
        if(httpRequest.overrideMimeType)
			httpRequest.overrideMimeType("text/html;charset=gb2312");

		return httpRequest;	
    }

}

			
function getRequest(url,httpRequest,DivID)
{
	return getRequest2(url,httpRequest,DivID,true);
}

function getRequest2(url,httpRequest,DivID,IsAsy)
{
	ajaxRequest2(url,httpRequest,DivID,true,IsAsy);
}
	
function postRequest(url,httpRequest,DivID)
{
	return postRequest2(url,httpRequest,DivID,true);
}

function postRequest2(url,httpRequest,DivID,IsAsy)
{
    ajaxRequest2(url,httpRequest,DivID,false,IsAsy);
}	
		
function ajaxRequest(url,httpRequest,DivID,IsGet )
{
    return ajaxRequest2(url,httpRequest,DivID,IsGet,true);
}

function ajaxRequest2(url,httpRequest,DivID,IsGet,IsAsy)
{
    var objGetOrPost = 'POST';
    
    if(IsGet)
        objGetOrPost = 'GET';

	httpRequest.open(objGetOrPost, url, IsAsy);

	httpRequest.onreadystatechange = function(){getDataRequest(httpRequest,DivID)};
	httpRequest.send(null);
}			
			
function getDataRequest(httpRequest,DivID)
{
    var DivObj = GetCtrlObj(DivID);
    if(DivObj == null)
        return;

    if(httpRequest != null)
    {
	    if(httpRequest.readyState == 4)
	    {
		    if(httpRequest.status == 200)
		    {

			    var HtmlStr = httpRequest.responseText;

                OnSetInnerHTMLValueByCtrl(DivObj,HtmlStr);
		    }
	    }
	}		
}
			
function showDataRequest(url,DivID)
{

    var DivObj = GetCtrlObj(DivID);
    if(DivObj == null)
        return;

    OnSetInnerHTMLValueByCtrl(DivObj,ImgProgress);

	var httpRequst = makeAjaxRequest();

	getRequest(url,httpRequst,DivID)
}
	
	
function SendRequest(url, callback)
{
    SendRequestFromBoolean(url,callback,true);
}

function SendRequestFromBoolean(url, callback,bFlag)
{
	var httpRequest = makeAjaxRequest();

	if(httpRequest == null)
		return;

	httpRequest.onreadystatechange =  function(){getSendDataRequest(httpRequest,callback)};;
	httpRequest.open('GET', url, bFlag);
	httpRequest.send(null);
}

function getSendDataRequest(httpRequest,callback)
{
	if(httpRequest.readyState == 4)
	{
		if(httpRequest.status == 200)
		{
			var HtmlStr = httpRequest.responseText;

			eval(callback + "('" + HtmlStr + "');" );
		}
	}		
}

//// ##########################################################################
//// ########################### Ajax的操作END ##############################
//// ########################################################################

// ##########################################################################
// ########################### 身份证号码校验 ############################
// ########################################################################

// 
// 校验身份证号码的结果提示
//
var Errors=new Array
( 
	"验证通过!", 
	"身份证号码位数不对!", 
	"身份证号码出生日期超出范围或含有非法字符!", 
	"身份证号码校验错误!", 
	"身份证地区非法!" 
); 

// 是否校验地区 //
var objIDCard_Area = 1;
// 是否校验日期 //
var objIDCard_Date = 1;
// 是否校验逻辑 //
var objIDCard_Logic = 1;
	
function CheckIDCardByBool(idcard)
{
	var objRet = checkIdcard(idcard);
	
	if(objRet == 0)
		return true;
	else
		return false;
}

function CheckIDCardResult(idcard)
{

	var objRet = checkIdcard(idcard);
	
	if(objRet >= 0 && objRet < Errors.length)
		return Errors[objRet];
	else
		return "验证失败！";	
}

function ShowCheckIDCardResult(objRet)
{
	if(objRet >= 0 && objRet < Errors.length)
		return Errors[objRet];
	else
		return "验证失败！";	
}

function CheckIdCardAndReturn(idcard)
{
    var objRet = checkIdcard(idcard);

	if(objRet == 0)
		return true;
	else
	{
	    alert(ShowCheckIDCardResult(objRet));
		return false;   
    }
}

function checkIdcard(idcard)
{ 
    idcard = GetTrimText(idcard);
    
	// 补齐18位 //
	if(idcard.length == 17)
	{
		idcard = idcard + "X";
	}

	// alert(idcard);	

	var area = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
	var Y,JYM; 
	var S,M; 
	var ereg;
	var idcard_array = new Array(); 
	idcard_array = idcard.split(""); 
	
	var objRet = 0;

	if(objIDCard_Area == 1)
	{
		if(area[parseInt(idcard.substr(0,2),10)]==null) 
		{
			return 4;
		}
	}

	if(objIDCard_Date == 1)
	{		
		switch(idcard.length)
		{ 
			case 15: 
				if ( 
					(parseInt(idcard.substr(6,2))+1900) % 4 == 0 
					&&
					(
						(
							(parseInt(idcard.substr(6,2))+1900) % 100 != 0
						)
						|| 
						(
							(parseInt(idcard.substr(6,2))+1900) % 100 == 0
							&& (parseInt(idcard.substr(6,2))+1900) % 400 == 0
						)
					)
				)
				{ 
					ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; 
				} 
				else 
				{ 
					ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; 
				} 
				if(ereg.test(idcard))
				{
					return 0;
				}
				else 
				{
					return 2;
				}
				break; 
			case 18: 
				if ( 
					parseInt(idcard.substr(6,4),10) % 4 == 0 
					&&
					(
						(
							parseInt(idcard.substr(6,4),10) % 100 != 0
						)
						|| 
						(
							parseInt(idcard.substr(6,4),10) % 100 == 0
							&& parseInt(idcard.substr(6,4),10) % 400 == 0
						)
					)
					)
				{ 
					ereg=/^[1-9][0-9]{5}[1-2][0-9]{3}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;//闰年出生日期的合法性正则表达式 
				} 
				else 
				{ 
					ereg=/^[1-9][0-9]{5}[1-2][0-9]{3}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;//平年出生日期的合法性正则表达式 
				} 
				
				if(ereg.test(idcard))
				{ 
					objRet = 0;
				} 
				else 
				{
					return 2;
				}
				break; 
				default: 
					return 1;
				break; 
		} 
	}
	
	if(objRet == 0)
	{
		if(objIDCard_Logic == 1)
		{
			if(idcard.length == 18)
			{
				S = (parseInt(idcard_array[0],10) + parseInt(idcard_array[10],10)) * 7 
				+ (parseInt(idcard_array[1],10) + parseInt(idcard_array[11],10)) * 9 
				+ (parseInt(idcard_array[2],10) + parseInt(idcard_array[12],10)) * 10 
				+ (parseInt(idcard_array[3],10) + parseInt(idcard_array[13],10)) * 5 
				+ (parseInt(idcard_array[4],10) + parseInt(idcard_array[14],10)) * 8 
				+ (parseInt(idcard_array[5],10) + parseInt(idcard_array[15],10)) * 4 
				+ (parseInt(idcard_array[6],10) + parseInt(idcard_array[16],10)) * 2 
				+ parseInt(idcard_array[7],10) * 1 
				+ parseInt(idcard_array[8],10) * 6 
				+ parseInt(idcard_array[9],10) * 3 ; 
				
				// alert(S);
				Y = S % 11; 
				// alert(Y);
				M = "F"; 
				JYM = "10X98765432"; 
				M = JYM.substr(Y,1); 
				// alert(M);
				if(M == idcard_array[17]) 
				{
					// return Errors[0]; 
					objRet = 0;
				}
				else
				{
					if(M == "X" && idcard_array[17] == "x") 
						objRet = 0;
					else
						return 3;
				}
			}
		}
	}


	return objRet;
} 

// ##########################################################################
// ########################### 身份证号码校验END #########################
// ########################################################################


// ##########################################################################
// ########################### JavaScript自适应 ###########################
// ########################################################################

//
// iframe 自适应 //
// 
function win_resize()
{
	if(top == null)
		return;

	if(top.location!=this.location)
	{
		var myHeight = document.body.scrollHeight + 50;
		var minHeight = parent.document.body.clientHeight - 200;

		if(myHeight < minHeight)
			myHeight = minHeight;

		window.resizeTo(document.body.clientWidth,myHeight); 
	}
}

//
// 网页置顶；
// 
function win_top()
{
    if (top.location != self.location)
        window.top.location = window.self.location;
}

// ##########################################################################
// ########################### JavaScript自适应END ########################
// ########################################################################


// ##########################################################################
// ########################### 默许的程序JS校验 ##########################
// ########################################################################



// ##########################################################################
// ########################### 默许的程序JS校验END #######################
// ########################################################################


// ##########################################################################
// ########################### CheckBox All相关的操作 #####################
// #########################################################################

var CSS_MouseOver = "tdbgmouseover";
var CSS_MouseOut = "tdbg";
var CSS_Selected = "tdbgselected";

var CSS_SETTING = false;

var strFormName = "form1";
var strChkJSAll = "chk_JS_All";
var strItem = "chk_JS_ItemChk";


// 全选的操作
function selectAll_Or_None()
{
    return selectAll_Or_NoneByArray(null);
}

function selectAll_Or_NoneByArray(objArray)
{
    var objFormName = "";
    var objChkJSAll = "";
    var objItem = "";
    
    if(objArray != null)
    {
        var iLen = GetLength(objArray);
        var iTmp = 0;
        
        for(iTmp = 0; iTmp < iLen; ++iTmp)
        {
            if(iTmp == 0)
                objFormName = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 1)
                objChkJSAll = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 2)
                objChkJSAll = GetTrimText(objArray[iTmp]); 
            else 
                break;                                                       
        }
    }    
    
    return selectAll_Or_NoneByCtrlId(objFormName,objChkJSAll,objItem);
}
    
function selectAll_Or_NoneByCtrlId(objFormName,objChkJSAll,objItem)
{
    
    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName,strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll,strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem,strItem);
    
    var objForm = $(objFormName);
    var objchk_JS_All = $(objChkJSAll);
    
    if(objForm == null || objchk_JS_All == null)
        return false;

	var bFlag = GetCtrlCheckFlagByCtrlAndFlag(objchk_JS_All,true);

	var i = 1;
	
	for(i=1; i < objForm.elements.length; i++)
	{
		var e=objForm.elements[i];
		if(e.type=="checkbox")
		{
			if(!IsContainsAll(GetCtrlName(e),objItem,true))
				continue;

			e.checked = bFlag;

            if(CSS_SETTING)
            {
			    // 设置样式 //
			    ItemChkChangeCSS(e);
            }			    
		}
	}
	
	return true;
	
}
			
function InitCheck()
{
    return InitCheckByArray(null);    
}

function InitCheckByArray(objArray)
{
    var objFormName = "";
    var objChkJSAll = "";
    var objItem = "";
    
    if(objArray != null)
    {
        var iLen = GetLength(objArray);
        var iTmp = 0;
        
        for(iTmp = 0; iTmp < iLen; ++iTmp)
        {
            if(iTmp == 0)
                objFormName = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 1)
                objChkJSAll = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 2)
                objChkJSAll = GetTrimText(objArray[iTmp]); 
            else 
                break;                                                       
        }
    }    
    
    return InitCheckByCtrlId(objFormName,objChkJSAll,objItem);
}
    
function InitCheckByCtrlId(objFormName,objChkJSAll,objItem)
{
    
    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName,strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll,strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem,strItem);
    
    var objForm = $(objFormName);
    var objchk_JS_All = $(objChkJSAll);
    
    if(objForm == null || objchk_JS_All == null)
        return false;

    var bFlag = true;
    var i = 1;
    
    for(i=1;i<objForm.elements.length;i++)
    {
	    var e=objForm.elements[i];
	    
	    if(e.type=="checkbox")
	    {
		    if(!IsContainsAll(GetCtrlName(e),objItem,true))
			    continue;
			    
            if(CSS_SETTING)
			    ItemChkChangeCSS(e);

		    if(e.checked == false)
			    bFlag = false && bFlag;
	    }
    }
	    
	objchk_JS_All.checked = bFlag;
	
	return true;

}

// CheckBox选择事件
function ItemChkClick(objItemChk)
{
    return ItemChkClickByArray(objItemChk,null);  
}

function ItemChkClickByArray(objItemChk,objArray)
{
    var objFormName = "";
    var objChkJSAll = "";
    var objItem = "";
    
    if(objArray != null)
    {
        var iLen = GetLength(objArray);
        var iTmp = 0;
        
        for(iTmp = 0; iTmp < iLen; ++iTmp)
        {
            if(iTmp == 0)
                objFormName = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 1)
                objChkJSAll = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 2)
                objChkJSAll = GetTrimText(objArray[iTmp]); 
            else 
                break;                                                       
        }
    }    
    
    return ItemChkClickByCtrlId(objItemChk,objFormName,objChkJSAll,objItem);
}
    
function ItemChkClickByCtrlId(objItemChk,objFormName,objChkJSAll,objItem)
{
    
    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName,strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll,strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem,strItem);
    
    var objForm = $(objFormName);
    var objchk_JS_All = $(objChkJSAll);
    
    if(objForm == null || objchk_JS_All == null || objItemChk == null)
        return false;	

	if(!CompareToChecked(objchk_JS_All,objItemChk))
	{
		if(!objItemChk.checked)
		{
			objchk_JS_All.checked = false;
		}
		else
		{
			var bFlag = true;
			var i = 1;
			for(i=1;i<objForm.elements.length;i++)
			{
				var e=objForm.elements[i];
				if(e.type=="checkbox")
				{
					if(!IsContainsAll(GetCtrlName(e),objItem,true))
						continue;
						
					if(e.checked == false)
					{
						bFlag = false;
						break;
					}
				}
			}
			objchk_JS_All.checked = bFlag;
		}			
	}
	
    if(CSS_SETTING)
    	ItemChkChangeCSS(objItemChk);

	return true;
}	

// CheckBox选择事件
function OpItemChk(objThis,objMessage)
{
    // alert('ddd');
    return OpItemChkByArray(objThis,objMessage,null);  
}

function OpItemChkByArray(objThis,objMessage,objArray)
{
    var objFormName = "";
    var objChkJSAll = "";
    var objItem = "";
    
    if(objArray != null)
    {
        var iLen = GetLength(objArray);
        var iTmp = 0;
        
        for(iTmp = 0; iTmp < iLen; ++iTmp)
        {
            if(iTmp == 0)
                objFormName = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 1)
                objChkJSAll = GetTrimText(objArray[iTmp]);   
            else if(iTmp == 2)
                objChkJSAll = GetTrimText(objArray[iTmp]); 
            else 
                break;                                                       
        }
    }    
    
    return OpItemChkByCtrlId(objThis,objMessage,objFormName,objChkJSAll,objItem);
}
    
function OpItemChkByCtrlId(objThis,objMessage,objFormName,objChkJSAll,objItem)
{

    // alert("objFormName = " + objFormName);
    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName,strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll,strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem,strItem);
    
    var objForm = $(objFormName);
    var objchk_JS_All = $(objChkJSAll);
    
    // alert(objFormName);
    // alert(objForm);
    
    // alert(objForm.id);
    
    if(objForm == null || objChkJSAll == null)
        return false;	

    

	var bFlag = false;
	var i = 1;
	
	for(i=1; i < objForm.elements.length; ++i)
	{
		var e=objForm.elements[i];
		// alert(e.type);
		if(GetLowerCase(e.type) == "checkbox")
		{
			if(!IsContainsAll(GetCtrlName(e),objItem,true))
				continue;

			if(e.checked)
			{
				bFlag = true;
				break;
			}
		}
	}

    if(!bFlag)
    {
        alert("请先勾选记录！");
        return false;
        
    }
    else
    {
        
        return confirm(objMessage);
    }
    	
}

function ItemChkChangeCSS(objThis)
{
    if(objThis == null)
        return false;
        
    var objTD = objThis.parentElement;
    
    if(objTD == null)
        return false;        

    var objTr = objTD.parentElement;
    
    if(objTr == null)
        return false;

    if(objThis.checked)
        objTr.className = CSS_Selected;
    else
        objTr.className = CSS_MouseOut; 
        
    return true;        
}

// TR MouseOver事件 
function OnTrMouseOver(objThis,chkClientID)
{
    objThis.className = CSS_MouseOver;
}

// TR MouseOver事件 
function OnTrMouseOut(objThis,chkClientID)
{
    if($VCD(chkClientID,false)) 
        objThis.className = CSS_Selected;
    else        
        objThis.className = CSS_MouseOut;
}

// ##########################################################################
// ########################## CheckBox All相关的操作END ###################
// #########################################################################

// ##########################################################################
// ########################## Body加载后 ##################################
// ########################################################################

function OnAfterBody()
{
//    var objForm = $("form1");
//    if(objForm != null)
//    {
//        objForm.onkeydown = MyKeyPress;
//    }
//    else
//    {
//        // alert('dd');
//    }
//        
//    OnBodyCopy();   
//    
    // if(window != null)
    //    window.status = "欢迎光临www.163.cn！"; 
}
    
// ##########################################################################
// ########################## Body加载后 ##################################
// ########################################################################
     
// #########################################################################
// ########################## JavaScript校验 ##############################
// ########################################################################  
 

// 普通控件校验 //
function CtrlClass(){ }
CtrlClass.prototype =
{
    CtrlId:"",
    CtrlType:"",
    Tip:""
}

// 实例化类对象
function GetCtrlClass(objCtrlId,objCtrlType,objTip)
{
    
    var objVClass = new CtrlClass();
    
    
    objVClass.CtrlId = objCtrlId;
    objVClass.CtrlType = objCtrlType; 
    objVClass.Tip = objTip; 

    return objVClass;
}

function AddCtrlClassArray(objCtrlId,objCtrlType,objTip)
{
    // alert('ddd');
    var obj = GetCtrlClass(objCtrlId,objCtrlType,objTip);
    // alert('ddddsd');
    if(obj != null)
    {
        var objLen = GetLength(VCtrlClassArray);

        VCtrlClassArray[objLen] = obj;

        // alert(objLen);
    }
    else
    {
        //alert('null');
    }

    return true;
}


// 返回用的函数 //
function RetClass(){ }
RetClass.prototype =
{
    Ret:false,
    Value:null,
    StrValue:""
}


// 实例化类对象
function GetRetClass(objRet,objValue,objStrValue)
{
    var objVClass = new RetClass();
    
    objVClass.Ret = objRet;
    objVClass.Value = objValue; 
    objVClass.StrValue = objStrValue;

    return objVClass;
}

function ReturnRetClassValue(obj,objDefaultValue)
{
    if(obj == null)
        return objDefaultValue;
    else
        return obj.Value;
}

function ReturnRetClassStrValue(obj,objDefaultValue)
{
    if(obj == null)
        return objDefaultValue;
    else
        return obj.StrValue;
}

function VUploadFileValueClass(){ }

VUploadFileValueClass.prototype =
{
    FileName:"",
    Extension:""
}

function AddVUploadFileValueClassArray(objFileName,objExtension)
{
    var obj = GetVUploadFileValueClassArray(objFileName,objExtension);

    if(obj != null)
    {
        var objLen = GetLength(VUploadFileValueClassArray);

        VUploadFileValueClassArray[objLen] = obj;
    }

    return true;
}

// 实例化类对象
function GetVUploadFileValueClassArray(objFileName,objExtension)
{
    var objVClass = new VUploadFileValueClass();
    
    objVClass.FileName = objFileName;
    objVClass.Extension = objExtension;

    return objVClass;
}

function VUploadFileAttrClass(){ }

VUploadFileAttrClass.prototype =
{
    Id:"",
    TheName:"",
    FileSize:"",
    Extension:""
}

function AddVUploadFileAttrClassArray(objId,objTheName,objFileSize,objExtension)
{
    var obj = GetVUploadFileAttrClassArray(objId,objTheName,objFileSize,objExtension);

    if(obj != null)
    {
        var objLen = GetLength(VUploadFileAttrClassArray);

        VUploadFileAttrClassArray[objLen] = obj;
    }

    return true;
}

// 实例化类对象
function GetVUploadFileAttrClassArray(objId,objTheName,objFileSize,objExtension)
{
    var objVClass = new VUploadFileAttrClass();
    
    objVClass.Id = objId;
    objVClass.TheName = objTheName;
    objVClass.FileSize = objFileSize;
    objVClass.Extension = objExtension;

    return objVClass;
}

function GetVUploadFileAttrClassById(objId)
{
    var objCount = GetLength(VUploadFileAttrClassArray);   

    var i = 0;

    for(i = 0; i < objCount; ++i)
    {
        var objVClass = VUploadFileAttrClassArray[i];
        
        if(objVClass == null)
            continue;

        if(objVClass.Id == objId)
            return objVClass;
    }     
    
    return null;
} 

function VClass(){ }

//
// 注释说明：
// ValidatorCode 校验代号
// CtrlId 校验控件
// 

VClass.prototype =
{
    ValidatorCode:"",
    CtrlId:"",
    CtrlType:"",
    FocusId:"",
    CtrlJSValidator:"string",
    JSValidatorExpress:"=",
    CompareValue:"",
    IsTrim:true,
    IsCheck:true,
    IsCheckNoVisible:false,
    Tip:"",
    HeadTip:"",
    TipName:"",    
    JSFunction:""
}

function AddVArray(objValidatorCode,objCtrlId,objCtrlType,objFocusId,objCtrlJSValidator,objJSValidatorExpress,objCompareValue,objIsTrim,objIsCheck,objIsCheckNoVisible,objTip,objHeadTip,objTipName,objJSFunction)
{
    var obj = GetVClass(objValidatorCode,objCtrlId,objCtrlType,objFocusId,objCtrlJSValidator,objJSValidatorExpress,objCompareValue,objIsTrim,objIsCheck,objIsCheckNoVisible,objTip,objHeadTip,objTipName,objJSFunction);

    if(obj != null)
    {
        var objLen = GetLength(VArray);

        VArray[objLen] = obj;

    }

    return true;
}

// 实例化类对象
function GetVClass(objValidatorCode,objCtrlId,objCtrlType,objFocusId,objCtrlJSValidator,objJSValidatorExpress,objCompareValue,objIsTrim,objIsCheck,objIsCheckNoVisible,objTip,objHeadTip,objTipName,objJSFunction)
{
    var objVClass = new VClass();
    
    objVClass.ValidatorCode = objValidatorCode;
    objVClass.CtrlId = objCtrlId;
    objVClass.CtrlType = objCtrlType;
    objVClass.FocusId = objFocusId;
    objVClass.CtrlJSValidator = objCtrlJSValidator;
    objVClass.JSValidatorExpress = objJSValidatorExpress;
    objVClass.CompareValue = objCompareValue;
    objVClass.IsTrim = objIsTrim;
    objVClass.IsCheck = objIsCheck;
    objVClass.IsCheckNoVisible = objIsCheckNoVisible;
    objVClass.Tip = objTip;
    objVClass.HeadTip = objHeadTip;
    objVClass.TipName = objTipName;
    objVClass.JSFunction = objJSFunction;

    return objVClass;
}

function JSCheck(objThis,objValidatorCode)
{

    if(VArray == null)
    {
        return true;
    }

    
    var objCount = GetLength(VArray);   
    
    var i = 0;
    var bTmpFlag = true;
    
    for(i = 0; i < objCount; ++i)
    {
        var objVClass = VArray[i];
        
        if(objVClass == null)
        {
            continue;
        }
        
        if(objVClass.ValidatorCode != objValidatorCode)
        {
            continue;
        }
            
        bTmpFlag = CheckVClass(objThis,objVClass);
        if(!bTmpFlag)                    
            return false;
    }     

    return bTmpFlag;
}

//undefined : 未定义
//number    : 数字
//boolean   : 布尔值
//string    : 字符串
//function  : 函数
//object    : 对象

function GetEmptyTipByCtrlType(CtrlType)
{
    if(CtrlType == null || (CtrlType+"").trim() == "")
        return "请输入";
    else
    {
        var d = GetLowerCase(CtrlType);
        if(StringCompare(d,"DropDownList",true,true))    
            return "请选择";
    }
    
    return "请输入";
}

function CheckVClass(objThis,objVClass)
{
    
    if(objVClass == null)
        return true;    
        
    var bResult = true;
    
    
    var objValue = GetCtrlValueByCtrlIdAndCtrlType(objVClass.CtrlId,objVClass.CtrlType);
    var bIsShow = IsShowByCtrlIdAndCtrlType(objVClass.CtrlId,objVClass.CtrlType);
    var objEmptyTip = GetEmptyTipByCtrlType(objVClass.CtrlType);

    // 控件不存在 //
    if(objValue == null)
        return true;

    if(objVClass.IsTrim)
        objValue = ("" + objValue).trim();
        
    // alert(objValue);   
    // alert(objVClass.JSValidatorExpress);     

    // 输入的值为空 //
    if(objValue == "")
    {
        // 是否校验 //
        if(objVClass.IsCheck)
        {
            if(bIsShow)
            {
                MyAlert(objEmptyTip + objVClass.TipName + "。",$(objVClass.FocusId)); 
                return false;
            }
            else
            {
                // 隐藏控件不需要校验 //
                if(objVClass.IsCheckNoVisible)
                {
                    
                    MyAlert(objEmptyTip + objVClass.TipName + "。",$(objVClass.FocusId)); 
                    return false;                
                }
            }
        } 
    } 
    else
    {
        // 其它校验 //
        // 隐藏控件的校验，算法没想好 //
        if(objVClass.JSValidatorExpress == "" || objVClass.JSValidatorExpress == "other")
        { }
        else if(objVClass.JSValidatorExpress == "regular")
        {
        }
        else if(objVClass.JSValidatorExpress == "is")
        {
            // 判断是否是Email //
            if(objVClass.CtrlJSValidator == "int")
            { 
                if(!IsTheInt(objValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                   
                }
                
                var objTmpValue = parseInt(objValue,10);
                
                if(isNaN(objTmpValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                    
                }
            }   
            else if(objVClass.CtrlJSValidator == "float")
            { 
                if(!IsTheNumber(objValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                   
                }
                
                var objTmpValue = parseFloat(objValue);
                
                if(isNaN(objTmpValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                    
                }
            } 
            else if(objVClass.CtrlJSValidator == "email")
            {
                if(!validateEmailStr(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }
            else if(objVClass.CtrlJSValidator == "idcard")
            { 
                if(!CheckIDCardByBool(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }  
            else if(objVClass.CtrlJSValidator == "username")
            { 
                if(!validateUsername(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }   
            else if(objVClass.CtrlJSValidator == "pwd")
            { 
                if(!validatePassword(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }  
            else if(objVClass.CtrlJSValidator == "tel")
            { 
                if(!IsValidPhone(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }  
            else if(objVClass.CtrlJSValidator == "mobile")
            { 
                if(!IsValidMobile(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }  
            else if(objVClass.CtrlJSValidator == "zip")
            { 
                if(!IsValidZip(objValue))           
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;               
                }           
            }  
        } 
        else
        {
            var objTmpValue = null;
            
            if(objVClass.CtrlJSValidator == "int")
            { 
                if(!IsTheInt(objValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                   
                }
                
                objTmpValue = parseInt(objValue,10);
                
                if(isNaN(objTmpValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                    
                }
            }   
            else if(objVClass.CtrlJSValidator == "float")
            { 
                if(!IsTheNumber(objValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                   
                }
                
                objTmpValue = parseFloat(objValue);
                
                if(isNaN(objTmpValue))
                {
                    MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                    return false;                    
                }
            } 
            else 
                objTmpValue = objValue; 
            
            if(objVClass.CtrlJSValidator == "int" || objVClass.CtrlJSValidator == "float")
            {
                var objCValue = 0;
                
                if(IsTheNumber(objVClass.CompareValue))
                {  
                    objCValue = parseFloat(objVClass.CompareValue); 
                    if(!isNaN(objCValue))
                    {              
                        var objEval = " bResult = (" + "objTmpValue" + " " + objVClass.JSValidatorExpress + " " + "objCValue ); ";
                        eval( objEval );                    
                    }
                }
            }
            else
            {
                var objEval = " bResult = (" + "objTmpValue" + " " + objVClass.JSValidatorExpress + " " + "objVClass.CompareValue ); ";
                eval( objEval );
            }
        }
        
        if(!bResult)
        {
            MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
            return false;
        } 
    }

    if(objVClass.JSFunction != "")
    {
        var objTheReturn = null;
        
        var objTmp = " objTheReturn = " + objVClass.JSFunction + "(objThis,objVClass); ";
        eval(objTmp);
        
        if(typeof(objTheReturn) == typeof(bResult))
        {
            if(objTheReturn == false)
            {
                MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                return false;                
            }
        }
        else
        {
            if(objTheReturn == null)
            {
                MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                return false;                   
            }
            else if(objTheReturn == "0")
            {
                MyAlert(objTheReturn.Value,$(objVClass.FocusId)); 
                return false;
            }
            else if(objTheReturn == "2")
            {
                return false;            
            }
            else if(GetLowerCase(typeof(objTheReturn)) == "object") 
            {
                if(objTheReturn.Ret != 1)
                {
                    if(objTheReturn.Ret == 0)
                    {
                        if(objTheReturn.Value == "")
                            MyAlert(objVClass.Tip,$(objVClass.FocusId)); 
                        else
                            MyAlert(objTheReturn.Value,$(objVClass.FocusId)); 
                    }

                    return false;       
                }
            }
            else
            {
                if(objTheReturn != "" && objTheReturn != "1")
                {
                    alert(objTheReturn,$(objVClass.FocusId));
                    return false;
                }            
            }
        }
    } 

    return true;
}

    
// ##########################################################################
// ####################### JavaScript校验END ###############################
// #########################################################################

    
// ##########################################################################
// ####################### Math相关的代码 #################################
// #########################################################################

function And(one,two)
{
    return one & two;
}

function bAnd(one,two)
{
    return (And(one, two) != 0);
}

function bNotAnd(one,two)
{
    return !bAnd(one,two);
}

function Or(one,two)
{
    return one | two;
}

function bOr(one,two)
{
    return (Or(one, two) != 0);
}
 
function bNotOr(one,two)
{
    return !bOr(one,two);
}
    
// ##########################################################################
// ####################### Math相关的代码END ##############################
// #########################################################################


// ###########################################################################
// ####################### 校验相关的代码 #################################
// #########################################################################

function GetIntNumberByCtrl(objCtrl)
{
    return GetIntNumberByCtrlAndDefault(objCtrl,0);
}

function GetIntNumberByCtrlAndDefault(objCtrl,objDefault)
{
    if(objCtrl == null)
        return objDefault;

    if(GetType(objCtrl) == "object")
    {
        if(GetLowerCase(objThis.type) == "text"
            || GetLowerCase(objThis.type) == "hidden"  
            || GetLowerCase(objThis.type) == "password"
            || GetLowerCase(objThis.tagName) == "select"
            || GetLowerCase(objThis.tagName) == "textarea"
            || GetLowerCase(objThis.type) == "button"
            )    
        {
            return parseInt(objCtrl.value,10);
        }    
        else if(GetLowerCase(objThis.type) == "span"
            || GetLowerCase(objThis.type) == "div" 
            || GetLowerCase(objThis.tagName) == "span"
            || GetLowerCase(objThis.tagName) == "div"
            )    
        {
            return parseInt(objCtrl.innerText,10);          
        }
        else
            return objDefault;
    }
    else
    {
        return parseInt(objCtrl,10);
    }
            
}


// 判断是否是浮点数 //
function CheckTheNumber(data)
{   
  if (data   ==   "")   
    return false;   
  var   re   =   /^[\-\+]?([0-9]\d*|0|[1-9]\d{0,2}(,\d{3})*)(\.\d+)?$/;   
  return   re.test(data);   
} 

// 判断是否是整数 //
function CheckTheIntNumber(data)
{   
  if (data   ==   "")   
    return false;   
  var   re   =   /^[\-\+]?([0-9]\d*|0|[1-9]\d{0,2}(,\d{3})*)(\d+)?$/;   
  return   re.test(data);   
} 

// 获得浮点数
function GetTheNumberClass(data,objDefaultValue)
{
    return GetTheNumberClass2(data,objDefaultValue,false);    
}

function GetTheNumberClass2(data,objDefaultValue,bIsReplace)
{
    if(!CheckTheNumber(data))
        return GetRetClass(0, objDefaultValue,data);
        
    if(bIsReplace)
        data = ReplaceString(data,",","");
    
    return GetRetClass(1,parseFloat(data),data);
}

// 获得浮点数
function GetTheNumber(data,objDefaultValue)
{
    return GetTheNumber2(data,objDefaultValue,false);    
}

function GetTheNumber2(data,objDefaultValue,bIsReplace)
{
     var obj = GetTheNumberClass2(data,objDefaultValue,bIsReplace);
     
     if(obj == null)
        return objDefaultValue;
    else
        return obj.Value;
}

// 获得整型数
function GetIntNumberClass(data,objDefaultValue)
{
    return GetIntNumberClass2(data,objDefaultValue,false);
}

function GetIntNumberClass2(data,objDefaultValue,bIsReplace)
{
    if(!CheckTheIntNumber(data))
        return GetRetClass(0,objDefaultValue,data);
    
    if(bIsReplace)
        data = ReplaceString(data,",","");
    
    return GetRetClass(1,parseInt(data,10),data);
}

// 获得整型数
function GetIntNumber(data,objDefaultValue)
{
    return GetIntNumber2(data,objDefaultValue,false);
}

function GetIntNumber2(data,objDefaultValue,bIsReplace)
{
    var obj = GetIntNumberClass2(data,objDefaultValue,bIsReplace);
     
     if(obj == null)
        return objDefaultValue;
    else
        return obj.Value;
}

// JS替换字符串 //
function ReplaceString(objStr,objChar,objNewChar)
{ 
    return ReplaceStringByBoolean(objStr,objChar,objNewChar,true);
}

function ReplaceStringByBoolean(objStr,objChar,objNewChar,bFlag)
{
    do
    {
        if(objStr.indexOf(objChar) != -1)
            objStr = objStr.replace(objChar,objNewChar);
        else
            break;
    }while(bFlag);    
    
    return objStr;

}

function StringRemoveTreeLine(objTheText)
{
    if(objTheText == null || objTheText == "")
        return "";
        
    objTheText = ReplaceStringByBoolean(objTheText,"┈","",true);
    objTheText = ReplaceStringByBoolean(objTheText,"├","",true);
    objTheText = ReplaceStringByBoolean(objTheText,"┌","",true);
    objTheText = ReplaceStringByBoolean(objTheText,"└","",true);
    
    return objTheText;
}


function StringSplitJoin(objStr,objChar,objNewChar )
{
    if(objStr == null)
        return "";
    if(objChar == null || objNewChar == null)
        return objStr;
                        
    return objStr.split(objChar).join(objNewChar);
}

function StringFind(objStr,objChar,iFlag)
{
    // 
    var bStringFlagIgnoreCase = bAnd(iFlag,StringFlagIgnoreCase);
    var bStringFlagFindFlag = bAnd(iFlag,StringFlagFindFlag);
    
    var one = objStr;
    var two = objChar;
    
    if(bStringFlagFindFlag)
    {
        one = objChar;
        two = objStr;
    }

    if(bAnd(iFlag,StringFlagHead))
        return StringStartsWithIgnoreCase(one,two,bStringFlagIgnoreCase);
    else if(bAnd(iFlag,StringFlagEnd))
        return StringEndsWithIgnoreCase(one,two,bStringFlagIgnoreCase);
    else 
        return StringContainsIgnoreCase(one,two,bStringFlagIgnoreCase);
}

function StringContains(objStr,objChar)
{
    return StringContainsIgnoreCase(objStr,objChar,false);
}

function StringContainsIgnoreCase(objStr,objChar,ignoreCase)
{
    return (StringIndexOfIgnoreCase(objStr,objChar,ignoreCase) != -1);
}

function StringIndexOf(objStr,objChar)
{
    return StringIndexOfIgnoreCase(objStr,objChar,false);
}

function StringIndexOfIgnoreCase(objStr,objChar,ignoreCase)
{
    if(objStr == null || objStr == "" || objChar == null || objChar == "")
        return -1;

    if(ignoreCase)
    {
        objStr = GetLowerCase(objStr);
        objChar = GetLowerCase(objChar);
    }        
    
    var objIdx = objStr.indexOf(objChar);

    return objIdx;
}

function StringLastIndexOf(objStr,objChar)
{
    return StringLastIndexOfIgnoreCase(objStr,objChar,false);
}

function StringLastIndexOfIgnoreCase(objStr,objChar,ignoreCase)
{
    if(objStr == null || objStr == "" || objChar == null || objChar == "")
        return -1;
        
    if(ignoreCase)
    {
        objStr = GetLowerCase(objStr);
        objChar = GetLowerCase(objChar);
    }          
        
    var objIdx = objStr.lastIndexOf(objChar);
    return objIdx;
}

function StringStartsWith(objStr,objChar)
{
    return StringStartsWithIgnoreCase(objStr,objChar,false);
}

function StringStartsWithIgnoreCase(objStr,objChar,ignoreCase)
{
    if(objStr == null || objStr == "" || objChar == null || objChar == "")
        return false;
        
    return (StringIndexOfIgnoreCase(objStr,objChar,ignoreCase) == 0);            
}

function StringEndsWith(objStr,objChar)
{
    return StringEndsWithIgnoreCase(objStr,objChar,false);
}

function StringEndsWithIgnoreCase(objStr,objChar,ignoreCase)
{
    if(objStr == null || objStr == "" || objChar == null || objChar == "")
        return false;
        
    var len1 = GetLength(objStr);        
    var len2 = GetLength(objChar);

    var idx = StringLastIndexOfIgnoreCase(objStr,objChar,ignoreCase);
    
    if(idx <= -1)
        return false;

    return (idx == (len1-len2));
}

function StringFillChar(objStr,objChar)
{
    return StringFillCharIgnoreCase(objStr,objChar,false);
}

function StringFillCharIgnoreCase(objStr,objChar,ignoreCase)
{
    if(objStr == null || objStr == "")
        return "";
        
    if(objChar == null || objChar == "")
        return objStr;
        
    if(!StringStartsWithIgnoreCase(objStr,objChar,ignoreCase))
        objStr = objChar + objStr;
        
    if(!StringEndsWithIgnoreCase(objStr,objChar,ignoreCase))
        objStr = objStr + objChar;

    return objStr; 
}

function StringItemLength(objStr,objChar)
{
    if(objStr == null || objStr == "" || objChar == null || objChar == "" || objStr == objChar)
        return 0;
        
    if(!StringStartsWithIgnoreCase(objStr,objChar,false))
        objStr = objChar + objStr;
    if(!StringEndsWithIgnoreCase(objStr,objChar,false))
        objStr = objStr + objChar;            
        
    var tmp = objStr.split(objChar);
    
    var iLen = GetLength(tmp) - 2;
    if(iLen < 0)
        return 0;
        
    return iLen;        
}

// 判断TextBox的Int值 //
function JudgeTextBoxIntNumber(objId,objDefault,objMessageNull,objMessageEmpty,objMessageError,bAllowEmpty,bAllowNull)
{
    var objCtrl = $(objId);
    if(objCtrl == null)
    {
        if(bAllowNull)
            return true;
        else
        {
            MyAlert(objMessageNull,objCtrl);
            return false;
        }            
    }
    
    var objValue = objCtrl.value.trim();
    
    if(objValue == "")
    {
        if(bAllowEmpty)
            return true;
        else
        {
            MyAlert(objMessageEmpty,objCtrl);
            return false;
        }           
    }
    
    var objIntValue = GetIntNumber(objValue,objDefault - 1);
    
    if(objIntValue < objDefault)
    {
        MyAlert(objMessageError,objCtrl);
        return false;
    }
    
    return true;
}



// ###########################################################################
// ####################### 校验相关的代码END ##############################
// #########################################################################

// ###########################################################################
// ####################### 切换相关的JS代码 ###############################
// #########################################################################

function SwapClass(){ }
SwapClass.prototype =
{
    ValidatorCode:"",
    ClientId:"",
    PreId:"",
    Attribue:"",
    AttriSelect:"",
    AttriNoSelect:"",
    StartFrom:1,
    EndNum:0
}

function AddDefaultVSwapArray(objValidatorCode,objClientId,objPreId,objStartFrom,objEndNum)
{
    return AddVSwapArray(objValidatorCode,objClientId,objPreId,"style.display","","none",objStartFrom,objEndNum);
}

function AddVSwapArray(objValidatorCode,objClientId,objPreId,objAttribue,objAttriSelect,objAttriNoSelect,objStartFrom,objEndNum)
{
    var obj = GetVSwapClass(objValidatorCode,objClientId,objPreId,objAttribue,objAttriSelect,objAttriNoSelect,objStartFrom,objEndNum);

    if(obj != null)
    {
        var objLen = GetLength(VSwapArray);

        VSwapArray[objLen] = obj;

    }

    return true;
}

// 实例化类对象
function GetVSwapClass(objValidatorCode,objClientId,objPreId,objAttribue,objAttriSelect,objAttriNoSelect,objStartFrom,objEndNum)
{
    var objVSwapClass = new SwapClass();
    
    objVSwapClass.ValidatorCode = objValidatorCode;
    objVSwapClass.ClientId = objClientId;
    objVSwapClass.PreId = objPreId;
    objVSwapClass.Attribue = objAttribue;
    objVSwapClass.AttriSelect = objAttriSelect;
    objVSwapClass.AttriNoSelect = objAttriNoSelect;
    objVSwapClass.StartFrom = objStartFrom;
    objVSwapClass.EndNum = objEndNum;

    return objVClass;
}


function SwapTabsByIndex(objThis,objIdx,objValidatorCode)
{
    if(VSwapArray == null)
    {
        return true;
    }

    var objCount = GetLength(VSwapArray);   
    
    var i = 0;

    for(i = 0; i < objCount; ++i)
    {
        SwapTabsByIndexAndClassObj(objThis,objIdx,objValidatorCode,VSwapArray[i]);
    }     

    return true;            
}

function SwapTabsByIndexAndClassObj(objThis,objIdx,objValidatorCode,objVClass)
{
    if(objVClass == null || objVClass.ValidatorCode != objValidatorCode)
        return true;

    var iStartFrom = objVClass.StartFrom;
    var iEndNum = objVClass.EndNum;
    
    var objCtrl = null;
    var objAttri = "";
    var objJS = "";
    
    for(; iStartFrom <= iEndNum || iEndNum == 0; ++iStartFrom)
    {
        objCtrl = $(objVClass.ClientId + "" + objVClass.PreId + "" + iStartFrom);
        
        if(objCtrl == null)
        {
            if(iEndNum == 0)
                break;
            else
                continue;                
        }
        
        if(iStartFrom == objIdx)
        {
            objAttri = objVClass.AttriSelect;
        }
        else
        {
            objAttri = objVClass.AttriNoSelect;
            
        }

        objJS = 'objCtrl.' + objVClass.Attribue + '="' + objAttri + '";';
        eval(objJS);
    }
}

// ###########################################################################
// ####################### 切换相关的JS代码END ############################
// #########################################################################

// ##########################################################################
// ####################### 封装的代码 #####################################
// #########################################################################

function CheckLogin(obj,strID)
{
    return CheckLoginById(obj,strID,"txt_TheName","txt_Passwd","txt_VerifyCode");
}

function CheckLoginById(obj,strID,objtxt_UserName,objtxt_Pwd,objtxt_Verify )
{
	var objName = $(obj.id.replace(strID,objtxt_UserName));
	var objPwd = $(obj.id.replace(strID,objtxt_Pwd ));
	var objVerify = $(obj.id.replace(strID,objtxt_Verify));

	if(objName == null || objPwd == null) // || objVerify == null)
	{
		return true;
    }

	
	if (objName.value.trim() == "")
	{
		alert("请输入账号！");
		objName.focus();
		objName.select();
		return false;
	}
	if (objPwd.value == "")
	{
		alert("请输入密码！");
		objPwd.focus();
		objPwd.select();
		return false;
	}
	
	if(objVerify != null)
	{
	    if (objVerify.value.trim() == "")
	    {
		    alert("请输入验证码！");
		    objVerify.focus();
		    objVerify.select();
		    return false;
	    }
    }
    
    if(typeof(CheckLoginOther) == "function")
    {
        var bFlag = true;
        eval(" bFlag = CheckLoginOther(); ");
        
        if(bFlag == false) 
            return false;
    }    
    
	return true;
	
}

// ###########################################################################
// ######################### 封装的代码END #################################
// #########################################################################

// ###########################################################################
// ############################## 其它代码 #################################
// #########################################################################

// 重新加载图片
function ReLoadImage(objId)
{
    return ReLoadImageByType(objId,"");     
}  

function ReLoadImageByType(objId,objType)
{
    var objTypeUrl = "";
    
    if(objType != null && objType != "")
        objTypeUrl = "type=" + objType + "&";
        
    var date = new Date();
    var theSrc = GetPhyPath() + "/ajax/common/verifycode.aspx?" + objTypeUrl + "thetimestamp="+date;

    return ReLoadImageBySRC(objId,theSrc);
}    

function ReLoadImageBySRC(objId,objSrc)
{
    var objCtrl = objId;
    
    if(objCtrl == null)
        objCtrl = $(objId);

    if(objCtrl == null || objSrc == null)
        return false;

    objCtrl.src = objSrc;

    return true;
} 



// ###########################################################################
// ############################## 其它代码END ##############################
// #########################################################################
  
// 禁用右键 
function DisableRightKey()
{
    return ClearEvents();
}

// 禁止右键
function ClearEvents()
{
    if(window == null) // || event == null || event.srcElement == null || event.srcElement.tagName == null)
    {
        return false;
    }
        
    window.ClearEvent = function() 
    { 
        event.cancelBubble = false;
        var sSrcTagName = event.srcElement.tagName.toLowerCase();

        return (sSrcTagName=="textarea" || sSrcTagName=="input" || sSrcTagName=="select");
    }

    window.ClearKey = function()
    {
        event.cancelBubble=false;
        var iKeyCode = event.keyCode;
        return !(iKeyCode==78 && event.ctrlKey);
    }

    with (window.document)
    {
        oncontextmenu=onselectstart=ondragstart=window.ClearEvent;
        onkeydown=window.ClearKey;
    }
    
    return true;
}

function TextBoxAttrOnLyNumber(objCtrl)
{
    if(objCtrl == null)
        return false;

    objCtrl.onbeforepaste = function()
    {             
        this.value = clipboardData.setData('text',ValueOnlyNumber(clipboardData.getData('text')));
        return true;
    }
    
    objCtrl.onkeyup= function()
    {
        this.value = OnlyNumber(this);
        return true;
    }

    return true;       
}

function OnlyNumber(objCtrl)
{
    if(objCtrl == null)
        return "";
       
    return ValueOnlyNumber(objCtrl.value); 
}

function ValueOnlyNumber(objValue)
{
    if(objValue == null)
        return objValue;

    return objValue.replace(/[^\d]/g,'');
}

 
// 过滤空格 // 
function TextBoxAttrTrim(objCtrl)
{
    if(objCtrl == null)
        return false;

    objCtrl.onbeforepaste = function()
    {             
        this.value = clipboardData.setData('text', clipboardData.getData('text').trim());
        return true;
    }
    
    objCtrl.onkeyup= function()
    {
        this.value = this.value.trim();
        return true;
    }

    return true;       
} 


// ###########################################################################
// ############################## 时间日期 #################################
// #########################################################################

// 判断是否是闰年				
function IsPinYear(iYear)  
{ 
    if(iYear == null || isNaN(iYear))
        return false;
        
	if (0==iYear%4 && ((iYear%100!=0)||(iYear%400==0))) 
	    return true;
	else 
	    return false; 
}  

// 获得月份个数 //
function GetMonthCount(iYear,iMonth)  //闰年二月为29天 
{ 
    if(iYear == null || isNaN(iYear) || iMonth == null || isNaN(iMonth))
        return 0;

	if(iMonth < 1 || iMonth > 12)
		return 0;
		
	var c = 0;
	
	if(
		iMonth == 1 
		|| iMonth == 3
		|| iMonth == 5
		|| iMonth == 7
		|| iMonth == 8
		|| iMonth == 10
		|| iMonth == 12
	)
		c = 31;
	else if(iMonth == 2)
	{
		c = 28;
		if(IsPinYear(iYear))
			++c;
	}
	else
	{
		c = 30;
	}
	
	return c;
} 

function IsTheCorrectMonth(objYear,objMonth)
{
    return IsTheCorrectDay(objYear,objMonth,"01");
}

function IsTheCorrectDay(objYear,objMonth,objDay)
{
    
    if(objYear == null || objMonth == null || objDay == null)
        return false;


    var objTmpYear = ("" + objYear).trim();
    var objTmpMonth = ("" + objMonth).trim();
    var objTmpDay = ("" + objDay).trim();
    
    if(!IsAllDigitChar(objTmpYear) || !IsAllDigitChar(objTmpMonth) || !IsAllDigitChar(objTmpDay))
        return false;    
    
    var iMonth = parseInt(objTmpMonth,10);
    var iYear = parseInt(objTmpYear,10);
    var iDay = parseInt(objTmpDay,10);
    
    if(isNaN(iMonth) || isNaN(iYear) || isNaN(iDay))
        return false;

    if(iMonth < 1 || iMonth > 12)
	    return false;

    if(iDay < 1 || iDay > parseInt(GetMonthCount(iYear,iMonth),10))
    {
	    return false;
    }

	return true;    
}

function GetDate(stringDate,strSplit)
{
    var strDate = Trim(stringDate);
    
    return ReplaceStringByBoolean(strDate,strSplit,"",true);
}

// 获得年
function GetYear(stringDate)
{
    
    var strDate = Trim(stringDate);
    
    if(!IsValidDate(stringDate))
        return NaN;
	
	if(strDate.length != 8) 
	    return NaN;

	if(!IsAllDigitChar(strDate)) 
	    return NaN;

	var nYear = parseInt( strDate.substring( 0, 4 ),10);

    return nYear;
}

function GetMonth(stringDate)
{
    var strDate = Trim(stringDate);
    
    if(!IsValidDate(stringDate))
        return NaN;
    
	
	if(strDate.length != 8) 
	    return NaN;

	if(!IsAllDigitChar(strDate)) 
	    return NaN;

	var nMonth = parseInt(strDate.substring( 4, 6 ),10);

    return nMonth;
}

function GetDay(stringDate)
{
    var strDate = Trim(stringDate);
	
    if(!IsValidDate(stringDate))
        return NaN;
	
	if(strDate.length != 8) 
	    return NaN;

	if(!IsAllDigitChar(strDate)) 
	    return NaN; 
	    
	var nDay = parseInt(strDate.substring( 6, 8 ),10); 
	
    return nDay;
}

function GetCurDate()
{
    return GetTheDate(null);
}

function GetTheDate(objDate)
{
    if(objDate == null)
        objDate = new Date();
        
    var iYear = "" + GetTheYear(objDate);            
    var iMonth = "" + GetTheMonth(objDate);
    var iDate = "" + GetTheDay(objDate);

    if( iYear.length == 2)
        iYear = "19" + iYear;
    if(iMonth.length == 1)
        iMonth = "0" + iMonth;
    if(iDate.length == 1)
        iDate = "0" + iDate;

    return iYear+iMonth+iDate;
}

function GetCurYear( )
{
    return GetTheYear(null);    
}

function GetTheYear(objDate )
{
    if(objDate == null)
        objDate = new Date();
        
    return objDate.getFullYear();        
}

function GetCurMonth( )
{
    return GetTheMonth(null);    
}

function GetTheMonth(objDate )
{
    if(objDate == null)
        objDate = new Date();
        
    return objDate.getMonth()+1;  
}

function GetCurDay( )
{
    return GetTheDay(null);    
}

function GetTheDay(objDate )
{
    if(objDate == null)
        objDate = new Date();
        
    return objDate.getDate();  
}

function CompareDay
    (
        str1,
        str2
    )
{
    // alert('dfdf');
    var y1 = GetYear(str1);
    var m1 = GetMonth(str1);
    var d1 = GetDay(str1);
    
    var y2 = GetYear(str2);
    var m2 = GetMonth(str2);
    var d2 = GetDay(str2);

    return CompareDay2(y1,m1,d1,y2,m2,d2);    
}

function CompareDay2
	(
		objYear1,
		objMonth1,
		objDay1,
		objYear2,
		objMonth2,
		objDay2
	)
{
    
    
    if(IsNullOrEmptyOrNaN(objYear1)
        || IsNullOrEmptyOrNaN(objMonth1)
        || IsNullOrEmptyOrNaN(objDay1)
        || IsNullOrEmptyOrNaN(objYear2)
        || IsNullOrEmptyOrNaN(objMonth2)
        || IsNullOrEmptyOrNaN(objDay2))
    {
        return -2;
    }

	var iYear1 = parseInt("" + objYear1,10);
	var iYear2 = parseInt("" + objYear2,10);
	
    var iMonth1 = parseInt("" + objMonth1,10);
    var iMonth2 = parseInt("" + objMonth2,10);
    
    var iDay1 = parseInt("" + objDay1,10);
    var iDay2 = parseInt("" + objDay2,10);
    
    if(!IsTheCorrectDay(iYear1,iMonth1,iDay1)
        || !IsTheCorrectDay(iYear2,iMonth2,iDay2))
        return -2

	if(iYear1 > iYear2)
		return 1;
	else if(iYear1 < iYear2)
		return -1;
	else
	{
		if(iMonth1 > iMonth2)
			return 1;
		else if(iMonth1 < iMonth2)
			return -1;
		else
		{
			
			if(iDay1 > iDay2)
				return 1;
			else if(iDay1 < iDay2)
				return -1;
			else
				return 0;
		}
	}
}

function CreateDateByCtrlPreId(preId)
{
    var ddlYear = $("ddl_" + preId + "Year");
    var txtYear = $("txt_" + preId + "Year");
    var ddlMonth = $("ddl_" + preId + "Month");
    var txtMonth = $("txt_" + preId + "Month");
    var ddlDay = $("ddl_" + preId + "Day");
    var txtDay = $("txt_" + preId + "Day");
    
    return CreateDate(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay);
}


function CreateDateByCtrlPreId2(preId,objDate)
{
    var ddlYear = $("ddl_" + preId + "Year");
    var txtYear = $("txt_" + preId + "Year");
    var ddlMonth = $("ddl_" + preId + "Month");
    var txtMonth = $("txt_" + preId + "Month");
    var ddlDay = $("ddl_" + preId + "Day");
    var txtDay = $("txt_" + preId + "Day");
    
    return CreateDate2(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay,objDate);
}

function CreateDate(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay)
{
    return CreateDate2(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay,null);
}

function CreateDate2(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay,objDate)
{
    return CreateDate3(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay,objDate,-100,10);
}

function CreateDate3(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay,objDate,objStart,objEnd)
{
    if(IsNullOrEmptyAndBlankOrNaN(objStart)
        || IsNullOrEmptyAndBlankOrNaN(objEnd))
        return false;

    if(ddlYear == null || txtYear == null 
        || ddlMonth == null || txtMonth == null 
        )
    {
        return false;
    }
    
    var isAddDay = false;
    
    if(ddlDay != null && txtDay != null)
        isAddDay = true;

    if(objDate == null)
        objDate = new Date();

    if(txtYear.value.trim() == "")
        txtYear.value = GetTheYear(objDate);

    if(txtMonth.value.trim() == "")
        txtMonth.value = GetTheMonth(objDate);

    if(isAddDay)
    {
        if(txtDay.value.trim() == "")
            txtDay.value = GetTheDay(objDate);
    }        
    
    if(objStart > objEnd)
    {
        var objTmp = objStart;
        objStart = objEnd;
        objEnd = objTmp;
    }    
 
    var iYear = parseInt(txtYear.value.trim(),10);
    var iMonth = parseInt(txtMonth.value.trim(),10);
    var iDay = 0;
    
    if(isAddDay)
        iDay= parseInt(txtDay.value.trim(),10);
        
    if(isNaN(iYear) || isNaN(iMonth) || isNaN(iDay))
        return false; 

    var iStart = iYear + objStart;
    var iEnd = iYear + objEnd;
    
    var i = iEnd;

    ListControlRemoveAll(ddlYear);
    ListControlRemoveAll(ddlMonth);
    
    if(isAddDay)
        ListControlRemoveAll(ddlDay);

	var j = 0;
	var iSelectedIndex = -1;
	
	for(i = iEnd; i >= iStart; i--)
	{
		ddlYear.options.add(new Option (i,i));
		if(i == iYear)
		{
			iSelectedIndex = j;
		}
		
		++j;
	}
	
	if(iSelectedIndex != -1)
		ddlYear.selectedIndex = iSelectedIndex;

	j = 0;
	iSelectedIndex = -1;
	for(i = 1; i <= 12; i++)
	{
		ddlMonth.options.add(new Option (i,i));
		if(i == iMonth)
		{
			iSelectedIndex = j;
		}
		
		++j;
	}
	
	if(iSelectedIndex != -1)
		ddlMonth.selectedIndex = iSelectedIndex;
		
	if(isAddDay)
	{
	    var iMaxDay = GetMonthCount(iYear,iMonth);
	    CreateDay(ddlDay,txtDay,iMaxDay);
    } 
    
    if(isAddDay)
	{
        ddlYear.onchange = function()
        {
            txtYear.value = ddlYear.value;
            YearOrMonthChange(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay)
        }    
        
        ddlMonth.onchange = function()
        {
            txtMonth.value = ddlMonth.value;
            YearOrMonthChange(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay)
        }    
    
        ddlDay.onchange = function()
        {
            txtDay.value = ddlDay.value;
        }  
    }      
    else
    {
        ddlYear.onchange = function()
        {
            txtYear.value = ddlYear.value;
        }    
        
        ddlMonth.onchange = function()
        {
            txtMonth.value = ddlMonth.value;
        }           
    }  
        
    return true;
				    
}

function CreateDay(ddl,txt,iNum)
{
    if(ddl == null)
        return false;
        
    if(IsNullOrEmptyAndBlankOrNaN(iNum))
        return false;

    var theNum = parseInt(""+iNum,10);
    
    if(isNaN(theNum) || theNum < 28 || theNum > 31)                
        return false;
       
//    ListControlRemoveAll(ddl);
//            
//    var i = 1;
//                
//    for(i = 1; i <= theNum; ++i)
//    {
//	    ddl.options.add(new Option (i,i));
//    }   

    var ddlLen = GetLength(ddl);
    
//    if(ddlLen == theNum)
//        return true;
        
    var i = ddlLen+1;
    
    while(i <= theNum)
    {
        ListControlAddItem(ddl,i,i);
        ++i;        
    }
    
    i = ddlLen-1;
    while(i >= theNum)
    {
        ListControlRemoveItem(ddl,i);
        --i;
    }
            

    if(txt == null)
    {
        ListControlSelectedByValue(ddl,GetCurDay());
    }
    else
    {
        var theDay = parseInt(txt.value);
        var curDay = "";
        
        if(isNaN(theDay))
            curDay = "" + GetCurDay();
        else            
        {
            if(theDay < 1 || theDay > theNum)
                curDay = "" + GetCurDay();
            else    
                curDay = "" + theDay;
        }

        ListControlSelectedByValue(ddl,curDay);
        txt.value = curDay;
    }

    return true;            
}

function YearOrMonthChange(ddlYear,txtYear,ddlMonth,txtMonth,ddlDay,txtDay)
{
    if(ddlYear == null || txtYear == null 
        || ddlMonth == null || txtMonth == null 
        )
    {
        return false;
    }  
    
    var isAddDay = false;
    
    if(ddlDay != null && txtDay != null)
        isAddDay = true;      
        
    if(!isAddDay)        
        return true;

    var iYear = parseInt(txtYear.value,10);        
    var iMonth = parseInt(txtMonth.value,10);
    
    var iMaxDay = GetMonthCount(iYear,iMonth);
    
    if(iMaxDay == ddlDay.length)
        return true;

    return CreateDay(ddlDay,txtDay,iMaxDay);         

}



// ###########################################################################
// ############################## 时间日期END ##############################
// #########################################################################

// ###########################################################################
// ############################## ListControl操作 ##########################
// #########################################################################

// 下拉绑定树的代码 //
function ListControlClass(){ }

// 下拉绑定树类定义 //
ListControlClass.prototype =
{
    Value:"",
    Text:"",
    VArray:null
}

// 实例化类对象
function GetListControlClass(objValue,objText)
{
    return GetListControlClass2(objValue,objText,null);
}

// 实例化类对象 
function GetListControlClass2(objValue,objText,objVArray)
{
    var objVClass = new ListControlClass();

    objVClass.Value = objValue;
    objVClass.Text = objText;
    
    if(objVArray == null)
        objVClass.VArray = new Array();
    else
        objVClass.VArray = objVArray; 

    return objVClass;
}

function AddListControlClassArray(objValue,objText)
{
    return AddListControlClassArray2(objValue,objText,null);
}

function AddListControlClassArray2(objValue,objText,objVArray)
{
    var obj = GetListControlClass2(objValue,objText,objVArray);

    if(obj != null)
    {
        var objLen = GetLength(VListControlClassArray);

        VListControlClassArray[objLen] = obj;
    }

    return true;
}

function InitListControlByClassAndPreId( preId)
{
    return InitListControlByClassAndPreIdAndFromIdx(1,preId);    
}

function InitListControlByClassAndPreIdAndArray(preId,ClassArray)
{
    return InitListControlByClassAndPreIdAndFromIdxAndArray(1,preId,ClassArray); 
}

function InitListControlByClassAndPreIdAndFromIdx(fromIdx, preId)
{
    return InitListControlByClassAndPreIdAndFromIdxAndArray(fromIdx,preId,null);
}

function InitListControlByClassAndPreIdAndFromIdxAndArray(fromIdx, preId,ClassArray)
{
    var array = new Array();
    
    var idx = 1;
    var i = 0;
    
    while(true)
    {
        var ddl = $("ddl_" + preId + "_" + idx);
        var txt = $("txt_" + preId + "_" + idx);
        
        if(ddl == null || txt == null)
            break;
              
        array[i++] = ddl;
        array[i++] = txt;
                            
        ++idx;     
        
                       
    }
    
    // alert(idx);
    
    return InitListControlByClassAndFromIdx(fromIdx, array,ClassArray);
}

function InitListControlByClass(theArray,ClassArray)
{
    InitListControlByClassAndFromIdx(1,theArray,ClassArray);    
}

function InitListControlByClassAndFromIdx(fromIdx,theArray,ClassArray)
{
    if(theArray == null)
        return false;
        
        
            
    var iLen = GetLength(theArray);
    
    // alert(" iLen = " + iLen);
    
    if(iLen == 0 || iLen % 2 == 1)
        return false;
        
    if(ClassArray == null)
        ClassArray = VListControlClassArray;
        
    var ddl = null; // theArray[0];
    var txt = null; // theArray[1];
    
    var idx = 1;
    var curIdx = -1;
    var BuildArray = null;
    
    while(true)
    {
        
            
        var iSize = idx * 2;
        
        if(iSize > iLen)
            break; 

        ddl = theArray[iSize - 2];
        txt = theArray[iSize - 1];

        if(ddl == null || txt == null)
            break;
            
        if(idx == 1)
            BuildArray = ClassArray;
        else
        {
            var iBuildLen = GetLength(BuildArray);
            if(curIdx < 0 || curIdx >= iBuildLen)
                BuildArray = new Array();
            else                
                BuildArray = BuildArray[curIdx].VArray;
        }

        if(fromIdx <= idx)
            InitListControlByCtrlAndArray(BuildArray,ddl,txt);  

        curIdx = GetListControlSelectedIndex(ddl);  
        
//        if(idx == 1)
//            alert(" iLen = " + iLen);        

        ++idx;           
    }
                        
}

function InitListControlByCtrlAndArray(theArray,ddl,txt)
{
    if(ddl == null || theArray == null)
        return false;
        
    ListControlRemoveAll(ddl);        
    var iLen = GetLength(theArray);         
    
    if(iLen == 0)
        return true;
        
    var i = 0;
    while(i < iLen)
    { 
        var obj = theArray[i];
        ListControlAddItem(ddl,obj.Text,obj.Value);
        ++i;
    }  
    
    if(txt != null)
    {
        ListControlSelectedByValue(ddl,txt.value);
    }         
    
    return true;
}

// ###########################################################################
// ########################### ListControl操作END ##########################
// #########################################################################

// ###########################################################################
// ############################## Ajax操作 #################################
// #########################################################################

function GetAjaxItem(objType,objValue)
{
    if(objValue == null)
        objValue = "";
        
    if(objType == "string")
    {
        return "" + objValue;
    }
    else if(objType == "boolean")        
    {
        if(IsBooleanType(objValue))
            return objValue;
        else
            return  ((objValue+"") == 1);
    }
    else if(objType == "int" || objType == "long")
    {
        if(IsIntType(objValue))
            return objValue;
        else 
        {
            var tmp = objValue + "";
            if(IsTheInt(tmp))
            {
                if(objType == "long")
                    return parseFloat(tmp);
                else                    
                    return parseInt(tmp,10);
            }
            else
                return 0;                
        }
    }
    else if(objType == "float" || objType == "double")
    {
        if(IsNumberType(objValue))
            return objValue;
        else 
        {
            var tmp = objValue + "";
            if(IsTheNumber(tmp))
            {
                return parseFloat(tmp);
            }
            else
                return 0;                
        }
    } 
    else if(objType == "datatime")   
    {
        return ""+objValue;
    }
    
    return ""+objValue;
}


function GetResponseValue(obj)
{
    return GetResponseValueNullToDefault(obj,null);
}

function GetResponseValueNullToDefault(obj,objNull)
{
    if(obj == null)
        return objNull;
    else
        return obj.value;        
}

function GetResponseValueNullToBooleanDefault(obj,objNull)
{
    if(obj == null)
        return objNull;
    else
        return obj.value;        
}

function GetResponseValueNullToIntDefault(obj,objNull)
{
    if(obj == null)
        return objNull;
    else
        return obj.value;        
}

function GetResponseValueNullToNumberDefault(obj,objNull)
{
    if(obj == null)
        return objNull;
    else
        return obj.value;        
}

// ###########################################################################
// ############################## Ajax操作END ##############################
// #########################################################################


// ###########################################################################
// ############################## MultiSelect操作 ##########################
// #########################################################################

// 是否多选
function OnMultiSelectAdd(objPreId,objLinkChar,objSelectNumber,bIsTree)
{

    var objLeft = $(objPreId + "_ListBoxLeft" );
    var objRight = $(objPreId + "_ListBoxRight" );
    var objHiddenValues = $(objPreId + "_hiddenValues" );
    
    if(objLeft == null || objRight == null || objHiddenValues == null)
        return false;

    var objOption = GetListControlSelectedOption(objLeft);

    if(objOption == null)
        return false; 

    var objID = objOption.value;
    var objValue = objHiddenValues.value.trim();
    
    if(objValue.indexOf(objLinkChar + objID + objLinkChar) != -1)
    {
        return false;
    }

    if(objSelectNumber != 0)
    {
        var iTmpSelectedLen = StringItemLength(objValue,objLinkChar);
        
        if(iTmpSelectedLen == objSelectNumber)
            return false;
    }    
    	
    var objTheText = objOption.text;

    if(bIsTree)
        objTheText = StringRemoveTreeLine(objTheText);

    ListControlAddItem(objRight, objTheText,objID);

    if(objValue == "" || objValue == objLinkChar)
        objHiddenValues.value = objLinkChar + objID + objLinkChar;
    else
        objHiddenValues.value += objID + objLinkChar;
        
    SetListControlNextSelectedIndexByCtrl(objLeft); 

    if(typeof(AfterMultiSelectAdd)=="function")
        AfterMultiSelectAdd(objPreId,objLinkChar,objSelectNumber,bIsTree,objID);

}	

function OnMultiSelectRemove(objPreId,objLinkChar,objSelectNumber,bIsTree)
{
    var objLeft = $(objPreId + "_ListBoxLeft" );
    var objRight = $(objPreId + "_ListBoxRight" );
    var objHiddenValues = $(objPreId + "_hiddenValues" );
    
    if(objLeft == null || objRight == null || objHiddenValues == null)
        return false;

    var objSelectedIndex = GetListControlSelectedIndex(objRight); 
    
    if(objSelectedIndex == -1)
        return false;

    var objID = objRight.value;
    var objValue = objHiddenValues.value.trim();

    if(objValue.indexOf(objLinkChar + objID + objLinkChar) == -1)
        return false;

    ListControlRemoveItem(objRight,objSelectedIndex);        

    objHiddenValues.value = objValue.replace(objLinkChar + objID + objLinkChar,objLinkChar);

    if(objHiddenValues.value == objLinkChar)
        objHiddenValues.value = "";

    SetListControlNextSelectedIndexByCtrl(objRight); 

    if(typeof(AfterMultiSelectRemove)=="function")
        AfterMultiSelectRemove(objPreId,objLinkChar,objSelectNumber,bIsTree,objID);
}

// 加载事件 //
function OnMultiSelectLoad(objPreId,objLinkChar,objSelectNumber,bIsTree)
{
    var objLeft = $(objPreId + "_ListBoxLeft" );
    var objRight = $(objPreId + "_ListBoxRight" );
    var objHiddenValues = $(objPreId + "_hiddenValues" );

    if(objLeft == null || objRight == null || objHiddenValues == null)
        return false;

    var i = 0;
    
    var objTheLen = GetListControlLength(objLeft);

    var objValue = objHiddenValues.value.trim();
    
    objValue = StringFillCharIgnoreCase(objValue,objLinkChar,false);

    var objID = "";
    var objTheText = null;

    var op = null;

    objHiddenValues.value = "";
    var objRetValue = "";

    for(i = 0; i < objTheLen; i++)
    {
        objID = objLeft.options[i].value;
        objTheText = objLeft.options[i].text;

        if(objValue.indexOf(objLinkChar + objID + objLinkChar) == -1)
            continue;

        if(bIsTree)
            objTheText = StringRemoveTreeLine(objTheText);

        ListControlAddItem(objRight, objTheText,objID);

        if(objRetValue == "" || objRetValue == objLinkChar)
            objRetValue = objLinkChar + objID + objLinkChar;
        else
            objRetValue += objID + objLinkChar;        
      
    }
    
    objHiddenValues.value = objRetValue;
}

function OnMultiSelectCheck(objPreId,objLinkChar,objSelectNumber,bIsTree,bIsNotNull,objTheName)
{
    return (OnMultiSelectCheck2(objPreId,objLinkChar,objSelectNumber,bIsTree,bIsNotNull,objTheName,true) == 0);
}

function OnMultiSelectCheck2(objPreId,objLinkChar,objSelectNumber,bIsTree,bIsNotNull,objTheName,bIsAlert)
{
    var objLeft = $(objPreId + "_ListBoxLeft" );
    var objRight = $(objPreId + "_ListBoxRight" );
    var objHiddenValues = $(objPreId + "_hiddenValues" );

    if(objLeft == null || objRight == null || objHiddenValues == null)
    {
        if(bIsAlert)
            alert("控件为空，系统出错！");
        return 1;
    }
    
    var objValue = objHiddenValues.value.trim();
    if(objValue == "" || objValue == objLinkChar)
    {
        if(bIsNotNull)
        {
            if(bIsAlert)
                alert("请点选" + objTheName + "！");
            return 2;
        }
        else
            return 0;
    }

    if(objSelectNumber > 0)
    {
        var iTmpSelectedLen = StringItemLength(objValue,objLinkChar);
        
        if(iTmpSelectedLen > objSelectNumber)
        {
            if(bIsAlert)
                alert("请点选不超过" + objSelectNumber + "的" + objTheName + "数！");

            return 3;
        }
    }   
    
    return 0;
}	

// 搜索 //
function OnMultiSelectSearch(objPreId,objLinkChar,objSelectNumber,bIsTree)
{
    var objLeft = $(objPreId + "_ListBoxLeft" );
    var objRight = $(objPreId + "_ListBoxRight" );
    var objHiddenValues = $(objPreId + "_hiddenValues" );
    
    var objLblSearch = $(objPreId + "_lblSearch" );
    var objTxtSearch = $(objPreId + "_txtSearch" );

    if(objLeft == null || objRight == null || objHiddenValues == null || objTxtSearch == null)
        return false;

    var objTxtValue = objTxtSearch.value.trim();
    
    if(objTxtValue == "")
    {
        if(objLblSearch != null)
            objLblSearch.innerHTML = "请输入查询关键字！"; 

        return false;
    }
    else
    {
        if(objLblSearch != null)
            objLblSearch.innerHTML = "";
    }

    objTxtValue = GetLowerCase( objTxtValue);

    var objSelectedIndex = objLeft.selectedIndex;
	        
    if(objSelectedIndex == -1)
    {
        objLeft.selectedIndex = 0;
        objSelectedIndex = 0;
    }

    var objSize = objLeft.options.length;

    var i = objSelectedIndex + 1;

    while(true)
    {
        if(i == objSize)
            i = 0;
            
        var objOptionText = objLeft.options[i].text;
        
        objOptionText = GetLowerCase(objOptionText);
                        
        if(i == objSelectedIndex)
        {
            if(objOptionText.indexOf(objTxtValue) == -1)
            {
                if(objLblSearch != null)
                    objLblSearch.innerHTML = "没有找到！";
            }

            break;   
        }             
        else
        {
            if(objOptionText.indexOf(objTxtValue) != -1)
            {
                objLeft.selectedIndex = i;
                break;   
            }
            
            ++i;
        }
    }
    
    return false;
} 

// ##########################################################################
// ####################### MultiSelect操作END ##############################
// #########################################################################


// ##########################################################################
// ############################# 预览功能 #################################
// #########################################################################


// 还没写
function OnContentPreview(objFormFrom,objFormTo,strSplitFrom,strSplitTo,postUrl)
{

}


// ##########################################################################
// ############################# 预览功能END ##############################
// ########################################################################

// ##########################################################################
// ############################# 设定定时器 ##############################
// ########################################################################

function CreateTimer()
{
    
}


// ##########################################################################
// ############################# 设定定时器END ############################
// ########################################################################

function OnUpLoadFileCommonChange(objThis,objResId,objTypeId)
{
    if(objThis == null)
        return false;
        
    if(!IsVisible(objThis))
        return false;
        
    if(IsNullOrEmptyAndBlank(objThis.value))  
        return false; 
        
    var obj = GetVUploadFileAttrClassById(objTypeId);
    
    var objCtrl = $(objResId);
    
    if(objCtrl!=null)
        objCtrl.src = objThis.value;

    return true;
} 

function OnUpLoadFileTextBoxChange(objThis,objResId,objTypeId)
{
    if(objThis == null)
        return false;
        
    if(!IsVisible(objThis))
        return false;
        
    if(IsNullOrEmptyAndBlank(objThis.value))  
        return false; 

    var obj = GetVUploadFileAttrClassById(objTypeId);
    
    var objCtrl = $(objResId);
    
    if(objCtrl!=null)
        objCtrl.src = objThis.value;

    return true;
}


function OnSrcClick(objThis)
{
    if(objThis == null)
        return false;
        
    // alert(objThis.src);
    // window.open(objThis.src);

    return MyOpenHW(objThis.src,"600px","800px");
}

// 设置弹出选取颜色对话框
function OnSetColorPicker(objThis,objUrl)
{
    if(objThis == null)
        objThis = this;
        
    if(objUrl == null)
        objUrl = GetPhyPath() + "/" + "ftb.colorpicker.aspx";     
        
    objUrl += "&color=" = objThis.value;           
        
    var objValue = MyShowModalDialog(objUrl,"400","300");
    
    objThis.value = objValue;
    
    return true;
}

function OnChangeSetColorPicker(objThis,objId)
{
    return OnEventSetColorPicker(objThis,objId);
}

function OnBlurSetColorPicker(objThis,objId)
{
    return OnEventSetColorPicker(objThis,objId);
}

function OnEventSetColorPicker(objThis,objId)
{
    if(objThis == null)
        objThis = this;
        
    var objCtrl = $(objId);
    
    if(objCtrl == null || objCtrl.style == null)
        return false;   

    objCtrl.style.backgroundColor = objThis.value;             

    return true;   
}
