/*
功能 检查textStr中的字符是否都合法
输入参数：
（1）textStr：待检查的字符串
（2）validChar：除字母和数字以外的合法字符集
*/
function isValidChar(textStr, validChar)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var serach;
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        aChar = aChar.toUpperCase();
        search = validChar.indexOf(aChar);
        if (!((search != -1) ||
            (aChar >= "A" &&  aChar <= "Z") ||
            (aChar >= "0" &&  aChar <= "9")))
        {
            return false;
        }
    }
    return true;
}

/*
功能 检查textStr中的字符是否都合法,可确定该串是否为空
输入参数：
（1）textStr：待检查的字符串
（2）validChar：除字母和数字以外的合法字符集
*/

function isValidChar2(textStr, validChar,canBeEmpty)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var serach;

    if (!canBeEmpty && (textStr == null || textStr == ""))
    {
        return false;
    }

    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        aChar = aChar.toUpperCase();
        search = validChar.indexOf(aChar);
        if (!((search != -1) ||
            (aChar >= "A" &&  aChar <= "Z") ||
            (aChar >= "0" &&  aChar <= "9")))
        {
            return false;
        }
    }
    return true;
}


/*
功能 检查textStr中的字符是否都合法
输入参数：
（1）textStr：待检查的字符串
（2）validChar：除数字以外的合法字符集
*/
function isValidNumber(textStr, validChar)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var serach;
    var count = 0;
    if (validChar.indexOf("-") != -1 && textStr.indexOf("-") != -1)
    {
        //在有负号的情况下，判断负号位置是否合法
        if (textStr.substring(0, 1) != "-")
        {
            return false;
        }
        else if (textStr.substring(1, 2) < "0" || textStr.substring(1, 2) > "9")
        {
            return false;
        }
    }
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        search = validChar.indexOf(aChar);
        if (search != -1)
        {
            count++;
        }
        if (!((search != -1) || (aChar >= "0" &&  aChar <= "9")))
        {
            return false;
        }
    }

    if (count > 1)
    {
        return false;
    }
    return true;
}

/*
功能 检查textStr中的字符是否都合法，可判断是否为空
输入参数：
（1）textStr：待检查的字符串
（2）validChar：除数字以外的合法字符集
*/
function isValidNumber2(textStr, validChar, canBeEmpty)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var serach;
    var count = 0;

    if (!canBeEmpty && (textStr == null || textStr == ""))
    {
        return false;
    }

    if (validChar.indexOf("-") != -1 && textStr.indexOf("-") != -1)
    {
        //在有负号的情况下，判断负号位置是否合法
        if (textStr.substring(0, 1) != "-")
        {
            return false;
        }
        else if (textStr.substring(1, 2) < "0" || textStr.substring(1, 2) > "9")
        {
            return false;
        }
    }
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        search = validChar.indexOf(aChar);
        if (search != -1)
        {
            count++;
        }
        if (!((search != -1) || (aChar >= "0" &&  aChar <= "9")))
        {
            return false;
        }
    }

    if (count > 1)
    {
        return false;
    }
    return true;
}

/*
去掉textStr两头的空格
*/
function trim(textStr)
{
    while (" " == textStr.substr(0,1))
    {
        textStr = textStr.substr(1,textStr.length - 1);
    }

    while (" " == textStr.substr(textStr.length - 1,1))
    {
        textStr = textStr.substr(0,textStr.length -1);
    }

    return textStr;
}

function Cmd(url)
{
    document.cmdForm.action = url;
    return true;
}

function doPost(form, url)
{
    form.action = url;
    form.submit();
    return true;
}

function doCancel()
{
    window.close();
    //window.opener.focus();
}

/*
功能 检查textStr中的字符是否都合法
输入参数：
（1）textStr：待检查的字符串
（2）invalidChar：除<>&以后其它的不合法字符集合
*/
function checkString(textStr, invalidChar)
{
    invalidChar = invalidChar + "<>&";
    return checkStringEx(textStr, invalidChar);
}
/*
功能 检查textStr中的字符是否都合法
输入参数：
（1）textStr：待检查的字符串
（2）invalidChar：所有不合法字符集合
*/
function checkStringEx(textStr, invalidChar)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var serach;
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        search = invalidChar.indexOf(aChar);
        if (search != -1)
        {
            return false;
        }
    }
    return true;
}

function isValidList(textStr, validChar)
{
    var newStr = textStr;
    var newLength = newStr.length;
    var search;
    var count = 0;
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        search = validChar.indexOf(aChar);
        if (!((search != -1) || (aChar >= "0" &&  aChar <= "9")))
        {
            return false;
        }
    }
    return true;
}

//register the opened window to the array
function registerOpenedWindow(newWin){
	var topPage = getRegisterOwner(self, 0);
	if(topPage != null){
		if(topPage.allOpenedWindow){
			var array = topPage.allOpenedWindow
			for(var i = 0; i < array.length; i++){
				if(array[i]){
					if(array[i].closed){
						array.pop(i);
					}
				}
				else {
					array.pop(i);
				}
			}
			topPage.allOpenedWindow.push(newWin);
		}
	}
}
//check the opened window's name is the "wholeTopFrame" or not
function checkRegisterOwner(mPage){
	var ret = null;
	var mFrames = mPage.frames;
	if(mFrames && mFrames.length > 0){	
		for(var i = 0; i < mFrames.length; i++){
			if(mFrames[i].name =="wholeTopFrame"){
				 ret = mFrames[i];
				 break;
			}
		}
	}
	return ret;
}
//get the window's parent and only get the ten levels.
function getRegisterOwner(mPage, level){
	var ret = null;
	ret = checkRegisterOwner(mPage);
	if(ret == null){
		if(level < 10 && mPage.parent){
			ret = checkRegisterOwner(mPage.parent);
			if(ret == null){			
				ret = getRegisterOwner(mPage.parent, level+1);
			}
		}		
	}
	return ret;
}
function openServ(url, winName, width, height)
{
    var swidth = window.screen.width;
    var sheight = window.screen.height;
    var str = "left=" + ((swidth - width)/2) + ",top=" + ((sheight - height)/2 - 20)
        + ",width=" + width + ",height=" + height;
    servWin = window.open(url, winName, "toolbar=no,directories=no,status=no,location=no,resizable=no,scrollbars=yes,menubar=no," + str);
    servWin.opener=self;
    servWin.focus();
    registerOpenedWindow(servWin);
}

