function ChkSelectAll_OnClick(m1,m2){
    var obj1 = document.all(m1);
	var obj2 = document.all(m2);
//全选按钮：obj1:全选checkbox
//          obj2:列表checkbox
	var tmp = false;
	if (obj1.checked){
		tmp = true;
	}
	//没有选项;
	if (obj2 == null) return true;
	//只有一个选项;
	if (obj2.length == null) {
	   obj2.checked = tmp;
	   return true;
	}
	//多个选项;
	for (var i=0;i<obj2.length;i++){
	  obj2[i].checked = tmp;
	}
	return true;
 }
function LTrim(s)
{ 
    for(var i=0;i<s.length;i++)
    {
      if(s.charAt(i)!=" ")
      {
          return s.substr(i,s.length-i);
      }
   }
   return "";
}
function RTrim(s)
{ 
    for(var i=s.length-1;i>=0;i--)
    {
      if(s.charAt(i)!=" ")
      {
          return s.substr(0,i+1);
      }
   }
   return "";
}
function Trim(s)
{
    return  RTrim(LTrim(s));
}

//判断一个字符串是否为空字符串
function isEmpty(s)
{
    return ""==Trim(s);
}

//去除左边无效的“0”
function LTrimZero(s)
{ 
    for(var i=0;i<s.length;i++)
    {
      if(s.charAt(i)!="0")
      {
          return s.substr(i,s.length-i);
      }
   }
   return "";
}

//判断一个email地址是否合法
function isValidEmail(inputVal) 
{
     inputStr = inputVal.toString()
     if (inputStr.charAt(0) == "@" || inputStr.charAt(0) == ".") return false ;
     if (inputStr.charAt(inputStr.length -1) == "@" ||
	 inputStr.charAt(inputStr.length -1) == ".")
     {
	 return false;
     }
     if (inputStr.indexOf("@") == -1 || inputStr.indexOf(".") == -1) return false;
     return true;
}



//判断一个变量是否是日期型
function  isDate(sDate)
{
    var   arrDate = sDate.split("-");
    if (arrDate.length!=3)  return false ;
   
    var year  = arrDate[0] ;
    var month = arrDate[1] ;
    var day   = arrDate[2] ;
	
	if( isEmpty(year) || isEmpty(month) || isEmpty(day)) return false;    
    if ( isNaN(year) || isNaN(month) || isNaN(day)) return false ;
    
    year  = parseInt(LTrimZero(year));
    month = parseInt(LTrimZero(month));
    day   = parseInt(LTrimZero(day));
    
    if ( year < 0 || month > 12 || day > 31 || month <=0 || day <=0 ) return false ;
    
    switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:   
           return true ;
        case 4:
        case 6:
        case 9:
        case 11:
           if (day>30) return false ;
           return true ;
        case 2 :
          
           //闰年
           if (0==year%4 && (year%100)!=0 || 0==year%400)
           {
               if (day>29) return false ;
               return true ;
           }
           //非闰年 
           if (day>28) return false ;
           return true ;
        default:
           return false ;
    }                 
}

//判断一个变量是否是时间型
function isTime(sTime)
{
	var   arrTime = sTime.split(":");
	var   hour ;
	var   minute ;
	var   second ;
	
	if (arrTime.length != 3)  return false ;
   	hour = arrTime[0];
	minute=arrTime[1];
   	second=arrTime[2];
	
    if ( isNaN(hour) || isNaN(minute) || isNaN(second)) return false ;
    
    hour  = parseInt(LTrimZero(hour));
    minute = parseInt(LTrimZero(minute));
    second   = parseInt(LTrimZero(second));
    
    if( hour<0 || hour>23 || minute<0 || minute>59 || second<0 || second>59) 
    {
    	return false; //exit
    }
    return true;
}

function isDateTime(sDateTime)
{
	var   arrDateTime = sDateTime.split(" ");
	/*
	if(arrDateTime.length==1)
	{
		return isDate(arrDateTime[0]); //exit
	}
	*/
	if(arrDateTime.length==2)
	{
		return (isDate(arrDateTime[0]) && isTime(arrDateTime[1])); //exit
	}
	return false; //exit 
	
}

