﻿var isIE = false;
var isFireFox = false;
if(navigator.userAgent.indexOf("MSIE")!=-1)
    isIE = true;
else if(navigator.userAgent.indexOf("Firefox")!=-1)
    isFireFox = true;
Array.prototype.removeAt = function(index)
{
    for(var i=index;i<this.length-1;i++)
    this[i] = this[i+1];
    this.length--;
};
Array.prototype.remove = function(obj)
{
    for(var i=0;i<this.length;i++)
    {
        if(this[i]==obj)
        {
            this.removeAt(i);
            break;
        }
    }
};
function getQueryString(name)
{
    var queryStrings = window.location.search.split('&');
    for(var i=0;i<queryStrings.length;i++)
    {
        if(queryStrings[i].indexOf(name+"=")!=-1)
            return queryStrings[i].substr(queryStrings[i].indexOf(name+"=")+name.length+1,queryStrings[i].length);
    }
    return "";
}

function getMainQueryString(name)
{
    var queryStrings = window.document.referrer.split('&');
    for(var i=0;i<queryStrings.length;i++)
    {
        if(queryStrings[i].indexOf(name+"=")!=-1)
            return queryStrings[i].substr(queryStrings[i].indexOf(name+"=")+name.length+1,queryStrings[i].length);
    }
    return "";

}
//根据name获得HTML控件的值
function getValue(name)
{//debugger
    if(document.getElementsByName(name).length>0)
    {
        switch(document.getElementsByName(name)[0].type)
        {
            case "text":
                return document.getElementsByName(name)[0].value;
            case "password":
                return document.getElementsByName(name)[0].value;
            case "textarea":
                return document.getElementsByName(name)[0].value;
            case "hidden":
                return document.getElementsByName(name)[0].value;
            case "select-one":
                return document.getElementsByName(name)[0].value;
            case "radio":
            {
                for(var i=0;i<document.getElementsByName(name).length;i++)
                {
                    if(document.getElementsByName(name)[i].checked)
                        return document.getElementsByName(name)[i].value;
                }
                return "";
            }
            case "checkbox":
            {//debugger;
                var returnValue = "";
                for(var i=0;i<document.getElementsByName(name).length;i++)
                {
                    if(document.getElementsByName(name)[i].checked)
                    {
                        if(returnValue=="")
                            returnValue += document.getElementsByName(name)[i].value;
                        else
                            returnValue += "|" + document.getElementsByName(name)[i].value;
                    }
                }
                return returnValue;
            }
            default:
            {
                alert(document.getElementsByName(name)[0].type);
            }
        }
    }
    else
        return "";
}

//如果Server端发回的时间格式是：2008-6-22 15:51:20，则new Date是不行的。
//为了去掉后面的 hh:mm:ss，特意增加了下面一段代码。
//DateString形式为“2008-6-22 15:51:20”的字符串
//By baosp
//--------start-------------------
function ReplaceTime(DateString)
{
    if(DateString==""||DateString==null)
        return "";
    var pattern = /([0-1][0-9]|[2][0-3]|[0-9]):([0-5][0-9]):([0-5][0-9])/g;
    return DateString.replace(pattern,"");
}
function Formatdate( strdate, format )
{
    var replace = strdate;
    if(format!="")   //存在格式字符串
    {
        var date = new Date(strdate);
        //改进"2008-6-22 15:51:20"格式的替换
        if( isNaN(date) )
        {
           replace = ReplaceTime(strdate);   //ReplaceTime定义在utils.js中                 
        }
        else
        {   
            if(date.valueOf() == -2177452800000)   //数据库中为null,C#中默认的日期
                replace = "";
            else       //替换所有的格式字符串
            {
                replace = format;
                replace = replace.replace("yyyy",date.getFullYear());
                replace = replace.replace("MM",date.getMonth()+1);
                replace = replace.replace("dd",date.getDate());
                replace = replace.replace("hh",date.getHours());
                replace = replace.replace("mm",date.getMinutes() < 10 ? "0" + date.getMinutes():date.getMinutes());
                replace = replace.replace("ss",date.getSeconds() < 10 ? "0" + date.getSeconds():date.getSeconds());
            }
         }
    }
    return replace;
}

//只能是数字，整数
function onlyNum()
{
    if( !( (event.keyCode>=48&&event.keyCode<=57) || (event.keyCode>=96&&event.keyCode<=105) ) )
    {    //alert(event.keyCode);
        if( event.keyCode==8  || event.keyCode==9 || event.keyCode==16  || event.keyCode==37 || event.keyCode==39)
            event.returnValue=true;
        else
            event.returnValue=false;   
    }
}

