﻿// 此文件中放与业务逻辑相关的JavaScript代码

/* 计算评价得分
 * 计算分数 tbId : 测评项目表id  sumId : 显示得分的控件id
 */
function Calculator(tbId,  sumId)
{
    var tb = document.getElementById(tbId);
    var sum = 0, sumRatio = 0;
    var ratio;
    for(i = 0; i < tb.rows.length; i = i + 1)
    {
        if(tb.rows(i).id == undefined || tb.rows(i).id.lastIndexOf("r") < 0)
        {
            continue;
        }
        ratio = tb.rows(i).id.substring(tb.rows(i).id.lastIndexOf("r") + 1, tb.rows(i).id.length + 1);
        if(isNaN(ratio))
        {
            continue;
        }
        sumRatio = sumRatio + parseFloat(ratio);

        var radios = tb.rows(i).cells(1).all.tags("input");
        for(j = 0; j < radios.length; j = j + 1)
        {
            if(radios[j].type == "radio" && radios[j].checked)
            {
                sum = sum + parseFloat(ratio) * parseFloat(radios[j].value.substring(1, radios[j].value.length + 1));
                break;
            }
        }
    }

    // 每项评分最高分9分
    document.getElementById(sumId).innerHTML = "&nbsp;&nbsp;" + (sum * 100.0 / (sumRatio * 9.0)).toFixed(2) + "&nbsp;分";
}

/******************************************************************************
 *密码策略,密码必需达到一定长度 且必需包含大小写字母、数字及其它可输入合法字符
 *(除空格、制表符、回车、' )
 ******************************************************************************/
function CheckPolicy( source, arguments )
{
    var value = arguments.Value
    var objT = document.getElementById( source.controltovalidate );
    var len = objT.pwdlength;
    if( len > 0 )
    {
        if( value.length < len )
        {
            arguments.IsValid = false;
        }
        else
        {
            if( objT.check.toLowerCase() == "true" )
            {
               if(!CheckComplex( value ))
               {
                 arguments.IsValid = false;
               }
            }
        }
    }
    else
    {
        if( objT.check.toLowerCase() == "true" )
        {
          if(!CheckComplex( value ))
          {
            arguments.IsValid = false;
          }
        }
    }
    value = null;
    objT = null;
    len = null;
}

//  ---------------------------------------
/*
*检测密码复杂度
*/
function CheckComplex( value )
{
    if ( value.indexOf( "'") > -1 || /\s/ .test( value ) )
    {
        return false;
    }
    else
    {
        if( /\w/.test( value ) && /[a-z]/.test( value ) && 
            /[A-Z]/.test( value ) && /[0-9]/.test( value ) && /[^A-Za-z0-9]/ .test( value ))
        {
            return true ;
        }
        else
        {
            return false;
        }
    }
}


/*****************************************************************************************************
 * 登录相关的函数(Begin Script)
 *****************************************************************************************************/
function LoginOpen(val)
{
    var result = val.split(" ");
    // alert(result);
    if((result.length == 1 && result[0] == "true") || result[1] == "true")
    {
        if(result.length == 2)
        {
            alert(result[0]);
            // 即将过期提醒
        }
        var obj = window.open("HomePage.aspx", "_blank", "toolbar=no,menubar=no,location=no,resizable=yes,status=yes,scroll=no,", false);
        //var obj = null;
        if(obj != null)
        {
            obj.document.onreadystatechange = function()
            {
                window.opener = null;
                window.close();
                obj.document.onreadystatechange = null;
                obj = null;
            }
        }
        else
        {
            return;
        }
    }
    else
    {
        if(result.length == 1)
        {
            alert("用户名或密码错误, 请重新登录!");
        }
        else if(result.length == 2 && result[1] == "false")
        {
            alert(result[0]);
            // 密码过期
        }
        else
        {
            alert("内部错误, 请关闭网页重新登陆！");
        }
    }
}

function KeyD(obj)               //// 登录时按下回车键
{
    var name = "jztxtName";
    var pwd = "jztxtPwd";
    var login = "imgbLogin"
    if (event.keyCode == 13)
    {
        if (document.getElementById(obj).name == name)
        {
            document.getElementById(pwd).focus();
        }
        if (document.getElementById(obj).name == pwd)
        {
            document.getElementById(login).click();
        }
    }
}
/*****************************************************************************************************
 * 登录相关的函数(End Script)
 *****************************************************************************************************/


/*********************************************************************************************************************
 * 自动编号(Begin script)
 *********************************************************************************************************************/
