
	
function JSValidateID(sId)
{
	var iOdd = 0;
	var iEven = 0;
	var sEvenComposite = "";
	var iEvenLength = 0;
	var lEvenMultiple = 0;
	var sEvenMultiple = "";
	var iCheckNo = 0;
	var sCheckNo = "";
	var sTest = "";
	var sControl = "";
	var bResult = false;
	
	sId = JSTrim(sId);
	
	if(JSIsNumeric(sId)){
	
	for(i=0; i<sId.length-1; i+=2){
		iOdd += sId.substring(i,i+1)*1;
	}
	    
	for(i=1; i<sId.length-1; i+=2){
		sEvenComposite += sId.substring(i,i+1);
	}
	    
	lEvenMultiple = sEvenComposite*2;
	    
	sEvenMultiple = ""+lEvenMultiple;
	    
	iEvenLength = sEvenMultiple.length*2;
	    
	for(i=0; i<sEvenMultiple.length; i++){
		iEven += (sEvenMultiple.substring(i,i+1))*1;
	} 

	iCheckNo = iOdd + iEven;
	    
	sCheckNo = ""+iCheckNo;
	    
	sControl = ""+(10 - (sCheckNo.substring(sCheckNo.length-1,sCheckNo.length)*1));
	    
	sControl*1==10?sControl="0":null;
	    
	bResult=(sControl==sId.substring(sId.length-1,sId.length)?JSValidateDateOfBirth(sId):false);      
	}    
	return bResult;    
}
	
function JSChkLeapYear(iYear)
{
	if(parseInt(iYear)<=999&&parseInt(iYear)>=100){
	iYear = parseInt("2"+iYear);
	}
	else if(parseInt(iYear)<=99&&parseInt(iYear)>=10){
	iYear = parseInt("20"+iYear);
	}
	else if(parseInt(iYear)<=9&&parseInt(iYear)>=1){
	iYear = parseInt("200"+iYear);
	}
	else if(parseInt(iYear)==0){
	iYear = parseInt(2000);
	}
	else
	{
	iYear = parseInt(iYear);
	}

	if(parseInt(iYear)%4 == 0)
	{
	if(iYear%100 != 0)
	{
		return true;
	}
	else
	{
		if(iYear%400==0)
		{
		return true;        
		}
		else
		{
		return false;        
		}
	}
	}
	return false;
}
	
function JSValidateDateOfBirth(sId){
	var iYear;
	var iMonth;
	var iDay;
	var iResult = false;
	
	if(!JSIsNumeric(sId.substring(0,2))){
	iYear = 0;
	}
	else
	{
	iYear = sId.substring(0,2)*1;
	}
	
	if(!JSIsNumeric(sId.substring(2,4))){
	iMonth = 0;
	}
	else
	{
	iMonth = sId.substring(2,4)*1;
	}
	
	if(!JSIsNumeric(sId.substring(4,6))){
	iDay = 0;
	}
	else
	{
	iDay = sId.substring(4,6)*1;
	}
	
	if(iMonth>=1&&iMonth<=12){
		switch(iMonth)
		{
			case 1: case 3: case 5: case 7: case 8: case 10: case 12:
				if(iDay>=1&&iDay<=31){
				iResult = true;
				}
				else
				{
				iResult = false;
				}
				break;
			case 2:
				if(iDay>=1&&iDay<=(JSChkLeapYear(iYear)?29:28)){
				iResult = true;
				}
				else
				{
				iResult = false;
				}
				break;    
			case 4: case 6: case 9: case 11:
				if(iDay>=1&&iDay<=30){
				iResult = true;
				}
				else
				{
				iResult = false;
				}
				break;
		}
	}
	else
	{
	iResult = false;
	}
	return iResult;  
}

function checkEmailAddress(emailAddr) {
	invalidChars = " /:,;%^&!";
	for (i=0; i < invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		if (emailAddr.indexOf(badChar,0) != -1)
		return (false);
	}
	atPos = emailAddr.indexOf("@", 1);
	if (atPos == -1)
		return (false);
	if (emailAddr.indexOf("@", atPos+1) != -1)
		return (false);
	periodPos = emailAddr.indexOf(".", atPos + 2)
	if (periodPos == -1)
		return (false);
	if (periodPos+2 >= emailAddr.length)
		return (false);
	return (true);
}
