String.prototype.trim = function()
{
  return this.replace(/(^\s*)|(\s*$)/g, "");

}
//当前日期 
var now = new Date();
//电话号码格式 ：0398-7460021
var phontNumber=/^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
//手机号码格式:13888888888
var mobileTelephone=/^((\(\d{3}\))|(\d{3}\-))?13\d{9}|15\d{9}|18\d{9}$/;
//邮箱格式
var emailVal=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
//邮编号码
var zipVal=/^\d{6}$/;
//日期模式
var checkDate=/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29))$/;

/**
 * created by cyril on 2008-01-03
 * @param {Object} d	不带任何格式的日期,如yyyyMMdd
 * @param {Object} l	需要格式的长度,空和10为返回yyyy-MM-dd的类型
 * @param {Object} s	连接样式,默认为"-"
 * @param {Object} s1	小时的样式,默认为":"
 * @param {Object} isrt	是否返回值，不填则为打印
 * @return boolean
 */
function formatDate(d, l, s, s1, isrt) {
	if(d!=null && d.length>=8) {
		if(s==null) s = '-';
		if(s1==null) s1 = ':';
		if(l==null || l.length==10) {
			d = d.substring(0,4)+s+d.substring(4,6)+s+d.substring(6,8);
			//alert(d);
		}
		else {
			d = d.substring(0,4)+s+d.substring(4,6)+s+d.substring(6,9)+' '+d.substring(9,11)+s1+d.substring(11,13)+s1+d.substring(13);
			//alert(d);
		}
	}
	if(isrt==null)
		document.write(d);
	else
		return d;
}

/**
 * created by cyril on 2008-01-08
 * @param {Object} cName		控件名称
 * @param {Object} cText		控件说明
 * @param {Object} bl			是否打印信息，默认为打印"true"，不需要弹出提示填"false"
 * @return boolean
 */
function ckIsNull(cName, cText, bl) {
	try {
		if(bl!=false) {
			bl = true;
		}
		var arr = document.getElementsByName(cName);
		if(arr.length!=1) {
			alert('SYSTEM ERROR: 「'+cText+'」控件存在多个,不能使用此函数!');
			return;
		}
		if(arr[0].value.length==0) {
			if(bl==true) {
				alert('「'+cText+'」不能为空!');
				arr[0].focus();
				return;
			}
			else {
				return false;
			}
		}
		return true;
	}
	catch(e) {
		alert('[ckIsNull] '+e);
		return false;
	}
}

/**
 * created by cryil on 2008-01-08
 * @param {Object} cName	控件名称
 * @param {Object} cText	提示标题
 * @param {Object} len		小数长度,不填为整数
 * @return boolean
 */
function ckNumber(cName, cText, len) {

		var arr = document.getElementsByName(cName);
		if(arr.length!=1) {
			alert('SYSTEM ERROR: 「'+cText+'」控件存在多个,不能使用此函数!');
			return;
		}

		return checkNum(arr[0],cText,len);

}

function checkNumById(objId, cText, len) {
	var objNum = document.getElementById(objId);
	return checkNum(objNum,cText,len);
}

function checkNum(objNumber, cText,len) {
	try {
		var v = objNumber.value;
		if(v.length==0) {
			return true;
		}
		if((len==null || len==0) && (/^(\+|-)?(0|[1-9]\d*)?$/).test(v*1)) {
			return true;
		}
		else if(len>0 && (/^(\+|-)?(0|[1-9]\d*)(\.\d*[1-9])?$/).test(v*1)) {
			if(v.indexOf(".")!=-1 && (v.length-v.indexOf(".")-1)>len) {
				alert('「'+cText+'」的小数位数不能大于「'+len+'」位!');
				objNumber.focus();
				return;
			}
			return true;
		}
		else {
			if(len==null || len==0) {
				alert('「'+cText+'」只能输入整数!');
			}
			else {
				alert('「'+cText+'」只能输入数字!');
			}
			objNumber.focus();
			return;
		}
	}
	catch(e) {
		alert('[ckNumber] '+e);
		return;
	}
}

