// Declare generic variables

var intCurrentCounterGeneric = 0;



var errorMessage  = '';

var errorMessageToShow  = '';



var boolLeftCharacterPresentFn		= false;

var boolRightCharacterPresentFn		= false;

var boolBothCharactersPresentFn		= false;

var boolSingleCharacterPresentFn	= false;



var boolLeftCharacterPresentLn		= false;

var boolRightCharacterPresentLn		= false;

var boolBothCharactersPresentLn		= false;

var boolSingleCharacterPresentLn	= false;



var boolLeftCharacterPresentAdd		= false;

var boolRightCharacterPresentAdd	= false;

var boolBothCharactersPresentAdd	= false;

var boolSingleCharacterPresent		= false;



var boolLeftCharacterPresentCity	= false;

var boolRightCharacterPresentCity	= false;

var boolBothCharactersPresentCity	= false;

var boolSingleCharacterPresent		= false;



var boolLeftCharacterPresentEmail	= false;

var boolRightCharacterPresentEmail	= false;

var boolBothCharactersPresentEmail	= false;

var boolSingleCharacterPresent		= false;





// Declare variables for text repeat

var strRepeatText = "";



// Declare variables for adding zeros

var strHoldZeroPrefix = "";



// Declare variables for setting integer to nearest multiple 10 power

var strSplitIntegerFirstSection  = "";

var strSplitIntegerSecondSection = "";



// Declare error message variables

var strErrorMessage    = "";

var boolErrorIndicator = false;



// Declare variables for informational messages to exit from the site

var strInfoMessageForHumanaSite = "You are leaving the HumanaOne Web site and are about to enter Humana.com.  The HumanaOne web site provides information about individual insurance plans, while the Humana Web site provides information about several differing types of insurance plans. If you have questions about your HumanaOne health plan benefits, please call HumanaOne Customer Service at the number found on your member ID card, or refer to your policy.";

var strInfoMessageForHOWIESite  = "You are leaving the HumanaOne Web site and are about to enter Humana's intranet.";



// Set ball image for common SideNav item to non-transparent image

function showBall(imageName, anch) {

	document.images[imageName + '_ln_img'].src = strURLImagesFolder + "blue_ball.gif";

	anch.className = 'HumOneLeftNavHoverStyle';

}



// Set ball image for common SideNav item to transparent image

function hideBall(imageName, anch) {

	document.images[imageName + '_ln_img'].src = strURLImagesFolder + "white_ball.gif";

	anch.className = 'HumOneLeftNavStyle';

}



// Set ball image for common SideNav item to non-transparent image

// in secured folder

function showBallSecured(imageName, anch) {

	document.images[imageName + '_ln_img'].src = strURLImagesFolderSecured + "blue_ball.gif";

	anch.className = 'HumOneLeftNavHoverStyle';

}



// Set ball image for common SideNav item to transparent image

// in secured folder

function hideBallSecured(imageName, anch) {

	document.images[imageName + '_ln_img'].src = strURLImagesFolderSecured + "white_ball.gif";

	anch.className = 'HumOneLeftNavStyle';

}



function trimString(strParameterInputString) {

	var strInputString = new String(strParameterInputString);

	strInputString     = strInputString.replace(/^\s+/g,"");

	strInputString     = strInputString.replace(/\s+$/g,"");

	return strInputString;

}



function repeatText(strParameterTextField,intParameterCountRepeat) {

	strRepeatText = "";

	if (intParameterCountRepeat == 0) {

		strRepeatText = strParameterTextField;

	}

	else {

		for(intCurrentCounterGeneric = 0;intCurrentCounterGeneric < intParameterCountRepeat;intCurrentCounterGeneric++) {

			strRepeatText = strRepeatText + strParameterTextField;

		}

	}

	return strRepeatText;

}



function setTextBlankIfDefault(strParameterFormField,strParameterTextFieldDefault) {

	if (strParameterFormField == strParameterTextFieldDefault) {

		return "";

	}

	else {

		return strParameterFormField;

	}

}



function isTextEmpty(strParameterTextField,strParameterErrorMessagePart1) {

	if (strParameterTextField == "") {

		strErrorMessage = strParameterErrorMessagePart1 + "must be filled in";

		return true;

	}

	else {

		return false;

	}

}



function doesDotExistInText(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	var strTextField = new String(strParameterTextField);

	if (strTextField.indexOf(".") >= 0) {

		strParameterErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " cannot have a dot";

		return true;

	}

	else {

		return false;

	}

}



function doesCommaExistInText(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	var strTextField = new String(strParameterTextField);

	if (strTextField.indexOf(",") >= 0) {

		strParameterErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " cannot have a comma";

		return true;

	}

	else {

		return false;

	}

}



