function checkName(object, name, parent, id) {
    var objectName;
    var objectEvent;
    if(object == "channel")
        objectEvent = "CheckChannelName";
    else if(object == "column")
        objectEvent = "CheckColumnName";
    else if(object == "user")
        objectEvent = "CheckUserName";
    objectName = document.all.objectName.value;
    window.open("name_check.asp?objectName=" + objectName + "&objectEvent=" + objectEvent + "&name=" + name + "&parent=" + parent + "&id=" + id,'pop','width=360,height=240');
}

function selectAll(container,name, status) {
    var items = container.elements.item(name);
    if(items != null) {
        if(items.length != null) {
            for(i=0 ; i<items.length ; i++) {
                items(i).checked = status;
            }
        }
        else {
            items.checked = status;
        }
    }
}

function multiSubmit(container, action, name, value) {
    if(action.length > 0)
        container.action = action;
    var item = container.elements.item(name);
    if(item.length == null)
        item.value = value;
    else
        return;
    container.submit();
}

function multiSubmit2(container, action, name, value, secName, secValue) {
    if(action.length > 0)
        container.action = action;
    var item1 = container.elements.item(name);
    if(item1.length == null)
        item1.value = value;
    else
        return;
    var item2 = container.elements.item(secName);
    if(item2.length == null)
        item2.value = secValue;
    else
        return;
    if(! checkForm(container))
        return;
    container.submit();
}

function checkForm(container) {
    var items = container.all;
    if(items.length != null) {
        for(var i=0 ; i<items.length ; i++) {
            var item = items(i);
            if(item.check != null) {
                if( ! eval(item.check)) {
                    alert(item.alert);
                    item.focus();
                    return false;
                }
            }
        }
    }
    return true;
}



/**
LogicalValue:用于判断对象的值是否符合条件，现已提供的选择有：
integer：整型，还可判断正整型和负整型
number ：数值型，同样可判断正负
date ：日期型，可支持以自定义分隔符的日期格式，缺省是以'-'为分隔符
string ：判断一个字符串包括或不包括某些字符
返回值：
true或false

参数：
ObjStr ：对象标识符——对象名；
ObjType：对象类型('integer','number','date','string'之一)

其他说明：
当对象值为空时，则返回错误。

Author:PPDJ

例子：
example 1:要求检验输入框text1的输入数据是否是“整型”数据，若不是，则提示
if (!LogicalValue('text1','integer')) alert('Error: Your must input a integer number');
example 2:要求检验输入框text1的输入数据是否是“正整型”数据，若不是，则提示
if (!LogicalValue('text1','integer','+')) alert('Error: Your must input a positive integer number');
example 3:要求检验输入框text1的输入数据是否是“负整型”数据，若不是，则提示
if (!LogicalValue('text1','integer','-')) alert('Error: Your must input a negative integer number');
exmaple 4:要求检验输入框text1的输入数据是否是数值，若不是，则提示
if (!LogicalValue('text1','number')) alert('Error: Your must input a number');
exmaple 5:要求检验输入框text1的输入数据是否是“正”数值，若不是，则提示
if (!LogicalValue('text1','number','+')) alert('Error: Your must input a number');
exmaple 6:要求检验输入框text1的输入数据是否是“负”数值，若不是，则提示
if (!LogicalValue('text1','number','-')) alert('Error: Your must input a number');
example 7:要求检验输入框text1的输入数据是否是日期型，若不是，则提示
if (!LogicalValue('text1','date')) alert('Error: Your must input a logical date value');
若它的分隔符为A，“A”是一个变量，如常用的'-'和'/'，则用如下语法
if (!LogicalValue('text1','date',A)) alert('Error: Your must input a logical date value');
或当分隔符为'/'时
if (!LogicalValue('text1','date','/')) alert('Error: Your must input a logical date value');
当分隔符为'-'时，可不要参数'-'，可带上
example 8:要求检验输入框text1的输入表示颜色的字符串是否合理，若不合理，则提示
if (!LogicalValue('text1','string','0123456789ABCDEFabcdef')) alert('Error: Your must input a logical color value');
example 9:要求检验输入框text1的输入表示密码的字符串是否不含“'"@#$%&^*”这些字符，若含有，则提示
if (!LogicalValue('text1','string','\'"@#$%&^*',false)) alert('Error: Your password can not contain \'"@#$%&^*');
其中false表示不包含有某些字符，true表示必须是哪些字符，缺省值为true
*/
function LogicalValue(ObjStr,ObjType) {
    var str='';
    if ((ObjStr==null) || (ObjStr=='') || ObjType==null) {
        //alert('函数LogicalValue缺少参数');
        return false;
    }
    var obj = document.getElementById(ObjStr);
    if (obj.value=='')
        return false;
    for (var i=2;i<arguments.length;i++) {
        if (str!='')
            str += ',';
        str += 'arguments['+i+']';
    }
    str=(str==''?'obj.value':'obj.value,'+str);
    var temp=ObjType.toLowerCase();
    if (temp=='integer') {
        return eval('IsInteger('+str+')');
    }
    else if (temp=='number') {
        return eval('IsNumber('+str+')');
    }
    else if (temp=='string') {
        return eval('SpecialString('+str+')');
    }
    else if (temp=='date') {
        return eval('IsDate('+str+')');
    }
    else if (temp=='null') {
        return eval('IsNull('+str+')');
    }
    else {
        alert('"'+temp+'"类型在现在版本中未提供');
        return false;
    }
}