//检查checkbox是否选择
function hasChooseRadio(radName)
{
    var radios = document.all(radName);
    var i ;
    
    //没有选项
    if (null==radios) return false;
    
    //只有一个选项
    if (null==radios.length)
    {
    	if (radios.checked) return true;
        return false ;    	
    }
    
    //多个选项
    for(i=0;i<radios.length;i++)
    {
        if (radios[i].checked) return true;
    }
    return false ;
}

//
function isNumber(inputVal) {
	oneDecimal = false;
	inputStr = inputVal.toString();
	
	
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (i == 0 && oneChar == "-") {
			continue;
		}
		if (oneChar == "." && !oneDecimal) {
			oneDecimal = true;
			continue;
		}
		if (oneChar < "0" || oneChar > "9") {
			return false;
		}
	}
	return true;
}

//////////////////////////////////////////////////////////
//Name:			isPosNumber
//Argument:		inputVal：输入的字符串
//Return:		
//Description:		是否正数字（包括小数）
//History:		modi by justin
//////////////////////////////////////////////////////////
function isPosNumber(inputVal) {
	oneDecimal = false;
	inputStr = inputVal.toString();
	
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (oneChar == "." && !oneDecimal) {
			oneDecimal = true;
			continue;
		}
		if (oneChar < "0" || oneChar > "9") {
			return false;
		}
	}
	return true;
}

function isInteger(inputVal) {
	inputStr = inputVal.toString()
	
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		//负整数
		if (i == 0 && oneChar == "-") {
			continue;
		}
		if (oneChar < "0" || oneChar > "9") {
			return false;
		}
	}
	return true;
}

//在两个select之间交换数据

//private
function getSelectedOptions(nameSel)
{
	var exOptions = new Array();
	var objs = document.all(nameSel).options
	var count = 0 ;
	for(var i=0;i<objs.length;i++)
	{
		var obj = objs.item(i);
	    if(obj.selected)
	    {
	    	exOptions[exOptions.length]=obj; 
	    }
	}
	return exOptions ;
}

//private
function addOptions(srcOptions,nameSel)
{
	for(var i=0;i<srcOptions.length;i++)
	{
	    var srcOption = srcOptions[i] ;
		var oOption = document.createElement("OPTION");
		oOption.text  = srcOption.text;
		oOption.value = srcOption.value;
		document.all(nameSel).options.add(oOption);
	}
}

//private
function deleteSelected(nameSel)
{
	var objs = document.all(nameSel);
	for(var i=objs.length-1;i>=0;i--)
	{
		var obj = objs.item(i);
	    if(obj.selected)
	    {
	    	document.all(nameSel).options.remove(i);
	    }
	}
}

//public 
//param:   fromName   source select name
//         toName     target select name  
function exchangeSelect(fromName,toName)
{
	var exOptions = getSelectedOptions(fromName);
	addOptions(exOptions,toName);
	deleteSelected(fromName);
}

function getStringFromOptions(selectName,sepString)
{
	var r = "";
	var oOptions = document.all(selectName).options ;
	for(var i=0;i<oOptions.length;i++)
	{
		r += oOptions.item(i).value ;
		r += sepString;
	}
	return r;
}
function getTextFromOptions(selectName,sepString)
{
	var r = "";
	var oOptions = document.all(selectName).options ;
	for(var i=0;i<oOptions.length;i++)
	{
		r += oOptions.item(i).text ;
		r += sepString;
	}
	return r;
}
var public_description  = new CheckItem();       
var CHECK_ITEM_TYPE_NUMBER  = 1 ;
var CHECK_ITEM_TYPE_INTEGER = 2 ;
var CHECK_ITEM_TYPE_DATE    = 3 ;

//客户端检验字段
function  CheckItem(v1,v2,v3,v4,v5,v6,v7,v8,v9)
{
	this.disp_name = v1 ;   //显示用字段名
	this.item_name = v2 ;   //变量在form中的名字
	this.bNeed = v3;        //需要检查是否是必填字段吗? 
	this.bLen  = v4;        //需要检查字段的长度吗? 
	this.len = v5;          //需检查字段的长度
	this.bType=v6;          //需要检查字段的类型吗? 
	this.type = v7;         //参见宏定义 CHECK_ITEM_TYPE_* 
	this.min_value=v8;      //option,if type is NUMBER or integer ,this may be has use
	this.max_value=v9;      //option 
}

