﻿


//
// JS 相关的方法 //
//


// ##########################################################################
// ####################### Debug相关的操作 ################################
// #########################################################################

// debug 的配置
var debug = ",1,";

var bDebugFlag = false;

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 STR_HTML_QUOT = "&quot;";
var STR_HTML_ACUTE = "&acute;";

// 一周的英文 //
var WeekDay = new Array(7)
WeekDay[0] = "Sunday";
WeekDay[1] = "Monday";
WeekDay[2] = "Tuesday";
WeekDay[3] = "Wednesday";
WeekDay[4] = "Thursday";
WeekDay[5] = "Friday";
WeekDay[6] = "Saturday";

// 一周的中文 //
var CnWeekDay = new Array(7)

CnWeekDay[0] = "星期天";
CnWeekDay[1] = "星期一";
CnWeekDay[2] = "星期二";
CnWeekDay[3] = "星期三";
CnWeekDay[4] = "星期四";
CnWeekDay[5] = "星期五";
CnWeekDay[6] = "星期六";


// 非法文件名数组 //
var ErrorFileName = new Array("/", "\\", ":", ",", "*", "?", "\"", "<", ">", "|");

// 是否有效的文件名 //
function IsFileName(obj) 
{
    if (obj == null || obj == "")
        return false;

    var i = 0;
    var iLen = ErrorFileName.length;

    for (i = 0; i < iLen; ++i) {
        if (StringContains(obj, ErrorFileName[i]))
            return false;
    }

    return true;
}

// 是否无效的文件名 //
function IsNotFileName(obj) {
    return !IsFileName(obj);
}


// 是否合理的文件后缀 //
function ExtensionCompare(objValue, objExtensionCompare, linkChar) 
{
    if (IsNullOrEmptyAndBlank(objExtensionCompare))
        return true;

    if (IsNullOrEmpty(linkChar))
        linkChar = "|";

    if (StringCompare(objExtensionCompare, linkChar, true, true))
        return true;

    objExtensionCompare = StringFillChar(objExtensionCompare, linkChar);

    if (IsNullOrEmptyAndBlank(objValue))
        return false;

    var str = StringGetEndBySplitAndBooleanAndIsLastIndexOf(objValue, ".", false, true);

    if (str == "")
        return false;

    var bRet = StringContainsIgnoreCase(objExtensionCompare, linkChar + str + linkChar, true);

    if (bRet)
        return true;

    bRet = StringContainsIgnoreCase(objExtensionCompare, linkChar + "." + str + linkChar, true);

    if (bRet)
        return true;

    return false;

}

// 是否不是合理的文件后缀 //
function ExtensionNotCompare(objValue, objExtensionCompare, linkChar) 
{
    return !ExtensionCompare(objValue, objExtensionCompare, linkChar);
}

// ##########################################################
// 字符串属性的操作
// ##########################################################

// 过滤空格 //
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 ##############################
// #########################################################################



// ###########################################################################
// ####################### 控件的基础操作 #################################
// #########################################################################

//
// 通过tagName获得控件的数组
//
function CtrlGetElementsByTagName(objCtrl, tagName) {
    if (objCtrl == null || IsNullOrEmptyAndBlank(tagName))
        return null;

    var ctrlArray = objCtrl.getElementsByTagName(tagName);

    return ctrlArray;
}

//
// 通过Input获得控件的数组
// 
function CtrlGetElementsByInput(objCtrl) 
{
    return CtrlGetElementsByTagName(objCtrl, "input");
}

//
// 通过file获得控件的数组
// 
function FileCtrlGetElementsByInputType(objCtrl) 
{
    return CtrlGetElementsByInputType(objCtrl, "file");
}

//
// 获得指定类型的input数组，如<input type="radio" ...>
// 
function CtrlGetElementsByInputType(objCtrl, typeName) 
{

    if (objCtrl == null || IsNullOrEmptyAndBlank(typeName))
        return null;

    var ctrlArray = CtrlGetElementsByInput(objCtrl);

    if (ctrlArray == null)
        return null;

    var iLen = ctrlArray.length;

    if (iLen == 0)
        return null;

    var retArray = new Array();
    var iCount = 0;
    var i = 0;
    var ctrl = null;

    for (i = 0; i < iLen; ++i) {
        ctrl = ctrlArray[i];
        if (ctrl == null)
            continue;

        if (IsTypeName(ctrl, typeName)) 
        {
            retArray[iCount] = ctrl;
            ++iCount;
        }
    }

    return retArray;

}

//
// 统计指定类型的input数组个数，如<input type="radio" ...>
// 
function CountCtrlGetElementsByInputType(objCtrl, typeName) 
{
    if (objCtrl == null || IsNullOrEmptyAndBlank(typeName))
        return 0;

    var ctrlArray = CtrlGetElementsByInput(objCtrl);

    if (ctrlArray == null)
        return 0;

    var iLen = ctrlArray.length;

    if (iLen == 0)
        return 0;

    var iCount = 0;
    var i = 0;
    var ctrl = null;

    for (i = 0; i < iLen; ++i) {
        ctrl = ctrlArray[i];
        if (ctrl == null)
            continue;

        if (IsTypeName(ctrl, typeName))
            ++iCount;
    }

    return iCount;
}

// 通过控件ID获得对应的控件 //
function $(objID) {
    return $Doc(document, objID);
}

// 通过控件ID获得对应的控件 //
function $Doc(objDoc, objID) {
    if (objDoc == null)
        return null;

    return objDoc.getElementById(objID);
}

// 通过控件 ID 或 Name 获得对应的控件 //
function $Name(objID)
{
    return $DocName(document, objID);
}

// 通过控件 ID 或 Name 获得对应的控件 //
function $DocName(objDoc, objID) {
    if (objDoc == null)
        return null;

    var objRet = objDoc.getElementById(objID);
    
    if(objRet != null)
        return objRet;
        
    objRet = objDoc.getElementsByName(objID);        
    
    if(objRet != null)
        return objRet;
        
    return objRet;        
}


// 通过控件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;
}

//
// 获得ctrl.value.trim()
// 
function GetCtrlValueTrim(ctrlId, objDefault) {
    if (ctrlId == null)
        return objDefault;

    return ctrlId.value.trim();
}

// 通过控件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);

    return GetInt(objValue, objDefault);
}

// 获得任何类型的控件的值，包括ctrl.value,ctrl.innerHTML,ctrl.checked //
function $CtrlValue(objId, objDefault) 
{

    if (IsNullOrEmptyAndBlank(objId))
    {
        return objDefault;
    }

    var ctrlType = GetCtrlTypeByCtrlId(objId);

    return CtrlGetCtrlValueByCtrlIdAndCtrlType(objId, ctrlType);
}

// 获得Int值 //
function GetInt(objValue, objDefault) 
{

    if (objValue == null || objValue == "")
        return objDefault;
    else {

        if (!IsTheNumber(objValue))
            return objDefault;

        if (!IsAllDigit(objValue))
            return objDefault;

        var objTmpValue = parseInt(objValue, 10);

        if (isNaN(objTmpValue))
            return objDefault;

        return objTmpValue;
    }
}

// 通过控件ID，获得对应控件的Int型值
function $VFloat(objID, objDefault) {
    var objValue = $VT(objID);

    return GetFloat(objValue, objDefault);

}

// 获得Float值
function GetFloat(objValue, objDefault) {
    if (objValue == null || objValue == "")
        return objDefault;
    else {
        if (!IsTheNumber(objValue))
            return objDefault;

        var objTmpValue = parseFloat(objValue);

        if (isNaN(objTmpValue))
            return objDefault;

        return objTmpValue;
    }
}

// 获得控件的值（通过控件Id和控件类型）//
function GetCtrlValueByCtrlIdAndCtrlType(objCtrlId, objCtrlType) {
    return CtrlGetCtrlValueByCtrlIdAndCtrlType(objCtrlId, objCtrlType);
}

// 获得控件的值（通过控件Id和控件类型）//
function CtrlGetCtrlValueByCtrlIdAndCtrlType(objCtrlId, objCtrlType) 
{
    var objTmpCtrlType = GetLowerCase(objCtrlType);
    var objReturn = "";

    
    // RadioButtonList // 
    if (IsContainsAll(objTmpCtrlType, "radiobuttonlist", true)) {
        objReturn = GetRadioButtunListValueByPreIdName(objCtrlId + "_");

        if (objReturn == null)
            return "";
        else
            return objReturn;
    }
    // CheckBoxList //
    else if (IsContainsAll(objTmpCtrlType, "checkboxlist", true)) {
        // alert('chkl' + objReturn);

        objReturn = CheckBoxListGetDefaultIdxSByPreIdName(objCtrlId + "_");



        if (objReturn == null)
            return "";
        else
            return objReturn;

    }
    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 objThis.value;
    }

    return objReturn;
}

// 
// 通过控件Id获得控件类型
// 
function GetCtrlTypeByCtrlId(objCtrlId) {
    var objCtrl = $(objCtrlId);

    if (objCtrl == null)
        return null;

    var objTagName = objCtrl.tagName;

    if (objTagName == null)
        return objCtrl.type;

    if (StringCompare(objTagName, "SPAN", true, true)
    || StringCompare(objTagName, "TABLE", true, true)) {
        var objCtrlSon = $(objCtrlId + "_" + "0");

        if (objCtrlSon == null)
            return objTagName;
        else {
            var objType = objCtrlSon.type;
            if (StringCompare(objType, "checkbox", true, true))
                return "CheckBoxList";
            else if (StringCompare(objType, "radio", true, true))
                return "RadioButtonList";
        }
    }

    if (objCtrl.type == null)
        return objTagName;
    else
        return objCtrl.type;
}


// 类的操作
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;
}

// 获得控件的位置
// 获得控件的Top位置
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;
}

// 获得控件的Left位置
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;
}

// 获得浏览器的X轴位置
function getBrowserPositionX(obj) {
    if (obj == null)
        return 0;

    var res = obj.offsetWidth;

    res += getOffsetLeft(obj);

    return res;
}

// 获得浏览器的Y轴位置
function getBrowserPositionY(obj) {
    if (obj == null)
        return 0;

    var res = getOffsetTop(obj);

    return res;
}

// 获得控件 ctrl.value 
function GetValue(obj) {
    return GetValueNullToDefault(obj, "");
}

// 获得控件 ctrl.value 
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 相关的配置 ##################################
// #########################################################################

// 判断浏览器是否是IE //
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类型 //
function IsFunctionType(objName)
{
    return (GetType(objName) == "function");
}

// 是否是boolean类型 //
function IsBooleanType(objName) {
    return (GetType(objName) == "boolean");
}

// 是否是string类型 //
function IsStringType(objName) {
    return (GetType(objName) == "string");
}

// 是否是number类型 //
function IsNumberType(objName) {
    return (GetType(objName) == "number");
}

// 是否是int类型 //
function IsIntType(objName) {
    if (!IsNumberType(objName))
        return false;

    return IsTheInt(objName);
}

// 是否不等于undefined //
function IsObj(objName) {
    return (GetType(objName) != "undefined");
}

// 类型是否等于objType //
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;
}

// ##########################################################################
// ####################### 控件的可见与不可见操作 #######################
// #########################################################################

// 通过控件Id判断控件是否可见
function IsShowByCtrlId(objCtrlId, objCtrlType) 
{
    return IsShow($(objCtrlId));
}

// 判断控件是否可见
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;

}

// 是否是Hidden控件
function IsHidden(objThis) 
{
    if (objThis == null)
        return false;

    var IsInput = StringCompare(objThis.tagName, "input", true, true);
    var IsHidden = StringCompare(objThis.type, "hidden", true, true);

    return IsInput && IsHidden;
}

// 判断控件是否可见
// style.display == "none" 或 style.visibility == "hidden";
function IsVisible(objThis) 
{
    if (objThis == null)
        return false;

    if (objThis.id == undefined)
        return true;

    if (objThis.style == undefined)
        return true;

    return !(StringCompare(objThis.style.display, "none", true, true) || StringCompare(objThis.style.visibility, "hidden", true, true));
}

// 更改控件的display //
function ChangeCtrlDisplay(objCtrl) 
{
    return StyleDisplayChangeByCtrl(objCtrl);
}

//
// 通过控件Id更改控件的display
// 
function StyleDisplayChangeByCtrlId(ctrlId) {
    var objCtrl = $(ctrlId);

    return StyleDisplayChangeByCtrl(objCtrl);
}

//
// 通过控件更改控件的display
// 
function StyleDisplayChangeByCtrl(objCtrl) 
{
    if (objCtrl == null)
        return false;

    var objStyle = GetCtrlDisplay(objCtrl, "none");



    if (objStyle == "none")
        SetCtrlDisplay(objCtrl, "");
    else
        SetCtrlDisplay(objCtrl, "none");

    return true;
}

//
// 通过控件的Id拼串，设置控件的style.display
// 
function StyleDisplayChangeByCtrlIdLink(ctrlId) 
{
    if (ctrlId == null)
        return false;

    var dArray = StringSplit(ctrlId, "|");

    if (dArray == null)
        return false;

    var iLen = dArray.length;

    for (var i = 0; i < iLen; ++i) {
        StyleDisplayChangeByCtrlId(dArray[i]);
    }

    return true;

}

//
// 通过控件的Id拼串，设置控件的style.display
// 
function StyleDisplayChangeByCtrlIdAndFlag(ctrlId, bFlag) {
    if (ctrlId == null)
        return false;

    var dArray = StringSplit(ctrlId, "|");

    if (dArray == null)
        return false;

    var iLen = dArray.length;
    
    var bTmpFlag = GetDefaultBoolean(bFlag,false);
    
    

    for (var i = 0; i < iLen; ++i) {

        StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(dArray[i], bTmpFlag);
    }

    return true;
}

//
// 通过前缀Id和Id范围，更改控件的可见性
// 
function ChangeCtrlDisplayByPreIdAndRange(preId, fromId, ToId) {

    return StyleDisplayChangeCtrlDisplayByPreIdAndRange(preId, fromId, ToId);
}

//
// 通过前缀Id和Id范围，更改控件的可见性
//
function StyleDisplayChangeCtrlDisplayByPreIdAndRange(preId, fromId, ToId) {

    var iTmp = fromId;
    if (fromId > ToId) {
        fromId = ToId;
        ToId = iTmp;
    }

    iTmp = fromId;

    while (iTmp <= ToId) {
        ChangeCtrlDisplay($(preId + iTmp));

        ++iTmp;
    }

    return true;
}



//
// 通过前缀Id和Id范围，更改控件的可见性
//
function StyleDisplayChangeCtrlDisplayByPreIdAndRangeAndFlag(preId, fromId, ToId, bFlag) 
{

    var iTmp = fromId;
    if (fromId > ToId) {
        fromId = ToId;
        ToId = iTmp;
    }

    iTmp = fromId;

    while (iTmp <= ToId) {
    
        StyleDisplaySetCtrlDisplayByBooleanAndCtrlId((preId + iTmp),bFlag);

        ++iTmp;
    }

    return true;
}

//
// 通过前缀Id和Index范围，还有标识符，设置控件的控件的可见性
// 
function StyleDisplayChangeCtrlDisplayByPreIdAndStartIndexAndFlag(preId, fromId, bFlag) 
{

    var iTmp = fromId;
    var theCtrl = null;
    
    while (true) 
    {
        theCtrl = $(preId + iTmp);
        
        if(theCtrl == null)
            break;    

        StyleDisplaySetCtrlDisplayByBoolean(theCtrl, bFlag);

        ++iTmp;
    }

    return true;
}

// ################################################################################################################## //

//
// 通过Index范围
// 
function ChangeCtrlDisplayByPreIdAndStartIndex(preId, fromId) 
{
    return StyleDisplayChangeCtrlDisplayByPreIdAndStartIndex(preId,fromId);
}

//
// 通过Index范围
// 
function StyleDisplayChangeCtrlDisplayByPreIdAndStartIndex(preId, fromId) 
{
 
    var iTmp = fromId;
    var theCtrl = null;
    
    while (true) 
    {
        theCtrl = $(preId + iTmp);
        
        if(theCtrl == null)
            break;    

        ChangeCtrlDisplay(theCtrl);

        ++iTmp;
    }

    return true;
}

//
// 通过PreId和Idx，设置style.display
// 
function StyleDisplayChangeCtrlDisplayByPreIdAndTheIndex(preId, fromId,toId) 
{
    if(toId == -1)
        return StyleDisplayChangeCtrlDisplayByPreIdAndStartIndex(preId,fromId);
    else
        return StyleDisplayChangeCtrlDisplayByPreIdAndRange(preId,fromId,toId);          
}


// 设置控件span，在其它条件为可见和不可见的情况下，显示的文本内容 //
function ChangeSpanInnerHTMLByDisplay(objThis, objDisplay, objShowText, objHideText) {
    if (objThis == null || objDisplay == null)
        return false;

    OnSetInnerHTMLValueByCtrl(objThis, GetVisibleText(objDisplay, objShowText, objHideText));

    return true;
}


