﻿/*
JavaScript 公用模块
*/

/*函数清单
获取字符串字节长度
GetStrLenByte

去处字符串前后空格
Trim

产生年份列表，输入参数：nYear-->当前年份,SelectList-->下拉框对象
generateYearSelectList(nYear,SelectList )

产生年份列表，输入参数：nYear-->当前年份,SelectList-->下拉框对象,nTotal-->总共列出年数
generateYear(nYear,SelectList,nTotal )

产生月份列表，输入参数：nMonth-->当前月份,SelectList-->下拉框对象
generateMonthSelectList(nMonth,SelectList )

产生天数列表，输入参数：nDay-->当前日,SelectList-->下拉框对象
generateDaySelectList(nDay,SelectList )

在客户端写Cookie
WriteCookie (cookieName, cookieValue)

打开弹出窗口
MM_openBrWindow(theURL,winName,features)

切换图片
MM_swapImgRestore()

预装载图片
MM_preloadImages()

查找对象
MM_findObj(n, d)

切换图片
MM_swapImage()


自动补0，输入参数: str--> 补0字串 
fillZero(str, len)

保单号、投保单号、收据号补0 obj--> 需补0字段
fillZeroByBillNo(obj)

保留两位小数的round方法
function toDecimal2(amount)
保留指定小数位数的round方法
function toDecimal(amount,dec){
	
打开弹出窗口方式
function openWindow(url, windowName, style)	

关闭子窗口同时提交父窗口
function closeWindow()	

将页面的text与textarea设成readOnly,其他设成disabled
要求form的名字为form1
function setReadOnlyOrDisable()
*/



//获取字符串字节长度
function GetStrLenByte(str){
	var len=0;
//	try{
	    if (str+"" == "undefined" || str == null){
	            len=0;
	    }
		else if(str.length==0){
			len=0;
		}
		var i;
		for(i=0;i<str.length;i++){
			if(str.charCodeAt(i)>128){
				len=len+2;
			}
			else{
				len=len+1;
			}
		}
/*	}
	catch(ExceptionObj0){
	}
*/
	return len;

}

//去处字符串前后空格
function Trim(str){
//	try{
	    if (str+"" == "undefined" || str == null){
	            return "";
	    }
		else if(str.length==0){
			return "";
		}
        var i=0;
        while( str.charAt(i)==' '){
                i++;
                if(i>=str.length){
                	break;
                }
        }
        var j=str.length-1;
        while( str.charAt(j)==' '){
                j--;
                if(j<0){
                	break;
                }
        }
        // added by rodolf on 3rd Mar, 2002
        // return "" when j<i
        if ( j<i )
            return "";
        else
            return str.substring(i,j+1);
/*	
	}
	catch(ExcepitonObj0){
		return "";
	}
*/	
}

//产生年份列表，输入参数：nYear-->当前年份,SelectList-->下拉框对象
function generateYearSelectList(nYear,SelectList ){
//	try{
	        var selIndex;
	        selIndex=-1;
	        var d;
	        d=new Date();
	        var curYear=d.getYear();
	        var opt;
	        for(i=1;i<72;i++)
	        {
	                opt=new Option(2+curYear-i,2+curYear-i);
	                SelectList.options[i]=opt;
	                if(2+curYear-i==nYear)
	                        selIndex=i;
	        }
	        SelectList.selectedIndex=selIndex;
/*	}
	catch(ExceptionObj0){
	}*/
}
//产生年份列表，输入参数：nYear-->当前年份,SelectList-->下拉框对象,nTotal-->总共列出年数
function generateYear(nYear,SelectList,nTotal ){
//	try{
        var selIndex;
        selIndex=-1;
        var d;
        d=new Date();
        var curYear=d.getYear();
        var opt;
        for(i=1;i<nTotal+2;i++)
        {
                opt=new Option(i+curYear-nTotal,i+curYear-nTotal);
                SelectList.options[i]=opt;
                if(i+curYear-nTotal==nYear)
                        selIndex=i;
        }
        SelectList.selectedIndex=selIndex;
/*	}
	catch(ExceptionObj0){
	}*/
}