function openServWithReturn(url, winName, width, height, servWin)
{
    var swidth = window.screen.width;
    var sheight = window.screen.height;
    var str = "left=" + ((swidth - width)/2) + ",top=" + ((sheight - height)/2 - 20)
        + ",width=" + width + ",height=" + height;
    servWin = window.open(url, winName, "toolbar=no,directories=no,status=no,location=no,resizable=no,scrollbars=yes,menubar=no," + str);
    servWin.opener=self;
    servWin.focus();
    registerOpenedWindow(servWin);
}

function openServTab(url, winName, width, height)
{
    var swidth = window.screen.width;
    var sheight = window.screen.height;
    var str = "left=" + ((swidth - width)/2) + ",top=" + ((sheight - height)/2 - 20)
        + ",width=" + width + ",height=" + height;
    servWin = window.open(url, winName, "toolbar=no,directories=no,status=no,location=no,resizable=no,scrollbars=no,menubar=no," + str);
    servWin.opener=self;
    servWin.focus();
    registerOpenedWindow(servWin);
}

function getOpener()
{
    if (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= 4)
    {
        return window.dialogArguments;
    }
    else
    {
        return window.opener;
    }
}

function openDialog(url, width, height)
{
    var sFeatures = 'dialogHeight:' + height + 'px;';
    sFeatures += ('dialogWidth:' + width + 'px;');
    sFeatures += ('help:no;status:no;edge:sunken');
    var dd = window.showModalDialog(url, self, sFeatures);
}

function openScrollDialog(url, width, height)
{
    var sFeatures = 'dialogHeight:' + height + 'px;';
    sFeatures += ('dialogWidth:' + width + 'px;');
    sFeatures += ('help:no;scroll:yes;status:no;edge:sunken');
    var dd = window.showModalDialog(url, self, sFeatures);
}

function openHelp(url)
{
    var appendText = "&expandAll=true";
    if (url.indexOf("#") == -1)
    {
        url += "#help_body_header";
        appendText = "";
    }
    var onlinePageURL = url.substring(0, url.indexOf("/help/") + 6) + "online.jsp";

    if (navigator.appName == "Microsoft Internet Explorer DELETE")
    {
        var attrs = "dialogLeft: " + (window.screen.width - 300)
            + "px;dialogTop: 0px; dialogWidth: 300px; dialogHeight:400px"
            + "; status: No; help: No; resizable:Yes; edge: Sunken;";
        var helpWin = showModelessDialog(onlinePageURL
            + "?url=" + encodeURIComponent(url) + appendText,
            "Help Window", attrs);
        helpWin.focus();
    }
    else
    {
        var attrs = "left=" + (window.screen.width - 310)
            + ",top=0,width=300,height=400,toolbar=no,directories=no"
            + ",status=no,location=no,resizable=no,scrollbars=yes,menubar=no"
            + ",alwaysRaised=yes,dependent=yes,";
        var helpWin = window.open(onlinePageURL
            + "?url=" + encodeURIComponent(url)+"&showNav=true" + appendText,
            "HELP", attrs);
        helpWin.focus();
    }
}

/*
 判断字符输入信息是否合法
 包含三个函数：
 GetObjID：通过表单参数名获取参数ID，供后面的函数使用
 isValidText：查看参数中是否含有不合法字符。
 isValidNum：判断参数是否为整数，且是否在合法范围内
 当前定义的不合法字符包括 " ' < > & % /
 compareNum：比较两个数大小
 Add by LiFangning(32629)
*/
function GetObjID(ObjName)
{
    for (var ObjID=0; ObjID < window.cmdForm.elements.length; ObjID++)
    {
        if ( window.cmdForm.elements[ObjID].name == ObjName )
        {
            return(ObjID);
        }
    }
    return(-1);
}

/*
  canBeEmpty参数用于判断条件：
    true: 参数可以为空
    false: 参数不能为空
*/
function isValidText(objName, canBeEmpty)
{
    invalidText = "\"'<>&%/";
    return isValidString(objName,invalidText, canBeEmpty);
}

/*
  canBeEmpty参数用于判断条件：
    true: 参数可以为空
    false: 参数不能为空
  不包含空格
*/
function isValidTextWithoutSpace(objName, canBeEmpty)
{
    invalidText = "\"'<>&%/ ";
    return isValidString(objName,invalidText, canBeEmpty);
}

function isValidTextEx(objName, canBeEmpty)
{
    return isValidText(objName, canBeEmpty);
}
function isValidString(objName,invalidText, canBeEmpty)
{
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;
    textValue = trim(textValue);
    textLength = textValue.length;
    if (!canBeEmpty && (textValue == null || textValue == ""))
    {
        return false;
    }
    for (var i = 0; i < textLength; i ++)
    {
        aChar = textValue.substring(i, i+1);
        isFound = invalidText.indexOf(aChar);
        if (isFound != -1)
        {
            return false;
        }
    }
    return true;

}
/*
  minValue: 参数最小值；
  maxValue: 参数最大值；
    如果minValue或maxValue为null，则不进行范围判断
  返回值：1: 成功；0: 参数为空；-1: 参数不是整数；-2: 参数范围非法
*/
function isValidNum(objName, minValue, maxValue)
{
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;
    textValue = trim(textValue);
    if (textValue == null || textValue == "")
    {
        return 0;
    }
    if (!isValidNumber(textValue, ''))
    {
        return -1;
    }
    if (minValue != null && maxValue != null
        && (parseInt(textValue, 10) < minValue || parseInt(textValue, 10) > maxValue))
    {
        return -2;
    }
    return 1;
}