function GetVisibleText(objThis, objShowText, objHideText) {
    if (objThis == null)
        return "";

    return IsVisible(objThis) ? objShowText : objHideText;
}

// 获得控件的display //
function GetCtrlDisplay(objCtrl, objDefault) {
    return StyleDisplayGet(objCtrl, objDefault);
}

// 获得控件的display //
function StyleDisplayGet(objCtrl, objDefault) {
    if (objCtrl == null)
        return objDefault;
    else
        return objCtrl.style.display;
}

function StyleDisplayGetBoolean(objCtrl, objDefault) {
    if (objCtrl == null)
        return objDefault;
    else
    {
        var theValue = StyleDisplayGet(objCtrl,"none");

        if(StringCompare(theValue,"none",true,true))
            return false;
        else
            return true;            
    }
}

function StyleDisplayGetValueByBoolean(bFlag) {

    var bTheFlag = GetDefaultBoolean(bFlag,false);
    
    if(bTheFlag)
        return "";
    else
        return "none";
}


// 设置控件的display //
function SetCtrlDisplay(objCtrl, objDefault) {
    return StyleDisplaySet(objCtrl, objDefault);
}

// 设置控件的display //
function StyleDisplaySet(objCtrl, objDefault) {
    objDefault = GetTextNullToDefault(objDefault, "");

    if (objCtrl == null)
        return false;

    objCtrl.style.display = objDefault;

    return true;
}

//
// 通过控件Id和值，比较值，设定控件的可见性
//  
function SetCtrlDisplayByCtrlIdByValue(objCtrlId, objValue, objShowValue, objHidValue) {
    var objCtrl = $(objCtrlId);

    if (objCtrl == null)
        return false;

    if (objShowValue != null) {

        if (objValue == objShowValue)
            return SetCtrlDisplayByBoolean(objCtrl, true);
        else
            return SetCtrlDisplayByBoolean(objCtrl, false);
    }

    if (objHidValue != null) {

        if (objValue == objHidValue)
            return SetCtrlDisplayByBoolean(objCtrl, false);
        else
            return SetCtrlDisplayByBoolean(objCtrl, true);
    }

    return false;
}

function SetCtrlDisplayByBooleanAndCtrlIdArray(objCtrlIdArray, objFlag) {
    if (objCtrlIdArray == null)
        return false;

    var iLen = objCtrlIdArray.length;

    if (iLen == 0)
        return true;

    var i = 0;
    for (i = 0; i < iLen; ++i) {
        SetCtrlDisplayByBooleanAndCtrlId(objCtrlIdArray[i], objFlag);
    }

    return true;
}

function SetCtrlDisplayByBooleanAndCtrlId(objCtrlId, objFlag) {
    return StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(objCtrlId, objFlag);
}


function StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(objCtrlId, objFlag) {
    return StyleDisplaySetCtrlDisplayByBoolean($(objCtrlId), objFlag);
}

// 通过bool条件设置控件的可见性
function SetCtrlDisplayByBoolean(objCtrl, objFlag) {
    return StyleDisplaySetCtrlDisplayByBoolean(objCtrl, objFlag);
}

// 通过bool条件设置控件的可见性
function StyleDisplaySetCtrlDisplayByBoolean(objCtrl, objFlag) {
    if (objCtrl == null)
        return false;

    if (objFlag) {
        // objCtrl.style.display = "block";
        objCtrl.style.display = "";
    }
    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;
}

// 通过bool条件设置控件的visibility（可见与不可见）
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;
}

// 通过split值，获得str的头 //
function StringGetHeadBySplit(objStr, objSplit) 
{
    return StringGetHeadBySplitAndBoolean(objStr, objSplit, true);
}

// 通过split值，获得str的头 //
function StringGetHeadBySplitAndBoolean(objStr, objSplit, IsFull) 
{
    return StringGetHeadBySplitAndBooleanAndIsLastIndexOf(objStr, objSplit, IsFull, false);
}

// 通过split值，获得str的头 //
function StringGetHeadBySplitAndBooleanAndIsLastIndexOf(objStr, objSplit, IsFull, IsLastIndexOf) 
{
    objStr = GetTextNullToEmpty(objStr);

    var objSplitIndex = -1;

    if (IsLastIndexOf)
        objSplitIndex = objStr.lastIndexOf(objSplit);
    else
        objSplitIndex = objStr.indexOf(objSplit);

    if (objSplitIndex == -1) {
        if (IsFull)
            return objStr;
        else
            return "";
    }
    else
        return objStr.substr(0, objSplitIndex);
}

// 通过split值，获得str的尾 //
function StringGetEndBySplit(objStr, objSplit) 
{
    return StringGetEndBySplitAndBoolean(objStr, objSplit, false);
}

function StringGetEndBySplitAndBoolean(objStr, objSplit, IsFull) 
{
    return StringGetEndBySplitAndBooleanAndIsLastIndexOf(objStr, objSplit, IsFull, false);
}

function StringGetEndBySplitAndBooleanAndIsLastIndexOf(objStr, objSplit, IsFull, IsLastIndexOf) 
{
    objStr = GetTextNullToEmpty(objStr);

    var objSplitIndex = -1;

    if (IsLastIndexOf)
        objSplitIndex = objStr.lastIndexOf(objSplit);
    else
        objSplitIndex = objStr.indexOf(objSplit);

    if (objSplitIndex == -1) {
        if (IsFull)
            return objStr;
        else
            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 ChangeCtrlValueCaseByCheckBox(CtrlId, objCheckBox) {
    if (objCheckBox == null)
        return false;

    return ChangeCtrlValueCase(CtrlId, objCheckBox.checked);
}

function ChangeCtrlValueCase(CtrlId, bFlag) {
    var objCtrl = $(CtrlId);

    if (objCtrl == null)
        return false;

    objCtrl.value = GetCaseByBoolean(objCtrl.value, bFlag);
}


function GetCaseByBoolean(obj, bFlag) 
{
    return StringGetCaseByBoolean(obj,bFlag);
}

function StringGetCaseByBoolean(obj, bFlag) 
{
    if (bFlag)
        return GetUpperCase(obj);
    else
        return GetLowerCase(obj);
}


// 获得字符串的小写格式
function GetLowerCase(obj) 
{
    return StringGetLowerCase(obj);
}

function StringGetLowerCase(obj) 
{
    return GetTextNullToEmpty(obj).toLowerCase();
}

// 获得字符串的大写格式
function GetUpperCase(obj) 
{
    return StringGetUpperCase(obj);
}

function StringGetUpperCase(obj) 
{
    return GetTextNullToEmpty(obj).toUpperCase();
}


// 判断是否包含该字符串
function IsContains(obj, objItem) 
{
    return StringIsContains(obj,objItem);
}

// 判断是否包含该字符串
function StringIsContains(obj, objItem) 
{
    return IsContainsAll(obj, objItem, false);
}

// 判断是否包含该字符串
function IsContainsAll(obj, objItem, objAll) 
{
    return StringIsContainsAll(obj,objItem,objAll);
}

// 判断是否包含该字符串
function StringIsContainsAll(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);

}

// 判断是否包含该字符串
function IsContainsAllBySplit(obj, objItem, objAll, objSplit) 
{

    var dArray = StringSplit(objItem, objSplit);

    if (dArray == null)
        return false;

    var iLen = dArray.length;

    for (var i = 0; i < iLen; ++i) 
    {
        if(dArray[i] == null || dArray[i] == "")
            continue;
            
        if(!IsContainsAll(obj,dArray[i],objAll))
            return false;
    }

    return true;
}


//
// 是否为null
// 
function IsNull(objValue) {
    return (objValue == null);
}

// 判断值是否为NULL或NaN 
function IsNullOrNaN(objValue) {
    return IsNull(objValue) || isNaN(objValue);
}

//
// 是否为null或为空
//
function IsNullOrEmpty(objValue) {
    if (objValue == null)
        return true;

    return (("" + objValue) == "");
}

//
// 是否为null或为空或NaN
// 
function IsNullOrEmptyOrNaN(objValue) {
    return IsNullOrEmpty(objValue) || isNaN(objValue);
}

//
// 是否为null或为空，trim()后是否为空
// 
function IsNullOrEmptyAndBlank(objValue) {
    return (GetTrimText(objValue) == "");
}

function IsNotNullOrEmptyAndBlank(objValue) {
    return !IsNullOrEmptyAndBlank(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;
}

// ##########################################################################
// ########################### 控件区域 ###################################
// #########################################################################


// ##########################################################################
// ########################### 基础操作 ###################################
// #########################################################################

// 获得控件id
function GetCtrlId(obj) {
    if (obj == null)
        return "";
    else
        return obj.id;
}

// 获得控件的name
function GetCtrlName(obj) {
    if (obj == null)
        return "";
    else
        return obj.name;
}

// 判断两个控件是否checked相同
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 SetCtrlCheckFlagByCtrlAndFlagEvalFunction(objId, objFlag, funName) {
    if (objId == null)
        return false;

    objId.checked = objFlag;

    if (typeof (funName) != "undefined") {
        eval(funName + "()");
    }

    return true;
}

function EvalFn(fnName, bIsReturn) {
    return EvalFn(fnName, "", bIsReturn);
}

function EvalFunction(fnName, fullFn, bIsReturn) {

    var fn = fullFn;

    if (typeof (fnName) == "function") {
        if (IsNullOrEmptyAndBlankOrNaN(fullFn)) {
            fn = fnName + "()";
        }

        var bRet = "";

        if (bIsReturn)
            fn = "bRet = " + fn;

        eval(fn);

        if (bIsReturn)
            return bRet;
    }

    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 CtrlSetValueByCtrlId(obj, objValue);
}

function CtrlSetValueByCtrlId(obj, objValue) {
    return CtrlSetValue($(obj), objValue);
}


function OnSetValueByCtrl(obj, objValue) {
    return CtrlSetValue(obj, objValue);
}

function CtrlSetValue(obj, objValue) {


    if (obj == null || objValue == undefined)
        return false;

    // 判断 //

    if (GetType(obj) == "object") 
    {
        if (GetLowerCase(obj.type) == "text"
            || GetLowerCase(obj.type) == "hidden"
            || GetLowerCase(obj.type) == "password"
            || GetLowerCase(obj.tagName) == "select"
            || GetLowerCase(obj.tagName) == "textarea"
            || GetLowerCase(obj.type) == "button"
        ) 
        {
            obj.value = objValue;
        }
        else if (GetLowerCase(obj.type) == "span"
            || GetLowerCase(obj.type) == "div"
            || GetLowerCase(obj.tagName) == "span"
            || GetLowerCase(obj.tagName) == "div"
        ) 
        {
            obj.innerHTML = objValue;
        }
        else if 
            (
                GetLowerCase(obj.type) == "select"
                || GetLowerCase(obj.tagName) == "select"
            ) 
        {
            ListControlSelectedByValue(obj, objValue); 
        }
        else if (GetLowerCase(obj.type) == "checkbox"
            || GetLowerCase(obj.tagName) == "radio") 
        {
            obj.checked = GetDefaultBoolean(objValue, obj.checked); 
        }
        else
            obj.value = objValue;
    }
    else {
        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 ListControlSetCtrlStyleDisplayByAttributeNameAndCtrlId(ctrlId,AttributeName,displayCtrlId)
{
    return ListControlSetCtrlStyleDisplayByAttributeName($(ctrlId),AttributeName,displayCtrlId);
}

function ListControlSetCtrlStyleDisplayByAttributeName(listCtrl,AttributeName,displayCtrlId)
{
    if(listCtrl == null)
        return false;
        
    var theValue = ListControlGetAttributeBySelectedIsUndefined(listCtrl,AttributeName,false);
    
    if(theValue == null)
        return false;
        
    var bFlag = GetDefaultBoolean(theValue,false);
    
    return StyleDisplayChangeByCtrlIdAndFlag(displayCtrlId,bFlag);
}

// ListControl 弹出新窗口
function ListControlOpenWindows(listCtrl,AttributeName)
{
     
    var idx = ListControlGetSelectedIndex(listCtrl);
     
    return ListControlOpenWindowsByIdx(listCtrl,AttributeName,idx);
}

function ListControlOpenWindowsByIdx(listCtrl,AttributeName,idx)
{
    if(ListControlIsNotIndex(listCtrl,idx))
        return false;
        
    var aValue = ListControlGetAttributeByIndexAndIsUndefined(listCtrl,idx,AttributeName,false); 

    if(IsNullOrEmptyAndBlank(aValue))
        return true;

    aValue = aValue.trim();
    
    if(aValue == "#")
        return true;        
        
    return MyOpenDefaultUrlClick(aValue);        
}

 
function ListControlSelectedOptionChangeText(listCtrl, AttributeName, SaveAttributeName) {
    var objIndex = ListControlGetSelectedIndex(listCtrl);

    return ListControlOptionChangeTextByIdx(listCtrl, objIndex, AttributeName, SaveAttributeName);
}

function ListControlOptionChangeTextByIdx(listCtrl, objIndex, AttributeName, SaveAttributeName) {
    return ListControlOptionChangeTextByIdxAndStringEmpty(listCtrl, objIndex, AttributeName, SaveAttributeName, false);
}

function ListControlOptionChangeTextByIdxAndStringEmpty(listCtrl, objIndex, AttributeName, SaveAttributeName, allowEmpty) {
    if (!ListControlIsSelectedIndex(listCtrl, objIndex))
        return false;

    var op = ListControlGetOptionByIdx(listCtrl, objIndex);

    if (op == null)
        return false;

    if (IsNotNullOrEmptyAndBlank(SaveAttributeName))
        EvalSetAttributeValue(op, SaveAttributeName, op.text);

    var opText = EvalAttributeValue(op, AttributeName);

    if (allowEmpty)
        op.text = opText;
    else {
        if (opText != null && opText != "")
            op.text = opText;
    }

    return true;
}



// 
// 通过ListControl的Values拼串，获得Texts的拼串
// 
function GetListControlTextsByValues(objCtrlId, objValues, objLinkChar, objTextLinkChar, IsFillHeadEnd) {
    return ListControlGetTextsByValues(objCtrlId, objValues, objLinkChar, objTextLinkChar, IsFillHeadEnd);
}

// 
// 通过ListControl的Values拼串，获得Texts的拼串
// 
function ListControlGetTextsByValues(objCtrlId, objValues, objLinkChar, objTextLinkChar, IsFillHeadEnd) {
    var ctrl = $(objCtrlId);

    if (ctrl == null)
        return "";

    if (objValues == null || objValues.trim() == "")
        return "";

    var objArray = StringSplit(objValues, objLinkChar);

    if (objArray == null)
        return "";

    var i = 0;
    var iLen = objArray.length;

    var objTexts = "";
    var objTmpText = null;

    for (i = 0; i < iLen; ++i) {
        objTmpText = GetListControlTextByItemValue(ctrl, objArray[i], null);

        if (objTmpText == null)
            continue;

        if (objTexts == "")
            objTexts = objTmpText;
        else
            objTexts = objTexts + objTextLinkChar + objTmpText;
    }

    if (objTexts != "") {
        if (IsFillHeadEnd)
            objTexts = objTextLinkChar + objTexts + objTextLinkChar;
    }

    return objTexts;
}

//
// 通过控件，设置ListControl的下一个选中的Idx 
// 
function SetListControlNextSelectedIndexByCtrl(objCtrl) {
    return ListControlSetNextSelectedIndexByCtrl(objCtrl);
}

//
// 通过控件，设置ListControl的下一个选中的Idx 
// 
function ListControlSetNextSelectedIndexByCtrl(objCtrl) {
    if (objCtrl == null)
        return false;

    var iIdx = GetListControlSelectedIndex(objCtrl);

    return SetListControlNextSelectedIndex(objCtrl, iIdx + 1);
}

// 
// 通过控件和Index，设置ListControl的选中，如果idx == Len，则idx = 0
// 
function SetListControlNextSelectedIndex(objCtrl, objIndex) {
    return ListControlSetNextSelectedIndex(objCtrl, objIndex);
}

// 
// 通过控件和Index，设置ListControl的选中，如果idx == Len，则idx = 0
// 
function ListControlSetNextSelectedIndex(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) {
    return ListControlGetLength(objCtrl);
}

//
// 获得ListControl（select）的Item个数
// 
function ListControlGetLength(objCtrl) {
    if (objCtrl == null)
        return 0;

    return objCtrl.length;
}

// 
// 获得ListControl（select）的SelectedIndex
// 
function GetListControlSelectedIndex(objCtrl) {
    return ListControlGetSelectedIndex(objCtrl);
}

//
//  获得ListControl（select）的SelectedIndex
// 
function ListControlGetSelectedIndex(objCtrl) {
    if (objCtrl == null)
        return -1;

    return objCtrl.selectedIndex;
}

//
// 是否NULL或空ListControl
// 
function IsNullOrEmptyListControl(objCtrl) {
    return ListControlIsNullOrEmpty(objCtrl);
}

//
// 是否NULL或空ListControl
// 
function ListControlIsNullOrEmpty(objCtrl) {
    return (objCtrl == null || GetListControlLength(objCtrl) == 0);
}

//
// 是否非（NULL或空ListControl）
// 
function IsNotNullOrEmptyListControl(objCtrl) {
    return ListControlIsNotNullOrEmpty(objCtrl);
}

//
// 是否非（NULL或空ListControl）
// 
function ListControlIsNotNullOrEmpty(objCtrl) {
    return !IsNullOrEmptyListControl(objCtrl);
}

//
// 获得ListControl的选中的Value 
// 
function GetListControlSelectedValue(objCtrl, objDefault) {
    return ListControlGetSelectedValue(objCtrl, objDefault);
}

//
// 获得ListControl的选中的Value 
// 
function ListControlGetSelectedValue(objCtrl, objDefault) {
    if (IsNullOrEmptyListControl(objCtrl))
        return objDefault;

    return objCtrl.value;
}

//
// 获得ListControl的选中的子项
// 
function GetListControlSelectedOption(objCtrl) {
    return ListControlGetSelectedOption(objCtrl);
}

//
// 获得ListControl的选中的子项
// 
function ListControlGetSelectedOption(objCtrl) {
    if (IsNullOrEmptyListControl(objCtrl))
        return null;

    var objIndex = GetListControlSelectedIndex(objCtrl);
    if (!IsSelectedIndex(objCtrl, objIndex))
        return null;

    return objCtrl.options[objIndex];
}

// 
// 通过Idx获得option 
// 
function GetListControlOptionByIdx(objCtrl, objIndex) {
    return ListControlGetOptionByIdx(objCtrl, objIndex);
}

// 
// 通过Idx获得option 
// 
function ListControlGetOptionByIdx(objCtrl, objIndex) {
    if (IsNullOrEmptyListControl(objCtrl))
        return null;

    if (!IsSelectedIndex(objCtrl, objIndex))
        return null;

    return objCtrl.options[objIndex];
}

//
// 获得ListControl的选中的Text
//
function GetListControlSelectedText(objCtrl, objDefault) {
    return ListControlGetSelectedText(objCtrl, objDefault);
}

//
// 获得ListControl的选中的Text
//
function ListControlGetSelectedText(objCtrl, objDefault) {
    var item = GetListControlSelectedOption(objCtrl);

    if (item == null)
        return objDefault;
    else
        return item.text;
}

//
// 设置ListControl（select）的SelectedIndex
// 
function SetListControlSelectedIndex(objCtrl, objIndex, objDefaultIndex) {
    return ListControlSetSelectedIndex(objCtrl, objIndex, objDefaultIndex);
}

//
// 设置ListControl（select）的SelectedIndex
// 
function ListControlSetSelectedIndex(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) {
    return ListControlIsSelectedIndex(objCtrl, objIndex);
}

// 
// 是否有效的SelectIndex
// 
function ListControlIsSelectedIndex(objCtrl, objIndex) {
    return ListControlIsIndex(objCtrl,objIndex);
}

function ListControlIsIndex(objCtrl, objIndex) {
    if (objCtrl == null)
        return false;

    return (objIndex >= 0 && objIndex < GetListControlLength(objCtrl));
}

function ListControlIsNotIndex(objCtrl, objIndex) {
    return !ListControlIsIndex(objCtrl,objIndex);
}

//
// 通过selectedIndex获得ListControl的Value
// 
function GetListControlValueBySelectedIndex(objCtrl, selectedIndex, objDefaultValue) {
    return ListControlGetValueBySelectedIndex(objCtrl, selectedIndex, objDefaultValue);
}

//
// 通过selectedIndex获得ListControl的Value
// 
function ListControlGetValueBySelectedIndex(objCtrl, selectedIndex, objDefaultValue) {
    return GetListControlObjBySelectedIndex(objCtrl, selectedIndex, true, objDefaultValue);
}

//
// 通过selectedIndex获得ListControl的Text
// 
function GetListControlTextBySelectedIndex(objCtrl, selectedIndex, objDefaultValue) {
    return ListControlGetTextBySelectedIndex(objCtrl, selectedIndex, objDefaultValue);
}

//
// 通过selectedIndex获得ListControl的Text
// 
function ListControlGetTextBySelectedIndex(objCtrl, selectedIndex, objDefaultValue) {
    return GetListControlObjBySelectedIndex(objCtrl, selectedIndex, false, objDefaultValue);
}

//
// 通过Value获得ListControl对应的Text
// 
function GetListControlTextByItemValue(objCtrl, objValue, objDefaultValue) {
    return ListControlGetTextByItemValue(objCtrl, objValue, objDefaultValue);
}

//
// 通过Value获得ListControl对应的Text
// 
function ListControlGetTextByItemValue(objCtrl, objValue, objDefaultValue) {
    var selectedIndex = GetListControlIndexByValue(objCtrl, objValue, 0);

    return GetListControlObjBySelectedIndex(objCtrl, selectedIndex, false, objDefaultValue);
}

//
// 通过selectindex，获得ListControl的Text或Value
// 
function GetListControlObjBySelectedIndex(objCtrl, selectedIndex, IsValue, objDefaultValue) {
    return ListControlGetObjBySelectedIndex(objCtrl, selectedIndex, IsValue, objDefaultValue);
}

//
// 通过selectindex，获得ListControl的Text或Value
// 
function ListControlGetObjBySelectedIndex(objCtrl, selectedIndex, IsValue, objDefaultValue) {
    if (objCtrl == null)
        return objDefaultValue;

    if (IsSelectedIndex(objCtrl, selectedIndex)) {
        if (IsValue)
            return objCtrl.options[selectedIndex].value;
        else
            return objCtrl.options[selectedIndex].text;
    }
    else
        return objDefaultValue;

}

//
// 通过Value获得其对应的Index
// 
function GetListControlIndexByValue(objCtrl, objValue, objStartIndex) {
    return ListControlGetIndexByValue(objCtrl, objValue, objStartIndex);
}


//
// 通过Value获得其对应的Index
// 
function ListControlGetIndexByValue(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);
}

// 
// ListControl移除所有Item
// 
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);  
    }
    */
}

