﻿
//根据传入的id列表，如果第二个参数为null，根据实际情况显示或删除指定的id。
function showOrHide(array, isShow) {
    for (var i = 0; i < array.length; i++) {
        showOrHideOne(array[i], isShow);
    }
}
//根据传入的id，如果第二个参数为null，根据实际情况显示或删除指定的id。
function showOrHideOne(id, isShow) {
    var obj = document.all(id);
    if (obj == null)
        return;
    if (isShow == null)
        isShow = obj.style.display == 'none';
    obj.style.display = isShow ? '' : 'none';
}
//得到一个str，是被选中的value，逗号分隔
function getSelectResultOne(checkBox) {
    var needAddStr = "";
    var newSelectStr = getSelectStr(checkBox);
    for (var i = 0; i < newSelectStr.length; i++) {
        var value = checkBox[i].value;
        if (newSelectStr.charAt(i) == '1') {
            needAddStr += needAddStr.length == 0 ? value : ',' + value;
        }
    }
    return needAddStr;
}
//得到两个str，第一个是需要删除的value，第二个需要添加的value，都是逗号分隔
function getSelectResult(checkBox, oldSelectStr) {
    var needDeleteStr = "";
    var needAddStr = "";
    var newSelectStr = getSelectStr(checkBox);
    for (var i = 0; i < newSelectStr.length; i++) {
        var temp = newSelectStr.charAt(i);
        if (temp != oldSelectStr.charAt(i)) {
            var value = checkBox[i].value;
            if (temp == '0') {
                needDeleteStr += needDeleteStr.length == 0 ? value : ',' + value;
            } else {
                needAddStr += needAddStr.length == 0 ? value : ',' + value;
            }
        }
    }
    return new Array(needDeleteStr, needAddStr);
}
//计算某个checkbox对象的字符串，选中的记1，没被选中的记0。
function getSelectStr(checkBox) {
    var str = "";
    for (var i = 0; i < checkBox.length; i++) {
        if (checkBox[i].checked)
            str += '1';
        else
            str += '0';
    }
    return str;
}
//全选某个checkBox
function checkBoxSelect(Obj) {
    for (var i = 0; i < Obj.length; i++)
        Obj[i].checked = true;
}
//清除某个checkBox
function checkBoxClear(Obj) {
    for (var i = 0; i < Obj.length; i++)
        Obj[i].checked = false;
}

//选中某个特定value的select对象的
function selectSelect(selectObj, selectValue) {
    for (var i = 0; i < selectObj.options.length; i++) {
        selectObj.options[i].selected = false;
        if (selectObj.options[i].value == selectValue) {
            selectObj.options[i].selected = true;
        }
    }
}
//清空某一个select对象中的所有属性
function clearSelect(selectObj) {
    for (var i = selectObj.options.length - 1; i > -1; i--)
        selectObj.options[i] = null;
}

/**
 * 得到String的长度
 */
function lench(ch) {
    return getLength(ch);
}
/**
 * 得到String的长度
 */
function getLength(str) {
    var length = 0
    for (var i = 0;i < str.length; i++) {
        if (str.charCodeAt(i) > 127)
            length += 2;
        else
            length++;
    }
    return length;
}
/**
 *转向到想去的页面
 *display 为想转向到的页面
 */
function returnFunction(display) {
    window.document.location = display;
}
/**
 *转向到帮助页面
 *display 为帮助页面
 */
function help(display) {
    window.document.location = display;
}
/*判断空字符
s   字符   in
返回 true/false
*/
function IsBlank(s) {
    var i = 0;
    while (i < s.length) {
        if (s.charAt(i) != " ")
            return false;
        i++;
    }
    return true;
}
/*判断数字字符
c   数字字符   in
返回 true/false
*/
function isnumber(c) {
    if (c >= '0' && c <= '99') {
        return true;
    } else {
        return false;
    }
}
/*判断英文字符
c   英文字符   in
返回 true/false
*/
function ischar(c) {
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
        return true;
    else
        return false;
}
/*判断是否是数字（int型）
s   数字字串   in
返回 true/false
*/
function checkint(s) {
    if(s == null || s == ""){
        return false;
    }
    for (var i = 0; i < s.length; i++){
        n = s.substr(i, 1);
        if (!(isnumber(n))) {
            return false;
        }
    }
    return true;
}
/*判断用户名是否合法只能包括数字，字母，和下划线
  */