//产生月份列表，输入参数：nMonth-->当前月份,SelectList-->下拉框对象
function generateMonthSelectList(nMonth,SelectList ){
//	try{
        var selIndex;
        selIndex=-1;
        var opt;
        for(i=1;i<=12;i++)
        {
                opt=new Option(i,i);
                SelectList.options[i]=opt;
                if(i==nMonth)
                        selIndex=i;
        }
        SelectList.selectedIndex=selIndex;
/*    }
    catch(ExceptionObj0){
	}    		*/
}
//产生天数列表，输入参数：nDay-->当前日,SelectList-->下拉框对象
function generateDaySelectList(nDay,SelectList ){
//	try{
        var selIndex;
        selIndex=-1;
        var opt;
        for(i=1;i<=31;i++)
        {
                opt=new Option(i,i);
                SelectList.options[i]=opt;
                if(i==nDay)
                        selIndex=i;
        }
        SelectList.selectedIndex=selIndex;
/*    }
    catch(ExceptionObj0){
    }*/
}
//在客户端写Cookie
function WriteCookie (cookieName, cookieValue)
{
//    try{
	    if(!chksave.checked){
	          return;
	    }
	    var expDate = new Date();
	    expDate.setTime(expDate.getTime()+8640000000);
	
	    document.cookie = cookieName + "=" + escape (cookieValue) + "; expires=" + expDate.toGMTString() + ";path=/";
/*	}
	catch(ExceptionObj0){
	}*/
}
//打开弹出窗口
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//切换图片
function MM_swapImgRestore() { //v3.0
//  try{
  	var i,x,a=document.MM_sr;
  	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)
  		 x.src=x.oSrc;
/*  }
  catch(ExceptionObj0){
  }*/
}
//预装载图片
function MM_preloadImages() { //v3.0
//  try{
  	var d=document; 
  	if(d.images)	{ 
		if(!d.MM_p) 
			d.MM_p=new Array();
		var i,j=d.MM_p.length,a=MM_preloadImages.arguments; 
		for(i=0; i<a.length; i++)
    		if (a[i].indexOf("#")!=0){ 
    			d.MM_p[j]=new Image; 
    			d.MM_p[j++].src=a[i];
    		}
    }
/*  }
  catch(ExcepitonObj0){
}
*/
}
//查找对象
function MM_findObj(n, d) { //v3.0
//  try{
  	var p,i,x;  
  	if(!d) d=document; 
  	if((p=n.indexOf("?"))>0&&parent.frames.length) {
    	d=parent.frames[n.substring(p+1)].document; 
    	n=n.substring(0,p);
    }
  	if(!(x=d[n])&&d.all) 
  		x=d.all[n]; 
  	for (i=0;!x&&i<d.forms.length;i++) 
  		x=d.forms[i][n];
  	for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
  		x=MM_findObj(n,d.layers[i].document); 
  	return x;
/*  }
  catch(ExcepitonObj){
  	return null;
  }
 */
}
//切换图片
function MM_swapImage() { //v3.0
//   try{
		var i,j=0,x,a=MM_swapImage.arguments; 
		document.MM_sr=new Array; 
		for(i=0;i<(a.length-2);i+=3)
   			if ((x=MM_findObj(a[i]))!=null){
   				document.MM_sr[j++]=x; 
   				if(!x.oSrc) 
   					x.oSrc=x.src; 
   				x.src=a[i+2];
   			}
/*	}
	catch(ExceptionObj0){
	}
*/
}
function writeyear(startyear,nowday)
{
        for(i=startyear;i<=nowday.getYear();i++)
        {
                document.write("<option value="+i+">"+i+"</option>");
        }
}

function openWindow(url, windowName, styles)
{
 if (styles ==2) {
    	var openWindow=window.open(url,windowName,
	   "top=0, left=0, height=0, width=0, scrollbars=yes,status=yes,toolbar=yes,menubar=yes,location=yes");  
	openWindow.resizeTo(screen.width,screen.height-25);
 }
else if(styles ==1){
	window.open(url,windowName);
 }
}

function closeWindow()
{
 if (window.opener)  {
	if(opener.form1.choice.value!="")		 		 
		opener.form1.choice.value = "";
	opener.form1.submit();
     }
  window.close();		
}

/**指定长度补0*/

function fillZero(str,len){
	if(str!=""){		
		var n;
		n=str.indexOf("-");
		if (n<0)
		  n=str.length;
		len = len - n;
		for(l=0;l<len;l++)
			str = "0" + str;
	}
	return str;

}

/**各种单证补0，保单号、投保单号、收据号目前为15位*/

function fillZeroByBillNo(obj){
	obj.value = fillZero(obj.value,15);
}


