﻿
//
// JS 相关的方法 //
//

// ##########################################################################
// ####################### Debug相关的操作 ################################
// #########################################################################

// debug 的配置
var debug = ",1,";

var bDebugFlag = false;
var PreviewFormPostViewModel = 3;

var vGetAttributeFlag = 1;

var vDefaultCtrlId = "txt_Id";
var vDefaultCtrlPwd = "txt_Pwd";
var vDefaultCtrlConfirmPwd = "txt_ConfirmPwd";

var emSelectDefault = "1";
var emSelectYes = "2";
var emSelectNo = "3";


var VArray = new Array();
var VCheckItemClassArray = 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] = "星期六";

function GetAttributeDefaultValue(vCtrl, AttributeName)
{
    return GetAttributeValue(vCtrl, AttributeName, undefined);
} 

function GetAttributeValue(vCtrl, AttributeName, vDefault)
{
    return GetAttributeValueByFlag(vCtrl,AttributeName, vGetAttributeFlag, vDefault);
} 

function GetAttributeValueByFlag(vCtrl, AttributeName, vCurGetAttributeFlag, vDefault)
{
    var objTheValue = null;
    
    if(vCtrl == null)
        return vDefault;
        
    if(IsNullOrEmptyAndBlank(AttributeName))
        return vDefault; 

    if(vCurGetAttributeFlag == 0)
    {
        eval(" objTheValue = vCtrl." + AttributeName + ";");        
    }
    else
    {
        
        
        objTheValue = vCtrl.getAttribute(AttributeName);
        
        // alert(objTheValue);
    }

    return objTheValue;    
} 

function SetAttributeValue(vCtrl, AttributeName, AttributeValue) 
{
    if (vCtrl == null)
        return false;
        
    if(IsNullOrEmptyAndBlank(AttributeName))
        return false;       

    if(vCurGetAttributeFlag == 0)
    {
        eval(" vCtrl." + AttributeName + "= AttributeValue; "); 
    }
    else
    {
        vCtrl.setAttribute(AttributeName, AttributeValue);
    }

    return true;
}

   

// 非法文件名数组 //
var ErrorFileName = new Array("/", "\\", ":", ",", "*", "?", "\"", "<", ">", "|");

var PYAllowChar = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","_");

// URL打头的地址名
var UrlHead = new Array("http:", "https:", "mailto:", "ftp:", "gopher:", "news:", "telnet:", "rtsp:", "mms:", "callto:", "bctp:", "ed2k:", "tencent:");

// 是否有效的文件名 //
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();
    str = str.ltrim();
    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) 
{
    return CtrlCountGetElementsByInputType(objCtrl, typeName);
}

//
// 统计指定类型的input数组个数，如<input type="radio" ...>
// 
function CtrlCountGetElementsByInputType(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;
}

function CtrlGetCheckBoxLinkByCtrlId(objCtrlId,  linkChar, theFlag, preOneId, preTwoId)
{
    return CtrlGetLinkByCtrlId(objCtrlId,"checkbox",linkChar,theFlag,preOneId,preTwoId);
}

// 
// 获得Value的拼串
// 
function CtrlGetCheckBoxLink(objCtrl, linkChar, theFlag, preOneId, preTwoId)
{
    return CtrlGetLink(objCtrl,"checkbox",linkChar,theFlag,preOneId,preTwoId);    
}

function CtrlGetCheckBoxLinkByPreArray(objCtrl,   linkChar, theFlag, preArray)
{
    return CtrlGetLinkByPreArray(objCtrl, "checkbox", linkChar, theFlag, preArray)
}

function CtrlGetLinkByCtrlId(objCtrlId, typeName, linkChar, theFlag, preOneId, preTwoId)
{
    var ctrl = $(objCtrlId);
    
    return CtrlGetLink(ctrl,typeName,linkChar,theFlag,preOneId,preTwoId);     
}
// 
// 获得Value的拼串
// 
function CtrlGetLink(objCtrl, typeName, linkChar, theFlag, preOneId, preTwoId)
{
    // if(objCtrl == null)
    var preArray = new Array();
    var idx = 0;
    preArray[idx++] = preOneId;
    preArray[idx++] = preTwoId;
    
    return CtrlGetLinkByPreArray(objCtrl,typeName,linkChar,theFlag,preArray);
}

function CtrlGetLinkByPreArray(objCtrl, typeName, linkChar, theFlag, preArray)
{
    if(objCtrl == null)
        return "";
        
    if(typeName == null)
        typeName = "checkbox";
        
    if(linkChar == null)
        linkChar = ",";
        
    var ctrlArray = CtrlGetElementsByInputType(objCtrl,typeName);
    
    if(ctrlArray == null || ctrlArray.length == 0)
        return "";
        
    var vResult = "";
    
    var vItem = null;
    var iLen = ctrlArray.length;
   
    var preLen = 0;
    if(preArray != null) 
        preLen = preArray.length;
    
    var i = 0;
    var j = 0;
    var bFlag = true;
   
    for(i = 0; i < iLen; ++i)
    {
        vItem = ctrlArray[i];
        
        if(vItem == null)
            continue;
            
        for(j = 0; j < preLen; ++j)
        {
            if(preArray[j] == null || preArray[j] == "")
                continue;
                
            if(StringNotContainsIgnoreCase(vItem.id,preArray[j],true))                            
                break;
        }            
        
        if(j != preLen)
            continue;
            
        if(theFlag == null)
            vResult = StringAddChar(vResult,vItem.value,linkChar);
        else
        {
            bFlag = GetDefaultBoolean(theFlag,true);
            
            if(vItem.checked == bFlag)
                 vResult = StringAddChar(vResult,vItem.value,linkChar);           
        }            
            
    }
    
    return vResult;
}

function CtrlCountCheckBoxLinkByCtrlId(objCtrlId,   theFlag, preOneId, preTwoId)
{
    return CtrlCountLinkByCtrlId(objCtrlId,"checkbox",theFlag,preOneId,preTwoId);
}

// 
// 获得Value的拼串
// 
function CtrlCountCheckBoxLink(objCtrl,  theFlag, preOneId, preTwoId)
{
    return CtrlCountLink(objCtrl,"checkbox",theFlag,preOneId,preTwoId);    
}

function CtrlCountCheckBoxLinkByPreArray(objCtrl,    theFlag, preArray)
{
    return CtrlCountLinkByPreArray(objCtrl, "checkbox",  theFlag, preArray)
}

function CtrlCountLinkByCtrlId(objCtrlId, typeName,  theFlag, preOneId, preTwoId)
{
    var ctrl = $(objCtrlId);
    
    return CtrlCountLink(ctrl,typeName,theFlag,preOneId,preTwoId);     
}
// 
// 获得Value的拼串
// 
function CtrlCountLink(objCtrl, typeName,  theFlag, preOneId, preTwoId)
{
    // if(objCtrl == null)
    var preArray = new Array();
    var idx = 0;
    preArray[idx++] = preOneId;
    preArray[idx++] = preTwoId;
    
    return CtrlCountLinkByPreArray(objCtrl,typeName,theFlag,preArray);
}

function CtrlCountLinkByPreArray(objCtrl, typeName,  theFlag, preArray)
{
    if(objCtrl == null)
        return "";
        
    if(typeName == null)
        typeName = "checkbox";

    var ctrlArray = CtrlCountElementsByInputType(objCtrl,typeName);
    
    if(ctrlArray == null || ctrlArray.length == 0)
        return "";
        
    var vResult = 0;

    var vItem = null;
    var iLen = ctrlArray.length;
   
    var preLen = 0;
    if(preArray != null) 
        preLen = preArray.length;
    
    var i = 0;
    var j = 0;
    var bFlag = true;
   
    for(i = 0; i < iLen; ++i)
    {
        vItem = ctrlArray[i];
        
        if(vItem == null)
            continue;
            
        for(j = 0; j < preLen; ++j)
        {
            if(preArray[j] == null || preArray[j] == "")
                continue;
                
            if(StringNotContainsIgnoreCase(vItem.id,preArray[j],true))                            
                break;
        }            
        
        if(j != preLen)
            continue;
            
        if(theFlag == null)
            ++vResult;
        else
        {
            bFlag = GetDefaultBoolean(theFlag,true);
            
            if(vItem.checked == bFlag)
                 ++vResult;
        }            
            
    }
    
    return vResult;
}

// 通过控件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;
}

function $VRBL(objID,objDefault)
{
    if(objID == null || objID == "")
        return objDefault;
        
    return RadioButtonListGetValueByPreIdName(objID+"_");                
}

function $VStringBoolean(objId,objDefault)
{
    var ctrl = $(objId);
    
    if(ctrl == null)
        return objDefault;
        
    return BooleanToInt(ctrl.checked);        
}

function BooleanToInt(bFlag)
{
    if(bFlag)
        return 1;
    else
        return 0;        
}

function BooleanToString(bFlag)
{
    if(bFlag)
        return "true";
    else
        return "false";        
}

//
// 获得控件Value值
// 
function $Get(objId, objDefault) 
{
    return $CtrlValue(objId,objDefault);
}

function $GetNullOrEmptyAndBlankToDefault(objId, objDefault, isTrim) 
{
    var vValue = $Get(objId, objDefault);
    
    if(IsNullOrEmptyAndBlank(vValue))
        vValue = objDefault;
        
    if(isTrim)
        vValue = vValue.trim();
        
    return vValue; 
}

function $GetByCtrl(varCtrl, objDefault) 
{
    if(varCtrl == null)
        return objDefault;
        
    return $Get(varCtrl.id, objDefault);
}

//
// 设置控件Value值
// 
function $Set(obj, objValue)
{
    return CtrlSetValueByCtrlId(obj, objValue) 
}

function $SetByCtrl(obj, objValue)
{
    return CtrlSetValue(obj, 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);
}

// 通过控件获得控件值
function CtrlGetValue(ctrl, objDefault) 
{
    if(ctrl == null)
        return objDefault;
        
    return $CtrlValue(ctrl.id,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)) 
    {
        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 objReturnValue = null;
    
    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") 
            {
                objReturnValue = GetIntNumberClass(objValue, objDefault);

                return objReturnValue;
            }
            else if (objType == "float") 
            {
                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;
}

//// http://www.javaeye.com/topic/155981
//网页可见区域宽：document.body.clientWidth 
//网页可见区域高：document.body.clientHeight 
//网页可见区域宽：document.body.offsetWidth (包括边线的宽) 
//网页可见区域高：document.body.offsetHeight (包括边线的宽) 
//网页正文全文宽：document.body.scrollWidth 
//网页正文全文高：document.body.scrollHeight 
//网页被卷去的高：document.body.scrollTop 
//网页被卷去的左：document.body.scrollLeft 
//网页正文部分上：window.screenTop 
//网页正文部分左：window.screenLeft 
//屏幕分辨率的高：window.screen.height 
//屏幕分辨率的宽：window.screen.width 
//屏幕可用工作区高度：window.screen.availHeight 
//屏幕可用工作区宽度：window.screen.availWidth 


//HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth 
//scrollHeight: 获取对象的滚动高度。 
//scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 
//scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 
//scrollWidth:获取对象的滚动宽度 
//offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 
//offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 
//offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 
//event.clientX 相对文档的水平座标 
//event.clientY 相对文档的垂直座标 
//event.offsetX 相对容器的水平坐标 
//event.offsetY 相对容器的垂直坐标 
//document.documentElement.scrollTop 垂直方向滚动的值 
//event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量 

//IE，FireFox 差异如下： 

//IE6.0、FF1.06+： 

//clientWidth = width + padding 

//clientHeight = height + padding 

//offsetWidth = width + padding + border 

//offsetHeight = height + padding + border 

//IE5.0/5.5： 
//clientWidth = width - border 

//clientHeight = height - border 

//offsetWidth = width 

//offsetHeight = height 

//(需要提一下：CSS中的margin属性，与clientWidth、offsetWidth、clientHeight、offsetHeight均无关) 

//哎，原谅我的无知，我被里面这些个概念是搞的晕头转向，恳求高手能不能抽空就上面这些概念做个图文并茂的教程呢，比如啊：随便搞一张网页截图，然后在上面用符号标示各个概念 

//因为最近要做一个层的定位的程序，所以迫切需要知道这些概念的具体意义。 


function getOffsetTopItem(elm) 
{
    if(elm == null)
        return 0;
        
    var mOffsetTop = elm.offsetTop;
    
   
    // alert(mOffsetTop + " ~ " + elm.offsetHeight);
    
    return mOffsetTop;         
}


function getScrollTopItem(elm) 
{
    if(elm == null)
        return 0;
        
    var mOffsetTop = elm.scrollTop;
    
   
    // alert(mOffsetTop + " ~ " + elm.offsetHeight);
    
    return mOffsetTop;         
}

// 
// 获得控件的位置
// 获得控件的Top位置
// 
function getOffsetTop(elm) 
{
    if (elm == null)
        return 0;

    var mOffsetTop = elm.offsetTop;
    
    // alert(elm.id);
    // alert(mOffsetTop);
    
    var mOffsetParent = elm.offsetParent;

    while (mOffsetParent != null) 
    {
        // alert(mOffsetTop + " ~ " + mOffsetParent.id);
        
        mOffsetTop += mOffsetParent.offsetTop;
        mOffsetParent = mOffsetParent.offsetParent;
        
        if(mOffsetParent == null)
            break;
    }

    // alert("result = " + mOffsetTop);
    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 GetSrcElement()
{
    var obj = null;
    
    var vEvent = GetEvent();
    
    if(vEvent == null)
        return null;
        
    obj = vEvent.srcElement;
    
    if(obj == null)
        obj = vEvent.target;
        
    return obj;
}

function GetEvent()
{
    var vEvent = event;
    
    if(vEvent == null)
        vEvent = window.event;

    return vEvent;
} 

function ReturnEvent(vEvent)
{
    if(vEvent == null)
        vEvent = GetEvent();
        
    return vEvent;        
}

// 循环打印控件
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);
    }
}

function EvalGetVarValue(varName, oDefault)
{
    var bFlag = true;
    
    var vText = " bFlag = (typeof (" + varName + ") == 'undefined'); "; 
    var vValue = oDefault;
    
    eval(vText);
    
    if(bFlag)
        return oDefault;
    else
    {
        vText = "  vValue = " + varName + "; ";
        
        eval(vText);
        
        return vValue;
    }
}

// 获得PhyPath
function GetPhyPath() {

    //  
    if (typeof (objCommonPhyPath) == "undefined") {
        return "/SlowXWebSite";
    }
    else {
        return objCommonPhyPath;
    }
}

// 获得AdminPhyPath
function GetAdminPhyPath() 
{
    //  
    if (typeof (vCommonAdminPhyPath) == "undefined") 
    {
        return "/SlowXWebSite/App_Themes/manage";
    }
    else 
    {
        return vCommonAdminPhyPath;
    }
}
 
// 获得WebPhyPath
function GetWebPhyPath() {

    //  
    if (typeof (vCommonWebPhyPath) == "undefined") 
    {
        return "/SlowXWebSite/App_Themes/gx";
    }
    else 
    {
        return vCommonWebPhyPath;
    }
}

// 获得PhysicalApplicationPath
function GetPhysicalApplicationPath() {

    //  
    if (typeof (varPhysicalApplicationPath) == undefined
        || typeof (varPhysicalApplicationPath) == "undefined") 
    {
        return "";
    }
    else {
        return varPhysicalApplicationPath;
    }
}

function ToExpressionUrl(vUrl)
{
    if(IsNullOrEmptyAndBlank(vUrl))
        return "";
        
    var vResult = vUrl; 

    if(StringIsWith(vUrl,"~/",true))
       vResult = GetPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~/"),false); 
    else if(StringIsWith(vUrl,"~web/",true))
       vResult = GetWebPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~web/"),false); 
    else if(StringIsWith(vUrl,"~admin/",true))
       vResult = GetAdminPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~admin/"),false); 
       
    return vResult; 
}

function ToDefaultExpressionUrl(vUrl)
{
    if(IsNullOrEmptyAndBlank(vUrl))
        return "";
        
    var vResult = vUrl; 

    if(StringIsWith(vUrl,"~/",true))
       vResult = GetPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~/"),false); 
    else if(StringIsWith(vUrl,"~web/",true))
       vResult = GetWebPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~web/"),false); 
    else if(StringIsWith(vUrl,"~admin/",true))
       vResult = GetAdminPhyPath() + "/" + StringGetStrByIndex(vResult,GetLength("~admin/"),false); 
    else if(StringIsNotWith(vUrl,"/",true))
    {
        // 没有/，填充默认地址 //
        vResult = GetPhyPath() + "/" + vResult;
    }

    return vResult; 
}

function IsUrl(vUrl)
{
    if(IsNullOrEmptyAndBlank(vUrl))
        return false;
        
    var vtheArray = UrlHead;
    
    if(vtheArray == null)
        return true;
        
    var vLen = GetLength(vtheArray);  
                  
    var i = 0;
    
    for(i = 0; i < vLen; ++i)
    {   
        if(StringIsWithIgnoreCase(vUrl,vtheArray[i],true,true))
        {
            if(StringNotCompare(vUrl,vtheArray[i],true,true))
                return true;
        }
    }
    
    return false;
}

function ToFullExpressionUrl(vUrl)
{
    if(IsNullOrEmptyAndBlank(vUrl))
        return "";
        
    var vResult = vUrl.trim(); 
    
    if(IsUrl(vResult))
        return vResult; 

    vResult = ToDefaultExpressionUrl(vResult);
    
    return vResult;
}

// 获得没有图片的地址 //
function GetNoImage() {
    if (typeof (objCommonNoImage) == "undefined") {
        return GetPhyPath() + "/images/noimage/noimage.jpg";
    }
    else {
        return objCommonNoImage;
    }
}

// 获得错误图片的地址
function GetErrorImage()
{
    if (typeof (objCommonErrorImage) == "undefined") {
        return GetPhyPath() + "/images/noimage/errorimage.jpg";
    }
    else {
        return objCommonErrorImage;
    }
}

// 是否锁屏 //
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;
}

// 通过CheckBox 的 Id 和控件Id，设置控件的可见性 //
function StyleDisplayChangeByCheckBoxIdAndCtrlId(chkId,ctrlTrueId,ctrlFalseId)
{

    return StyleDisplayChangeByCheckBoxIdAndCtrlIdAndFlag(chkId,ctrlTrueId,ctrlFalseId, true); 
}

// 通过CheckBox和控件Id，设置控件的可见性 //
function StyleDisplayChangeByCheckBoxIdAndCtrlIdAndFlag(chkId,ctrlTrueId,ctrlFalseId, bFlag) 
{
    return StyleDisplayChangeByCheckBoxIdAndCtrlIdAndFlag($(chkId),ctrlTrueId,ctrlFalseId,bFlag);
}

// 通过CheckBox 的 Id 和控件Id，对比Flag值 设置控件的可见性 //
function StyleDisplayChangeByCheckBoxAndCtrlId(chk,ctrlTrueId,ctrlFalseId) 
{
    return StyleDisplayChangeByCheckBoxAndCtrlIdAndFlag(chk,ctrlTrueId,ctrlFalseId,true);
}

function StyleDisplayChangeByCheckBoxAndCtrlIdAndFlag(chk,ctrlTrueId,ctrlFalseId, bFlag) 
{
    if(chk == null)
        return false;
        
    return StyleDisplayChangeByBooleanAndCtrlIdAndFlag(chk.checked,ctrlTrueId,ctrlFalseId,bFlag);
}

function StyleDisplayChangeByBooleanAndCtrlId(bChecked,ctrlTrueId,ctrlFalseId) 
{
    return StyleDisplayChangeByBooleanAndCtrlIdAndFlag(bChecked,ctrlTrueId,ctrlFalseId,true);
}

function StyleDisplayChangeByBooleanAndCtrlIdAndFlag(bChecked,ctrlTrueId,ctrlFalseId, bFlag) 
{

    var bTmpFlag = GetDefaultBoolean(bFlag,false);
    
    var bFlagResult = (bTmpFlag == bChecked);

    StyleDisplayChangeByCtrlIdAndFlag(ctrlTrueId,bFlagResult);           
    StyleDisplayChangeByCtrlIdAndFlag(ctrlFalseId,!bFlagResult);
    
    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;
}

function StyleDisplaySetCtrlDisplayByCheckBoxId(objCtrl, chkId) 
{
    return StyleDisplaySetCtrlDisplayByCheckBox(objCtrl,$(chkId));
}


function StyleDisplaySetCtrlDisplayByCheckBox(objCtrl, chk) 
{
    if(chk == null)
        return false;
        
    return StyleDisplaySetCtrlDisplayByBoolean(objCtrl, chk.checked);        
}



// 更改控件的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 StringNotCompare(objOne, objTwo, isTrim, isLower) 
{
    return !StringCompare(objOne,objTwo,isTrim,isLower);
}

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) == "");
}

function IsNotNullOrEmpty(objValue) 
{
    return !IsNullOrEmpty(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);
}


function IsControl(objId)
{
    var ctrl = $(objId);
    
    if(ctrl == null)
        return false;
    else
        return true;        
}

function IsNotControl(objId)
{
    return !IsControl(objId);
}


// 把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) 
{
    return EvalFunctionByJudge(fnName,fullFn,bIsReturn,true);
}

