
function checkPeriod(start_year, start_mon, start_day, end_year, end_mon, end_day)
{
	var bReturn = false;
	if ( start_year+'-'+start_mon+'-'+start_day <= end_year+'-'+end_mon+'-'+end_day )
	{
		bReturn = true;
	}
	return bReturn;
}

function GetLeap( year ) {
	if ( year % 400 == 0 )
		return 1;
	else if ( year % 100 == 0 )
		return 0;
	else if ( year % 4 == 0 )
		return 1;
	else
		return 0;
}

function MaxDay(tmpyear,tmpmonth){
	var SolarCal=new Array(12);
	tmpmonth=tmpmonth-1;
	if (GetLeap(tmpyear)){
		SolarCal = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
	}else{
		SolarCal = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];        
	}
	return SolarCal[tmpmonth];
}

function IsValidDate(date_string, min_year)
{
	var bReturn = false;
	var tmp_array = date_string.split('-');
	if (tmp_array.length==3)
	{
		var dt_year = tmp_array[0];
		var dt_month = tmp_array[1];
		var dt_day = tmp_array[2];
		if (IsAllDigital(dt_year) && IsAllDigital(dt_month) && IsAllDigital(dt_day) )
		{
			if (dt_year>=min_year)
			{
				if (dt_month>=1 && dt_month<=12)
				{
					var maxday=MaxDay(dt_year, dt_month);
					if ( dt_day <= maxday && dt_day > 0)
					{
						bReturn = true;
					}
				}
			}
		}
	}
	return bReturn;
}

function IsBirthday(date_string, dt_month, dt_day)
{
	var now = new Date();
	var min_birth_year = now.getFullYear()-100;
	var bReturn = false;
	if (IsValidDate(date_string, min_birth_year))
	{
		bReturn = true;
	}
	return bReturn;
}

function IsPhoneNo(param_value)
{
	var bReturn = false;
	var len = param_value.length;
	if (len>7)
	{
		var idx = 0;
		for(idx = 0 ; idx < len ; idx++)
		{
			c = param_value.charAt(idx);
			if(!((c >= "A" && c <= "Z")||(c >= "a" && c <= "z")||(c >= "0" && c <= "9")||(c == "-")||(c == "_")||(c == ".")||(c == ":")||(c == "#")||(c == " "&& idx>0)))
			{
				bReturn = false;
				break;
			}else
			{
				bReturn = true;
			}
		}
	}

	return bReturn;
}

function IsMobileNo(param_value)
{
	var bReturn = false;
	if (param_value.length==10)
	{
		if (IsAllDigital(param_value))
			bReturn = true;
	}
	return bReturn;
}

function IsZip(param_value)
{
	var bReturn = false;
	if (param_value.length>=3 && param_value.length<=5)
	{
		if (IsAllDigital(param_value))
			bReturn = true;
	}
	return bReturn;
}

function IsEmail(em)
{
	var bReturn = false;
	var len = em.length;
	if (len > 0) {
		if( (em.indexOf(".")!=-1) && (em.indexOf(".")!=0) && (em.lastIndexOf(".")!=(len-1)) && (em.indexOf("@")!=-1) && (em.indexOf("@")!=0) && (em.indexOf("@")!=(len-1)) && (em.substring(em.indexOf("@")+1,len).indexOf("@")==-1) ) {
			bReturn = true;
			for(var i = 0; i < len; i++) {
				var c = em.charAt(i);
				if(!((c >= "A" && c <= "Z")||(c >= "a" && c <= "z")||(c >= "0" && c <= "9")||(c == "-")||(c == "_")||(c == ".")||(c == "@"))) {
					bReturn = false;
					break;
				}
			}
		}
	}
	return bReturn;
}

function IsAllDigital(param_value)
{
   var bReturn = false;
   var idx = 0;
   for (idx = 0; idx < param_value.length; idx++)
   {
      charcode = param_value.charCodeAt(idx);
      if ((charcode >= 48) && (charcode <= 57))
      {
         bReturn = true;
      }
      else
      {
         bReturn = false;
         break;
      }
   }
   return bReturn;
}

function checkRadios(radios,errmsg) {
		errmsg = errmsg || '';
    var radiok=0;
    var i;
    for (i=0; i<radios.length; i++) {
	if (radios[i].checked) {
            radiok=1;
        }
    }
    if (radiok == 0) {
    	if (errmsg.length>0){alert(errmsg);}
	return false;
    }
    return true;
}

function IsLetterDigital(param_value)
{
   var bReturn = false;
   var idx = 0;
   for (idx = 0; idx < param_value.length; idx++)
   {
      charcode = param_value.charCodeAt(idx);
      if (((charcode >= 48) && (charcode <= 57)) || ((charcode >= 65) && (charcode <= 90)) || ((charcode >= 97) && (charcode <= 122)))
      {
         bReturn = true;
      }
      else
      {
         bReturn = false;
         break;
      }
   }
   return bReturn;
}