function checkemail(str){
	var filter=/^.+@.+\..{2,4}$/
	return (filter.test(str))
}

function checkTextBox(element,errMsg){
	if(element.value == ''){
		alert(errMsg);
		element.focus();
		return false;
	}
	return true;
}

function checkRadioButtonGroup(element,errMsg){
	var i;
	if(isNaN(element.length)){		
		if(element.checked){
			return true;
		}
		else{
			alert(errMsg);
			element.focus();
			return false;
		}
	}
	else{
		for(i=0;i<element.length;i++){
			if(element[i].checked){
				return true;
			}
		}
		alert(errMsg);
		element[0].focus();
		return false;
	}
}

function checkMobil(val){
	var test = new RegExp("^[89][0-9]{7,7}$");
	return test.test(val);
}
function checkResidential(val){
	var test = new RegExp("^[6][0-9]{7,7}$");
	return test.test(val);
}

function checkDigit(val){
	// var test = new RegExp("^[0-9][0-9]+[0-9]$");
	var test;
	test = new RegExp("^[0-9]+[0-9]$");
	if (val.length == 1) test = new RegExp("^[0-9]$");
	return test.test(val);
}

function checkNRIC(nric)
  {
        var checkOK = "ABCDEFGHIJSTZabcdefghijstz0123456789";
        var allValid = true;
        if(nric.length<9)
        {
                return false;
        }
        for(var i=0; i<nric.length;i++)
        {
                var ch = nric.charAt(i);
                for(var j=0; j<checkOK.length;j++)
                {
                        if(ch == checkOK.charAt(j))
                                break;
                        if(j == checkOK.length-1)
                                allValid = false;
                }
        }
        if(!allValid)
                return false;


        var S1=0;
        var checkDigit = new Array("~" , "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "Z" , "J");
        if(nric.charAt(0)=='T' || nric.charAt(0)=='t')
                S1+=4;
        else if(nric.charAt(0)=='S' || nric.charAt(0)=='s')
                S1+=0;
        else
                return false;

        S1 += (nric.charAt(1)-'0')*2;
        S1 += (nric.charAt(2)-'0')*7;
        S1 += (nric.charAt(3)-'0')*6;
        S1 += (nric.charAt(4)-'0')*5;
        S1 += (nric.charAt(5)-'0')*4;
        S1 += (nric.charAt(6)-'0')*3;
        S1 += (nric.charAt(7)-'0')*2;

        var R1 = S1%11;
        var P = 11-R1;

        if(nric.charAt(8).toUpperCase()!=checkDigit[P])
                return false;
        return true;

  }
  function checkFIN(fin)
  {
        var checkOK = "FGKLMNPQRTUWXfgklmnpqrtuwx0123456789";
        var allValid = true;
        if(fin.length<9)
                return false
        for(var i=0;i<fin.length;i++)
        {
                var ch = fin.charAt(i);
                for(var j=0; j<checkOK.length;j++)
                {
                        if(ch==checkOK.charAt(j))
                                break;
                        if(j==checkOK.length-1)
                                allValid = false;
                }
        }
        if(!allValid)
                return false;

        var S1 = 0;
        var checkDigit = new Array("~", "K" , "L" , "M" , "N" , "P" , "Q" , "R" , "T" , "U" , "W" , "X");
        if(fin.charAt(0)=="G" || fin.charAt(0)=="g")
                S1 +=4;
        else if(fin.charAt(0)=="F" || fin.charAt(0)=="f")
                S1+=0;
        else
                return false;
        S1 += (fin.charAt(1)-'0')*2;
        S1 += (fin.charAt(2)-'0')*7;
        S1 += (fin.charAt(3)-'0')*6;
        S1 += (fin.charAt(4)-'0')*5;
        S1 += (fin.charAt(5)-'0')*4;
        S1 += (fin.charAt(6)-'0')*3;
        S1 += (fin.charAt(7)-'0')*2;

        var R1 = S1%11;
        var P = 11-R1;

        if(fin.charAt(8).toUpperCase() !=checkDigit[P])
                return false;
        return true;
 }

function y2k(number) { return (number < 1000) ? number + 1900 : number; }
 
function isDate (day,month,year) {
// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.

    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
         (month == test.getMonth()) &&
         (day == test.getDate()) )
        return true;
    else
        return false
}