function EvalFunctionByJudge(fnName, fullFn, bIsReturn,isJudge) 
{

    var fn = fullFn;

    if(isJudge)
    {
        if (typeof (fnName) != "function")
            return true;
    }

    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;

    // 判断 //
    var objTagName = GetLowerCase(obj.tagName);
    var objType = GetLowerCase(obj.type);

    if (GetType(obj) == "object") 
    {
        if (objType == "text"
            || objType == "hidden"
            || objType == "password"
            || objTagName == "select"
            || objTagName == "textarea"
            || objType == "button"
        ) 
        {
            obj.value = objValue;
        }
        else if (objType == "span"
            || objType == "div"
            || objTagName == "span"
            || objTagName == "div"
            || objTagName == "table"
            || objTagName == "tbody"
            || objTagName == "tr"
            || objTagName == "td"
            || objTagName == "th"            
            ) 
        {
            obj.innerHTML = objValue;
        }
        else if 
            (
                objType == "select"
                || objTagName == "select"
            ) 
        {
            ListControlSelectedByValue(obj, objValue); 
        }
        else if (objType == "checkbox"
            || objTagName == "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控件区域 ########################
// #########################################################################

//
// 通过 ListControl 的控件Id和AttributeName，设置另外一个控件的可见性 
// 
function ListControlSetCtrlStyleDisplayByAttributeNameAndCtrlId(ctrlId,AttributeName,displayCtrlId)
{
    return ListControlSetCtrlStyleDisplayByAttributeName($(ctrlId),AttributeName,displayCtrlId);
}

//
// 通过 ListControl 的控件和AttributeName，设置另外一个控件的可见性 
// 
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 的控件Id，设置另外一个控件的值 
// 
function ListControlSetCtrlValueByCtrlId(ctrlId,toCtrlId)
{
    return ListControlSetCtrlValueByCtrlIdAndIsValue(ctrlId,toCtrlId,true);
}

//
// 通过 ListControl 的控件Id，设置另外一个控件的值 
// 
function ListControlSetCtrlValueByCtrlIdAndIsValue(ctrlId,toCtrlId,isValue)
{
    ListControlSetCtrlValueByCtrlIdAndIsValue(ctrlId,toCtrlId,isValue,false);
}

//
// 通过 ListControl 的控件Id，设置另外一个控件的值 
// 
function ListControlSetCtrlValueByCtrlIdAndIsValueAndValueAttribute(ctrlId,toCtrlId,isValue,valueIsNoEmpty)
{

    var ctrl = $(ctrlId);
    var toCtrl = $(toCtrlId);
    
    if(ctrl == null || toCtrl == null)
        return false;
        
    var op = ListControlGetSelectedOption(ctrl);        
    
    if(op == null)
        return false;
        
    var oValue = ListControlGetOptionValueOrText(op,isValue); 
    var theValue = ListControlGetOptionValueOrText(op,true);        
    
    if(valueIsNoEmpty)
    {
        if(theValue == null || theValue == "")
            return true;
    }

    return CtrlSetValue(toCtrl,oValue);        
}

//
// 通过 isValue 获得 option 的 text
//
function ListControlGetOptionText(op)
{
    return ListControlGetOptionValueOrText(op,false);
}


//
// 通过 isValue 获得 option 的 value  
//
function ListControlGetOptionValue(op)
{
    return ListControlGetOptionValueOrText(op,true);
}

//
// 通过 isValue 获得 option 的 value 或 text
//
function ListControlGetOptionValueOrText(op,isValue)
{
    return ListControlGetOptionValueOrTextByDefault(op,isValue,null);
}

//
// 通过 isValue 获得 option 的 value 或 text
// 
function ListControlGetOptionValueOrTextByDefault(op,isValue,oDefault)
{
    if(op == null)
        return oDefault;
        
    if(isValue)
        return op.value;
    else
        return op.text;                
}

// 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];
}

// 
// 通过value获得option 
// 
function ListControlGetOptionByValue(objCtrl, objValue) 
{

    var idx = ListControlGetIndexByValue(objCtrl, objValue, 0);    
    
    return ListControlGetOptionByIdx(objCtrl, idx);
}

// 
// 通过value获得option 
// 
function ListControlGetOptionByText(objCtrl, objValue) 
{
    var idx = ListControlGetIndexByText(objCtrl, objValue, 0);    
    
    return ListControlGetOptionByIdx(objCtrl, idx);
}


function ListControlGetValueOrTextByIdx(objCtrl, objIndex, isValue, oDefault) 
{
    var op = ListControlGetOptionByIdx(objCtrl,objIndex);
    
    return ListControlGetOptionValueOrTextByDefault(op,isValue,oDefault);
}

//
// 获得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获得其对应的Index
// 
function ListControlGetIndexByText(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 (GetListControlTextBySelectedIndex(objCtrl, i, null) == objValue)
            return i;
    }

    return -1;
}

//
// 通过Value获得ListControl（select）的SelectedIndex
// 

// 下拉框 DropDownList //
// 通过Value设置Select
function ListControlSelectedByValue(objCtrl, objValue) {
    // 
    var objIndex = GetListControlIndexByValue(objCtrl, objValue, 0);
    if (objIndex == -1)
        return -1;
    else
        return SetListControlSelectedIndex(objCtrl, objIndex, -1);
}


function ListControlPowerExpressionOnChange(objCtrl, AttributeName, alertMsg)
{
    if(objCtrl == null)
        return false;
        
    if(IsNullOrEmptyAndBlank(AttributeName))
        return true;
        
    var AttributeValue = ListControlGetAttributeBySelectedAndIsUndefined(objCtrl,AttributeName,false);
    
    if(AttributeValue == null)
        return true;
        
    var vFlag = GetDefaultBoolean(AttributeValue,true);        
    
    if(!vFlag)
    {
        if(alertMsg == null)
            alertMsg = "您无权选择该节点！";
            
        if(alertMsg != "")
            alert(alertMsg);            
    }
    
    return vFlag;
}


// 
// 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);  
    }
    */
}

function ListControlGetTextByListControlId(lcFrom,lcTo,isCompareValue)
{
    return ListControlGetTextByListControl($(lcFrom),$(lcTo),isCompareValue);
}

function ListControlGetTextByListControl(lcFrom,lcTo,isCompareValue)
{
    if(lcFrom == null || lcTo == null)
        return null;
        
    var idx = ListControlGetSelectedIndex(lcFrom);
    
    if(idx == -1)
        return null;
        
    var opTo = ListControlGetOptionByIdx(lcTo,idx);
    
    if(opTo == null)
        return null;
        
    if(!isCompareValue)
        return ListControlGetOptionText(opTo);

    
    var oValue = ListControlGetOptionValue(opTo);  

    var opFrom = ListControlGetOptionByIdx(lcFrom,idx);

    if(opFrom == null)
        return null;

    var oFromValue = ListControlGetOptionValue(opFrom);

    if(oFromValue == oValue)
    {
        return ListControlGetOptionText(opTo);
    }      

    opTo = ListControlGetOptionByValue(opTo, oFromValue);

    if(opTo == null)
        return null;

    return ListControlGetOptionText(opTo);   
                   
}

//
// 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 + ";");

    var objTheValue = GetAttributeDefaultValue(op, AttributeName);

    if (objTheValue == undefined)
        return;

    OnSetValueByCtrl(toCtrl, objTheValue);
}

function ListControlGetAttributeBySelected(listCtrl, AttributeName)
{
    return ListControlGetAttributeBySelectedIsUndefined(listCtrl,AttributeName,true);
}

function ListControlGetAttributeBySelectedIsUndefined(listCtrl, AttributeName, IsUndefined)
{
    var idx = ListControlGetSelectedIndex(listCtrl);
     
    return ListControlGetAttributeByIndexAndIsUndefined(listCtrl,idx,AttributeName,IsUndefined);
}

function ListControlGetAttributeByValue(listCtrl, AttributeName, theValue)
{
    return ListControlGetAttributeByValueIsUndefined(listCtrl,AttributeName, theValue,true);
}

function ListControlGetAttributeByValueIsUndefined(listCtrl, AttributeName, theValue, IsUndefined)
{
    var idx = ListControlGetIndexByValue(listCtrl, theValue, 0);

    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 + ";");
    
    var objTheValue = GetAttributeDefaultValue(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 + ";");
    
    var objTheValue = GetAttributeDefaultValue(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的所有Values
// 
function CheckBoxListGetAllValues(preId)
{
    return CheckBoxListGetValuesByCheckFlag(preId,2,true);
}

//
// 获得CheckBoxList的默认的Values
// 
function CheckBoxListGetDefaultValues(preId)
{
    return CheckBoxListGetDefaultValuesByBoolean(preId, true);
}

//
// 获得CheckBoxList的Boolean值的Values
// 
function CheckBoxListGetDefaultValuesByBoolean(preId, bCheck)
{
    return CheckBoxListGetValuesByBoolean(preId, bCheck, false);
}

//
// 获得CheckBoxList的选中或不选中的Values
//
function CheckBoxListGetValuesByBoolean(preId, bCheck, isFull)
{
    var bFlag = 0;
    
    if(bCheck)
        bFlag = 1;
        
    return CheckBoxListGetValuesByCheckFlag(preId,bFlag,isFull);            
}

//
// 获得CheckBoxList的Values（这个代码有BUG{巫霜也解决不了}，要用巫霜，和添加ShowAttributes【google浏览器不支持】）
//
function CheckBoxListGetValuesByCheckFlag(preId, bCheck, isFull)
{
    var i = 0;
    var idx = 0;
    
    var arrayResult = new Array();

    while (true) 
    {
        var objCtrl = $(preId + i);

        if (objCtrl == null) 
        {
            break;
        }

        if(bCheck == 2)
        {
            arrayResult[idx] = GetCtrlParentValueOrText(objCtrl,true,"");
            ++idx;
        } 
        else 
        {
            var bFlag = (bCheck == 1);
            if(objCtrl.checked == bFlag)
            {
                arrayResult[idx] = GetCtrlParentValueOrText(objCtrl,true,"");
                ++idx;
            } 
            else
            {
                if(isFull)
                {
                    arrayResult[idx] = "";
                    ++idx;
                }    
            }                
        } 

        ++i;
    }

    return arrayResult;
}

function GetCtrlParentValueOrText(objCtrl,isValue,objDefault)
{
    if(objCtrl == null)
        return objDefault;
        
//    var columnName = "TheName";

//    if(isValue)
//        columnName = "Id";

    var columnName = "SlowXTheName";

    if(isValue)
        columnName = "SlowXID";

    var oValue = EvalAttributeValue(objCtrl.parentElement, columnName); 

    return oValue;
}

function CheckBoxListSetAllSelected(preId, bFlag)
{
    var i = 0;

    while (true) 
    {
        var objCtrl = $(preId + i);

        if (objCtrl == null) 
            break;

        objCtrl.checked = bFlag;

        ++i;
    }

    return true;  
}

function CheckBoxListSelectedByArray(preId, rArray, bFlag)
{
    if(preId == null || preId == "")
        return false;

    CheckBoxListSetAllSelected(preId,!bFlag);  

    if(rArray == null)
        return true;
        
    var iLen = rArray.length;
    
    if(iLen == 0)
        return true;
        
       

    var i = 0;
    var j = 0; 

    while (true) 
    {
        var objCtrl = $(preId + i);

        if (objCtrl == null) 
        {
            break;
        }

        for(j = 0; j < iLen; ++j)
        {
            if(rArray[j] == i)
            {
                objCtrl.checked = bFlag;
                break;
            }
        }
         

        ++i;
    }

    return true;    
}

//
// 获得CheckBoxList的所有Values
// 
function CheckBoxListGetAllValuesByListControl(preId,listCtrlId)
{
    return CheckBoxListGetValuesByCheckFlagByListControl(preId,2,true,listCtrlId);
}

//
// 获得CheckBoxList的默认的Values
// 
function CheckBoxListGetDefaultValuesByListControl(preId,listCtrlId)
{
    return CheckBoxListGetDefaultValuesByBooleanByListControl(preId, true,listCtrlId);
}

//
// 获得CheckBoxList的Boolean值的Values
// 
function CheckBoxListGetDefaultValuesByBooleanByListControl(preId, bCheck,listCtrlId)
{
    return CheckBoxListGetValuesByBooleanByListControl(preId, bCheck, false,listCtrlId);
}

//
// 获得CheckBoxList的选中或不选中的Values
//
function CheckBoxListGetValuesByBooleanByListControl(preId, bCheck, isFull,listCtrlId)
{
    var bFlag = 0;
    
    if(bCheck)
        bFlag = 1;
        
    return CheckBoxListGetValuesByCheckFlagByListControl(preId,bFlag,isFull,listCtrlId);            
}

//
// 获得CheckBoxList的Values
//
function CheckBoxListGetValuesByCheckFlagByListControl(preId, bCheck, isFull,listCtrlId)
{
    var i = 0;
    var idx = 0;
    
    var listCtrl = $(listCtrlId);
    
    if(listCtrl == null)
        return null;
    
    var arrayResult = new Array();

    while (true) 
    {
        var objCtrl = $(preId + i);

        if (objCtrl == null) 
        {
            break;
        }

        if(bCheck == 2)
        {
            arrayResult[idx] = ListControlGetValueOrTextByIdx(listCtrl,i,true,"");
            ++idx;
        } 
        else 
        {
            var bFlag = (bCheck == 1);
            if(objCtrl.checked == bFlag)
            {
                arrayResult[idx] = ListControlGetValueOrTextByIdx(listCtrl,i,true,"");
                ++idx;
            } 
            else
            {
                if(isFull)
                {
                    arrayResult[idx] = "";
                    ++idx;
                }    
            }                
        } 

        ++i;
    }

    return arrayResult;
}

// 通过 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;
}


function GetCheckBoxListLinkValuesByPreIdName(preId, addChar, bCheck, fillHeadEnd)
{
    return GetCheckBoxListLinkValuesOrTextsByPreIdName(preId, true, addChar, bCheck, fillHeadEnd);
}

function GetCheckBoxListLinkTextsByPreIdName(preId, addChar, bCheck, fillHeadEnd)
{
    return GetCheckBoxListLinkValuesOrTextsByPreIdName(preId, false, addChar, bCheck, fillHeadEnd);
}

function GetCheckBoxListLinkValuesOrTextsByPreIdName(preId, isValue, addChar, bCheck, fillHeadEnd)
{
 
    var i = 0;
    var vReturn = "";
    var vTmp = "";
    var oItem = null;
    
    if(addChar == null)
    {
        if(isValue)
            addChar = ",";
        else
            addChar = "/";      
    }

    while (true) 
    {
        oItem = $(preId + i);
        ++i;

        if (oItem == null) 
            break;

        if (oItem.checked != bCheck) 
            continue;

        vTmp = GetCheckBoxListItemValueOrText(oItem, isValue, null);

        if(vTmp == null)
            continue;
            
        if(vReturn == "")
            vReturn = vTmp;
        else
            vReturn = vReturn + addChar + vTmp;                                   
    }
    
    if(fillHeadEnd)
    {
        if(vReturn != "")
            vReturn = addChar + vReturn + addChar;
    }

    return vReturn;    
    
}
 
function GetCheckBoxListItemValue(oItem, oDefault)
{
    return GetCheckBoxListItemValueOrText(oItem, true, oDefault);    
}

function GetCheckBoxListItemText(oItem, oDefault) 
{
    return GetCheckBoxListItemValueOrText(oItem, false, oDefault);    
}


function GetCheckBoxListItemValueOrText(oItem, isValue, oDefault) 
{
    if(oItem == null)
        return oDefault;

    var oParent = GetParentElement(oItem); 
    
    if(oParent == null)
        return oDefault; 

    var vAttributeName = GetCheckBoxListItemValueOrTextAttributeName(isValue);

    return GetAttributeValue(oParent, vAttributeName, oDefault);
}

function GetCheckBoxListItemValueOrTextAttributeName(isValue) 
{
    if(isValue)            
        return "SlowXId";
    else
        return "SlowXTheName";         
}


function GetCheckBoxListItemAttribute(oItem, vAttributeName, oDefault) 
{
    if(oItem == null)
        return oDefault;

    var oParent = GetParentElement(oItem); 
    
    if(oParent == null)
        return oDefault; 

    return GetAttributeValue(oParent, vAttributeName, oDefault);

}


function GetCheckBoxListLinkAttributesByPreIdName(preId, vAttributeName, addChar, bCheck, fillHeadEnd)
{
    var i = 0;
    var vReturn = "";
    var vTmp = "";
    var oItem = null;
    
    if(addChar == null)
    {
        addChar = ",";
    }

    while (true) 
    {
        oItem = $(preId + i);
        ++i;

        if (oItem == null) 
            break;

        if (oItem.checked != bCheck) 
            continue;

        vTmp = GetCheckBoxListItemAttribute(oItem, vAttributeName, null);

        if(vTmp == null)
            continue;
            
        if(vReturn == "")
            vReturn = vTmp;
        else
            vReturn = vReturn + addChar + vTmp;                                   
    }
    
    if(fillHeadEnd)
    {
        if(vReturn != "")
            vReturn = addChar + vReturn + addChar;
    }

    return vReturn;    

}


// ############################################### //
// ##### 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)
    {
        var objResult = GetAttributeDefaultValue(objItem, AttributeName);
        // eval(" objResult = objItem." + AttributeName + "; ");
    }

    return objResult;

}

//
// 通过ID获得radiobuttonlist的Value
// 
function GetRadioButtunListValueByPreIdName(objTheID) 
{
    return RadioButtunListGetValueByPreIdName(objTheID);
}

//
// 通过ID获得radiobuttonlist的Value
// 
function RadioButtunListGetValueByPreIdName(objTheID) 
{
    return RadioButtonListGetValueByPreIdName(objTheID);
}

//
// 通过ID获得RadioButtonList的Value
// 
function RadioButtonListGetValueByPreIdName(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) 
{
    return RadioButtonListGetIdxByPreIdName(objTheID);
}

function RadioButtonListGetIdxByPreIdName(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) 
{
    return RadioButtonListSetIdxByPreIdNameAndValue(objTheID,objValue);
}

