
// ?????
function MyTrim(Str){
	re=/^\s+/gi;
	newStr = Str.replace(re,"");
	return newStr;
}
//?????????  ONKEYPRESS="event.returnValue=IsDigit();"
function IsDigit()
{
  return ((event.keyCode >= 48) && (event.keyCode <= 57));
}

//???????????
function NotCN(Str){
	if(/[^\x00-\xff]/g.test(Str.value)){
		alert("????");
		Str.focus();
		return false;
	}else{
		return true;
	}
}

// ?????????????????????????????? @ 
function isValidStr (s,fieldname)
{
	 var regu = "^([a-zA-Z]+[_0-9a-zA-Z@.-]*)$"
	 var re = new RegExp(regu);
	 if (s.search(re) != -1) {
		   return true;
	 } else {
		   window.alert ("The entry in field "+fieldname+" is invalid")
		   return false;
	 }
}
// ??????????????????? 
function isValidString (s)
{
	 var regu = "^([a-zA-Z]+[0-9a-zA-Z]*)$"
	 var re = new RegExp(regu);

	 if (s.search(re) != -1) {
		   return true;
	 } else {
		   window.alert ("?????????")
		   return false;
	 }
}
//????????,?? ?????
function isValidDate( year, month, day )
{
   year  = parseInt(year,10);
   month = parseInt(month,10);
   day   = parseInt(day,10);

   if (( month==4) || (month==6) || (month==9) || (month==11) )
   { if (( day < 1) || (day > 30) )
     { alert( "???1 - 30??" );
       return (false);
     }
   }
   else
   { if ( month!=2 )
     { if ( (day < 1) || (day > 31 ))
       {  alert( "???1 - 31??" );
          return (false);
       }
     }
     else
     { // month == 2
       if ( ( year % 100 ) != 0 && (year % 4 == 0) || ( year % 100 ) == 0 && ( year % 400) == 0 )
       { if ( day > 29 )
         {  alert( "???1 - 29??" );
            return (false);
         }
       }
       else
       { if ( day > 28 )
         { alert( "???1 - 28??" );
           return (false);
         }
       }
     }
   }
 return (true);
}

//???????????????
function IsDateFormat(dateStr)
	{ 
    var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/; 
    var matchArray = dateStr.match(datePat); // is the format ok? 
	
	if (matchArray == null) { 
        alert("?????????????? yyyy/mm/dd ? yyyy-mm-dd");
        return false; 
    } 
	year = matchArray[1]; 
	month = matchArray[3]; // parse date into variables 
    day = matchArray[5]; 


    if (month < 1 || month > 12) { // check month range 
        alert("????? 1 ?12??."); 
        return false; 
    } 

    if (day < 1 || day > 31) { 
        alert("????? 1 ??31??."); 
        return false; 
    } 

    if ((month==4 || month==6 || month==9 || month==11) && day==31) { 
        alert(month+"????31?!") 
        return false; 
    } 

    if (month == 2) { // check for february 29th 
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
        if (day > 29 || (day==29 && !isleap)) { 
            alert(year + "?????????" + day + " ?!"); 
            return false; 
        } 
    } 
    return true; // date is valid 
}

// ??????
function isemail (s)
{       
	
	 var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
	 var re = new RegExp(regu);
	 if (s.value.search(re) != -1) {
		   return true;
	 } else {
		   window.alert ("The entry in field User Name is not a valid e-mail address.");
			s.focus();
		   return false;
	 }
}

function emailValid(s)
{       
	
	 var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$"
	 var re = new RegExp(regu);
	 if (s.value.search(re) != -1) {
		   return true;
	 } else {
		   window.alert ("The entry in field email is not a valid e-mail address.");
			s.focus();
		   return false;
	 }
}

function  js_IsYear(txt)  //????,case "year"
      {  
	  var str=MyTrim(txt.value);
    var reg =/^([1-9]{1})\d{3}$/;
   if( reg.test(str)) return true;
     return false;
	}
function  js_IsYear2(txt)  //??????,case "year2"
      {  
	  var str=MyTrim(txt.value);
    var reg =/^\d{2}$/;
   if( reg.test(str)) return true;
     return false;
	}
function js_IsYMonth(txt)//????,case "partdate"
{   var str=MyTrim(txt.value);
    var reg = /^([1-9]{1}\d{3})([\-\/\.])(0?[1-9]|1?[0-2])$/;
     if( reg.test(str)) {
		 alert("???????????? 020-888888");
		 return true;
	 }
     return false;
}
function js_IsMonth(txt)//???,case "month"
{   var str=MyTrim(txt.value);
    var reg = /^(0?[1-9]|1?[0-2])$/;
     if( reg.test(str)) return true;
     return false;
}
function js_IsDay(txt)//???,case "day"
{   var str=MyTrim(txt.value);
    var reg = /^(0?[1-9]|[1-2]?[0-9]|3?[0-1])$/;
     if( reg.test(str)) return true;
     return false;
}
function js_IsMDay(txt)//????,case "m_day"
{   var str=MyTrim(txt.value);
    var reg = /^(0?[1-9]|1?[0-2])[\.\-\/](0?[1-9]|[1-2]?[0-9]|3?[0-1])$/;
     if( reg.test(str)) return true;
     return false;
}

function js_IsPhone(txt)//????,case "phone" 020-888888
{   var str=MyTrim(txt.value);
    var reg =/^(\d{3,4}\-)*([1-9]{1})(\d{6,7})$/;
    if( reg.test(str)) return true;
    alert("The entry in field photo is invalid 010-88888888");
    txt.focus();
    return false;
}

