

'TODO : when a control gets the focus, the cursor should stay where clicked
' when a control gets focus, display the format in some div. e.g. date=mmddyyyy, zip=1111111
sub ValidateDOB(frm,strDobObjName,strAgeObjName,strNextObjName)
dim strTemp
dim strTemp1
	strTemp1 = document.forms(frm).elements(strDobObjName).value 
			
			if strTemp1<>"" then
				dim strErrMsg
				dim intSpacePos
				intSpacePos = instr(strTemp1, " ")  ' Position of Space
				
				if intSpacePos =0 then intSpacePos = len(strTemp1) ' if its 0, assign it the length of the string
				
				if(not isdate(left(strTemp1, intSpacePos))) then
					strErrMsg = "Invalid Date1"
				end if
				
				if len(strTemp1) > 10 then
			
					strTemp1 = mid(strTemp1, intSpacePos, len(strTemp1))  ' get the time from the date
					
					if not isdate("12/12/2004 " & strTemp1) then
					    
						if strErrMsg="" then 
							strErrMsg = "Invalid Time"
						else
							strErrMsg = "Invalid Date and Time"
						end if
					end if
				end if	
				
				if strErrMsg <>"" then 
					alert(strErrMsg)
					document.forms(frm).elements(strDobObjName).select()
					document.forms(frm).elements(strDobObjName).focus()
					document.forms(frm).elements(strAgeObjName).value = ""
				else
					
					if ((CDbl(Year(Date())) - CDBL(Year(CDate(document.forms(frm).elements(strDobObjName).value)))) < 0) then
						alert("DOB cannot be greater than current date")
						document.forms(frm).elements(strAgeObjName).value = ""
						document.forms(frm).elements(strDobObjName).select()
						document.forms(frm).elements(strDobObjName).focus()
					else
						document.forms(frm).elements(strAgeObjName).value = (CDbl(Year(Date())) - CDBL(Year(CDate(document.forms(frm).elements(strDobObjName).value))))
						document.forms(frm).elements(strNextObjName).focus()	
					end if	
					
				end if	
					
				else
					document.forms(frm).elements(strAgeObjName).value = ""
					document.forms(frm).elements(strNextObjName).focus()
			end if

end sub	