function RadioButtonListSetIdxByPreIdNameAndValue(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;

//300 400
//500 700

//500 667
//525 700

//0.6
//0.57

//300 420
//285 399

        var rate1 = w / width;  // 宽 //
        var rate2 = h / height; // 高 //
        
        var smallRate = rate1;
        
        if(rate2 < smallRate)
            smallRate = rate2;
            
        val.width = val.width * smallRate;          
        val.height = val.height * smallRate;

    }

    return true;
        
    /*
    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 GetPhoneHead(val)
{
    if(IsNullOrEmptyAndBlank(val))
        return "";
        
    val = val.trim();
            
    var idx = StringIndexOf(val," ");

    if(idx != -1)
    {
        if(idx <= 4)
            return val.substr(0, idx);
    }
    
    idx = StringIndexOf(val,"-");
    
    if(idx != -1)
    {
        if(idx <= 4)
            return val.substr(0, idx);
    }

    return "";
}

function GetPhoneMain(val)
{
    if(IsNullOrEmptyAndBlank(val))
        return "";
        
    val = val.trim();
            
    var idx = StringIndexOf(val," ");
    
    if(idx != -1)
    {
        if(idx <= 4)
            return val.substr(idx+1);
    }
    
    idx = StringIndexOf(val,"-");
    
    if(idx != -1)
    {
        if(idx <= 4)
            return val.substr(idx+1);
    }

    return val;
}

function GetPhoneMainMain(val)
{
    if(IsNullOrEmptyAndBlank(val))
        return "";
        
    val = val.trim();
            
    var idx = StringIndexOf(val," ");
    
    if(idx != -1)
    {
        return val.substr(0, idx);
    }
    
    idx = StringIndexOf(val,"-");
    
    if(idx != -1)
    {
        return val.substr(0, idx);
    }

    return val;
}

function GetPhoneFenJi(val)
{

    if(IsNullOrEmptyAndBlank(val))
        return "";
        
    val = val.trim();
            
    var idx = StringLastIndexOf(val," ");
    
    if(idx != -1)
    {
        return val.substr(idx+1);
    }

    idx = StringLastIndexOf(val,"-");
    
    if(idx != -1)
    {
        return val.substr(idx+1);
    }

    return "";
}

function IsValidPhoneByDefault(val, vIsDefault) 
{
    if (val == null)
        return false;
        
    if(IsNullOrEmptyAndBlank(val))
        return false;        

    val = val.trim(); 

    if (val.length > 20)
        return false;

    if (val.indexOf("+") == 0)
        val = val.substring(1);
        
    var iLen = 0;   
    var iHeadLen = 0;
    var iFenJiLen = 0;
         
    var vHead = ""; // GetPhoneHead(val);  
    var vMain = ""; // GetPhoneMain(val);
    var vFenJi = ""; // GetPhoneFenJi(vMain); 
    
    if(vIsDefault)
    {
        vHead = GetPhoneHead(val);  
        vMain = GetPhoneMain(val);
        vFenJi = GetPhoneFenJi(vMain); 
        vMain = GetPhoneMainMain(vMain);

        // alert(vHead + " ~ " + vMain + " ~ " + vFenJi);
    }

    val = val.split(" ").join("");

    val = val.split("-").join("");

    if(vIsDefault)
    {
        
        // 不考虑分机
        // 考虑 02038488373 315 情况
        if(vHead == "") // && vFenJi == "")
        {
            iLen = vMain.length;

            if (vMain.indexOf("0") == 0)
            {
                if(iLen < 10 || iLen >12)
                    return false;
            } 
            else
            {
                if(iLen < 7 || iLen > 8)
                    return false;
            }
        }
        else
        {

            if(vHead != "")
            {
                iHeadLen = vHead.length;  
                
                if(iHeadLen < 3 || iHeadLen > 4)
                    return false;
            }

            iLen = vMain.length;

            if(iLen < 7 || iLen > 8)
                return false;
        }            
    }
    
    return !isNaN(val);    
}

function IsValidPhone(val) 
{
    return IsValidPhoneByDefault(val,false);   
}

// 是否是联系电话或手机
function IsValidLxTel(val,vIsDefault)
{
    var array = StringSplit(val,";");
    
    if(array == null)
        return false;
    
    var iLen = array.length;
        
    if(iLen == 0)
        return false;

    var i = 0;
    var vTmp = "";
    
    for(i = 0; i < iLen; ++i)
    {
        vTmp = array[i];

        if(IsNullOrEmptyAndBlank(vTmp))
            continue;
            
        // 先校验手机 //
        if(IsValidMobile(vTmp))
            continue;

        if(!IsValidPhoneByDefault(vTmp,vIsDefault))
            return false;                    
    }           

    return true;
}

// 是否是默认联系电话或手机
function IsValidDefaultLxTel(val)
{
    return IsValidLxTel(val,true);
}

// 是否是联系电话或手机
function IsValidCommonLxTel(val)
{
    return IsValidLxTel(val,false);
}


//
// 是否手机号码
// 
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 MyDefaultShowModalDialog(url)
{
    return MyShowModalDialog2(url,800,600,true);    
}

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();
        
        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) 
{
    return GetPYByConvert(str, false, "");
}

function GetPYByConvert(str, bConvert, ConvertChar)  
{
    str = GetTextNullToEmpty(str);

    var ret = '';
    var iLen = GetLength(str);

    for (var i = 0; i < iLen; ++i) {
        var ch = str.charAt(i);

        ret += CheckChByConvert(ch, bConvert, ConvertChar);
    }

    return ret;
}

// 获得首字母
function CheckCh(ch) 
{
    return CheckChByConvert(ch, false, "");         
}

// 获得首字母
function CheckChByConvert(ch, bConvert, ConvertChar) 
{
    ch = GetTextNullToEmpty(ch);

    if (ch == "")
        return "";

    var uni = ch.charCodeAt(0);

    var strChineseFirstPY = 'ydyqsxmwzssxjbymgcczqpssqbycdscdqldylybssjgyzzjjfkcclzdhwdwzjljpfyynwjjtmyhzwzhflzppqhgscyyynjqyxxgjhhsdsjnkktmomlcrxypsnqseccqzggllyjlmyzzsecykyyhqwjssggyxyzyjwwkdjhychmyxjtlxjyqbyxzldwrdjrwysrldzjpcbzjjbrcftleczstzfxxzhtrqhybdlyczssymmrfmyqzpwwjjyfcrwfdfzqpyddwyxkyjawjffxypsftzyhhyzyswcjyxsclcxxwzzxnbgnnxbxlzszsbsgpysyzdhmdzbqbzcwdzzyytzhbtsyybzgntnxqywqskbphhlxgybfmjebjhhgqtjcysxstkzhlyckglysmzxyalmeldccxgzyrjxsdltyzcqkcnnjwhjtzzcqljststbnxbtyxceqxgkwjyflzqlyhyxspsfxlmpbysxxxydjczylllsjxfhjxpjbtffyabyxbhzzbjyzlwlczggbtssmdtjzxpthyqtgljscqfzkjzjqnlzwlslhdzbwjncjzyzsqqycqyrzcjjwybrtwpyftwexcskdzctbzhyzzyyjxzcffzzmjyxxsdzzottbzlqwfckszsxfyrlnyjmbdthjxsqqccsbxyytsyfbxdztgbcnslcyzzpsazyzzscjcshzqydxlbpjllmqxtydzxsqjtzpxlcglqtzwjbhctsyjsfxyejjtlbgxsxjmyjqqpfzasyjntydjxkjcdjszcbartdclyjqmwnqnclllkbybzzsyhqqltwlccxtxllzntylnewyzyxczxxgrkrmtcndnjtsyyssdqdghsdbjghrwrqlybglxhlgtgxbqjdzpyjsjyjctmrnymgrzjczgjmzmgxmpryxkjnymsgmzjymkmfxmldtgfbhcjhkylpfmdxlqjjsmtqgzsjlqdldgjycalcmzcsdjllnxdjffffjczfmzffpfkhkgdpsxktacjdhhzddcrrcfqyjkqccwjdxhwjlyllzgcfcqdsmlzpbjjplsbcjggdckkdezsqcckjgcgkdjtjdlzycxklqscgjcltfpcqczgwpjdqyzjjbyjhsjdzwgfsjgzkqcczllpspkjgqjhzzljplgjgjjthjjyjzczmlzlyqbgjwmljkxzdznjqsyzmljlljkywxmkjlhskjgbmclyymkxjqlbmllkmdxxkwyxyslmlpsjqqjqxyxfjtjdxmxxllcxqbsyjbgwymbggbcyxpjygpepfgdjgbhbnsqjyzjkjkhxqfgqzkfhygkhdkllsdjqxpqykybnqsxqnszswhbsxwhxwbzzxdmnsjbsbkbbzklylxgwxdrwyqzmywsjqlcjxxjxkjeqxscyetlzhlyyysdzpaqyzcmtlshtzcfyzyxyljsdcjqagyslcqlyyyshmrqqkldxzscsssydycjysfsjbfrsszqsbxxpxjysdrckgjlgdkzjzbdktcsyqpyhstcldjdhmxmcgxyzhjddtmhltxzxylymohyjcltyfbqqxpfbdfhhtksqhzyywcnxxcrwhowgyjlegwdqcwgfjycsntmytolbygwqwesjpwnmlrydzsztxyqpzgcwxhngpyxshmyqjxztdppbfyhzhtjyfdzwkgkzbldntsxhqeegzzylzmmzyjzgxzxkhkstxnxxwylyapsthxdwhzympxagkydxbhnhxkdpjnmyhylpmgocslnzhkxxlpzzlbmlsfbhhgygyyggbhscyaqtywlxtzqcezydqdqmmhtkllszhlsjzwfyhqswscwlqazynytlsxthaznkzzszzlaxxzwwctgqqtddyztcchyqzflxpslzygpzsznglndqtbdlxgtctajdkywnsyzljhhzzcwnyyzywmhychhyxhjkzwsxhzyxlyskqyspslyzwmyppkbyglkzhtyxaxqsyshxasmchkdscrswjpwxsgzjlwwschsjhsqnhcsegndaqtbaalzzmsstdqjcjktscjaxplggxhhgxxzcxpdmmhldgtybysjmxhmrcpxxjzckzxshmlqxxtthxwzfkhcczdytcjyxqhlxdhypjqxylsyydzozjnyxqezysqyayxwypdgxddxsppyzndltwrhxydxzzjhtcxmczlhpyyyymhzllhnxmylllmdcppxhmxdkycyrdltxjchhzzxzlcclylnzshzjzzlnnrlwhyqsnjhxyntttkyjpychhyegkcttwlgqrlggtgtygyhpyhylqyqgcwyqkpyyyttttlhyhlltyttsplkyzxgzwgpydsszzdqxskcqnmjjzzbxyqmjrtffbtkhzkbxljjkdxjtlbwfzpptkqtztgpdgntpjyfalqmkgxbdclzfhzclllladpmxdjhlcclgyhdzfgyddgcyyfgydxkssebdhykdkdkhnaxxybpbyyhxzqgaffqyjxdmljcsqzllpchbsxgjyndybyqspzwjlzksddtactbxzdyzypjzqsjnkktknjdjgyypgtlfyqkasdntcyhblwdzhbbydwjrygkzyheyyfjmsdtyfzjjhgcxplxhldwxxjkytcyksssmtwcttqzlpbszdzwzxgzagyktywxlhlspbclloqmmzsslcmbjcszzkydczjgqqdsmcytzqqlwzqzxssfpttfqmddzdshdtdwfhtdyzjyqjqkypbdjyyxtljhdrqxxxhaydhrjlklytwhllrllrcxylbwsrszzsymkzzhhkyhxksmdsydycjpbzbsqlfcxxxnxkxwywsdzyqoggqmmyhcdzttfjyybgstttybykjdhkyxbelhtypjqnfxfdykzhqkzbyjtzbxhfdxkdaswtawajldyjsfhbldnntnqjtjnchxfjsrfwhzfmdryjyjwzpdjkzyjympcyznynxfbytfyfwygdbnzzzdnytxzemmqbsqehxfzmbmflzzsrxymjgsxwzjsprydjsjgxhjjgljjynzzjxhgxkymlpyyycxytwqzswhwlyrjlpxslsxmfswwklctnxnynpsjszhdzeptxmyywxyysywlxjqzqxzdcleeelmcpjpclwbxsqhfwwtffjtnqjhjqdxhwlbyznfjlalkyyjldxhhycstyywnrjyxywtrmdrqhwqcmfjdyzmhmyyxjwmyzqzxtlmrspwwchaqbxygzypxyyrrclmpymgksjszysrmyjsnxtplnbappypylxyyzkynldzyjzcznnlmzhharqmpgwqtzmxxmllhgdzxyhxkyxycjmffyyhjfsbssqlxxndycannmtcjcyprrnytyqnyymbmsxndlylysljrlxysxqmllyzlzjjjkyzzcsfbzxxmstbjgnxyzhlxnmcwscyzyfzlxbrnnnylbnrtgzqysatswryhyjzmzdhzgzdwybsscskxsyhytxxgcqgxzzshyxjscrhmkkbxczjyjymkqhzjfnbhmqhysnjnzybknqmclgqhwlznzswxkhljhyybqlbfcdsxdldspfzpskjyzwzxzddxjsmmegjscssmgclxxkyyylnypwwwgydkzjgggzggsycknjwnjpcxbjjtqtjwdsspjxzxnzxumelpxfsxtllxcljxjjljzxctpswxlydhlyqrwhsycsqyybyaywjjjqfwqcqqcjqgxaldbzzyjgkgxpltzyfxjltpadkyqhpmatlcpdckbmtxybhklenxdleegqdymsawhzmljtwygxlyqzljeeyybqqffnlyxrdsctgjgxyynkllyqkcctlhjlqmkkzgcyygllljdzgydhzwxpysjbzkdzgyzzhywyfqytyzszyezzlymhjjhtsmqwyzlkyywzcsrkqytltdxwctyjklwsqzwbdcqyncjsrszjlkcdcdtlzzzacqqzzddxyplxzbqjylzlllqddzqjyjyjzyxnyyynyjxkxdazwyrdljyyyrjlxlldyxjcywywnqcclddnyyynyckczhxxcclgzqjgkwppcqqjysbzzxyjsqpxjpzbsbdsfnsfpzxhdwztdwpptflzzbzdmyypqjrsdzsqzsqxbdgcpzswdwcsqzgmdhzxmwwfybpdgphtmjthzsmmbgzmbzjcfzwfzbbzmqcfmbdmcjxlgpnjbbxgyhyyjgptzgzmqbqtcgyxjxlwzkydpdymgcftpfxyztzxdzxtgkmtybbclbjaskytssqyymszxfjewlxllszbqjjjaklylxlycctsxmcwfkkkbsxlllljyxtyltjyytdpjhnhnnkbyqnfqyyzbyyessessgdyhfhwtcjbsdzztfdmxhcnjzymqwsryjdzjqpdqbbstjggfbkjbxtgqhngwjxjgdllthzhhyyyyyysxwtyyyccbdbpypzycczyjpzywcbdlfwzcwjdxxhyhlhwzzxjtczlcdpxujczzzlyxjjtxphfxwpywxzptdzzbdzcyhjhmlxbqxsbylrdtgjrrcttthytczwmxfytwwzcwjwxjywcskybzscctzqnhxnwxxkhkfhtswoccjybcmpzzykbnnzpbzhhzdlsyddytyfjpxyngfxbyqxcbhxcpsxtyzdmkysnxsxlhkmzxlyhdhkwhxxsskqyhhcjyxglhzxcsnhekdtgzxqypkdhextykcnymyyypkqyyykxzlthjqtbyqhxbmyhsqckwwyllhcyylnneqxqwmcfbdccmljggxdqktlxkgnqcdgzjwyjjlyhhqtttnwchmxcxwhwszjydjccdbqcdgdnyxzthcqrxcbhztqcbxwgqwyybxhmbymyqtyexmqkyaqyrgyzslfykkqhyssqyshjgjcnxkzycxsbxyxhyylstycxqthysmgscpmmgcccccmtztasmgqzjhklosqylswtmxsyqkdzljqqyplsycztcqqpbbqjzclpkhqzyyxxdtddtsjcxffllchqxmjlwcjcxtspycxndtjshjwxdqqjskxyamylsjhmlalykxcyydmnmdqmxmcznncybzkkyflmchcmlhxrcjjhsylnmtjzgzgywjxsrxcwjgjqhqzdqjdcjjzkjkgdzqgjjyjylxzxxcdqhhheytmhlfsbdjsyyshfystczqlpbdrfrztzykywhszyqkwdqzrkmsynbcrxqbjyfazpzzedzcjywbcjwhyjbqszywryszptdkzpfpbnztklqyhbbzpnpptyzzybqnydcpjmmcycqmcyfzzdcmnlfpbplngqjtbttnjzpzbbznjkljqylnbzqhksjznggqszzkyxshpzsnbcgzkddzqanzhjkdrtlzlswjljzlywtjndjzjhxyayncbgtzcssqmnjpjytyswxzfkwjqtkhtzplbhsnjzsyzbwzzzzlsylsbjhdwwqpslmmfbjdwaqyztcjtbnnwzxqxcdslqgdsdpdzhjtqqpswlyyjzlgyxyzlctcbjtktyczjtqkbsjlgmgzdmcsgpynjzyqyyknxrpwszxmtncszzyxybyhyzaxywqcjtllckjjtjhgdxdxyqyzzbywdlwqcglzgjgqrqzczssbcrpcskydznxjsqgxssjmydnstztpbdltkzwxqwqtzexnqczgwezkssbybrtssslccgbpszqszlccglllzxhzqthczmqgyzqznmcocszjmmzsqpjygqljyjppldxrgzyxccsxhshgtznlzwzkjcxtcfcjxlbmqbczzwpqdnhxljcthyzlgylnlszzpcxdscqqhjqksxzpbajyemsmjtzdxlcjyryynwjbngzztmjxltbslyrzpylsscnxphllhyllqqzqlxymrsycxzlmmczltzsdwtjjllnzggqxpfskygyghbfzpdkmwghcxmsgdxjmcjzdycabxjdlnbcdqygskydqtxdjjyxmszqazdzfslqxyjsjzylbtxxwxqqzbjzufbblylwdsljhxjyzjwtdjczfqzqzzdzsxzzqlzcdzfjhyspympqzmlpplffxjjnzzylsjeyqzfpfzksywjjjhrdjzzxtxxglghydxcskyswmmzcwybazbjkshfhjcxmhfqhyxxyzftsjyzfxyxpzlchmzmbxhzzsxyfymncwdabazlxktcshhxkxjjzjsthygxsxyyhhhjwxkzxssbzzwhhhcwtzzzpjxsnxqqjgzyzywllcwxzfxxyxyhxmkyyswsqmnlnaycyspmjkhwcqhylajjmzxhmmcnzhbhxclxtjpltxyjhdyylttxfszhyxxsjbjyayrsmxyplckduyhlxrlnllstyzyyqygyhhsccsmzctzqxkyqfpyyrpfflkquntszllzmwwtcqqyzwtllmlmpwmbzsstzrbpddtlqjjbxzcsrzqqygwcsxfwzlxccrszdzmcyggdzqsgtjswljmymmzyhfbjdgyxccpshxnzcsbsjyjgjmppwaffyfnxhyzxzylremzgzcyzsszdlljcsqfnxzkptxzgxjjgfmyyysnbtylbnlhpfzdcyfbmgqrrssszxysgtzrnydzzcdgpjafjfzknzblczszpsgcycjszlmlrszbzzldlsllysxsqzqlyxzlskkbrxbrbzcycxzzzeeyfgklzlyyhgzsgzlfjhgtgwkraajyzkzqtsshjjxdcyzuyjlzyrzdqqhgjzxsszbykjpbfrtjxllfqwjhylqtymblpzdxtzygbdhzzrbgxhwnjtjxlkscfsmwlsdqysjtxkzscfwjlbxftzlljzllqblsqmqqcgczfpbphzczjlpyyggdtgwdcfczqyyyqyssclxzsklzzzgffcqnwglhqyzjjczlqzzyjpjzzbpdccmhjgxdqdgdlzqmfgpsytsdyfwwdjzjysxyyczcyhzwpbykxrylybhkjksfxtzjmmckhlltnyymsyxyzpyjqycsycwmtjjkqyrhllqxpsgtlyycljscpxjyzfnmlrgjjtyzbxyzmsjyjhhfzqmsyxrszcwtlrtqzsstkxgqkgsptgcznjsjcqcxhmxggztqydjkzdlbzsxjlhyqgggthqszpyhjhhgyygkggcwjzzylczlxqsftgzslllmljskctbllzzszmmnytpzsxqhjcjyqxyzxzqzcpshkzzysxcdfgmwqrllqxrfztlystctmjcxjjxhjnxtnrztzfqyhqgllgcxszsjdjljcydsjtlnyxhszxcgjzyqpylfhdjsbpcczhjjjqzjqdybssllcmyttmqtbhjqnnygkyrqyqmzgcjkpdcgmyzhqllsllclmholzgdyyfzsljcqzlylzqjeshnylljxgjxlysyyyxnbzljsszcqqcjyllzltjyllzllbnylgqchxyyxoxcxqkyjxxxyklxsxxyqxcykqxqcsgyxxyqxygytqohxhxpyxxxulcyeychzzcbwqbbwjqzscszsslzylkdesjzwmymcytsdsxxscjpqqsqylyyzycmdjdzywcbtjsydjkcyddjlbdjjsodzysyxqqyxdhhgqqyqhdyxwgmmmajdybbbppbcmuupljzsmtxerxjmhqnutpjdcbssmssstkjtssmmtrcplzszmlqdsdmjmqpnqdxcfynbfsdqxyxhyaykqyddlqyyysszbydslntfqtzqpzmchdhczcwfdxtmyqsphqyyxsrgjcwtjtzzqmgwjjtjhtqjbbhwzpxxhyqfxxqywyyhyscdydhhqmnmtmwcpbszppzzglmzfollcfwhmmsjzttdhzzyffytzzgzyskyjxqyjzqbhmbzzlyghgfmshpzfzsnclpbqsnjxzslxxfpmtyjygbxlldlxpzjyzjyhhzcywhjylsjexfszzywxkzjluydtmlymqjpwxyhxsktqjezrpxxzhhmhwqpwqlyjjqjjzszcphjlchhnxjlqwzjhbmzyxbdhhypzlhlhlgfwlchyytlhjxcjmscpxstkpnhqxsrtyxxtesyjctlsslstdlllwwyhdhrjzsfgxtsyczynyhtdhwjslhtzdqdjzxxqhgyltzphcsqfclnjtclzpfstpdynylgmjllycqhysshchylhqyqtmzypbywrfqykqsyslzdqjmpxyyssrhzjnywtqdfzbwwtwwrxcwhgyhxmkmyyyqmsmzhngcepmlqqmtcwctmmpxjpjjhfxyyzsxzhtybmstsyjttqqqyylhynpyqzlcyzhzwsmylkfjxlwgxypjytysyxymzckttwlksmzsylmpwlzwxwqzssaqsyxyrhssntsrapxcpwcmgdxhxzdzyfjhgzttsbjhgyzszysmyclllxbtyxhbbzjkssdmalxhycfygmqypjycqxjllljgslzgqlycjcczotyxmtmttllwtgpxymzmklpszzzxhkqysxctyjzyhxshyxzkxlzwpsqpyhjwpjpwxqqylxsdhmrslzzyzwttcyxyszzshbsccstplwsscjchnlcgchssphylhfhhxjsxyllnylszdhzxylsxlwzykcldyaxzcmddyspjtqjzlnwqpssswctstszlblnxsmnyymjqbqhrzwtyydchqlxkpzwbgqybkfcmzwpzllyylszydwhxpsbcmljbscgbhxlqhyrljxyswxwxzsldfhlslynjlzyflyjycdrjlfsyzfsllcqyqfgjyhyxzlylmstdjcyhbzllnwlxxygyyhsmgdhxxhhlzzjzxczzzcyqzfngwpylcpkpyypmclqkdgxzggwqbdxzzkzfbxxlzxjtpjpttbytszzdwslchzhsltyxhqlhyxxxyyzyswtxzkhlxzxzpyhgchkcfsyhutjrlxfjxptztwhplyxfcrhxshxkyxxyhzqdxqwulhyhmjtbflkhtxcwhjfwjcfpqryqxcyyyqygrpywsgsungwchkzdxyflxxhjjbyzwtsxxncyjjymswzjqrmhxzwfqsylzjzgbhynslbgttcsybyxxwxyhxyyxnsqyxmqywrgyqlxbbzljsylpsytjzyhyzawlrorjmksczjxxxyxchdyxryxxjdtsqfxlyltsffyxlmtyjmjuyyyxltzcsxqzqhzxlyyxzhdnbrxxxjctyhlbrlmbrllaxkyllljlyxxlycrylcjtgjcmtlzllcyzzpzpcyawhjjfybdyyzsmpckzdqyqpbpcjpdcyzmdpbcyydycnnplmtmlrmfmmgwyzbsjgygsmzqqqztxmkqwgxllpjgzbqcdjjjfpkjkcxbljmswmdtqjxldlppbxcwrcqfbfqjczahzgmykphyyhzykndkzmbpjyxpxyhlfpnyygxjdbkxnxhjmzjxstrstldxskzysybzxjlxyslbzyslhxjpfxpqnbylljqkygzmcyzzymccslclhzfwfwyxzmwsxtynxjhpyymcyspmhysmydyshqyzchmjjmzcaagcfjbbhplyzylxxsdjgxdhkxxtxxnbhrmlyjsltxmrhnlxqjxyzllyswqgdlbjhdcgjyqycmhwfmjybmbyjyjwymdpwhxqldygpdfxxbcgjspckrssyzjmslbzzjfljjjlgxzgyxyxlszqyxbexyxhgcxbpldyhwettwwcjmbtxchxyqxllxflyxlljlssfwdpzsmyjclmwytczpchqekcqbwlcqydplqppqzqfjqdjhymmcxtxdrmjwrhxcjzylqxdyynhyyhrslsrsywwzjymtltllgtqcjzyabtckzcjyccqljzqxalmzyhywlwdxzxqdllqshgpjfjljhjabcqzdjgtkhsstcyjlpswzlxzxrwgldlzrlzxtgsllllzlyxxwgdzygbdphzpbrlwsxqbpfdwofmwhlypcbjccldmbzpbzzlcyqxldomzblzwpdwyygdstthcsqsccrsssyslfybfntyjszdfndpdhdzzmbblslcmyffgtjjqwftmtpjwfnlbzcmmjtgbdzlqlpyfhyymjylsdchdzjwjcctljcldtljjcpddsqdsszybndbjlggjzxsxnlycybjxqycbylzcfzppgkcxzdzfztjjfjsjxzbnzyjqttyjyhtyczhymdjxttmpxsplzcdwslshxypzgtfmlcjtycbpmgdkwycyzcdszzyhflyctygwhkjyylsjcxgywjcbllcsnddbtzbsclyzczzssqdllmqyyhfslqllxftyhabxgwnywyypllsdldllbjcyxjzmlhljdxyyqytdlllbugbfdfbbqjzzmdpjhgclgmjjpgaehhbwcqxaxhhhzchxyphjaxhlphjpgpzjqcqzgjjzzuzdmqyybzzphyhybwhazyjhykfgdpfqsdlzmljxkxgalxzdaglmdgxmwzqyxxdxxpfdmmssympfmdmmkxksyzyshdzkxsysmmzzzmsydnzzczxfplstmzdnmxckjmztyymzmzzmsxhhdczjemxxkljstlwlsqlyjzllzjssdppmhnlzjczyhmxxhgzcjmdhxtkgrmxfwmcgmwkdtksxqmmmfzzydkmsclcmpcgmhspxqpzdsslcxkyxtwlwjyahzjgzqmcsnxyymmpmlkjxmhlmlqmxctkzmjqyszjsyszhsyjzjcdajzybsdqjzgwzqqxfkdmsdjlfwehkzqkjpeypzyszcdwyjffmzzylttdzzefmzlbnpplplpepszalltylkckqzkgenqlwagyxydpxlhsxqqwqcqxqclhyxxmlyccwlymqyskgchlcjnszkpyzkcqzqljpdmdzhlasxlbydwqlwdnbqcryddztjybkbwszdxdtnpjdtctqdfxqqmgnxeclttbkpwslctyqlpwyzzklpygzcqqpllkccylpqmzczqcljslqzdjxlddhpzqdljjxzqdxyzqkzljcyqdyjppypqykjyrmpcbymcxkllzllfqpylllmbsglcysslrsysqtmxyxzqzfdzuysyztffmzzsmzqhzssccmlyxwtpzgxzjgzgsjsgkddhtqggzllbjdzlcbchyxyzhzfywxyzymsdbzzyjgtsmtfxqyxqstdgslnxdlryzzlryylxqhtxsrtzngzxbnqqzfmykmzjbzymkbpnlyzpblmcnqyzzzsjzhjctzkhyzzjrdyzhnpxglfztlkgjtctssyllgzrzbbqzzklpklczyssuyxbjfpnjzzxcdwxzyjxzzdjjkggrsrjkmsmzjlsjywqskyhqjsxpjzzzlsnshrnypztwchklpsrzlzxyjqxqkysjycztlqzybbybwzpqdwwyzcytjcjxckcwdkkzxsgkdzxwwyyjqyytcytdllxwkczkklcclzcqqdzlqlcsfqchqhsfsmqzzlnbjjzbsjhtszdysjqjpdlzcdcwjkjzzlpycgmzwdjjbsjqzsyzyhhxjpbjydssxdzncglqmbtsfsbpdzdlznfgfjgfsmpxjqlmblgqcyyxbqkdjjqyrfkztjdhczklbsdzcfjtplljgxhyxzcsszzxstjygkgckgyoqxjplzpbpgtgyjzghzqzzlbjlsqfzgkqqjzgyczbzqtldxrjxbsxxpzxhyzyclwdxjjhxmfdzpfzhqhqmqgkslyhtycgfrzgnqxclpdlbzcsczqlljblhbzcypzzppdymzzsgyhckcpzjgsljlnscdsldlxbmstlddfjmkdjdhzlzxlszqpqpgjllybdszgqlbzlslkyyhzttntjyqtzzpszqztlljtyyllqllqyzqlbdzlslyyzymdfszsnhlxznczqzpbwskrfbsyzmthblgjpmczzlstlxshtcsyzlzblfeqhlxflcjlyljqcbzlzjhhsstbrmhxzhjzclxfnbgxgtqjcztmsfzkjmssnxljkbhsjxntnlzdntlmsjxgzjyjczxyjyjwrwwqnztnfjszpzshzjfyrdjsfszjzbjfzqzzhzlxfysbzqlzsgyftzdcszxzjbqmszkjrhyjzckmjkhchgtxkxqglxpxfxtrtylxjxhdtsjxhjzjxzwzlcqsbtxwxgxtxxhxftsdkfjhzyjfjxrzsdllltqsqqzqwzxsyqtwgwbzcgzllyzbclmqqtzhzxzxljfrmyzflxysqxxjkxrmqdzdmmyybsqbhgzmwfwxgmxlzpyytgzyccdxyzxywgsyjyznbhpzjsqsyxsxrtfyzgrhztxszzthcbfclsyxzlzqmzlmplmxzjxsflbyzmyqhxjsxrxsqzzzsslyfrczjrcrxhhzxqydyhxsjjhzcxzbtynsysxjbqlpxzqpymlxzkyxlxcjlcysxxzzlxdllljjyhzxgyjwkjrwyhcpsgnrzlfzwfzznsxgxflzsxzzzbfcsyjdbrjkrdhhgxjljjtgxjxxstjtjxlyxqfcsgswmsbctlqzzwlzzkxjmltmjyhsddbxgzhdlbmyjfrzfsgclyjbpmlysmsxlszjqqhjzfxgfqfqbpxzgyyqxgztcqwyltlgwsgwhrlfsfgzjmgmgbgtjfsyzzgzyzaflsspmlpflcwbjzcljjmzlpjjlymqdmyyyfbgygyzmlyzdxqyxrqqqhsyyyqxyljtyxfsfsllgnqcyhycwfhcccfxpylypllzyxxxxxkqhhxshjzcfzsczjxcpzwhhhhhapylqalpqafyhxdylukmzqgggddesrnnzltzgchyppysqjjhclljtolnjpzljlhymheydydsqycddhgzundzclzyzllzntnyzgslhslpjjbdgwxpcdutjcklkclwkllcasstkzzdnqnttlyyzssysszzryljqkcqdhhcrxrzydgrgcwcgzqfffppjfzynakrgywyqpqxxfkjtszzxswzddfbbxtbgtzkznpzzpzxzpjszbmqhkcyxyldkljnypkyghgdzjxxeahpnzkztzcmxcxmmjxnkszqnmnlwbwwxjkyhcpstmcsqtzjyxtpctpdtnnpglllzsjlspblplqhdtnjnlyyrszffjfqwdphzdwmrzcclodaxnssnyzrestyjwjyjdbcfxnmwttbylwstszgybljpxglboclhpcbjltmxzljylzxcltpnclckxtpzjswcyxsfyszdkntlbyjcyjllstgqcbxryzxbxklylhzlqzlnzcxwjzljzjncjhxmnzzgjzzxtzjxycyycxxjyyxjjxsssjstssttppgqtcsxwzdcsyfptfbfhfbblzjclzzdbxgcxlqpxkfzflsyltuwbmqjhszbmddbcysccldxycddqlyjjwmqllcsgljjsyfpyyccyltjantjjpwycmmgqyysxdxqmzhszxpftwwzqswqrfkjlzjqqyfbrxjhhfwjjzyqazmyfrhcyybyqwlpexcczstyrlttdmqlykmbbgmyyjprkznpbsxyxbhyzdjdnghpmfsgmwfzmfqmmbcmzzcjjlcnuxyqlmlrygqzcyxzlwjgcjcggmcjnfyzzjhycprrcmtzqzxhfqgtjxccjeaqcrjyhplqlszdjrbcqhqdyrhylyxjsymhzydwldfryhbpydtsscnwbxglpzmlzztqsscpjmxxycsjytycghycjwyrxxlfemwjnmkllswtxhyyyncmmcwjdqdjzglljwjrkhpzggflccsczmcbltbhbqjxqdspdjzzgkglfqywbzyzjltstdhqhctcbchflqmpwdshyytqwcnzzjtlbymbpdyyyxsqkxwyyflxxncwcxypmaelykkjmzzzbrxyyqjfljpfhhhytzzxsgqqmhspgdzqwbwpjhzjdyscqwzktxxsqlzyymysdzgrxckkujlwpysyscsyzlrmlqsyljxbcxtlwdqzpcycykpppnsxfyzjjrcemhszmsxlxglrwgcstlrsxbzgbzgztcplujlslylymtxmtzpalzxpxjtjwtcyyzlblxbzlqmylxpghdslssdmxmbdzzsxwhamlczcpjmcnhjysnsygchskqmzzqdllkablwjxsfmocdxjrrlyqzkjmybyqlyhetfjzfrfksryxfjtwdsxxsysqjyslyxwjhsnlxyyxhbhawhhjzxwmyljcsslkydztxbzsyfdxgxzjkhsxxybssxdpynzwrptqzczenygcxqfjykjbzmljcmqqxuoxslyxxlylljdzbtymhpfsttqqwlhokyblzzalzxqlhzwrrqhlstmypyxjjxmqsjfnbxyxyjxxyqylthylqyfmlkljtmllhszwkzhljmlhljkljstlqxylmbhhlnlzxqjhxcfxxlhyhjjgbyzzkbxscqdjqdsujzyyhzhhmgsxcsymxfebcqwwrbpyyjqtyzcyqyqqzyhmwffhgzfrjfcdpxntqyzpdykhjlfrzxppxzdbbgzqstlgdgylcqmlchhmfywlzyxkjlypqhsywmqqgqzmlzjnsqxjqsyjycbehsxfszpxzwfllbcyyjdytdthwzsfjmqqyjlmqxxlldttkhhybfpwtyysqqwnqwlgwdebzwcmygculkjxtmxmyjsxhybrwfymwfrxyqmxysztzztfykmldhqdxwyynlcryjblpsxcxywlsprrjwxhqyphtydnxhhmmywytzcsqmtssccdalwztcpqpyjllqzyjswxmzzmmylmxclmxczmxmzsqtzppqqblpgxqzhfljjhytjsrxwzxsccdlxtyjdcqjxslqyclzxlzzxmxqrjmhrhzjbhmfljlmlclqnldxzlllpypsyjysxcqqdcmqjzzxhnpnxzmekmxhykyqlxsxtxjyyhwdcwdzhqyybgybcyscfgpsjnzdyzzjzxrzrqjjymcanyrjtldppyzbstjkxxzypfdwfgzzrpymtngxzqbyxnbufnqkrjqzmjegrzgyclkxzdskknsxkcljspjyyzlqqjybzssqlllkjxtbktylccddblsppfylgydtzjyqggkqttfzxbdktyyhybbfytyybclpdytgdhryrnjsptcsnyjqhklllzslydxxwbcjqspxbpjzjcjdzffxxbrmlazhcsndlbjdszblprztswsbxbcllxxlzdjzsjpylyxxyftfffbhjjxgbyxjpmmmpssjzjmtlyzjxswxtyledqpjmygqzjgdjlqjwjqllsjgjgygmscljjxdtygjqjqjcjzcjgdzzsxqgsjggcxhqxsnqlzzbxhsgzxcxyljxyxyydfqqjhjfxdhctxjyrxysqtjxyefyyssyyjxncyzxfxmsyszxyyschshxzzzgzzzgfjdltylnpzgyjyzyyqzpbxqbdztzczyxxyhhsqxshdhgqhjhgywsztmzmlhyxgebtylzkqwytjzrclekystdbcykqqsayxcjxwwgsbhjyzydhcsjkqcxswxfltynyzpzcczjqtzwjqdzzzqzljjxlsbhpyxxpsxshheztxfptlqyzzxhytxncfzyyhxgnxmywxtzsjpthhgymxmxqzxtsbczyjyxxtyyzypcqlmmszmjzzllzxgxzaajzyxjmzxwdxzsxzdzxleyjjzqbhzwzzzqtzpsxztdsxjjjznyazphxyysrnqdthzhyykyjhdzxzlswclybzyecwcycrylcxnhzydzydyjdfrjjhtrsqtxyxjrjhojynxelxsfsfjzghpzsxzszdzcqzbyyklsgsjhczshdgqgxyzgxchxzjwyqwgyhksseqzzndzfkwysstclzstsymcdhjxxyweyxczaydmpxmdsxybsqmjmzjmtzqlpjyqzcgqhxjhhlxxhlhdldjqcldwbsxfzzyyschtytyybhecxhykgjpxhhyzjfxhwhbdzfyzbcapnpgnydmsxhmmmmamynbyjtmpxyymcthjbzyfcgtyhwphftwzzezsbzegpfmtskftycmhfllhgpzjxzjgzjyxzsbbqsczzlzccstpgxmjsftcczjzdjxcybzlfcjsyzfgszlybcwzzbyzdzypswyjzxzbdsyuxlzzbzfygczxbzhzftpbgzgejbstgkdmfhyzzjhzllzzgjqzlsfdjsscbzgpdlfzfzszyzyzsygcxsnxxchczxtzzljfzgqsqyxzjqdccztqcdxzjyqjqchxztdlgscxzsyqjqtzwlqdqztqchqqjzyezzzpbwkdjfcjpztypqyqttynlmbdktjzpqzqzzfpzsbnjlgyjdxjdzzkzgqkxdlpzjtcjdqbxdjqjstcknxbxzmslyjcqmtjqwwcjqnjnlllhjcwqtbzqydzczpzzdzyddcyzzzccjttjfzdprrtztjdcqtqzdtjnplzbcllctzsxkjzqzpzlbzrbtjdcxfczdbccjjltqqpldcgzdbbzjcqdcjwynllzyzccdwllxwzlxrxntqqczxkqlsgdfqtddglrlajjtkuymkqlltzytdyyczgjwyxdxfrskstqtenqmrkqzhhqkdldazfkypbggpzrebzzykzzspegjxgykqzzzslysyyyzwfqzylzzlzhwchkypqgnpgblplrrjyxccsyyhsfzfybzyytgzxylxczwxxzjzblfflgskhyjzeyjhlpllllczgxdrzelrhgklzzyhzlyqszzjzqljzflnbhgwlczcfjyspyxzlzlxgccpzbllcybbbbubbcbpcrnnzczyrbfsrldcgqyyqxygmqzwtzytyjxyfwtehzzjywlccntzyjjzdedpzdztsyqjhdymbjnyjzlxtsstphndjxxbyxqtzqddtjtdyytgwscszqflshlglbczphdlyzjyckwtytylbnytsdsycctyszyyebhexhqdtwnygyclxtszystqmygzazccszzdslzclzrqxyyeljsbymxsxztembbllyyllytdqyshymrqwkfkbfxnxsbychxbwjyhtqbpbsbwdzylkgzskyhxqzjxhxjxgnljkzlyycdxlfyfghljgjybxqlybxqpqgztzplncypxdjyqydymrbesjyyhkxxstmxrczzywxyqybmcllyzhqyzwqxdbxbzwzmslpdmyskfmzklzcyqyczlqxfzzydqzpzygyjyzmzxdzfyfyttqtzhgspczmlccytzxjcytjmkslpzhysnzllytpzctzzcktxdhxxtqcyfksmqccyyazhtjpcylzlyjbjxtpnyljyynrxsylmmnxjsmybcsysylzylxjjqyldzlpqbfzzblfndxqkczfywhgqmrdsxycytxnqqjzyypfzxdyzfprxejdgyqbxrcnfyyqpghyjdyzxgrhtkylnwdzntsmpklbthbpyszbztjzszzjtyyxzphsszzbzczptqfzmyflypybbjqxzmxxdjmtsyskkbjzxhjcklpsmkyjzcxtmljyxrzzqslxxqpyzxmkyxxxjcljprmyygadyskqlsndhyzkqxzyztcghztlmlwzybwsyctbhjhjfcwztxwytkzlxqshlyjzjxtmplpycgltbzztlzjcyjgdtclklpllqpjmzpapxyzlkktkdzczzbnzdydyqzjyjgmctxltgxszlmlhbglkfwnwzhdxuhlfmkyslgxdtwwfrjejztzhydxykshwfzcqshktmqqhtzhymjdjskhxzjzbzzxympagqmstpxlsklzynwrtsqlszbpspsgzwyhtlkssswhzzlyytnxjgmjszsufwnlsoztxgxlsammlbwldszylakqcqctmycfjbslxclzzclxxksbzqclhjpsqplsxxckslnhpsfqqytxyjzlqldxzqjzdyydjnzptuzdskjfsljhylzsqzlbtxydgtqfdbyazxdzhzjnhhqbyknxjjqczmlljzkspldyclbblxklelxjlbqycxjxgcnlcqplzlzyjtzljgyzdzpltqcsxfdmnycxgbtjdcznbgbqyqjwgkfhtnpyqzqgbkpbbyzmtjdytblsqmpsxtbnpdxklemyycjynzctldykzzxddxhqshdgmzsjycctayrzlpyltlkxslzcggexclfxlkjrtlqjaqzncmbydkkcxglczjzxjhptdjjmzqykqsecqzdshhadmlzfmmzbgntjnnlgbyjbrbtmlbyjdzxlcjlpldlpcqdhlxzlycblcxzzjadjlnzmmsssmybhbsqkbhrsxxjmxsdznzpxlgbrhwggfcxgmsklltsjyycqltskywyyhywxbxqywpywykqlsqptntkhqcwdqktwpxxhcpthtwumssyhbwcrwxhjmkmzngwtmlkfghkjylsyycxwhyeclqhkqhttqkhfzldxqwyzyydesbpkyrzpjfyyzjceqdzzdlatzbbfjllcxdlmjssxegygsjqxcwbxsszpdyzcxdnyxppzydlyjczpltxlsxyzyrxcyyydylwwnzsahjsyqyhgywwaxtjzdaxysrltdpssyyfnejdxyzhlxlllzqzsjnyqyqqxyjghzgzcyjchzlycdshwshjzyjxcllnxzjjyyxnfxmwfpylcyllabwddhwdxjmcxztzpmlqzhsfhzynztlldywlslxhymmylmbwwkyxyadtxylldjpybpwuxjmwmllsafdllyflbhhhbqqltzjcqjldjtffkmmmbythygdcqrddwrqjxnbysnwzdbyytbjhpybyttjxaahgqdqtmystqxkbtzpkjlzrbeqqssmjjbdjotgtbxpgbktlhqxjjjcthxqdwjlwrfwqgwshckryswgftgygbxsdwdwrfhwytjjxxxjyzyslpyyypayxhydqkxshxyxgskqhywfdddpplcjlqqeewxksyykdypltjthkjltcyyhhjttpltzzcdlthqkzxqysteeywyyzyxxyysttjkllpzmcyhqgxyhsrmbxpllnqydqhxsxxwgdqbshyllpjjjthyjkyppthyyktyezyenmdshlcrpqfdgfxzpsftljxxjbswyysksflxlpplbbblbsfxfyzbsjssylpbbffffsscjdstzsxzryysyffsyzyzbjtbctsbsdhrtjjbytcxyjeylxcbnebjdsyxykgsjzbxbytfzwgenyhhthzhhxfwgcstbgxklsxywmtmbyxjstzscdyqrcytwxzfhmymcxlznsdjtttxrycfyjsbsdyerxjljxbbdeynjghxgckgscymblxjmsznskgxfbnbpthfjaafxyxfpxmypqdtzcxzzpxrsywzdlybbktyqpqjpzypzjznjpzjlzzfysbttslmptzrtdxqsjehbzylzdhljsqmlhtxtjecxslzzspktlzkqqyfsygywpcpqfhqhytqxzkrsgttsqczlptxcdyyzxsqzslxlzmycpcqbzyxhbsxlzdltcdxtylzjyyzpzyzltxjsjxhlpmytxcqrblzssfjzztnjytxmyjhlhpplcyxqjqqkzzscpzkswalqsblcczjsxgwwwygyktjbbztdkhxhkgtgpbkqyslpxpjckbmllxdzstbklggqkqlsbkktfxrmdkbftpzfrtbbrferqgxyjpzsstlbztpszqzsjdhljqlzbpmsmmsxlqqnhknblrddnxxdhddjcyygylxgzlxsygmqqgkhbpmxyxlytqwlwgcpbmqxcyzydrjbhtdjyhqshtmjsbyplwhlzffnypmhxxhpltbqpfbjwqdbygpnztpfzjgsddtqshzeawzzylltyybwjkxxghlfkxdjtmszsqynzggswqsphtlsskmclzxyszqzxncjdqgzdlfnykljcjllzlmzznhydsshthzzlzzbbhqzwwycrzhlyqqjbeyfxxxwhsrxwqhwpslmsskzttygyqqwrslalhmjtqjsmxqbjjzjxzyzkxbyqxbjxshztsfjlxmxzxfghkzszggylclsarjyhslllmzxelglxydjytlfbhbpnlyzfbbhptgjkwetzhkjjxzxxglljlstgshjjyqlqzfkcgnndjsszfdbctwwseqfhqjbsaqtgypqlbxbmmywxgslzhglzgqyflzbyfzjfrysfmbyzhqgfwzsyfyjjphzbyyzffwodgrlmftwlbzgycqxcdjygzyyyytytydwegazyhxjlzyyhlrmgrxxzclhneljjtjtpwjybjjbxjjtjteekhwsljplpsfyzpqqbdlqjjtyyqlyzkdksqjyyqzldqtgjqyzjsucmryqthtejmfctyhypkmhyzwjdqfhyyxwshctxrljhqxhccyyyjltkttytmxgtcjtzayyoczlylbszywjytsjyhbyshfjlygjxxtmzyyltxxypzlxyjzyzyypnhmymdyylblhlsyyqqllnjjymsoyqbzgdlyxylcqyxtszegxhzglhwbljheyxtwqmakbpqcgyshhegqcmwyywljyjhyyzlljjylhzyhmgsljljxcjjyclycjpcpzjzjmmylcqlnqljqjsxyjmlszljqlycmmhcfmmfpqqmfylqmcffqmmmmhmznfhhjgtthhkhslnchhyqdxtmmqdcyzyxyqmyqyltdcyyyzazzcymzydlzfffmmycqzwzzmabtbyztdmnzzggdftypcgqyttssffwfdtzqssystwxjhxytsxxylbyqhwwkxhzxwznnzzjzjjqjccchyyxbzxzcyztllcqxynjycyycynzzqyyyewyczdcjycchyjlbtzyycqwmpwpymlgkdldlgkqqbgychjxy';

    //如果不在汉字处理范围之内,返回原字符
    if (uni > 40869 || uni < 19968)
    {
        if(bConvert)
            return ConvertChar;

        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 SetPYValueByCtrlIdAndConfig(fromId, toId, configId, ConfigLinkChar, ConfigReturnValueName) 
{

    return SetPYValueByCtrlAndConfig($(fromId), $(toId), $(configId), ConfigLinkChar, ConfigReturnValueName);
}

function SetPYValueByCtrlAndConfig(fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName)
{
    return SetPYValueByCtrlAndConfigByFlag(fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName, true);
}

function SetPYValueByCtrlIdAndConfigByFlag(fromId, toId, configId, ConfigLinkChar, ConfigReturnValueName, enableCtrl) 
{
    return SetPYValueByCtrlAndConfigByFlag($(fromId), $(toId), $(configId), ConfigLinkChar, ConfigReturnValueName, enableCtrl);
}

function SetPYValueByCtrlAndConfigByFlag(fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName, enableCtrl)
{
    return SetConvertPYValueByCtrlAndConfigByFlag(true, "", fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName, enableCtrl); 
}   

function SetConvertPYValueByCtrlIdAndConfig(bConvert, ConvertChar, fromId, toId, configId, ConfigLinkChar, ConfigReturnValueName) 
{
    return SetConvertPYValueByCtrlAndConfig(bConvert, ConvertChar, $(fromId), $(toId), $(configId), ConfigLinkChar, ConfigReturnValueName);
}

function SetConvertPYValueByCtrlAndConfig(bConvert, ConvertChar, fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName)
{
    return SetConvertPYValueByCtrlAndConfigByFlag(bConvert, ConvertChar, fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName, true);
}

function SetConvertPYValueByCtrlIdAndConfigByFlag(bConvert, ConvertChar, fromId, toId, configId, ConfigLinkChar, ConfigReturnValueName, enableCtrl) 
{
    return SetConvertPYValueByCtrlAndConfigByFlag(bConvert, ConvertChar, $(fromId), $(toId), $(configId), ConfigLinkChar, ConfigReturnValueName, enableCtrl);
}

function SetConvertPYValueByCtrlAndConfigByFlag(bConvert, ConvertChar, fromCtrl, toCtrl, configCtrl, ConfigLinkChar, ConfigReturnValueName, enableCtrl)
{
    if (fromCtrl == null || toCtrl == null)
        return false;
        
    if(enableCtrl)
    {
        
        if(CtrlGetIsNotEnabled(toCtrl))
        {   
            // alert('dd'); 
            return true;
        }
        else
        {
            // alert('ee');
        }
    }        
        
    var preChar = "";
    
    if(ConfigLinkChar == null)
        ConfigLinkChar = "_";
        
    if(ConfigReturnValueName == null)
        ConfigReturnValueName = "TheCode"; 
        

    if(configCtrl != null)
    {
        preChar = ListControlGetAttributeBySelected(configCtrl, ConfigReturnValueName);
        
        if(IsNullOrEmpty(preChar))
            preChar = "";
        else
            preChar = preChar + ConfigLinkChar;            
    }    
    
    var vValue = GetPY(fromCtrl.value.trim());  

    var resultValue = preChar + vValue;

    resultValue = ConvertPYCharByFlag(resultValue, ConvertChar, bConvert);

    toCtrl.value = resultValue;

    return true;
}

function ConvertPYChar(vValue, ConvertChar)
{
    return ConvertPYCharByFlag(vValue, ConvertChar, true);
}

function ConvertPYCharByFlag(vValue, ConvertChar, bConvert)
{
    if(!bConvert)
        return vValue;
        
    if(IsNullOrEmpty(vValue))
        return "";

    var i = 0;
    
    var j = 0;
    
    var vResult = "";
    
    var iLen = GetLength(vValue);
    
    var vArray = PYAllowChar;
    
    var iArrayLen = GetLength(vArray);
    
    var vTmp = "";
    
    var vFill = "";

    for (i = 0; i < iLen; ++i) 
    {
        vTmp = vValue.substring(i,i+1);
        vFill = ConvertChar;

        for(j = 0; j < iArrayLen; ++j)
        {
            if(vTmp == vArray[j])
            {
                vFill = vTmp;
                break;
            }
        }
        
        vResult = vResult + vFill;
    }

    return vResult;
}


// 根据鼠标或焦点事件，设置文本框和按钮样式,此函数会与样式相关
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_NoneByEnable(vSelect) 
{
    return selectAll_Or_NoneByArrayByEnable(null, vSelect);
}

function selectAll_Or_NoneByArray(objArray) 
{
    return selectAll_Or_NoneByArrayByEnable(objArray, emSelectYes);
}

function selectAll_Or_NoneByArrayByEnable(objArray, vSelect) 
{
    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_NoneByCtrlIdByEnable(objFormName, objChkJSAll, objItem, vSelect);
}

function selectAll_Or_NoneByCtrlId(objFormName, objChkJSAll, objItem) 
{
    return selectAll_Or_NoneByCtrlIdByEnable(objFormName, objChkJSAll, objItem, emSelectYes);
}

function selectAll_Or_NoneByCtrlIdByEnable(objFormName, objChkJSAll, objItem, vSelect) 
{

    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName, strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll, strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem, strItem);

    var objForm = $(objFormName);
    
    if(objForm == null)
        objForm = FormGetCur();

    var objchk_JS_All = $(objChkJSAll);

    if (objForm == null || objchk_JS_All == null)
        return false;

    var bFlag = GetCtrlCheckFlagByCtrlAndFlag(objchk_JS_All, true);

    var i = 0;

    for (i = 0; i < objForm.elements.length; i++) 
    {
        var e = objForm.elements[i];
        
        if(IsNotCheckbox(e))
            continue;

        if (!IsContainsAll(GetCtrlName(e), objItem, true))
            continue;

        if(vSelect != emSelectDefault)
        {
            vDisabled = CtrlGetDisabled(e, false);
            
            if(vDisabled && vSelect == emSelectYes)
                continue;

            if(!vDisabled && vSelect == emSelectNo)
                continue;
        }
        
        e.checked = bFlag;

        if (CSS_SETTING) 
        {
            // 设置样式 //
            ItemChkChangeCSS(e);
        }
         
    }

    return true;

}

function InitCheck() 
{
    return InitCheckByArray(null);
}

function InitCheckByArray(objArray) 
{
    return InitCheckByArrayByEnable(objArray, emSelectYes);
}

function InitCheckByEnable(vSelect) 
{
    return InitCheckByArrayByEnable(null, vSelect);
}

function InitCheckByArrayByEnable(objArray, vSelect) 
{
    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 InitCheckByCtrlIdByEnable(objFormName, objChkJSAll, objItem, vSelect);
}

function InitCheckByCtrlId(objFormName, objChkJSAll, objItem) 
{
    return InitCheckByCtrlIdByEnable(objFormName, objChkJSAll, objItem, emSelectYes);
}

function InitCheckByCtrlIdByEnable(objFormName, objChkJSAll, objItem, vSelect)  
{

    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName, strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll, strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem, strItem);

    var objForm = $(objFormName);
    
    if(objForm == null)
        objForm = FormGetCur();
        
    var objchk_JS_All = $(objChkJSAll);

    if (objForm == null || objchk_JS_All == null)
        return false;

    var bFlag = true;
    var bSet = false;
    
    var i = 0;

    for (i = 0; i < objForm.elements.length; i++) 
    {
        var e = objForm.elements[i];
        
        if(IsNotCheckbox(e))
            continue;

        if (!IsContainsAll(GetCtrlName(e), objItem, true))
            continue;
            
        if(vSelect != emSelectDefault)
        {
            vDisabled = CtrlGetDisabled(e, false);
            
            if(vDisabled && vSelect == emSelectYes)
                continue;

            if(!vDisabled && vSelect == emSelectNo)
                continue;
        }            

        if (CSS_SETTING)
            ItemChkChangeCSS(e);

        if (e.checked == false)
            break;
            
        bSet = true; 
    }

    objchk_JS_All.checked = bFlag && bSet;

    return true;

}

// CheckBox选择事件
function ItemChkClick(objItemChk) 
{
    return ItemChkClickByArray(objItemChk, null);
}

// CheckBox选择事件
function ItemChkClickByEnable(objItemChk, vSelect) 
{
    return ItemChkClickByArrayByEnable(objItemChk, null, vSelect);
}

function ItemChkClickByArray(objItemChk, objArray) 
{
    return ItemChkClickByArrayByEnable(objItemChk, objArray, emSelectYes);
}

function ItemChkClickByArrayByEnable(objItemChk, objArray, vSelect) 
{
    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 ItemChkClickByCtrlIdByEnable(objItemChk, objFormName, objChkJSAll, objItem, vSelect);
}

function ItemChkClickByCtrlId(objItemChk, objFormName, objChkJSAll, objItem) 
{
    return ItemChkClickByCtrlIdByEnable(objItemChk, objFormName, objChkJSAll, objItem, emSelectYes);
}

function ItemChkClickByCtrlIdByEnable(objItemChk, objFormName, objChkJSAll, objItem, vSelect) 
{

    objFormName = GetTextNullOrEmptyAndBlankToDefault(objFormName, strFormName);
    objChkJSAll = GetTextNullOrEmptyAndBlankToDefault(objChkJSAll, strChkJSAll);
    objItem = GetTextNullOrEmptyAndBlankToDefault(objItem, strItem);

    var objForm = $(objFormName);
    
    var vDisabled = false;
    
    if(objForm == null)
        objForm = FormGetCur();
    
    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 = 0; i < objForm.elements.length; i++) 
            {
                var e = objForm.elements[i];
                
                if(IsNotCheckbox(e))
                    continue;

                if (!IsContainsAll(GetCtrlName(e), objItem, true))
                    continue;

                if(vSelect != emSelectDefault)
                {
                    vDisabled = CtrlGetDisabled(e, false);
                    
                    if(vDisabled && vSelect == emSelectYes)
                        continue;

                    if(!vDisabled && vSelect == emSelectNo)
                        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校验 ##############################
// ########################################################################  


// 定义一些属性 //
var SlowXUploadFiles_WebUpload = "1";
var SlowXUploadFiles_WebLink = "2";
var SlowXUploadFiles_DeleteFile = "4";
var SlowXUploadFiles_None = "8";

var SlowXUploadFiles_FileType_Img = "img";
var SlowXUploadFiles_FileType_Flash = "flash";
var SlowXUploadFiles_FileType_Link = "link";

function SlowXUploadFiles() { }
SlowXUploadFiles.prototype =
{
CtrlClientId: "",
FileTypeArray:null,
HidFileUploadCtrlId:"",
FileUploadCtrlId:"",
OutLinkCtrlId:"",
FileTypeCtrlId:"",
FileDoCtrlId:"",
CtrlShowLinkCtrlId:"",
FileWidth:"",
FileHeight:"",
ShowLinkName:"",
IsNew:true,
IsNotNull:true,
FullCheckFileExtension:true,
NullTipMsg:"",
CurFileUrlValue:""
}

// 实例化类对象
function GetSlowXUploadFiles(vCtrlClientId, vFileTypeArray, vHidFileUploadCtrlId, vFileUploadCtrlId, vOutLinkCtrlId, vFileTypeCtrlId, vFileDoCtrlId, vCtrlShowLinkCtrlId, vFileWidth, vFileHeight, vShowLinkName, vIsNew, vIsNotNull, vFullCheckFileExtension, vNullTipMsg) 
{
    var objVClass = new SlowXUploadFiles();

    objVClass.CtrlClientId = vCtrlClientId;
     
    objVClass.FileTypeArray = vFileTypeArray;
    
    objVClass.HidFileUploadCtrlId = vHidFileUploadCtrlId;
    
    objVClass.FileUploadCtrlId = vFileUploadCtrlId;
    
    objVClass.OutLinkCtrlId = vOutLinkCtrlId;
    
    objVClass.FileTypeCtrlId = vFileTypeCtrlId;
    
    objVClass.FileDoCtrlId = vFileDoCtrlId;
    
    objVClass.CtrlShowLinkCtrlId = vCtrlShowLinkCtrlId;
    
    objVClass.FileWidth = vFileWidth;
    
    objVClass.FileHeight = vFileHeight;
    
    objVClass.ShowLinkName = vShowLinkName;

    objVClass.IsNew = vIsNew;
    
    objVClass.IsNotNull = vIsNotNull;
        
    objVClass.FullCheckFileExtension = vFullCheckFileExtension;
    
    objVClass.NullTipMsg = vNullTipMsg;

    return objVClass;
}

function SlowXFileType() { }
SlowXFileType.prototype =
{
oId: "",
CtrlId:"",
FileType:"",
EmptyValue:""
}

// 实例化类对象
function GetSlowXFileType(voId, vCtrlId, vFileType, vEmptyValue) 
{
    var objVClass = new SlowXFileType();

    objVClass.oId = voId; 
    objVClass.CtrlId = vCtrlId;
    objVClass.FileType = vFileType;
    objVClass.EmptyValue = vEmptyValue;

    return objVClass;
}


function AddSlowXFileTypeArray(vArray, voId, vCtrlId, vFileType, vEmptyValue) 
{
    if(vArray == null)
        return false;

    var obj = GetSlowXFileType(voId, vCtrlId, vFileType, vEmptyValue);

    if (obj != null) {
        var objLen = GetLength(vArray);

        vArray[objLen] = obj;
    }

    return true;
}


// 普通控件校验 //
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 VCheckItemClass() { }

VCheckItemClass.prototype =
{
theId: "",
VClassId: "",
CtrlId: "",
FocusId: "",
Tip: "",
TipName: ""
}


// 实例化类对象
function GetVCheckItemClass(vtheId, vVClassId, vCtrlId, vFocusId, vTip, vTipName) 
{
    var objVClass = new VCheckItemClass();

    objVClass.theId = vtheId; 
    
    objVClass.VClassId = vVClassId;
    
    objVClass.CtrlId = vCtrlId;
    
    objVClass.FocusId = vFocusId;
    
    objVClass.Tip = vTip;
    
    objVClass.TipName = vTipName;

    return objVClass;
}

function AddVCheckItemClassArray(vtheId, vVClassId, vCtrlId, vFocusId, vTip, vTipName) 
{
	var bFlag = AddVCheckItemClassArrayByArray(VCheckItemClassArray, vtheId, vVClassId, vCtrlId, vFocusId, vTip, vTipName);
	
    // alert(GetLength	(VCheckItemClassArray) + "");
    
    return bFlag;
}

//var AlterIdx = 0;

function AddVCheckItemClassArrayByArray(vArray, vtheId, vVClassId, vCtrlId, vFocusId, vTip, vTipName) 
{
//    AlterIdx = AlterIdx + 1;
    if(vArray == null)
    {
//        if(AlterIdx == 1)
//            alert("NULL");
        return false;
    }
    else
    {
//        if(AlterIdx == 1)
//            alert("Not NULL");

    }

    var obj = GetVCheckItemClass(vtheId, vVClassId, vCtrlId, vFocusId, vTip, vTipName);

    if (obj != null) 
    {
        var objLen = GetLength(vArray);

        vArray[objLen] = obj;
        
//        alert(objLen);
    }

    return true;
}

function VCheckItemClassIsVClass(oVCheckItemClass, oVClass)
{
    if(oVCheckItemClass == null || oVClass == null)
        return false;
        
    var bFlag = StringCompare(oVCheckItemClass.VClassId,oVClass.theId,true,true);        
    
    return bFlag;
}

function VCheckItemClassIsNotVClass(oVCheckItemClass, oVClass)
{
    return !VCheckItemClassIsVClass(oVCheckItemClass, oVClass);
}

function VCheckItemClassGetVClass(oVCheckItemClass, oVClass)
{
    if(oVCheckItemClass == null || oVClass == null)
        return null;

    var vResult = GetVClassByCopy(oVClass, oVCheckItemClass.theId, oVCheckItemClass.CtrlId, oVCheckItemClass.FocusId, oVCheckItemClass.Tip, oVCheckItemClass.TipName);

    return vResult;
}

function VCheckItemClassGetVClassByCompare(oVCheckItemClass, oVClass)
{
    if(VCheckItemClassIsNotVClass(oVCheckItemClass, oVClass))
        return null;
        
    return VCheckItemClassGetVClass(oVCheckItemClass, oVClass);            
}


function VClass() { }

//
// 注释说明：
// ValidatorCode 校验代号
// CtrlId 校验控件
// 

VClass.prototype =
{
theId: "",
ValidatorCode: "",
CtrlId: "",
CtrlType: "",
FocusId: "",
CtrlJSValidator: "string",
JSValidatorExpress: "=",
CompareValue: "",
CompareValueCtrlId: "",
IsTrim: true,
IsCheck: true,
IsCheckNoVisible: false,
IsCheckInputCtrl: true,
Tip: "",
HeadTip: "",
TipName: "",
JSFunction: "",
FocusTipText: "",
AjaxJSFunction:"",
AjaxCompareValue:false,
AjaxErrorTip:"",
ConfigCtrlId:""
}

function AddVArray(objTheId, objValidatorCode, objCtrlId, objCtrlType, objFocusId, objCtrlJSValidator, objJSValidatorExpress, objCompareValue, objCompareValueCtrlId, objIsTrim, objIsCheck, objIsCheckNoVisible, objIsCheckInputCtrl, objTip, objHeadTip, objTipName, objJSFunction, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip,objConfigCtrlId) 
{
    var obj = GetVClass(objTheId, objValidatorCode, objCtrlId, objCtrlType, objFocusId, objCtrlJSValidator, objJSValidatorExpress, objCompareValue, objCompareValueCtrlId, objIsTrim, objIsCheck, objIsCheckNoVisible, objIsCheckInputCtrl, objTip, objHeadTip, objTipName, objJSFunction, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip,objConfigCtrlId);

    return AddVArrayByVClass(obj);
}

function AddVArrayByVClass(obj) 
{
    if (obj != null) 
    {
        var objLen = GetLength(VArray);

        VArray[objLen] = obj;

    }

    return true;
}

// 实例化类对象
function GetVClass(objTheId, objValidatorCode, objCtrlId, objCtrlType, objFocusId, objCtrlJSValidator, objJSValidatorExpress, objCompareValue, objCompareValueCtrlId, objIsTrim, objIsCheck, objIsCheckNoVisible, objIsCheckInputCtrl, objTip, objHeadTip, objTipName, objJSFunction, objFocusTipText,objAjaxJSFunction,objAjaxCompareValue,objAjaxErrorTip,objConfigCtrlId) 
{
    var objVClass = new VClass();
    
    objVClass.theId = objTheId;

    objVClass.ValidatorCode = objValidatorCode;
    
    objVClass.CtrlId = objCtrlId;
    
    objVClass.CtrlType = objCtrlType;
    
    objVClass.FocusId = objFocusId;
    
    objVClass.CtrlJSValidator = objCtrlJSValidator;
    
    objVClass.JSValidatorExpress = objJSValidatorExpress;
    
    objVClass.CompareValue = objCompareValue;
    
    objVClass.CompareValueCtrlId = objCompareValueCtrlId;

    objVClass.IsTrim = objIsTrim;
    
    objVClass.IsCheck = objIsCheck;
    
    objVClass.IsCheckNoVisible = objIsCheckNoVisible;
    
    objVClass.IsCheckInputCtrl = objIsCheckInputCtrl;
    
    objVClass.Tip = objTip;
    
    objVClass.HeadTip = objHeadTip;
    
    objVClass.TipName = objTipName;
    
    objVClass.JSFunction = objJSFunction;
    
    objVClass.FocusTipText = objFocusTipText;
    
    objVClass.AjaxJSFunction = objAjaxJSFunction;
    
    objVClass.AjaxCompareValue = objAjaxCompareValue;
    
    objVClass.AjaxErrorTip = objAjaxErrorTip;
    
    objVClass.ConfigCtrlId = objConfigCtrlId

    return objVClass;
}

function CopyVClass(obj) 
{
    if (obj == null)
        return null;

    var objVClass = new VClass();

    objVClass.theId = obj.theId;
    
    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.CompareValueCtrlId = obj.CompareValueCtrlId;
    
    objVClass.IsTrim = obj.IsTrim;
    
    objVClass.IsCheck = obj.IsCheck;
    
    objVClass.IsCheckNoVisible = obj.IsCheckNoVisible;
    
    objVClass.IsCheckInputCtrl = obj.IsCheckInputCtrl;
    
    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;    
    
    objVClass.ConfigCtrlId = obj.ConfigCtrlId;  

    return objVClass;
}

function GetVClassByCopy(objSourceVClass, theId, CtrlId, FocusId, Tip, TipName) 
{

    var objVClass = CopyVClass(objSourceVClass);

    if (objVClass == null)
        return null;
        
    if(IsNullOrEmptyAndBlank(theId))
        objVClass.theId = "";
    else          
        objVClass.theId = theId;

    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) 
{
//    alert('cc');
//    return false;

    if (VArray == null) 
    {
        return true;
    }
    
    

    var objCount = GetLength(VArray);
    
    // alert(objCount);
    
    // return false;

    // 校验 VCheckItemClass // 
    var vCount = GetLength(VCheckItemClassArray);
    
//    alert(vCount);
//    return false;

    var i = 0;
    var j = 0;
    var oItem = null;
    var bTmpFlag = true;
    var objVClass = null;
    var oCheckItem = null;

    for (i = 0; i < objCount; ++i) 
    {
        objVClass = VArray[i];

        if (objVClass == null) 
            continue;

        if (objVClass.ValidatorCode != objValidatorCode) 
            continue;

        bTmpFlag = CheckVClass(objThis, objVClass);

        if (!bTmpFlag)
            return false;
            
        for(j = 0; j < vCount; ++j)
        {
            oItem = VCheckItemClassArray[j];
        
            if(oItem == null)
                continue;
                
            oCheckItem = VCheckItemClassGetVClassByCompare(oItem, objVClass);                
            
            if(oCheckItem == null)
                continue;

            bTmpFlag = CheckVClass(objThis, oCheckItem);
            
            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 "请输入";
}

var alterIndex = 0;

function CheckVClass(objThis, objVClass) 
{

    var objTmpValue = null;
    var objEval = null;
    var objTmp = null;
    var objTheReturn = null;
    
    var vTheCompareValue = "";
    
    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();

    // 这里的配置暂时没写 //
    // ConfigCtrlId
    var IsConfigCtrlId = IsNotNullOrEmptyAndBlank(objVClass.ConfigCtrlId);
 
    
    var bIsCheck = objVClass.IsCheck;

    if(IsConfigCtrlId)
    {
        bIsCheck = $Get(objVClass.ConfigCtrlId, bIsCheck);
    }

    // 为上传附件加多的一个保护代码 
    if(objVClass.IsCheckInputCtrl)
    {
    
        // 代码保护，不让校验不可见的控件 //
        // if(objVClass.IsCheck && !bIsShow && !objVClass.IsCheckNoVisible)
        if(bIsCheck && !bIsShow && !objVClass.IsCheckNoVisible)
        {
            return true;
        }
    

        // 输入的值为空 //
        if (objValue == "") {

            // 是否校验 //
            // if (objVClass.IsCheck) 
            if (bIsCheck) 
            {
                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;
                    }

                    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 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 == "defaultlxtel") {
                    if (!IsValidDefaultLxTel(objValue)) {
                        MyAlert(objVClass.Tip, $(objVClass.FocusId));
                        return false;
                    }
                }
                else if (objVClass.CtrlJSValidator == "lxtel") {
                    if (!IsValidCommonLxTel(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 
            {
                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;
                    
                for(var pk = 0; pk < 2; ++pk)
                {    
                    if(pk == 0)
                        vTheCompareValue = objVClass.CompareValue;
                    else
                    {
                        vTheCompareValue = $Get(objVClass.CompareValueCtrlId, null);
                        
                        if(vTheCompareValue == null)
                            continue;
                    }

                    if (objVClass.CtrlJSValidator == "int" || objVClass.CtrlJSValidator == "float") 
                    {
                        var objCValue = 0;

                        if (IsTheNumber(vTheCompareValue)) 
                        {
                            objCValue = parseFloat(vTheCompareValue);
                            if (!isNaN(objCValue)) {
                                objEval = " bResult = (" + "objTmpValue" + " " + objVClass.JSValidatorExpress + " " + "objCValue ); ";
                                eval(objEval);
                            }
                        }
                    }
                    else 
                    {
                        objEval = " bResult = (" + "objTmpValue" + " " + objVClass.JSValidatorExpress + " " + "vTheCompareValue ); ";
                        eval(objEval);
                    }
                    
                    if(!bResult)
                        break;
                }
            }

            if (!bResult) {
                MyAlert(objVClass.Tip, $(objVClass.FocusId));
                return false;
            }
        }
    }        

    if (objVClass.AjaxJSFunction != "") 
    {
        objTheReturn = false;

        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 != "") {
        objTheReturn = null;

        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;
}

function StringReplaceHead(objStr, objChar, objNewChar)
{
    if(objStr == null || objStr == "")
        return "";
        
    if(objChar == null || objChar == "")
        return objStr;
        
    if(objNewChar == null || objNewChar == "")
        objNewChar = ""; 
        
    if (objStr.indexOf(objChar) == 0)
        objStr = objStr.replace(objChar, objNewChar);

    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) {

    if(objStr == null || objStr == "")
        return "";
        
    if(objChar == null || objChar == "")
        return objStr;
        
    if(objNewChar == null || objNewChar == "")
        objNewChar = ""; 

    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 StringNotContains(objStr, objChar) 
{
    return !StringContains(objStr, objChar);
}

function StringContainsIgnoreCase(objStr, objChar, ignoreCase) 
{
    return (StringIndexOfIgnoreCase(objStr, objChar, ignoreCase) != -1);
}

function StringNotContainsIgnoreCase(objStr, objChar, ignoreCase) 
{
    return !StringContainsIgnoreCase(objStr,objChar,ignoreCase);
}

function StringPadLeft(str, totalWidth, paddingChar)
{
    return StringPadHelper(str, totalWidth, paddingChar, false);
}

function StringPadRight(str, totalWidth, paddingChar, isRightPadded)
{
    return StringPadHelper(str, totalWidth, paddingChar, true);
}

function StringPadHelper(str, totalWidth, paddingChar, isRightPadded)
{
    if(str == null)
        str = "";
        
    var vResult = str;

    var ilen = str.length;
    var iLeft = (totalWidth - ilen);

    var paddingString = "";
    var i = 0;

    if (ilen < totalWidth)
    {
        for (i = 1; i <= iLeft; ++i)
        {
            paddingString += paddingChar;
        }
        
        if (isRightPadded)
        {
            vResult = str + paddingString;
        }
        else 
        {
            vResult = paddingString + str;
        }
    }
 
    return vResult;
}

function StringAddChar(objStr,objChar,objLink)
{
    if(objChar == null || objChar == "")
        return objStr;        

    if(objStr == null || objStr == "")
        return objChar;

    return objStr + objLink + objChar;        
}

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, false);
}

function StringIsWithIgnoreCase(objStr, objChar, isHead, ignoreCase) 
{
    if (isHead)
        return StringStartsWithIgnoreCase(objStr, objChar, ignoreCase);
    else
        return StringEndsWithIgnoreCase(objStr, objChar, ignoreCase);
}

function StringIsNotWith(objStr, objChar, isHead) 
{
    return !StringIsWith(objStr, objChar, isHead);
}

function StringIsNotWithIgnoreCase(objStr, objChar, isHead, ignoreCase) 
{
    return !StringIsWithIgnoreCase(objStr, objChar, isHead, 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 StringGetValueByLoop(str, strSplit, strValue, isUp, isLoop, strDefault) 
{
    if(str == null || str == "")
        return strDefault;

    if(strSplit == null)
        strSplit = ",";
                 
    var array = StringSplit(str,strSplit);

    var iLen = array.length;

    if(iLen == 0)
        return strDefault;

    if(strValue == null || strValue == "")
        return array[0];

    var i = 0;
    var idx = -1;
    for(i = 0; i < iLen; ++i)
    {
        if(array[i] == null)
            continue;
            
        if(array[i].trim() == strValue.trim())
        {
            if(isUp)
            {
                idx = i - 1;
                if(idx == -1)
                {
                    if(isLoop)
                        idx = iLen - 1;
                }
            } 
            else
            {
                idx = i + 1;
                
                if(idx == iLen)
                {
                    if(isLoop)
                        idx = 0;
                }    
            }   

            if(idx >= 0 && idx <= iLen - 1)
                return array[idx];
            else
                return strDefault;
        }
    }   

    return strDefault;     
}


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 CtrlOnlyNumberByThisValue()
{
    this.value = this.value.replace(/[^\d]/g, '');
}
 
// 【这些代码都无效】 //
function CtrlOnlyNumber()
{
    return CtrlOnlyNumberByCtrl(this);
}

// 【这些代码都无效】 //
function CtrlOnlyNumberByCtrl(objCtrl)
{
    if(objCtrl == null)
        return false;
        
    var theValue = ValueOnlyNumber($GetByCtrl(objCtrl,""));

    $SetByCtrl(objCtrl,theValue);
    
    // objCtrl.value = theValue;
    
    return true;         
}

// 只能是数字的TextBox //
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) 
{
    var tmp = null;

    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 {
            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 {
            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 OnMultiSelectAddByAutoRemove(objPreId, objLinkChar, objSelectNumber, bIsTree, bAutoRemove, NoAllowAddValue) 
{
    if(bAutoRemove)
    {
        if(NoAllowAddValue != null)
        {
            var objLeft = $(objPreId + "_ListBoxLeft");
            
            if (objLeft == null)
                return false;
                
            var objOption = GetListControlSelectedOption(objLeft);

            if (objOption == null)
                return false;

            var objID = objOption.value;            
            
            if(NoAllowAddValue == objID)
                return false;
            
            if (NoAllowAddValue.indexOf(objLinkChar + objID + objLinkChar) != -1) 
            {
                return false;
            }
        }            

        OnMultiSelectRemoveByAutoRemove(objPreId, objLinkChar, objSelectNumber, bIsTree, bAutoRemove); 
    }
       
    return OnMultiSelectAdd(objPreId, objLinkChar, objSelectNumber, bIsTree, NoAllowAddValue);   
}

// 是否多选
function OnMultiSelectAdd(objPreId, objLinkChar, objSelectNumber, bIsTree, NoAllowAddValue) 
{

    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(NoAllowAddValue != null)
    {
        if(NoAllowAddValue == objID)
            return false;
        
        if (NoAllowAddValue.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 OnMultiSelectRemoveByAutoRemove(objPreId, objLinkChar, objSelectNumber, bIsTree, bAutoRemove) 
{
    if(bAutoRemove)
    {
        var objRight = $(objPreId + "_ListBoxRight");

        if (objRight == null)
            return false;

        var objSelectedIndex = GetListControlSelectedIndex(objRight);

        if (objSelectedIndex == -1)
            SetListControlNextSelectedIndex(objRight,0);
    }
    
    return OnMultiSelectRemove(objPreId, objLinkChar, objSelectNumber, bIsTree); 
}

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 = "";
    
    
    
    // alert('dd');    
   
    // alert("thevalue = " + objValue );    

    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;

    var i = 0;
    
    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;
        
    // alert('dd');

    // 移除控件
    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;
            
                // alert(e.DefaultCode);

        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);
    
//    if(obj == null)
//    {
//        alert(null);
//    }
//    else
//    {
//        alert(obj);
//    }

    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 vValue = ToFullExpressionUrl(objThis.value);

    var obj = GetVUploadFileAttrClassById(objTypeId);

    var objCtrl = $(objResId);

    if (objCtrl != null)
        objCtrl.src = vValue;

    return true;
}

function OnSlowXUpLoadFileFileDoChange(oThis)
{
    if(oThis == null)
        return false;

    var vFileDo = $Get(oThis.FileDoCtrlId, SlowXUploadFiles_WebUpload);

    StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(oThis.FileUploadCtrlId, false);
    
    StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(oThis.OutLinkCtrlId, false);

    if(vFileDo == SlowXUploadFiles_WebLink)
    {
        StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(oThis.OutLinkCtrlId, true);
    }
    else if(vFileDo == SlowXUploadFiles_WebUpload)
    {
        StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(oThis.FileUploadCtrlId, true);
    }
    
    // return 
 
    return true;
}

function OnSlowXUpLoadFileChange(oThis)
{
    

    if(oThis == null)
        return false;

    var vFileType = $Get(oThis.FileTypeCtrlId,"");
    
    var vFileDo = $Get(oThis.FileDoCtrlId, SlowXUploadFiles_WebUpload);

    var vIsOut = true;

    if(vFileDo == SlowXUploadFiles_DeleteFile || vFileDo == SlowXUploadFiles_None)
        return true;

    if(vFileType == null || vFileType == "") 
    {
        // alert('c = null');
        return false;
    }

    // alert('goon' + vFileType);

    var vFileTypeArray = oThis.FileTypeArray;
    
    if(vFileTypeArray == null )
        return false;

    var vFileTypeArrayLen = GetLength(vFileTypeArray);
    
    if(vFileTypeArrayLen == 0)
        return false;
        
    var i = 0;
    
    var vSlowXFileType = null;

    var vSelectedIndex = -1;
    
    var vCtrlShowLink = $Get(oThis.CtrlShowLinkCtrlId,false);
    
    for(i = 0; i < vFileTypeArrayLen; ++i)
    {
        vSlowXFileType = vFileTypeArray[i];
        
        if(vSlowXFileType == null)
            continue;

        if(vSlowXFileType.oId == vFileType)
            vSelectedIndex = i;

        StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(vSlowXFileType.CtrlId, false);
    }    
    
    // 设置查看 //        
    if(vSelectedIndex == -1)
        return false;
        
    vSlowXFileType = vFileTypeArray[vSelectedIndex];
        
    if(vSlowXFileType == null)
        return false;

    var showCtrl = $(vSlowXFileType.CtrlId);
    
    if(showCtrl == null)
        return false;

    StyleDisplaySetCtrlDisplayByBooleanAndCtrlId(vSlowXFileType.CtrlId, true); 
    
    var vValueCtrl = "";
    var vValue = "";

    if(vFileDo == SlowXUploadFiles_WebLink)
    {
        vValueCtrl = oThis.OutLinkCtrlId;
    }
    else
    {
        vValueCtrl = oThis.FileUploadCtrlId;
        vIsOut = false;
    }

    vValue = $Get(vValueCtrl);

    if(vIsOut)
        vValue = ToFullExpressionUrl(vValue);
    else
    {
        if(IsNullOrEmptyAndBlank(vValue))
        {
            vValue = $Get(oThis.HidFileUploadCtrlId, "");
            // alert(vValue);
        }
    }        

    var tValue = null;
    
    if(IsNullOrEmptyAndBlank(vValue))
        vValue = vSlowXFileType.EmptyValue;
        
    // alert(vCtrlShowLink);     

    if(vSlowXFileType.FileType == SlowXUploadFiles_FileType_Img)
    {
        if(vCtrlShowLink)
        {
            tValue = PrintHref(vValue,oThis.ShowLinkName,"","");
        }
        else
        {
            tValue = PrintImage(vValue, "上传图片", oThis.FileWidth, oThis.FileHeight, "OnSrcClick(this);");
        }
        
        $SetByCtrl(showCtrl,tValue);
        // showCtrl.src = vValue;
    }
    else if(vSlowXFileType.FileType == SlowXUploadFiles_FileType_Flash)
    {
        if(vCtrlShowLink)
        {
            tValue = PrintHref(vValue,oThis.ShowLinkName,"","");
        }
        else
        {
            tValue = PrintFlash(vValue, oThis.FileWidth, oThis.FileHeight, false);
        }
        
        $SetByCtrl(showCtrl,tValue);
    }
    else
    {
        if(IsNullOrEmptyAndBlank(vValue))
            tValue = "";
        else
            tValue = PrintHref(vValue,oThis.ShowLinkName,"","");
            
        $SetByCtrl(showCtrl,tValue);
    }

    return true;            
}

function SlowXUpLoadFileCheck(oThis)
{


    if(oThis == null)
        return false;
        
    // alert(oThis.FileDoCtrlId);    

    var bIsUpload = false;
    
    var bIsOut = false;
    
    var vValueCtrlId = "";
    
    var vValue = "";
    
    var vOldValue = "";
    
    var i = 0;
    
    var vSlowXFileType = null;

    var vSelectedIndex = -1;   
    
    var vFileTypeArray = null;
    
    var vFileTypeArrayLen = 0; 
    
    var vNullTipMsg = oThis.NullTipMsg;
    
    if(IsNullOrEmpty(vNullTipMsg))
        vNullTipMsg = "请上传附件！";

    var vFileType = $Get(oThis.FileTypeCtrlId,"");
    
    var vFileDo = $Get(oThis.FileDoCtrlId, SlowXUploadFiles_WebUpload);

    if(vFileDo == SlowXUploadFiles_None)   
        return true;
        
    if(vFileDo == SlowXUploadFiles_DeleteFile)
    {
        if(oThis.IsNotNull)
        {
            alert("文件不能被删除！");
            return false;            
        }
        else
            return true;
    }   
 
    
    // 判断是否上传
    
    // 上传附件 //
    if(vFileDo ==  SlowXUploadFiles_WebUpload)
        bIsOut = false;
    else
        bIsOut = true; 
        
    if(bIsOut)
    {
        vValueCtrlId = oThis.OutLinkCtrlId;
    }
    else
    {
        vValueCtrlId = oThis.FileUploadCtrlId;
    }  

    vValue = $Get(vValueCtrlId, "");        
    
    // alert(vValue);
    // alert(oThis.IsNotNull); 
    // alert(oThis.IsNotNull);
    // alert("vValue = "  + vValue);

    // 如果值为空 //
    if(IsNullOrEmptyAndBlank(vValue))
    {
        // alert('canoe');
        
        // 允许为空 //
        if(!oThis.IsNotNull)
        {
            return true;
        }   
        
        // 如果是新增 //
        if(oThis.IsNew)
        {
            // 新增，不允许为空 //
            alert(vNullTipMsg);
            return false;
        }
        else
        {
            // 判断原先是否添加记录 //
            vOldValue = $Get(oThis.HidFileUploadCtrlId, "");         
            
            if(IsNullOrEmptyAndBlank(vValue))
            {
                // 编辑，但原先没有数据，不允许为空 //
                alert(vNullTipMsg);
                return false;            
            }
            else
                return true;
        }    
    }

    // 校验文件后缀 //
    if(!oThis.FullCheckFileExtension && bIsOut)
    {
        return true;
    }
 
    // 获得后缀属性 //
    vFileTypeArray = VUploadFileAttrClassArray;

    // 不需要校验 //
    if(vFileTypeArray == null )
        return true;

    vFileTypeArrayLen = GetLength(vFileTypeArray);
    
    if(vFileTypeArrayLen == 0)
        return true;

    for(i = 0; i < vFileTypeArrayLen; ++i)
    {
        vSlowXFileType = vFileTypeArray[i];
        
        if(vSlowXFileType == null)
            continue;

        if(vSlowXFileType.Id == vFileType)
        {
            vSelectedIndex = i;
            break;
        }
    }    
    
    // 没有找到 //       
    if(vSelectedIndex == -1)
        return true;
        
    vSlowXFileType = vFileTypeArray[vSelectedIndex];
        
    if(vSlowXFileType == null)
        return false;    
    
    // 获得文件后缀 //
    if(ExtensionNotCompare(vValue,vSlowXFileType.Extension,"|"))
    {
        alert("请上传“" + vSlowXFileType.Extension + "”格式的附件！");
        return false;
    }

    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 iLen = 0;
    var objRet = null;
    var i = 0;
    
    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;

        iLen = objThis.frames.length;
        i = 0;
        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;

            iLen = objThis.frames.length;
            i = 0;
            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 
    //    
    
    var objTmp = null;
    var iValue = null;

    // 写道这里 
    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;

            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)) {
            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)) {
            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)) {
            iValue = parseFloat(objValue + "");

            return iValue;
        }
        else
            return ReturnDefaultValue;
    }
    else {
        if (objValue == null)
            return null;

        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);
    
    // alert(objValue);
    
    return OnTopReturnValueAndClose(objValue);
}

function OnTopReturnValueAndClose(objValue) 
{
    if (top != null)
    {
        // alert(objValue);
        top.returnValue = objValue;
    }
    else
    {
        // alert("top == null");
    }        
    
    
//    if (bOpLogFlag)
//    {
//        // Response.Write("<script language='javascript' type='text/javascript'>alert('操作成功！'); top.returnValue = '1'; window.close(); </script>");
//        Response.Write("<script language='javascript' type='text/javascript'>  top.returnValue = '" + lTmpId + "'; window.close(); </script>");
//    }        

    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) 
{
        
    if(newPwd == null)
        newPwd = vDefaultCtrlPwd;
        
    if(confirmPwd == null)
        confirmPwd = vDefaultCtrlConfirmPwd;        

    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 DefaultCheckConfirmPwd(objThis,objVClass)
{
    if(objThis == null || objVClass == null)
        return false;

    var bNew = IsDefaultNewByCtrlId(vDefaultCtrlId,true);

    var bFlag = CheckConfirmPwdByNewFlag(vDefaultCtrlPwd, vDefaultCtrlConfirmPwd, false, bNew);

    if(!bFlag)
        return "2";
        
    return bFlag;    
}

function DefaultCheckResetPwd(objThis,objVClass)
{
    if(objThis == null || objVClass == null)
        return false;

    var bFlag = CheckConfirmPwdByNewFlag(vDefaultCtrlPwd, vDefaultCtrlConfirmPwd, false, true);

    if(!bFlag)
        return "2";
                
    return bFlag;    
}

function CheckConfirmPwdByNewFlag(newPwd, confirmPwd, bFlag, bNewFlag) {

    if(bNewFlag)
        return CheckConfirmPwd(newPwd, confirmPwd, bFlag); 
        
    if(newPwd == null)
        newPwd = vDefaultCtrlPwd;
        
    if(confirmPwd == null)
        confirmPwd = vDefaultCtrlConfirmPwd;        

    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, ImgHeight, ImgWidth);

    }
}

// 把缓存功能去掉了 //
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 IsNotCheckbox(e) 
{
    return !IsCheckbox(e);
}

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 IsText(e) 
{
    if (e == null)
        return false;

    return StringCompare(e.type, "text", true, true);
}

function IsTextArea(e)
{
    if(e == null)
        return false;
        
    return StringCompare(e.tagName, "textarea", true, true);         
} 

function IsTextBox(e) 
{
    if(e == null)
        return false;
        
    if(IsText(e))
        return true;
       
    if(IsTextArea(e))
        return true;
        
    return false;                   
}

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;

    return GetAttributeDefaultValue(thisCtrl,AttributeName);
}

function EvalSetAttributeValue(thisCtrl, AttributeName, AttributeValue) 
{
//    if (thisCtrl == null)
//        return false;

//    eval(" thisCtrl." + AttributeName + "= AttributeValue; ");

//    return true;

    return SetAttributeValue(thisCtrl, AttributeName, AttributeValue);
}


//
// 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) 
{
    return StyleSetColor(thisCtrl, objColor);
}


function StyleSetColor(thisCtrl, objColor) {
    if (thisCtrl == null)
        return false;

    if (thisCtrl.style == null)
        return false;

    if (objColor == null)
        objColor = "";

    thisCtrl.style.color = objColor;

    return true;
}


// 
function StyleGetColor(thisCtrl) 
{
    if (thisCtrl == null)
        return null;

    if (thisCtrl.style == null)
        return null;

    var obj = thisCtrl.style.color;

    return obj;
}

// 
// 获得backgroundColor
// 
function StyleGetBackgroundColor(thisCtrl) 
{
    if (thisCtrl == null)
        return null;

    if (thisCtrl.style == null)
        return null;

    var obj = thisCtrl.style.backgroundColor;

    return obj;
}

//
// 设置backgroundColor
// 
function StyleSetBackgroundColor(thisCtrl, objColor) 
{
    if (thisCtrl == null)
        return false;

    if (thisCtrl.style == null)
        return false;

    if (objColor == null)
        objColor = "";

    thisCtrl.style.backgroundColor = objColor;

    return true;
}


// 
function GetStyleColor(thisCtrl) 
{
    return StyleGetColor(thisCtrl);
}

//
// 文本提示
// 
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;

}

//
// TreeView的搜索
// 
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) {
    return CheckUploadFileByDefaultAll(objThis, objExtensionCompare, linkChar, oDefault,true);
}

function CheckUploadFileByDefaultAll(objThis, objExtensionCompare, linkChar, oDefault,vAll) {

    var retArray = FileCtrlGetElementsByInputType(objThis);

    if (retArray == null)
        return oDefault;

    var iLen = retArray.length;
    var i = 0;
    var iCount = 0;
    var ctrl = null;
    
    var bFind = false;

    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))
        {
            if(vAll)
                return false;
        }
        else
            bFind = true;                            
    }

    if (iCount == 0)
        return oDefault;
    else
    {
        return bFind;
    }
}

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 AjaxLoginByCtrl(WebTypeId,DebugMode,UserNameCtrlClientId,PwdCtrlClientId,VerifyCodeCtrlClientId,CookieTimeCtrlClientId,CookieTime,ajaxName)
{
    var vUserName = $Get(UserNameCtrlClientId,"");
    var vPwd = $Get(PwdCtrlClientId,"");
    var vVerifyCode = $Get(VerifyCodeCtrlClientId,"");
    var vCookieTime = $Get(CookieTimeCtrlClientId,"0");

    return AjaxLogin(WebTypeId,DebugMode,vUserName,vPwd,vVerifyCode,vCookieTime,CookieTime,ajaxName);
}

//
function AjaxLogin(WebTypeId,DebugMode,vUserName,vPwd,vVerifyCode,vCookieTime,CookieTime,ajaxName)
{
    var vCookie = CookieTime;
    
    if(vCookie == null || vCookie == "")
    {
        if(IsBooleanType(vCookieTime))
        {
            // 0 & 1 不行，要true和false //
            vCookie = BooleanToString(vCookieTime)+"";
        }
        else               
            vCookie = vCookieTime;
    }

    var objValue = null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(WebTypeId,vUserName,vPwd ,vVerifyCode,DebugMode,vCookie),'');";

    eval(evalValue);

    return objValue;
} 

 

//
// Ajax 的退出
//
function jsAjaxLogout(WebTypeId, ajaxName, goToUrl,  confirmMsg)
{
    if(confirmMsg == null)
        confirmMsg = "确定退出？"
        
    if(confirmMsg != "")
    {
        if(!confirm(confirmMsg))
            return true;
    }

    if(IsNullOrEmptyAndBlank(ajaxName))
        ajaxName = "AjaxLogout"; 
         
     
    var objValue = null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(WebTypeId),false);";

    eval(evalValue);
    
    // alert(objValue);
    
    if(objValue)
    {
        if(goToUrl == null || IsNotNullOrEmptyAndBlank(goToUrl))
            OnGo(goToUrl);
    }

    return objValue;
} 


// 
function AjaxCheckVerifyCodeByCtrl(WebTypeId,DebugMode,VerifyCodeCtrlClientId,ajaxName)
{
    var vVerifyCode = $Get(VerifyCodeCtrlClientId,"");

    return AjaxCheckVerifyCode(WebTypeId,DebugMode,vVerifyCode,ajaxName);
}

//
function AjaxCheckVerifyCode(WebTypeId,DebugMode,vVerifyCode,ajaxName) 
{ 
    var objValue = null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(WebTypeId, vVerifyCode,DebugMode),false);";

    eval(evalValue);

    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 AjaxLoadByIdsByCtrl(idsCtlId,curIdctrlId,valueCtrlId,ajaxName,isUp,isLoop)
{
    var vIdsValue = $CtrlValue(idsCtlId, "");
    var vCurIdValue = $CtrlValue(curIdctrlId,"");
    var ctrlValue = $(valueCtrlId);
    var ctrlCurId = $(curIdctrlId);
    
    

    return AjaxLoadByIds(vIdsValue,vCurIdValue, ctrlValue, ctrlCurId, ajaxName,isUp,isLoop);
}

//
function AjaxLoadByIds(vIdsValue, vCurIdValue, ctrlValue, ctrlCurId, ajaxName, isUp, isLoop)
{

    var objValue = null;
    
    var newId = StringGetValueByLoop(vIdsValue,null,vCurIdValue,isUp,isLoop,null);
    
 
    
    if(newId == null)
        return null;

    var evalValue = " objValue = GetResponseValueNullToDefault(" + ajaxName + "(newId),null);";

    eval(evalValue);

    if(objValue != null)
    {
        $SetByCtrl(ctrlValue,objValue);
    }
    
    if(ctrlCurId != null)
    {
        $SetByCtrl(ctrlCurId,newId);
    }

    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);
    }         
    
    // alert(theValue);
    
    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);
    // google 浏览器的属性，如果没有分割符，返回全部 //
    var tmpValue = StringGetEndBySplitAndBooleanAndIsLastIndexOf(theValue,"\\",true,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();
    
    return FileExtensionGet(theValue, isFill);          
}

function FileDefaultExtensionGet(theValue)
{
    return FileExtensionGet(theValue, true);
}

function FileExtensionGet(theValue, isFill)
{
    if(IsNullOrEmptyAndBlank(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; 
    
    // alert(ctrl.disabled);
    
    return true;
}


function CtrlGetDisabledByCtrlId(ctrlId, bFlag)
{
    var ctrl = $(ctrlId);
    
    return CtrlGetDisabled(ctrl,bFlag);
}

function CtrlGetDisabled(ctrl, bFlag)
{
    if(ctrl == null)
        return bFlag;
        
    return ctrl.disabled;
}

// 
function CtrlSetReadOnlyByCtrlId(ctrlId,bFlag)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetReadOnly(ctrl,bFlag);
}

//   
function CtrlSetReadOnly(ctrl,bFlag)
{
    if(ctrl == null)
        return false;
        
    ctrl.readonly = bFlag; 
    
    return true;
}


function CtrlGetReadOnlyByCtrlId(ctrlId, bFlag)
{
    var ctrl = $(ctrlId);
    
    return CtrlGetReadOnly(ctrl,bFlag);
}

function CtrlGetReadOnly(ctrl, bFlag)
{
    if(ctrl == null)
        return bFlag;
        
    return ctrl.readonly;
}


// 
function CtrlSetDisabledOrReadOnlyByCtrlId(ctrlId, bFlag, bIsDisabled)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetDisabledOrReadOnly(ctrl, bFlag, bIsDisabled);
}

//   
function CtrlSetDisabledOrReadOnly(ctrl, bFlag, bIsDisabled)
{
    if(ctrl == null)
        return false;

    if(bIsDisabled)
        return CtrlSetDisabled(ctrl, !bFlag);
    else
        return CtrlSetReadOnly(ctrl, bFlag); 
    
    return true;
}


// 
function CtrlSetDisabledOrReadOnlyByCtrlIdAndCheckBoxId(chkId, ctrlId  , bIsDisabled)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetDisabledOrReadOnlyByCheckBoxId(chkId, ctrl , bIsDisabled);
}

function CtrlSetDisabledOrReadOnlyByCtrlIdAndCheckBox(chk, ctrlId , bIsDisabled)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetDisabledOrReadOnlyByCheckBox(chk, ctrl , bIsDisabled);
}

//   
function CtrlSetDisabledOrReadOnlyByCheckBoxId(chkId, ctrl , bIsDisabled)
{
    CtrlSetDisabledOrReadOnlyByCheckBox($(chkId), ctrl , bIsDisabled);
}

function CtrlSetDisabledOrReadOnlyByCheckBox(chk, ctrl, bIsDisabled)
{
    
    if(chk == null)
        return false;

    var bFlag = chk.checked;

    if(ctrl == null)
        return false;

    return CtrlSetDisabledOrReadOnly(ctrl, bFlag, bIsDisabled);
}

function CtrlSetDisabledOrReadOnlyAndVisibleByCtrlIdAndCheckBoxId(chkId, ctrlId, btnCtrlId, bIsDisabled)
{
    var ctrl = $(ctrlId);
    var btnCtrl = $(btnCtrlId);

    return CtrlSetDisabledOrReadOnlyAndVisibleByCheckBoxId(chkId, ctrl, btnCtrl, bIsDisabled);
}

function CtrlSetDisabledOrReadOnlyAndVisibleByCtrlIdAndCheckBox(chk, ctrlId, btnCtrl, bIsDisabled)
{
    var ctrl = $(ctrlId);
    
    return CtrlSetDisabledOrReadOnlyAndVisibleByCheckBox(chk, ctrl, btnCtrl, bIsDisabled);
}

//   
function CtrlSetDisabledOrReadOnlyAndVisibleByCheckBoxId(chkId, ctrl, btnCtrl, bIsDisabled)
{
    CtrlSetDisabledOrReadOnlyAndVisibleByCheckBox($(chkId), ctrl, btnCtrl, bIsDisabled);
}

function CtrlSetDisabledOrReadOnlyAndVisibleByCheckBox(chk, ctrl, btnCtrl, bIsDisabled)
{
    if(chk == null)
        return false;

    var bFlag = CtrlSetDisabledOrReadOnlyByCheckBox(chk, ctrl, bIsDisabled);
   
    if(!bFlag)
        return false;
        
    if(btnCtrl != null)            
        bFlag = StyleDisplaySetCtrlDisplayByCheckBox(btnCtrl, chk);
    
    return bFlag;
}



function CtrlGetIsEnabledByCtrlId(ctrlId)
{
    return CtrlGetIsEnabled($(ctrlId));
}

function CtrlGetIsEnabled(ctrl)
{
    if(ctrl == null)
        return false;
        
    var vDisabled = CtrlGetDisabled(ctrl, true);
    
    if(vDisabled)
        return false;        
        
    if(IsTextBox(ctrl))
    {
        vDisabled = CtrlGetReadOnly(ctrl, true);      
        
        if(vDisabled)
            return false;        
    }
    
    return true;
}

function CtrlGetIsNotEnabledByCtrlId(ctrlId)
{
    return CtrlGetIsNotEnabled($(ctrlId));
}

function CtrlGetIsNotEnabled(ctrl)
{
    return !CtrlGetIsEnabled(ctrl);
}

// 
// 设置控件的值    
// 
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;             
} 


function FCACountGetByCtrlId(ctrlId)
{
    return FCACountGet($(ctrlId));
}

function FCACountGet(ctrl)
{
    return CtrlGetValue(ctrl,null);
}

function FCACountSetByCtrlId(ctrlId,oAdd)
{
    return FCACountSet($(ctrlId),oAdd);
}

function FCACountSet(ctrl,oAdd)
{
    if(ctrl == null)
        return false;
        
    var t =  FCACountGet(ctrl);
    
    var ret = GetFloat(t) + GetFloat(oAdd+"");
    
    return CtrlSetValue(ctrl,ret);
}

function FCACount(ctrlHidId,ctrlLabelId,oAdd)
{
    FCACountSetByCtrlId(ctrlHidId,oAdd);
    
    var t = FCACountGetByCtrlId(ctrlHidId);
    
    return CtrlSetValueByCtrlId(ctrlLabelId,t);
}

function FCACountInit(ctrlHidId,ctrlLabelId)
{
    var t = FCACountGetByCtrlId(ctrlHidId);
    
    return CtrlSetValueByCtrlId(ctrlLabelId,t);
}


// ##########################################################################
// ####################### 游戏相关的代码 ################################
// ########################################################################

// 
// 游戏创建随机种子
// 
function GameCreateRandom(iNum, iMaxValue)
{
    var array = new Array();
    
    if(iNum <= 0)
        return array;
        
    var i = 0;
    
    for(i = 0; i < iNum; ++i)
    {
        array[i] = GetRandomNum(iMaxValue);
    }
    
    return array;
}


// 
// 游戏创建随机种子
// 
function GameCreateRandomByRowCol(row, col, iMaxValue)
{
    return GameCreateRandom(row*col, iMaxValue);
}

function GameInitArray(iNum)
{
    var array = new Array();
    
    var i = 1;
    
    for(i = 1; i <= iNum; ++i)
        array[i-1] = i;
        
    return array;        
}

function GameCreateRandomByLen(iNum)
{
    var array = new Array();

    var arrayInit = GameInitArray(iNum);

    if(iNum <= 0)
        return array;

    var i = 0;
    var j = 0;
    
    var theValue = 0;
    
    var iRandom = 0;

    for(i = 0; i < iNum; ++i)
    {
        iRandom = GetRandomNum(iNum);
        
        if(arrayInit[iRandom] != 0)
        {
            theValue = arrayInit[iRandom];
            arrayInit[iRandom] = 0;
        }
        else
        {
            for(j = 0; j < iNum; ++j)
            {
                if(arrayInit[j] != 0)
                {
                    theValue = arrayInit[j];
                    arrayInit[j] = 0;
                    break;                    
                }
            }            
        }

        array[i] = theValue;
    }

    return array;
}

function GetArrayValue(theArray,i,j,row,oDefault)
{
    if(theArray == null)
        return oDefault;
        
    var iLen = theArray.length;
    
    var idx = i*row+j;

    if(idx < 0 || idx >= iLen)
        return oDefault;
    else
        return theArray[idx];
}

// 
// 点灯游戏
// 
function GameLightCreate(oSpanId,row,col,fnName)
{
    var theSpan = $(oSpanId);

    if(theSpan == null)
        return false;

    var rArray = GameCreateRandomByRowCol(row,col,2);

    var theResult = "";

    theResult += "<table border='1'><tbody>";
    
    var i = 0;
    var j = 0;
    
    var theStyle = "";
    var arrayValue = 0;
    
    for(i = 1; i <= col; ++i)
    {
        theResult += "<tr>";
        
        for(j = 1; j <= row; ++j)
        {
            theStyle = " style=' background-color:Red;' ";
            
            arrayValue = GetArrayValue(rArray,i-1,j-1,row,0);
            
            if(arrayValue == 0)
                theStyle = "";

            theResult += "<td id='td_"+i+"_"+j+"' onclick='GameLightTDClick("+i+","+j+",\""+fnName+"\"); ' width='100px' height='100px' " + theStyle + "></td>";
        }
        
        theResult += "</tr>";
    }
    
    theResult += "</tbody></table>";

    theSpan.insertAdjacentHTML("beforeEnd", theResult);

    return true;
}


// 
// 点灯游戏 TD 点击
// 
function GameLightTDClick(i,j,fnName)
{
    GameLightTDChange(i-1,j);
    GameLightTDChange(i,j);
    GameLightTDChange(i+1,j);
    GameLightTDChange(i,j-1);
    GameLightTDChange(i,j+1);

    
    EvalFunctionByJudge(fnName, "", true, false);
    
    var bResult = GameLightTDIsOver();
    
    if(bResult)
        alert("OK！");

}

function GameLightTDChange(i,j)
{
    var theTD = $("td_" + i + "_" + j);
    
    if(theTD == null)
        return true;

    var theValue = StyleGetBackgroundColor(theTD);
    
    if(theValue == "")
        theValue = "red";
    else
        theValue = "";

    return StyleSetBackgroundColor(theTD,theValue);
}

function GameLightTDIsOver()
{
    var i = 1;
    var j = 1;
    var theValue = "";

    var ctrl = null;
    
    while(true)
    {
        j = 1;
        
        while(true)
        {
            ctrl = $("td_" + i + "_" + j);             
            
            if(ctrl == null)
                break;
                
            theValue = StyleGetBackgroundColor(ctrl);                            
            
            if(theValue == "")
                return false;

            ++j;                
        }
        
        if(j == 1)
            break;
            
        ++i;            
    }
    
    return true;
}


// 
// 点灯游戏
// 
function GameMapCreate(oSpanId,row,col,fnName)
{
    var theSpan = $(oSpanId);

    if(theSpan == null)
        return false;

    var iLen = row * col - 1;
    var rArray = GameCreateRandomByLen(iLen);

    var theResult = "";

//    var k = 0;
//    for(k = 0; k < iLen; ++k)
//    {
//        theResult += rArray[k];
//    }

    theResult += "<table border='1'><tbody>";

    var i = 0;
    var j = 0;
    
    var theStyle = "";
    var arrayValue = 0;
    
    for(i = 1; i <= col; ++i)
    {
        theResult += "<tr>";
        
        for(j = 1; j <= row; ++j)
        {
            arrayValue = GetArrayValue(rArray,i-1,j-1,row,0);
            
            if(arrayValue == 0)
                theStyle = "&nbsp;";
            else
                theStyle = arrayValue+"";                

            theResult += "<td align='center' id='td_"+i+"_"+j+"' onclick='GameMapTDClick("+i+","+j+",\""+fnName+"\"); ' width='100px' height='100px'>" + theStyle + "</td>";
        }
        
        theResult += "</tr>";
    }
    
    theResult += "</tbody></table>";

    theSpan.insertAdjacentHTML("beforeEnd", theResult);

    return true;
}

function GameMapTDGetValue(i,j)
{
    var theTD = $("td_" + i + "_" + j);

    return CtrlGetValue(theTD,null);
}

// 
// 拼图游戏 TD 点击
// 
function GameMapTDClick(i,j,fnName)
{
    var theTD = $("td_" + i + "_" + j);

    if(theTD == null)
        return true;

    var tdValue = GameMapTDGetValue(i,j);

    
    if(tdValue == null || tdValue == "&nbsp;")
        return true;

    var bSet = false;
    
    if(!bSet)
        bSet = GameMapTDChange(i-1, j, tdValue);
    
    if(!bSet)
        bSet = GameMapTDChange(i+1, j, tdValue);

    if(!bSet)
        bSet = GameMapTDChange(i, j-1, tdValue);

    if(!bSet)
        bSet = GameMapTDChange(i, j+1, tdValue);

    if(bSet)
        CtrlSetValue(theTD,"&nbsp;");

    EvalFunctionByJudge(fnName, "", true, false);
    
    var bResult = GameMapTDIsOver();
    
    if(bResult)
        alert("OK！");

}

function GameMapTDChange(i,j, tdSetValue)
{
    var theTD = $("td_" + i + "_" + j);

    if(theTD == null)
        return false;

    var tdValue = GameMapTDGetValue(i,j);

    if(tdValue == null)
        return false;
        
    if(tdValue == "&nbsp;")        
    {
        CtrlSetValue(theTD,tdSetValue);
        
        return true;
    }

    return false;
}

function GameMapTDIsOver()
{
    var i = 1;
    var j = 1;
    var idx = 0;

    var theValue = "";
    
    var bIsEnd = false;        

    var ctrl = null;
    
    while(true)
    {
        j = 1;
        
        while(true)
        {
            ctrl = $("td_" + i + "_" + j);             
            
            if(ctrl == null)
                break;
                
            ++idx; 
            
            theValue = CtrlGetValue(ctrl,null); 

            if(theValue == null)
                return false;

            if(theValue == "&nbsp;")
            {
                bIsEnd = true;
                
            }
            else
            {
                if(theValue != (idx+""))
                    return false;
                    
                bIsEnd = false;                    
            }
            
            ++j;                
        }
        
        if(j == 1)
        {
            if(!bIsEnd)
                return false;                
                
            break;
        }
            
        ++i;            
    }
    
    return true;
}


// ########################################################### //
// ################### 图片onerror ########################## //
// ########################################################## //

//
// 图片 onerror 的事件
// 
function ImgOnDefaultErrorById(ctrlImgId)
{
    return ImgOnDefaultError($(ctrlImgId));
}

//
// 图片 onerror 的事件
// 
function ImgOnDefaultError(ctrlImg)
{
    return ImgOnError(ctrlImg, null);
}

//
// 图片 onerror 的事件
// 
function ImgOnErrorById(ctrlImgId, imgSrc)
{
    return ImgOnError($(ctrlImgId), imgSrc);
}

//
// 图片 onerror 的事件
// 
function ImgOnError(ctrlImg, imgSrc)
{
    if(imgSrc == null)
        imgSrc = GetErrorImage();
        
    if(imgSrc == "")
        return true;
                
    if(ctrlImg == null)
        return false;
        
    ctrlImg.src = imgSrc;
    
    return true; 
    
}

// ############################################################# //
// ################### 图片onerror END ####################### //
// ########################################################## //

function InitDefalutIntArray(iLen,iDefault)
{
    if(iLen <= 0)
        return null;
        
    var rArray = new Array();
    
    var i = 0;
    
    for(i = 0; i < iLen; ++i)
    {
        rArray[i] = iDefault;
    }   
    
    return rArray;     
}


//
// 搜索的Click
//
function OnSearchClick(txtId, url, msg, aId)
{
    if(url == null || url == "")
        return false;
    
    var txt = $(txtId);
    
    if(txt == null)
        return false;

    if(msg == null)
        msg = "请输入搜索关键词！";

    var txtValue = txt.value.trim();
    
    if(txtValue == "")
    {
        MyAlert(msg,txt);
        
        return false;
    }
       
    txtValue = GetEncodeText(txtValue);
    
    var theUrl = url + txtValue;        
    
    var aCtrl = $(aId);
    
    if(aCtrl == null)
    {
        MyOpenDefaultUrlClick(theUrl);
    }
    else
    {
        aCtrl.href = theUrl;
        aCtrl.click();
    }
    
    return true;
    
    
}

//
// 搜索的Click
//
function OnDefaultSearchClickByCtrl(txtId, ctrlId, url, msg, aId)
{
    if(url == null || url == "")
        return false;

    if(msg == null)
        msg = "请输入搜索关键词！";

    var txt = $(txtId);
    
    if(txt == null)
        return false;   
        
    var txtValue = txt.value.trim();
    
    if(txtValue == "")
    {
        MyAlert(msg,txt);
        
        return false;
    }
       
    txtValue = GetEncodeText(txtValue);   
    
        
    
    var vP = "";
    
    var vValue = null;
    var vCtrl = null;    
    
    vP = txtId + "=" + txtValue;

   
    
    var cArray = StringSplit(ctrlId,"|");
    var cLen = cArray.length;
    
    
    if(cArray != null)
    {
        for(var i = 0; i < cLen; ++i)
        { 
            vCtrl = $(cArray[i]);
            
            if(vCtrl == null)
                continue;
                
            vValue = $GetByCtrl(vCtrl);
            
            // alert(cArray[i] + " ~ " + vValue);
            
            if(IsNullOrEmpty(vValue))
                continue;
        
            if(vP != "")
                vP += "&";
        
            vP += cArray[i] + "=" + GetEncodeText(vValue);          
        }    
    } 

    var theUrl = AddUrlParams(url,vP);
    
   

    var aCtrl = $(aId);
    
    if(aCtrl == null)
    {
        MyOpenDefaultUrlClick(theUrl);
    }
    else
    {
        aCtrl.href = theUrl;
        aCtrl.click();
    }
    
    return true;
}

function OnSearchClickByCtrl(ctrlId, url, msg, aId)
{
    if(url == null || url == "")
        return false;

    if(msg == null)
        msg = "请输入搜索关键词！";

    var cArray = StringSplit(ctrlId,"|");
    
    if(cArray == null)
        return false;

    var vP = "";
    var cLen = cArray.length;
    var vValue = null;
    var vCtrl = null;
    
    for(var i = 0; i < cLen; ++i)
    { 
        vCtrl = $(cArray[i]);
        
        if(vCtrl == null)
            continue;
            
        vValue = $GetByCtrl(vCtrl);
        
        
        
        if(IsNullOrEmpty(vValue))
            continue;
    
        if(vP != "")
            vP += "&";
    
        vP += cArray[i] + "=" + GetEncodeText(vValue);          
    }    
    
    if(vP == "")
    {
        MyAlert(msg,txt);
        
        return false;
    }

    var theUrl = AddUrlParams(url,vP);

    var aCtrl = $(aId);
    
    if(aCtrl == null)
    {
        MyOpenDefaultUrlClick(theUrl);
    }
    else
    {
        aCtrl.href = theUrl;
        aCtrl.click();
    }
    
    return true;
    
    
}


function AjaxPageLoadItem(vCtrlId, vUrl, vId, vPageIndex, vPageSize, vClientId)
{
    var ctrl = $(vCtrlId);
    
    if(ctrl == null)
        return false;
        
    var tmp = "";
    
    if(vUrl == null || vUrl == "")
    {
        if(IsFunctionType(AjaxPageLoadItemGetUrl))
        {
            tmp = " vUrl = AjaxPageLoadItemGetUrl(vCtrlId); ";
            eval(tmp);            
        }
    }
    
    if(vUrl == null || vUrl == "")
        return false;

    var theUrl = vUrl;
    
    tmp = "";
    
    if(vId != null && vId != "")
        tmp = tmp + "&id=" + vId;
        
    if(vPageIndex != null && vPageIndex != "")
        tmp = tmp + "&pageindex=" + vPageIndex;
        
    if(vPageSize != null && vPageSize != "")
        tmp = tmp + "&pagesize=" + vPageSize;
        
    if(vClientId != null && vClientId != "")
        tmp = tmp + "&clientid=" + vClientId;
        
    if(vCtrlId != null && vCtrlId != "")
        tmp = tmp + "&ctrlid=" + vCtrlId;


    theUrl = InsertDate(theUrl);

    theUrl = theUrl + tmp;
    
    showDataRequest(theUrl,vCtrlId); 
    
    return true;
}

// 暂无应用(2010.03.04)
function FusionChartsDefaultView(url,flashUrl,showId)
{
    return FusionChartsDefaultView(url,flashUrl,showId,"",700,300);
}

// 暂无应用(2010.03.04)
function FusionChartsView(url,flashUrl,showId,theId,w,h)
{
    if(IsNullOrEmptyAndBlank(url) || IsNullOrEmptyAndBlank(flashUrl) || IsNullOrEmptyAndBlank(showId))
        return false;
        
    if(IsNotControl(showId))
        return false;     
        
    if(IsNullOrEmptyAndBlank(theId))
        theId = "myChartId";         

    var myChart = new FusionCharts(flashUrl, theId, w, h, "0", "0");

    myChart.setDataURL(url);
    
    myChart.render(showId);
    
    return true;
}


function WindowLocationHref()
{
    if(window == null)
        return "";
        
    if(window.location == null)
        return "";
                
    return window.location.href;
}

function WindowDefaultAddFavorite(oTitle)
{
    return WindowAddFavorite(null,oTitle);
}

function WindowAddFavorite(oUrl,oTitle)
{
    if(window == null)
        return false;
        
    if(window.external == null)
        return false; 
    
    if(IsNullOrEmptyAndBlank(oUrl))
        oUrl = WindowLocationHref();
        
    if(oTitle == null)
        oTitle = "";        
    
    window.external.AddFavorite(oUrl,oTitle);
    
    return true;
}

function ToRelativeAddressForCtrl(ctrlId, bIsWeb, objPhysicalApplicationPath)
{
    var c = $(ctrlId);

    if(c == null)
        return false;

    var obj = $GetByCtrl(c, "");
 
    var ret = ToRelativeAddress(obj, bIsWeb, objPhysicalApplicationPath);
    
    return $SetByCtrl(c,ret);
    
}

function ToRelativeAddress(obj, bIsWeb, objPhysicalApplicationPath)
{
    if(IsNullOrEmptyAndBlank(obj))
    {
        return "";
    }

    if(objPhysicalApplicationPath == null)
        objPhysicalApplicationPath = GetPhysicalApplicationPath();

    if(objPhysicalApplicationPath == "")
        return obj;             
        
    var idx = StringIndexOfIgnoreCase(obj,objPhysicalApplicationPath,true);

    if(idx == -1)
        return obj;
        
    var theIdx = idx + GetLength(objPhysicalApplicationPath);        
        
    var ret = StringGetStrByIndex(obj, theIdx, false);
    
    ret = StringToName(ret,bIsWeb);
    
    return ret;                
}


function ToClassNameByRelativeAddressForCtrl(ctrlId,fromCtrlId)
{
    var varCtrl = $(ctrlId);
    var fromCtrl = $(fromCtrlId);

    if(varCtrl == null || fromCtrl == null)
        return false;

    var obj = $GetByCtrl(fromCtrl, "");
 
    var ret = ToClassNameByRelativeAddress(obj);
    
    return $SetByCtrl(varCtrl,ret);
    
}

function ToClassNameByRelativeAddress(obj)
{
    if(IsNullOrEmptyAndBlank(obj))
        return "";

    obj = StringGetLowerCase(obj);
    
    var idx = StringLastIndexOfIgnoreCase(obj,".",true);

    if(idx != -1)
        obj = StringGetStrByIndex(obj, idx, true);

    var ret = obj;
    
    ret = StringReplaceByBoolean(ret,"/","_",true);
    
    ret = StringReplaceByBoolean(ret,"\\","_",true);
    
    return ret;                
}

function StringToName(obj, bIsWeb)
{
    if(obj == null)
        return "";

    var ret = obj; 
    var oldChar = StringGetChar(!bIsWeb);
    var newChar = StringGetChar(bIsWeb);
    
    ret = StringReplaceByBoolean(ret,oldChar,newChar,true);

    return ret;
}

function StringGetChar(bIsWeb)
{
    if(bIsWeb)
        return "/";
    else        
        return "\\";
}
 
function FCADefineReportViewAndInputDoClick(vClientId,maxRow,maxCol,vSpanClientId,vTextClientId)
{
    var v = $VRBL(vClientId,"1");
            
    var bFlag = GetDefaultBoolean(v,false);

    var i = 0;
    var j = 0;
    var ctrlSpan = null;
    var ctrlTxt = null;

    for(i = 0; i < maxRow; ++i)
    {
        for(j = 0; j < maxCol; ++j)
        {
            ctrlSpan = $(vSpanClientId + i + "_" + j);
            ctrlTxt = $(vTextClientId + i + "_" + j);

            if(ctrlSpan == null || ctrlTxt == null)
                continue;

            StyleDisplaySetCtrlDisplayByBoolean(ctrlSpan,!bFlag);                        
            StyleDisplaySetCtrlDisplayByBoolean(ctrlTxt,bFlag);

        }

    } 
 
    
    return true;
} 

function FCADefineReportCheckBoxClick(vClientId, maxRow, maxCol, bCompareFlag, vCtrlClientId)
{
    var v = $Get(vClientId, "");
            
    var bFlag = GetDefaultBoolean(v, false);
    var bShowFlag = (bFlag == bCompareFlag);

    var i = 0;
    var j = 0;
    var ctrl = null;

    for(i = 0; i < maxRow; ++i)
    {
        for(j = 0; j < maxCol; ++j)
        {
            ctrl = $(vCtrlClientId + i + "_" + j);

            if(ctrl == null)
                continue;

            StyleDisplaySetCtrlDisplayByBoolean(ctrl,bShowFlag);                        
        }
    } 

    return true;
} 

function FCADefineReportDropDownListClick(vClientId, maxRow, maxCol,  vCtrlClientId)
{
    var v = $Get(vClientId, "");

    if(v == -2)
        return true;
        
    var i = 0;
    var j = 0;
    var ctrl = null;
    var vAttributeValue = "";

    for(i = 0; i < maxRow; ++i)
    {
        for(j = 0; j < maxCol; ++j)
        {
            ctrl = $(vCtrlClientId + i + "_" + j);

            if(ctrl == null)
                continue;

            if(v == -1)
                ctrl.checked = true;
            else if(v == 0)
                ctrl.checked = false;                
            else 
            {
                vAttributeValue = GetAttributeDefaultValue(ctrl, "CheckBoxIndex");
                
                if(StringContains(vAttributeValue,","+v+","))
                    ctrl.checked = true;
                else
                    ctrl.checked = false;                    
            }    
        }
    } 

    return true;
} 



// 
//
// 

function GetDefaultScrollLeft()
{
    var xScroll = 0;
    
    if (self != null && self.pageXOffset) 
    {
        xScroll = self.pageXOffset;
    }
    else
    {
        if(document == null)
            return xScroll;

        if (document.documentElement != null && document.documentElement.scrollLeft != null)
        {
            xScroll = document.documentElement.scrollLeft;
        } 
        else if (document.body != null) 
        {
            xScroll = document.body.scrollLeft;
        }
    }
    
    return xScroll;
}

function GetDefaultScrollTop()
{
    var yScroll = 0;
    
    if (self != null && self.pageYOffset) 
    {
        yScroll = self.pageYOffset;
    }
    else
    {
        if(document == null)
            return yScroll;
            
        if (document.documentElement != null && document.documentElement.scrollTop != null)
        {
            yScroll = document.documentElement.scrollTop;
        } 
        else if (document.body != null) 
        {
            yScroll = document.body.scrollTop;
        }
    }
    
    return yScroll;
}

function GetDefaultClientWidth()
{
     
    var windowWidth;
    
    if (self.innerWidth) 
    {
        windowWidth = self.innerWidth;
    } 
    else if (document.documentElement && document.documentElement.clientWidth) 
    {
        windowWidth = document.documentElement.clientWidth;
    } 
    else if (document.body) 
    {
        windowWidth = document.body.clientWidth;

    } 

    return windowWidth;
    
}

function GetDefaultClientHeight()
{
     
    var windowHeight;
    
    if (self.innerHeight) 
    {
        windowHeight = self.innerHeight;
    } 
    else if (document.documentElement && document.documentElement.clientHeight) 
    {
        windowHeight = document.documentElement.clientHeight;
    } 
    else if (document.body) 
    {
        windowHeight = document.body.clientHeight;

    } 

    return windowHeight;
    
}

function CloseDefaultDiv(objThis)
{
    var oCtrl = GetParentElement(objThis);
    
    oCtrl = GetParentElement(oCtrl);

    StyleDisplaySetCtrlDisplayByBoolean(oCtrl,false);
    
    return true;
}

function CloseDefaultByCtrl(objThis)
{
    StyleDisplaySetCtrlDisplayByBoolean(objThis,false);

    return true;
}


// 复制代码 
function copyCode(obj) 
{
	if(isIE && obj.style.display != 'none') 
	{
		var rng = document.body.createTextRange();
		rng.moveToElementText(obj);
		rng.scrollIntoView();
		rng.select();
		rng.execCommand("Copy");
		rng.collapse(false);
	}
	
	return true;
}

function runCode(obj) {
	var winname = window.open('', "_blank", '');
	winname.document.open('text/html', 'replace');
	winname.document.write(obj.value);
	winname.document.close();
}

function saveCodeByCtrl(obj) 
{
    return saveCodeAndName(obj,null);
}

function saveCodeByCtrlAndName(obj,oName) 
{
    var oValue = $GetByCtrl(obj);
    
    return saveCodeAndName(oValue,oName);
}
function saveCode(obj) 
{
    return saveCodeAndName(obj,null);
}

function saveCodeAndName(obj,oName) 
{
    if(IsNullOrEmptyAndBlank(oName))
        oName = "code.htm";

	var winname = window.open('', '_blank', 'top=10000');
	winname.document.open('text/html', 'replace');
	winname.document.writeln(obj);
	winname.document.execCommand('saveas','',oName);
	winname.close();
}

function PrintImage(vUrl,vAlt,vWidth,vHeight,vOnClick)
{

    var vResult = "";

    var vJS = "";
    
    if(IsNotNullOrEmptyAndBlank(vOnClick))
        vJS = ' onclick="' + GetQ(vOnClick) + '" ';

    vResult = vResult + '<img alt="'+ GetQ(vAlt) +'" src="' + GetQ(vUrl) + '" ' + vJS + ' style="cursor:hand;" ' + PrintWHValue(vWidth,vHeight,true) + ' border="0"  />';
    
    return vResult;     
}


function PrintVideo(vUrl,vWidth,vHeight)
{
    var vResult = "";

    vResult = vResult + '<object ' + PrintWHValue(vWidth,vHeight,true) + ' classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" VIEWASTEXT>';
    vResult = vResult + '<param NAME="AutoStart" VALUE="1">'; 
    vResult = vResult + '<param NAME="Balance" VALUE="0">';  
    vResult = vResult + '<param name="enabled" value="-1">';  
    vResult = vResult + '<param NAME="EnableContextMenu" VALUE="-1">';  
    vResult = vResult + '<param NAME="url" value="' + GetQ(vUrl) + '">'; 
    vResult = vResult + '<param NAME="PlayCount" VALUE="1">'; 
    vResult = vResult + '<param name="rate" value="1">'; 
    vResult = vResult + '<param name="currentPosition" value="0">'; 
    vResult = vResult + '<param name="currentMarker" value="0">'; 
    vResult = vResult + '<param name="defaultFrame" value="">'; 
    vResult = vResult + '<param name="invokeURLs" value="0">'; 
    vResult = vResult + '<param name="baseURL" value="">'; 
    vResult = vResult + '<param name="stretchToFit" value="0">'; 
    vResult = vResult + '<param name="volume" value="50">'; 
    vResult = vResult + '<param name="mute" value="0">'; 
    vResult = vResult + '<param name="uiMode" value="mini">'; 
    vResult = vResult + '<param name="windowlessVideo" value="0">'; 
    vResult = vResult + '<param name="fullScreen" value="0">'; 
    vResult = vResult + '<param name="enableErrorDialogs" value="-1">'; 
    vResult = vResult + '<param name="SAMIStyle" value>'; 
    vResult = vResult + '<param name="SAMILang" value>'; 
    vResult = vResult + '<param name="SAMIFilename" value>';
    vResult = vResult + '</object>';
    
    return vResult; 
}

function PrintRealOne(vUrl,vWidth,vHeight)
{
    var vResult = "";

    vResult = vResult + '<object ' + PrintWHValue(vWidth,vHeight,true) + ' classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" VIEWASTEXT>';
    vResult = vResult + '<param name="AUTOSTART" value="1">';
    vResult = vResult + '<param name="_ExtentX" value="7091">'; 
    vResult = vResult + '<param name="_ExtentY" value="5318">'; 
    vResult = vResult + '<param name="SHUFFLE" value="0">'; 
    vResult = vResult + '<param name="PREFETCH" value="0">'; 
    vResult = vResult + '<param name="NOLABELS" value="-1">'; 
    vResult = vResult + '<param name="SRC" value="' + GetQ(vUrl) + '">';
    vResult = vResult + '<param name="CONTROLS" value="Imagewindow,StatusBar,ControlPanel">'; 
    vResult = vResult + '<param name="CONSOLE" value="clip2">'; 
    vResult = vResult + '<param name="LOOP" value="0">'; 
    vResult = vResult + '<param name="NUMLOOP" value="0">'; 
    vResult = vResult + '<param name="CENTER" value="0">'; 
    vResult = vResult + '<param name="MAINTAINASPECT" value="0">'; 
    vResult = vResult + '<param name="BACKGROUNDCOLOR" value="#000000">'; 
    vResult = vResult + '<embed controls="ImageWindow,StatusBar,ControlPanel" autostart="true" console="Clip2" nolabels="true" type="audio/x-pn-realaudio-plugin"></object>';

    return vResult; 
}


// 打印Flash的代码
function PrintFlash(vUrl,vWidth,vHeight,vGray)
{
    var vResult = "";

    vResult = vResult + '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" ' + PrintWHValue(vWidth,vHeight,true) + '>';
    vResult = vResult + '<param name="movie" value="' + GetQ(vUrl) + '" />';
    vResult = vResult + '<param name="quality" value="high" />';
    vResult = vResult + PrintFlashGrayByFlag(vGray,true);
    vResult = vResult + '<embed src="' + GetQ(vUrl) + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" ' + PrintWHValue(vWidth,vHeight,true) + '></embed>';
    vResult = vResult + '</object>';
    
    return vResult; 
}

function PrintWHValue(vWidth,vHeight,vQ)
{
    var vResult = "";
    
    if(vQ)
    {
        if(IsNotNullOrEmptyAndBlank(vWidth))
            vResult += ' width="' + vWidth + '" ';

        if(IsNotNullOrEmptyAndBlank(vHeight))
            vResult += ' height="' + vHeight + '" ';
    }
    else
    {
        if(IsNotNullOrEmptyAndBlank(vWidth))
            vResult += " width='" + vWidth + "' ";

        if(IsNotNullOrEmptyAndBlank(vHeight))
            vResult += " height='" + vHeight + "' ";       
    }
    
    return vResult;
}

function PrintFlashGray( vQ)
{
    return PrintFlashGrayByFlag(true,vQ);
}

function PrintFlashGrayByFlag(vFlag, vQ)
{
    if(!vFlag)
        return "";

    var vResult = "";
    
    if(vQ)
    {
        vResult = '<param value="false" name="menu" /><param value="opaque" name="wmode" />';
    }
    else
    {
        vResult = "<param value='false' name='menu' /><param value='opaque' name='wmode' />";
    }
    
    return vResult;    
}

// 打印Flash的代码
function PrintHref(vUrl,vShowName,vTarget,vTitle)
{
    var vResult = "";
    var vTheName = "";
    var vTheTitle = "";
    var vTheTarget = "_blank";

    if(IsNullOrEmptyAndBlank(vShowName))
        vTheName = vUrl;
    else
        vTheName = vShowName;
        
    if(IsNullOrEmptyAndBlank(vTitle))
        vTheTitle = vTheName;
    else
        vTheTitle = vTitle;  
        
    if(IsNotNullOrEmptyAndBlank(vTarget))
        vTheTarget = vTarget; 

    vResult = vResult + '<a href="' + GetQ(vUrl) + '" ';

    vResult = vResult + ' target="' + GetQ(vTheTarget) + '" ';
    
    vResult = vResult + ' title="' + GetQ(vTheTitle) + '" ';
    
    vResult = vResult + '>' + vTheName + '</a>';

    return vResult; 
}

function StringPadLeft(str, totalWidth, paddingChar)
{
    return StringPadHelper(str, totalWidth, paddingChar, false);
}

function StringPadRight(str, totalWidth, paddingChar, isRightPadded)
{
    return StringPadHelper(str, totalWidth, paddingChar, true);
}

function StringPadHelper(str, totalWidth, paddingChar, isRightPadded)
{
    if(str == null)
        str = "";
        
    var vResult = str;

    var ilen = str.length;
    var iLeft = (totalWidth - ilen);

    var paddingString = "";
    var i = 0;

    if (ilen < totalWidth)
    {
        for (i = 1; i <= iLeft; ++i)
        {
            paddingString += paddingChar;
        }
        
        if (isRightPadded)
        {
            vResult = str + paddingString;
        }
        else 
        {
            vResult = paddingString + str;
        }
    }
 
    return vResult;
}
    
function DefaultIdToDir( str)
{
    return IdToDir(str, 12, '0' , 3);    
}

function IdToDir(str, vLen, vChar, vRate)
{
    str = StringPadHelper(str, vLen , vChar, false);
    
    var curLen = str.length;

    var strResult = "";
    var vTmp = "";
    var vIndex = 0;
    var vEnd = 0; 
    
    if(vRate <= 0)
        vRate = 3;

    while(vIndex < curLen)
    {
        vEnd = vIndex + vRate;
        
        if(vEnd > curLen)
            vEnd = curLen;
                    
        vTmp = str.substring(vIndex, vEnd);
        
        if(strResult == "")
            strResult = vTmp;
        else
            strResult = strResult + "/" + vTmp;
    
        if(vEnd >= curLen)
            break;

        vIndex = vIndex + vRate;           
    }

    return strResult;
}
 
function ConfirmByCtrlFlag(objThis, msg)
{
    if(IsNullOrEmpty(msg))
        msg = "确定操作？";
        
    if(objThis != null)
    {
        // 如果禁用，直接返回false //
        if(CtrlGetDisabled(objThis, false))
            return false;
    }        
    
    var bFlag = confirm(msg);
    
    return bFlag;
}


// #########################################################################
// ########################## JavaScript预览 ##############################
// ########################################################################  

function SlowXPreView() { }
SlowXPreView.prototype =
{
CtrlClientId: "",
CtrlType:"",
ValidatorCode:"",
DataColumnName:"",
PreViewPreChar:""
}


// 实例化类对象
function GetSlowXPreView(vCtrlClientId, vCtrlType, vValidatorCode, vDataColumnName, vPreViewPreChar) 
{
    var objVClass = new SlowXPreView();

    objVClass.CtrlClientId = vCtrlClientId;
     
    objVClass.CtrlType = vCtrlType;
    
    objVClass.ValidatorCode = vValidatorCode;
    
    objVClass.DataColumnName = vDataColumnName;
    
    objVClass.PreViewPreChar = vPreViewPreChar;

    return objVClass;
}


function AddSlowXPreViewArray(vArray, vCtrlClientId, vCtrlType, vValidatorCode, vDataColumnName, vPreViewPreChar) 
{
    if(vArray == null)
        return false;

    var obj = GetSlowXPreView(vCtrlClientId, vCtrlType, vValidatorCode, vDataColumnName, vPreViewPreChar);

    if (obj != null) 
    {
        var objLen = GetLength(vArray);

        vArray[objLen] = obj;
    }

    return true;
}

function PreviewFormPostGetDefaultPostUrl()
{
    if(typeof(PreviewFormPostGetItemPostUrl) == undefined)
    {
        return GetPhyPath() + "/NewsDetail.aspx?ViewModel=3";  
    }
    else
    {
        var vResult = PreviewFormPostGetItemPostUrl();
        
        return vResult;
    }    
}

function PreviewFormPost(vFormName, vArray, vCode, vPostUrl)
{

    var theForm = $(vFormName);
    
    if(theForm == null)
    {
        return false;
        
    } 
    
    if(vArray == null)
    {
        return false;
    }

    if(!PreviewFormPostCreateItem(vFormName, vArray, vCode))
        return false;
        
    if(vPostUrl == null)
        vPostUrl = PreviewFormPostGetDefaultPostUrl();

    if (vPostUrl != null && vPostUrl.trim() != "")
        theForm.action = vPostUrl;

    theForm.submit();
    
    return true;
}

function PreviewFormPostCreateItem(vFormName, vArray, vCode)
{
    var theForm = $(vFormName);
    
    if(theForm == null || vArray == null)
        return false;

    OnCtrlRemoveChild(theForm);


    // alert(theForm.innerHTML);
    

    var i = 0;
    var vItem = null;
    var vLen = GetLength(vArray);
    
    var objValue = null;

    var vCtrl = null;
    
    var vTmpCtrl = null;

    for(i = 0; i < vLen; ++i)
    {
        vItem = vArray[i];
        
        if(vItem == null)
            continue;
            
        if(vCode != null)
        {
            if(vItem.ValidatorCode != vCode)
                continue;
        }  
             
        //objValue = $Get(vItem.CtrlClientId);  
        
        objValue = PreviewFormPostGetValueBySlowXPreView(vItem, null);
        
        if(objValue == null)
            continue;

        // function CreateElement(myDoc, tagName, name, id, type, value)  

        if(IsBooleanType(objValue))
            objValue = ((objValue == true) ? 1 : 0);

        vTmpCtrl = $(vItem.PreViewPreChar + vItem.DataColumnName);
        
        if(vTmpCtrl == null)
        {
            vCtrl = CreateElement(null, "input", vItem.PreViewPreChar + vItem.DataColumnName, vItem.PreViewPreChar + vItem.DataColumnName, "text", objValue);

            AddCtrl(theForm, vCtrl);      
        }
        else
        {
            $SetByCtrl(vTmpCtrl, objValue);
        }
    }
    
    // $Set("txt_TMP",theForm.innerHTML);
    
    return true;
}

function PreviewFormPostGetValueBySlowXPreView(vItem, oDefault)
{
    if(vItem == null)
        return oDefault;
        
    var vResult = null; 
    
    if(typeof(PreviewFormPostGetDetailValueBySlowXPreView) == undefined)
    {
        vResult = PreviewFormPostGetBaseValueBySlowXPreView(vItem, oDefault);
    }
    else
    {
        vResult = PreviewFormPostGetDetailValueBySlowXPreView(vItem, oDefault);
    }         

    return vResult;
}

function PreviewFormPostGetBaseValueBySlowXPreView(vItem, oDefault)
{
    if(vItem == null)
        return oDefault;

    var vResult = $Get(vItem.CtrlClientId, oDefault);  
    
    return vResult;
}

function PreviewFormPostGetParameter()
{
    var vResult = "ViewModel=" + PreviewFormPostViewModel;

    return vResult;
}


// #########################################################################
// ########################JavaScript预览END ##############################
// ########################################################################  



/* 
--  onpaste="return false" oncopy="return false;"

暴力的关闭网页办法（仅IE）


分享一下暴力的关闭网页办法：

javascript:window.opener=null;window.open("","_self");window.close();

IE6,7,8 通用，无询问提示。

*/  