//
// ListControl 添加Item
// 
function ListControlAddItem(ddl, objText, objValue) {

    return ListControlInsertItem(ddl, objText, objValue, -1);
}

//
// ListControl 添加Item
// 
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;
}

//
// ListControl 通过Idx移除Item
// 
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;
}

//
// 通过Value寻找对应的Index
// 
function FindListControlIdxByValue(ddl, find, findFlag, fromIdx) {
    return ListControlFindIdxByValue(ddl, find, findFlag, fromIdx);
}

//
// 通过Value寻找对应的Index
// 
function ListControlFindIdxByValue(ddl, find, findFlag, fromIdx) {
    return FindListControlIdx(ddl, find, ListControlOptionValue, findFlag, fromIdx);
}

//
// 通过Text寻找对应的Index
// 
function FindListControlIdxByText(ddl, find, findFlag, fromIdx) {
    return ListControlFindIdxByText(ddl, find, findFlag, fromIdx);
}

//
// 通过Text寻找对应的Index
// 
function ListControlFindIdxByText(ddl, find, findFlag, fromIdx) {
    return FindListControlIdx(ddl, find, ListControlOptionText, findFlag, fromIdx);
}

//
// 通过条件寻找对应的Index
// 
function FindListControlIdx(ddl, find, type, findFlag, fromIdx) {
    return ListControlFindIdx(ddl, find, type, findFlag, fromIdx);
}

//
// 通过条件寻找对应的Index
// 
function ListControlFindIdx(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;
}


function ListControlOnChangeToCtrlValueByCtrlId(objThisId, AttributeName, toCtrlId) {
    return ListControlOnChangeToCtrlValue(objThisId, AttributeName, $(toCtrlId));
}

function ListControlOnChangeToCtrlValueByCtrlIdAndThis(objThis, AttributeName, toCtrlId) {

    return ListControlOnChangeToCtrlValueAndThis(objThis, AttributeName, $(toCtrlId));
}

function ListControlOnChangeToCtrlValue(objThisId, AttributeName, toCtrl) {
    return ListControlOnChangeToCtrlValueAndThis($(objThisId), AttributeName, toCtrl);

}

function ListControlOnChangeToCtrlValueAndThis(objThis, AttributeName, toCtrl) {

    if (toCtrl == null)
        return false;

    if (objThis == null)
        return false;

    var op = GetListControlSelectedOption(objThis);

    if (op == null)
        return false;

    if (IsNullOrEmptyAndBlank(AttributeName))
        AttributeName = "value";
    else
        AttributeName = AttributeName.trim();

    var objTheValue = "";

    eval(" objTheValue = op." + AttributeName + ";");


    if (objTheValue == undefined)
        return;

    OnSetValueByCtrl(toCtrl, objTheValue);
}

function ListControlGetAttributeBySelected(listCtrl, AttributeName)
{
    return ListControlGetAttributeBySelected(listCtrl,AttributeName,true);
}

function ListControlGetAttributeBySelectedIsUndefined(listCtrl, AttributeName, IsUndefined)
{
    var idx = ListControlGetSelectedIndex(listCtrl);
     
    return ListControlGetAttributeByIndexAndIsUndefined(listCtrl,idx,AttributeName,IsUndefined);
}

function ListControlGetAttributeByIndex(objThis, objIndex, AttributeName) {
    return ListControlGetAttributeByIndexAndIsUndefined(objThis, objIndex, AttributeName, true);
}

function ListControlGetAttributeByIndexAndIsUndefined(objThis, objIndex, AttributeName, IsUndefined) {
    if (objThis == null)
        return null;

    var op = GetListControlOptionByIdx(objThis, objIndex);

    if (op == null)
        return null;

    if (IsNullOrEmptyAndBlank(AttributeName))
        AttributeName = "value";
    else
        AttributeName = AttributeName.trim();

    var objTheValue = "";

    eval(" objTheValue = op." + AttributeName + ";");

    if (IsUndefined)
        return objTheValue;

    if (objTheValue == undefined)
        return null;

    return objTheValue;
}

function ListControlGetAttributeBySelectedAndIsUndefined(objThis, AttributeName, IsUndefined) {
    if (objThis == null)
        return null;

    var op = GetListControlSelectedOption(objThis);

    if (op == null)
        return null;

    if (IsNullOrEmptyAndBlank(AttributeName))
        AttributeName = "value";
    else
        AttributeName = AttributeName.trim();

    var objTheValue = "";

    eval(" objTheValue = op." + AttributeName + ";");

    if (IsUndefined)
        return objTheValue;

    if (objTheValue == undefined)
        return null;

    return objTheValue;
}

function SetCtrlStyleDisplayByListControlAttributeAndCtrlId(listCtrl, preCtrlId, AttributeName) {
    if (listCtrl == null)
        return false;

    ClearCtrlStyleDisplayByListControlAttributeAndCtrlId(listCtrl, preCtrlId, AttributeName, "none");

    var aValue = ListControlGetAttributeBySelectedAndIsUndefined(listCtrl, AttributeName, false);

    if (aValue == null)
        return true;

    findCtrl = $(preCtrlId + aValue);

    if (findCtrl == null)
        return true;

    findCtrl.style.display = "";
    // SetCtrlDisplay(findCtrl, "''");        
}

function ClearCtrlStyleDisplayByListControlAttributeAndCtrlId(listCtrl, preCtrlId, AttributeName, displayValue) {
    if (listCtrl == null)
        return false;

    var iLen = GetLength(listCtrl);

    var aValue = null;
    var findCtrl = null;

    for (var i = 0; i < iLen; ++i) {
        aValue = ListControlGetAttributeByIndexAndIsUndefined(listCtrl, i, AttributeName, false);

        if (aValue == null)
            continue;

        findCtrl = $(preCtrlId + aValue);

        if (findCtrl == null)
            continue;

        // alert(findCtrl + " " + displayValue);
        findCtrl.style.display = displayValue;
        // SetCtrlDisplay(findCtrl, displayValue);
    }

    return true;
}

// ##########################################################################
// ######################## ListControl控件区域END ########################
// #########################################################################

// ##########################################################################
// ######################## CheckBoxList控件区域 ##########################
// #########################################################################

// 通过 CheckBoxList 的 Id 获得默认的选中Id拼串 
function GetCheckBoxListDefaultIdxSByPreIdName(objTheID) 
{
    return CheckBoxListGetDefaultIdxSByPreIdName(objTheID);
}

// 通过 CheckBoxList 的 Id 获得默认的选中Id拼串 
function CheckBoxListGetDefaultIdxSByPreIdName(objTheID) 
{
    return GetCheckBoxListIdxSByPreIdName(objTheID, ",", true);
}

// 通过 CheckBoxList 的 Id 和条件， 获得Id拼串 
function GetCheckBoxListIdxSByPreIdName(objTheID, objAddChar, objCheck) 
{
    return CheckBoxListGetIdxSByPreIdName(objTheID, objAddChar, objCheck);
}