function checkUserId(s) {
    for (i = 0; i < s.length; i++) {
        n = s.substr(i,1);
        if ( !(isnumber(n))&&!(ischar(n))&&(n!='_'))
            return false;
    }
    return true;
}
/*判断是否是数字（float型）
s   数字字串   in
返回 true/false
*/
function checknumber(s) {
    var nAtNum;
    nAtNum = 0;
    var negativePos;
    negativePos = 0
    if(s == null) {
        s = "";
    }
    for (xunhuanI = 0; xunhuanI < s.length; xunhuanI++) {
            n = s.substr(xunhuanI, 1)
            if (n == '-')
                negativePos = xunhuanI;
            if (n == '.')
                nAtNum = nAtNum + 1;
            if (!(isnumber(n) || n == '.'|| n == '-')) {
                return false;
            }
    }
    if (negativePos != 0 || nAtNum > 1) {
        return false;
    } else {
        return true;
    }
}
/*判断是否是时间（time型）
s   字串   in
返回 true/false
*/
function checktime(s) {
    var nAtPos;
    nAtPos = 50000;
    for (var i = 0; i<s.length; i++) {
        n = s.substr(i, 1)
        if (!(isnumber(n)||n==':')) {
            return false;
        }
        if ( n == ':') {
            nAtPos = i;
        }
    }
    if (nAtPos == 0) {
        return false;
    } else {
        return true;
    }
}

/*判断email的有效性
s  email字串   in
返回 true/false
*/
function checkemail(s) {
    var nAtPos;
    nAtPos = 0;
    for (var i = 0; i<s.length; i++) {
        n = s.substr(i, 1)
        if (!(isnumber(n)||ischar(n)||n=='_'||n=='.'||n=='@'||n=='-')) {
            return false;
        }
        if ( n == '@') {
            nAtPos = i;
        }
    }

    if ((nAtPos == 0) || (nAtPos == s.length-1)) {
        return false;
    } else {
        return true;
    }
}
/*判断年份的有效性
year  年份   in
返回 true/false
*/
function checkyear(year) {
   if (parseFloat(year)<1900||parseFloat(year)>3000)
      return false;
   else
      return true;
}
/*判断月份的有效性
month  月份   in
返回 true/false
*/
function checkmonth(month) {
   if ((parseFloat(month)<1)||(parseFloat(month)>12))
      return false;
   else
      return true;
}
/*判断日的有效性
day  日   in
返回 true/false
*/
function checkday(day) {
   if ((parseFloat(day)<1)||(parseFloat(day)>31))
      return false;
   else
      return true;
}

/*判断日期格式的有效性
s  日期   in
返回 true/false
*/
function checkdatevalid(s) {
    var n;
    for (var i = 0; i<s.length; i++) {
        n = s.substr(i, 1)
        if (!(isnumber(n)||n=='-')) {
            return false;
        }
    }
    return true;
}

/*判断日期的有效性
yearStr  年   in
monthStr 月   in
dayStr   日   in
返回 true/false
*/
function validateDay(yearStr, monthStr, dayStr) {
    var yearInt = parseFloat(yearStr);
    var monthInt = parseFloat(monthStr) - 1;
    var dayInt = parseFloat(dayStr);
    if (monthInt > 11) {
        return false;
    }
    if (yearInt < 1900) {
        return false;
    }
    var monthDays = new Array(12)
    monthDays[0] = 31;
    monthDays[1] = 28;
    monthDays[2] = 31;
    monthDays[3] = 30;
    monthDays[4] = 31;
    monthDays[5] = 30;
    monthDays[6] = 31;
    monthDays[7] = 31;
    monthDays[8] = 30;
    monthDays[9] = 31;
    monthDays[10] = 30;
    monthDays[11] = 31;

    if (yearInt % 100 == 0) {
        if (yearInt % 400 == 0) {
            monthDays[1] = 29;
        }
    } else {
        if (yearInt % 4 == 0) {
            monthDays[1] = 29;
        }
    }

    if (dayInt > monthDays[monthInt]) {
        return false;
    }
    return true;
}