function js_IsZip(txt)//????,case "zip"
{   var str=MyTrim(txt.value);
    var reg =/^([1-9]{1})(\d{5})$/;
   if( reg.test(str)) return true;
     return false;
}
function js_IsInt(txt)//????0???,case "int"
{   var str=MyTrim(txt.value);
    var reg =/^([1-9]{1})\d|.*$/;
   if( reg.test(str)) return true;
     return false;
}
function js_IsInto(txt)//????,case "into"/^\d+$/
{   var str=MyTrim(txt.value);
    var reg =/^([0-9]{1})\d*$/;
   if( reg.test(str)) return true;
     return false;
}
function js_IsNum(txt)//????,case "num"
{   var str=MyTrim(txt.value);
    var reg =/^\d+$/;
   if( reg.test(str)) return true;
     return false;
}
function js_IsFloat(txt)//?????,case "float"
{   var str=MyTrim(txt.value);
    var reg =/^\d{1,10}\.*/;
   if( reg.test(str)) return true;
     return false;
}

function js_IsMobile(txt)//?????,case "mobile"
{   var str=MyTrim(txt.value);
    var reg =/^0?(13[0-9]{1})\d{8}$/;
   if( reg.test(str)) return true;
     return false;
}
function js_IsHttp(txt)//??URL,case "http"
{   var str=MyTrim(txt.value);
   // var reg =/http:\/\/([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?/
	var reg=/^(http:\/\/)?[w]{3}\.[\w]+\.[\w]{2,3}$/;
   if( reg.test(str)) return true;
     return false;
}

//********************????***************************
// ??????
function CheckEmpty(Field, FieldTitle)
{
	if (MyTrim(Field.value) == "")
	{
		alert("Field "+FieldTitle+" is required!!!");
		Field.focus();
		return false;
	}
		
	return true;
}
//???????	
function CheckInteger(Field, FieldTitle)
{
	if (MyTrim(Field.value) != "")
	{
		for (i = 0; i < Field.value.length; i++)
		{
			ch = Field.value.charAt(i);
				
			if ( (ch < '0' || ch > '9') && ch != '-' ) {
				alert("\"" + FieldTitle + "\"???????.");
				Field.focus();
				return	false;
			}
		}
	}
		
	return true;
}
//??????????	
function CheckReal(Field, FieldTitle)
{
	if (MyTrim(Field.value) != "")
	{
		DotNum = 0;
		for (i = 0; i < Field.value.length;  i++)
		{
			ch = Field.value.charAt(i);
				
			if ((ch < '0' || ch > '9') && ch != '.') 
			{
				alert("\"" + FieldTitle + "\"???????.");
				Field.focus();
				return false;
			}
				
			if (ch == '.')
			{
				if (DotNum > 0) 
				{
					alert("\"" + FieldTitle + "\"??????????.");
					Field.focus();
					DotNum++;
					return false;
				}
			}
		}
	}
		
	return	true;
}
//????????
function CheckMaxLength(Field, MaxLength, FieldTitle)  
{  
	if (MyTrim(Field.value) != "")
	{  
		if (Field.value.length > MaxLength)  
		{  
			
			alert("The entry in field " + FieldTitle + " has a maximum length of " + MaxLength + " character(s).");  
			Field.focus();  
			return false;  
		}  
	}  
			  
	return true;  
}
//????????	  
function CheckMinLength(Field, MinLength, FieldTitle)  
{  
	if (MyTrim(Field.value) != "") 
	{  
		if (Field.value.length < MinLength)  
		{  
			
			alert("The entry in field " + FieldTitle + " must have at least "+MinLength+" character(s).");  
			Field.focus();  
			return false;  
		}  
	}  
			  
	return true;  
}  
//??????????	
function CheckOption(Field, FieldTitle) 
{
	for (i = 0; i < Field.length; i++)
		if (Field[i].checked)
			return true;
				
	alert("???\"" + FieldTitle + "\"???.");
	return false;
}
// ?? ??	
function CheckMustLength(Field, MustLength, FieldTitle)  
{  
	if (MyTrim(Field.value) != "")  
	{  
		if (Field.value.length != MustLength)  
		{  
			alert("\"" + FieldTitle + "\"????????" + MustLength + "?.");  
			Field.focus();  
			return false;  
		}  
	}  
			  
	return true;  
}  
//????????????  ??
function CheckIntRange(field,prompt,min,max) {  
	if ( ! CheckInteger(field,prompt) )  
		return	false;  
	ival = parseInt(field.value);  
	if ( ival < min || ival > max ) {  
		alert(prompt + " ??? " + min + " ? " + max + " ????");  
		field.focus();  
		return	false;  
	}  
	return	true;  
} 
//?????
function CheckOptionBols(Field, FieldTitle)  
{  
	if (Field.value == 0 )  {
			alert("????: " + FieldTitle); 
			Field.focus();  
			return false;  
	}

			  
	return true;  
}   
//show ÈÕÆÚ
function openDateWindow(SourceObject) {
    var sCurrentUrl = window.location.pathname;
    
    var sTemp = sCurrentUrl.substring(1);
    sCurrentUrl = sCurrentUrl.substring(0,sTemp.indexOf("/")+1);
    var sUrl = sCurrentUrl+"/inc/date.jsp"
    //alert(sCurrentUrl);
    //alert(sUrl);
    var options="dialogHeight:200px;dialogWidth:374px;resizable:no;status:no;help:no";
    return window.showModalDialog(sUrl,SourceObject,options);
    //window.open(sUrl);
}
