//欄位變色
 var bgColorOther = "#8080FF";
 
 
 
// 以唯一id取得该对象
function getbyid(objid){
	return document.getElementById(objid);
}

// 以唯一name取得该对象
function getbyname(objname){
	return document.getElementByName(objname);
}

// 以name及其在页面的index值取得该对象
function getbynames(objname,index){
	return document.getElementsByName(objname)[index];
}

// 給指定的select添加新的option選項 optionIndex插入位置
function addOption(objSelect,optionVal,optionText,optionIndex){
	 /** 不兼容firefox 删除 
	 var  _o=document.createElement("Option");  
	 _o.text=optionText;
	 _o.value=optionVal; 
	 objSelect.add(_o,optionIndex);
	 **/
	objSelect.options[optionIndex] = new Option(optionText, optionVal); 
}

// 设置select控件选中为哪项 obj:select控件 strval:option的value值
function setSelect(obj,strval){
	if(obj!=null){
		for(i=0;i<obj.options.length;i++){
			if(obj.options[i].value==strval){
				obj.options[i].selected=true;
				return;
			}
		}
	}
}

// 将str中的str1全部替换为str2
function replaceAll(str,str1,str2){
	while(str.indexOf(str1)!=-1){
		str=str.replace(str1,str2);
	}
	return str;
}

// 检查并调整件t的时间格式为yyyy-mm-dd的形式
function checkDate(t) {
	var tval=t.value;
	tval=replaceAll(replaceAll(tval,".","/"),"-","/")
	dDate = new Date(tval);
	if (dDate == "NaN") {t.value = ""; return;}
 
	iYear = dDate.getFullYear()

	if ((iYear > 1899)&&(iYear < 1950)) {

		sYear = "" + iYear + ""
		if (t.value.indexOf(sYear,1) == -1) {
			iYear += 100
			sDate = (dDate.getMonth() + 1) + "/" + dDate.getDate() + "/" + iYear
			dDate = new Date(sDate)
		}
	}
	t.value = formatDate(dDate);
}

function formatDate(sDate) {
	var sScrap = "";
	var dScrap = new Date(sDate);
	if (dScrap == "NaN") return sScrap;
	
	iDay = dScrap.getDate();
	iMon = dScrap.getMonth();
	iYea = dScrap.getFullYear();
        
        if ((iMon + 1) < 10)
        {
            sScrap = iYea + "-0" + (iMon + 1);
        }
        else
        {
            sScrap = iYea + "-" + (iMon + 1);
        }
        
        if ((iDay) < 10)
        {
            sScrap = sScrap + "-0" + iDay;
        }
        else
        {
            sScrap = sScrap + "-" + iDay;
        }
        
	//sScrap = iYea + " / " + (iMon + 1) + " / " + iDay ;
	return sScrap;
}

// 检查所有必输入项目 若有为空的 则使其变为蓝色 str为用 $ 符号区分的所有待检查的控件的name值
function needcheck(str){
	var flg=true;
	var objnames = str.split("$");
	if(objnames==null)return true;
	for(i=0;i<objnames.length;i++){
		var objs = document.getElementsByName(objnames[i]);
		for(j=0;j<objs.length;j++){
			var obj=objs[j];
			if(obj.value==""){
				flg=false;
				setbackground(obj,bgColorOther);
			}else{
				setbackground(obj,"white");			
			}
		}
	}
	return flg;
}

//设置控件的背景颜色
function setbackground(obj,colorstr){
	obj.style.background=colorstr;
}


// 取得名称为obj.name的控件在页面中的index值  参数:准备查找index值的控件
function getObjIndex(obj){
	var objs=document.getElementsByName(obj.name);
	for(i=0;i<objs.length;i++){
		if(objs[i]==obj){
			return i;
		}
	}
}

//邮件检查
function isEmail(s)   
{   
	//var patrn=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;   
	var patrn=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	if (!patrn.exec(s)) return false  
	return true  
}   

function checkEmail(obj){
	if(obj.value!=""){
		if(!isEmail(obj.value)){
			alert("邮件格式不合法！");;
			obj.value="";
			obj.focus();
		}		
	}
}