/*判断日期的有效性
date1  日期   in
返回 true/false
日期格式为2001-05-05
*/
function validateDay2(date1) {
    var i = 0;
    var b_year="-1";
    var b_month="-1";
    var b_day="-1";

    if (!checkdatevalid(date1)) {
        alert("请正确填写日期格式，例如2001-05-05！");
        return false;
    }

    i = date1.indexOf("-");
    if (i != -1) {
        b_year = date1.substring(0,i);
        date1=date1.substring(i+1);
    }

    i = date1.indexOf("-");
    if(i != -1) {
        b_month = date1.substring(0,i);
        b_day=date1.substring(i+1);
    }

    if (!checkyear(b_year)) {
        alert("年份不正确！");
        return false;
    }

    if (!checkmonth(b_month)) {
        alert("月份不正确！");
        return false;
    }

    if (!checkday(b_day)) {
        alert("日期不正确！");
        return false;
    }

    if (!validateDay(b_year,b_month,b_day)) {
        alert("请正确填写日期，输入的日期不存在!");
        return false;
    }
    return true;
}

/*比较两个日期的先后
date1  日期一   in
date2  日期二   in
返回 true/false
日期格式为2001-05-05
日期一比日期二大返回true
*/
function checkdate(date1,date2) {
    var i = 0;
    var b_year="-1";
    var b_month="-1";
    var b_day="-1";
    var b_year2="-1";
    var b_month2="-1";
    var b_day2="-1";
    if (!checkdatevalid(date1)) {
        alert("请正确填写日期格式，例如2001-05-05！");
        return false;
    }

    if (!checkdatevalid(date2)) {
        alert("请正确填写日期格式，例如2001-05-05！");
        return false;
    }

    i = date1.indexOf("-");
    if (i != -1) {
        b_year = date1.substring(0,i);
        date1=date1.substring(i+1);
    }

    i = date1.indexOf("-");
    if(i != -1) {
        b_month = date1.substring(0,i);
        b_day=date1.substring(i+1);
    }

    if (!checkyear(b_year)) {
        alert("年份不正确！");
        return false;
    }
    if (!checkmonth(b_month)) {
        alert("月份不正确！");
        return false;
    }

    if (!checkday(b_day)) {
        alert("日期不正确！");
        return false;
    }

    if (!validateDay(b_year,b_month,b_day)) {
        alert("请正确填写日期，输入的日期不存在!");
        return false;
    }

    i = date2.indexOf("-");
    if(i != -1) {
        b_year2 = date2.substring(0,i);
        date2=date2.substring(i+1);
    }

    i = date2.indexOf("-");
    if (i != -1) {
        b_month2 = date2.substring(0,i);
        b_day2=date2.substring(i+1);
    }

    if (!checkyear(b_year2)) {
        alert("年份不正确！");
        return false;
    }
    if (!checkmonth(b_month2)) {
        alert("月份不正确！");
        return false;
    }

    if (!checkday(b_day2)) {
        alert("日期不正确！");
        return false;
    }

    if (!validateDay(b_year2,b_month2,b_day2)) {
        alert("请正确填写日期，输入的日期不存在!");
        return false;
    }

    if (parseFloat(b_year) < parseFloat(b_year2)) {
        return false;
    } else if (parseFloat(b_year) == parseFloat(b_year2)) {
        if (parseFloat(b_month) < parseFloat(b_month2)) {
            return false;
        } else if (parseFloat(b_month) == parseFloat(b_month2)) {
            if (parseFloat(b_day) <= parseFloat(b_day2)) {
                return false;
            }
        }
    }
    return true;
}
/**
 *
 *调用<textarea name="MS_excerpta" onKeyDown="textCounter(this.form.MS_excerpta,50);"  onKeyUp="textCounter(this.form.MS_excerpta,50);"></textarea>
 */
function textCounter(field,maxlimit) {
    // 定义函数，传入3个参数，分别为表单区的名字，表单域元素名，字符限制；
    if (field.value.length > maxlimit) {
        alert("您输入的字数超出了限制！");
        //如果元素区字符数大于最大字符数，按照最大字符数截断；
        field.value = field.value.substring(0, maxlimit);
    }
    //else
    //在记数区文本框内显示剩余的字符数；
    //countfield.value = maxlimit - field.value.length;
}
/**
 *
 */
