﻿//  JScript File
var aRequires = new Array();
var aRequireMessages = new Array();

function AddRequire(oControlName, strMessage){
	aRequires[aRequires.length] = oControlName;
	aRequireMessages[aRequireMessages.length] = strMessage;
}

var aIntergers = new Array();
var aIntergerMessages = new Array();

function AddInteger(oControlName, strMessage){
	aIntergers[aIntergers.length] = oControlName;
	aIntergerMessages[aIntergerMessages.length] = strMessage;
}

var aPositiveIntergers = new Array();
var aPositiveIntergerMessages = new Array();

function AddPositiveInteger(oControlName, strMessage){
	aPositiveIntergers[aPositiveIntergers.length] = oControlName;
	aPositiveIntergerMessages[aPositiveIntergerMessages.length] = strMessage;
}

var aNegativeIntergers = new Array();
var aNegativeIntergerMessages = new Array();

function AddNegativeInteger(oControlName, strMessage){
	aNegativeIntergers[aNegativeIntergers.length] = oControlName;
	aNegativeIntergerMessages[aNegativeIntergerMessages.length] = strMessage;
}

var aNonNegativeIntergers = new Array();
var aNonNegativeIntergerMessages = new Array();

function AddNonNegativeInteger(oControlName, strMessage){
	aNonNegativeIntergers[aNonNegativeIntergers.length] = oControlName;
	aNonNegativeIntergerMessages[aNonNegativeIntergerMessages.length] = strMessage;
}

var aFloats = new Array();
var aFloatMessages = new Array();

function AddFloat(oControlName, strMessage){
	aFloats[aFloats.length] = oControlName;
	aFloatMessages[aFloatMessages.length] = strMessage;
}

// not implemented yet
var aRanges = new Array();
var aRangeMins = new Array();
var aRangeMaxs = new Array();
var aRangeMessages = new Array();

function AddRange(oControlName, min_value, max_value, strMessage){
	aRanges[aRanges.length] = oControlName;
	aRangeMessages[aRangeMessages.length] = strMessage;
	aRangeMins[aRangeMins.length] = min_value;
	aRangeMaxs[aRangeMaxs.length] = max_value;
}

var aUSDates = new Array();
var aUSDateMessages = new Array();

function AddUSDate(oControlName, strMessage){
	aUSDates[aUSDates.length] = oControlName;
	aUSDateMessages[aUSDateMessages.length] = strMessage;
}

var aUSDates_NULL = new Array();
var aUSDateMessages_NULL = new Array();

function AddUSDate_NULL(oControlName, strMessage){
	//alert(oControlName);
	aUSDates_NULL[aUSDates_NULL.length] = oControlName;
	aUSDateMessages_NULL[aUSDateMessages_NULL.length] = strMessage;
}

var aEUDates = new Array();
var aEUDateMessages = new Array();

function AddEUDate(oControlName, strMessage){
	aEUDates[aEUDates.length] = oControlName;
	aEUDateMessages[aEUDateMessages.length] = strMessage;
}

// not implemented yet
var aTimes = new Array();
var aTimeMessages = new Array();

function AddTime(oControlName, strMessage){
	aTimes[aTimes.length] = oControlName;
	aTimeMessages[aTimeMessages.length] = strMessage;
}

// not implemented yet
var aBooleans = new Array();
var aBooleanMessages = new Array();

function AddBoolean(oControlName, strMessage){
	aBooleans[aBooleans.length] = oControlName;
	aBooleanMessages[aBooleanMessages.length] = strMessage;
}
// not implemented yet
var aTelephones = new Array();
var aTelephoneMessages = new Array();

function AddTelephone(oControlName, strMessage){
	aTelephones[aTelephones.length] = oControlName;
	aTelephoneMessages[aTelephoneMessages.length] = strMessage;
}
// not implemented yet
var aZipCodes = new Array();
var aZipCodeMessages = new Array();

function AddZipCode(oControlName, strMessage){
	aZipCodes[aZipCodes.length] = oControlName;
	aZipCodeMessages[aZipCodeMessages.length] = strMessage;
}
// not implemented yet
var aCreditCards = new Array();
var aCreditCardMessages = new Array();