//手机号检查
function checkMobile(inMobileNo){
/**
	var patrn=/^((\(\d{3}\))|(\d{3}\-))?1[3,5]\d{9}$/;   
	if (!patrn.exec(s)) return false  
	return true  
	**/
	var i;   
	var vaMobileHead = new Array("130","131","132","133","134","135","136","137","138","139","158","159");   

	if (inMobileNo.length != 11) {   
		return false;   
	}   
	for (i = 0; i < inMobileNo.length; i++) {   
		if (!(inMobileNo.charAt(0) >= "0" && inMobileNo.charAt(0) <= "9")) {   
			return false;   
		}   
	}   
	if (!hasContain(vaMobileHead, inMobileNo.substring(0, 3))) {   
		return false;   
	}   
	return true;   	
}

// 判断数组array中是否包含值为str的
function hasContain(array,str){
	for(i=0;i<array.length;i++){
		if(array[i]==str){
			return true;
		}
	}
	return false;
}


/*
检查是否是金额类型		2355.00
str					传入的金额
返回值				true or false
*/
function isMoney(str){
	var reg=/[0-9](\.|\/)(\d{2})$/;	
	if (reg.test(str)==false){
		//alert("["+Msg+"]格式必须是 2355.00!");
		return false;	
	}else{
		return true;
	}
}

/*
检查是否是数字		1-9 	
str				传入的数字
返回值			true or false
*/
function isNumber(str){
	var reg=/^\d+$/;	
	if (reg.test(str)==false){
		//alert("["+Msg+"]必须是0-9的数字!");
		return false;	
	}else{
		return true;
	}
}

function checkNumber(obj){
	if(obj.value!="" && !isNumber(obj.value)){
		alert("必须为数字!");
		obj.value="";
		obj.focus();
		return false;
	}
	return true;
}

/*
检查textarea的长度 超出部分会自动截断 参数objtextarea:待检查的文本域控件 注意需要在页面的textarea中指定maxlength属性
使用例子:  onpropertychange="chklen(this);" 
*/
function checkTextAreaLen(obj,maxlen){
	var lenE = obj.value.length;
	var lenC = 0;
	var CJK = obj.value.match(/[\u4E00-\u9FA5\uF900-\uFA2D]/g);
	if (CJK != null) lenC += CJK.length;
	//tno.innerText = obj.maxlength - lenC - lenE ; 这个是个回显字数的东东 这里还用不到
	var tno = maxlen - lenC - lenE ;
	if (tno < 0) {
		var tmp = 0
		var cut = obj.value.substring(0, maxlen);
		for (var i=0; i<cut.length; i++){
			tmp += /[\u4E00-\u9FA5\uF900-\uFA2D]/.test(cut.charAt(i)) ? 2 : 1;
			if (tmp > maxlen) break;
		}
		obj.value = cut.substring(0, i);
	}
}



//本函数检查某控件是否为浮点数并且判断位数是否合法。
// maxlength 最大長度,包括小數位及小數點
//poslen小數位的長度，不包括小數點
//obj要檢查的頁面input控件
function chkfloat(maxlength,poslen,obj){
 if(obj.value!=""){
  if(isNaN(obj.value)){
   obj.value="";
   alert("必须为数字！");
   obj.focus();
   return false;
  }else{
   if(obj.value.length>maxlength){
    obj.value="";
    alert("超出允许的最长位数！");
    obj.focus();
    return false;
   }
   if(obj.value.indexOf(".")!=-1){
    var intpart = obj.value.substring(0,obj.value.indexOf("."))
    if(intpart.length>(maxlength-1-poslen)){
     obj.value="";
     alert("超出允许的最长位数！");
     obj.focus();
     return false;
    }
   }else{ // 無小數點
    if(obj.value.length>maxlength){
     obj.value="";
     alert("超出允许的最长位数！");
     obj.focus();
     return false;
    }
   }
  
  }
 }
 return true;
}

// 判断是否为空 
function isemptyvalue(obj){
	if(obj.value==""){
		return true;
	}else{
		return false;
	}
}


/*   
  *---------------   DateAdd(interval,number,date)   -----------------   
  *   DateAdd(interval,number,date)     
  *   功能:实现VBScript的DateAdd功能.   
  *   参数:interval,字符串表达式，表示要添加的时间间隔.   
  *   参数:number,数值表达式，表示要添加的时间间隔的个数.   
  *   参数:date,时间对象.   
  *   返回:新的时间对象.   
  *   var   now   =   new   Date();   
  *   var   newDate   =   DateAdd("d",5,now);   
  *---------------   DateAdd(interval,number,date)   -----------------   
  */  