function returnString(ch,Maxlength) {
    var tempString = ""
    var ture_len = 0
    var ture_len = 0
    for (var i = 0;i <= ch.length-1;i++) {
        if (ch.charCodeAt(i) > 127) {
            if((ture_len+2) > Maxlength) {
                return tempString;
            }
            tempString += ch.charAt(i)
            ture_len=ture_len + 2;
        } else {
            if((ture_len+1) > Maxlength) {
                return tempString;
            }
            tempString += ch.charAt(i)
            ture_len=ture_len + 1;
        }
    }
    return tempString;
 }
/**
 *
 *调用<textarea name=message onKeyDown="textCounter2(this.form.message,this.form.remLen,125);" onKeyUp="textCounter2(this.form.message,this.form.remLen,125);"></textarea>
 */
function textCounter2(field, countfield, maxlimit) {
    // 定义函数，传入3个参数，分别为表单区的名字，表单域元素名，字符限制；
    if (lench(field.value) > maxlimit) {
        alert("您输入的字数超出了限制！");
        //如果元素区字符数大于最大字符数，按照最大字符数截断；
        //field.value = field.value.substring(0,(maxlimit/2)-1);
        field.value = returnString(field.value,maxlimit);
        countfield.value = (maxlimit - lench(field.value))/2;
        field.select();
    } else {
        //在记数区文本框内显示剩余的字符数；
        var tempValue = "" + (maxlimit - lench(field.value))/2;
        if (tempValue.indexOf(".") != -1) {
            tempValue = tempValue.substring(0, tempValue.indexOf("."));
        }
        countfield.value = tempValue;
        //field.focus();
    }
}
/**
 *响应回车按键，跳转到下一个输入域
 */
//onKeyUp="clickEnter(event,this.form.ZB_BA_completePhaseStrikeTujian);"
function clickEnter(event,countfield) {
    if(event.keyCode == 13)
        countfield.select();
}
/**
 *响应回车按键，触发一段JavaScript
 */
function clickEnterEvent(event, Obj, script) {
    if(event.keyCode == 13) {
        Obj._script = new Function(script);
        Obj._script();
    }
}
/**
 *两个数字相乘赋值给第三个
 */
 //onKeyUp="clickSum(event,zgSinglePrice,stockNum,zgPrice);"
function clickSum(event,pricefield,numfield,countfield) {
    var countFloat = 0;
    if(numfield.value != "" && pricefield.value != "") {
        if(!checknumber(numfield.value)) {
            alert("请正确填写采购数量");
            countfield.value = "";
            numfield.focus();
            return;
        }
        if(!checknumber(pricefield.value)) {
            alert("请正确填写单价");
            countfield.value = "";
            pricefield.focus();
            return;
        }
        countFloat = parseFloat(parseFloat(pricefield.value) * parseFloat(numfield.value));
        //(new java.math.BigDecimal(tempDouble).setScale(2,java.math.BigDecimal.ROUND_HALF_EVEN)).toString( )
        //countfield.value = Math.BigDecimal(countFloat).setScale(2,Math.BigDecimal.ROUND_HALF_EVEN);
        //var val = new Number(countFloat);
        //countfield.value = val.toFixed(9);
        countfield.value = countFloat;
    } else {
        countfield.value = "";
    }
}

     /**
    * 保留小数方法
    * num 要保留几位小数
    * tempStr 需要保留小数的数字
    *   例子 document.getElementsByName(machine_xiaomoney+i)[0].value = preservingNum(2,oneXiaomoney);
    */