function CheckInput(check_items)
{
	for(var i=0;i<check_items.length;i++)
	{
		var item = check_items[i];
		var val = document.all(item.item_name).value ;
		if(item.bNeed)
		{
			if(isEmpty(val))
			{
				alert("输入错误:"+item.disp_name+"必须填写!");
    			document.all(item.item_name).focus();
    			return false;
			}
		}
		if(item.bLen)
		{
			if(val.length>item.len)
			{
				alert("输入错误:"+item.disp_name+"的长度不能超过"+ item.len+"个字!");
    			document.all(item.item_name).focus();
    			return false;
			}
		}
		if(item.bType)
		{
			switch(item.type)
    		{
        		case CHECK_ITEM_TYPE_NUMBER:
        			if(!isNumber(val))
        			{
        				alert("输入错误:"+item.disp_name+"应是有效的数字,请重新填写");
						document.all(item.item_name).focus();
						return false;
        			}
        			if(item.min_value!=null)
        			{
        				if(val<item.min_value)
        				{
        					alert("输入错误:"+item.disp_name+"超出合理范围,请重新填写");
							document.all(item.item_name).focus();
							return false;
        				}
        			}
        			if(item.max_value!=null)
        			{
        				if(val>item.max_value)
        				{
        					alert("输入错误:"+item.disp_name+"超出合理范围,请重新填写");
							document.all(item.item_name).focus();
							return false;
        				}
        			}
        			break;
        		case CHECK_ITEM_TYPE_INTEGER:
        			if(!isInteger(val))
        			{
        				alert("输入错误:"+item.disp_name+"应是有效的整数,请重新填写");
						document.all(item.item_name).focus();
						return false;
        			}
        			if(item.min_value!=null)
        			{
        				if(val<item.min_value)
        				{
        					alert("输入错误:"+item.disp_name+"超出合理范围,请重新填写");
							document.all(item.item_name).focus();
							return false;
        				}
        			}
        			if(item.max_value!=null)
        			{
        				if(val>item.max_value)
        				{
        					alert("输入错误:"+item.disp_name+"超出合理范围,请重新填写");
							document.all(item.item_name).focus();
							return false;
        				}
        			}
        			break;
        		case CHECK_ITEM_TYPE_DATE:
        			if(!isEmpty(val) && !isDateTime(val))
        			{
  						alert("输入错误:"+item.disp_name+"格式不正确,请输入正确的日期(格式YYYY-MM-DD)!");
				   		document.all(item.item_name).focus();
    					return false;
        			}
        			break;
        	    default:
        	    alert("参数错误!");
        	    return false;
        	}
		}
	}
	return true;
}

////////////////
var public_description  = new DateUtil();

function DateUtil(sDate)
{
    //var   arrDate = sDate.split("-");
    //var year  = arrDate[0] ;
    // var month = arrDate[1] ;
    //var day   = arrDate[2] ;
    //year  = parseInt(LTrimZero(year));
    //month = parseInt(LTrimZero(month));
    //day   = parseInt(LTrimZero(day));
	this.sDate = sDate;
    this.m_year = null;
    this.m_month = null;
    this.m_day = null;
}

function InitDateUitil(d)
{
	var   arrDate = d.sDate.split("-");
    var year  = arrDate[0] ;
    var month = arrDate[1] ;
    var day   = arrDate[2] ;
    
    year  = parseInt(LTrimZero(year));
    month = parseInt(LTrimZero(month));
    day   = parseInt(LTrimZero(day));
    
    d.m_year = year;
    d.m_month = month;
    d.m_day = day ;
}

//return :  0  date1==date2
//          1  date1> date2
//         -1  date < date2 
function CompDates(date1,date2)
{
	var d1 = new DateUtil(date1);InitDateUitil(d1);
	var d2 = new DateUtil(date2);InitDateUitil(d2);
			
	if(d1.m_year>d2.m_year) return 1;
	if(d1.m_year<d2.m_year) return -1;
	if(d1.m_month>d2.m_month) return 1;
	if(d1.m_month<d2.m_month) return -1;
	if(d1.m_day>d2.m_day) return 1;
	if(d1.m_day<d2.m_day) return -1;
	return 0;
}