/**保留两位小数的round方法*/
function toDecimal2(amount){
  return toDecimal(amount,2);
}
/**保留指定小数位数的round方法*/
function toDecimal(amount,dec){
   return Math.round(amount*Math.pow(10,dec))/Math.pow(10,dec)
}

/**保留指定小数位数的round方法*/
function toDecimal(amount,dec){
   return Math.round(amount*Math.pow(10,dec))/Math.pow(10,dec)
}

function validateNumber(length,precision){ 
	var amountObject=window.event.srcElement
    var tmpstr=amountObject.value;
    if(tmpstr.length==0)return false;
    if(!CheckFloat(tmpstr)){ 
       alert("请输入数字");      
       amountObject.focus();
       return false;
    }
    if(!CheckAmountFloat(tmpstr,length,precision)){ 
        alert("长度不能大于"+length);        
        amountObject.focus();
        return false;
    }
  }

/**如果value不是数字则自动将obj的值设置为0，如果是数字则保留2位小数**/
function autoFormat2Num(obj,value){
	if(parseFloat(value)>999999999 ||  parseFloat(value)<-999999999){
		obj.value = "0.00";
		alert("输入数值应在范围(-999999999-999999999)以内");
	}else{
    	obj.value = Roundfloat(parseFloat(value),2);
	}
	if(obj.value==null||obj.value==""){
		obj.value="0.00"
	}
}

  function Roundfloat(a_Num , a_Bit)
  {
   if ( isNaN(Math.round(a_Num * Math.pow (10 , a_Bit)) / Math.pow(10 , a_Bit)) ){
   return 0;
   }
   else {
    return   formatNumber(( Math.round(a_Num * Math.pow (10 , a_Bit)) / Math.pow(10 , a_Bit)));

   }
  }

function formatNumber(a_Num){
if(  /^\d{1,10}$/.test(a_Num) || /^-\d{1,10}$/.test(a_Num) ){return a_Num+".00";}
else if( /^\d{1,10}\.\d{1}$/.test(a_Num)|| /^-\d{1,10}\.\d{1}$/.test(a_Num)){return a_Num+"0";}
else{return a_Num}
}



/**向指定下拉框添加一条记录的方法*/ 

//必须给定selectvalue是因为当第一次进入页面时没有选择任何项时的默认选项为下拉框中的第一条记录
//而如果选中了其它,回到页面时下拉框中找不到这条新加的其他记录  
      function addDefaultValue(formname,name_n,text,value,selectvalue){

  	var len = document.forms[formname].elements[name_n].options.length;
        document.forms[formname].elements[name_n].options[len]=new Option(text,value) ;

  for(var i=len;i>0;i--){

  	document.forms[formname].elements[name_n].options[i].text = document.forms[formname].elements[name_n].options[(i-1)].text;

  	document.forms[formname].elements[name_n].options[i].value = document.forms[formname].elements[name_n].options[(i-1)].value;
       
   	if(document.forms[formname].elements[name_n].options[i].value == selectvalue){

     	 document.forms[formname].elements[name_n].options[i].selected = true ;

    	}                                
  }

  document.forms[formname].elements[name_n].options[0].text = text;

  document.forms[formname].elements[name_n].options[0].value = value;



  if(document.forms[formname].elements[name_n].options[0].value == selectvalue){         

    document.forms[formname].elements[name_n].options[0].selected = true ;             

  }      
}               

function addDefaultToLast(formname,name_n,text,value,selectvalue){  

   var len=document.forms[formname].elements[name_n].options.length        
   document.forms[formname].elements[name_n].options[len] =
   new Option(text,value);              
   for(var i=0;i<=len;i++){                        
    if(document.forms[formname].elements[name_n].options[i].value == selectvalue){     
      document.forms[formname].elements[name_n].options[i].selected = true ;     
    }            
  }
}

function setReadOnly(){
	for ( i = 0; i < document.form1.elements.length; i++ ) {
		if(document.form1.elements[i].type=="text"||document.form1.elements[i].type=="textarea"){
			document.form1.elements[i].disabled = false;
			document.form1.elements[i].readOnly = true;
		}
		else{
			document.form1.elements[i].disabled = true;
		}			
	}	
}
  
function setBgColorBypriority(priorityName,trId){
  var hiddenPriority = document.getElementsByName(priorityName);
  for (var i=0;i<hiddenPriority.length;i++){
	if(hiddenPriority[i].value=="3"){
  		document.getElementById(trId+i).style.backgroundColor ='#669999';
  	}
  }	
}  