sub validate(frm, str, strObjName)
	dim strTemp
	dim strTemp1
	
	select case ucase(str)
		case "AMOUNT"
			strTemp = document.forms(frm).elements(strObjName).value 
			if strTemp<>"" then
				if not isnumeric(strTemp) then
					alert("Invalid Number")
					document.forms(frm).elements(strObjName).focus()
					
				else
					strTemp = FormatNumber(strTemp,2)
					document.forms(frm).elements(strObjName).value = strTemp
				end if
			end if
			
		case "ZIP"
			strTemp = document.forms(frm).elements(strObjName).value 
			if len(strTemp)<>5 AND len(strTemp)<>0 then
				
				if right(strTemp,1) = "-" AND len(strTemp)=6 then
					strTemp = left(strTemp,5)		
					document.forms(frm).elements(strObjName).value = left(document.forms(frm).elements(strObjName).value,5)
				else
					
					if instr(strTemp, "-")=0 then
						if len(strTemp)=9 then
							strTemp=left(strTemp,5) & "-" & right(strTemp,4)
							document.forms(frm).elements(strObjName).value = strTemp 
						else
							alert("Invalid ZIP")
							document.forms(frm).elements(strObjName).focus()	
						end if
					else
						if instr(strTemp, "-")<>6 OR len(strTemp)<>10 then
							alert("Invalid ZIP")	
							document.forms(frm).elements(strObjName).focus()
						end if
					end if
				end if
			
			elseif len(strTemp)=5 then
				if instr(strTemp, "-")<>0 then
					alert("Invalid ZIP")	
					document.forms(frm).elements(strObjName).focus()
				end if
			end if
			
			
			
			
		case "PHONE"
			
			strTemp1 = document.forms(frm).elements(strObjName).value
			stripChars frm, "phone" ,strObjName
			'stripChars("phone")
			strTemp = document.forms(frm).elements(strObjName).value 
			if len(strTemp)=10 then
				strTemp = "(" & left(strTemp, 3) & ")" & mid(strTemp,4,3) & "-" & mid(strTemp,7,4)
				document.forms(frm).elements(strObjName).value = strTemp 
			elseif len(strTemp)=7 then
				strTemp = mid(strTemp,1,3) & "-" & mid(strTemp,4,4)
				document.forms(frm).elements(strObjName).value = strTemp 
			elseif len(strTemp)<>0 then
				document.forms(frm).elements(strObjName).value = strTemp1  
				alert("Invalid Phone Number")
				document.forms(frm).elements(strObjName).focus()
			end if	
			
			
		case "SSN"
			
			strTemp1 = document.forms(frm).elements(strObjName).value 
			stripChars frm, "ssn" , strObjName
			'stripChars("ssn")
			strTemp = document.forms(frm).elements(strObjName).value 
			if len(strTemp)<>11  AND len(strTemp)<>0  then
				if len(strTemp)=9 then
					strTemp = left(strTemp,3) & "-" & mid(strTemp,4,2) & "-" & right(strTemp,4)
					document.forms(frm).elements(strObjName).value = strTemp 
				else
					document.forms(frm).elements(strObjName).value = strTemp1  
					alert("invalid SSN")
					document.forms(frm).elements(strObjName).focus()
				end if
			else
				if len(strTemp)<>0 then
					if mid(strTemp,4,1) <>"-" OR mid(strTemp,7,1)<>"-" then
						document.forms(frm).elements(strObjName).value = strTemp1  
						alert("invalid SSN")
						document.forms(frm).elements(strObjName).focus()
					end if
				end if
			end if
			
		case "DATE"
			strTemp1 = document.forms(frm).elements(strObjName).value 
			
			if strTemp1<>"" then
				dim strErrMsg
				dim intSpacePos
				intSpacePos = instr(strTemp1, " ")  ' Position of Space
				
				if intSpacePos =0 then intSpacePos = len(strTemp1) ' if its 0, assign it the length of the string
				
				if(not isdate(left(strTemp1, intSpacePos))) then
					strErrMsg = "Invalid Date"
					document.forms(frm).elements(strObjName).value=""
					//document.forms(frm).elements(strObjName).select()
					document.forms(frm).elements(strObjName).focus()
				end if
				
				if len(strTemp1) < 10 then
					strErrMsg = "Invalid Date"
					document.forms(frm).elements(strObjName).value=""
					//document.forms(frm).elements(strObjName).select()
					document.forms(frm).elements(strObjName).focus()
				end if
				
				if( isdate(left(strTemp1, intSpacePos))) then
					if year(left(strTemp1, intSpacePos))<1900 OR year(left(strTemp1, intSpacePos))>2099 then
						strErrMsg = "Invalid Date"
						document.forms(frm).elements(strObjName).value=""
					//document.forms(frm).elements(strObjName).select()
					document.forms(frm).elements(strObjName).focus()
					end if
				end if
				if len(strTemp1) > 10 then
			
					strTemp1 = mid(strTemp1, intSpacePos, len(strTemp1))  ' get the time from the date
					if not isdate("12/12/2004 " & strTemp1) then
					    
						if strErrMsg="" then 
							strErrMsg = "Invalid Time"
						else
							strErrMsg = "Invalid Date and Time"
						end if
					end if
				end if	
				
				if strErrMsg <>"" then 
					alert(strErrMsg)
					document.forms(frm).elements(strObjName).select()
					document.forms(frm).elements(strObjName).focus()
				end if			
			end if		
							
	end select

end sub


sub onKeyPressFloat(frm, strObjName)
	if(window.event.keyCode = 46) then' 46=decimal
			' this code makes sure the decimal is not entered twice
			dim temp
			temp = document.forms(frm).elements(strObjName).value
			if (instr(temp,".")<>0) then
				window.event.keyCode =0
			end if
				
	elseif (window.event.keyCode<48 OR window.event.keyCode>57) then' if the the entered value is not numeric, discard it
		window.event.keyCode=0
	end if
end sub	

sub onFocusFloat(frm, strObjName)
	dim temp
	temp = document.forms(frm).elements(strObjName).value
	if temp<>"" then temp = formatnumber(temp,2,,,false)			
	document.forms(frm).elements(strObjName).value = temp
end sub	