function isValidInt(objName, minValue, maxValue)
{
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;
    // textValue = trim(textValue);
    if (textValue == null || textValue == "")
    {
        return 0;
    }
    if (!isValidNumber(textValue, "-"))
    {
        return -1;
    }
    if (minValue != null && maxValue != null
        && (parseInt(textValue, 10) < minValue || parseInt(textValue, 10) > maxValue))
    {
        return -2;
    }
    return 1;
}

/*
  minValue: 参数最小值；
  maxValue: 参数最大值；
    如果minValue或maxValue为null，则不进行范围判断
  返回值：1: 成功；0: 参数为空；-1: 参数不是合法小数；-2: 参数范围非法
  注意：小数只允许有最多两位小数
*/
function isValidDecimal(objName, minValue, maxValue, decimals)
{
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;

    if (textValue == null || textValue == "")
    {
        return 0;
    }
    else
    {
        var strLength = textValue.length;
        var serach;
        var count1 = 0;
        var count2 = 0;
        for (var i = 0; i < strLength; i++)
        {
            aChar = textValue.substring(i, i + 1);

            if (i == 0)
            {
                if (aChar == "-" && strLength == 1)
                {
                    return -1;
                }
                if (aChar == "-" && textValue.substring(1, 2) == ".")
                {
                    return -1;
                }
                if (aChar == ".")
                {
                    return -1;
                }
            }

            if (aChar == "-")
            {
                if (i != 0)
                {
                    return -1;
                }
                count1++;
            }
            else if (aChar == ".")
            {
                count2++;
            }
            else if (aChar < "0" ||  aChar > "9")
            {
                return -1;
            }

            if (i == strLength - 1 && aChar == ".")
            {
                return -1;
            }

            if (count1 > 1 || count2 > 1)
            {
                return -1;
            }
        }
    }

    if ((textValue.indexOf(".") != -1) && (textValue.length - textValue.indexOf(".") > decimals + 1))
    {
        return -1;
    }
    if (minValue != null && maxValue != null
        && (parseFloat(textValue) < minValue || parseFloat(textValue) > maxValue))
    {
        return -2;
    }
    return 1;
}

function isValidCurrency(objName, minValue, maxValue, decimals)
{
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;

    if (textValue == null || textValue == "")
    {
        return 0;
    }
    else
    {
        var strLength = textValue.length;
        var serach;
        var count1 = 0;
        var count2 = 0;
        for (var i = 0; i < strLength; i++)
        {
            aChar = textValue.substring(i, i + 1);

            if (i == 0)
            {
                if (aChar == "-" && strLength == 1)
                {
                    return -1;
                }
                if (aChar == "-" && textValue.substring(1, 2) == ".")
                {
                    return -1;
                }
                if (aChar == ".")
                {
                    return -1;
                }
            }

            if (aChar == "-")
            {
                if (i != 0)
                {
                    return -1;
                }
                count1++;
            }
            else if (aChar == ".")
            {
                count2++;
            }
            else if (aChar < "0" ||  aChar > "9")
            {
                return -1;
            }

            if (i == strLength - 1 && aChar == ".")
            {
                return -1;
            }

            if (count1 > 1 || count2 > 1)
            {
                return -1;
            }
        }
    }

    if ((textValue.indexOf(".") != -1) && (textValue.length - textValue.indexOf(".") > decimals + 1))
    {
        return -1;
    }
    if (minValue != null && maxValue != null
        && (parseFloat(textValue) < minValue || parseFloat(textValue) > maxValue))
    {
        return -2;
    }
    return 1;
}

/*
  比较两个数大小
  返回值：
        如果 minNum <= maxNum 则返回true；反之则返回false
  注意：本函数不对参数本身的有效性进行检查
*/
function compareNum(objMin, objMax)
{
    objMinID = GetObjID(objMin);
    objMaxID = GetObjID(objMax);
    minNum = trim(document.cmdForm.elements[objMinID].value);
    maxNum = trim(document.cmdForm.elements[objMaxID].value);
    if (minNum == null || minNum == "" || maxNum == null || maxNum == "")
    {
        return true;
    }
    if (parseInt(minNum, 10) > parseInt(maxNum, 10))
    {
        return false;
    }
    else
    {
        return true;
    }
}

/*
  检查字符串是否是16进制数
*/
function isValidHEXNumber(objName)
{
    objID = GetObjID(objName);
    var newStr = document.cmdForm.elements[objID].value;
    var newLength = newStr.length;
    for (var i = 0; i < newLength; i ++)
    {
        aChar = newStr.substring(i, i+1);
        aChar = aChar.toUpperCase();
        if (!(aChar >= "A" &&  aChar <= "F" ||
            aChar >= "0" &&  aChar <= "9"))
        {
            return false;
        }
    }
    return true;
}

function checkall(groupName)
{
    var totalNum = parent.main.document.cmdForm.totalnum.value;
    for(i=0; i< totalNum; i++)
    {
        parent.main.document.getElementById(groupName+i).checked=true;
    }
}

function unselectall(groupName)
{
    var totalNum = parent.main.document.cmdForm.totalnum.value;
    for(i=0; i< totalNum; i++)
    {
        parent.main.document.getElementById(groupName+i).checked=false;
    }
}