/**
IsNull: 用于判断一个字符串是否为空，返回值为true或false

参数：
string ： 需要判断的字符串
IsOrNot： true或false，“true”表示string为空中，false”表示string不为空

Author: HughYao
sample1:
var str = '123G';
if (IsNull(str,true))
{
alert('Yes, this string is null');
}
else
{
alert('No, this string is not null');
}
结果执行的是else部分
sample2:
var password = '';
if (IsNull(password,false))
{
alert('Yes, The password is not correct.');
}
else
{
alert('No, The password is null');
}
结果执行的是else部分
*/

function IsNull(string, IsOrNot) {
    if(IsOrNot == null || IsOrNot == true) {
        if(string == null || string.length <= 0)
            return true;
        else
            return false;
    }
    else {
        if(string == null || string.length <= 0)
            return false;
        else
            return true;
    }
}


/**
IsInteger: 用于判断一个数字型字符串是否为整形，
还可判断是否是正整数或负整数，返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用，是正用'+'，负'-'，不用则表示不作判断
Author: PPDJ
sample:
var a = '123';
if (IsInteger(a))
{
alert('a is a integer');
}
if (IsInteger(a,'+'))
{
alert(a is a positive integer);
}
if (IsInteger(a,'-'))
{
alert('a is a negative integer');
}
*/

function IsInteger(string ,sign) {
    var integer;
    if ((sign!=null) && (sign!='-') && (sign!='+')) {
        //alert('IsInter(string,sign)的参数出错：\nsign为null或"-"或"+"');
        return false;
    }
    integer = parseInt(string);
    if (isNaN(integer)) {
        return false;
    }
    else if (integer.toString().length==string.length) {
        if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0)) {
            return true;
        }
        else
            return false;
    }
    else
        return false;
}

/**
IsDate: 用于判断一个字符串是否是日期格式的字符串

返回值：
true或false

参数：
DateString： 需要判断的字符串
Dilimeter ： 日期的分隔符，缺省值为'-'

Author: PPDJ
sample:
var date = '1999-1-2';
if (IsDate(date))
{
alert('You see, the default separator is "-");
}
date = '1999/1/2";
if (IsDate(date,'/'))
{
alert('The date\'s separator is "/");
}
*/

function IsDate(DateString , Dilimeter) {
    if (DateString==null)
        return false;
    if (Dilimeter=='' || Dilimeter==null)
        Dilimeter = '-';
    var tempy='';
    var tempm='';
    var tempd='';
    var tempArray;
    if (DateString.length<8 && DateString.length>10)
        return false;
    tempArray = DateString.split(Dilimeter);
    if (tempArray.length!=3)
        return false;
    if (tempArray[0].length==4) {
        tempy = tempArray[0];
        tempd = tempArray[2];
    }
    else {
        tempy = tempArray[2];
        tempd = tempArray[1];
    }
    tempm = tempArray[1];
    var tDateString = tempy + '/'+tempm + '/'+tempd+' 8:0:0';//加八小时是因为我们处于东八区
    var tempDate = new Date(tDateString);
    if (isNaN(tempDate))
        return false;
    if (((tempDate.getUTCFullYear()).toString()==tempy) && (tempDate.getMonth()==parseInt(tempm,10)-1) && (tempDate.getDate()==parseInt(tempd,10))) {
        return true;
    }
    else {
        return false;
    }
}

