//-------------------------------------------------------------------------------
// DetermineBrowserType (replaced VerifyBrowserType to remove from Logonxxx.ASPX)
//-------------------------------------------------------------------------------
function DetermineBrowserType()
{
	// convert all characters to lowercase to simplify testing
	var agt=navigator.userAgent.toLowerCase();
	// *** BROWSER VERSION ***
	var is_major = parseInt(navigator.appVersion);
	var is_minor = parseFloat(navigator.appVersion);
	var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
				&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
				&& (agt.indexOf('webtv')==-1));
	var is_nav35up  = (is_nav && (is_major >= 4 || (is_major=3 && is_minor >=5)));
	var is_ie   = (agt.indexOf("msie") != -1);
	var is_ie4up  = (is_ie  && (is_major >= 4));
	// if a Macintosh, force browser type to 2
	var is_mac = navigator.platform;
	var pos=is_mac.indexOf("Mac");
	if (pos>=0)
	{
		//alert(is_mac);
		var is_nav35up =false;
	}
	//Check for IE 4.0 and up
	if (is_ie4up)
	{
		//alert("BrowserType is -1");		
		//alert(is_ie4up);
 		document.frmLogon.hdnBrowserType.value = "-1";
	}
	else
	{
		//Check for Netscape 3.5 and up
		if (is_nav35up) 
		{
			//alert("BrowserType is 0");		
			//alert(is_nav35up);
			document.frmLogon.hdnBrowserType.value = "0";
		}
		else
		{
			//Some other HTML 3.2 and Java Script 1.0 browser
			//alert("BrowserType is 2");		
			document.frmLogon.hdnBrowserType.value = "2";
		}
	}
}

//----------------------------------------------------------------------
//accepts_Cookies
//----------------------------------------------------------------------
function accepts_Cookies()
{
	// This function tests whether the user accepts cookies.
	var answer;
	var cookieinfo;
	// Try to set a cookie.
	document.cookie = 'AFTECH_Test_Cookie=yes';
	// If it fails, return false; if it succeeds, return true.
	cookieinfo = getCookieData("AFTECH_Test_Cookie")
	if(cookieinfo == '') answer = false; else answer = true;
	// Expire the cookie.
	document.cookie = 'AFTECH_Test_Cookie=yes; expires=Fri, 13-Apr-1970 00:00:00 GMT';
	// Expire @net cookies
	document.cookie = 'g_PreviousASP=; expires=Fri, 13-Apr-1970 00:00:00 GMT';
	document.cookie = 'g_currState=; expires=Fri, 3-Apr-1970 00:00:00 GMT';
	return answer;
}
					
//----------------------------------------------------------------------
// getCookieData
//----------------------------------------------------------------------
function getCookieData(label)
{
	var labelLen = label.length;
	var cLen = document.cookie.length;
	var i = 0;
	var cEnd;
	while (i < cLen)
	{	
		var j = i + labelLen;
		if (document.cookie.substring(i,j) == label) 
		{
			cEnd = document.cookie.indexOf(";",j);
			if (cEnd == -1)
			{
				cEnd = document.cookie.length;
			}
			return unescape(document.cookie.substring(j,cEnd));
		}
		i++;
	}
	return "";
}
			