// 通过 CheckBoxList 的 Id 和条件， 获得Id拼串 
function CheckBoxListGetIdxSByPreIdName(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 的全选和全不选操作 ###### //
// ############################################### //
function CheckBoxListSelectedAllByCtrl(objThis,objTheID)
{
    if(objThis == null)
        return false;
        
    var bFlag = objThis.checked;

    return CheckBoxListSelectedAll(objTheID, bFlag);
    
}

// ############################################### //
// ##### CheckBoxList 的全选和全不选操作 ###### //
// ############################################### //
function CheckBoxListSelectedAll(objTheID, bFlag)
{

    var i = 0;
    var objReturn = "";

    while (true) 
    {
        var objCtrl = $(objTheID + i);

        if (objCtrl == null) 
        {
            break;
        }

        objCtrl.checked = bFlag;

        ++i;
    }

    return objReturn;
        
}


// ##########################################################################
// ##################### CheckBoxList控件区域END ##########################
// ########################################################################

// ##########################################################################
// ##################### RadioButtonList控件区域 ##########################
// ########################################################################


// 控件 //
// 判断是什么类型的控件 //

//
// RadioButtonList的Item的点击事件
// 
function RadioButtunListItemClick(objThis, objTheID, objArray) {
    return RadioButtonListItemClick(objThis, objTheID, objArray);
}

//
// RadioButtonList的Item的点击事件
// 
function RadioButtonListItemClick(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;
}


//
// 获得Item的Index
// 
function GetRadioButtunListIdxByCtrl(objThis, objTheID) {
    return RadioButtonListGetIdxByCtrl(objThis, objTheID);
}

//
// 获得Item的Index
// 
function RadioButtonListGetIdxByCtrl(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;

}

function GetRadioButtunListAttributeBySelected(AttributeName, objTheID) {
    return RadioButtonListGetAttributeBySelected(AttributeName, objTheID);
}

function RadioButtonListGetAttributeBySelected(AttributeName, objTheID) {
    var objIdx = GetRadioButtunListIdxByPreIdName(objTheID);

    var objResult = GetRadioButtunListAttributeByIdx(AttributeName, objTheID, objIdx);

    return objResult;
}

function GetRadioButtunListAttributeByIdx(AttributeName, objTheID, objIdx) {
    return RadioButtonListGetAttributeByIdx(AttributeName, objTheID, objIdx);
}

function RadioButtonListGetAttributeByIdx(AttributeName, objTheID, objIdx) {
    if (objIdx == -1)
        return null;



    var objCtrl = $(objTheID + objIdx);


    if (objCtrl == null)
        return null;

    var objItem = objCtrl.parentElement;

    if (objItem == null)
        return null;

    var bFlag = StringCompare("span", objItem.tagName, true, true);
    var objResult = null;

    if (bFlag)
        eval(" objResult = objItem." + AttributeName + "; ");

    return objResult;

}


// 通过ID获得radiobuttonlist的Value
function GetRadioButtunListValueByPreIdName(objTheID) 
{
    return RadioButtunListGetValueByPreIdName(objTheID);
}

// 通过ID获得radiobuttonlist的Value
function RadioButtunListGetValueByPreIdName(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 RadioButtonListItemCtrlStyleDisplay(objTheID,preId,bFlag)
{
    var i = 0;


    while (true) {
        var objCtrl = $(objTheID + i);
        if (objCtrl == null)
            break;

        StyleDisplayChangeByCtrlIdAndFlag(preId + objCtrl.value,bFlag);

        ++i;
    }

    return true;    
}

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;
        val.width = (h / height) * width;
    }
    else if (height <= h && width > w) {

        val.width = w;

        val.height = (w / width) * height;

    }
    else if (height > h && width > w) {

        var rate1 = w * height;
        var rate2 = h * width;

        if (rate1 >= rate2) {
            val.width = w;
            val.height = (w / width) * height;
        }
        else {
            val.height = h;
            val.width = (h / height) * width;

            // alert((h / height) * width + ";" + val.width);
        }
    }

    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 {
        if (name != null && name.trim() != "")
            element = myDoc.createElement('<' + tagName + ' name="' + name + '" />');
        else
            element = myDoc.createElement('<' + tagName + '  />');


        if (id != null && id.trim() != "")
            element.id = id;

        if (type != null && type.trim() != "") {
            element.type = type;
        }
        else {

        }

        if (value != null)
            element.value = value;
    }
    catch (e) {


    }

    if (!element) {

        element = myDoc.createElement(tagName);

        if (type != null && type.trim() != "")
            element.setAttribute("type", type);

        if (id != null && id.trim() != "")
            element.setAttribute("id", id);

        if (name != null && name.trim() != "")
            element.setAttribute("name", name);

        if (value != null)
            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 IsNotTheNumber(str) {
    return !IsTheNumber(str);
}

// 
function IsTheNumber(str) {

    // 判断传入的字符串是否是数字
    
    if (str == null)
        return false;

    str = str + "";
    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 IsNotTheInt(str) {
    var bFlag = IsTheInt(str);

    return !bFlag;
}

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 IsValidFormatDate(stringDate, strSplit) {
    var strDate = Trim(stringDate);

    if (strSplit.length > 1)
        return false;

    if (strSplit != "") {
        if (strDate.length != 10)
            return false;

        strDate = ReplaceString(strDate, strSplit, "");
    }

    if (strDate.length != 8)
        return false;

    return IsValidDate(strDate);

}

// 是否时间 //
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 ConfirmMsg(objMsg,bDefault)
{
    objMsg = GetTextNullToEmpty(objMsg);

    if (objMsg == "")
        return bDefault;

    return confirm(objMsg);
    
}

// 对非空值进行提示 
function AlertNoEmpty(objMsg) {
    objMsg = GetTextNullToEmpty(objMsg);

    if (objMsg == "")
        return;

    alert(objMsg);
}


function MyAlertByCtrlId(objMsg, ctrlId) {
    return MyAlertFocusByCtrlId(objMsg, ctrlId,true);
}

function MyAlertFocusByCtrlId(objMsg, ctrlId,isFocus) {
    return MyAlertFocus(objMsg, $(ctrlId),isFocus);
}

function MyAlert(objMsg, objThis) {
    return MyAlertFocus(objMsg,objThis,true);
}

function MyAlertFocus(objMsg, objThis,isFocus) {
    return MyAlertFocusNoEmpty(objMsg, objThis, false,isFocus);
}

function MyAlertNoEmpty(objMsg, objThis, objNoEmpty) {
    return MyAlertFocusNoEmpty(objMsg,objThis,objNoEmpty,true);
}

function MyAlertFocusNoEmpty(objMsg, objThis, objNoEmpty,isFocus) {
    if (objNoEmpty)
        AlertNoEmpty(objMsg);
    else
        alert(objMsg);

    if(isFocus)
        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);
}

//
// 打开默认的新窗口
// 
function MyOpenDefaultUrlClick(objUrl) {
    return MyOpenHW(objUrl, 600, 800);
}

// 
// 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 MyShowModalDialog2(url, w, h, false);
}

function MyShowModalDialog2(url, w, h, bFlag) {
    if (bFlag) {
        url = InsertDate(url);
    }

    return window.showModalDialog(url, "", "dialogHeight: " + h + "px; dialogWidth:" + w + "px;center: yes; help: yes;resizable: yes; status: yes;");
}

function SelectDefaultDialog(url, ctrlShow, ctrlValue) {
    url = GetPhyPath() + "/" + url;

    return SelectDialog(url, 600, 500, $(ctrlShow), $(ctrlValue), null);
}

function SelectDefaultDialogFromParams(url, ctrlShow, ctrlValue, theCode, EvalFun) {
    url = GetPhyPath() + "/" + url;

    if (EvalFun != null && EvalFun != "") {
        eval(" url = " + EvalFun + ";");
        // url = eval(EvalFun);
    }

    return SelectDialog(url, 600, 500, $(ctrlShow), $(ctrlValue), null);
}

// 显示对话框 //
function SelectDialog(url, w, h, ctrlShow, ctrlValue, strSplit) {
    return SelectDialog2(url, w, h, ctrlShow, ctrlValue, strSplit, true);
}


function SelectDefaultDialog2(url, ctrlShow, ctrlValue, bIsShowId) {
    url = GetPhyPath() + "/" + url;

    return SelectDialog2(url, 600, 500, $(ctrlShow), $(ctrlValue), null, bIsShowId);
}

function SelectDefaultDialogFromParams2(url, ctrlShow, ctrlValue, theCode, EvalFun, bIsShowId) {
    url = GetPhyPath() + "/" + url;

    if (EvalFun != null && EvalFun != "") {
        eval(" url = " + EvalFun + ";");
        // url = eval(EvalFun);
    }

    return SelectDialog2(url, 600, 500, $(ctrlShow), $(ctrlValue), null, bIsShowId);
}

// 显示对话框 //
function SelectDialog2(url, w, h, ctrlShow, ctrlValue, strSplit, bIsShowId) 
{
    if (ctrlShow == null)
        return false;

    if (strSplit == null)
        strSplit = "-";

    var retval = MyShowModalDialog2(url, w, h, true);

    if (retval == null || (retval + "") == "")
        return false;

    if (bIsShowId)
        ctrlShow.value = retval;
    else
        ctrlShow.value = StringGetEndBySplitAndBoolean(retval, strSplit, false); ;

    if (ctrlValue != null)
        ctrlValue.value = StringGetHeadBySplitAndBoolean(retval, strSplit, true);

    return true;
}

function DoDialogForClick(url, w, h, ctrlId, theValue) 
{
    var ctrl = $(ctrlId);
    
    if(ctrl == null)
        return false;
        
    var retval = MyShowModalDialog2(url, w, h, true);

    if (retval == null || (retval + "") == "")
        return false;

    if(retval == theValue)
        ctrl.click();

    return true;
}


//
// 弹出新窗口
// 
function OnUrlClick(objUrl, isBlank) {
    if (isBlank)
        return MyOpenDefaultUrlClick(objUrl);
    else
        return OnGo(objUrl);
}

function OnGo(objUrl) {
    if (IsNullOrEmptyAndBlank(objUrl))
        objUrl = window.location;

    window.location = objUrl;


}

function AddDate() {
    var date = new Date();

    return "&thetimestamp=" + date;
}

function InsertDate(url) {
    if (url == null || url == "")
        return "";

    var date = new Date();

    url += GetUrlChar(url);

    url += "thetimestamp=" + date;

    return url;
}


function GetUrlChar(url) {
    if (url == null || url == "")
        return "";

    if (StringContains(url, '?'))
        return "&";
    else
        return "?";
}


function AddUrlParams(url, objparams) {
    if (objparams == null || objparams == "")
        return url;

    var objChar = GetUrlChar(url);

    if (objChar == "")
        return url;

    return url + objChar + objparams;
}

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, "复制成功！");
}


function CopyToClipboardByCtrlId(fromId, objMessage) {
    return CopyToClipboardByCtrl($(fromId), objMessage);
}

function CopyToClipboardByCtrl(fromCtrl, objMessage) {
    if (fromCtrl == null)
        return false;

    return CopyToClipboard(fromCtrl.value, objMessage);
}

//
// IE和firefox通用的复制到剪贴板的JS函数
// 

function CopyToClipboardOnlyTxt(txt) {
    return CopyToClipboardAndAlert(txt, "", false);
}

function CopyToClipboard(txt, objMessage) 
{
    // alert('dd');
    return CopyToClipboardAndAlert(txt, objMessage, true);
}

function CopyToClipboardAndAlert(txt, objMessage, bAlert) {
    if (txt == null)
        txt = "";

    objMessage = GetTextNullToDefault(objMessage, "复制成功，^_^，请Ctrl+v粘贴到你的QQ或MSN上与好友分享！");

    if (window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData("Text", txt);

        if (bAlert)
            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);

        if (bAlert)
            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 SetPYValueByCtrlId(fromId, toId) {
    return SetPYValueByCtrl($(fromId), $(toId));
}

function SetPYValueByCtrl(fromCtrl, toCtrl) {
    if (fromCtrl == null || toCtrl == null)
        return false;

    toCtrl.value = GetPY(fromCtrl.value.trim());
}


// 根据鼠标或焦点事件，设置文本框和按钮样式,此函数会与样式相关
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) {


    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName, strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll, strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem, strItem);

    var objForm = $(objFormName);
    var objchk_JS_All = $(objChkJSAll);

    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];

        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) {

    var obj = GetCtrlClass(objCtrlId, objCtrlType, objTip);

    if (obj != null) {
        var objLen = GetLength(VCtrlClassArray);

        VCtrlClassArray[objLen] = obj;

    }
    else {

    }

    return true;
}

function ReturnValueClass() { }
ReturnValueClass.prototype =
{
Value: "",
StrValue: ""
}

// 实例化类对象
function GetReturnValueClass(objValue, objStrValue) 
{
    var objVClass = new ReturnValueClass();

    objVClass.Value = objValue;
    objVClass.StrValue = objStrValue;

    return objVClass;
}

// String分割Number
function StringGetNumber(str, isHead, isFloat, isRemoveNumber)
{
    if(str == null || str == "")
        return "";
        
    var isPoint = false;
    
    var chCurrent;
    
    var iLen = str.length;

    var iBreakIndex = 0;

    if (isHead)
    {
        for (iBreakIndex = 0; iBreakIndex < iLen; ++iBreakIndex)
        {
            chCurrent = str.charAt(i);
            
            if (!IsDigit(chCurrent)) 
            {
                if (chCurrent != '.')
                    break;

                if (!isFloat)
                    break;

                if (isPoint)
                    break;

                isPoint = true;
            }
        }

        if (iBreakIndex == iLen)
        {
            if (isRemoveNumber)
                return "";
            else
                return str;
        }

        if (isRemoveNumber)
        {
            return StringGetStrByIndex(str,iBreakIndex,false);
        }
        else
        {
            return StringGetStrByIndex(str,iBreakIndex,true);
        }
    }
    else
    {
        for (iBreakIndex = iLen - 1; iBreakIndex >= 0; --iBreakIndex)
        {
            chCurrent = str.charAt(i);
            
            if (!IsDigit(chCurrent))
            {
                if (cArray[iBreakIndex] != '.')
                    break;

                if (!isFloat)
                    break;

                if(isPoint)
                    break;

                isPoint = true;
            }
        }

        if (iBreakIndex == -1)
        {
            if (isRemoveNumber)
                return "";
            else
                return str;
        }

        if (isRemoveNumber)
        {
            return StringGetStrByIndex(str,iBreakIndex,true);
            // return str.Substring(0, iBreakIndex);
        }
        else
        {
            // return str.Substring(iBreakIndex + 1);
            return StringGetStrByIndex(str,iBreakIndex+1,false);
        }
    }
        
}

function GetReturnValueClassByChar(objValue,objSplitChar,isFillHead)
{
    var objVClass = new ReturnValueClass();
    
    if(objValue == null || objValue == "")
        return objVClass;
        
    if(objSplitChar == null) 
    {
        objSplitChar = "-";
    }    
    
    if(objSplitChar == "")
    {
        objVClass.Value = StringGetNumber(objValue,true,false,false);
        objVClass.StrValue = StringGetNumber(objValue,true,false,true);    
    }
    else
    {
        var idx = StringIndexOf(objValue,objSplitChar);
        
        if(idx == -1)
        {
            if(isFillHead)
            {
                objVClass.Value = objValue;
                objVClass.StrValue = "";            
            }
            else
            {
                objVClass.Value = "";
                objVClass.StrValue = objValue;
            }
        } 
        else
        {
            objVClass.Value = StringGetStrByIndex(objValue,idx,true);
            objVClass.StrValue = StringGetStrByIndex(objValue,idx+objSplitChar.length,false);
        }       
    } 

    return objVClass;    
}

function ReturnReturnValueClassValue(obj, objDefaultValue) {
    if (obj == null)
        return objDefaultValue;
    else
        return obj.Value;
}

function ReturnReturnValueClassStrValue(obj, objDefaultValue) {
    if (obj == null)
        return objDefaultValue;
    else
        return obj.StrValue;
}



// 返回用的函数 //
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: "",
FocusTipText: "",
AjaxJSFunction:"",
AjaxCompareValue:false,
AjaxErrorTip:""
}

function AddVArray(objValidatorCode, objCtrlId, objCtrlType, objFocusId, objCtrlJSValidator, objJSValidatorExpress, objCompareValue, objIsTrim, objIsCheck, objIsCheckNoVisible, objTip, objHeadTip, objTipName, objJSFunction, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip) {
    var obj = GetVClass(objValidatorCode, objCtrlId, objCtrlType, objFocusId, objCtrlJSValidator, objJSValidatorExpress, objCompareValue, objIsTrim, objIsCheck, objIsCheckNoVisible, objTip, objHeadTip, objTipName, objJSFunction, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip);

    return AddVArrayByVClass(obj);
}

function AddVArrayByVClass(obj) {
    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, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip) {
    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;
    objVClass.FocusTipText = objFocusTipText;
    
    objVClass.AjaxJSFunction = objAjaxJSFunction;
    objVClass.AjaxCompareValue = objAjaxCompareValue;
    objVClass.AjaxErrorTip = objAjaxErrorTip;

    return objVClass;
}

function CopyVClass(obj) {
    if (obj == null)
        return null;

    var objVClass = new VClass();

    objVClass.ValidatorCode = obj.ValidatorCode;
    objVClass.CtrlId = obj.CtrlId;
    objVClass.CtrlType = obj.CtrlType;
    objVClass.FocusId = obj.FocusId;
    objVClass.CtrlJSValidator = obj.CtrlJSValidator;
    objVClass.JSValidatorExpress = obj.JSValidatorExpress;
    objVClass.CompareValue = obj.CompareValue;
    objVClass.IsTrim = obj.IsTrim;
    objVClass.IsCheck = obj.IsCheck;
    objVClass.IsCheckNoVisible = obj.IsCheckNoVisible;
    objVClass.Tip = obj.Tip;
    objVClass.HeadTip = obj.HeadTip;
    objVClass.TipName = obj.TipName;
    objVClass.JSFunction = obj.JSFunction;
    objVClass.FocusTipText = obj.FocusTipText;
    
    objVClass.AjaxJSFunction = obj.AjaxJSFunction;
    objVClass.AjaxCompareValue = obj.AjaxCompareValue;
    objVClass.AjaxErrorTip = obj.AjaxErrorTip;    

    return objVClass;
}

function GetVClassByCopy(objSourceVClass, CtrlId, FocusId, Tip, TipName) {
    var objVClass = CopyVClass(objSourceVClass);

    if (objVClass == null)
        return null;

    if (CtrlId != null)
        objVClass.CtrlId = CtrlId;

    if (FocusId == null)
        FocusId = CtrlId;

    if (FocusId != null)
        objVClass.FocusId = FocusId;

    if (Tip != null)
        objVClass.Tip = Tip;

    if (TipName != null)
        objVClass.TipName = TipName;

    return objVClass;
}

