//去掉前后空格
function Trim (str)
{ 
	return str.replace(/(^\s*)|(\s*$)/g, ""); 
} 

//是否符合时间格式
function isTime(date, format)
{	
	if(format==null||format==""){
		format=":";
	}
	var arr = date.split(format);
	if(arr.length!=3){
		return false
	}
	if(isNaN(arr[0])||arr[0]>24||arr[0]<0){
		return false
	}
	if(isNaN(arr[1])||arr[1]>60||arr[1]<0){
		return false
	}
	if(isNaN(arr[2])||arr[2]>60||arr[2]<0){
		return false
	}
	return true;
}

//是否符合给定长度并且不为空
function val_len(object,info,min,max){
	if(!valLength(Trim(object.value),min,max)){
	 	alert(info);
		object.focus();
		return false;
	}
	else{
		return true;
	}
}

function val_hasQutMark(object,info){
	if(hasQutMark(object.value)){
		alert(info);
		object.focus();
		return false;
	}
	else{
		return true;
	}
}

function hasQutMark(srcstr)
{
  if(srcstr.length==0) {
    return false;
  }
  for(i=0;i<srcstr.length;i++)
  {
    var charI = srcstr.charAt(i);
    if(charI=="'"||charI=="\""||charI=="."||charI=="<"||charI==">"||charI==":"||charI=="?")
    {
      return true;
    }
  }
  return false;
}

function valDouble(js_value,len1,len2)
{
	var re;
	re = /^\s*$/;
	if(js_value.match(re)){
		return true;
	}
	if(isNaN(js_value)) {
		return false;
	}
	var str = js_value.split('.');
	if(str[0]!=null&&str[0].length>len1){
		return false;
	}
	if(str[1]!=null&&str[1].length>len2){
		return false;
	}
	return true;
}

//是否符合给定长度
function valLength(s1,minsize,maxsize)
{
	if (minsize == Number.MAX_VALUE)
		minsize = 0;
	var len = checkLength(s1);
	if (len>=minsize && len <= maxsize ){
		return true;
	}
	else{
		return false;
	}
}

function getErrormessage(errormsg)
{
	var suffix = "<br>";
	var index = errormsg.lastIndexOf(suffix);
	if (index!=-1){
		return errormsg.substring(0,index);
	}
	else {
		return errormsg;
	}
}	

//是否符合邮箱格式
function isEmail(js_value )
{
	var	pos ;
	var	re ;
	re = /^\s*$/ ;
	if ( js_value.match(re) ) {
		return true ;
	}
	pos = js_value.indexOf( '@',0 ) ;
	if ( js_value.length <= 5 ) {
		return false ;
	}
	if ( pos==-1 || pos==0 || pos==(js_value.length-1) ) {
		return false ;
	}
	pos = js_value.indexOf( '.',0 ) ;
	if ( pos<=0 || pos==(js_value.length-1) ) {
		return false ;
	}
	return true ;
}

//是否符合固定电话格式
function isPhone(js_value)
{
	var	re = /^[0-9\*\-( )]*$/;
	if (js_value.match (re)) {
		return	true;
	}
	return	false;
}

//是否符合移动电话格式
function isMobilephone(js_value)
{
	var	re = /^[0-9\s]*$/;
	if (js_value.match (re)) {
		return	true;
	}
	return	false;
}

//是否符合IPV4地址格式
function isIpadr(js_value)
{
	var	re1 = /10.1[0-9][0-9].1[0-9][0-9]$/;
	var	re2 = /10.1[0-9][0-9].2[0-5][0-5]$/;
	var	re3 = /10.2[0-5][0-5].1[0-9][0-9]$/;
	var	re4 = /10.2[0-5][0-5].2[0-5][0-5]$/;
	if (js_value.charAt(3)=='1'&&js_value.charAt(7)=='1'&&js_value.match(re1)) {
		return	true;
	}
	else if (js_value.charAt(3)=='1'&&js_value.charAt(7)=='2'&&js_value.match(re2)){
		return	true;
	}
	else if (js_value.charAt(3)=='2'&&js_value.charAt(7)=='1'&&js_value.match(re3)){
		return	true;
	}
	else if (js_value.charAt(3)=='2'&&js_value.charAt(7)=='2'&&js_value.match(re4)){
		return	true;
	}
	else {
		return	false;
	}
}
//邮编
function isPostcode(js_value)
{
	var	re ;
	re = /^\s*$/ ;
	if ( js_value.match(re) ){
		return true ;
	}
	if ( !is_natural(js_value) || js_value.length!=6 ){
		return false ;
	}
	return true ;
}

function is_natural(js_value )
{
	var	re ;
	re = /^\s*$/ ;
	if ( js_value.match(re) ) {
		return true ;
	}
	re = /^\+{0,1}[0-9]*$/ ;
	if ( !js_value.match(re) ) return false ;
	return true ;
}