/**
 * created by cjx on 2008-06-04
 * @param {Object} cName	控件名称
 * @param {Object} cText	提示标题
 * @return boolean
 */
function ckTel(cName, cText) {
	try {
		var arr = document.getElementsByName(cName);
		if(arr.length!=1) {
			alert('SYSTEM ERROR: 「'+cText+'」控件存在多个,不能使用此函数!');
			return;
		}
		var v = arr[0].value;
		if(v.length==0) {
			return true;
		}
		//alert(phontNumber);
		//alert(v);
		if(phontNumber.test(v) || mobileTelephone.test(v)) {
			return true;
		}
		else {
			
			alert('「'+cText+'」只能输入固定电话021-6********和手机!');

			arr[0].focus();
			return;
		}
	}
	catch(e) {
		alert('[ckNumber] '+e);
		return;
	}
}

/**
 * 根据控件name取得控件值，不能存在多个相同name
 * @param {Object} cName
 * @return object	控件object
 */
function getByNameOnly(cName) {
	var arr = document.getElementsByName(cName);
	if(arr.length!=1) {
		alert('SYSTEM ERROR: 控件存在多个,不能使用此函数!');
		return;
	}
	return arr[0];
}

/**
 * created by cryil on 2008-01-30
 * 将yyyy-MM-dd日期转成Date型
 * @param {Object} str
 * @return Date
 */
function toDate(str) {
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if(r==null)
    	return;
	return new Date(r[1], r[3]-1, r[4]);
}
/**
 * created by cryil on 2008-01-30
 * 格式化日期，调用方式 new Date().format('yyyy-MM-dd')
 * @param {Object} format
 * @return String
 */
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;
}

//????????￥????ˉ1è±???????è????￥??? ?????????é????ˉyyyy-mm-dd
function generDate(val){
			
			var d=val.split("-");
			if(d.length==1){
				return;
			}
			var month=d[1];
			if(month.charAt(0)=='0'){
				
				month=month.charAt(1);
			}
			var date=new Date(d[0],(parseInt(month)-1),d[2]);
			date.setHours(0,0,0);

			return date;

}
/**
 * by cyril
 * 检查日期是否越界
 * opt=true或null为判断o1<=o2,否则o1>=o2
*/
function availDate(o1, o2, opt, text1, text2) {
	var v1, v2;
	v1 = (o1.value.replace('-','').replace('-',''))*1;
	v2 = (o2.value.replace('-','').replace('-',''))*1;
	if(opt==null || opt==true) {
		if(v1<=v2) {
			return true;
		}
		alert('「'+text1+'」的日期不能大于「'+text2+'」');
	}
	else {
		if(v1>=v2) 
			return true;
		alert('「'+text1+'」的日期不能小于「'+text2+'」');
	}
	return false;
}

function substr0(str,len){
    if (str.length>len){
        return str.substr(0,len)+"...";
    }else{
        return str;
    }
}
function sub_str(str,len,place)
{
  str = str.trim();
  var cnLen = "xxx";		// utf8 每个中文3长度
  if(str.replace(/[^\x00-\xff]/gi,cnLen).length<=len) return str;
 
  if(place=='left')
  {
     var temp_len=len; 
     str=str.substr(0,len);
     while(str.replace(/[^\x00-\xff]/gi,cnLen).length>len)
     {
        str=str.substr(0,--temp_len)+"...";
     }
  }
  if(place=='right')
  {
     var temp_startn=0;
     str=str.substr(str.length-len,len);
     while(str.replace(/[^\x00-\xff]/gi,cnLen).length>len)
     {     
        str=str.substr(1,len);
     }    
  }
  return str;
}

function  setSelected(formId,selVal){
	        var selectObj = document.getElementById(formId);
	        for(var i=0;i<selectObj.options.length;i++){
	            if(selectObj.options[i].value == selVal){
	                selectObj.options[i].selected =true;
	                break;
	            }
	        }
	    }


