﻿//2007-06-01 by zzc
/*----------------------------常用函数----------------------------*/
//创建元素
function _ce(o){return document.createElement(o);}
//获得元素
function _re(o){return document.getElementById(o);}
//隐藏元素
function _hi(o){_re(o).style.display='none';}
//显示元素
function _sh(o){_re(o).style.display='block';}

//填充Select的单option
function FillSelect(obj,val,text)
{
	var newOpt=document.createElement("option");
	newOpt.text=text;
	newOpt.value=val;
	obj.options.add(newOpt);
}

//使用数组填充select
function FillE(obj,arr,spliter)
{
    obj.length=0;
    for(var i=0;i<arr.length;i++)
    {
        var tmpArr=arr[i].split(spliter);
        Comm_Select_Add(obj,tmpArr[1],tmpArr[0]);
    }
}

//使用数组填充select
function Comm_FillE(obj,arr,spliter)
{
    obj.length=0;
    for(var i=0;i<arr.length;i++)
    {
        var tmpArr=arr[i].split(spliter);
        Comm_Select_Add(obj,tmpArr[1],tmpArr[0]);
    }
}

//清空select项
function Comm_Select_Clear(obj)
{
    while(obj.options.length>0)
        obj.remove(0);
}

function Comm_Select_Add(obj,value,text)
{
    var item=_ce("OPTION");
    item.value=value;
    item.text=text;
    obj.options.add(item);
}

//去除字符串的最后一个字符
function lStr(str){
    return str.substring(0,str.length-1);
}

//创建ScrollDiv
function ScrollDiv(){}
ScrollDiv.prototype.c=function(id,w,h)
{
    var div=_ce("div"); 
    with(div)
    {
    id=id;   
    style.overflow="scroll";
    style.width=w;
    style.height=h;   
    }
    return div;
}

//创建table
function Table(){}
Table.prototype.c=function()
{
    return _ce("table");
}



//打开新窗口
function winopen(url)
{
    window.open(url,'_blank');
    return false;
}

function winopen(url,w,h)
{
    window.open(url,'_blank','scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,width='+w+',height='+h+',left=0,top=0');
    return false;
}

function winopen(url,w,h,l,t)
{
    window.open(url,'_blank','scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,width='+w+',height='+h+',left='+l+',top='+t);
    return false;
}
//openScript('isTip.htm',370,100);
function winopens(url, width, height)
{   
    var l=(window.screen.width-width)/2;
    var t=(window.screen.height-height)/2;   
    //,screenX='+(window.screen.width-width)/2+',screenY='+(window.screen.height-height)/2+'
    window.open(url,"_blank",'scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,width=' + width + ',height=' + height + ',left='+l+',top='+t );
}

function winreload(url)
{
    window.location.href=url;
    return false;
}

//关闭窗口
function winclose()
{
    
    window.close();
    return false;
}
function winclose(isReload)
{
    if(window.opener!=null && isReload==true)
        window.opener.location.reload();
    window.close();
    return false;
}

//方法一：
String.prototype.trim= function()  
{  
    // 用正则表达式将前后空格  
    // 用空字符串替代。  
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}

String.prototype.isUrl = function(){
   var url = /^http|https:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
   var tmpStr = this;
   return url.test(tmpStr);
}

String.prototype.replaceDou=function()
{
    return this.replace(/\，/,",");
}

//方法二：
function trim(str)
{
    for(var  i  =  0  ;  i<str.length  &&  str.charAt(i)=="  "  ;  i++  )  ;
    for(var  j  =str.length;  j>0  &&  str.charAt(j-1)=="  "  ;  j--)  ;
    if(i>j)  return  "";  
    return  str.substring(i,j);  
} 

//获取RadioButtonList 的选择项
function GetRblChecked(name)
{
    var rbl=document.getElementsByName(name);
    for(var i=0;i<rbl.length;i++)
    {
        if(rbl[i].type=="radio" && rbl[i].checked)
        {
            return rbl[i].value;
        }
    }
}

//获取文件名函数
function fileName(url){
	var strUrl=url.substring(url.lastIndexOf("/"),url.length);//文件名(/filename.aspx)
	url=url.substring(0,url.lastIndexOf("/"));
	strUrl=url.substring(url.lastIndexOf("/"),url.length)+strUrl;
	return strUrl;
}
//全选
function SelectAll()
{
	var obj=document.all.TableContent;
	for(var i=1;i<obj.rows.length;i++)
		obj.rows[i].cells[0].childNodes[0].childNodes[0].checked=true;
}