//是否符合URL格式	
function isURL(js_value)
{		
	var pos, posdot ;
	var	re ;
	re = /^\s*$/ ;
	if ( js_value.match(re) ){
		return true ;
	}
	pos = js_value.indexOf('://',0) ;
	if ( pos<0 ) return false ;
	posdot = js_value.lastIndexOf('.') ;
	if ( posdot<pos ) {
		return false ;
	}
	if ( posdot == js_value.length-1 ) {
		return false ;
	}
	return true ;
}

//是否符合数字格式
function isNumber(js_value)
{
	var	re ;
	re = /^\s*$/ ;
	if ( js_value.match(re) ) {
		return true ;
	}
	if ( isNaN(js_value) || js_value.indexOf('.',0) >= 0 ) {
		return false ;
	}
	return true ;	
}

//是否符合Double格式
function isDouble(js_value)
{
	var re;
	re = /^\s*$/;
	if( js_value.match(re)){
		return true;
	}
	if(isNaN(js_value)) {
		return false;
	}
	return true;
}

function isPositive(js_value)
{
	if(isDouble(js_value)&&js_value>0) {
		return	true;
	}
}

//是否符合年月日格式
function isDate(date, format)
{
	if (format != 'yyyy-MM-dd') {
		format = 'yyyy-MM-dd';
	}
	if (date.length!=10||date==null) {
		return false;
	}
	var year = parseInt(date.substring(0,4),10);
	var month = parseInt(date.substring(5,7),10);
	var day = parseInt(date.substring(8,10),10);
	if(!(date.substring(0,4) + date.substring(5,7) + date.substring(8,10) > 19000000)) {
		return false;	
	}
	if(month<1 || month>12 || day<1 || day >31){
		return false;		
	}	
	if (isNaN(year) || isNaN(month) || isNaN(day)){
		return false;
	}
	if (month==4||month==6||month==9||month==11){
		if (day>30) {
			return false;
		}
		return true;
	}
	if (month==2){
		if ((year%400==0)||((year%100!=0)&&(year%4==0))){
			if (day>29)	return false;
		}
		else{
			if (day>28)	return false;
		}
		return true;
	}
	if (day>31) {
		return false;
	}
	return true;
}

//是否符合年月格式
function isMonth(moon, format)
{
	if (format != 'yyyy-MM') {
		format = 'yyyy-MM';
	}
	if (moon.length!=7||moon==null) {
		return false;
	}
	var year = parseInt(moon.substring(0,4));
	var month = parseInt(moon.substring(5,7));
	if(!(moon.substring(0,4) + moon.substring(5,7) > 190000)) {
		return false;	
	}
	if(month<1 || month>12) {
		return false;		
	}
	if (isNaN(year) || isNaN(month)){
		return false;
	}
	return true;
}

//是否符合年格式
function isYear(annual, format)
{
	if (format != 'yyyy') {
		format = 'yyyy';
	}
	if (annual.length!=4||annual==null) {
		return false;
	}
	var year = parseInt(annual.substring(0,4));
	if(!(annual.substring(0,4) > 1900)) {
		return false;	
	}
	if (isNaN(year)){
		return false;
	}
	return true;
}

function isLoginname(js_value)
{
	if (isEmpty (js_value)) {
		return	true;
	}
	var re = '[A-Za-z]+[A-Za-z0-9_]*';
	return	regmatch (js_value, re)
}

function isCode(js_value)
{
	if (isEmpty (js_value)) {
		return	true;
	}
	var re = '[A-Za-z0-9_]*';
	return	regmatch (js_value, re)
}

function isPassword(js_value)
{
	if (isEmpty (js_value)) {
		return	true;
	}
	var re = '[A-Za-z0-9_]*';
	return	regmatch (js_value, re)
}

//是否符合价格格式
function isPrice(js_value)
{
	return isDouble(js_value);
}

//是否为空
function isEmpty(js_value)
{
	var re;
	re = /^\s*$/;
	if(js_value.match (re))
	{
		return true;
	}
	return	false;
}

function contains(s1,s2)
{
	var s = s1.lastIndexOf(s2);
	if (s!=-1) {
		return true;
	}
	return false;
}

//判断是否相等
function regmatch(s1, s2)
{
	re = new RegExp ('^'+s2+'$')
	return s1.match (re);
}

function strlength(s1,minsize,maxsize)
{
	if (minsize == Number.MAX_VALUE) {
		minsize = 0;
	}
	var len = s1.length;
	if (len>=minsize && len <= maxsize ) {
		return true;
	}
	else {
		return false;
	}
}

function arraysize(aArray,minsize,maxsize)
{
	if (minsize == Number.MAX_VALUE) {
		minsize = 0;
	}
	var size = aArray.length;
	if(size >=minsize && size <= maxsize ) {
		return true;
	}
	else {
		return false;
	}
}

function date_compare(date1, date2)
{
	var  date1_time = date1.getTime();
	var  date2_time = date2.getTime();
	if (date1_time > date2_time) {
		return 1;
	}
	if (date1_time == date2_time) {
		return 0;
	}
	return -1;
}

function string_compare(str1, str2)
{
	var len1 = str1.length;
	var len2 = str2.length;
	var n;
	if (len1 > len2) {
		n = len2;
	}
	else {
		n = len1;
	}
	var i = 0;
	var j = 0;
	while (n-- != 0) {
	    var c1 = str1.charCodeAt(i++);
	    var c2 = str2.charCodeAt(j++);
	    if (c1 != c2) {
			return c1 - c2;
	    }
	}
	return len1 - len2;  
}