function resetall()
{
    document.cmdForm.reset();
    cmdForm.action="main.jsp";
    cmdForm.target="main";
    return true;
}

function help(file)
{
    var swidth = window.screen.width;
    var sheight = window.screen.height;
    var str = "width=" + (swidth / 2) + ",height=" + sheight;
    helpWin = window.open(file ,"helpWin","scrollbars,resizable=yes,left=0,top=0," + str);
    helpWin.focus();
    return true;
}

// IP地址合法性检查，允许带通配符*
function checkIPStrStar(ip)
{
    var ipString = ip + ".";
    var i;
    var count = 0 ;
    var tmpStr ="";
    var rtnIP = ""

    for (i= 0; i < ipString.length; i++)
    {
        if (ipString.charAt(i) == ".")
        {
            if (tmpStr != "*")
            {
                if (parseInt(tmpStr,10) > 255 ||parseInt(tmpStr,10) < 0 || tmpStr.length < 1)
                {
                    return false;
                }
            }
            tmpStr = "";
            count++;
        }
        else if (ipString.charAt(i) == "*")
        {
            tmpStr = "*";
        }
        else
        {
            if (ipString.charAt(i) >"9" || ipString.charAt(i) < "0")
            {
                return false;
            }
            tmpStr += ipString.charAt(i);
        }
    }
    if (count != 4)
    {
        return false;
    }
    return true;
}

//IP地址字符串输入实时检查
function IPStringStarOnchangeCheck(objName)
{
    var isStar = 0;
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    var lastDotIndex = -1;
    var dotCounter = 0;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.charAt(i);
        if (!((aChar == ".") || (aChar >= "0" &&  aChar <= "9") || (aChar == "*")))
        {
            break;
        }

        if (aChar == ".")
        {
            //输入字符为"."，检查"."有没有超过3个，且前一个字符是否是"."
            if (dotCounter >= 3)
            {
                break;
            }
            if (i == 0 || value.charAt(i - 1) == ".")
            {
                break;
            }
            dotCounter++;
            lastDotIndex = i;
        }
        else
        {
            //每一段最多只能有3位
            if (i - lastDotIndex > 3)
            {
                break;
            }
            //输入字符为数字，检查该段中数字有没有超过255
            field = value.substring(lastDotIndex + 1, i + 1);
            if (parseInt(field, 10) > 255)
            {
                break;
            }
        }

        if (aChar == "*")
        {
            if (i > 0 && value.charAt(i - 1) != ".")
            {
                break;
            }
            isStar = 1;
        }
        if (aChar >= "0" && aChar <= "9")
        {
            if (i > 0 && value.charAt(i - 1) == "*")
            {
                break;
            }
            if (isStar == 1)
            {
                break;
            }
        }
    }
    if (i != value.length)
    {
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//IP地址输入框控制
function IPControl(name, index, errMsg)
{
    objName = name + index;
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (aChar < "0" || aChar > "9")
        {
            break;
        }
    }
    if (i != value.length)
    {
        if (value.substring(i, i + 1) == "." && i != 0 && index < 4)
        {
            document.cmdForm.elements[objID].value = value.substring(0, i);
            nextObjName = name + (index + 1);
            nextObjID = GetObjID(nextObjName);
            document.cmdForm.elements[nextObjID].select();
            return true;
        }
        else if (value.substring(i, i + 1) == ".")
        {
            document.cmdForm.elements[objID].value = value.substring(0, i);
            return true;
        }
        else
        {
            alert(errMsg);
            document.cmdForm.elements[objID].value = value.substring(0, i);
            return false;
        }
    }

    if (value.length == 3)
    {
        if (parseInt(value, 10) < 0 || parseInt(value, 10) > 255)
        {
            alert(errMsg);
            document.cmdForm.elements[objID].select();
            return false;
        }
        if (index < 4)
        {
            nextObjName = name + (index + 1);
            nextObjID = GetObjID(nextObjName);
            document.cmdForm.elements[nextObjID].select();
        }
    }
    return true;
}