function AddCreditCard(oControlName, strMessage){
	aCreditCards[aCreditCards.length] = oControlName;
	aCreditCardMessages[aCreditCardMessages.length] = strMessage;
}
// not implemented yet
var aSSNs = new Array();
var aSSNMessages = new Array();

function AddSSN(oControlName, strMessage){
	aSSNs[aSSNs.length] = oControlName;
	aSSNMessages[aSSNMessages.length] = strMessage;
}

var aEmails = new Array();
var aEmailMessages = new Array();

function AddEmail(oControlName, strMessage){
	aEmails[aEmails.length] = oControlName;
	aEmailMessages[aEmailMessages.length] = strMessage;
}
// not implemented yet
var aURLs = new Array();
var aURLMessages = new Array();

function AddURL(oControlName, strMessage){
	aURLs[aURLs.length] = oControlName;
	aURLMessages[aURLMessages.length] = strMessage;
}
// not implemented yet
var aGUIDs = new Array();
var aGUIDMessages = new Array();

function AddGUID(oControlName, strMessage){
	aGUIDs[aGUIDs.length] = oControlName;
	aGUIDMessages[aGUIDMessages.length] = strMessage;
}
// not implemented yet
var aUUIDs = new Array();
var aUUIDMessages = new Array();

function AddUUID(oControlName, strMessage){
	aUUIDs[aUUIDs.length] = oControlName;
	aUUIDMessages[aUUIDMessages.length] = strMessage;
}
// not implemented yet
var aNoBlanks = new Array();
var aNoBlankMessages = new Array();

function AddNoBlank(oControlName, strMessage){
	aNoBlanks[aNoBlanks.length] = oControlName;
	aNoBlankMessages[aNoBlankMessages.length] = strMessage;
}
// not implemented yet
var aSubmitOnces = new Array();
var aSubmitOnceMessages = new Array();

function AddSubmitOnce(oControlName, strMessage){
	aSubmitOnces[aSubmitOnces.length] = oControlName;
	aSubmitOnceMessages[aSubmitOnceMessages.length] = strMessage;
}
// not implemented yet
var aPatterns = new Array();
var aPatternMessages = new Array();

function AddPattern(oControlName, strMessage){
	aPatterns[aPatterns.length] = oControlName;
	aPatternMessages[aPatternMessages.length] = strMessage;
}

