﻿//定义系统全局常量
var AJAX_TIMEOUT = 1000 * 60 * 60 * 24;


var isIE = false;
var isFireFox = false;
if(navigator.userAgent.indexOf("MSIE")!=-1)
    isIE = true;
else if(navigator.userAgent.indexOf("Firefox")!=-1)
    isFireFox = true;



function $()
{
	var elements = [];
	for(var i=0; i<arguments.length; i++) {
		var e = arguments[i];
		if(typeof e == 'string') {
			e = document.getElementById(e);
		}
		if(arguments.length == 1) {
			return e;
		}
		elements.push(e);
	}
	return elements;
}


//非法字符过滤
function is_forbid(temp_str)
{
	temp_str = temp_str.replace('*',"@");
	temp_str = temp_str.replace('-',"@");
	temp_str = temp_str.replace('/',"@");
	temp_str = temp_str.replace('+',"@");
	temp_str = temp_str.replace('\'',"@");
	temp_str = temp_str.replace('\\',"@");
	temp_str = temp_str.replace('$',"@");
	temp_str = temp_str.replace('^',"@");
	temp_str = temp_str.replace('.',"@");
	temp_str = temp_str.replace('(',"@");
	temp_str = temp_str.replace(')',"@");
	temp_str = temp_str.replace(',',"@");
	temp_str = temp_str.replace(';',"@");
	temp_str = temp_str.replace('<',"@");
	temp_str = temp_str.replace('>',"@");
	temp_str = temp_str.replace('?',"@");
	temp_str = temp_str.replace('"',"@");
	temp_str = temp_str.replace('{',"@");
	temp_str = temp_str.replace('}',"@");
	temp_str = temp_str.replace('[',"@");
	temp_str = temp_str.replace(']',"@");
	var forbid_str=new String('@,#,%,!,~,&');
	var forbid_array=new Array();
	forbid_array=forbid_str.split(',');
	for(i=0;i<forbid_array.length;i++)
	{
		if(temp_str.search(new RegExp(forbid_array[i])) != -1)
		return false;
	}
	return true;
}
//检查是否为空
function isEmpty(inputId)
{
   if(g(inputId).value==''){return true}
   return false;
}

//var oHtml = new StringBuilder( '<table id="tableFiles" >' ) ;
//oHtml.Append( '</table>' ) ;
function StringBuilder( value )
{
    this._Strings = new Array( value || '' ) ;
}

StringBuilder.prototype.Append = function( value )
{
    if ( value )
        this._Strings.push( value ) ;
}

StringBuilder.prototype.ToString = function()
{
    return this._Strings.join( '' ) ;
}

//---------------获取/xxx.aspx?a=xxx&b=yyy-----------------
function GetUrlParam( paramName )
{
	var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
	var oMatch = oRegex.exec( window.top.location.search ) ;

	if ( oMatch && oMatch.length > 1 )
		return decodeURIComponent( oMatch[1] ) ;
	else
		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 "";

}

function getSelectedValue(obj)
{
    return obj.options[obj.selectedIndex].value;
}

//根据name获得HTML控件的值
function getValue(name)
{
    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":
            {
                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 "";
}

//二选一取值函数，By Jamber
function RadioValue(tagName)
{
    l=document.getElementsByName(tagName)  
    for(i=0;i<l.length;i++)  
    {  
        if(l[i].checked) 
            return   l[i].value;
    }  
}

//如果Server端发回的时间格式是：2008-6-22 15:51:20，则new Date是不行的。
//为了去掉后面的 hh:mm:ss，特意增加了下面一段代码。
//DateString形式为“2008-6-22 15:51:20”的字符串
//By Jamber
//--------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 = "&nbsp";
            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.returnValue=true;
        else
            event.returnValue=false;   
    }
}

//-------------------------过滤空格、TAB、回车等无意义字符----------------
function LTrim(str)
{
    var i;
    for(i=0;i<str.length;i++)
    {
        if(str.charAt(i)!=" "&&str.charAt(i)!="\t")break;
    }
    str=str.substring(i,str.length);
    return str;
}
function RTrim(str)
{
    var i;
    for(i=str.length-1;i>=0;i--)
    {
        if(str.charAt(i)!=" "&&str.charAt(i)!="\t")break;
    }
    str=str.substring(0,i+1);
    return str;
}
function Trim(str)
{
    return LTrim(RTrim(str));
}

//格式化时间格式
//alert(new Date().format("yyyy-MM-dd hh:mm:ss"));
Date.prototype.format = function(format)
{ 
    var o = { 
        "M+" : this.getMonth()+1, //month 
        "d+" : this.getDate(), //day 
        "h+" : this.getHours(), //hour 
        "m+" : this.getMinutes(), //minute 
        "s+" : this.getSeconds(), //second 
        "q+" : Math.floor((this.getMonth()+3)/3), //quarter 
        "S" : this.getMilliseconds() //millisecond 
    } 
    if(/(y+)/.test(format))
    {
        format=format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
    for(var k in o)
    {
        if(new RegExp("("+ k +")").test(format))
        {
            format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
        }
    }
    return format; 
} 



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;
        }
    }
};