//正整数输入框实时检查
function plusNumberOnchangeCheck(objName, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (aChar < "0" || aChar > "9")
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//整数数字输入框实时检查
function numberOnchangeCheck(objName, minValue, maxValue, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (aChar < "0" || aChar > "9")
        {
            if (aChar != "-" || i != 0)
            {
                break;
            }
        }      
    }
    if (i != value.length)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    else if (maxValue >= 0 && parseInt(value, 10) > maxValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue < 0 && parseInt(value, 10) < minValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue >= 0 && value.substring(0, 1) == "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (maxValue < 0 && value.substring(0, 1) != "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    
    if( maxValue < 0 ) 
	{
		if( parseInt(value, 10) < minValue || parseInt(value, 10) > maxValue)
	    {
	    	alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	}
	else if(minValue >= 0)
	{
	  	if(parseInt(value, 10) > maxValue || parseInt(value, 10) < minValue )
	    {
    		alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	}
    
    return true;
}

// only for append info int input validate.
// 2006-1-13,by Gzh 
function numberOnchangeCheckIntForAppendInfo(objName, minValue, maxValue, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (aChar < "0" || aChar > "9")
        {
            if (aChar != "-" || i != 0)
            {
                break;
            }
        }      
    }
    if (i != value.length)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    else if (maxValue >= 0 && parseInt(value, 10) > maxValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue < 0 && parseInt(value, 10) < minValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue >= 0 && value.substring(0, 1) == "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (maxValue < 0 && value.substring(0, 1) != "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    
    if( maxValue < 0 ) 
	{
		if( parseInt(value, 10) < minValue )
	    {
	    	alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	}
	else if(minValue >= 0)
	{
	  	if(parseInt(value, 10) > maxValue )
	    {
    		alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	}
    
    return true;
}


// 整数数字输入框实时检查,所提示的信息不包含数值区间
function numberOnchangeCheckMsg(objName, minValue, maxValue, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (aChar < "0" || aChar > "9") 
        {
            if (aChar != "-" || i != 0)
            {
                break;
            }
        }
    }
    if (i != value.length)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    else if (maxValue >= 0 && parseInt(value, 10) > maxValue)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue < 0 && parseInt(value, 10) < minValue)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue >= 0 && value.substring(0, 1) == "-")
    {
        alert(errMsg);
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (maxValue < 0 && value.substring(0, 1) != "-")
    {
        alert(errMsg);
        document.cmdForm.elements[objID].select();
        return false;
    }
    
    if( parseInt(value, 10) < minValue || parseInt(value, 10) > maxValue)
    {
   		alert(errMsg);
        document.cmdForm.elements[objID].select();
        return false;
    }    
    return true;
}

//小数数字输入框实时检查
function decimalOnchangeCheck(objName, minValue, maxValue, decimals, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i, dotIndex = -1;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (!(aChar >= "0" && aChar <= "9"
            || aChar == "-" || aChar == "."))
        {
            break;
        }
        else if (aChar == "-" && i > 0)
        {
            break;
        }
        else if (aChar == ".")
        {
            if (dotIndex != -1)
            {
                break;
            }
            else if (i == 0)
            {
                break;
            }
            else if (value.substring(i - 1, i) == "-")
            {
                break;
            }
            dotIndex = i;
        }
        else if (dotIndex != -1 && i - dotIndex > decimals)
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    else if (maxValue >= 0 && parseFloat(value) > maxValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue < 0 && parseFloat(value) < minValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue >= 0 && value.substring(0, 1) == "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (maxValue < 0 && value.substring(0, 1) != "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    
    if( maxValue < 0 )
	{
		if( parseFloat(value) < minValue )    // || parseInt(value, 10) > maxValue)
	    {
	    	alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	}
	else if(minValue >= 0)
	{
	  	if(parseFloat(value) > maxValue) // parseInt(value, 10) < minValue )
	    {
	    	alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	  }
    
    return true;
}


function currencyOnchangeCheck(objName, minValue, maxValue, decimals, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i, dotIndex = -1;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (!(aChar >= "0" && aChar <= "9"
            || aChar == "-" || aChar == "."))
        {
            break;
        }
        else if (aChar == "-" && i > 0)
        {
            break;
        }
        else if (aChar == ".")
        {
            if (dotIndex != -1)
            {
                break;
            }
            else if (i == 0)
            {
                break;
            }
            else if (value.substring(i - 1, i) == "-")
            {
                break;
            }
            dotIndex = i;
        }
        else if (dotIndex != -1 && i - dotIndex > decimals)
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    else if (maxValue >= 0 && parseFloat(value) > maxValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue < 0 && parseFloat(value) < minValue)
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (minValue >= 0 && value.substring(0, 1) == "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    else if (maxValue < 0 && value.substring(0, 1) != "-")
    {
        alert(errMsg + " [" + minValue + ", " + maxValue + "]");
        document.cmdForm.elements[objID].select();
        return false;
    }
    
    if( maxValue < 0 )
		{
			if( parseFloat(value) < minValue )    // || parseInt(value, 10) > maxValue)
	    {
	    		alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
		}
	  else if(minValue >= 0)
	  {
	  	if(parseFloat(value) > maxValue) // parseInt(value, 10) < minValue )
	    {
	    		alert(errMsg + " [" + minValue + ", " + maxValue + "]");
	        document.cmdForm.elements[objID].select();
	        return false;
	    }
	  }
    
    return true;
}

//字符串输入框实时检查（含各种字符集的字符）
function stringOnchangeCheck(objName, errMsg)
{
    invalidText = "%/";
    return stringOnchangeCheckEx(objName, errMsg, invalidText);
}

//字符串输入框实时检查（除空格外的各种字符集字符）
function stringOnchangeCheckWithoutSpace(objName, errMsg)
{
    invalidText = "%/ #";
    return stringOnchangeCheckEx(objName, errMsg, invalidText);
}

//字符串输入框实时检查（含各种字符集的字符），invalidText为不合法的字符
function stringOnchangeCheckEx(objName, errMsg, invalidT)
{
    invalidText = "\"'<>&" + invalidT;
    return stringOnkeyupCheck(objName, errMsg, invalidText)
}
//字符串输入框实时检查（含各种字符集的字符），invalidT为不合法字符
function stringOnkeyupCheck(objName, errMsg, invalidT)
{
    invalidText =invalidT;
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (-1 != invalidText.indexOf(aChar))
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//字符串输入框实时检查（仅含有字母和几个合法字符串）
function textOnchangeCheck(objName, errMsg, validChar)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        aChar = aChar.toUpperCase();
        search = validChar.indexOf(aChar);
        if (!((search != -1) ||
            (aChar >= "A" &&  aChar <= "Z") ||
            (aChar >= "0" &&  aChar <= "9")))
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

function limitLength(objName,len)
{
    objID = GetObjID(objName);
    oriString = document.cmdForm.elements[objID].value;
    var tarString = "";
    var i = oriString.length;
    if( i > len)
    {
        tarString = oriString.substring(0, len);
        document.cmdForm.elements[objID].value = tarString ;
        if (document.cmdForm.elements[objID].value.length == 1025)
        {
            tarString = tarString.substring(0,len - 1);
        }
        document.cmdForm.elements[objID].value = tarString ;
    }
    return true;
}

//数字列表输入实时检查
function numberListOnchangeCheck(objName, validChar)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    var lastChar;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        search = validChar.indexOf(aChar);
        if (!((search != -1) || (aChar >= "0" &&  aChar <= "9")))
        {
            break;
        }
        else if (search != -1 && i == 0)
        {
            break;
        }
        else if (search != -1 && i > 0 && aChar == lastChar)
        {
            break;
        }
        lastChar = aChar;
    }
    if (i != value.length)
    {
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//IP地址字符串输入实时检查
function IPStringOnchangeCheck(objName)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    var lastDotIndex = -1;
    var dotCounter = 0;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.charAt(i);
        if (!((aChar == ".") || (aChar >= "0" &&  aChar <= "9")))
        {
            break;
        }

        if (aChar == ".")
        {
            //输入字符为"."，检查"."有没有超过3个，且前一个字符是否是"."
            if (dotCounter >= 3)
            {
                break;
            }
            if (i == 0 || value.charAt(i - 1) == ".")
            {
                break;
            }
            dotCounter++;
            lastDotIndex = i;
        }
        else
        {
            //每一段最多只能有3位
            if (i - lastDotIndex > 3)
            {
                break;
            }
            //输入字符为数字，检查该段中数字有没有超过255
            field = value.substring(lastDotIndex + 1, i + 1);
            if (parseInt(field, 10) > 255)
            {
                break;
            }
            //不能出现".0X"的情况                        
            if(i > 0){            	
            
            	var curFirst = value.charAt(i-1);            	
            	if(i == 1){
            		if(curFirst == "0"){
            			break;
            		}
            	}
            	else if((i+1) < value.length && aChar == "0"){
            		var curNext = value.charAt(i+1);
            		if(curFirst == "." && curNext != "."){
	            		i++;
	            		break;            	
	            	}
            	}            	
            }
        }
    }
    if (i != value.length)
    {
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }

    return true;
}

//十六进制字符串输入框实时检查
function HEXOnchangeCheck(objName, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        aChar = aChar.toUpperCase();
        if (!(aChar >= "A" &&  aChar <= "F" ||
            aChar >= "0" &&  aChar <= "9"))
        {
            break;
        }
    }
    if (i != value.length)
    {
        alert(errMsg);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//MAC硬件地址字符串输入实时检查
function MACStringOnchangeCheck(objName, errMsg)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var separator;
    if (value.length > 2)
    {
        separator = value.charAt(2);
    }
    else
    {
        separator = ":";
    }
    if (separator != ":" && separator != "-")
    {
        separator = ":";
    }
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.charAt(i);
        aChar = aChar.toUpperCase();
        if (!(aChar == separator
           || (aChar >= "0" &&  aChar <= "9")
           || (aChar >= "A" &&  aChar <= "F")))
        {
            break;
        }

        if (aChar == separator
           && (i != 2 && i != 5 && i != 8 && i != 11 && i != 14))
        {
            break;
        }
        if ((i == 2 || i == 5 || i == 8 || i == 11 || i == 14)
           && aChar != separator)
        {
            break;
        }
    }
    if (i != value.length)
    {
        if (errMsg != "")
        {
            alert(errMsg);
        }
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//检查MAC硬件地址是否合法
//返回值：
//        0：串为空
//       -1：串非法
//       -2：长度非法（不是17位）
//        1：合法
function isValicMACAddress(objName)
{
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    if (value == null || value == "")
    {
        return 0;
    }
    var separator = value.charAt(2);
    if (separator != ":" && separator != "-")
    {
        return -1;
    }
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.charAt(i);
        aChar = aChar.toUpperCase();
        if (!(aChar == separator
           || (aChar >= "0" &&  aChar <= "9")
           || (aChar >= "A" &&  aChar <= "F")))
        {
            break;
        }

        if (aChar == separator
           && (i != 2 && i != 5 && i != 8 && i != 11 && i != 14))
        {
            break;
        }
        if ((i == 2 || i == 5 || i == 8 || i == 11 || i == 14)
           && aChar != separator)
        {
            break;
        }
    }
    if (i != value.length)
    {
        return -1;
    }
    else if (value.length != 17)
    {
        return -2;
    }
    return 1;
}

//比较两个日期的大小
//参数：date1，date2为需要比较的日志，格式为 "yyyy-MM-dd"
//返回值：
//       -1：date1小于date2
//        0：两日期相等
//        1：date1大于date2
function compDate(date1, date2)
{
//    var year1 = parseInt(date1.substring(0, 4), 10);
//    var month1 = parseInt(date1.substring(5, 7), 10);
//    var day1 = parseInt(date1.substring(8, 10), 10);
//    var year2 = parseInt(date2.substring(0, 4), 10);
//    var month2 = parseInt(date2.substring(5, 7), 10);
//    var day2 = parseInt(date2.substring(8, 10), 10);
//    if (year1 < year2
//        || year1 == year2 && month1 < month2
//        || year1 == year2 && month1 == month2 && day1 < day2)
//    {
//        return -1;
//    }
//    else if (year1 == year2 && month1 == month2 && day1 == day2)
//    {
//        return 0;
//    }
//    else
//    {
//        return 1;
//    }
      if (date1 < date2)
      {
          return -1;
      }
      else if (date1 == date2)
      {
          return 0;
      }
      else
      {
          return 1;
      }
}

function unmodifiableSelect(name, value)
{
    var objID = GetObjID(name);
    if (value == null || value == "")
    {
        unmodifiableSelect1(name);
        return;
    }
    var selectElem = document.cmdForm.elements[objID];
    for (i = 0; i < selectElem.options.length; i++)
    {
        if (selectElem.options[i].value == parseInt(value, 10))
        {
            selectElem.options[i].selected = true;
            break;
        }
    }
    unmodifiableSelect1(name);
}

//将一个select元素置为“只读”，方法为删除其没有被选中的选项
function unmodifiableSelect1(name)
{
    var objID = GetObjID(name);
    var selectElem = document.cmdForm.elements[objID];
    var selectedIndex = selectElem.selectedIndex;
    for (i = selectElem.options.length - 1; i >= 0; i--)
    {
        if (i == selectedIndex)
        {
            continue;
        }
        selectElem.options.remove(i);
    }
}

//输入日期检查，主要为了检查每月的特定日期是否合法（如2月29日等）
function checkTime(p_year, p_month, p_day)
{
    var year = parseInt(p_year, 10);
    //如果第一个字母为"0"，则将其去掉；
    //否则08和09时，parseInt会返回0，而不是返回8和9
    if (p_month.length == 2 && p_month.charAt(0) == '0')
    {
        p_month = p_month.substr(1);
    }
    var month = parseInt(p_month, 10);
    if (p_day.length == 2 && p_day.charAt(0) == '0')
    {
        p_day = p_day.substr(1);
    }
    var day = parseInt(p_day, 10);
    switch (month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return true;
        case 4:
        case 6:
        case 9:
        case 11:
            if (day < 31)
            {
                return true;
            }
            else
            {
                return false;
            }
        case 2:
            if (day == 29 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
            {
                return true;
            }
            else if (day > 28)
            {
                return false;
            }
            else
            {
                return true;
            }
        default:
            return false;
    }
    return false;
}

//字符串输入框实时检查（含各种字符集的字符）
//传入的errMsg参数中的所有 &REP; 串将被替换成 {\" '<>&%/}
function stringOnchangeCheckForEndUser(objName, errMsg)
{
    invalidText = "\"'<>&%/";
    invalidMsg = "{\" '<>&%/}";
    objID = GetObjID(objName);
    value = document.cmdForm.elements[objID].value;
    var i;
    for (i = 0; i < value.length; i++)
    {
        aChar = value.substring(i, i + 1);
        if (-1 != invalidText.indexOf(aChar))
        {
            break;
        }
    }
    if (i != value.length)
    {
        var re = /&REP;/g;
        var result = errMsg.replace(re, invalidMsg);

        alert(result);
        document.cmdForm.elements[objID].value = value.substring(0, i);
        return false;
    }
    return true;
}

//文件名是否有效（Portal业务组件使用）
function isValidFileName(objName, canBeEmpty)
{
    invalidText = "\"'<>&%*?|";
    objID = GetObjID(objName);
    textValue = document.cmdForm.elements[objID].value;
    textValue = trim(textValue);
    textLength = textValue.length;
    if (!canBeEmpty && (textValue == null || textValue == ""))
    {
        return false;
    }
    for (var i = 0; i < textLength; i ++)
    {
        aChar = textValue.substring(i, i+1);
        isFound = invalidText.indexOf(aChar);
        if (isFound != -1)
        {
            return false;
        }
    }
    return true;
}

//比较IP地址大小
function compareIP(srcIP, desIP)
{
    //参数必须保证是两个标准合法的IP地址
    var i;
    var srcSubstring = srcIP + ".";
    var desSubstring = desIP + ".";
    for (i = 0; i < 4; i++)
    {
        srcDotIndex = srcSubstring.indexOf(".");
        desDotIndex = desSubstring.indexOf(".");
        srcField = srcSubstring.substring(0, srcDotIndex);
        desField = desSubstring.substring(0, desDotIndex);
        if (parseInt(desField, 10) > parseInt(srcField, 10))
        {
            i = 4 ;
            break;
        }

        if (parseInt(srcField, 10) > parseInt(desField, 10))
        {
            break;
        }
        else
        {
            srcSubstring = srcSubstring.substring(srcDotIndex + 1, srcSubstring.length);
            desSubstring = desSubstring.substring(desDotIndex + 1, desSubstring.length);
        }
    }
    if (i != 4)
    {
        return false;
    }
    return true;
}

function checkIPStr(ip)
{
    var ipString = ip + ".";
    var i;
    var count = 0 ;
    var tmpStr ="";
    var rtnIP = ""

    for (i= 0; i < ipString.length; i++)
    {
        if (ipString.charAt(i) == ".")
        {
            if (parseInt(tmpStr,10) > 255 ||parseInt(tmpStr,10) < 0 || tmpStr.length < 1)
            {
                return false;
            }
            tmpStr = "";
            count++;
        }
        else
        {
            if (ipString.charAt(i) != "." && (ipString.charAt(i) >"9" || ipString.charAt(i) < "0"))
            {
                return false;
            }
            tmpStr += ipString.charAt(i);
        }
    }
    if (count != 4)
    {
        return false;
    }
    if (ip =="0.0.0.0" || ip =="255.255.255.255" )
    {
      return false;
    }
    
    return true;
}

//获取页面元素的绝对位置和大小
//参数需要传元素的id，例如 <table id="test">，则调用getElementPosition("test")
function getElementPosition(elemID)
{
    var offsetTrail = document.getElementById(elemID);
    var absolutLeft = 0;
    var absolutTop = 0;
    var absolutWidth=offsetTrail.offsetWidth;
    var absolutHeight=offsetTrail.offsetHeight;

    while (offsetTrail)
    {
        absolutLeft += offsetTrail.offsetLeft;
        absolutTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }

    return {left:absolutLeft, top:absolutTop, width:absolutWidth, height:absolutHeight};
}

function isValidTelphone(objName,canBeEmpty)
{
    objID = GetObjID(objName);
    telephone = document.cmdForm.elements[objID].value;
    telephone = trim(telephone);
//    var regExpObj = /0\d\d\d-\d\d\d\d\d\d\d$|0\d\d-\d\d\d\d\d\d\d\d$|0\d\d\d-\d\d\d\d\d\d\d\d$/;
    var regExpObj = /^\d+(\d|-)*/;

    if (!canBeEmpty && (telephone == null || telephone == ""))
    {
        return false;
    }

    if( canBeEmpty && (telephone == null || telephone == ""))
    {
        return true;
    }

    if(regExpObj.exec(telephone) == null)
    {
        return false;
    }

    return true;
}

function isValidPostCode(objName,canBeEmpty)
{
    objID = GetObjID(objName);
    postcode = document.cmdForm.elements[objID].value;
    postcode = trim(postcode);
    var regExpObj = /^[1-9]\d{5,10}/;

    if (!canBeEmpty && (postcode == null || postcode == ""))
    {
        return false;
    }

    if( canBeEmpty && (postcode == null || postcode == ""))
    {
        return true;
    }

    if(regExpObj.exec(postcode) == null)
    {
        return false;
    }

    return true;
}

function isValidEmail(objName,canBeEmpty)
{
    obj = document.cmdForm.elements[GetObjID(objName)];
    if(obj.value.length!=0)
    {
        if (obj.value.charAt(0)=="."
            ||obj.value.charAt(0)=="@"
            ||obj.value.indexOf('@', 0) == -1
            ||obj.value.indexOf('.', 0) == -1
            ||obj.value.lastIndexOf("@") ==obj.value.length-1
            ||obj.value.lastIndexOf(".")==obj.value.length-1
            ||obj.value.indexOf('@', 0) != obj.value.lastIndexOf("@")
            ||obj.value.indexOf('@', 0) >= obj.value.lastIndexOf(".") - 1
        )
        {
            obj.focus();
            return false;
        }
        return true;
    }
    return true;
}

// 每个以sepChar分隔的item长度是否超过maxLength这个最大长度
function isValidItemLength(textStr, sepChar, maxLength)
{
	var newStr = textStr;
	newStr = trim(newStr);
    while(true)
    {
        search = newStr.indexOf(sepChar);
        if(search == -1)
        {
            if(newStr.length > maxLength)
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        else
        {
            if(newStr.substring(0, search).length > maxLength)
            {
                return false;
            }
            newStr = newStr.substring(search + 1);
        }
    }
}

function newXMLHttpRequest() 
{
  var xmlreq = false;
  if (window.XMLHttpRequest) 
  {
    // 在非Microsoft浏览器中创建XMLHttpRequest对象
    xmlreq = new XMLHttpRequest();
  } else if (window.ActiveXObject) 
  {
    //通过MS ActiveX创建XMLHttpRequest
    try 
    {
      // 尝试按新版InternetExplorer方法创建
      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) 
    {
      // 创建请求的ActiveX对象失败
      try {
        // 尝试按老版InternetExplorer方法创建
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e2) {
        // 不能通过ActiveX创建XMLHttpRequest
      }
    }
  }
  return xmlreq;
}

/*
 * Returns a function that waits for the specified XMLHttpRequest
 * to complete, then passes its XML response to the given handler function.
 * req - The XMLHttpRequest whose state is changing
 * responseXmlHandler - Function to pass the XML response to
 */
function getReadyStateHandler(req, responseXmlHandler, isXML) 
{
  // 返回一个监听XMLHttpRequest实例的匿名函数
  return function () 
  {
    // 如果请求的状态是“完成”
    if (req.readyState == 4) 
    {
      // 检查是否成功接收了服务器响应
      if (req.status == 200) 
      {
        // 将载有响应信息的XML传递到处理函数
        if (isXML)
        {
        	responseXmlHandler(req.responseXML);
      	}
      	else
      	{
        	responseXmlHandler(req.responseText);
      	}
      } else 
      {
        // 有HTTP问题发生
        alert("HTTP error: "+req.status);
      }
    }
  }
}

function formatFormData()
{
	  var sResult = window.cmdForm.elements[0].name+"="+window.cmdForm.elements[0].value;
    for (var ObjID=1; ObjID < window.cmdForm.elements.length; ObjID++)
    {
        //sResult += "&" + window.cmdForm.elements[ObjID].name+"="+window.cmdForm.elements[ObjID].value;; 
        var elem = window.cmdForm.elements[ObjID];
        switch (elem.type) 
        {
            case "radio":
                if (elem.checked) 
                {
                    sResult += "&" + elem.name+"="+elem.value;
                }
                break;
            case "checkbox":
                if (elem.checked) 
                {
                    sResult += "&" + elem.name+"="+elem.value;
                }
                break;
            default:
                sResult += "&" + elem.name+"="+elem.value;
        }
         
        
    }
    return (sResult);
}

function ajaxRequest(callbackFunc,URL,charset,data)
{        
    // 获取一个XMLHttpRequest实例
    var req = newXMLHttpRequest();
  	// 设置用来从请求对象接收回调通知的句柄函数
  	var handlerFunction = getReadyStateHandler(req, callbackFunc);
  	req.onreadystatechange = handlerFunction;
  	// 打开一个HTTP POST联接
 	 	// 第三个参数表示请求是异步的
  	//req.open("POST", "/cams/system/accessTimePolicy/setAccessTimePolicyAsynCmd.jsp", true);
  	req.open("POST", URL, true);
  	
  	// 指示请求体包含form数据
  	//setRequestHeader(’Content-Type’, ’application/x-www-form-urlencoded; charset=UTF-8’); 
  	req.setRequestHeader("Content-Type", 
                       "application/x-www-form-urlencoded;charset="+charset);
  	// 发送的form数据
  	req.send(data);
}