function onKeyPressZip(frm, strObjName)
	dim temp
	temp = document.forms(frm).elements(strObjName).value
	' - => keycode 45
	if(window.event.keyCode = 45) then
			' this code makes sure the - is not entered twice
			'if len(temp)<>5  then
				if (instr(temp,"-")<>0) then
					window.event.keyCode =0
				end if
	elseif (window.event.keyCode<48 OR window.event.keyCode>57) then' if the the entered value is not numeric, discard it
		window.event.keyCode=0
	else
		if len(temp)=5 then 
			if (instr(temp,"-")=0) then ' If - is not there already, put it
				document.forms(frm).elements(strObjName).value = temp + "-"
			else
				'stripChars("zip")
				stripChars frm, "zip" ,strObjName
				'document.frm.elements(strObjName).value = temp + "-"
			end if
		end if
	end if
end function	


function onKeyPressPhone(frm, strObjName)
	
	dim intKeyCode 
	intKeyCode =  window.event.keyCode
	
	dim temp
	temp = document.forms(frm).elements(strObjName).value
	
	' ( => keycode 40
	' ) => keycode 41
	' - => keycode 45
	select case intKeyCode
		case 40 ' (
			if len(temp)<>0 then
				intKeyCode = 0
			end if		
		case 41 ' )
			if len(temp)<>4 then
				if instr(temp, ")")<>0 then
					intKeyCode = 0
				end if
			end if	
		
		case 45 ' -
			if len(temp)<>8 then
				if instr(temp, "-")<>0 then
					intKeyCode = 0
				end if
			end if	
		case else
				if (intKeyCode<48 OR intKeyCode>57) then ' if the the entered value is not numeric, discard it
					intKeyCode = 0
		
				else
					
					select case len(temp)
						case 0 ' Prefix ( with the phone number
							temp = "(" & temp
							document.forms(frm).elements(strObjName).value = temp
						case 1
							if instr(temp,"(")=0 then
								temp = "(" & temp
								document.forms(frm).elements(strObjName).value = temp
							end if
						case 4 
							if instr(temp,")")=0 then
								temp = temp	& ")"
								document.forms(frm).elements(strObjName).value = temp
							end if
						case 8
							if instr(temp,"-")=0 then
								temp = temp	& "-"
								document.forms(frm).elements(strObjName).value = temp
							end if
					end select
				
				end if 
			
			
	end select
	
	
	window.event.keyCode = intKeyCode
	
end function	

function OnKeyUpPhone(frm, strObjName)
	dim temp
	if window.event.keyCode<>8 then ' BACKSPACE = 8
		temp = document.forms(frm).elements(strObjName).value
		select case len(temp)
			case 4
				if instr(temp,")")=0 then
					temp = temp & ")"	
					document.forms(frm).elements(strObjName).value = temp 
				end if
				
			case 8
				if instr(temp,"-")<>0 then
					temp = temp & "-"	
					document.forms(frm).elements(strObjName).value = temp 
				end if
				
		end select
	end if
end function

function onKeyPressSSN(frm, strObjName)
	dim temp
	temp = document.forms(frm).elements(strObjName).value
	
	' - => keycode 45
	if(window.event.keyCode = 45) then 
			' this code makes sure the - is not entered twice
			if len(temp)<>3  AND len(temp)<>6 then
				window.event.keyCode =0
			else	
				if (instr(temp,"-")<>0)  then
					window.event.keyCode =0
				end if
			end if	
	elseif (window.event.keyCode<48 OR window.event.keyCode>57) then' if the the entered value is not numeric, discard it
		window.event.keyCode=0
	else
		if len(temp)=3 then
			if (instr(temp,"-") = 0)  then
				document.forms(frm).elements(strObjName).value = temp + "-"
			end if
		elseif len(temp)=6 then
			if charcount(temp,"-")=1 then
				temp = temp + "-"
				document.forms(frm).elements(strObjName).value = temp
			end if
		end if
	end if
end function	

function OnKeyUpSSN(frm, strObjName)
	dim temp
	if window.event.keyCode<>8 then ' BACKSPACE = 8
		
		temp = document.forms(frm).elements(strObjName).value
		if len(temp)=3 then
			if (instr(temp,"-")=0)  then
				temp = temp + "-"
				document.forms(frm).elements(strObjName).value = temp
			end if
		elseif len(temp)=6 then 
			if charcount(temp,"-")=1 then
				temp = temp + "-"
				document.forms(frm).elements(strObjName).value = temp
			end if
		
		end if
		
	end if