function preservingNum(Num,Decimal) {
    var tempNum = parseFloat(Num, 10);
    var tempDecimal = parseFloat(Decimal);
    if (tempNum == 0){
       tempDecimal = Math.round(tempDecimal);
    } else {
        var tempPow = Math.pow(10,tempNum);
        tempDecimal = (Math.round(tempDecimal*tempPow))/tempPow;
    }
    return tempDecimal;
}
/**
*检查金额输入框中是否是数字，而且数字的小数是否超过两位的方法
*tempForm form名称
*tempFormName 输入框的名称
* 例子
*/
function checkFormDecimal(obj, alertValue) {
    var value = obj.value;
    //不允许输入中文
    if (alertValue != null && !checknumber(value)) {
        alert(alertValue);
        obj.focus();
        return false;
    }
    var pos = value.lastIndexOf('.');
    //需要减掉几位
    var cutNum = 0;
    if (pos != -1) {
        cutNum = value.length - pos - 3;
    }
    if (cutNum > 0) {
        alert("输入的数字的小数位数不能超过两位，请重新输入!");
        obj.value = value.substr(0, value.length - cutNum);
        obj.focus();
        return false;
    }
    return true;
}
/**
* 补零方法
* num 表示将来返回Str的长度
* tempStr 要补零的Str
* 例子	searchByContractCodeForm.CG_codeSerial.value =
*       addStrZero(3,searchByContractCodeForm.CG_codeSerial.value);
*
*/
function addStrZero(num, tempStr) {
    var tempNum = parseFloat(num);
    var tempStrLeng = tempStr.length;
    var returnStr = tempStr;
    if(IsBlank(tempStr)){
        return "";
    }
    for (var i = 0; i < tempNum - tempStrLeng; i++)
        returnStr = "0" + returnStr;
    return returnStr;
}
/**
 * disabled页面中所有的元素
 * if (typeof(document.all[i]) != "undefined"){
 */
function allElementDisabled(){
    for (var i = 0; i < document.all.length;i++){
        disable(document.all[i]);
    }
}
/**
 * disabled页面中所有的元素
 * if (typeof(document.all[i]) != "undefined"){
 */
function allElementDisabledNOsubmit(){
    allElementDisabled();
}
/**diable页面对象
 * obj 需要diable的页面对象
 */
function disable(obj) {
    if (obj.type == null) {
        return;
    }
    if (obj.type == 'reset' ||
        obj.type == 'button' ||
        obj.type == 'submit') {
        obj.disabled = true;
    } else if (obj.onclick != null) {
        obj.onclick = '';
    } else if (obj.onchange != null) {
        obj.onchange = '';
    } else if (obj.href != null && (obj.rel == null || obj.rel != 'stylesheet')) {
        //是链接，但不是样式表
        obj.disabled = true;
        obj.href = '#';
    }
    return;
}
/**
 * add by swallow
 * 获取文本框的值，返回值类型为Float
 * @param fieldName 文本框的名字
 * @param canBeBlank 该文本框是否可以为空
 * 如果canBeBlank为true并且fieldName的值为空，则返回0
 */
function getFloat(fieldName,canBeBlank){
    var valueStr = document.getElementsByName(fieldName)[0].value;
    if (canBeBlank && IsBlank(valueStr)){
        valueStr = "0";
    }
    return parseFloat(valueStr);
}

/**
 * add by swallow
 * 检测用户输入的内容（必须为数字）是否合法
 * @param fieldName 文本框的名字
 * @param tip 输入数据不合法时的提示信息
 * @param canBeBlank 该文本框是否可以为空
 */
function checkFloat(fieldName,tip,canBeBlank){
    var valueStr = document.getElementsByName(fieldName)[0].value;
    if (IsBlank(valueStr)){
        if(!canBeBlank){
            alert("请填写" + tip);
            document.getElementsByName(fieldName)[0].focus();
            return false;
        }
    }else{
        if (!checknumber(valueStr)){
            alert("请正确填写" + tip);
            document.getElementsByName(fieldName)[0].focus();
            return false;
        }
    }

    return true;
}

/**
 * add by swallow
 * 给文本框赋值
 * @param fieldName 文本框的名字
 * @param value Float类型的值
 * @param scale 小数位数
 */
function setFloat(fieldName,value,scale){
    document.getElementsByName(fieldName)[0].value = preservingNum(scale,value);
}

function Trim(str) {
	str = str + "";
	return RTrim(LTrim(str))
}

function LTrim(str) {
	str = str + "";
	while (str.substring(0,1)==" " || str.charAt(0) == '\u00A0') str = str.substring(1);
	return str;
}

function RTrim(str){
	str = str + "";
	while (str.substring(str.length-1)==" ") str = str.substring(0,str.length-1);
	return str;
}