function doesSignExistInText(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	var strTextField = new String(strParameterTextField);

	var strInvalidSign;



	if (strTextField.indexOf("-") >= 0) {

		strInvalidSign = "-";

	}

	else if (strTextField.indexOf("+") >= 0) {

		strInvalidSign = "+";

	}

	else if (strTextField.indexOf("*") >= 0) {

		strInvalidSign = "*";

	}

	else if (strTextField.indexOf("/") >= 0) {

		strInvalidSign = "/";

	}

	else if (strTextField.indexOf("\\") >= 0) {

		strInvalidSign = "\\";

	}

	else if (strTextField.indexOf("=") >= 0) {

		strInvalidSign = "=";

	}

	else if (strTextField.indexOf("%") >= 0) {

		strInvalidSign = "%";

	}

	else if (strTextField.indexOf("$") >= 0) {

		strInvalidSign = "$";

	}

	else {

		strInvalidSign = "";

	}



	if (strInvalidSign > "") {

		strErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " cannot have a \'" + strInvalidSign + "\' sign";

		return true;

	}

	else {

		return false;

	}

}



function doesBracketExistInText(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	var strTextField = new String(strParameterTextField);

	var strInvalidBracket;



	if (strTextField.indexOf("(") >= 0) {

		strInvalidBracket = "(";

	}

	else if (strTextField.indexOf(")") >= 0) {

		strInvalidBracket = ")";

	}

	else if (strTextField.indexOf("{") >= 0) {

		strInvalidBracket = "{";

	}

	else if (strTextField.indexOf("}") >= 0) {

		strInvalidBracket = "}";

	}

	else if (strTextField.indexOf("[") >= 0) {

		strInvalidBracket = "[";

	}

	else if (strTextField.indexOf("]") >= 0) {

		strInvalidBracket = "]";

	}

	else {

		strInvalidBracket = "";

	}



	if (strInvalidBracket > "") {

		strErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " cannot have a \'" + strInvalidBracket + "\' character";

		return true;

	}

	else {

		return false;

	}

}



function isTextNonNumeric(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	if (isNaN(strParameterTextField)) {

		strErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " must be numeric";

		return true;

	}

	else {

		return false;

	}

}



function setTextToInteger(strParameterTextField,strParameterErrorMessagePart1,strParameterFormField) {

	if (parseInt(strParameterTextField,10) != isNaN) {

		return parseInt(strParameterTextField,10);

	}

	else {

		boolErrorIndicator = true;

		strErrorMessage    = strParameterErrorMessagePart1 + strParameterFormField + " must be numeric";

		return -1;

	}

}



function isTextLessThanMinimumValue(strParameterTextField,intParameterMinimumValue,strParameterErrorMessagePart1,strParameterFormField) {

	if (strParameterTextField < intParameterMinimumValue) {

		strErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " must be more than or equal to " + intParameterMinimumValue;

		return true;

	}

	else {

		return false;

	}

}



function isTextMoreThanMaximumValue(strParameterTextField,intParameterMaximumValue,strParameterErrorMessagePart1,strParameterFormField) {

	if (strParameterTextField > intParameterMaximumValue) {

		strErrorMessage = strParameterErrorMessagePart1 + strParameterFormField + " must be less than or equal to " + intParameterMaximumValue;

		return true;

	}

	else {

		return false;

	}

}



function addLeadingZeros(strParameterInput,intParameterInputMaximumLength) {

	strHoldZeroPrefix = "";

	for(intCurrentCounterGeneric = 0;intCurrentCounterGeneric < (intParameterInputMaximumLength - strParameterInput.length);intCurrentCounterGeneric++) {

		strHoldZeroPrefix += "0";

	}

	return(strHoldZeroPrefix + strParameterInput);

}



function setIntegerToNearestMultiple10Power(intParameterIntegerValue,intParameterIntegerLength,intParameterMultiple10Power) {

	if (intParameterIntegerValue <= intParameterMultiple10Power) {

		// If the length of the input long value is less than or equal to the multiple 10 power value,

		// return the value as "1" + the number of zeros corresponding to the multiple 10 power value

		return parseInt("1" + repeatText('0',intParameterMultiple10Power));

	}

	else {

		// Split the input long value into two sections, depending on the multiple 10 power value

		//  - Second section: The number of least significant digits equal to the multiple

		//                    10 power value

		//  - First section : The remaining higher significant digits - If there are no more

		//                    remaining digits, put blanks in the first section

		strSplitIntegerSecondSection  = String(intParameterIntegerValue).substr((intParameterIntegerLength - intParameterMultiple10Power));

		if ((intParameterIntegerLength - intParameterMultiple10Power) > 0) {

			strSplitIntegerFirstSection = String(intParameterIntegerValue).substr(0,(intParameterIntegerLength - intParameterMultiple10Power));

		}

		else {

			strSplitIntegerFirstSection = "";

		}



		// If the number in the second section string is more than or equal to 5 times

		// 1 less than the input 10 power value, round the long value up depending on

		// the multiple 10 power value, else round it down

		// Concatenate the first and second sections and return the result

		if ((parseInt(strSplitIntegerSecondSection)) >= (5 * (Math.pow(10,(intParameterMultiple10Power - 1))))) {

			return parseInt(String(parseInt(strSplitIntegerFirstSection) + 1) + repeatText('0',intParameterMultiple10Power));

		}

		else {

			return parseInt(strSplitIntegerFirstSection + repeatText('0',intParameterMultiple10Power));

		}

	}

}



