/*
==================================================================
LTrim(string) : Returns a copy of a string without leading spaces.
==================================================================
*/
function LTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

/*
==================================================================
RTrim(string) : Returns a copy of a string without trailing spaces.
==================================================================
*/
function RTrim(str)
{
   var whitespace = new String(" \t\n\r");

   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }

   return s;
}

/*
=============================================================
Trim(string) : Returns a copy of a string without leading or trailing spaces
=============================================================
*/
function Trim(str)
{
   return RTrim(LTrim(str));
}

function checkEngNum (str) {
	if ( str == null ) return false ;

	for( var i=0; i < str.length;i++){
		var c = str.charCodeAt(i);
		if( !( (  0x61 <= c && c <= 0x7A ) || ( 0x41 <= c && c <= 0x5A ) || (  0x30 <= c && c <= 0x39 ) ) ) {
			return false ;
		}
	}
	return true ;
}

function checkEng (str) {
	if ( str == null ) return false ;

	for( var i=0; i < str.length;i++){
		var c = str.charCodeAt(i);
		if( !( (  0x61 <= c && c <= 0x7A ) || ( 0x41 <= c && c <= 0x5A ) ) ) {
			return false ;
		}
	}
	return true ;
}

function checkEMail (str) {
    var isEmail = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
    if( !isEmail.test(str) ) {
        return false;
    }
    return true;
}

function checkDaysPerMonth(strYear, strMon) {
    var DOMonth  = new Array("31","28","31","30","31","30","31","31","30","31","30","31");
    var IDOMonth = new Array("31","29","31","30","31","30","31","31","30","31","30","31");

    if ( (strYear%4) == 0 )
    {
        if ( (strYear%100) == 0 && (strYear%400) != 0 )
            return DOMonth[strMon-1];
        return IDOMonth[strMon-1];
    }
    else
        return DOMonth[strMon-1];
}

function checkBirthday (strDate) {
	var vDate = "", vYear;

	var cSplit = strDate.split ("-");
    for(var i=0; i<cSplit.length; i++) {
        vDate = vDate + cSplit[i];
    }

	if(isNaN(vDate)) {
		return false;
	}
	
	vYear = parseInt (vDate.substr(0,4),10);
	vMon = parseInt (vDate.substr(4,2),10);
	vDay = parseInt (vDate.substr(6,2),10);

	if ( (vMon > 12) || (vMon < 1) ) {
		return false;
	}
	if ( (vDay > checkDaysPerMonth(vYear, vMon)) || (vDay < 1) ) {
		return false;
	}

	return true;
}