//全选
function SelectAll_Double()
{
	var obj=document.all.TableContent;
	for(var i=1;i<obj.rows.length/2;i++)
	{
		obj.rows[2*i].cells[0].childNodes[0].childNodes[0].checked=true;
	}
}
		
//取消选择
function UnSelect()
{
	var obj=document.all.TableContent;
	for(var i=1;i<obj.rows.length;i++)
		obj.rows[i].cells[0].childNodes[0].childNodes[0].checked=false;
}

//取消选择
function UnSelect_Double()
{
	var obj=document.all.TableContent;
	for(var i=1;i<obj.rows.length/2;i++)
		obj.rows[2*i].cells[0].childNodes[0].childNodes[0].checked=false;
}
/////////////////////////////////////////////////////////////////////////////////
function FillEAT(obj,vals,spliter2)
{
	obj.length=0;
	for(var i=0;i<vals.length;i++)
	{
		var datas=vals[i].split(spliter2);
		var newOpt=document.createElement("option");
		newOpt.text=datas[1];
		newOpt.value=datas[0];
		obj.options.add(newOpt);
	}
}
function FillEA(obj,vals,spliter2)
{
	obj.length=0;
	for(var i=0;i<vals.length;i++)
	{
		var datas=vals[i].split(spliter2);
		var newOpt=document.createElement("option");
		newOpt.text=datas[0];
		newOpt.value=datas[1];
		obj.options.add(newOpt);
	}
}

function FillE(obj,val,spliter1,spliter2)
{
	if (val.length==0) return;
	var vals=val.split(spliter1);
	FillEA(obj,vals,spliter2);
}

function FillI(obj,val,text)
{
	var newOpt=document.createElement("option");
	newOpt.text=text;
	newOpt.value=val;
	obj.options.add(newOpt);
}

//添加
function Add(obj,objA)
{
	var id=obj.options[obj.selectedIndex].value;				
	var name=obj.options[obj.selectedIndex].text;	
	var blExist=false;	
	for(var i=0;i<objA.options.length;i++)
	{
		var did=objA.options[i].value;					
		if (did==id)
		{
			blExist=true;
			break;
		}
	}
	
	if (!blExist) FillI(objA,id,name);	
}
		
//删除
function Remove(obj)
{
	obj.remove(obj.selectedIndex);
}

//选择项
function Selects(obj)
{
	var result="";
	
	for(var i=0;i<obj.options.length;i++)
	{
		if(obj.options[i].selected)
			result+=","+obj.options[i].value;
	}
	
	if (result.length>0) result=result.substr(1);
	return result;
}
//////////////////////////////////////////////////////////////////////
function CompareDate(str1,str2)
{
    var result='error';
    re = /-/g;
    str1=str1.replace(re,"/");
    str2=str2.replace(re,"/");
    var d1 = new Date(str1);
    var d2 = new Date(str2);
    if(Date.parse(d1) - Date.parse(d2)==0)
    {
        //alert(str1+"等于"+str2)
        result='=';
    }
    if(Date.parse(d1) - Date.parse(d2)<0)
    {
        //alert(str1+"早于"+str2)
        result='<';
    }
    if(Date.parse(d1) - Date.parse(d2)>0)
    {
        //alert(str1+"晚于"+str2)
        result='>';
    }
    return result;
}

function GetDateNow()
{
    var dd=new Date();
    var str=dd.getYear()+'-'+(dd.getMonth()+1)+'-'+dd.getDate();
    return str;
}

//////////////////////////////////////////////////////////////////////

function KeyDown()
{
    alert(event.keyCode);   
}

////////////////////////////////////////
function Round(num)
{
    var num=Math.round(num*100);
    return num/100;
}
///////////////////////////////////////
//获取Radio值
function getRadioValue(radioName){
    var obj=document.getElementsByName(radioName);
    for(var i=0;i<obj.length;i++){
        if(obj[i].checked){
            return obj[i].value;
        }
    }    
    return "";
} 

/*
用途：检查输入字符串是否符合正整数格式
输入：s：字符串
返回：如果通过验证返回true,否则返回false
*/
function isNumber( s ){      
        var regu = "^[0-9]+$";
        var re = new RegExp(regu);
        if (s.search(re) != -1) {
            return true;
        } else {
            return false;
        }    
}

/*
==================================================================
字符串操作
Trim(string):去除字符串两边的空格
==================================================================
*/

/*
==================================================================
LTrim(string):去除左边的空格
==================================================================
*/
function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
} 