function DateAdd(interval,number,date){   
	  switch(interval){
    	  case   "y"   :   {   
	          date.setFullYear(date.getFullYear()+number);   
	          return   date;   
	          break;   
          }   
          case   "q"   :   {   
	          date.setMonth(date.getMonth()+number*3);   
	          return   date;   
	          break;   
          }   
          case   "m"   :   {   
	          date.setMonth(date.getMonth()+number);   
	          return   date;   
	          break;   
          }   
          case   "w"   :   {   
	          date.setDate(date.getDate()+number*7);   
	          return   date;   
	          break;   
          }   
          case   "d"   :   {   
	          date.setDate(date.getDate()+number);   
	          return   date;   
	          break;   
          }   
          case   "h"   :   {   
	          date.setHours(date.getHours()+number);   
	          return   date;   
	          break;   
          }   
          case   "m"   :   {   
	          date.setMinutes(date.getMinutes()+number);   
	          return   date;   
	          break;   
          }   
          case   "s"   :   {   
	          date.setSeconds(date.getSeconds()+number);   
	          return   date;   
	          break;   
          }   
          default   :   {   
	          date.setDate(d.getDate()+number);   
	          return   date;   
	          break;   
          }   
	}   
}   

	/**
	 * <p>合并字符串</p>
	 * @param src 原字符串
	 * @param length 要求的长度
	 * @param mode 模式 01=右边补充， 02=左边补充
	 * @param fill 补充的字符串
	 * @return
	 */
	function fill(src, length, mode, fill) {
		if (src == "" || src.length < 1) {
			return src;
		}

		if (mode == null || (mode!="01" && mode!="02")) {
			return src;
		}

		if (length < 1) {
			return src;
		}

		if (fill == null) {
			return src;
		}

		var buffer="";
		if (mode=="01") {
			buffer=src;
			for (var i = src.length; i < length; i++) {
				buffer+=fill;
			}
		} else {
			buffer="";
			for (var i = src.length; i < length; i++) {
				buffer+=fill;
			}
			buffer+=src;
		}

		return buffer;
	}

	// 删除字串左边或右边指定的连续字符 src:带操作字串 mode=1左边 mode=2右边 str要删除的字符串
	function trimSideStr(src,mode,str)	{
		var alen = str.length;
		while(1){
			if(src.length<alen){
				return src;
			}
			if(mode=="1"){
				var astr = src.substring(0,alen);
				if(astr==str){
					src=src.substring(alen,src.length);
				}else{
					return src;				
				}
			}else if(mode=="2"){
				var astr = src.substring(src.length-alen,src.length);
				if(astr==str){
					src=src.substring(0,src.length-alen);
				}else{
					return src;				
				}
			}
		}
	}
	