function getAge(strParameterDOBMM,strParameterDOBDD,strParameterDOBYYYY,strParameterBaselineDateMM,strParameterBaselineDateDD,strParameterBaselineDateYYYY,strParameterMaximumDate,intParameterMaximumAge) {

	// If DOB is invalid, return an error

	if(!isDate(strParameterDOBMM,strParameterDOBDD,strParameterDOBYYYY,strParameterMaximumDate)) {

		return '0';

	}



	// If baseline date is invalid, return an error

	if(!isDate(strParameterBaselineDateMM,strParameterBaselineDateDD,strParameterBaselineDateYYYY,strParameterMaximumDate)) {

		return '0';

	}

	//VBV0125 08/03/2007 - Starts

	strParameterDOBYYYY				= addLeadingZeros(strParameterDOBYYYY, 4);

	strParameterDOBMM				= addLeadingZeros(strParameterDOBMM, 2);

	strParameterDOBDD				= addLeadingZeros(strParameterDOBDD, 2);

	strParameterBaselineDateYYYY	= addLeadingZeros(strParameterBaselineDateYYYY, 4);

	strParameterBaselineDateMM		= addLeadingZeros(strParameterBaselineDateMM, 2);

	strParameterBaselineDateDD		= addLeadingZeros(strParameterBaselineDateDD, 2);

	//VBV0125 08/03/2007 - Ends

	// If the DOB is greater than the baseline date, return an error

	var strDOB              = strParameterDOBYYYY + strParameterDOBMM + strParameterDOBDD;

	var strBaselineDate     = strParameterBaselineDateYYYY + strParameterBaselineDateMM + strParameterBaselineDateDD;

	if (strDOB > strBaselineDate) {

		return '0';

	}



	// Get month, day and year for DOB and baseline date

	var intDOBMM            = parseInt(strParameterDOBMM,10);

	var intDOBDD            = parseInt(strParameterDOBDD,10);

	var intDOBYYYY          = parseInt(strParameterDOBYYYY,10);

	var intBaselineDateMM   = parseInt(strParameterBaselineDateMM,10);

	var intBaselineDateDD   = parseInt(strParameterBaselineDateDD,10);

	var intBaselineDateYYYY = parseInt(strParameterBaselineDateYYYY,10);



	//VBV0125 08/03/2007 - Starts

	// If the baseline year and the DOB year are the same, set the age to 1

	// Else Set the initial age as the difference between the DOB year and the baseline year

	//if (intBaselineDateYYYY == intDOBYYYY) {

	//	return '1';

	//}

	//else {

		var intAge = intBaselineDateYYYY - intDOBYYYY;

	//}

	//VBV0125 08/03/2007 - Ends

	// If the DOB month is greater than the baseline month, subtract 1 from age

	// Else If the DOB month and the baseline month are the same,

	// but the DOB day is greater than the baseline day, subtract 1 from age

	if (intDOBMM > intBaselineDateMM) {

		intAge--;

	}

	else if ((intDOBMM == intBaselineDateMM) && (intDOBDD > intBaselineDateDD)) {

		intAge--;

	}



	//VBV0125 08/03/2007 - Starts

	// If the age is less than 1, set the age to 0

	// Else If the age is more than the maximum allowable age, return an error

	// Else Return the calculated age

	if (intAge < 0) {

		return '0';

		//VBV0125 08/03/2007 - Ends

	}

	else if (intAge > intParameterMaximumAge) {

		var strStateName = getCookie('StateCookie');	

			//alert("intAge = " + intAge);

			//alert("intParameterMaximumAge = " + intParameterMaximumAge);

			

			if(strStateName== "Georgia")

			{

				alert("In Georgia, a dependent must be less than 25 years old to quote and apply online. Please call " + TollFreeNumber + " to quote or apply if you have a dependent 25 years old. HumanaOne does not currently offer health plans for dependents age 26 and older.");

			}

			else if(strStateName== "Florida")

			{

				alert("In Florida, a dependent must be less than 25 years old to quote and apply online. Please call " + TollFreeNumber + " to quote or apply if you have a dependent between the ages of 25 and 30.");

			}

			else if(strStateName== "Illinois")

			{

			    alert("In Illinois, a dependent must be less than 25 years old to quote or apply online. Please call " + TollFreeNumber + " to quote or apply with a dependent 25 years old or up to 30 for dependents who are military veterans.");

			}

			else

			{

				alert("Age must be less than " + (intParameterMaximumAge + 1));

			}

		

		

		return '0';

	}

	else {

		return intAge;

	}

}



//VBV0125 08/03/2007 - Starts