/*
==================================================================
RTrim(string):去除右边的空格
==================================================================
*/
function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}
/*
==================================================================
Trim(string):去除前后空格
==================================================================
*/
function Trim(str)
{
    return RTrim(LTrim(str));
} 

/*
================================================================================
XMLEncode(string):对字符串进行XML编码
================================================================================
*/
function XMLEncode(str)
{
       str=Trim(str);
       str=str.replace("&","&amp;");
       str=str.replace("<","&lt;");
       str=str.replace(">","&gt;");
       str=str.replace("'","&apos;");
       str=str.replace("\"","&quot;");
       return str;
} 

/*
IsInt(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
功能：判断是否为整数、正整数、负整数、正整数+0、负整数+0
*/
function IsInt(objStr,sign,zero)
{
    var reg;    
    var bolzero;   
    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }    
    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }   

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }    

    switch(sign)
    {
        case "+-":
            //整数
            reg=/(^-?|^\+?)\d+$/;   
            break;
        case "+": 
            if(!bolzero)     
            {
                //正整数
                reg=/^\+?[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //正整数+0
                //reg=/^\+?\d+$/;
                reg=/^\+?[0-9]*[0-9][0-9]*$/;
            }
            break;
        case "-":
            if(!bolzero)
            {
                //负整数
                reg=/^-[0-9]*[1-9][0-9]*$/;
            }
            else
            {
                //负整数+0
                //reg=/^-\d+$/;
                reg=/^-[0-9]*[0-9][0-9]*$/;
            }     
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }
    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {        
        return true;   
    }
} 

/*
IsFloat(string,string,int or string):(测试字符串,+ or - or empty,empty or 0)
功能：判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
*/
function IsFloat(objStr,sign,zero)
{
    var reg;    
    var bolzero;     

    if(Trim(objStr)=="")
    {
        return false;
    }
    else
    {
        objStr=objStr.toString();
    }    
    if((sign==null)||(Trim(sign)==""))
    {
        sign="+-";
    }   

    if((zero==null)||(Trim(zero)==""))
    {
        bolzero=false;
    }
    else
    {
        zero=zero.toString();
        if(zero=="0")
        {
            bolzero=true;
        }
        else
        {
            alert("检查是否包含0参数，只可为(空、0)");
        }
    }   

    switch(sign)
    {
        case "+-":
            //浮点数
            reg=/^((-?|\+?)\d+)(\.\d+)?$/;
            break;
        case "+": 
            if(!bolzero)     
            {
                //正浮点数
                reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //正浮点数+0
                reg=/^\+?\d+(\.\d+)?$/;
            }
            break;

        case "-":
            if(!bolzero)
            {
                //负浮点数
                reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
            }
            else
            {
                //负浮点数+0
                reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
            }          
            break;
        default:
            alert("检查符号参数，只可为(空、+、-)");
            return false;
            break;
    }    

    var r=objStr.match(reg);
    if(r==null)
    {
        return false;
    }
    else
    {   
        return true;     
    }
}

//////////////////////////////////////////
function DateAdd(BaseDate, interval, DatePart)//日期增加年数或月数或天数
{
    var dateObj = new Date(BaseDate.replace("-",","));
    var millisecond=1;
    var second=millisecond*1000;
    var minute=second*60;
    var hour=minute*60;
    var day=hour*24;
    var year=day*365;

    var newDate;
    var dVal = new Date(dateObj)
    var dVal=dVal.valueOf();
    switch(DatePart)
    {
        case "ms": newDate=new Date(dVal+millisecond*interval); break;
        case "s": newDate=new Date(dVal+second*interval); break;
        case "mi": newDate=new Date(dVal+minute*interval); break;
        case "h": newDate=new Date(dVal+hour*interval); break;
        case "d": newDate=new Date(dVal+day*interval); break;
        case "y": newDate=new Date(dVal+year*interval); break;
        default: return escape("日期格式不对");
    }
    newDate = new Date(newDate)
    return DateToStr(newDate);
    //return newDate.getFullYear() + "-" + (newDate.getMonth() + 1) + "-" + newDate.getDate() ; 
} 

function DateToStr(dt){
    var str="";
    if(dt.getFullYear){
        var y,m,d;
        y=dt.getFullYear();
        m=dt.getMonth()+1;  //1-12
        if(m<10)
            m='0'+m;
        d=dt.getDate();
        if(d<10)
            d='0'+d;
        str=""+y+"-"+m+"-"+d;
    }
    return str;
}