end function

sub stripChars(frm, str, strObjName)
	dim strTemp

	select case str

		case "phone" 
		
			strTemp = document.forms(frm).elements(strObjName).value
			strTemp=replace(strTemp, "(", "")
			strTemp=replace(strTemp, ")","")
			strTemp=replace(strTemp, " ","")
			strTemp=replace(strTemp, "-","")
			document.forms(frm).elements(strObjName).value = strTemp
			
		case "ssn"
			strTemp = document.forms(frm).elements(strObjName).value
			strTemp=replace(strTemp, " ","")
			strTemp=replace(strTemp, "-","")
			document.forms(frm).elements(strObjName).value = strTemp
		
		case "zip"
			strTemp = document.forms(frm).elements(strObjName).value
			strTemp=replace(strTemp, "-","")
			document.forms(frm).elements(strObjName).value = strTemp
			
		case "amount"
			strTemp = document.forms(frm).elements(strObjName).value
			strTemp=replace(strTemp, ",","")
			document.forms(frm).elements(strObjName).value = strTemp
	end select

end sub

function charcount(strRequest, char)
   dim tmp
   tmp = Split(Trim(strRequest), char)
   charcount = UBOUND(tmp)
 end function

function onKeyPressDate(frm, strObjName)
	
	dim intKeyCode 
	intKeyCode =  window.event.keyCode
	
	dim temp
	temp = document.forms(frm).elements(strObjName).value
	
	' / => keycode 47
	' : => keycode 58
	' space => keycode 32
	
	select case intKeyCode
		case 47 ' /
		
			if charcount(temp, "/") >1 then
				intKeyCode=0
			end if
		case else
				if (intKeyCode<48 OR intKeyCode>57) then ' if the the entered value is not numeric, discard it
					intKeyCode = 0
		
				else
					
				end if 
	end select
	
			window.event.keyCode = intKeyCode
	
			dim strKey
			strKey = chr(intKeyCode)
			dim txtMonth
			set txtMonth = document.forms(frm).elements(strObjName)
			
			dim tmpMonth 
			tmpMonth = ""
			tmpMonth = txtMonth.value 'document.frm.elements(strObjName).value
			
			select case len(tmpMonth)
			
			case 0
			
			'if the key pressed is greater than 2, that means it should be the second character
			' as the first character can not be greater than 1
			
					if tmpMonth = "1" then
							if (intKeyCode > 50) then ' 50 = two
								txtMonth.value = "0" + strKey
							end if
					else
						if (intKeyCode = 48) then ' 48 = zero
							if (tmpMonth = "0") then ' if the first character is already 0, dont allow the second 0
								txtMonth.value = "0"
								intKeyCode = 0
								window.event.keyCode = intKeyCode
							end if
						elseif ((intKeyCode <> 49) AND (intKeyCode <> 48)) then '49 = one
								txtMonth.value = "0" '& strKey
						end if	
					end if
				
				case 1
					if tmpMonth = "1" then
						if intKeyCode>50 then '50=two
							txtMonth.value = "0"
						end if
					end if
				
			end select
	
	
	
	
end function	

function onKeyUpDate(frm, strObjName)
	dim temp
	
	if window.event.keyCode<>8 then ' BACKSPACE = 8
		
		temp = document.forms(frm).elements(strObjName).value
		
		select case len(temp)
			case 1  ' put 0 before the month if the only digit in the textbox >1, 
					'becuase the first digit in a month can not be greater than 1
				if temp="/" then 
					document.forms(frm).elements(strObjName).value = ""
				else
					if temp >1 then
						temp = "0" & temp 
						document.forms(frm).elements(strObjName).value = temp
					end if
				end if
				
				
			case 2  ' put the slash after the month
				if (instr(temp,"/")=0)  then
					temp = temp + "/"
					document.forms(frm).elements(strObjName).value = temp
				end if
			case 5    ' put the slash after the day
				if charcount(temp,"/")=1 then
					temp = temp + "/"
					document.forms(frm).elements(strObjName).value = temp
				end if
		
			case 10 '8    ' put space after the date
				temp = temp + " "
				document.forms(frm).elements(strObjName).value = temp
				
			case 13 '11    ' put : after the HRS
				temp = temp + ":"
				document.forms(frm).elements(strObjName).value = temp
		end select
		
	end if
end function