function isValidAgeForChildOnlyCheck(strParameterDOBMM,strParameterDOBDD,strParameterDOBYYYY,strParameterBaselineDateMM,strParameterBaselineDateDD,strParameterBaselineDateYYYY,strParameterMaximumDate,intParameterMaximumAge) {

	

	// If DOB is invalid, return an error

	if(!isDate(strParameterDOBMM,strParameterDOBDD,strParameterDOBYYYY,strParameterMaximumDate)) {

		return 0;

	}

	

	// If baseline date is invalid, return an error

	if(!isDate(strParameterBaselineDateMM,strParameterBaselineDateDD,strParameterBaselineDateYYYY,strParameterMaximumDate)) {

		return 0;

	}

	

	strParameterDOBYYYY				= addLeadingZeros(strParameterDOBYYYY, 4);

	strParameterDOBMM				= addLeadingZeros(strParameterDOBMM, 2);

	strParameterDOBDD				= addLeadingZeros(strParameterDOBDD, 2);

	strParameterBaselineDateYYYY	= addLeadingZeros(strParameterBaselineDateYYYY, 4);

	strParameterBaselineDateMM		= addLeadingZeros(strParameterBaselineDateMM, 2);

	strParameterBaselineDateDD		= addLeadingZeros(strParameterBaselineDateDD, 2);

	

	// If the DOB is greater than the baseline date, return an error

	var strDOB              = strParameterDOBYYYY + strParameterDOBMM + strParameterDOBDD;

	var strBaselineDate     = strParameterBaselineDateYYYY + strParameterBaselineDateMM + strParameterBaselineDateDD;

	if (strDOB > strBaselineDate) {

		return 0;

	}

	

	// Get month, day and year for DOB and baseline date

	var intDOBMM            = parseInt(strParameterDOBMM,10);

	var intDOBDD            = parseInt(strParameterDOBDD,10);

	var intDOBYYYY          = parseInt(strParameterDOBYYYY,10);

	var intBaselineDateMM   = parseInt(strParameterBaselineDateMM,10);

	var intBaselineDateDD   = parseInt(strParameterBaselineDateDD,10);

	var intBaselineDateYYYY = parseInt(strParameterBaselineDateYYYY,10);



	var intAge = intBaselineDateYYYY - intDOBYYYY;

	

	// If the DOB month is greater than the baseline month, subtract 1 from age

	// Else If the DOB month and the baseline month are the same,

	// but the DOB day is greater than the baseline day, subtract 1 from age

	if (intDOBMM > intBaselineDateMM) {

		intAge--;

	}

	else if ((intDOBMM == intBaselineDateMM) && (intDOBDD > intBaselineDateDD)) {

		intAge--;

	}

	

	if (intAge > intParameterMaximumAge) {

		return 0;

	}

	

	return 1;

}

//VBV0125 08/03/2007 - Ends

function isDate(strParameterDateMM,strParameterDateDD,strParameterDateYYYY,strParameterMaximumDate) {

	// Convert dates to integer format

	var intDateMM                  = parseInt(strParameterDateMM,10);

	var intDateDD                  = parseInt(strParameterDateDD,10);

	var intDateYYYY                = parseInt(strParameterDateYYYY,10);

	var dtMaximumDate              = new Date(strParameterMaximumDate);

	var boolInputLeapYearIndicator = false;



	// Verify if input date MM, DD and YYYY fields are blank

	if (intDateMM == "") {

		strErrorMessage   = "Input month is blank";

		return false;

	}

	if (intDateDD == "") {

		strErrorMessage   = "Input day is blank";

		return false;

	}

	if (intDateYYYY == "") {

		strErrorMessage   = "Input year is blank";

		return false;

	}



	// Verify if input date MM, DD and YYYY fields are numbers

	if (isNaN(intDateMM)) {

		strErrorMessage   = "Input month is not numeric";

		return false;

	}

	if (isNaN(intDateDD)) {

		strErrorMessage   = "Input day is not numeric";

		return false;

	}

	if (isNaN(intDateYYYY)) {

		strErrorMessage   = "Input year is not numeric";

		return false;

	}



	// Determine if the input year is a leap year or not

	if ((intDateYYYY % 100) == 0) {

		if ((intDateYYYY % 400) == 0) {

			boolInputLeapYearIndicator = true;

		}

	}

	else {

		if ((intDateYYYY % 4) == 0) {

			boolInputLeapYearIndicator = true;

		}

	}



	// Verify that input day is less than or equal to the maximum allowed for that month

	switch (intDateMM) {

		case  1:

		case  3:

		case  5:

		case  7:

		case  8:

		case 10:

		case 12:

			if ((intDateDD < 1) || (intDateDD > 31)) {

				strErrorMessage   = "Invalid day for a 31-day month";

				return false;

			}

			break;

		case  2:

			if (boolInputLeapYearIndicator) {

				if ((intDateDD < 1) || (intDateDD > 29)) {

					strErrorMessage = "Invalid leap year day for February";

					return false;

				}

			}

			else {

				if ((intDateDD < 1) || (intDateDD > 28)) {

					strErrorMessage = "Invalid non-leap year day for February";

					return false;

				}

			}

			break;

		case  4:

		case  6:

		case  9:

		case 11:

			if ((intDateDD < 1) || (intDateDD > 30)) {

				strErrorMessage   = "Invalid day for a 30-day month";

				return false;

			}

			break;

		default:

			strErrorMessage     = "Invalid month";

			return false;

			break;

	}



	// Verify that the year range is valid

	if ((intDateYYYY < 1700) || (intDateYYYY > dtMaximumDate.getFullYear())) {

		strErrorMessage       = "Invalid year";

		return false;

	}



	return true;

}