function JSCheckAndConfirm(objThis, objValidatorCode,objMessage) 
{
    var bFlag = JSCheck(objThis,objValidatorCode);
    
    if(!bFlag)
        return false;
        
    return ConfirmMsg(objMessage,true);     
}

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.FocusTipText != null && objVClass.FocusTipText != "") {
        if (objValue == objVClass.FocusTipText)
            objValue = "";
    }

    if (objVClass.IsTrim)
        objValue = ("" + objValue).trim();

    
    
    // 代码保护，不让校验不可见的控件 //
    if(objVClass.IsCheck && !bIsShow && !objVClass.IsCheckNoVisible)
    {
        return true;
    }
 


    // 输入的值为空 //
    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 if (objVClass.CtrlJSValidator == "nonew") {
                if (!IsNotDefaultNew(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.AjaxJSFunction != "") 
    {
        var objTheReturn = false;

        var objTmp = " objTheReturn = " + objVClass.AjaxJSFunction + "(false); ";
        
        eval(objTmp);

        if(objTheReturn == objVClass.AjaxCompareValue)
        {
            if(objVClass.AjaxErrorTip == "")
                MyAlert(objVClass.Tip, $(objVClass.FocusId));
            else
                MyAlert(objVClass.AjaxErrorTip, $(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;
}


function StringPadLeft(objStr, iSize, cChar) {
    return StringPad(objStr, iSize, cChar, true);
}

function StringPadRight(objStr, iSize, cChar) {
    return StringPad(objStr, iSize, cChar, false);
}


function StringPad(objStr, iSize, cChar, IsLeft) {
    if (objStr == null)
        objStr = "";
    else
        objStr = objStr + "";

    if (cChar == null)
        cChar = "0";

    var iLen = objStr.length;
    var cLen = cChar.length;

    if (cLen <= 0)
        return cChar;

    var iLeft = iSize - iLen;

    if (iLeft <= 0)
        return objStr;

    var iRate = iLeft / cLen;

    var objFill = "";

    for (var i = 0; i < iRate; ++i) {
        objFill += cChar;
    }

    if (iLeft)
        objStr = objFill + objStr;
    else
        objStr = objStr + objFill;

    return objStr;
}


// JS替换字符串 //
function StringReplace(objStr, objChar, objNewChar) {
    return StringReplaceByBoolean(objStr, objChar, objNewChar, true);
}

// JS替换字符串 //
function ReplaceString(objStr, objChar, objNewChar) {
    return StringReplace(objStr, objChar, objNewChar);
}

function StringReplaceByBoolean(objStr, objChar, objNewChar, bFlag) {
    do {
        if (objStr.indexOf(objChar) != -1)
            objStr = objStr.replace(objChar, objNewChar);
        else
            break;
    } while (bFlag);

    return objStr;

}

function ReplaceStringByBoolean(objStr, objChar, objNewChar, bFlag) {
    return StringReplaceByBoolean(objStr, objChar, objNewChar, bFlag);
}

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;
}

// Head不包括Index那个字符
// End包括Index那个字符
function StringGetStrByIndex(objStr, objIndex, IsHead) {
    if (objStr == null)
        return "";

    if (objIndex == -1)
        return "";

    if (IsHead)
        return objStr.substr(0, objIndex);
    else {
        var iLen = objStr.length;
        return objStr.substr(objIndex, iLen);
    }
}


function StringSplitJoin(objStr, objChar, objNewChar) {
    if (objStr == null)
        return "";
    if (objChar == null || objNewChar == null)
        return objStr;

    return objStr.split(objChar).join(objNewChar);
}

function StringSplit(objStr, objChar) {
    if (objStr == null)
        return "";
    if (objChar == null || objChar == "")
        return objStr;

    return objStr.split(objChar);
}

function StringJoin(objStr, objChar) {
    if (objStr == null)
        return "";

    if (objChar == null)
        objChar = "";

    return objStr.join(objChar);
}


function StringFillCharByHeadEnd(objStr, objChar, isHead) {
    return StringFillCharByHeadEndIgnoreCase(objStr, objChar, isHead, false);
}

function StringFillCharByHeadEndIgnoreCase(objStr, objChar, isHead, ignoreCase) {
    if (objStr == null)
        return null;

    if (objChar == null)
        return objStr;

    var bFlag = StringIsWithIgnoreCase(objStr, objChar, isHead, ignoreCase);

    if (bFlag)
        return objStr;



    if (isHead)
        return objChar + objStr;
    else
        return objStr + objChar;
}


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 StringNotStartsWith(objStr, objChar) {
    return !StringStartsWith(objStr, objChar);
}

function StringStartsWithIgnoreCase(objStr, objChar, ignoreCase) {
    if (objStr == null || objStr == "" || objChar == null || objChar == "")
        return false;

    return (StringIndexOfIgnoreCase(objStr, objChar, ignoreCase) == 0);
}

function StringIsWith(objStr, objChar, isHead) {
    return StringIsWithIgnoreCase(objStr, objChar, isHead);
}

function StringIsWithIgnoreCase(objStr, objChar, isHead, ignoreCase) {
    if (isHead)
        return StringStartsWithIgnoreCase(objStr, objChar, ignoreCase);
    else
        return StringEndsWithIgnoreCase(objStr, objChar, ignoreCase);
}

function StringEndsWith(objStr, objChar) {
    return StringEndsWithIgnoreCase(objStr, objChar, false);
}

function StringNotEndsWith(objStr, objChar) {
    return !StringEndsWith(objStr, objChar);
}

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 ReLoadImageBySRCNoTime(objId, objSrc) {
    var theSrc = objSrc;

    if (theSrc == null)
        theSrc = GetPhyPath() + "/ajax/common/verifycode.aspx?tmpweb=1";

    theSrc += AddDate();

    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 GetStringMonth(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 GetStringDay(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 OnFCAListControlFindSearch(txtCtrlId, listCtrlId, idxCtrlId, bIsNext) 
{
    var txt = $(txtCtrlId);
    var lc = $(listCtrlId);
    var idx = $(idxCtrlId);
    
    
    
    if(txt == null || lc == null || idx == null)
        return false;
 
    var objTxtValue = txt.value.trim();
    
  

    if (objTxtValue == "") 
    {
        alert("请输入查询关键字！");

        return false;
    }

    objTxtValue = GetLowerCase(objTxtValue);
    
        

    var objSelectedIndex = -1;
    
    if(idx.value.trim() != "")
        objSelectedIndex = GetInt(idx.value.trim(),-1);

    var objSize = lc.options.length;

    var i = objSelectedIndex;
    

    while (true) 
    {
        if(bIsNext)
        {
            if(i < 0)
                i = 0;
            else
            {
                ++i;
                                
                if(i == objSize)
                    i = 0;
            }       
        }
        else 
        {
            if(i < 0)
                i = objSize - 1;
            else
            {
                --i;  
                if(i < 0)
                    i = objSize - 1;              
            }
        }

        var objOptionText = lc.options[i].text;

        objOptionText = GetLowerCase(objOptionText);

        if (i == objSelectedIndex) 
        {
            if (objOptionText.indexOf(objTxtValue) == -1) 
            {
                alert("没有找到！");
                return false;
            }

            break;
        }
        else 
        {
            if (objOptionText.indexOf(objTxtValue) != -1) 
            {
                lc.selectedIndex = i;
                idx.value = i + "";
                break;
            }
        }
        
        if(objSelectedIndex == -1)
            objSelectedIndex = i;
    }

    return false;
}


// 搜索 //
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;
}


// 控件Id
function GetOptionIdxByParameter(objCtrl, objText, fromIdx, bIsTree, bIsTrim, bPrecision, bIgnoreCase, bIsValue) {
    if (objCtrl == null)
        return -1;

    if (objText == null)
        return -1;

    if (bIsTree)
        objText = StringRemoveTreeLine(objText);

    if (bIgnoreCase)
        objText = GetLowerCase(objText);

    if (bIsTrim)
        objText = objText.trim();

    var objLen = GetListControlLength(objCtrl);
    var objValue = "";
    var op = null;

    for (; fromIdx < objLen; ++fromIdx) {
        op = GetListControlOptionByIdx(objCtrl, fromIdx);

        if (op == null)
            continue;

        if (bIsValue)
            objValue = op.value;
        else
            objValue = op.text;

        if (bIsTree)
            objValue = StringRemoveTreeLine(objValue);

        if (bIgnoreCase)
            objValue = GetLowerCase(objValue);

        if (bIsTrim)
            objValue = objValue.trim();


        if (bPrecision) {
            if (objValue == objText)
                return fromIdx;
        }
        else {
            if (IsContainsAll(objValue, objText, bIgnoreCase))
                return fromIdx;
        }
    }

    return -1;
}

// 通过ListControl控件和起始Idx，获得option
function GetOptionByParameter(objCtrl, objText, fromIdx, bIsTree, bIsTrim, bPrecision, bIgnoreCase, bIsValue) {
    var idx = GetOptionIdxByParameter(objCtrl, objText, fromIdx, bIsTree, bIsTrim, bPrecision, bIgnoreCase, bIsValue);

    if (idx == -1)
        return null;

    return GetListControlOptionByIdx(objCtrl, idx);
}

// ##########################################################################
// ####################### MultiSelect操作END ##############################
// #########################################################################


// ##########################################################################
// ############################# 预览功能 #################################
// #########################################################################

function OnCtrlRemoveChild(objFormTo) {
    if (objFormTo == null)
        return false;

    for (i = 0; i < objFormTo.elements.length; ++i) {
        var e = objFormTo.elements[i];

        if (e == null || e == objFormTo)
            continue;

        objFormTo.removeChild(e);
    }

    return true;
}

// 预览 //
function OnContentPreview(objFormFrom, objFormTo, strDefaultCode, postUrl) {
    if (objFormFrom == null || objFormTo == null)
        return false;

    // 移除控件
    OnCtrlRemoveChild(objFormTo);

    var bResult = OnContentCreateFillCtrlForPreview(objFormFrom, objFormTo, strDefaultCode);

    if (bResult) {
        if (postUrl != null && postUrl.trim() != "")
            objFormTo.action = postUrl;

        objFormTo.submit();
    }

    return bResult;
}

// 控件填充 //
function OnContentCreateForPreview(objFormFrom, objSpan, strDefaultCode) {

    if (objFormFrom == null || objSpan == null)
        return false;

    objSpan.innerHTML = "";

    return OnContentCreateFillCtrlForPreview(objFormFrom, objSpan, strDefaultCode);
}

function OnContentCreateFillCtrlForPreview(objFormFrom, objParent, strDefaultCode) {
    if (objFormFrom == null || objParent == null)
        return false;

    var i = 0;
    var objCtrl = null;
    var bIsFind = false;
    var objValue = null;

    for (i = 0; i < objFormFrom.elements.length; i++) {
        objValue = null;

        var e = objFormFrom.elements[i];

        if (e == null) // || e.DefaultCode != strDefaultCode)
            continue;

        if (e.DefaultCode != strDefaultCode)
            continue;

        if (e.DataColumnName == null || e.DataColumnName.trim() == "")
            continue;

        if (e.IsDriver == null || e.IsDriver != "1")
            objValue = e.value;
        else {
            // 获得value //
            // CtrlType="" CtrlClientId="" CtrlId="" 
            var objCtrlType = "";

            if (e.CtrlType == null || e.CtrlType.trim() == "")
                objCtrlType = GetCtrlTypeByCtrlId(e.CtrlClientId);
            else
                objCtrlType = e.CtrlType.trim();

            var objTheCtrl = $(e.CtrlClientId);

            if (objTheCtrl != null)
                objValue = GetCtrlValueByCtrlIdAndCtrlType(e.CtrlClientId, objCtrlType);
        }

        if (objValue == null)
            continue;

        objCtrl = CreateElement(null, "input", e.DataColumnName.trim(), null, "text", objValue);

        AddCtrl(objParent, objCtrl);

        bIsFind = true;
    }

    return bIsFind;
}

// ##########################################################################
// ############################# 预览功能END ##############################
// ########################################################################

// ##########################################################################
// ############################# 设定定时器 ##############################
// ########################################################################

function CreateTimer() {

}


// ##########################################################################
// ############################# 设定定时器END ############################
// ########################################################################

//
// 上传附件的Change操作
// 
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;

    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;
}

// ##########################################################################
// ######################## ModalDialog参数操作 ###########################
// ########################################################################

function OnSelectListControl(objUrl, lcId, IsTree) {
    return OnSelectListControlForTitle(objUrl, lcId, IsTree, null);
}

function OnSelectListControlForTitle(objUrl, lcId, IsTree, objTitle) {
    return OnSelectListControlByGuid(objUrl, lcId, IsTree, objTitle, null);
}

function OnSelectListControlByGuid(objUrl, lcId, IsTree, objTitle, guidCtrl) {
    var objLc = $(lcId);

    if (objLc == null)
        return false;

    if (objUrl == null)
        objUrl = GetPhyPath() + "/" + "SelectListControl.aspx";

    objUrl += "?id=" + lcId + "&istree=" + IsTree;

    if (guidCtrl == null)
        guidCtrl = "txt_PageGuid";

    var objTxt = $(guidCtrl);

    if (objTxt != null && objTxt.value != "")
        objUrl += "&guidid=" + guidCtrl + "&guid=" + objTxt.value;

    if (objTitle != null && objTitle.trim() != "")
        objUrl += "&title=" + GetEncodeTrimText(objTitle);

    var varUrl = window.location + "";

    if (!(varUrl == null || varUrl == ""))
        objUrl += "&clienturl=" + GetEncodeTrimText(varUrl);

    objUrl += AddDate();

    var retval = window.showModalDialog(objUrl, window, "dialogHeight: 500px; dialogWidth:400px;center: yes; help: no;resizable: yes; status: no;");

    if (retval == null || (retval + "") == "" || (retval + "") == "-1")
        return false;

    SetListControlSelectedIndex(objLc, retval, -1);

    return false;
}

function GetDocumentByParameter(objThis, guidId, guidValue) {
    return GetDocumentByParameterAndUrl(objThis, guidId, guidValue, null);
}

function GetDocumentByParameterAndUrl(objThis, guidId, guidValue, objUrl) {

    var objLocation = "";

    if (objUrl != null && objUrl.trim() != "") {
        var objResult = GetDocumentByParameterAndUrl(objThis, guidId, guidValue, null);

        if (objResult != null && objResult.document != null)
        {
            objLocation = objResult.location + "";

            if (StringCompare(objLocation, objUrl,true,true))
                return objResult;
        }

        objThis = GetDocumentByParameterAndUrl(objThis, "", "", null);

        if (objThis == null || objThis.document == null)
            return null;

        objLocation = objThis.location + "";

        if (StringCompare(objLocation, objUrl,true,true))
            return objThis;

        var iLen = objThis.frames.length;
        var i = 0;
        var objRet = null;

        for (i = 0; i < iLen; ++i) {
            objRet = GetDocumentByParameterAndUrl(objThis.frames[i], "", "", objUrl);

            if (objRet != null)
                return objRet;
        }

        return null;
    }
    else {
        if (guidId == "" || guidValue == "") {
            if (objThis == null) {
                if (window != null && window.dialogArguments != null
                && window.dialogArguments.parent != null)
                {
                    return window.dialogArguments.parent; // .document;
                }
                else
                {
                    return null;
                }
            }
            else {
                return objThis;
                //return objThis.document;
            }
        }
        else {
            objThis = GetDocumentByParameterAndUrl(objThis, "", "", null);

            if (objThis == null || objThis.document == null)
                return null;


            var objCtrl = objThis.document.getElementById(guidId);

            if (objCtrl != null && objCtrl.value == guidValue)
                return objThis;

            var iLen = objThis.frames.length;
            var i = 0;
            var objRet = null;

            for (i = 0; i < iLen; ++i) {
                objRet = GetDocumentByParameter(objThis.frames[i], guidId, guidValue);

                if (objRet != null)
                    return objRet;
            }

            return null;
        }
    }
}


// ##########################################################################
// ##################### ModalDialog参数操作END ###########################
// ########################################################################


// ##########################################################################
// ##################### JS广告 ###########################################
// ########################################################################


// 用在左边切换效果的Flash上的JS //
function addFlashAdInfo(varText, objtitle, objphotourl, objlink) {
    if (varText != "") {
        varText += "|||";
    }

    varText += objtitle + "|_|" + objphotourl + "|_|" + objlink;

    return varText;
}



// ######################################################################### 
// #################################### JS广告END ######################### 
// ########################################################################

// ######################################################################### 
// ############################ 获得控件Value ############################ 
// ####################################################################### 



//
// RadioButtonList 怎么考虑
// 
function JSCtrlValue(CtrlId, CtrlType, IsTrim, EmJSEncode, EmJSValueType, ReturnDefaultValue) {
    var objCtrl = $(CtrlId);

    if (objCtrl == null)
        return ReturnDefaultValue;

    var objValue = GetCtrlValueByCtrlIdAndCtrlType(CtrlId, CtrlType);

    return ConvertJSCtrlValue(objValue, IsTrim, EmJSEncode, EmJSValueType, ReturnDefaultValue);
}

// 转换控件Value
function ConvertJSCtrlValue(objValue, IsTrim, EmJSEncode, EmJSValueType, ReturnDefaultValue) {
    //Default = 1,
    //String, 
    //Boolean, 
    //Int, 
    //UInt, 
    //Long, 
    //ULong, 
    //Float, 
    //Double, 
    //DateTime 
    //    


    // 写道这里 
    if (EmJSValueType == "Default") {
        if (IsBooleanType(objValue))
            return objValue;

        return ConvertJSCtrlValue(objValue, IsTrim, EmJSEncode, "String", ReturnDefaultValue);
    }
    else if (EmJSValueType == "Boolean") {
        if (IsBooleanType(objValue))
            return objValue;
        else {
            if (objValue == null)
                return ReturnDefaultValue;

            var objTmp = GetLowerCase(objValue.trim());

            if (objTmp == "1" || objTmp == "true")
                return true;
            else if (objTmp == "0" || objTmp == "false")
                return false;
            else
                return ReturnDefaultValue;
        }
    }
    else if (EmJSValueType == "Int" || EmJSValueType == "UInt") {
        if (IsTheInt(objValue)) {
            var iValue = parseInt(objValue + "", 10);

            if (EmJSValueType == "UInt") {
                if (iValue < 0)
                    return ReturnDefaultValue;
            }

            return iValue;
        }
        else
            return ReturnDefaultValue;
    }
    else if (EmJSValueType == "Long" || EmJSValueType == "ULong") {
        if (IsTheInt(objValue)) {
            var iValue = parseFloat(objValue + "");

            if (EmJSValueType == "ULong") {
                if (iValue < 0)
                    return ReturnDefaultValue;
            }

            return iValue;
        }
        else
            return ReturnDefaultValue;
    }
    else if (EmJSValueType == "Float" || EmJSValueType == "Double") {
        if (IsTheNumber(objValue)) {
            var iValue = parseFloat(objValue + "");

            return iValue;
        }
        else
            return ReturnDefaultValue;
    }
    else {
        if (objValue == null)
            return null;

        var objTmp = objValue;

        if (IsTrim)
            objTmp = objTmp.trim();

        objTmp = GetEmJSEncode(objTmp, EmJSEncode);

        return objTmp;
    }
}

function GetEmJSEncode(objValue, EmJSEncode) {
    if (objValue == null || EmJSEncode == "" || EmJSEncode == "None")
        return objValue;

    return eval(EmJSEncode + "(objValue); ");
}

// ######################################################################### 
// ######################### 获得控件ValueEND ############################ 
// ####################################################################### 

function AlertAndOnTopReturnValueAndClose(strMsg,objValue)
{
    if(strMsg != null && strMsg != "")
        alert(strMsg);

    return OnTopReturnValueAndClose(objValue);
}

function OnTopReturnValueAndClose(objValue) 
{
    if (top != null)
        top.returnValue = objValue;

    if (window != null)
        window.close();
        
    return true;        
}


function WindowClose()
{
    if (window != null)
        window.close();
        
    return true;       
}

function WindowPrint()
{
    if (window != null)
        window.print();
        
    return true;       
}

// ######################################################################### 
// ############################## Date的方法  ############################ 
// ####################################################################### 

// http://www.w3school.com.cn/js/jsref_obj_date.asp
function NewDate() {
    return new Date();
}

// 获得周日到周六
// 0~6
function GetDay(d) {
    if (d == null)
        d = NewDate();

    if (d == null)
        return -1;

    return d.getDay();
}

function GetWeekDay(d) {
    return GetTheWeekDay(d, false);
}

function GetCnWeekDay(d) {
    return GetTheWeekDay(d, true);
}

function GetColorWeekDay(d, IsColor) {
    return GetColorTheWeekDay(d, false, IsColor);
}

function GetColorCnWeekDay(d, IsColor) {
    return GetColorTheWeekDay(d, true, IsColor);
}

function GetTheWeekDay(d, IsCnWeek) {
    return GetColorTheWeekDay(d, IsCnWeek, false);
}

function GetColorTheWeekDay(d, IsCnWeek, IsColor) {
    var idx = GetDay(d);
    var objResult = "";
    var iLen = 0;

    if (IsCnWeek)
        iLen = CnWeekDay.length;
    else
        iLen = WeekDay.length;

    if (idx >= 0 && idx < iLen) {
        if (IsCnWeek)
            objResult = CnWeekDay[idx];
        else
            objResult = WeekDay[idx];

        if (IsColor) {

            if (idx == 0 || idx == iLen - 1) {
                objResult = "<font color=red>" + objResult + "</font>";
            }
        }

        return objResult;
    }
    else
        return "";
}

// 
// 获得Date
// 
function GetNewDate(year, month, day) {
    var d = new Date();

    d.setFullYear(year, month, day);
}

function GetMonth(d) {
    if (d == null)
        d = NewDate();

    return d.getMonth() + 1;
}

function GetFormatDay(d, formatStr) {
    if (d == null)
        d = NewDate();

    var objResult = "";
    if (formatStr == null)
        formatStr = "yyyy-MM-dd";

    objResult = formatStr;


    objResult = StringReplace(objResult, "yyyy", StringPadLeft(d.getFullYear(), 4, "0"));
    objResult = StringReplace(objResult, "MM", StringPadLeft(GetMonth(d), 2, "0"));
    objResult = StringReplace(objResult, "dd", StringPadLeft(d.getDate(), 2, "0"));
    objResult = StringReplace(objResult, "HH", StringPadLeft(d.getHours(), 2, "0"));
    objResult = StringReplace(objResult, "mm", StringPadLeft(d.getMinutes(), 2, "0"));
    objResult = StringReplace(objResult, "ss", StringPadLeft(d.getSeconds(), 2, "0"));

    objResult = StringReplace(objResult, "cncolorweek", GetColorCnWeekDay(d, true));
    objResult = StringReplace(objResult, "colorweek", GetColorWeekDay(d, true));
    objResult = StringReplace(objResult, "cnweek", GetWeekDay(d));
    objResult = StringReplace(objResult, "week", GetWeekDay(d));


    return objResult;
}


function WriteFormatDay(doc, d, formatStr) {
    if (doc == null)
        doc = document;

    if (doc == null)
        return false;

    doc.write(GetFormatDay(d, formatStr));

    return true;
}



//Date 对象的方法
//FF: Firefox, N: Netscape, IE: Internet Explorer

//方法 描述 FF N IE 
//Date() 返回当日的日期和时间 1 2 3 
//getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31) 1 2 3 
//getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6) 1 2 3 
//getMonth() 从 Date 对象返回月份 (0 ~ 11) 1 2 3 
//getFullYear() 从 Date 对象以四位数字返回年份 1 4 4 
//getYear() 从 Date 对象以两位或四位数字返回年份。 1 2 3 
//getHours() 返回 Date 对象的小时 (0 ~ 23) 1 2 3 
//getMinutes() 返回 Date 对象的分钟 (0 ~ 59) 1 2 3 
//getSeconds() 返回 Date 对象的秒数 (0 ~ 59)) 1 2 3 
//getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999) 1 4 4 
//getTime() 返回 1970 年 1 月 1 日至今的毫秒数 1 2 3 
//getTimezoneOffset() 返回本地时间与格林威治标准时间的分钟差 (GMT) 1 2 3 
//getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31) 1 4 4 
//getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6) 1 4 4 
//getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11) 1 4 4 
//getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份 1 4 4 
//getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23) 1 4 4 
//getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59) 1 4 4 
//getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59) 1 4 4 
//getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999) 1 4 4 
//parse() 返回1970年1月1日午夜到指定日期（字符串）的毫秒数 1 2 3 
//setDate() 设置 Date 对象中月的某一天 (1 ~ 31)) 1 2 3 
//setMonth() 设置 Date 对象中月份 (0 ~ 11)) 1 2 3 
//setFullYear() 设置 Date 对象中的年份（四位数字） 1 4 4 
//setYear() 设置 Date 对象中的年份（两位或四位数字）。 1 2 3 
//setHours() 设置 Date 对象中的小时 (0 ~ 23) 1 2 3 
//setMinutes() 设置 Date 对象中的分钟 (0 ~ 59) 1 2 3 
//setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59) 1 2 3 
//setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999) 1 4 4 
//setTime() 通过向或从1970年1月1日午夜添加或减去指定数目的毫秒来计算日期和时间 1 2 3 
//setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31) 1 4 4 
//setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11) 1 4 4 
//setUTCFullYear() 根据世界时设置 Date 对象中年份（四位数字） 1 4 4 
//setUTCHours() 根据世界时设置 Date 对象中小时 (0 ~ 23) 1 4 4 
//setUTCMinutes() 根据世界时设置 Date 对象中分钟 (0 ~ 59) 1 4 4 
//setUTCSeconds() 根据世界时设置 Date 对象中秒钟 (0 ~ 59) 1 4 4 
//setUTCMilliseconds() 根据世界时设置 Date 对象中毫秒S(0 ~ 999) 1 4 4 
//toSource() 代表对象的源代码 1 4 - 
//toString() 把 Date 对象转换为字符串。 1 2 4 
//toTimeString() 把 Date 对象的时间部分转换为字符串。 1 2 4 
//toDateString() 把 Date 对象的日期部分转换为字符串。 1 2 4 
//toGMTString() 根据格林威治时间，把 Date 对象转换为字符串。 1 2 3 
//toUTCString() 根据世界时，把 Date 对象转换为字符串。 1 4 4 
//toLocaleString() 根据本地时间格式，把 Date 对象转换为字符串。 1 2 3 
//toLocaleTimeString() 根据本地时间格式，把 Date 对象的时间部分转换为字符串 1 2 3 
//toLocaleDateString() 根据本地时间格式，把 Date 对象的日期部分转换为字符串 1 2 3 
//UTC() 根据世界时，获得一个日期，然后返回1970年1月1日午夜到该日期的毫秒数。 1 2 3 
//valueOf() 返回 Date 对象的原始值。 1 2 4 


// ######################################################################### 
// ############################ Date的方法END ############################ 
// ####################################################################### 


// ######################################################################### 
// ############################## 密码校验 ############################### 
// ####################################################################### 



function CheckChangePwd(oldPwd, newPwd, confirmPwd, bFlag) {
    var ctrloldPwd = $(oldPwd);

    if (ctrloldPwd == null) {
        alert("系统错误，没有找到指定的控件！");
        return false;
    }

    if (ctrloldPwd.value == "") {
        MyAlert("请输入旧密码！", ctrloldPwd);
        return false;
    }

    var bRet = CheckConfirmPwd(newPwd, confirmPwd, bFlag);

    return bRet;
}

function CheckConfirmPwd(newPwd, confirmPwd, bFlag) {
    var ctrlnewPwd = $(newPwd);
    var ctrlconfirmPwd = $(confirmPwd);

    if (ctrlnewPwd == null
    || ctrlconfirmPwd == null) {
        alert("系统错误，没有找到指定的控件！");
        return false;
    }

    if (ctrlnewPwd.value == "") {
        MyAlert("请输入密码！", ctrlnewPwd);
        return false;
    }

    if (bFlag) {
        if (!validatePassword(ctrlnewPwd.value)) {
            MyAlert("请输入合理的密码！", ctrlnewPwd);
            return false;
        }
    }

    if (ctrlconfirmPwd.value == "") {
        MyAlert("请输入确认密码！", ctrlconfirmPwd);
        return false;
    }

    if (ctrlnewPwd.value != ctrlconfirmPwd.value) {
        MyAlert("密码和确认密码不一致，请重新输入！", ctrlconfirmPwd);
        return false;
    }

    return true;
}

function CheckConfirmPwdByNewFlag(newPwd, confirmPwd, bFlag,bNewFlag) {

    if(bNewFlag)
        return CheckConfirmPwd(newPwd, confirmPwd, bFlag); 

    var ctrlnewPwd = $(newPwd);
    var ctrlconfirmPwd = $(confirmPwd);

    if (ctrlnewPwd == null
    || ctrlconfirmPwd == null) {
        alert("系统错误，没有找到指定的控件！");
        return false;
    }

    if (ctrlnewPwd.value == "" && ctrlconfirmPwd.value == "") {
        return true;
    }
 
    return CheckConfirmPwd(newPwd, confirmPwd, bFlag); 
}

// ######################################################################### 
// ############################## 密码校验END ############################ 
// ####################################################################### 

//
// 四舍五入
//

function MyRound(num, digit) {
    return (num * Math.pow(10, digit) / Math.pow(10, digit)).toFCAFixed(digit);
}

Number.prototype.toFCAFixed = function(digit) {
    var s, temp, add = 0, s1 = this + "";
    var start = s1.indexOf(".");
    if (s1.substr(start + digit + 1, 1) >= 5) {
        add = 1;
    }
    temp = Math.pow(10, digit);
    if (this > 0) {
        s = Math.floor(this * temp) + add;
    }
    else {
        s = Math.round(this * temp) + add;
    }
    return s / temp;
}


function SplitStringToArray(str, strChar) {
    var arrayItem = new Array();

    return SplitStringToArrayForIdx(arrayItem, 0, str, strChar);
}

function SplitStringToArrayForIdx(arrayItem, idx, str, strChar) {
    if (arrayItem == null)
        arrayItem = new Array();

    var one = StringGetHeadBySplitAndBoolean(str, strChar, true);
    var two = StringGetEndBySplitAndBoolean(str, strChar, false);

    arrayItem[idx] = one;

    if (two == "")
        return arrayItem;

    return SplitStringToArrayForIdx(arrayItem, idx + 1, two, strChar);

}




// ######################################################################### 
// ############################## 转换图片大小 ########################## 
// ####################################################################### 


function JSChangeImgShow(ParentCtrlId, ItemCtrlId, ItemCtrlName, ImgWidth, ImgHeight) {
    var objTb = $(ParentCtrlId);

    if (objTb == null)
        return;

    var tbArray = objTb.getElementsByTagName("img");



    if (tbArray == null)
        return;

    var i = 0;


    for (i = 0; i < tbArray.length; ++i) {
        var e = tbArray[i];

        if (e == null)
            continue;

        if (ItemCtrlId != "") {
            if (!StringContainsIgnoreCase(e.id, ItemCtrlId, true))
                continue;
        }

        if (ItemCtrlName != "") {
            if (!StringContainsIgnoreCase(e.name, ItemCtrlName, true))
                continue;
        }


        ImgChangeSize(e, ImgWidth, ImgHeight);

    }
}

// 把缓存功能去掉了 //
function JSShowDataRequest(url, DivID, bAddDate) {
    var objUrl = url;

    if (bAddDate)
        objUrl = objUrl + AddDate();

    showDataRequest(objUrl, DivID);
}

// ######################################################################### 
// ############################ 转换图片大小END ######################### 
// ####################################################################### 

// ######################################################################### 
// ############################## 显示浮层 ############################### 
// ####################################################################### 

function ShowAbsoluteDiv(objThis, objId) {
    if (objThis == null)
        return false;

    var objDiv = $(objId);

    if (objDiv == null)
        return false;


    objDiv.style.left = getBrowserPositionX(objThis);
    objDiv.style.top = getBrowserPositionY(objThis);

    return SetCtrlDisplayByBoolean(objDiv, true);

}


// ######################################################################### 
// ############################ 显示浮层END ############################## 
// ####################################################################### 

// ######################################################################### 
// ############################ 动态多选事件 ############################ 
// ####################################################################### 

function OnFCAMutiItemRemoveItemById() {
    return OnFCAMutiItemRemoveItem(this);
}

function OnFCAMutiItemRemoveItem(objThis) {
    if (objThis == null)
        return false;

    var objItem = objThis.parentElement;

    if (objItem == null)
        return false;

    var objP = objItem.parentElement;

    if (objP == null) {
        if ($IE) {
            objItem.outerHTML = '';
            return true;
        }

        return false;
    }

    objP.removeChild(objItem);

    return EvalFunction(GetCtrlId(objP) + "AfterRemove", "", true);
}


function OnFCAMutiItemRemoveItemByIdAndSpan(tagName) {
    return OnFCAMutiItemRemoveItemAndSpan(this, tagName);
}

function GetCtrlParentElementByTagName(objThis, tagName) {
    if (objThis == null)
        return null;

    if (IsNullOrEmptyAndBlank(tagName))
        return null;

    tagName = tagName.trim();

    var objItem = objThis.parentElement;

    if (objItem == null)
        return null;

    var bFlag = StringCompare(tagName, objItem.tagName, true, true);

    if (bFlag)
        return objItem;
    else
        return GetCtrlParentElementByTagName(objItem, tagName);
}

function OnFCAMutiItemRemoveItemAndSpan(objThis, tagName) {
    if (objThis == null)
        return false;

    var objItem = GetCtrlParentElementByTagName(objThis, tagName);

    if (objItem == null)
        return false;

    var objP = objItem.parentElement;

    if (objP == null) {
        if ($IE) {
            objItem.outerHTML = '';
            return true;
        }

        return false;
    }

    objP.removeChild(objItem);

    return EvalFunction(GetCtrlId(objP) + "AfterRemove", "", true);
}


function OnFCAMutiItemAddItem(spanId, txtId, TemplateText) {
    var objTxt = $(txtId);
    var objSpan = $(spanId);



    if (objTxt == null || objSpan == null)
        return false;

    var iCurIdx = $VNum(txtId, 1);
    iCurIdx = iCurIdx + 1;
    objTxt.value = iCurIdx;

    var objTemplateText = ReplaceString(TemplateText, "{$Idx}", iCurIdx + "");

    // alert(objTemplateText);

    // AddCtrl(objSpan,objTemplateText);

    objSpan.insertAdjacentHTML("beforeEnd", objTemplateText);

    return EvalFunction(spanId + "AfterAdd", "", true);

}



// ######################################################################### 
// ####################### 动态多选事件END ############################## 
// ####################################################################### 


function OnChkItemOnlyOneSelectedChange(objParent, objPreId, objThis) {
    return OnChkItemOnlyOneSelectedChangeEvent(objParent, objPreId, objThis, true);
}

function OnChkItemOnlyOneSelectedChangeEventByPreId(objPreId, objThis, bIsDo) {

    return OnChkItemOnlyOneSelectedChangeEvent(GetCurForm(), objPreId, objThis, bIsDo);
}

function OnChkItemOnlyOneSelectedChangeEvent(objParent, objPreId, objThis, bIsDo) {

    // alert('dd');
    if (!bIsDo)
        return true;

    if (objThis != null) {
        if (objThis.checked == false)
            return true;
    }

    if (objParent == null)
        return false;

    if (objParent.elements == null || objParent.elements.length == 0)
        return true;


    var i = 0;
    var bIsPreId = IsNotNullOrEmptyAndBlank(objPreId);

    for (i = 0; i < objParent.elements.length; ++i) {
        var e = objParent.elements[i];

        if (e == null)
            continue;

        if (!IsCheckbox(e))
            continue;

        if (!e.checked)
            continue;

        if (bIsPreId) {
            if (!IsContainsAll(GetCtrlId(e), objPreId, true))
                continue;
        }

        if (objThis == null)
            objThis = e;
        else if (objThis == e)
            continue;
        else
            e.checked = false;
    }

    return true;
}


function OnChkItemAllSelectedFlag(objParent, objPreId, bFlag) {
    return OnChkItemAllSelectedFlagEvent(objParent, objPreId, bFlag, true);
}


function OnChkItemAllSelectedFlagEvent(objParent, objPreId, bFlag, bIsDo) {
    if (!bIsDo)
        return true;

    if (objParent == null)
        return false;

    if (objParent.elements == null || objParent.elements.length == 0)
        return true;

    var i = 0;
    var bIsPreId = IsNotNullOrEmptyAndBlank(objPreId);

    for (i = 0; i < objParent.elements.length; ++i) {
        var e = objParent.elements[i];

        if (e == null)
            continue;

        if (!IsCheckbox(e))
            continue;

        if (bIsPreId) {
            if (!IsContainsAll(GetCtrlId(e), objPreId, true))
                continue;
        }

        e.checked = bFlag;
    }

    return true;
}



function IsCheckbox(e) {
    if (e == null)
        return false;

    return StringCompare(e.type, "checkbox", true, true);
}

function IsRadio(e) {
    if (e == null)
        return false;

    return StringCompare(e.type, "radio", true, true);
}

function SetCtrlVisibleByParent(objParent, ctrlShowId, ctrlHidId) {

    return SetCtrlVisibleByParentAndChar(objParent, ctrlShowId, ctrlHidId, "|");
}

function SetCtrlVisibleByParentAndChar(objParent, ctrlShowId, ctrlHidId, objChar) {

    if (objParent == null)
        return false;

    if (objParent.elements == null || objParent.elements.length == 0)
        return true;



    var bShow = IsNotNullOrEmptyAndBlank(ctrlShowId);
    var bHid = IsNotNullOrEmptyAndBlank(ctrlHidId);

    if (!bShow && !bHid)
        return true;

    var showArray = null;
    var hidArray = null;

    if (bShow)
        showArray = StringSplit(ctrlShowId, objChar);

    if (bHid)
        hidArray = StringSplit(ctrlHidId, objChar);

    var i = 0;


    for (i = 0; i < objParent.elements.length; ++i) {
        var e = objParent.elements[i];

        if (e == null)
            continue;

        SetItemCtrlDisplayByCtrlIdArray(e, showArray, hidArray);
    }

    return true;
}

function SetItemCtrlDisplayByCtrlIdArray(objItem, showArray, hidArray) {

    SetItemCtrlDisplayByCtrlIdArrayAndFlag(objItem, showArray, true);
    SetItemCtrlDisplayByCtrlIdArrayAndFlag(objItem, hidArray, false);
}

function SetItemCtrlDisplayByCtrlIdArrayAndFlag(objItem, theArray, bFlag) {

    if (objItem == null)
        return false;

    var i = 0;
    var objPreId = "";

    if (theArray != null) {
        var iLen = theArray.length;

        for (i = 0; i < iLen; ++i) {
            objPreId = theArray[i];

            if (IsNullOrEmptyAndBlank(objPreId))
                continue;

            if (IsContainsAll(GetCtrlId(objItem), objPreId, true)) {
                return SetCtrlDisplayByBoolean(objItem, bFlag);
            }
        }
    }

    return true;
}

function FormGetCur()
{
    return GetCurForm();
}

function GetCurForm() {
    return GetCurFormByDocument(document);
}

function FormGetCurByDocument(d) 
{
    return GetCurFormByDocument(d);
}

function GetCurFormByDocument(d) {
    if (d == null)
        return null;

    var vForms = d.forms;

    if (vForms == null || vForms.length == 0)
        return null;

    return vForms[0];
}


function GetMaxIdx(objParent, objPreId) {
    if (objParent == null)
        return 0;

    if (objParent.elements == null || objParent.elements.length == 0)
        return 0;

    var i = 0;
    var ctrlId = "";

    var iMaxIdx = 0;
    var iTmpIdx = 0;
    var ctrlIdx = "";
    var bIsPreId = IsNotNullOrEmptyAndBlank(objPreId);
    var iPreIdLen = 0;

    if (bIsPreId)
        iPreIdLen = objPreId.length;

    for (i = 0; i < objParent.elements.length; ++i) {
        var e = objParent.elements[i];

        if (e == null)
            continue;

        ctrlId = GetCtrlId(e);
        if (bIsPreId) {
            if (!IsContainsAll(ctrlId, objPreId, true))
                continue;

            ctrlIdx = StringGetStrByIndex(ctrlId, iPreIdLen);
        }
        else
            ctrlIdx = ctrlId;

        iTmpIdx = GetInt(ctrlIdx, 0);

        if (iMaxIdx < iTmpIdx)
            iMaxIdx = iTmpIdx;
    }

    return iMaxIdx;
}

function ArrayIdx(objParent, objPreId) {
    if (objParent == null)
        return null;

    if (objParent.elements == null || objParent.elements.length == 0)
        return null;

    var i = 0;
    var ctrlId = "";

    var arrayId = new Array();

    var iTmpIdx = -1;
    var ctrlIdx = "";
    var bIsPreId = IsNotNullOrEmptyAndBlank(objPreId);
    var iPreIdLen = 0;

    if (bIsPreId)
        iPreIdLen = objPreId.length;

    for (i = 0; i < objParent.elements.length; ++i) {
        var e = objParent.elements[i];

        if (e == null)
            continue;

        ctrlId = GetCtrlId(e);
        if (bIsPreId) {
            if (!IsContainsAll(ctrlId, objPreId, true))
                continue;

            ctrlIdx = StringGetStrByIndex(ctrlId, iPreIdLen);
        }
        else
            ctrlIdx = ctrlId;

        iTmpIdx = GetInt(ctrlIdx, -1);

        arrayId = IsAndAndArrayValue(arrayId, iTmpIdx);
    }

    return arrayId;
}

function CountIdx(objParent, objPreId) {
    var arrayId = ArrayIdx(objParent, objPreId);

    if (arrayId == null)
        return 0;

    var iRet = GetLength(arrayId);

    return iRet;
}

function IsArrayValue(arrayTmp, objValue) {
    if (arrayTmp == null || objValue == null)
        return false;

    var iLen = arrayTmp.length;
    var i = 0;

    for (i = 0; i < iLen; ++i) {
        if (arrayTmp[i] == objValue)
            return true;
    }

    return false;
}

function AddArrayValue(arrayTmp, objValue) {
    if (objValue == null)
        return arrayTmp;

    if (arrayTmp == null)
        arrayTmp = new Array();

    var objLen = GetLength(arrayTmp);

    arrayTmp[objLen] = objValue;

    return arrayTmp;
}

function IsAndAndArrayValue(arrayTmp, objValue) {
    var bFlag = IsArrayValue(arrayTmp, objValue);

    if (bFlag)
        return arrayTmp;

    return AddArrayValue(arrayTmp, objValue);
}


function ListControlChangeToSetLabelTextByAttribute(objId, objSetValueCtrl, AttributeName) {


    var thisCtrl = $(objId);
    var theLabel = $(objSetValueCtrl);

    if (thisCtrl == null || theLabel == null)
        return false;



    var theValue = GetListControlAttributeValue(objId, AttributeName);

    if (theValue == null)
        return false;

    var bFlag = OnSetValueByCtrl(theLabel, theValue);

    return bFlag;
}

function GetListControlAttributeValue(objId, AttributeName) {
    var thisCtrl = $(objId);

    if (thisCtrl == null)
        return null

    if (IsSelect(thisCtrl)) {
        var theListItem = GetListControlSelectedOption(thisCtrl);

        if (theListItem == null)
            return null;

        return EvalAttributeValue(theListItem, AttributeName);
    }
    else {
        return GetRadioButtunListAttributeBySelected(AttributeName, objId + "_");
    }

}

function IsNullOrUndefined(obj)
{
    if(obj == null || obj == undefined)
        return true;
    else
        return false;        
}

function IsNotNullOrUndefined(obj)
{
    !IsNullOrUndefined(obj);
}

function GetQ(obj)
{
    if(IsNullOrUndefined(obj))
        return "";
    
    var objValue = obj + "";
    
    var objRet = StringReplace(objValue,'"',STR_HTML_QUOT);
    
    return objRet;
}

function GetA(obj)
{
    if(IsNullOrUndefined(obj))
        return "";
    
    var objValue = obj + "";
    
    var objRet = StringReplace(objValue,"'",STR_HTML_ACUTE);
    
    return objRet;
}

//
// 通过AttributeName获得AttributeValue
// 
function EvalAttributeValue(thisCtrl, AttributeName) {
    if (thisCtrl == null)
        return null;

    var ret = null;

    eval(" ret = thisCtrl." + AttributeName + "; ");


    return ret;

}

function EvalSetAttributeValue(thisCtrl, AttributeName, AttributeValue) {
    if (thisCtrl == null)
        return false;

    eval(" thisCtrl." + AttributeName + "= AttributeValue; ");

    return true;
}


//
// thisCtrl.type 是否等于 typeName
// 
function IsCtrlType(thisCtrl,typeName)
{
    if(typeName == null || typeName == "")
        return true;
        
    return IsTypeName(thisCtrl,typeName); 
}


//
// thisCtrl.tagName 是否等于 tagName
// 
function IsCtrlTag(thisCtrl,tagName)
{
    if(tagName == null || tagName == "")
        return true;
        
    return IsTagName(thisCtrl,tagName); 
}



//
// thisCtrl.tagName 是否等于 tagName
// 
function IsTagName(thisCtrl, tagName) {
    if (thisCtrl == null)
        return false;

    return StringCompare(thisCtrl.tagName, tagName, true, true);
}

//
// thisCtrl.type 是否等于 typeName
// 
function IsTypeName(thisCtrl, typeName) {
    if (thisCtrl == null)
        return false;

    return StringCompare(thisCtrl.type, typeName, true, true);
}

// 是否表格
function IsTable(thisCtrl) {
    return IsTagName(thisCtrl, "table");
}

// 是否span
function IsSpan(thisCtrl) {
    return IsTagName(thisCtrl, "span");
}

// 是否div
function IsDiv(thisCtrl) {
    return IsTagName(thisCtrl, "div");
}

// 是否select
function IsSelect(thisCtrl) {
    return IsTagName(thisCtrl, "select");
}


//
// 随机种子的操作 
//
function GetRandomNum(iMaxValue) {
    var objValue = GetRandom() * iMaxValue;

    objValue = MathFloor(objValue);

    return objValue;
}

function GetRandom() {
    return Math.random();
}

function MathFloor(obj) {
    return Math.floor(obj);
}

// 获得窗体的鼠标手势
function GetCursor() {
    return GetCursorByDoc(document);
}

// 获得窗体的鼠标手势
function GetCursorByDoc(d) {
    if (d == null)
        return null;

    if (d.body == null || d.body.style == null)
        return null;

    var bValue = d.body.style.cursor;

    return bValue;
}

// 设置窗体的鼠标手势
function SetCursor(vValue) {
    return SetCursorByDoc(document, vValue);
}

// 设置窗体的鼠标手势
function SetCursorByDoc(d, vValue) {
    if (d == null || vValue == null)
        return false;

    if (d.body == null || d.body.style == null)
        return false;


    d.body.style.cursor = vValue;

    return true;
}



function OnSlowXTextBoxFocus(objThis, vColor, objText) {
    if (objThis == null)
        return false;

    if (objThis.value == objText) {
        objThis.value = "";

        if (vColor != null)
            SetStyleColor(objThis, vColor);
    }

    return true;
}

function SetStyleColor(thisCtrl, objColor) {
    if (thisCtrl == null)
        return false;

    if (thisCtrl.style == null)
        return false;

    if (objColor == null)
        objColor = "";

    thisCtrl.style.color = objColor;

    return true;
}


function GetStyleColor(thisCtrl) {
    if (thisCtrl == null)
        return null;

    if (thisCtrl.style == null)
        return null;

    var obj = thisCtrl.style.color;

    return obj;
}


function OnSlowXTextBoxBlur(objThis, vColor, objText) {
    if (objThis == null)
        return false;

    if (objText == "")
        return true;

    if (objThis.value == objText) {
        if (vColor != null)
            SetStyleColor(objThis, vColor);
    }
    else if (objThis.value == "") {
        objThis.value = objText;

        if (vColor != null)
            SetStyleColor(objThis, vColor);
    }

    return true;

}

//

function DoTreeViewSearch(containsId, ctrlId, ctrlText, toClassName, clearClassName, isClick) {
    var ctrl = $(ctrlId);

    var theCtrlText = $(ctrlText);

    if (theCtrlText == null)
        return false;

    var searchText = GetCtrlValueTrim(theCtrlText, "");

    if (searchText == "") {
        if (isClick) {
            MyAlert("请输入查询关键词！", theCtrlText);
            return false;
        }

        return false;
    }

    if (!TreeViewClearSearch(containsId, ctrl, toClassName, clearClassName)) {
        // alert('dd');
        return false;
    }

    if (!TreeViewSearch(containsId, ctrl, searchText, toClassName)) {
        // alert('ee');
        return false;
    }

    return false;

}

function TreeViewSearch(containsId, ctrl, searchText, toClassName) {
    if (ctrl == null)
        return false;

    var tbArray = ctrl.getElementsByTagName("a");

    if (tbArray == null)
        return false;

    var iLen = tbArray.length;
    var i = 0;
    var ctrlItem = null;

    for (i = 0; i < iLen; ++i) {
        ctrlItem = tbArray[i];

        if (ctrlItem == null)
            continue;

        if (ctrlItem.id == null || ctrlItem.id == undefined)
            continue;

        if (containsId != null) {
            if (!StringContainsIgnoreCase(ctrlItem.id, containsId, true))
                continue;
        }

        if (searchText != null) {
            if (!StringContainsIgnoreCase(ctrlItem.innerHTML, searchText, true, true))
                continue;
        }

        ctrlItem.className = toClassName;
        // ctrlItem.innerHTML = "<font color='red'>" + ctrlItem.innerHTML + "</font>";
    }

    return true;
}

function TreeViewClearSearch(containsId, ctrl, className, toClassName) {
    if (ctrl == null)
        return false;

    var tbArray = ctrl.getElementsByTagName("a");

    if (tbArray == null)
        return false;

    var iLen = tbArray.length;
    var i = 0;
    var ctrlItem = null;

    for (i = 0; i < iLen; ++i) {
        ctrlItem = tbArray[i];

        if (ctrlItem == null)
            continue;

        if (ctrlItem.id == null || ctrlItem.id == undefined)
            continue;

        if (containsId != null) {
            if (!StringContainsIgnoreCase(ctrlItem.id, containsId, true))
                continue;
        }

        if (className != null) {
            if (!StringCompare(ctrlItem.className, className, true, true))
                continue;
        }

        ctrlItem.className = toClassName;

    }

    return true;
}

// 统计上传附件的个数 //
function CountUploadFile(objThis) {
    var retArray = FileCtrlGetElementsByInputType(objThis);

    if (retArray == null)
        return 0;

    var iLen = retArray.length;
    var i = 0;
    var iCount = 0;
    var ctrl = null;

    for (i = 0; i < iLen; ++i) {
        ctrl = retArray[i];
        if (ctrl == null)
            continue;

        if (IsNullOrEmptyAndBlank(ctrl.value))
            continue;

        ++iCount;
    }

    return iCount;

}

function CheckUploadFile(objThis, objExtensionCompare, linkChar) {
    return CheckUploadFileByDefault(objThis, objExtensionCompare, linkChar, true);
}

function CheckUploadFileByDefault(objThis, objExtensionCompare, linkChar, oDefault) {
    var retArray = FileCtrlGetElementsByInputType(objThis);

    if (retArray == null)
        return oDefault;

    var iLen = retArray.length;
    var i = 0;
    var iCount = 0;
    var ctrl = null;

    for (i = 0; i < iLen; ++i) {
        ctrl = retArray[i];
        if (ctrl == null)
            continue;

        if (IsNullOrEmptyAndBlank(ctrl.value))
            continue;

        ++iCount;
        if (ExtensionNotCompare(ctrl.value, objExtensionCompare, linkChar))
            return false;
    }

    if (iCount == 0)
        return oDefault;
    else
        return true;
}

function CtrlMathValueByCtrlId(ctrlId, theValue) {
    return CtrlMathValue($(ctrlId), theValue);
}

function CtrlMathValue(ctrl, theValue) {
    if (ctrl == null)
        return false;

    var tmpValue = CtrlGetCtrlValueByCtrlIdAndCtrlType(ctrl.id, "");

    tmpValue = GetFloat(tmpValue, 0) + theValue;

    return CtrlSetValue(ctrl, tmpValue);
}


function Back() {
    return WindowBack();
}

function WindowBack() {
    return WindowGo(-1);
}

function WindowGo(iValue) {
    if (window == null || window.history == null)
        return false;

    window.history.go(iValue);

    return true;
}

// 
// Ajax 校验
//
function AjaxIsExit(ctrlId, ajaxName, className, columnName, compareValue, msgExit, msgNotExit) {
    
    var objName = $CtrlValue(ctrlId, "").trim();

    var objValue = null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(className ,columnName,objName),'');";

    eval(evalValue);

    if (msgExit == null)
        msgExit = "记录已存在！";

    if (msgNotExit == null)
        msgNotExit = "记录不存在！";

    if (objValue == compareValue) {
        MyAlertByCtrlId(msgNotExit, ctrlId);
    }
    else {
        MyAlertByCtrlId(msgExit, ctrlId);
    }

    return false;
}

// 通过控件获得显示顺序 //
function AjaxGetShowSeqByCtrl(ctrlId,ajaxName,className,strMaxColumnName,columnName,columnValueCtrlId)
{
    var objValue = $CtrlValue(columnValueCtrlId,"");

    return AjaxGetShowSeq(ctrlId,ajaxName,className,strMaxColumnName,columnName,objValue);
}

// 通过值获得显示顺序 //
function AjaxGetShowSeq(ctrlId,ajaxName,className,strMaxColumnName,columnName,columnValue)
{
    var ctrl = $(ctrlId);

    var objValue = null;

    // GetShowSeq(string strClassName, string strMaxColumnName,string strColumnName,string strColumnValue)
    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(className ,strMaxColumnName,columnName,columnValue),'');";

    eval(evalValue);

    if(ctrl != null)
        CtrlSetValue(ctrl,objValue);

    return objValue;
}
 
 
// 
function AjaxIsShowSeqByCtrl(isNewCtrlId,ctrlId,ajaxName,className,strMaxColumnName,columnName,columnValueCtrlId, msgTrue, msgFalse,isAlert)
{
    if (msgTrue == null)
        msgTrue = "显示顺序合理！"; 

    if (msgFalse == null)
        msgFalse = "请输入合理的显示顺序！";
        
    var objShowSeqValue = $CtrlValue(ctrlId,"").trim();

    if(objShowSeqValue == "0" || objShowSeqValue == "")
    {
        if(isAlert)
            MyAlertByBooleanAndCtrlId(ctrlId,false,msgTrue,msgFalse);
            
        return false;
    }

    var objValue = $CtrlValue(columnValueCtrlId,"");
    var theNewValue = $CtrlValue(isNewCtrlId,true);

    var isNew = IsDefaultNew(theNewValue);

    return AjaxIsShowSeq(isNew,ctrlId ,ajaxName,className,strMaxColumnName,columnName,objValue, msgTrue, msgFalse,isAlert);
}

//
function AjaxIsShowSeq(isNew,ctrlId,ajaxName,className,strMaxColumnName,columnName,columnValue, msgTrue, msgFalse,isAlert)
{
    if (msgTrue == null)
        msgTrue = "显示顺序合理！"; 

    if (msgFalse == null)
        msgFalse = "请输入合理的显示顺序！";
        
    var ctrl = $(ctrlId);
    
    var objShowSeqValue = $CtrlValue(ctrlId,"").trim();

    if(objShowSeqValue == "0" || objShowSeqValue == "")
    {
        if(isAlert)
            MyAlertByBooleanAndCtrlId(ctrlId,false,msgTrue,msgFalse);
            
        return false;
    }

    var objValue = null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(isNew,objShowSeqValue,className ,strMaxColumnName,columnName,columnValue),false);";

    eval(evalValue);

//    if(objValue == null || objValue == "")
//        return false;

    if(IsAjaxBreakIncludeEmpty(objValue,true))
        return false;


    if(isAlert)
        MyAlertByBooleanAndCtrlId(ctrlId,objValue,msgTrue,msgFalse);

    return objValue;
} 

function MyAlertByBooleanAndCtrlId(ctrlId,bflag,msgTrue,msgFalse)
{
    return MyAlertFocusByBooleanAndCtrlId(ctrlId,bflag,msgTrue,msgFalse,0);
}

// 是否Focus，0:false,1:true,2:all,3,none //
function MyAlertFocusByBooleanAndCtrlId(ctrlId,bflag,msgTrue,msgFalse,isFocus)
{
    var bFocus = false;

    if(isFocus == 2)
        bFocus = true;
    else if(isFocus == 3)
        bFocus = false;
    else if(isFocus == 0)
        bFocus = !bflag;
    else if(isFocus == 1)
        bFocus = bflag;
            

    if (bflag) {
        return MyAlertFocusByCtrlId(msgTrue, ctrlId,bFocus);
    }
    else {
        return MyAlertFocusByCtrlId(msgFalse, ctrlId,bFocus);
    }     
}


// 
function AjaxIsUniqueByCtrl(ajaxName,className,pkCtrlId,columnName,columnValueCtrlId,iWhereCondition,isStringCase,  strCompareName,  strCompareValueCtrlId, msgTrue, msgFalse,isAlert)
{
    if (msgTrue == null)
        msgTrue = "值唯一！"; 

    if (msgFalse == null)
        msgFalse = "值不唯一！";
        
       
        
    var pkId = $CtrlValue(pkCtrlId,"");       
    var compareValue = $CtrlValue(strCompareValueCtrlId,"");       
 
    return AjaxIsUnique(ajaxName,className,pkId,columnName,columnValueCtrlId,iWhereCondition,isStringCase,  strCompareName,  compareValue, msgTrue, msgFalse,isAlert);
}

//
function AjaxIsUnique(ajaxName,className,pkId,columnName,columnValueCtrlId,iWhereCondition,isStringCase,  strCompareName,  compareValue, msgTrue, msgFalse,isAlert)
{
    if (msgTrue == null)
        msgTrue = "值唯一！"; 

    if (msgFalse == null)
        msgFalse = "值不唯一！";
        
    var ctrl = $(columnValueCtrlId);
    
    
    
    if(ctrl == null)
    {
        // 控件为NULL，返回true //
        return true;
    }

    var columnValue = $CtrlValue(columnValueCtrlId,"").trim();

    var objValue = null;

    // public static bool IsUnique(string strClassName, string strId, string strColumnName, string strColumnValue, int iWhereCondition, bool isStringCase, string strCompareName, string strCompareValue)
    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(className,pkId,columnName ,columnValue,iWhereCondition,isStringCase,strCompareName,compareValue),false);";

    eval(evalValue);

//    if(objValue == null || objValue == "")
//        return true;

    if(IsAjaxBreakIncludeEmpty(objValue,true))
        return true;

    if(isAlert)
    {
        MyAlertByBooleanAndCtrlId(columnValueCtrlId,objValue,msgTrue,msgFalse);
    } 

    return objValue;
} 

// 
// 默认新增
// 
function IsDefaultNew(objValue)
{
    if(IsBooleanType(objValue))
        return objValue;
    else
    {
        if(IsNullOrEmptyAndBlank(objValue))
            return true;
        else
        {
            objValue = objValue.trim();
            
            if(objValue == "0")
                return true;
            else
                return false;                
        }            
    }             
}


//
// 默认不是新增
// 
function IsNotDefaultNew(objValue)
{
    return !IsDefaultNew(objValue);
}

function IsDefaultNewByCtrlId(ctrlId,defaultValue)
{
    var ctrl = $(ctrlId);
    
    if(ctrl == null)
        return defaultValue;
        
    var theValue = $CtrlValue(ctrlId,defaultValue);
    
    var bFlag = IsDefaultNew(theValue);      
    
    return bFlag;
}

function IsAjaxBreak(objValue)
{
    return IsAjaxBreakIncludeEmpty(objValue,true); 
}

function IsAjaxBreakIncludeEmpty(objValue,isEmpty)
{
    if(IsBooleanType(objValue))
        return false;
        
    if(objValue == null)
        return true;
        
    if(isEmpty)
    {
        if(IsNullOrEmpty(objValue))
            return true;
    }        

    return false;
}

function GetDefaultBoolean(objValue,ReturnDefaultValue)
{
    if(IsBooleanType(objValue))
        return objValue;

    if (objValue == null)
        return ReturnDefaultValue;

    var objTmp = GetLowerCase(objValue.trim());

    if (objTmp == "1" || objTmp == "true")
        return true;
    else if (objTmp == "0" || objTmp == "false")
        return false;
    else
        return ReturnDefaultValue;
}

function GetDefaultBooleanIntValue(objValue)
{
    var bFlag = GetDefaultBoolean(objValue,true);
    
    if(bFlag)
        return 1;
    else
        return 0;        
}

// 获得Boolean的String值，true,false 
function GetDefaultBooleanString(oValue)
{
    if(oValue == true)
        return "true";
    else if(oValue == "false")
        return "false";
    else 
        return "";                
}


// ######################################################################### 
// ############################## 键盘事件 ############################### 
// ####################################################################### 

//
// 获得 window.event
// 
function WindowEventGetValue()
{
    if(window == null || window.event == null)
        return null;    

    return window.event;        
}

// 清除默认系统的键盘事件 //
function WindowEventClear()
{
    var theEvent = WindowEventGetValue();

    return ClearEventByEvent(theEvent);      
}

// 清除默认系统的键盘事件 //
function WindowEventClearByEvent(theEvent)
{
    if(theEvent == null)
        return false;
        
    theEvent.returnValue = false;
    theEvent.cancel = true;            
    
    return true;
}

// 清除默认系统的键盘事件 //
function WindowEventIsCtrlEnter()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsCtrlEnterByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsCtrlEnterByEvent(theEvent)
{
    if(theEvent == null)
        return false;
        
    if(theEvent.ctrlKey)
	{
		if (theEvent.keyCode == 13)
		{
		    return true;
		}
    }       
    
    return false;
}

function WindowEventIsEnter()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsEnterByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsEnterByEvent(theEvent)
{
    if(theEvent == null)
        return false;

	if (theEvent.keyCode == 13)
	{
	    return true;
	} 

    return false;
}


function WindowEventIsOnlyEnter()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsOnlyEnterByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsOnlyEnterByEvent(theEvent)
{
    if(theEvent == null)
        return false;

	if (theEvent.keyCode == 13)
	{
	    if(WindowEventIsCtrlByEvent(theEvent) || WindowEventIsAltByEvent(theEvent) || WindowEventIsShiftByEvent(theEvent) )
	        return false;

	    return true;
	} 

    return false;
}

function WindowEventIsCtrl()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsCtrlByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsCtrlByEvent(theEvent)
{
    if(theEvent == null)
        return false;

	if (event.ctrlKey)
	{
	    return true;
	} 

    return false;
} 

function WindowEventIsShift()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsShiftByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsShiftByEvent(theEvent)
{
    if(theEvent == null)
        return false;

	if (event.shiftKey)
	{
	    return true;
	} 

    return false;
} 


function WindowEventIsAlt()
{
    var theEvent = WindowEventGetValue();

    return WindowEventIsAltByEvent(theEvent);                
}

// 清除默认系统的键盘事件 //
function WindowEventIsAltByEvent(theEvent)
{
    if(theEvent == null)
        return false;

	if (event.altKey )
	{
	    return true;
	} 

    return false;
} 

 
// ######################################################################### 
// ############################ 键盘事件END ##############################  
// ####################################################################### 


function FCAAdvSearch(clientFlagId, preId, fromId, ToId, bDefaultFlag, bChange)  
{
    var ctrlFlag = $(clientFlagId);
    
    if(ctrlFlag == null)
        return false;

    var bFlag = bDefaultFlag;
    
    if(ctrlFlag.value != "")
        bFlag = GetDefaultBoolean(ctrlFlag.value,bDefaultFlag);
        
    if(bChange)
        bFlag = !bFlag;

    ctrlFlag.value = GetDefaultBooleanIntValue(bFlag); 

    if(ToId == -1)
        return StyleDisplayChangeCtrlDisplayByPreIdAndStartIndexAndFlag(preId,fromId,bFlag);
    else
        return StyleDisplayChangeCtrlDisplayByPreIdAndRangeAndFlag(preId,fromId,ToId,bFlag);
}


function FCAUploadFileUrlToValue(clientFileUploadId,clientToId,theFlag,isFill)
{
    
    return FCAUploadFileUrlToValueByCtrl($(clientFileUploadId),$(clientToId),theFlag,isFill); 
}


function FCAUploadFileUrlToValueByCtrl(clientFileUploadId,clientToId,theFlag,isFill)
{
    // alert((clientFileUploadId == null));
    if(clientFileUploadId == null || clientToId == null)
        return false;

    var theValue = "";
            
    if(theFlag == 1)
    {
        theValue = GetUploadFileNameByCtrl(clientFileUploadId,isFill);           
    }   
    else
    {
        theValue = GetUploadFileExtensionByCtrl(clientFileUploadId,isFill);
    }         
    
    clientToId.value = theValue;
    
    return true;
}

function GetUploadFileName(clientFileUploadId,isFill)
{
    return GetUploadFileNameByCtrl($(clientFileUploadId),isFill);
}
 
 
function GetUploadFileNameByCtrl(clientFileUploadId,isFill)
{
    if(clientFileUploadId == null)
        return "";    
        
    var theValue = clientFileUploadId.value.trim();
    
    if(theValue == "")
        return "";
        
    theValue = StringReplace(theValue,"/","\\");

    var tmpValue = StringGetEndBySplitAndBooleanAndIsLastIndexOf(theValue,"\\",false,true);
    
    if(tmpValue == "")
        return "";
        
    if(isFill)
        return tmpValue;
        
    tmpValue = StringGetHeadBySplitAndBooleanAndIsLastIndexOf(tmpValue,".",true,true);
    
    return tmpValue;                
}
 
function GetUploadFileExtension(clientFileUploadId,isFill)
{
    return GetUploadFileExtensionByCtrl($(clientFileUploadId),isFill);
}
 
 
function GetUploadFileExtensionByCtrl(clientFileUploadId,isFill)
{
    if(clientFileUploadId == null)
        return "";    
        
    var theValue = clientFileUploadId.value.trim();
    
    if(theValue == "")
        return "";

    var tmpValue = StringGetEndBySplitAndBooleanAndIsLastIndexOf(theValue,".",false,true);

    if(tmpValue == "")
        return "";
        
    if(isFill)
        tmpValue = "." + tmpValue;

    return tmpValue;                
}

// 
function CtrlSetDisabledByCtrlId(ctrlId,bFlag)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetDisabled(ctrl,bFlag);
}