//----------------------------------------------------------------------
// validate_logon
//----------------------------------------------------------------------
function validate_logon()
{
	if (bClicked == false)
	{
		// Reset flag to prevent double-clicks
		bClicked = true;
		var sUserMsg;
		var bValid = true;
		
		// check if this is not a normal logon
		// Code not necessary for non-member logon.
		//var logontype=document.getElementsByName("hdnLogonType")
		//if (logontype.length != 0)
		//{
		// sUserMsg = "This type of Logon is under development for a future release.";
		// bValid = false;
		//	}
		
		// Check for Member Number present	
		if (document.frmLogon.txtAccountNumber)
		{	
			if ((bValid==true) && (document.frmLogon.txtAccountNumber.value == ""))
			{
				sUserMsg = "Your Account Number is required to continue.";
				bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				// jaw 03/30/04 x12005 sb txtAccountNumber not txtMemberNumber
				document.frmLogon.txtAccountNumber.focus();
			}
			// 12/11/06 FAW check if there are (at least preceeding) digits
			strANExp = /^\d/
			var anre = new RegExp(strANExp);
			var strANMatch = anre.exec(document.frmLogon.txtAccountNumber.value);
			//JDW W14349 - P335 Issue Non-Member Loans causing Object Error
			if (strANMatch == null && document.frmLogon.txtAccountNumber.value != 'NonMember') 
				{
				sUserMsg = "Your Account Number is required to continue.";
				bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				document.frmLogon.txtAccountNumber.focus();
				}
		}
		
		// Check for PIN present
		if (document.frmLogon.txtPIN)
		{
			if ((bValid == true) && (document.frmLogon.txtPIN.value == ""))
			{
				sUserMsg = "A valid PIN is required to continue.";
				bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				document.frmLogon.txtPIN.focus();
			}
		}
		
		// Check for PIN length = 4
		if (document.frmLogon.txtPIN)
		{
			if ((bValid == true) && (document.frmLogon.txtPIN.value != ""))
			{
				var sPin = document.frmLogon.txtPIN.value;
				if (sPin.length != 4)
				{
					sUserMsg = "You must enter a valid PIN of four digits. Please try again.";
					bValid = false;
					// jaw 01/21/04 x111533 integrate logon enhancement
					document.frmLogon.txtPIN.focus();
				}
			}
		}	

		// Check for 4 digits.
		if (document.frmLogon.txtPIN)
		{
			if ((bValid == true) && (document.frmLogon.txtPIN.value != ""))
			{
				strExp = /^[0-9]{4}$/
				var re = new RegExp(strExp);
				var strMatch = re.exec(document.frmLogon.txtPIN.value);
				// faw 04/25/07 specifically disallow four zeroes
				if ((strMatch == null)||(document.frmLogon.txtPIN.value == "0000"))
				  {
					sUserMsg = "You must enter a valid PIN of four digits.  Please try again.";
					bValid = false;
					// jaw 01/21/04 x111533 integrate logon enhancement
					document.frmLogon.txtPIN.focus();
				  }
			}
		}	

		
		// Check for Password present
		if (document.frmLogon.txtPassword)
		{
			if ((bValid == true) && (document.frmLogon.txtPassword.value == ""))
			{
				sUserMsg = "A password entry is required.";
				bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				document.frmLogon.txtPassword.focus();
			}
		}
				// Check for Password present
		if (document.frmLogon.hdntxtPassword)
		{
			if ((bValid == true) && (document.frmLogon.hdntxtPassword.value == ""))
			{
				sUserMsg = "A password entry is required.";
				bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				//document.frmLogon.Display.focus();
			}
		}

		//W12694 - Add support for non-member logon fields.
		// Check for FirstName present
		if (document.frmLogon.txtFirstName)
		{
			if ((bValid == true) && (document.frmLogon.txtFirstName.value == ""))
			{
				sUserMsg = "A first name is required.";
				bValid = false;
				document.frmLogon.txtFirstName.focus();
			}
		}

		// Check for LastName present
		if (document.frmLogon.txtLastName)
		{
			if ((bValid == true) && (document.frmLogon.txtLastName.value == ""))
			{
				sUserMsg = "A last name is required.";
				bValid = false;
				document.frmLogon.txtLastName.focus();
			}
		}


		// Check for SSN 
		if (document.frmLogon.txtSSN)
		{
			if ((bValid == true) && (document.frmLogon.txtSSN.value == ""))
			{
				sUserMsg = "A Social Security number entry is required.";
				bValid = false;				
				document.frmLogon.txtSSN.focus();
			}
			else
			{	
				if (bValid == true)
				{	
					strExp = /^[0-9]{9}$/
					var re = new RegExp(strExp);
					var strMatch = re.exec(document.frmLogon.txtSSN.value);
					if (strMatch == null) 
					{
						sUserMsg ="The Social Security number entered is not a valid format. Please enter nine digit number without dashes or spaces.";
						bValid = false;
						// jaw 01/21/04 x111533 integrate logon enhancement
						document.frmLogon.txtSSN.focus();			
					}
				}
		    }									
		}

		// Check for Date of Birth present - may be blank
		if (document.frmLogon.txtDOB)
		{
			if ((bValid == true) && ((document.frmLogon.txtDOB.value == "") || (document.frmLogon.txtDOB.value == "BLANK")))
			{
				//sUserMsg = "A date of birth entry is required.";
				//bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				//document.frmLogon.txtDOB.focus();			
				document.frmLogon.txtDOB.value="BLANK";
			}
			else
			{	
				if (bValid == true)
				{	
				
					strExp = /^(0[1-9]|1[0-2])[\/](0[1-9]|([12][0-9])|(3[01]))[\/](19|20|21)\d\d$/
					
					var re = new RegExp(strExp);
					var strMatch = re.exec(document.frmLogon.txtDOB.value);
					if (strMatch == null) 
					{
						sUserMsg ="The date of birth entered is not a valid format. Please enter your birth date in the month, day and year format MM/DD/YYYY.";
						bValid = false;
						// jaw 01/21/04 x111533 integrate logon enhancement
						document.frmLogon.txtDOB.focus();			
					}
				}
			}						
		}

		// Check for Email - may be blank
		if (document.frmLogon.txtEmail)
		{
			if ((bValid == true) && ((document.frmLogon.txtEmail.value == "") || (document.frmLogon.txtEmail.value == "BLANK")))
			{
				//sUserMsg = "An email entry is required.";
				//bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				//document.frmLogon.txtEmail.focus();
				document.frmLogon.txtEmail.value="BLANK";
			}
			else
			{
				if (bValid == true)
				{
					strExp = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
					var re = new RegExp(strExp);
					var strMatch = re.exec(document.frmLogon.txtEmail.value);
					if (strMatch == null) 
					{
						sUserMsg ="The email entered is not a valid format.";
						bValid = false;
						// jaw 01/21/04 x111533 integrate logon enhancement
						document.frmLogon.txtEmail.focus();			
					}
				}
			 }						
		}

		// Check for Zip Code present - may be blank
		if (document.frmLogon.txtZip)
		{
			if ((bValid == true) && ((document.frmLogon.txtZip.value == "") || (document.frmLogon.txtZip.value == "BLANK")))
			{
				//sUserMsg = "A zip code entry is required.";
				//bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				//document.frmLogon.txtZip.focus();
				document.frmLogon.txtZip.value="BLANK";
			}
			else
			{	
				if (bValid == true)
				{	
					strExp = /^[0-9]{5}$/
					var re = new RegExp(strExp);
					var strMatch = re.exec(document.frmLogon.txtZip.value);
					// jdw 01/16/07 check for 'NonMember'
					if (strMatch == null && document.frmLogon.txtAccountNumber.value != 'NonMember') 
					{
						sUserMsg ="The Zip Code number entered is not a valid format. Please enter five digit number without dashes or spaces.";
						bValid = false;
						// jaw 01/21/04 x111533 integrate logon enhancement
						document.frmLogon.txtZip.focus();			
					}
				}			
			 }
		}

		// Check for Date of Birth present - may be blank
		if (document.frmLogon.txtPhone)
		{
			if ((bValid == true) && ((document.frmLogon.txtPhone.value == "") || (document.frmLogon.txtPhone.value == "BLANK")))
			{
				//sUserMsg = "A phone entry is required.";
				//bValid = false;
				// jaw 01/21/04 x111533 integrate logon enhancement
				//document.frmLogon.txtPhone.focus();
				document.frmLogon.txtPhone.value="BLANK";
			}
			else
			{	
				if (bValid == true)
				{	
					strExp = /^\d{7,}$/
					var re = new RegExp(strExp);
					var strMatch = re.exec(document.frmLogon.txtPhone.value);
					if (strMatch == null) 
					{
						sUserMsg ="The phone number entered is not a valid format. Please enter your phone number without dashes or spaces.";
						bValid = false;
						// jaw 01/21/04 x111533 integrate logon enhancement
						document.frmLogon.txtPhone.focus();			
					}
				}			
			 }			
		}

		
		// Check for Cookie availability in browser
		if (accepts_Cookies()!=true)
		{
			sUserMsg = "Your Browser must be configured to accept cookies.";
			bValid=false;					
		} //end of if
		else
		{
			if (validate_logon.arguments[0] == null)
			  {
			   	// Try to set a cookie.
				if (document.cookie.indexOf("LastMbr=" + document.frmLogon.txtAccountNumber.value) != -1)
					document.cookie  = "LastMbr=SAME"
			  }
		} //end of else
		
							
		// If we are still valid, submit form. Else show error.
		if (bValid == true)
		{
			//JDW-10/19/2004 Interface Support
			document.frmLogon.DirectURL.value = window.location;
			DetermineBrowserType();
			document.frmLogon.submit();
		}
		else
		{
			alert(sUserMsg);
			bClicked = false;
		}
	}
}