function getBooleanFromString(strParameterFormFieldStringValue) {

	var boolReturnValue;

	switch (strParameterFormFieldStringValue) {

		case "true":

		case "True":

		case "TRUE":

			boolReturnValue = true;

			break;

		default:

			boolReturnValue = false;

			break;

	}

	return boolReturnValue;

}



// Auto-tab to next field if all characters in current field have been filled in

function autoTabToNextField(objParameterCurrentField,

														intParameterCurrentFieldMaximumLength,

														objParameterNextField,

														objParameterInFocusIndicatorField) {

	if ((objParameterCurrentField.value.length   == intParameterCurrentFieldMaximumLength) && 

	    (objParameterInFocusIndicatorField.value == "false")) {

		objParameterNextField.focus();

		objParameterInFocusIndicatorField.value = "true";

	}

	else {

		objParameterInFocusIndicatorField.value = "false";

	}

}



// Exit the current site with an informational message

function exitSite(LinkURL, strInfoMessage) {

	alert(strInfoMessage);

	parent.window.location.href = LinkURL;

}

function showDiv(id,e)

{

	var scrollX = 0;

	var scrollY = 0;

	var clientX = 0;

	var clientY = 0;

    var obj = document.getElementById(id);

    if (BrowserDetectHOne.browser=="Firefox" || (BrowserDetectHOne.browser=="Safari")){	//sxh7700 start		





		obj.style.visibility='visible';

		obj.style.zIndex=2;

			var e = e || window.event;

			var xy = cursorPos(e);

			document.getElementById(id).style.left = (xy[0]+5) + 'px';

			document.getElementById(id).style.top = xy[1] + 'px';

			document.getElementById(id).style.display = '';

		

		

	}

	else if (BrowserDetectHOne.browser=="Explorer")

	{

		if(obj)

		{

			if (document.all)

			{

				if (!document.documentElement.scrollLeft)

					scrollX = document.body.scrollLeft;

				else

					scrollX = document.documentElement.scrollLeft;

		           

				if (!document.documentElement.scrollTop)

					scrollY = document.body.scrollTop;

				else

					scrollY = document.documentElement.scrollTop;

		   

				/*if (!document.documentElement.clientX)

					 clientX = document.body.clientX;

				else

					clientX = document.documentElement.clientX;

		           

				if (!document.documentElement.clientY)

					clientY = document.body.clientY;

				else

					clientY = document.documentElement.clientY;

				*/

			}   

			else

			{

				scrollX = window.pageXOffset;

				scrollY = window.pageYOffset;

				//clientX = window.clientX;

				//clientY = window.clientY;

			}

    

			obj.style.visibility='visible';

			obj.style.zIndex=2;

			obj.style.left=event.clientX + scrollX+5;

			obj.style.top=event.clientY + scrollY;

		

		}

	}//end of IE else

}



// Based on quirskmode 'get cursor position' script start sxh7700 for hover placement in QuoteResultEvolutionary.asp 

function cursorPos(e){

if (e.pageX || e.pageY) {

return [ e.pageX, e.pageY ];

} else if (e.clientX || e.clientY) {

return [

e.clientX + document.body.scrollLeft,

e.clientY + document.body.scrollTop

];

}

}

// sxh7700 end	

function hideDiv(id)

{

	var obj = document.getElementById(id);

	if(obj)

	{

		obj.style.visibility='hidden';

		obj.style.left=0;

		obj.style.top=0;

	}

}



// Syed added start

//************************function for browser detection ***********

