// JavaScript Document
function validNumber(str)
{
	if(str.length<1) return false;
	for(var i=0;i<str.length;i++)
	{
		if(str.charAt(i)<'0' || str.charAt(i)>'9') return false;
	}
	return true;
}

function isLeapYear(year)
{
	var isLeap=false;
	if(((year % 4 )==0) && ((year %100)!=0)) isLeap=true;
	if((year %400)==0) isLeap=true;
	return isLeap;
}

/*
valid date format:
	YYYY-MM-DD
	YYYY-M-D
	YYYY-0M-0D
	...
*/
function validDate(str)	
{
	var year,month,day;
	var monthS,dayS;
	var index1,index2;
	
	if(str.length>10) return false;
	if(str.length<8) return false;
	
	if(!validNumber(str.substr(0,4))) return false;
	year=parseInt(str.substr(0,4));
	
	if((index1=str.indexOf("-"))==-1) return false;	// Can not find delimitor charactor 
	if((index2=str.indexOf("-",index1+1))==-1) return false;	// Can not find delimitor charactor 
	monthS=str.substr(index1+1,index2-index1-1);
	if(!validNumber(monthS)) return false;
	if((monthS.charAt(0)=="0") && (monthS.length>1)) monthS=monthS.substr(1,1);		//eg. Month=02
	month=parseInt(monthS);
	
	dayS=str.substr(index2+1);
	if(!validNumber(dayS)) return false;
	if((dayS.charAt(0)=="0") && (dayS.length>1)) dayS=dayS.substr(1,1);		//eg. Month=02
	day=parseInt(dayS);
	
//	alert(year + "-"+month+"-"+day);
	
	switch(month)
	{
	case 1:case 3:case 5:case 7:case 8:case 10:case 12:
		if(!((day>0)&(day<32))) return false; else return true;break;
	case 4:case 6:case 9:case 11:
		if(!((day>0)&(day<31))) return false; else return true;break;
	case 2:
		if(isLeapYear(year))
		{
			if(!((day>0)&&(day<30))) return false;
			else
				return true;
		}
		else
		{
			if(!((day>0)&&(day<29))) return false;
			else
				return true;
		} break;
	default:
		return false;
	}
	return true;
}

function formatDate(str)	
{
	var yearS,monthS,dayS;
	var index1,index2;
	
	yearS=str.substr(0,4);
	
	if((index1=str.indexOf("-"))==-1) return "";	// Can not find delimitor charactor 
	if((index2=str.indexOf("-",index1+1))==-1) return "";	// Can not find delimitor charactor 
	monthS=str.substr(index1+1,index2-index1-1);
	if(monthS.length<2) monthS="0"+monthS;
	
	dayS=str.substr(index2+1);
	if(dayS.length<2) dayS="0"+dayS;
	
	return yearS+"-"+monthS+"-"+dayS;
}

function formatDate2(str)
{
	var yearS,monthS,dayS;
	var index1,index2;
	
	yearS=str.substr(0,4);
	
	if((index1=str.indexOf("-"))==-1) return "";	// Can not find delimitor charactor 
	if((index2=str.indexOf("-",index1+1))==-1) return "";	// Can not find delimitor charactor 
	monthS=str.substr(index1+1,index2-index1-1);
	if(monthS.length<2) monthS="0"+monthS;
	
	dayS=str.substr(index2+1);
	if(dayS.length<2) dayS="0"+dayS;
	
	return yearS + monthS + dayS;
}
 
function validTime(str)
{
	var index;
	var hour,minitue;
	var hourS,minitueS;
	
	if(str.length<3) return false;
	if((index=str.indexOf(":"))==-1) return false;
	
	hourS=str.substr(0,index);
	if((hourS.charAt(0)=="0")&&(hourS.length>1)) hourS=hourS.substr(1,1);
	hour=parseInt(hourS);

	minitueS=str.substr(index+1);
	if((minitueS.charAt(0)=="0")&&(minitueS.length>1)) minitueS=minitueS.substr(1,1);
	minitue=parseInt(minitueS);
	
//	alert(hour+":"+minitue);
	
	if(!((hour>=0)&&(hour<=23))) return false;
	if(!((minitue>=0)&&(minitue<=59))) return false;
	
	return true;
}

function validEmail(str)
{
	if(str.length<5) return false;
	if (str.charAt(0) == "@")
    	return (false);
	if ((str.indexOf('@',0)==str.indexOf('.',0)+1) || (str.indexOf('@',0)==str.indexOf('.',0)-1))
    	return (false);
	if (str.indexOf('@',0)==-1|| str.indexOf('.',0)==-1)
    	return (false);
	return true;
}

function validPhone(str)
{
  var checkOK = "0123456789-";
  var checkStr =str;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  
  if(str.length<1) return false;

  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
	return allValid;
}