//   
function CtrlSetDisabled(ctrl,bFlag)
{
    if(ctrl == null)
        return false;
        
    ctrl.disabled = bFlag; 
    
    return true;
}

// 
// 设置控件的值    
// 
function CtrlSetValueByPreId(objValue,objPreId,ctrlType,objForm)
{
    if(objForm == null)
        objForm = FormGetCur();
        
    if(objForm == null || objForm.elements == null)
        return false;
        
    var iLen = objForm.elements.length;      
    var i = 1;

    for (i = 0; i < iLen; ++i) 
    {
        var e = objForm.elements[i];

        if(e == null)
            continue;
        
        if(!IsCtrlType(e,ctrlType))
            continue;

        if (!IsContainsAll(GetCtrlId(e), objPreId, true))
            continue;  
            
        CtrlSetValue(e,objValue);            
    }   
    
    return true;             
}  


// 
// 设置反选的功能
// 
function CtrlConvertDefaultCheckedByPreId(objPreId)
{
    return CtrlConvertCheckedByPreId(objPreId,null,null);
}

// 
// 设置反选的功能
// 
function CtrlConvertCheckedByPreId(objPreId,ctrlType,objForm)
{
    if(ctrlType == null || ctrlType == "")
        ctrlType = "checkbox";
        
    if(objForm == null)
        objForm = FormGetCur();
        
    if(objForm == null || objForm.elements == null)
        return false;
        
    var iLen = objForm.elements.length;      
    var i = 1;

    for (i = 0; i < iLen; ++i) 
    {
        var e = objForm.elements[i];

        if(e == null)
            continue;
        
        if(!IsCtrlType(e,ctrlType))
            continue;

        if (!IsContainsAllBySplit(GetCtrlId(e), objPreId, true,"|"))
            continue;  

        e.checked = !e.checked;
    }   
    
    return true;             
} 

// 
// 设置反选的功能
// 
function CtrlSetDefaultCheckedByPreId(objPreId,bFlag)
{

    return CtrlSetCheckedByPreId(objPreId,bFlag,null,null);
}

// 
// 设置反选的功能
// 
function CtrlSetCheckedByPreId(objPreId,bFlag,ctrlType,objForm)
{

    if(ctrlType == null || ctrlType == "")
        ctrlType = "checkbox";
        
    if(objForm == null)
        objForm = FormGetCur();
        
    if(objForm == null || objForm.elements == null)
        return false;
        
    var iLen = objForm.elements.length;      
    var i = 1;

    for (i = 0; i < iLen; ++i) 
    {
        var e = objForm.elements[i];

        if(e == null)
            continue;
        
        if(!IsCtrlType(e,ctrlType))
            continue;

        if (!IsContainsAllBySplit(GetCtrlId(e), objPreId, true,"|"))
            continue;  

        e.checked = bFlag; 
    }   
    
    return true;             
} 