var BrowserDetect = {

	init: function () {

		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";

		this.version = this.searchVersion(navigator.userAgent)

			|| this.searchVersion(navigator.appVersion)

			|| "an unknown version";

		this.OS = this.searchString(this.dataOS) || "an unknown OS";

	},

	searchString: function (data) {

		for (var i=0;i<data.length;i++)	{

			var dataString = data[i].string;

			var dataProp = data[i].prop;

			this.versionSearchString = data[i].versionSearch || data[i].identity;

			if (dataString) {

				if (dataString.indexOf(data[i].subString) != -1)

					return data[i].identity;

			}

			else if (dataProp)

				return data[i].identity;

		}

	},

	searchVersion: function (dataString) {

		var index = dataString.indexOf(this.versionSearchString);

		if (index == -1) return;

		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));

	},

	dataBrowser: [

		{ 	string: navigator.userAgent,

			subString: "OmniWeb",

			versionSearch: "OmniWeb/",

			identity: "OmniWeb"

		},

		{

			string: navigator.vendor,

			subString: "Apple",

			identity: "Safari"

		},

		{

			prop: window.opera,

			identity: "Opera"

		},

		{

			string: navigator.vendor,

			subString: "iCab",

			identity: "iCab"

		},

		{

			string: navigator.vendor,

			subString: "KDE",

			identity: "Konqueror"

		},

		{

			string: navigator.userAgent,

			subString: "Firefox",

			identity: "Firefox"

		},

		{

			string: navigator.vendor,

			subString: "Camino",

			identity: "Camino"

		},

		{		// for newer Netscapes (6+)

			string: navigator.userAgent,

			subString: "Netscape",

			identity: "Netscape"

		},

		{

			string: navigator.userAgent,

			subString: "MSIE",

			identity: "Explorer",

			versionSearch: "MSIE"

		},

		{

			string: navigator.userAgent,

			subString: "Gecko",

			identity: "Mozilla",

			versionSearch: "rv"

		},

		{ 		// for older Netscapes (4-)

			string: navigator.userAgent,

			subString: "Mozilla",

			identity: "Netscape",

			versionSearch: "Mozilla"

		}

	],

	dataOS : [

		{

			string: navigator.platform,

			subString: "Win",

			identity: "Windows"

		},

		{

			string: navigator.platform,

			subString: "Mac",

			identity: "Mac"

		},

		{

			string: navigator.platform,

			subString: "Linux",

			identity: "Linux"

		}

	]



};

BrowserDetect.init();





// AXS1233 Ashish added this function to restrict entry of '<' and '>'



function RestrictSpecialCharactersInput(event)

		{							

			if(event.keyCode == 60 || event.keyCode == 62)

			{					

				event.returnValue = false;

			}			

		}

	

	

	// AXS1233 Ashish added this function to find the occurence of '<' or '>' in an inputbox



function ValidateInputText(event,ctrlName, myText, fieldValidated)

	{			

		if(document.getElementById(ctrlName).value != '')

		{							

			var aPosition = myText.indexOf('<');

			var bPosition = myText.indexOf('>');		

	

			if(aPosition !=-1 || bPosition!= -1)

			{					

				var errorMessage = '< and > special characters are not allowed in the ' + fieldValidated;			

				alert(errorMessage);					

				document.getElementById(ctrlName).value = '';

			}

		}



	}

	

	

	function ValidateInputTexts(event,ctrlName, myText, fieldValidated)

	{			

		if(document.getElementById(ctrlName).value != '')

		{							

			var aPosition = myText.indexOf('<');

			var bPosition = myText.indexOf('>');					

			

			if((ctrlName == 'txtFirstName') ||  (ctrlName == 'firstname'))

			{

				if ((aPosition !=-1) && (bPosition == -1))

				{					

					boolLeftCharacterPresentFn = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition == -1) && (bPosition!= -1))

				{			

					boolRightCharacterPresentFn = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition != -1) && (bPosition != -1))

				{							

					boolBothCharactersPresentFn = true;

					document.getElementById(ctrlName).value = '';

				}

			}

			else if((ctrlName == 'txtLastName') || (ctrlName == 'lastname'))

			{

				if ((aPosition !=-1) && (bPosition == -1))

				{					

					boolLeftCharacterPresentLn = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition == -1) && (bPosition!= -1))

				{			

					boolRightCharacterPresentLn = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition != -1) && (bPosition != -1))

				{				

					boolBothCharactersPresentLn = true;

					document.getElementById(ctrlName).value = '';

				}

			}

			

			else if((ctrlName == 'txtAddress1') || (ctrlName == 'streetaddress'))

			{

				if ((aPosition !=-1) && (bPosition == -1))

				{					

					boolLeftCharacterPresentAdd = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition == -1) && (bPosition!= -1))

				{			

					boolRightCharacterPresentAdd = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition != -1) && (bPosition != -1))

				{				

					boolBothCharactersPresentAdd = true;

					document.getElementById(ctrlName).value = '';

				}

			}

			

			else if((ctrlName == 'txtCity') || (ctrlName == 'city'))

			{

				if ((aPosition !=-1) && (bPosition == -1))

				{					

					boolLeftCharacterPresentCity = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition == -1) && (bPosition!= -1))

				{			

					boolRightCharacterPresentCity = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition != -1) && (bPosition != -1))

				{				

					boolBothCharactersPresentCity = true;

					document.getElementById(ctrlName).value = '';

				}

			}

			else if((ctrlName == 'txtEmailAddress') || (ctrlName == 'EmailAddress'))

			{

				if ((aPosition !=-1) && (bPosition == -1))

				{					

					boolLeftCharacterPresentEmail = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition == -1) && (bPosition!= -1))

				{			

					boolRightCharacterPresentEmail = true;

					document.getElementById(ctrlName).value = '';

				}

				else if ((aPosition != -1) && (bPosition != -1))

				{				

					boolBothCharactersPresentEmail = true;

					document.getElementById(ctrlName).value = '';

				}

			}

			

		}	

	}

	

