function Inputdate_onkeyup(strDate, strFeildID, e)
{
	if (window.event) e = window.event;
	var strKeycode;
	strKeycode = e.keyCode || e.which;
	if (isEdit(strKeycode, strDate))
	{
		document.getElementById(strFeildID).value=editdate(trim(strDate));
	}
}
	
function isEdit(keycode, str)
{
	if ((keycode>=48 && keycode <=57 || keycode>=96) && keycode <=105 && !isDate(str) && str.length <=8 || keycode==111 || keycode==191)
	{
		return true;
	}
	else
	{
		return false;
	}
}

function editdate(str)
{
	var value;
	if (str.substr(str.length-1,1)=="/" && str.substr(str.length-2,1)=="/"){
		return str.substr(0,str.length-1)
	}
	switch (str.length){
		case 1:
		if (str.substr(0,1)>=4) {
			value="0"+str.substr(0,1)+ "/";
		}else{
			value=str;
		}break;
		case 2:
		if (str.substr(1,1)=="/" && str.substr(0,1)>=1 && str.substr(0,1)<=9 ) {
			value="0"+str.substr(0,str.length);
		}else{
			if (str>=1 && str<=31) {
				value=str+"/";
			}else{
				value=str.substr(0,1);
			}
		}break;
		case 3:
		if (str.substr(1,1)=="/" && str.substr(0,1)>=1 && str.substr(0,1)<=9 ) {
			value="0"+str.substr(0,str.length);
		}else{
			value=str;
		} break;
		case 4:
		if (str.substr(3,1)>=2 && str.substr(2,1)== "/" ){
			value=str.substr(0,3)+"0"+str.substr(3,1)+ "/";
		}else{
			value=str.substr(0,4);
		}break;
		case 5:
		if (str.substr(str.length-1,1)=="/") {
			value=str.substr(0,str.length-2) + "0" + str.substr(str.length-2,str.length);
		}else {
			if (str.substr(3,2)>=1 && str.substr(3,2)<=12){
				value=str+"/";
			}else{
				value=str.substr(0,str.length-1);
			}
		}break;
		case 8:
		if (str.substr(str.length-2,2)>=45){
			value=str.substr(0,str.length-2)+"19"+str.substr(str.length-2,2);
		}else{
			if (str.substr(str.length-2,2)<=18) {
				value=str.substr(0,str.length-2)+"20"+str.substr(str.length-2,2);
			}else {
				value=str;
			}
		}break;
		default:
		value=str;
	}
		return value;
}

function isDate(s)
{
	var sDay, sMonth, sYear, nMonth, nDay, nYear, nSep1, nSep2;
	s=trim(s);
	nSep1 = s.indexOf( "/" );	if ( nSep1 < 0 ) return false;
	nSep2 = s.lastIndexOf( "/" );	if ( nSep2 < 0 ) return false;
	if ( nSep1 == nSep2 ) return false;
	sDay = s.substring( 0, nSep1  );
	sMonth = s.substring( nSep1 + 1, nSep2 );
	sYear = s.substring( nSep2+1 );
	if (sDay.length>=3||sMonth.length>=3) return false;
	if (sYear.length>4 ) return false;
	if (sYear.length<4 ) return false;
	if ( !sMonth.length || !sDay.length || !sYear.length ) return false;
	if ( isNaN(sMonth) || isNaN(sDay) || isNaN(sYear) ) return false;
	nMonth = parseInt(sMonth,10); nDay = parseInt(sDay,10); nYear = parseInt(sYear,10);
	if ( nMonth<=0 || nDay<=0 || nYear<=0 ) return false;
	if ( nMonth > 12 ) return false;
	if (nMonth==1 || nMonth==3 || nMonth==5 || nMonth==7 || nMonth==8 || nMonth==10 || nMonth==12 )
		if ( nDay > 31 ) return false; 
	if (nMonth==4 || nMonth==6 || nMonth==9 || nMonth==11 )
		if ( nDay > 30 ) return false; 
	if (nMonth==2) {
		if ( (nYear % 4 == 0) && (nYear % 100 != 0)) { // leap year
			if ( nDay > 29 ) return false;
		} else if ( nDay > 28 ) return false;
	}
	return true;
}
	
	
function trim(s) {
	var i, sRetVal = "";
	i = s.length-1;
	while (i>=0 && s.charAt(i) == ' ')
		 i--;
	s = s.substring( 0, i+1 ); // trim blanks on the right
	i = 0;
	while ( i< s.length && s.charAt(i) == ' ')
		 i++;
	return s.substring( i );
}


function isEmail(s) {
	sep = s.indexOf("@");	
	if (sep < 0) return false;
	
	for (i = 0; i < s.length; i++)
		if (i != sep) {
			if ((s[i] >= '0' && s[i] <= '9') || (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z') ||
				s[i] == '.' || s[i] == '_');
			else return false;
		}
		
	return true;
}