/**
IsNumber: 用于判断一个数字型字符串是否为数值型，
还可判断是否是正数或负数，返回值为true或false
string: 需要判断的字符串
sign: 若要判断是正负数是使用，是正用'+'，负'-'，不用则表示不作判断
Author: PPDJ
sample:
var a = '123';
if (IsNumber(a))
{
alert('a is a number');
}
if (IsNumber(a,'+'))
{
alert(a is a positive number);
}
if (IsNumber(a,'-'))
{
alert('a is a negative number');
}
*/

function IsNumber(string,sign) {
    var number;
    if (string==null)
        return false;
    if ((sign!=null) && (sign!='-') && (sign!='+')) {
        //alert('IsNumber(string,sign)的参数出错：\nsign为null或"-"或"+"');
        return false;
    }
    number = new Number(string);
    if (isNaN(number)) {
        return false;
    }
    else if ((sign==null) || (sign=='-' && number<0) || (sign=='+' && number>0)) {
        return true;
    }
    else
        return false;
}



/**
SpecialString: 用于判断一个字符串是否含有或不含有某些字符

返回值：
true或false

参数：
string ： 需要判断的字符串
compare ： 比较的字符串(基准字符串)
BelongOrNot： true或false，“true”表示string的每一个字符都包含在compare中，
“false”表示string的每一个字符都不包含在compare中

Author: PPDJ
sample1:
var str = '123G';
if (SpecialString(str,'1234567890'))
{
alert('Yes, All the letter of the string in \'1234567890\'');
}
else
{
alert('No, one or more letters of the string not in \'1234567890\'');
}
结果执行的是else部分
sample2:
var password = '1234';
if (!SpecialString(password,'\'"@#$%',false))
{
alert('Yes, The password is correct.');
}
else
{
alert('No, The password is contain one or more letters of \'"@#$%\'');
}
结果执行的是else部分
*/
function SpecialString(string,compare,BelongOrNot) {
    if ((string==null) || (compare==null) || ((BelongOrNot!=null) && (BelongOrNot!=true) && (BelongOrNot!=false))) {
        //alert('function SpecialString(string,compare,BelongOrNot)参数错误');
        return false;
    }
    if (BelongOrNot==null || BelongOrNot==true) {
        for (var i=0;i<string.length;i++) {
            if (compare.indexOf(string.charAt(i))==-1)
                return false
        }
        return true;
    }
    else {
        for (var i=0;i<string.length;i++) {
            if (compare.indexOf(string.charAt(i))!=-1)
                return false
        }
        return true;
    }
}
/*
跳转窗口
zhangw
*/
function jumppage(obj){
    location.href=obj
}
/*
跳转一个新窗口
*/
function jumppage2(obj){
    var x = obj.value;
    window.open(x);
}

/*
打开一个新窗口
zhangw
*/
function openWindow(obj,name,x,y){
    var target = window.open(obj,name,"toolbar=no,scrollbars=yes,resizable=yes,top=0,left=0,width="+x+",height="+y);
    if(target)
        target.focus();
}

/*
当鼠标到上面取得焦点
*/
function onOver(obj){
    obj.focus();
    obj.select();
}

function selectAction(src, des, type) {
    if ( type == "addAll") {
        if (src && src.options) {
            for (i=0; i<src.options.length; i++)
                src.options(i).selected = true;
            doAction("addSelect");
        }
    }
    else if ( type == "removeAll" ) {
        if (des && des.options) {
            for (i=0; i<des.options.length; i++)
                des.options(i).selected = true;
            doAction("removeSelect");
        }
    }
    else if (type == "addSelect") {
        if(src && src.options) {
            for(var i=0 ; i<src.options.length ; i++) {
                if(src.options(i).selected) {
                    if(! hasOption(des, src.options(i).value)) {
                        addOption(des, src.options(i).value, src.options(i).text);
                    }
                }
            }
        }
    }
    else if ( type == "removeSelect" ) {
        if(des && des.options) {
            for(i=0 ; i<des.options.length ; i++)
                if(des.options(i).selected) {
                    des.remove(i);
                    i--;
                }
        }
    }
    else
    {
        return false;
    }
}

function hasOption(container, v) {
    var hasIt = false;
    if(container && container.options) {
        for(var i=0 ; i<container.options.length ; i++) {
            if(container.options(i) && container.options(i).value == v)
                hasIt = true;
        }
    }
    return hasIt;
}

function addOption(container, v, t) {
    var oOption = document.createElement("OPTION");
    oOption.text = t;
    oOption.value = v;
    container.add(oOption);
}

function selectAll(container) {
   if(container && container.options) {
        for(var i=0 ; i<container.options.length ; i++)
            container.options(i).selected = true;
   }
}