function ValidateInputfieldsForPenetration(event)

{	

	var errorCount = 0;

	var boolVal	 = false;

	errorMessageToShow = '';

	var url = String(location.href);

	

				boolLeftCharacterPresentFn		= false;

				boolRightCharacterPresentFn		= false;

				boolBothCharactersPresentFn		= false;			



				boolLeftCharacterPresentLn		= false;

				boolRightCharacterPresentLn		= false;

				boolBothCharactersPresentLn		= false;





				boolLeftCharacterPresentAdd		= false;

				boolRightCharacterPresentAdd	= false;

				boolBothCharactersPresentAdd	= false;



				boolLeftCharacterPresentCity	= false;

				boolRightCharacterPresentCity	= false;

				boolBothCharactersPresentCity	= false;



				boolLeftCharacterPresentEmail	= false;

				boolRightCharacterPresentEmail	= false;

				boolBothCharactersPresentEmail	= false;

				

		if((url.match("individual-health-insurance-quotes.asp")) || (url.match("individual-health-insurance-quotes1.asp")) || (url.match("individual-health-insurance-quotes2.asp")) || (url.match("contactusforotherstates.asp")) || (url.match("individual_direct_mail_landing.asp")))

		{					

			ValidateInputTexts(event,'txtFirstName', document.getElementById('txtFirstName').value, 'First Name');

			ValidateInputTexts(event,'txtLastName', document.getElementById('txtLastName').value, 'Last Name');

			ValidateInputTexts(event,'txtAddress1', document.getElementById('txtAddress1').value, 'Address');

			ValidateInputTexts(event,'txtCity', document.getElementById('txtCity').value, 'City');

			ValidateInputTexts(event,'txtEmailAddress', document.getElementById('txtEmailAddress').value, 'Email');			

		}

		else if((url.match("contact-us.asp")))

		{		

			ValidateInputTexts(event,'firstname', document.getElementById('firstname').value, 'First Name');

			ValidateInputTexts(event,'lastname', document.getElementById('lastname').value, 'Last Name');

			ValidateInputTexts(event,'streetaddress', document.getElementById('streetaddress').value, 'Street Address');

			ValidateInputTexts(event,'city', document.getElementById('city').value, 'City');

			ValidateInputTexts(event,'EmailAddress', document.getElementById('EmailAddress').value, 'Email Address');

		

		}			

		

		

		if(((boolBothCharactersPresentFn == true) || (boolBothCharactersPresentLn == true) || (boolBothCharactersPresentAdd == true) || (boolBothCharactersPresentCity == true) || (boolBothCharactersPresentEmail == true)) || (((boolLeftCharacterPresentFn == true) && (boolRightCharacterPresentFn == true)) || ((boolLeftCharacterPresentLn == true) && (boolRightCharacterPresentLn == true)) || ((boolLeftCharacterPresentAdd == true) && (boolRightCharacterPresentAdd == true)) || ((boolLeftCharacterPresentCity == true) && (boolRightCharacterPresentCity == true)) || ((boolLeftCharacterPresentEmail == true) && (boolRightCharacterPresentEmail == true))) || (((boolLeftCharacterPresentFn == true) || (boolLeftCharacterPresentLn == true) || (boolLeftCharacterPresentEmail == true) || (boolLeftCharacterPresentAdd == true) || (boolLeftCharacterPresentCity == true)) && ((boolRightCharacterPresentFn == true) || (boolRightCharacterPresentLn == true) || (boolRightCharacterPresentEmail == true) || (boolRightCharacterPresentAdd == true) || (boolRightCharacterPresentCity == true))))

			{				

				errorMessageToShow = 'For security reasons, the characters "<" and  ">" are not allowed.  Please re-enter the following fields:  ';

				

				if((boolLeftCharacterPresentFn == true) || (boolRightCharacterPresentFn == true) || (boolBothCharactersPresentFn == true))

				{

					errorMessageToShow = errorMessageToShow + 'First Name';

					errorCount = 1;

				}

				if((boolLeftCharacterPresentLn == true) || (boolRightCharacterPresentLn == true) || (boolBothCharactersPresentLn == true))

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Last Name';

						errorCount = 1;

					}

					else

					{



						errorMessageToShow = errorMessageToShow + 'Last Name';

						errorCount = 1;

					}

				}

				if((boolLeftCharacterPresentAdd == true) || (boolRightCharacterPresentAdd == true) || (boolBothCharactersPresentAdd == true))

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Address';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Address';

						errorCount = 1;

					}

				}

				

				if((boolLeftCharacterPresentCity == true) || (boolRightCharacterPresentCity == true) || (boolBothCharactersPresentCity == true))

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', City';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'City';

						errorCount = 1;

					}

				}

				if((boolLeftCharacterPresentEmail == true) || (boolRightCharacterPresentEmail == true) || (boolBothCharactersPresentEmail == true))

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Email';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Email';

						errorCount = 1;						

					}

				}

			}

			

			

			else if((boolLeftCharacterPresentFn == true) || (boolLeftCharacterPresentLn == true) || (boolLeftCharacterPresentEmail == true) || (boolLeftCharacterPresentAdd == true) || (boolLeftCharacterPresentCity == true))

			{

				errorMessageToShow = 'For security reasons, the character "<" is not allowed.  Please re-enter the following fields:  ';

				

				if(boolLeftCharacterPresentFn == true)

				{

					errorMessageToShow = errorMessageToShow + 'First Name';

					errorCount = 1;

				}

				

				if(boolLeftCharacterPresentLn == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Last Name';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Last Name';

						errorCount = 1;

					}

				}

				if(boolLeftCharacterPresentAdd == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Address';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Address';

						errorCount = 1;

					}

				}

				if(boolLeftCharacterPresentCity == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', City';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'City';

						errorCount = 1;

					}

				}

				if(boolLeftCharacterPresentEmail == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Email';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Email';

						errorCount = 1;

					}

				}

				

			}

			

			else if((boolRightCharacterPresentFn == true) || (boolRightCharacterPresentLn == true) || (boolRightCharacterPresentEmail == true) || (boolRightCharacterPresentAdd == true) || (boolRightCharacterPresentCity == true))

			{

				errorMessageToShow = 'For security reasons, the character ">" is not allowed.  Please re-enter the following fields:  ';

				

				if(boolRightCharacterPresentFn == true)

				{

					errorMessageToShow = errorMessageToShow + 'First Name';

					errorCount = 1;

				}

				

				if(boolRightCharacterPresentLn == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Last Name';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Last Name';

						errorCount = 1;

					}

				}

				if(boolRightCharacterPresentAdd == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Address';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Address';

						errorCount = 1;

					}

				}

				if(boolRightCharacterPresentCity == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', City';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'City';

						errorCount = 1;

					}

				}

				if(boolRightCharacterPresentEmail == true)

				{

					if(errorCount == 1)

					{

						errorMessageToShow = errorMessageToShow + ', Email';

						errorCount = 1;

					}

					else

					{

						errorMessageToShow = errorMessageToShow + 'Email';

						errorCount = 1;

					}

				}

				

			}

						

			if(errorMessageToShow != '')

			{					

				alert(errorMessageToShow);

				boolVal = false;

			}

			else

			{				

				boolVal = true;

			}

			return boolVal;

		

}

	

	

	

		