// 设置select控件选中为哪项 obj:select控件 strtext:option的text值
function setSelectText(obj,strtext){
	if(obj!=null){
		for(i=0;i<obj.options.length;i++){
			if(obj.options[i].text==strtext){
				obj.options[i].selected=true;
				return;
			}
		}
	} 
}
//asign select item  by value
//add by huo 
function assign_select(ObjId,val){
    var obj = document.getElementById(ObjId);
    var i = 0;
    for(;i<obj.length;i++)
    	if(val == obj[i].value)
    		obj[i].selected= true;
}	
//select more
function selectMore(opeObj,valueObj,flag){
	 var tt = document.getElementsByName(opeObj);
     var rights ='';
     for(var i=0;i<tt.length;i++)
       if(tt[i].checked){
         rights += tt[i].value;
         rights +=',';
     } 
     document.getElementById(valueObj).value = rights;
     if(flag == '1'){
     	check(opeObj);
     }	
}
//select all
function selectall(opeObj,valueObj,flag){
	var tt = document.getElementsByName(opeObj);
  	var rights ='';
      for(var i=0;i<tt.length;i++){
          tt[i].checked = true;
          rights += tt[i].value;
          rights +=',';
      } 
 	 document.getElementById(valueObj).value = rights;
    if(flag == '1'){
     	check(opeObj);
     }	
}
//select converse
function selectother(opeObj,valueObj,flag){
	var tt = document.getElementsByName(opeObj);
  	var rights ='';
      for(var i=0;i<tt.length;i++)
      	 if(tt[i].checked){
      	 	tt[i].checked = false; 		
      	 }	
         else{
          tt[i].checked = true;
          rights += tt[i].value;
          rights +=',';
      	 } 
 	 document.getElementById(valueObj).value = rights;
     if(flag == '1'){
     	check(opeObj);
     }	
}
function check(opeObj){
	var tt = document.getElementsByName(opeObj);
    for(var i=0;i<tt.length;i++)
     if(tt[i].checked){
    	 	 document.getElementById('p'+tt[i].value).disabled = false;	
    	 	 document.getElementById('b'+tt[i].value).disabled = false;
    	 	 document.getElementById('n'+tt[i].value).disabled = false;	
    	 }	
       else{
       	 	 document.getElementById('p'+tt[i].value).disabled = true;	
    	 	 document.getElementById('b'+tt[i].value).disabled = true;
    	 	 document.getElementById('n'+tt[i].value).disabled = true;	
    	 } 
}
//yyyy-mm-dd output
var fm;
function YYYYMMDDstart(form)
{
MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
fm = document.getElementById(form);
//year
var y = new Date().getFullYear();
for (var i = (y-100); i < (y+1); i++) 
fm.YYYY.options.add(new Option(i,i));

//month
for (var i = 1; i < 13; i++)
fm.MM.options.add(new Option(i, i));

fm.YYYY.value = y;
fm.MM.value = new Date().getMonth() + 1;
var n = MonHead[new Date().getMonth()];
if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;
writeDay(n); 
fm.DD.value = new Date().getDate();
}
function YYYYDD(str)
{
var MMvalue = fm.MM.options[fm.MM.selectedIndex].value;
if (MMvalue == ""){ var e = fm.DD; optionsClear(e); return;}
var n = MonHead[MMvalue - 1];
if (MMvalue ==2 && IsPinYear(str)) n++;
writeDay(n)
}
function MMDD(str) 
{
var YYYYvalue = fm.YYYY.options[fm.YYYY.selectedIndex].value;
if (YYYYvalue == ""){ var e = fm.DD; optionsClear(e); return;}
var n = MonHead[str - 1];
if (str ==2 && IsPinYear(YYYYvalue)) n++;
writeDay(n)
}
function writeDay(n) 
{
var e = fm.DD; optionsClear(e);
for (var i=1; i<(n+1); i++)
e.options.add(new Option(i, i));
}
function IsPinYear(year)
{ return(0 == year%4 && (year%100 !=0 || year%400 == 0));}
function optionsClear(e)
{
e.options.length = 1;
}



/***********************************************************
Function formatnumber(value,num)
Written by zergling
javascript版本的FormatNumber函数，用法与VBScript相同，第一个参数是待格式化的数值，第二个是保留小数位数
注意：返回的是字符串类型
第一个函数需要调用第二个函数，所以第二个不能去掉
***********************************************************/
function adv_format(value,num)   //四舍五入
{
var a_str = formatnumber(value,num);
var a_int = parseFloat(a_str);
if (value.toString().length>a_str.length)
    {
    var b_str = value.toString().substring(a_str.length,a_str.length+1)
    var b_int = parseFloat(b_str);
    if (b_int<5)
        {
        return a_str
        }
    else
        {
        var bonus_str,bonus_int;
        if (num==0)
            {
            bonus_int = 1;
            }
        else
            {
            bonus_str = "0."
            for (var i=1; i<num; i++)
                bonus_str+="0";
            bonus_str+="1";
            bonus_int = parseFloat(bonus_str);
            }
        a_str = formatnumber(a_int + bonus_int, num)
        }
    }
    return a_str
}

function formatnumber(value,num)    //直接去尾
{
var a,b,c,i
a = value.toString();
b = a.indexOf('.');
c = a.length;
if (num==0)
    {
    if (b!=-1)
        a = a.substring(0,b);
    }
else
    {
    if (b==-1)
        {
        a = a + ".";
        for (i=1;i<=num;i++)
            a = a + "0";
        }
    else
        {
        a = a.substring(0,b+num+1);
        for (i=c;i<=b+num;i++)
a = a + "0";
        }
    }
return a
}