function AutoGetNextCode(obj, url, pre)
{
    var code = GetXmlHttpResult(url);
    code = "000000" + code;
    var len = code.length;
    code = code.substring(len - 6, len);
    code = pre + code;
    document.getElementById(obj).value = code;
}

function AddCode( ctrl,pre )
{
   var obj=document.getElementById( ctrl );
   var code = obj.value.replace( pre ,"");
   var num = parseInt( code.substring( pre.length, code.length + 1 ), 10 );
   num = num + 1;
   code = "000000" + num;
   code = code.substring( code.length - 6, code.length );
   if( isNaN( code ) )
   {
     code="000001";
   }
   code = pre + code;
   document.getElementById( ctrl ).value = code;
}

/*
 * 检测客户自动编号修改后是否合法
 */
function CheckCustomerAutoCode( source, arguments )
{
    var chk = "^C[0-9]{6}$";
    var msg = "客户编号错误，必需为C+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}

/*
 * 检测供应商自动编号修改后是否合法
 */
function CheckSupplyAutoCode( source, arguments )
{
    var chk = "^S[0-9]{6}$";
    var msg = "供应商编号错误，必需为S+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}

/*
 * 检测代理商自动编号修改后是否合法
 */
function CheckAgencyAutoCode( source, arguments )
{
    var chk = "^A[0-9]{6}$";
    var msg = "代理商编号错误，必需为A+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 检测公司产品自动编号修改后是否合法
 */
function CheckProductAutoCode( source, arguments )
{
    var chk = "^Pd[0-9]{6}$";
    var msg = "产品编号错误，必需为Pd+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 检测供应商产品自动编号修改后是否合法
 */
function CheckSupplyProductAutoCode( source, arguments )
{
    var chk = "^Ps[0-9]{6}$";
    var msg = "供应商产品编号错误，必需为Ps+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 检测固定资产自动编号修改后是否合法
 */
function CheckAssetsAutoCode( source, arguments )
{
    var chk = "^UA[0-9]{6}$";
    var msg = "固定资产编号错误，必需为UA+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 检测耗材编号修改后是否合法
 */
function CheckofficeAutoCode( source, arguments )
{
    var chk = "^UF[0-9]{6}$";
    var msg = "办公耗材编号错误，必需为UF+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 账号是否由字母和数字组成
 */
function CheckUserAccount(source,arguments)
{
   var chk = "[a-zA-Z]*[0-9]*";
   var msg = "用户账号错误，必需有字母+数字！";
   var reg = new RegExp(chk);
   var value = arguments.Value;
   if( !reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*
 * 检测员工编号修改后是否合法
 */
function CheckEmployeeCode( source, arguments )
{
    var chk = "^E[0-9]{6}$";
    var msg = "员工编号错误，必需为E+六位数字！";
    var reg = new RegExp( chk );
    var value = arguments.Value;
    if( ! reg.test( value ) )
    {
        arguments.IsValid = false;
        source.errormessage = msg;
    }
}
/*********************************************************************************************************************
 * 自动编号(End script)
 *********************************************************************************************************************/
 

/********************************************************
 * 至少选择一个复选框(<table><tr><td>复选框</td></tr></table>)
 ********************************************************/
function IsCheckedOne( tbId )
{
    var tb = document.getElementById( tbId );
    var checkedflag = false;
    for( i = 1; i < tb.rows.length; i = i + 1 )
    {
        var chk = tb.rows( i ).cells( 0 ).all.tags( "input" );
        if ( chk.length > 0)
        {
            if( chk[0].type == "checkbox" && chk[0].checked)
            {
                checkedflag = true;
                break;
            }
            else
            {
                continue;
            }
        }
    }
    if ( ! checkedflag)
    {
        alert("请选择一项！");
    }
    return checkedflag;
}
//全选
function CheckOrNot( tbId , objChk)
{
    var tb = document.getElementById( tbId );
    var Ischk = document.getElementById( objChk );
    for( i = 1; i < tb.rows.length; i = i + 1 )
    {
        var chk = tb.rows( i ).cells( 0 ).all.tags( "input" );
        if ( chk.length > 0)
        {
            if( chk[0].type == "checkbox" )
            {
                chk[0].checked = Ischk.checked ;
            }
        }
    }
}
/*********************************************************************************************************************
 * 判断月份(Begin script)
 *********************************************************************************************************************/
 function oa_month(source,arguments)
 {
   var month=new Array("1","2","3","4","5","6","7","8","9","10","11","12","0");
   var value = arguments.Value;
   var msg ="月份不正确！";
   if (month[parseInt(value)] == null||value==0) 
    {       
       arguments.IsValid = false;
       source.errormessage = msg;
    }

 }