//***********************************



// Ashish added this method for whattoexpect to change the variable name BrowserDetect

//************************function for browser detection ***********

var BrowserDetectHOne = {

	init: function () {

		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";

		this.version = this.searchVersion(navigator.userAgent)

			|| this.searchVersion(navigator.appVersion)

			|| "an unknown version";

		this.OS = this.searchString(this.dataOS) || "an unknown OS";

	},

	searchString: function (data) {

		for (var i=0;i<data.length;i++)	{

			var dataString = data[i].string;

			var dataProp = data[i].prop;

			this.versionSearchString = data[i].versionSearch || data[i].identity;

			if (dataString) {

				if (dataString.indexOf(data[i].subString) != -1)

					return data[i].identity;

			}

			else if (dataProp)

				return data[i].identity;

		}

	},

	searchVersion: function (dataString) {

		var index = dataString.indexOf(this.versionSearchString);

		if (index == -1) return;

		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));

	},

	dataBrowser: [

		{ 	string: navigator.userAgent,

			subString: "OmniWeb",

			versionSearch: "OmniWeb/",

			identity: "OmniWeb"

		},

		{

			string: navigator.vendor,

			subString: "Apple",

			identity: "Safari"

		},

		{

			prop: window.opera,

			identity: "Opera"

		},

		{

			string: navigator.vendor,

			subString: "iCab",

			identity: "iCab"

		},

		{

			string: navigator.vendor,

			subString: "KDE",

			identity: "Konqueror"

		},

		{

			string: navigator.userAgent,

			subString: "Firefox",

			identity: "Firefox"

		},

		{

			string: navigator.vendor,

			subString: "Camino",

			identity: "Camino"

		},

		{		// for newer Netscapes (6+)

			string: navigator.userAgent,

			subString: "Netscape",

			identity: "Netscape"

		},

		{

			string: navigator.userAgent,

			subString: "MSIE",

			identity: "Explorer",

			versionSearch: "MSIE"

		},

		{

			string: navigator.userAgent,

			subString: "Gecko",

			identity: "Mozilla",

			versionSearch: "rv"

		},

		{ 		// for older Netscapes (4-)

			string: navigator.userAgent,

			subString: "Mozilla",

			identity: "Netscape",

			versionSearch: "Mozilla"

		}

	],

	dataOS : [

		{

			string: navigator.platform,

			subString: "Win",

			identity: "Windows"

		},

		{

			string: navigator.platform,

			subString: "Mac",

			identity: "Mac"

		},

		{

			string: navigator.platform,

			subString: "Linux",

			identity: "Linux"

		}

	]



};

BrowserDetectHOne.init();