function validate_date(year, month, day)
{
	if (null==year||null==month||null==day) {
		return;
	}
	var year_sel = year.selectedIndex;
	var month_sel = month.selectedIndex;
	var day_sel = day.selectedIndex;
	var year_num = parseInt(year.options[year_sel].value);
	if (isNaN(year_num)) {
		year_num = parseInt(year.options[year_sel].text);
	}
	var month_num = parseInt(month.options[month_sel].value);
	if (isNaN(month_num)) {
		month_num = parseInt(month.options[month_sel].text);
	}
	var day_num = parseInt(day.options[day_sel].value);
	if (isNaN(day_num)) {
		day_num	= parseInt(day.options[day_sel].text);
	}
	if (isNaN(year_num) || isNaN(month_num) || isNaN(day_num)){
		return;
	}
	var alert_str = year_num + "??" + month_num + "??????" + day_num + "????";
	if (month_num==4||month_num==6||month_num==9||month_num==11){
		if (day_num>30)	alert(alert_str);
		return;
	}
	if (month_num==2){
		if ((year_num%400==0)||((year_num%100!=0)&&(year_num%4==0))){
			if (day_num>29)	alert(alert_str);
		}
		else{
			if (day_num>28)	alert(alert_str);
		}
		return;
	}
}

function getValue(js_obj)
{
	if (null == js_obj) {
		return null;
	}
	var	re, i;
	re = /^\s*$/ ;
  	if (js_obj.length){
		if (js_obj[0].type == "checkbox"){
			for (i=0; i<js_obj.length; i++) {
				if (js_obj[i].checked == true) {
					return js_obj[i].value;
				}
			}
			return null;
		}
		else if (js_obj[0].type == "radio"){
			for (i=0; i<js_obj.length; i++) {
				if (js_obj[i].checked == true) {
					return js_obj[i].value;
				}
			}
			return	null;
		}
  	}
 	else{
		if (js_obj.type == "select-multiple"){
			if (js_obj.selectedIndex < 0) {
				return null;
			}
			else {
				return js_obj[js_obj.selectedIndex].value;
			}
		}
		else if (js_obj.type == "select-one"){
			if (js_obj.selectedIndex < 0) {
				return null;
			}
			else {
				return js_obj[js_obj.selectedIndex].value;
			}
		}
		else if (js_obj.type == "text"){
		}
		else if (js_obj.type == "checkbox") {
			if (js_obj.checked == false) {
				return	null;
			}
		}
		else if (js_obj.type == "radio") {
			if (js_obj.checked == false) {
				return	null;
			}
		}
		return	js_obj.value;
  	}
	return	js_obj.value;
}

function htmlEncode(str){
  if(str!=''){
	 var strRet = '';
	 var j = str.length;
	    for(i = 0; i < j; i++){
		   var s = str.charAt(i);
	       var c = str.charCodeAt(i);
	       switch(c){
			 case 60:strRet += "&lt;";break;
			 case 62:strRet += "&gt;";break;
			 case 38:strRet += "&amp;";break;
			 case 39:strRet += "&#39;";break;
			 case 34:strRet += "&quot;";break;
			 case 169:strRet += "&copy;";break;
			 case 174:strRet += "&reg;";break;
			 case 165:strRet += "&yen;";break;
			 case 8364:strRet += "&euro;";break;
			 case 8482:strRet += "&#153;";break;
			 case 13:
				if(i < j - 1 && str.charCodeAt(i + 1) == 10){
					  strRet += "<br>";
					  i++;
				}
				break;
			 case 32:
				if(i < j - 1 && str.charCodeAt(i + 1) == ' '){
				  strRet += " &nbsp;";
				  i++;
			    }
			   break;
			 default:
				strRet += s;
				break;
	       }
	    }
	    return strRet;
  }
  else{
	     return '';
  }
}
function convertForm(object){
	var fm = object;
	fm.value = htmlEncode(fm.value); 
}
 
function isEqual(obj1,obj2,str1,str2){
	if(!(obj1.value==obj2.value)){
		alert(str1+" 与 "+str2+" 不相同");
		return false;
	}
	return true;
}

function isBlank(str) {
	var blankFlag = true;
	if (str.length == 0) return true;
	for (var i = 0; i < str.length; i++) {
		if ((str.charAt(i) != "") && (str.charAt(i) != " ")) {
			blankFlag = false;
			break;
		}
	}
	return blankFlag;
}

function checkNotNull(theField, fieldName) {
	if(isBlank(theField.value)){
		alert(fieldName + "不能为空");
		theField.focus();
		return false;
	}
	return true;
}

function checkLength(js_value)
{
	var len1=0;
	if(js_value.match(/[\x00-\xff]/g)){
	    len=js_value.length*2-js_value.match(/[\x00-\xff]/g).length;
		return len;
	}
	else{
		len=js_value.length*2;
		return len;
	}
}