function ValidateControls(objForm)
{
    var retVal = true;
    var bFirstControl =  true;
    var strMessages = "";
    for (iii=0; iii < aRequires.length; iii++){
        var strName = aRequires[iii];
        var strMessage = aRequireMessages[iii];
        if (objForm[strName] != null)
        {
            if (objForm[strName].value == "")
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	//inserted by namth 2008/04/27
	for (iii=0; iii < aSSNs.length; iii++){
        var strName = aSSNs[iii];
        var strMessage = aSSNMessages[iii];
        if (objForm[strName] != null)
        {
            if (!validFN_SSN(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	//end inserted
	for (iii=0; iii < aIntergers.length; iii++){
        var strName = aIntergers[iii];
        var strMessage = aIntergerMessages[iii];
        if (objForm[strName] != null)
        {
            if (!IsInteger(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	for (iii=0; iii < aPositiveIntergers.length; iii++){
        var strName = aPositiveIntergers[iii];
        var strMessage = aPositiveIntergerMessages[iii];
        if (objForm[strName] != null)
        {
            if ( (!IsInteger(objForm[strName].value)) || (!IsPositiveNumber(objForm[strName].value)) )
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	for (iii=0; iii < aNegativeIntergers.length; iii++){
        var strName = aNegativeIntergers[iii];
        var strMessage = aNegativeIntergerMessages[iii];
        if (objForm[strName] != null)
        {
            if ( (!IsInteger(objForm[strName].value)) || (IsNonNegativeNumber(objForm[strName].value)) )
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	
	for (iii=0; iii < aNonNegativeIntergers.length; iii++){
        var strName = aNonNegativeIntergers[iii];
        var strMessage = aNonNegativeIntergerMessages[iii];
        if (objForm[strName] != null)
        {
            if ( (!IsInteger(objForm[strName].value)) || (!IsNonNegativeNumber(objForm[strName].value)) )
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	
	for (iii=0; iii < aFloats.length; iii++){
        var strName = aFloats[iii];
        var strMessage = aFloatMessages[iii];
        if (objForm[strName] != null)
        {
            if (!IsNumber(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	
	for (iii=0; iii < aUSDates.length; iii++){
        var strName = aUSDates[iii];
        var strMessage = aUSDateMessages[iii];
        if (objForm[strName] != null)
        {
            if (!IsDate(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	//namth USDate_NULL 
	for (iii=0; iii < aUSDates_NULL.length; iii++){
        var strName = aUSDates_NULL[iii];
        var strMessage = aUSDateMessages_NULL[iii];
        //alert(strName);
        if (objForm[strName] != null)
        {
        	if(objForm[strName].value !='')
        	{
	            if (!IsDate(objForm[strName].value))
	            {
	                if (bFirstControl) objForm[strName].focus();
	                bFirstControl = false;
	                retVal = false;
	                strMessages += strMessage + "\n\r";
	            }
        	}
        }
	}
	//end namth USDate_NULL
	for (iii=0; iii < aEUDates.length; iii++){
        var strName = aEUDates[iii];
        var strMessage = aEUDateMessages[iii];
        if (objForm[strName] != null)
        {
            if (!IsDateFR(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	
	for (iii=0; iii < aEmails.length; iii++){
        var strName = aEmails[iii];
        var strMessage = aEmailMessages[iii];
        if (objForm[strName] != null)
        {
            if (!IsEmailAddress(objForm[strName].value))
            {
                if (bFirstControl) objForm[strName].focus();
                bFirstControl = false;
                retVal = false;
                strMessages += strMessage + "\n\r";
            }
        }
	}
	
	if (strMessages != "") alert (strMessages);
	return retVal;	
}


function Trim(strval)
{
	var intLeft, intRight;	
	strvar = new String(strval);	
	if (strvar.length==1 && strvar==" ") return "";	
	
	intLeft = 0;
	while ((strvar.charAt(intLeft) == " ") && (intLeft<strvar.length)) intLeft++;	
	intRight = strvar.length-1;
	while ((strvar.charAt(intRight) == " ") && (intRight>0)) intRight--;
	
	if (intRight>=intLeft) {
		return strvar.substring(intLeft,intRight+1);
	} else {
		return "";
	}	
}
//Check number value
function IsNumber(numberVal)
{
	numberVal = Trim(numberVal);
	if (numberVal== "") return false;
	if (isNaN(numberVal))
		return false;
	return true;
}
//Check positive number
function IsPositiveNumber(numberVal)
{
	if(!IsNumber(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp <= 0) return false;
	return true;
}
//Check non-negative number
function IsNonNegativeNumber(numberVal)
{
	if(!IsNumber(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp < 0) return false;
	return true;
}
//Check Float value
function IsFloat(numberVal)
{
	var testNumber = new Number(parseFloat(numberVal));
	
	if (Trim(numberVal)!= ""){
		if (isNaN(numberVal)  || (Trim(testNumber.toString())!=Trim(numberVal)))
			return false;
			
	}
	return true
}
//Check Integer value
function IsInteger(numberVal)
{
	var testNumber = new Number(parseInt(numberVal));
	
	if (Trim(numberVal)!= ""){
		if (isNaN(numberVal)  || (Trim(testNumber.toString())!=Trim(numberVal)))
			return false;
			
	}
	return true;
}
//Check Positive Integer
function IsPositiveInteger(numberVal){
	if(!IsInteger(numberVal)) return false;
	var Temp = eval(numberVal)*1;
	if(Temp < 0) return false;
	return true;
}
//Check FileNumber, SSN format 000-00-0000 and refine to valid format
function validFN_SSN(strSSN){
	var intPos = strSSN.search('-');
	var f3digits;
	var f2digits;
	var f4digits;
	if(intPos > 0)
	{
		f3digits = strSSN.substr(0, intPos);			
		//alert(f3digits);				
		if(!IsNumber(f3digits) || (f3digits.length!=3)) {alert(f3digits); return false;}
		strTemp = strSSN.substr(intPos+1);
		intPos = strTemp.search('-');
		if(intPos<0) {return false;}
		else
		{
			f2digits = strTemp.substr(0, intPos);
			//alert(f2digits.length);
			if(!IsNumber(f2digits) || (f2digits.length!=2)) {return false;}
			f4digits = strTemp.substr(intPos+1);								
			if(!IsNumber(f4digits) || (f4digits.length!=4)) {return false;}
			return true;
		}
	}
	else
	{
		return false;
	}
}
function FormatFileNum(strFilenum)
	{			
		var intPos = strFilenum.search('-');
		var f3digits;
		var f2digits;
		var f4digits;
		if(strFilenum.length<=3 )
		{
			f3digits = Trim(strFilenum);			
			//alert(f3digits);				
			if(IsNumber(f3digits)) {
				if(f3digits.length==3) return strFilenum+'-';
					else return strFilenum;
				}
			else return strFilenum.substr(0,strFilenum.length-1);			
		}else if(strFilenum.length<=6 )
		{
			f2digits = strFilenum.substr(intPos+1);			
			if(IsNumber(f2digits)) {
				if(f2digits.length==2) return strFilenum+'-';
					else return strFilenum;
				}
			else return strFilenum.substr(0,strFilenum.length-1);			
		} else if(strFilenum.length<=11 )
		{
			strTemp = strFilenum.substr(intPos+1);			
			intPos = strTemp.search('-');
			f4digits = strTemp.substr(intPos+1);
			if(IsNumber(f4digits)) return strFilenum;								
			else return strFilenum.substr(0,strFilenum.length-1);						
		} else if(strFilenum.length>11 )return strFilenum;
	}
function doformatFileNum(obj)
	{
		obj.value = FormatFileNum(obj.value);
	}
function FormatSSN(strSSN)
	{		
		var intPos = strSSN.search('-');
		var f3digits;
		var f2digits;
		var f4digits;
		if(strSSN.length<=3 )
		{
			f3digits = Trim(strSSN);			
			//alert(f3digits);				
			if(IsNumber(f3digits)) {
				if(f3digits.length==3) return strSSN+'-';
					else return strSSN;
				}
			else return strSSN.substr(0,strSSN.length-1);			
		}else if(strSSN.length<=6 )
		{
			f2digits = strSSN.substr(intPos+1);			
			if(IsNumber(f2digits)) {
				if(f2digits.length==2) return strSSN+'-';
					else return strSSN;
				}
			else return strSSN.substr(0,strSSN.length-1);			
		} else if(strSSN.length<=11 )
		{
			strTemp = strSSN.substr(intPos+1);			
			intPos = strTemp.search('-');
			f4digits = strTemp.substr(intPos+1);
			if(IsNumber(f4digits)) return strSSN;								
			else return strSSN.substr(0,strSSN.length-1);						
		} else if(strSSN.length>11 )return strSSN.substr(0,11);
	}
	
	
	function FormatPhone(strPhone)
	{		
		var intPos = strPhone.search('-');
		var f31digits;
		var f32digits;
		var f4digits;
		if(strPhone.length<=3 )
		{
			f31digits = Trim(strPhone);			
			//alert(f31digits);				
			if(IsNumber(f31digits)) {
				if(f31digits.length==3) return '('+strPhone+')-';
					else return strPhone;
				}
			else return strPhone.substr(0,strPhone.length-1);			
		}else if(strPhone.length<=9 )
		{
			f32digits = strPhone.substr(intPos+1);			
			if(IsNumber(f32digits)) {
				if(f32digits.length==3) return strPhone+'-';
					else return strPhone;
				}
			else return strPhone.substr(0,strPhone.length-1);			
		} else if(strPhone.length<=14 )
		{
			strTemp = strPhone.substr(intPos+1);			
			intPos = strTemp.search('-');
			f4digits = strTemp.substr(intPos+1);
			if(IsNumber(f4digits)) return strPhone;								
			else return strPhone.substr(0,strPhone.length-1);						
		} else if(strPhone.length>14 )return strPhone.substr(0,14);
	}
	
	
	
	function doformatSSN(obj)
	{
		obj.value = FormatSSN(obj.value);
	}
	
	function doformatPhone(obj)
	{
		obj.value = FormatPhone(obj.value);
	}
	
	function FormatDateTime(strDateTime)
	{		
		var intPos = strDateTime.search('/');
		var lastcharacter;
		var f2month;
		var f2day;
		var f4year;
		if(strDateTime.length<=2 )
		{
			f2month = Trim(strDateTime);			
			//alert(f3digits);				
			if(IsNumber(f2month)) {
				if(f2month.length==2) return strDateTime+'/';
					else return strDateTime;
				}
			else return strDateTime.substr(0,strDateTime.length-1);				 
			
		}else if(strDateTime.length<=6 )
		{
			f2day = strDateTime.substr(intPos+1);			
			if(IsNumber(f2day)) {
				if(f2day.length==2) return strDateTime+'/';
					else return strDateTime;
				}
			else return strDateTime.substr(0,strDateTime.length-1);			
		} else if(strDateTime.length<=10 )
		{
			strTemp = strDateTime.substr(intPos+1);			
			intPos = strTemp.search('/');
			f4year = strTemp.substr(intPos+1);
			if(IsNumber(f4year)) return strDateTime;								
			else return strDateTime.substr(0,strDateTime.length-1);						
		} else if(strDateTime.length>10 )return strDateTime.substr(0,10);
	}
	
	
	
	function FormatHourse(strHourse)
	{		
		var intPos = strHourse.search(':');
		var lastcharacter;
		var f2month;
		var f2day;
		var f4year;
		if(strHourse.length<=2 )
		{
			f2month = Trim(strHourse);			
			if(IsNumber(f2month)) {
				if(f2month.length==2) return strHourse+':';
					else return strHourse;
				}
			else return strHourse.substr(0,strHourse.length-1);				 
			
		}else if(strHourse.length<=6 )
		{
			f2day = strHourse.substr(intPos+1);			
			if(IsNumber(f2day)) {
				if(f2day.length==2) return strHourse+':';
					else return strHourse;
				}
			else return strHourse.substr(0,strHourse.length-1);			
		} else if(strHourse.length<=8 )
		{
			strTemp = strHourse.substr(intPos+1);			
			intPos = strTemp.search(':');
			f4year = strTemp.substr(intPos+1);
			if(IsNumber(f4year)) return strHourse;								
			else return strHourse.substr(0,strHourse.length-1);						
		} else if(strHourse.length>8 )return strHourse.substr(0,8);
	}
	
	function doformatHourse(obj)
	{
		obj.value = FormatHourse(obj.value);
	}

	function doformatDateTime(obj)
	{
		obj.value = FormatDateTime(obj.value);
	}
//end inserted by namth	
					//Check date value with format MM/yyyy and refine to valid format
function validDate(strDate){
	var intPos = strDate.search('/');
	var strMonth;
	if(intPos > 0)
	{
		strMonth = strDate.substr(0, intPos);
		if(!IsNumber(strMonth)) return false;
		if(eval(strMonth) <= 0 || eval(strMonth) > 12)
		{
			return false;
		}
		
		strYear = strDate.substr(intPos + 1);
		if(!IsNumber(strYear)) return false;
		if(eval(strYear) < 1800 || eval(strYear) > 2200)
		{
			return false;
		}
	}
	return true;
}
//Check date value with format input
function IsDateFormat(strDate,strFormat)
{
	if (strFormat=="mm/dd/yyyy")
	{
		return IsDate(strDate);
	}
	else
	{
		return IsDateFR(strDate);
	}
}
//Check date value with format dd/MM/yyyy and refine to valid format
function IsDateFR(strDate)
{
	if ((strDate.length>10)||(strDate.length<8)) return false;
	intDash = strDate.search("/");
	if (intDash == -1) return false;
	else
	{
		strTemp = strDate.substr(0,intDash);
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1);
		if (IsNumber(strTemp)==false) return false;
		else
		{	
			intDay = parseInt(strTemp);
		}	
		strDate = strDate.substr(intDash+1);
	}
	intDash = strDate.search("/");
	if (intDash == -1) return false;
	else
	{
		strTemp = strDate.substr(0,intDash);
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1);
		if (IsNumber(strTemp)==false) return false;
		else
		{
			intMonth = parseInt(strTemp);
			//Kiem tra thang nhap vao
			if ((intMonth<1)||(intMonth>12))	return false;
			intDayN = 30;
			if ((intMonth<8)&&(intMonth % 2 == 1)) intDayN = 31;
			if ((intMonth>7)&&(intMonth % 2 == 0)) intDayN = 31;
			//Kiem tra ngay nhap vao
			if ((intDay<1)||(intDay>intDayN)) return false;
		}	
		strDate = strDate.substr(intDash+1);
	}	
	if (IsNumber(strDate)==false) return false;
	else
	{	
		intYear = parseInt(strDate);
		if ((intYear<1800)||(intYear>2200)) return false;
	}	
	if (intMonth==2)
	{
		if (intYear % 4 == 0) intDayN = 29;
		else intDayN = 28;
		if (intDay > intDayN) return false;
	}
	strTemp = "";
	if (intDay<10) strTemp = strTemp + "0" + intDay + "/";
	else strTemp = strTemp + intDay + "/";
	if (intMonth<10) strTemp = strTemp + "0" + intMonth + "/";
	else strTemp = strTemp + intMonth + "/";	
	strTemp = strTemp + intYear;
	strDate = strTemp;
	return true;
}
//Check date value with format MM/dd/yyyy and refine to valid format
function IsDate(strDate)
{
	if ((strDate.length>10)||(strDate.length<8)) return false
	intDash = strDate.search("/")
	if (intDash == -1) return false
	else
	{
		strTemp = strDate.substr(0,intDash)
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1)
		if (IsNumber(strTemp)==false) return false
		else
		{	
			intMonth = parseInt(strTemp)
			if ((intMonth<1)||(intMonth>12))	return false
			intDayN = 30
			if ((intMonth<8)&&(intMonth % 2 == 1)) intDayN = 31
			if ((intMonth>7)&&(intMonth % 2 == 0)) intDayN = 31
		}	
		strDate = strDate.substr(intDash+1)
	}
	intDash = strDate.search("/")
	if (intDash == -1) return false
	else
	{
		strTemp = strDate.substr(0,intDash)
		if ((strTemp.charAt(0) == "0")&&(strTemp.length>1)) strTemp = strTemp.substr(1)
		if (IsNumber(strTemp)==false) return false
		else
		{
			intDay = parseInt(strTemp)
			if ((intDay<1)||(intDay>intDayN)) return false	
		}	
		strDate = strDate.substr(intDash+1)
	}	
	if (IsNumber(strDate)==false) return false
	else
	{	
		intYear = parseInt(strDate)
		if ((intYear<1800)||(intYear>2200)) return false		
	}	
	if (intMonth==2)
	{
		if (intYear % 4 == 0) intDayN = 29
		else intDayN = 28
		if (intDay > intDayN) return false
	}
	strTemp = ""
	if (intMonth<10) strTemp = strTemp + "0" + intMonth + "/"
	else strTemp = strTemp + intMonth + "/"
	if (intDay<10) strTemp = strTemp + "0" + intDay + "/"
	else strTemp = strTemp + intDay + "/"
	strTemp = strTemp + intYear
	strDate = strTemp
	return true
}
//Compare 2 date 
function Compare(ct1,ct2,dtformat)//true ct1.value>=ct2.value else false
{
	if ((ct1=="")||(ct2==""))
	{
		return true;
	}
	else
	{
		var date1
		var date2
		var month1
		var month2
		var year1
		var year2
		tempdtFormat=dtformat;
		
		formatChar = " "
		aFormat	= tempdtFormat.split(formatChar)
		if (aFormat.length<3)
		{
			formatChar = "/"
			aFormat	= tempdtFormat.split(formatChar)				
		}

	
		aData1 =	ct1.split(formatChar)
		aData2 = 	ct2.split(formatChar)
		for	(i=0;i<3;i++)
		{
			if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
			{
				date1 = parseInt(aData1[i], 10)
				date2 = parseInt(aData2[i], 10)
			}
			else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
			{
				month1 =	parseInt(aData1[i], 10) - 1
				month2 =	parseInt(aData2[i], 10) - 1							
			}
			else if	(aFormat[i]=="yyyy")
			{
				year1 = parseInt(aData1[i], 10)
				year2 = parseInt(aData2[i], 10)							
			}						
		}
		if (year2>year1)			
		{
			return false;
		}
		else
		{
			if (year2==year1)
			{
				if(month2 > month1)
				{
					return false;
				}
				else
				{
					if (month2==month1)
					{
						if (date2 > date1)
						{
							return false;
						}
						else
						{
							return true;
						}
					}
					else
					{
						return true;
					}
				}
			}
			else
			{
				return true;
			}
		}
	}
}
//Compare two Date
function CompareDate(strDate1, strDate2)
{
var day1, day2, month1, month2, year1, year2;
if (IsDate(strDate1)==false) return false
if (IsDate(strDate2)==false) return false

	intDash1 = strDate1.search("/")
	if (intDash1 == -1) return false
	else
	{
		strTemp1 = strDate1.substr(0,intDash1)
		month1 = strTemp1;
		strDate1 = strDate1.substr(intDash1+1)
	}
	intDash1 = strDate1.search("/")
	if (intDash1 == -1) return false
	else
	{
		strTemp1 = strDate1.substr(0,intDash1)		
		day1 = strTemp1;				
		strDate1 = strDate1.substr(intDash1+1)
	}	
	
	if (IsNumber(strDate1)==false) return false
	else
	{	
		intYear1 = parseInt(strDate1)
		if ((intYear1<1800)||(intYear1>2200)) return false		
		year1 = intYear1;
	}	
	intDash2 = strDate2.search("/")
	if (intDash2 == -1) return false
	else
	{
		strTemp2 = strDate2.substr(0,intDash2)
		month2 = strTemp2;
		strDate2 = strDate2.substr(intDash2+1)
	}
	intDash2 = strDate2.search("/")
	
	if (intDash2 == -1) return false
	else
	{
		strTemp2 = strDate2.substr(0,intDash2)		
		day2 = strTemp2;				
		strDate2 = strDate2.substr(intDash2+1)
	}	
	
	if (IsNumber(strDate2)==false) return false
	else
	{	
		intYear2 = parseInt(strDate2)
		if ((intYear2<1800)||(intYear2>2200)) return false		
		year2 = intYear;
	}	
	
	if (year2<year1) return false;
	
	if (year2==year1)
		{
		if (month2<month1) return false;
		
		if (month2==month1)
			{
			if (day2<day1) return false;	
			}
		}
	
	return true
}
//Check empty string
function IsEmpty(stringVal)
{
	stringVal = Trim(stringVal);
	if(stringVal.length==0)
		return true;
	else
		return false;
}

//Check e-mail address
function IsEmailAddress (strEmail)
{                                       
	var v = Trim(strEmail);
	if (v.length==0) return true;
	var at_i = v.indexOf("@");          
	if (at_i > 0) {                     
	  var dot_i = v.indexOf(".", at_i);   
	  if ((dot_i == -1) || (dot_i==at_i+1))
	    return false;               
	}
	else
	  return false;                   

	return true;
}                                       

function IsNumeric(type,sText)
{
	if (type==1){
	   var ValidChars = "0123456789";
	}
	if (type==2){
	   var ValidChars = "0123456789.";
	}
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
	  { 
	  Char = sText.charAt(i); 
	  if (ValidChars.indexOf(Char) == -1) 
		 {
		 IsNumber = false;
		 }
	  }
   return IsNumber;
   }

// format a value as currency. 
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
	   num = "0";
	   
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
		
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

// format a value as number. 
function formatNumber(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num))
	   num = "0";
	   
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	
	if(cents<10)
		cents = "0" + cents;
		
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
		
	return (((sign)?'':'-') + num + '.' + cents);
}

<!-- Function Description:  Validates Non Currencys fields. --> 
function validateDollar( fld ) 
{ 	
   var temp_value = fld.value; 
   	
   if (temp_value == "") 
   { 
     fld.value = "$0.00"; 
     return; 
   } 
   var Chars = "0123456789.,$-"; 
   for (var i = 0; i < temp_value.length; i++) 
   { 
       if (Chars.indexOf(temp_value.charAt(i)) == -1) 
       {                     
           return false; 
       } 
   } 
   return true;
} 

function URLDecode(encoded)
	{
	   // Replace + with ' '
	   // Replace %xx with equivalent character
	   // Put [ERROR] in output if %xx is invalid.
	   var HEXCHARS = "0123456789ABCDEFabcdef"; 
	   var plaintext = "";
	   var i = 0;
	   while (i < encoded.length) {
		   var ch = encoded.charAt(i);
		   if (ch == "+") {
			   plaintext += " ";
			   i++;
		   } else if (ch == "%") {
				if (i < (encoded.length-2) 
						&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
						&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
					plaintext += unescape( encoded.substr(i,3) );
					i += 3;
				} else {
					alert( 'Bad escape combination near ...' + encoded.substr(i) );
					plaintext += "%[ERROR]";
					i++;
				}
			} else {
			   plaintext += ch;
			   i++;
			}
		} // while
	   
	   return plaintext;
	};
	
	function URLEncode( plaintext)
	{
		// The Javascript escape and unescape functions do not correspond
		// with what browsers actually do...
		var SAFECHARS = "0123456789" +					// Numeric
						"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
						"abcdefghijklmnopqrstuvwxyz" +
						"-_.!~*'()";					// RFC2396 Mark characters
		var HEX = "0123456789ABCDEF";
	

		var encoded = "";
		for (var i = 0; i < plaintext.length; i++ ) {
			var ch = plaintext.charAt(i);
			if (ch == " ") {
				encoded += "+";				// x-www-urlencoded, rather than %20
			} else if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch;
			} else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert( "Unicode Character '" 
							+ ch 
							+ "' cannot be encoded using standard URL encoding.\n" +
							  "(URL encoding only supports 8-bit characters.)\n" +
							  "A space (+) will be substituted." );
					encoded += "+";
				} else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		} // for
	
		
		return encoded;
	};	
// JavaScript Document
function remoteSlash(txt){
	while(txt.indexOf('_')>-1){
		txt=txt.replace('_',''); 
		}
	return txt;	
	}
function getPhoneDigits(txt){
	txt=remoteSlash(Trim(txt));
	txt=txt.replace(' ','').replace(' ','').replace(' ','').replace('-','');
	txt=txt.replace('(','' ).replace(')','');
	return txt;
	}
function getSSNDigits(txt){
	txt=remoteSlash(Trim(txt));
	txt=txt.replace('-','').replace('-',''); 
	return txt;
	}	
function checkdateformat(userinput){ 
			var dateformat = /^\d{1,2}(\/)\d{1,2}\1\d{4}$/ 
			if(dateformat.test(userinput))
				return IsDate(userinput);
			return false;	
	 }
function checkStateFormat(userinput){
			var  format = /^[A-Za-z]{2}$/ 
			return format.test(userinput);
	 }	 
function checkAlphaFormat(userinput){
			var  format = /^[A-Za-z]*$/ 
			return format.test(userinput);
	 }		
function checkAlphaAndNumberFormat(userinput){
			var  format = /^[A-Za-z0-9]*$/ 
			return format.test(userinput);
	 }	

	 
function checkUsernameFormat(userinput)
{
	return checkPasswordFormat(userinput)
}
	 
	 
function checkPasswordFormat(userinput)
{
	if(userinput.length<6)
		return false;
	
	if (stripCharsInBag(userinput, "'<> \"") != userinput)
		return false;
		
	return true;
}
function checkSpecialCharacter(userinput){ 
			var  format =",.'\"";
			  var count=userinput.length;
				for (var i = 0; i < count; i++)   
					if (format.indexOf(userinput.charAt(i)) != -1) 
						return false

			return true;
  }
  function reduceWhitespace(userinput){  //reduces extra whitespaces to just one whitespace
		var a = userinput.length;
		var i = 0;
			while (i < a)
			{				
				userinput = userinput.replace("  ", " ");				
				i++;
			}
		return userinput;
  }		 
  function checkMedicareFormat(userinput){
		  if(userinput.length>11)
			return false;
			var boolFormat1=false; 
			var  format1 = /^[A-Za-z][A-Za-z0-9]{2}[0-9]{4,8}$/ 
			if(format1.test(userinput)){ 
				var t=userinput.replace(/[A-Za-z]*/,'');
				if(t.length==9 || t.length==6)
					boolFormat1=true;
				}
			var format2=/^[0-9]{9}[A-Za-z][A-Za-z 0-9]{0,1}$/ 
			return boolFormat1|| format2.test(userinput);
	 }	 
function checkNameFormat(userinput){
			if(!userinput)
				return false;
			var count=0;
			var count1=0;
			for(var i=0;i<userinput.length;i++){
				if(userinput[i]=="'")
					count++;
				if(userinput[i]=="-")
					count1++;	
			}
			if(count>1||count1>1) 
				return false;
			var  format = /^[A-Za-z0-9- ']*$/ 
			return format.test(userinput);
	 }
	 
	 
	 
function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

 