//只能是数字，float
function onlyFloat()
{
    if( !( (event.keyCode>=48&&event.keyCode<=57) || (event.keyCode>=96&&event.keyCode<=105) ) )
    {   
        if( event.keyCode==8 || event.keyCode==190  || event.keyCode==110 || event.keyCode==9 || event.keyCode==16  || event.keyCode==37 || event.keyCode==39 )//排除栅格键和“.”键
            event.returnValue=true;
        else
            event.returnValue=false;   
    }
}

//判断是否闰年
function LongYear(a)
{
    var result;
    if((parseInt(a)%400 == 0) || (parseInt(a)%4 == 0 && parseInt(a)%100 != 0))
        result = 1;
    else
        result = 0;
        
    return result;
}

function isIdCardNo(num, sex, birth )
{
    num = num.toUpperCase(); 
    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))
    {
        alert('输入的身份证号长度不对，或者号码不符合规定！\n15位号码应全为数字，18位号码末位可以为数字或X。'); 
        return false;
    } 
    //下面分别分析出生日期和校验位 
     var len, re; 
     len = num.length; 
     if (len == 15)
     { 
        var CodeSex=num.substr(14,1)%2;
        if( CodeSex == 1 ) CodeSex="M";
        else CodeSex="F";
        if(sex!=CodeSex)
        {
            alert('身份证与性别不符！');
            return false;
        } 
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);  
        //检查生日日期是否正确 
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); 
        var bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
        if (!bGoodDay)
        {
            alert('输入的身份证号里出生日期不对！');
            return false;
        }
        var dbirth = new Date( birth.replace(/-/g, "/") );
        bGoodDay = (dbirth.getFullYear() == Number( '19'+ arrSplit[2])) && ((dbirth.getMonth() + 1) == Number(arrSplit[3])) && (dbirth.getDate() == Number(arrSplit[4])); 
        if (!bGoodDay)
        { 
           alert('输入的身份证号里出生日期不对！'); 
           return false; 
        }
       
     }
     if (len == 18)
     { 
        var CodeSex=num.substr(16,1)%2;
        if( CodeSex == 1 ) CodeSex="M";
        else CodeSex="F";
        if( sex!=CodeSex)
        {
            alert('身份证与性别不符！');
            return false;
        } 
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); 
        var arrSplit = num.match(re); 
        //检查生日日期是否正确 
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); 
        var bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
        if (!bGoodDay)
        { 
           alert('输入的身份证号里出生日期不对！'); 
           return false; 
        }
        var dbirth = new Date( birth.replace(/-/g, "/") );
        bGoodDay = (dbirth.getFullYear() == Number(arrSplit[2])) && ((dbirth.getMonth() + 1) == Number(arrSplit[3])) && (dbirth.getDate() == Number(arrSplit[4])); 
        if (!bGoodDay)
        { 
           alert('输入的身份证号里出生日期不对！'); 
           return false; 
        }
        //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成，X可以认为是数字10。 
         var valnum; 
         var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
         var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
         var nTemp = 0, i; 
         for(i = 0; i < 17; i ++)
         {
            nTemp += num.substr(i, 1) * arrInt[i];
         }
         valnum = arrCh[nTemp % 11];
         if (valnum != num.substr(17, 1))
         { 
           alert('18位身份证的校验码不正确！应该为：' + valnum); 
           return false; 
         } 
      } 
      return true;
}

function isTel(obj)
{
    var regex=new RegExp("^([0-9][0-9]{0,9}\-)?([0-9][0-9]{0,12})+(\-[0-9]{0,10})?$");
    if(obj==null)
        return true;
    else if(obj.replace(' ','')=="")
       return true;
    else
       return regex.test(obj);
}

function formatNum( s )
{
    s = s + "";
    if(/[^0-9\.]/.test(s)) return "invalid value";
    s=s.replace(/^(\d*)$/,"$1.");
    s=(s+"00").replace(/(\d*\.\d\d)\d*/,"$1");
    s=s.replace(".",",");
    var re=/(\d)(\d{3},)/;
    while(re.test(s))
    s=s.replace(re,"$1,$2");
    s=s.replace(/,(\d\d)$/,".$1");
    return s.replace(/^\./,"0.")
}

function reverNum(s)
{
    if(s!="")
    {
        var list=s.split(',');
        var i=list.length;
        s='';
        for(var j=0;j<i;j++)
        {
           s+=list[j];
        }
        return s;
    }
}

function toBreakWord(intLen, strContent) {
    var strTemp = "";
    while (strContent.length > intLen) {
        strTemp += strContent.substr(0, intLen) + "<br>";
        strContent = strContent.substr(intLen, strContent.length);
    }
    strTemp += strContent;
    return strTemp;
}
