function checkAlphNum(inputField) {
     if (!(/^[a-zA-Z0-9\s'`\-]*$/.test(inputField.value)))
     {
     	return true;
     }
}

function checkAlphNumAndComma(inputField) {
     if (!(/^[a-zA-Z0-9\s'`,\-]*$/.test(inputField.value)))
     {
     	return true;
     }
}

function setGenderBasedOnTitle() {
	if (form1.clde_title.value == "Ms" || form1.clde_title.value == "Mrs" || form1.clde_title.value == "Miss") {
		form1.clde_sex.selectedIndex=2;
	}
	else {
		form1.clde_sex.selectedIndex=1;
	}
}

function checkPostCode (toCheck) {
  var pcexp = new Array ();
  pcexp.push (/^([a-z]{1,2}[0-9]{1,2})(\s*)([0-9]{1}[a-z]{2})$/i);
  pcexp.push (/^([a-z]{1,2}[0-9]{1}[a-z]{1})(\s*)([0-9]{1}[a-z]{2})$/i);
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  var postCode = toCheck;
  var valid = false;
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
      pcexp[i].exec(postCode);
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      valid = true;
      break;
    }
  }
  if (valid) {return true;} else return false;
}

var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function RoundTo2dp(X) { 
	return Math.round(X*100)/100 
}

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;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

function isFutureDate(strDate1,strDate2) {
	// Parse the string in DD/MM/YYYY format
        re = /(\d{1,2})\/(\d{1,2})\/(\d{4})/
        var arr = re.exec( strDate1 );
        var dt1 = new Date( parseInt(arr[3]), parseInt(arr[2], 10) - 1, parseInt(arr[1], 10) );
        var arr2 = re.exec( strDate2 );
        var dt2 = new Date( parseInt(arr2[3]), parseInt(arr2[2], 10) - 1, parseInt(arr2[1], 10) );

	return dt1 > dt2;
}

function is75orOlder(dayDOB,monthDOB,yearDOB,dayStart,monthStart,yearStart) {
	var vAge = 100; //should you want to make it something other than 75, u can...
	if(parseInt(yearStart) - parseInt(yearDOB) > vAge) {
		//person is over "vAge", return false
		alert("Annuity applicants must be under " + vAge + ". Please call for further details.");
		return false;
	}
	if(parseInt(yearStart) - parseInt(yearDOB) == vAge) {
		if(parseInt(monthDOB) < parseInt(monthStart)) {
			//person is over "vAge" by a month
			alert("Annuity applicants must be under " + vAge + ". Please call for further details.");
			return false;
		}
		else {
			if(parseInt(monthStart) == parseInt(monthDOB) && parseInt(dayDOB) <= parseInt(dayStart)) {	
				//person is over "vAge" within the month
				alert("Annuity applicants must be under " + vAge + ". Please call for further details.");
				return false;
			}
		}
	}
	return true;
}

function is50orYounger(dayDOB,monthDOB,yearDOB,dayStart,monthStart,yearStart) {
	if(parseInt(yearStart) - parseInt(yearDOB) < 50) {
		//person is under 50, return false
		alert("Annuity applicants must be over 50. Please call for further details.");
		return false;
	}
	if(parseInt(yearStart) - parseInt(yearDOB) == 50) {
		if(parseInt(monthDOB) > parseInt(monthStart)) {
			//person is under 50 by calendar month, but in their 49/50 year
			alert("Annuity applicants must be over 50. Please call for further details.");
			return false;
		}
		else {
				if(parseInt(monthStart) == parseInt(monthDOB) && parseInt(dayDOB) >= parseInt(dayStart)) {	
				//person is under 50 but within their birth calendar month
				alert("Annuity applicants must be over 50. Please call for further details.");
				return false;
			}
		}
	}
	return true;
}

function internalAutoComplete() {
	if (form1.clde_forename.value == ".") {
		form1.clde_forename.value ='a';
		form1.clde_surname.value ='axxis';
		form1.clde_address1.value ='financial';
		form1.clde_address2.value ='internal';
		form1.clde_town.value ='test';
		form1.clde_county.value ='data';
		form1.clde_postcode.value ='gu1 1aa';
		form1.clde_telno.value ='01234567890';
		form1.clde_email.value ='annuity_help@axxisfinancial.co.uk';
		//form1.clde_source.selectedIndex = 10;
	}
}

function spouseOptions() {
	if (form1.clde_joint_basis.value == "0") {
		document.all.spousename.style.display='none';
	}
	else {
		document.all.spousename.style.display='inline';
	}
}

function smokerOptions() {
	if (form1.clde_smoker.value == "0") {
		document.all.smokerQ.style.display='none';
		document.all.smokerQ2.style.display='none';
	}
	else {
		document.all.smokerQ.style.display='inline';
		document.all.smokerQ2.style.display='inline';
	}
}

function lifeExpOptions() {
	if (form1.clde_life_impediment.value == "0") {
		document.all.lifeExpQ.style.display='none';
		document.all.lifeExpQ2.style.display='none';
	}
	else {
		document.all.lifeExpQ.style.display='inline';
		document.all.lifeExpQ2.style.display='inline';
	}
}

function winpop(url,width,height)
{
	window.open(url,'newwindow','height='+height+',width='+width+',left=100,top=100,resizable=no,scrollbars=yes,toolbar=no,status=no');
	//if (window.focus) {newwindow.focus()}
}

function valid_qq() {
	if (form1.clde_joint_basis.value == "") {alert("Please select single or joint life annuity");form1.clde_joint_basis.focus(); return false;}
	if (form1.clde_forename.value == "") {alert("Please fill in your initial");form1.clde_forename.focus(); return false;}
	if (checkAlphNum(form1.clde_forename)) {alert("Please ensure the 'Initial' field is free from non-alphanumeric characters");form1.clde_forename.focus(); return false;}
	if (form1.clde_surname.value == "") {alert("Please fill in your Surname");form1.clde_surname.focus(); return false;}
	if (checkAlphNum(form1.clde_surname)) {alert("Please ensure the 'Surname' field is free from non-alphanumeric characters");form1.clde_surname.focus(); return false;}
	if (form1.clde_sex.value == "") {alert("Please select your gender"); form1.clde_sex.focus(); return false;}
	if (form1.clde_sex.value == "M" && (form1.clde_title.value == "Miss" || form1.clde_title.value == "Mrs" || form1.clde_title.value == "Ms")) { alert("Please revise either your title or gender"); form1.clde_sex.focus(); return false; }
	if (form1.clde_sex.value == "F" && form1.clde_title.value == "Mr") { alert("Please revise either your title or gender"); form1.clde_sex.focus(); return false;}
	if (form1.clde_source.value == "") {alert("Please specify a referring source");form1.clde_source.focus(); return false;}

	
	// isDate requires MM/DD/YYYY - alert message in function
	if (!isDate(form1.age1m.value+"/"+form1.age1d.value+"/"+form1.age1y.value)) {form1.age1d.focus(); return false;}
	//if (!isDate(form1.retiredate_month.value+"/"+form1.retiredate_day.value+"/"+form1.retiredate_year.value)) {form1.retiredate_day.focus(); return false;}
	try {
		if (!isDate(form1.age2m.value+"/"+form1.age2d.value+"/"+form1.age2y.value)) {form1.age2d.focus(); return false;}
	}
	catch (err) {
	}
	// IFA rule, please ensure age is between 50 and 75 or Alert that they should contact IFA
	// I believe this is covered in the generation of the date range on the site.
	var today = new Date();
	//alert(today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear());

	//catch those that are 74, almost 75 
	if (!is75orOlder(form1.age1d.value,form1.age1m.value,form1.age1y.value,today.getDate(),today.getMonth(),today.getYear())) {form1.age1y.focus(); return false;}

	//--causing probs on quickquote as dont bother with retire date fields
	if (!is50orYounger(form1.age1d.value,form1.age1m.value,form1.age1y.value,today.getDate(),today.getMonth(),today.getYear())) {form1.age1y.focus(); return false;}	
	
	var noCommaFundSizeVal = (form1.pode_fund_size.value).replace(",","");
	if (noCommaFundSizeVal == ""||isNaN(noCommaFundSizeVal)) 
		{
			alert("Please enter your fund size");
			form1.pode_fund_size.value=('');
			form1.pode_fund_size.focus(); 
			return false;
		}
		
	if (noCommaFundSizeVal < 1000) 			
		{
			alert("Sorry, funds below £1,000 cannot be used to purchase an annuity on the open market. If however you have other pension funds, which combined together total more than £1,000, the open market option will be available. If you would like further information, please contact us.");
			form1.pode_fund_size.focus(); 
			return false;
		}
	if (noCommaFundSizeVal > 1000000) 			
		{
			alert("For funds above £1 million please call Axxis to discuss your options as most providers will not automatically quote on funds of this size and above.");
			form1.pode_fund_size.focus(); 
			return false;
		}			
	//ensure source box is reenabled (if disabled) just prior to submission
	//form1.clde_source.disabled=false;
}

function valid_1() {
	if (form1.clde_joint_basis.value == "") {alert("Please select single or joint life annuity");form1.clde_joint_basis.focus(); return false;}
	if (form1.clde_forename.value == "") {alert("Please fill in your initial");form1.clde_forename.focus(); return false;}
	if (checkAlphNum(form1.clde_forename)) {alert("Please ensure the 'Initial' field is free from non-alphanumeric characters");form1.clde_forename.focus(); return false;}
	if (form1.clde_surname.value == "") {alert("Please fill in your Surname");form1.clde_surname.focus(); return false;}
	if (checkAlphNum(form1.clde_surname)) {alert("Please ensure the 'Surname' field is free from non-alphanumeric characters");form1.clde_surname.focus(); return false;}
	if (form1.clde_joint_basis.value == "1" && form1.clde_spouse_forename.value == "") {alert("Please ensure the 'Spouse Firstname' field is free from non-alphanumeric characters");form1.clde_spouse_forename.focus(); return false;}
	if (form1.clde_joint_basis.value == "1" && form1.clde_spouse_surname.value == "") {alert("Please ensure the 'Spouse Surname' field is free from non-alphanumeric characters");form1.clde_spouse_surname.focus(); return false;}
	//if (form1.clde_address1.value == "") {alert("Please fill in your address");form1.clde_address1.focus(); return false;}
	if (checkAlphNumAndComma(form1.clde_address1)) {alert("Please ensure the 'Address' field is free from non-alphanumeric characters");form1.clde_address1.focus(); return false;}
	if (checkAlphNumAndComma(form1.clde_address2)) {alert("Please ensure the 'Address 2' field is free from non-alphanumeric characters");form1.clde_address2.focus(); return false;}
	//if (form1.clde_town.value == "") {alert("Please fill in your town");form1.clde_town.focus(); return false;}
	if (checkAlphNum(form1.clde_town)) {alert("Please ensure the 'Town' field is free from non-alphanumeric characters");form1.clde_town.focus(); return false;}
	if (checkAlphNum(form1.clde_county)) {alert("Please ensure you exclude non-alphanumeric characters from your County");form1.clde_county.focus(); return false;}
	//if (form1.clde_postcode.value == "") {alert("Please fill in your post code");form1.clde_postcode.focus(); return false;}
	//if (!checkPostCode (form1.clde_postcode.value)) {alert ("Please ensure the Postcode is in a valid format");form1.clde_postcode.focus(); return false;}

	//if (form1.clde_telno.value == "" || isNaN(form1.clde_telno.value)) {alert("Please fill in your Phone Number, numeric characters only");form1.clde_telno.value="";form1.clde_telno.focus(); return false;}
	//if (form1.clde_telno.value == "" || isNaN(form1.clde_telno.value)) {alert("Please fill in your Phone Number, numeric characters only and no space required");form1.clde_telno.focus(); return false;}
	//if (form1.clde_email.value == "" || form1.clde_email.value.indexOf('@', 0) == -1) {alert("Not a valid e-mail address!");form1.clde_email.focus(); return false;}
	//alert((form1.clde_email.value).substring(0,1));
	//if ((form1.clde_email.value).substring(0,1) == "@" || ((form1.clde_email.value).indexOf('@') < 0) || (((form1.clde_email.value).charAt((form1.clde_email.value).length-4) != '.') && ((form1.clde_email.value).charAt((form1.clde_email.value).length-3) != '.'))) {alert("Please ensure the 'Email' field is valid");form1.clde_email.focus(); return false;}

	if (form1.clde_sex.value == "") {alert("Please select your gender");form1.clde_sex.focus(); return false;}
	if (form1.clde_sex.value == "M" && (form1.clde_title.value == "Miss" || form1.clde_title.value == "Mrs" || form1.clde_title.value == "Ms")) {alert("Please revise either your title or gender");form1.clde_sex.focus(); return false;}
	if (form1.clde_sex.value == "F" && form1.clde_title.value == "Mr") {alert("Please revise either your title or gender");form1.clde_sex.focus(); return false;}
	
	if (form1.clde_source.value == "") {alert("Please specify a referring source");form1.clde_source.focus(); return false;}
	
	//new for ensuring person knows they are chosing single
	if (form1.clde_joint_basis.value == "0" ) {
		if (!confirm("You have chosen a single life annuity. This means that on your death (other than the balance of any remaining guarantee period you may have chosen) no further payments will be made to your spouse or dependants if you have them, or estate. Please be aware that once an annuity has been purchased it is not possible to add or remove a spouse's pension.\n\nPress OK to continue, or Cancel to change your selections.")) {
			form1.clde_joint_basis.focus(); 
			return false;
		}
	}

	//ensure source box is reenabled (if disabled) just prior to submission
	form1.clde_source.disabled=false;
}

function valid_2() {
}

function valid_3() {
	// isDate requires MM/DD/YYYY - alert message in function
	if (!isDate(form1.age1m.value+"/"+form1.age1d.value+"/"+form1.age1y.value)) {form1.age1d.focus(); return false;}
	if (!isDate(form1.retiredate_month.value+"/"+form1.retiredate_day.value+"/"+form1.retiredate_year.value)) {form1.retiredate_day.focus(); return false;}
	try {
		if (!isDate(form1.age2m.value+"/"+form1.age2d.value+"/"+form1.age2y.value)) {form1.age2d.focus(); return false;}
	}
	catch (err) {
	}
	//catch those that are 74, almost 75
	if (!is75orOlder(form1.age1d.value,form1.age1m.value,form1.age1y.value,form1.retiredate_day.value,form1.retiredate_month.value,form1.retiredate_year.value)) {form1.age1y.focus(); return false;}
	// IFA rule, please ensure age is between 50 and 75 or Alert that they should contact IFA
	// I believe this is covered in the generation of the date range on the site.
	//var today = new Date();
	//alert(today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getYear());
	//if ((today.getYear()-50) < form1.age1y.value) {
	//	alert("this person is less than 50");
	//}
	if (!is50orYounger(form1.age1d.value,form1.age1m.value,form1.age1y.value,form1.retiredate_day.value,form1.retiredate_month.value,form1.retiredate_year.value)) {form1.age1y.focus(); return false;}
	if (form1.pode_poty_id.value == 9) 
	{
		var noCommaFundSizePre97Val = parseFloat((form1.pode_fund_pre97.value).replace(",",""));
		var noCommaFundSizePost97Val = 0; //parseFloat((form1.pode_fund_post97.value).replace(",",""));
		var pre97Entered=true;
		var post97Entered=true;
		if (form1.pode_fund_pre97.value < 0  || form1.pode_fund_pre97.value == "" || isNaN(form1.pode_fund_pre97.value)) 
		{
			//alert("Please enter your Pre 97 fund size");
			//form1.pode_fund_pre97.value=('');
			//form1.pode_fund_pre97.focus(); 
			//return false;
			form1.pode_fund_pre97.value=('');
			pre97Entered = false;
		}
		if (form1.pode_fund_post97.value < 0  || form1.pode_fund_post97.value == "" || isNaN(form1.pode_fund_post97.value)) 
		{
			form1.pode_fund_post97.value=('');
			post97Entered = false;
		}
		if (!(pre97Entered) && !(post97Entered)) 
		{
			alert("Please enter either your Pre 97 fund size or your Post 97 fund size");
			form1.pode_fund_pre97.value=('');
			form1.pode_fund_post97.value=('');
			form1.pode_fund_pre97.focus(); 
			return false;
		}	
		if (pre97Entered && post97Entered && (noCommaFundSizePre97Val+noCommaFundSizePost97Val < 1000) ) {
				alert("Sorry, funds below £1,000 cannot be used to purchase an annuity on the open market");
				form1.pode_fund_pre97.focus(); 
				return false;
		}
		if ((!post97Entered && noCommaFundSizePre97Val < 15000) || ( pre97Entered && post97Entered && (noCommaFundSizePre97Val+noCommaFundSizePost97Val < 15000) )) {
				alert("Sorry, no quote can be given for funds below £15,000. Do you have any other funds to consider?");
				form1.pode_fund_pre97.focus(); 
				return false;
		}
		if (pre97Entered && noCommaFundSizePre97Val > 1000000) {
				alert("For funds above £1 million please call Axxis to discuss your options as most providers will not automatically quote on funds of this size and above.");
				form1.pode_fund_pre97.focus(); 
				return false;
		}		
		if ((!pre97Entered && noCommaFundSizePost97Val < 15000) || ( pre97Entered && post97Entered && (noCommaFundSizePre97Val+noCommaFundSizePost97Val < 15000) )) {
				alert("Sorry, no quote can be given for funds below £15,000. Do you have any other funds to consider?");
				form1.pode_fund_post97.focus(); 
				return false;
		}
		if (post97Entered && noCommaFundSizePost97Val > 1000000) {
				alert("For funds above £1 million please call Axxis to discuss your options as most providers will not automatically quote on funds of this size and above.");
				form1.pode_fund_post97.focus(); 
				return false;
		}
	}
	else //for all other products
	{
		var noCommaFundSizeVal = (form1.pode_fund_size.value).replace(",","");
		if (noCommaFundSizeVal == ""||isNaN(noCommaFundSizeVal)) 
			{
				alert("Please enter your fund size");
				form1.pode_fund_size.value=('');
				form1.pode_fund_size.focus(); 
				return false;
			}
			
		if (noCommaFundSizeVal < 15000) 			
			{
				alert("Sorry, no quote can be given for funds below £15,000. Do you have any other funds to consider?");
				form1.pode_fund_size.focus(); 
				return false;
			}
		if (noCommaFundSizeVal > 1000000) 			
			{
				alert("For funds above £1 million please call Axxis to discuss your options as most providers will not automatically quote on funds of this size and above.");
				form1.pode_fund_size.focus(); 
				return false;
			}			
	}
}

function valid_4() {

	try {
		if (isNaN(form1.pode_tax_free_cash.value))			{			alert("Please enter the amount you would like to take as Tax Free Cash using numeric characters only");			form1.pode_tax_free_cash.focus();			return false;			}			else				//if(RoundTo2dp(form1.pode_tax_free_cash.value-Math.floor(form1.pode_tax_free_cash.value)) > form1.pode_tax_free_cash.value-Math.floor(form1.pode_tax_free_cash.value)) {
					//alert("2dp rounded is greater than orig val");
				//	form1.pode_tax_free_cash.value = Math.floor(form1.pode_tax_free_cash.value) + RoundTo2dp(form1.pode_tax_free_cash.value-Math.floor(form1.pode_tax_free_cash.value))-0.01;				//}
				if ((form1.pode_tax_free_cash.value).toFixed(4) > (form1.pode_tax_free_cash_hidden.value).toFixed(4))				{				alert("The amount entered exceeds your submit Tax Free Cash allowance of £"+form1.pode_tax_free_cash_hidden.value);				
				form1.pode_tax_free_cash.focus();				return false;			}
	}
	catch (err) {
	}
	//disallow PR with  RPI, WP/UL combo
	if (form1.pode_poty_id.value == 9 && form1.pode_rper_id[3].checked) {
		alert("RPI not available with a Protected Rights Annuity");
		return false;
	}
	if (form1.pode_poty_id.value == 9 && form1.pode_rper_id[5].checked) {
		alert("With Profits not available with a Protected Rights Annuity");
		return false;
	}
	if (form1.pode_poty_id.value == 9 && form1.pode_rper_id[6].checked) {
		alert("Unit Linked not available with a Protected Rights Annuity");
		return false;
	}

	//disallow PR with  zero or 1/3 prov
	if (form1.pode_poty_id.value == 9 && (form1.pode_sppr_id[0].checked || form1.pode_sppr_id[1].checked)) {
		alert("You have indicated that you are married and that you require a Protected Rights annuity. Legislation states that you must have a spouse’s pension equal to at least 50% of your pension.");
		return false;
	}
	
	//if (form1.pode_rper_id[5].checked || form1.pode_rper_id[6].checked) {
	if (form1.pode_rper_id[5].checked) {
		if (!confirm("The higher the ABR that you have chosen the greater the risk you are taking with your pension income, which could decrease in future years. However the higher the ABR/AGR chosen the greater your initial pension income will be.\n\nPress OK to continue, or Cancel to change your selections.")) {
			return false;
		}
	}		
	if (form1.pode_rper_id[5].checked && form1.pode_rper_id_perc_6.value=="") {
		alert("Please select an Assumed Bonus Rate")
		return false;
	}		
	//if (form1.pode_rper_id[6].checked && form1.pode_rper_id_perc_7.value=="") {
	//	alert("Please select an Assumed Growth Rate")
	//	return false;
	//}		
}

function valid_5() {

	if((form1.pode_poty_id.value == "9") && (form1.pode_gupe_id[2].checked)) {
		alert("Unfortunately, legislation limits the guaranteed period of a Protected Rights annuity to 5 years.\nThe option has been changed to 5 years, you may now proceed.");
		form1.pode_gupe_id[1].checked = true;
		return false;
	}
	if(form1.clde_smoker.value == 1 && (form1.clde_smoker_cigarettes.value == "" || form1.clde_smoker_cigarettes.value == 0) && (form1.clde_smoker_tobacco.value == "" || form1.clde_smoker_tobacco.value == 0)) {
		alert("As a smoker, please enter a value for cigarettes or tobacco ounces");
		form1.clde_smoker_cigarettes.focus()
		return false;
	}
	else {
		if(form1.clde_smoker_cigarettes.value != "") {
			if(isNaN(form1.clde_smoker_cigarettes.value) || form1.clde_smoker_cigarettes.value < 0 || form1.clde_smoker_cigarettes.value > 120) {
				alert("For cigarettes per day, acceptable values are 1 - 120");
				form1.clde_smoker_cigarettes.value="";
				form1.clde_smoker_cigarettes.focus()
				return false;
			}
		}		
		if(form1.clde_smoker_tobacco.value != "") {
			if(isNaN(form1.clde_smoker_tobacco.value) || form1.clde_smoker_tobacco.value < 0 || form1.clde_smoker_tobacco.value > 20) {
				alert("For tobacco ounces per day, acceptable values are 0.1 - 20");
				form1.clde_smoker_tobacco.value="";
				form1.clde_smoker_tobacco.focus()
				return false;
			}		
		}
	}
	if(form1.clde_life_impediment_diabetes.value == 1 && form1.clde_life_impediment_diabetes_treatment.value == "") {
		alert("As a diabetic, please choose the appropriate treatment");
		form1.clde_life_impediment_diabetes_treatment.focus()
		return false;
	}
	if(form1.clde_life_impediment_diabetes.value == 0 && form1.clde_life_impediment_diabetes_treatment.value != "") {
		alert("Please confirm that you are a diabetic");
		form1.clde_life_impediment_diabetes.focus()
		return false;
	}
		
	if (form1.clde_smoker.value == 1 || form1.clde_life_impediment.value == 1) {
		if (!confirm("The health questions you have answered will determine whether you qualify for a 'Lifestyle' annuity from the product providers available on this site. You may however also be eligible for an enhanced annuity due to medical conditions that may affect your life expectancy, known as an 'Impaired Life' annuity. If you believe that you may qualify for an impaired life annuity, please contact us to complete a more detailed medical questionnaire.\n\nPress OK to continue, or Cancel to change your selections.")) {
			return false;
		}
	}		
		
}

//Begin dHTML Toolltip Timer
var tipTimer;
//End dHTML Toolltip Timer




function locateObject(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=locateObject(n,d.layers[i].document); return x;
}


function hideTooltip(object)
{
if (document.all)
{
	document.getElementById(object).style.display="none";
	document.getElementById(object).style.left = 1;
	document.getElementById(object).style.top = 1;
return false
}
else if (document.getElementById || document.layers)
{
	document.getElementById(object).style.display="none";
	document.getElementById(object).left = 1;
	document.getElementById(object).top = 1;
	return false
}
else
	return true
}

function showTooltip(object,e, tipContent)
{
	var backcolor="#ffffff", bordercolor="#000000", textcolor="#000000", displaytime="100000", direction="up";
	
	window.clearTimeout(tipTimer)
	if (document.all) //IE
		{
			document.getElementById(object).style.top=document.body.scrollTop+event.clientY+20

			document.getElementById(object).innerHTML='<table style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 11px; border: '+bordercolor+'; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; background-color: '+backcolor+'" width="10" border="0" cellspacing="1" cellpadding="1"><tr><td nowrap style="padding:4px;"><font style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 11px; color: '+textcolor+'">'+unescape(tipContent)+'</font></td></tr></table> '

			if ((e.x + document.getElementById(object).clientWidth) > (document.body.clientWidth + document.body.scrollLeft))
				{
					document.getElementById(object).style.left = (document.body.clientWidth + document.body.scrollLeft) - locateObject(object).clientWidth-120;
				}
			else
			{
			document.getElementById(object).style.left=document.body.scrollLeft+event.clientX
			}
		document.getElementById(object).style.display="";
		tipTimer=window.setTimeout("hideTooltip('"+object+"')", displaytime);
		return true;
		}
	else if (document.getElementById) //FF
		{
		//alert(document.getElementById(object));
		document.getElementById(object).innerHTML='<table width="10" border="0" cellspacing="1" cellpadding="1"><tr bgcolor="'+bordercolor+'"><td><table width="10" border="0" cellspacing="0" cellpadding="2"><tr bgcolor="'+backcolor+'"><td nowrap><font style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 11px; color: '+textcolor+'">'+unescape(tipContent)+'</font></td></tr></table></td></tr></table>';
		//document.getElementById(object).document.close()
		document.getElementById(object).top=100;

		if ((e.x + document.getElementById(object).width) > (window.pageXOffset + window.innerWidth))
			{
				document.getElementById(object).left = window.innerWidth - document.getElementById(object).width-10;
			}
		else
			{
			document.getElementById(object).left=e.x;
			}
		//locateObject(object).visibility="show";
		document.getElementById(object).style.display="";
		tipTimer=window.setTimeout("hideTooltip('"+object+"')", displaytime);
		return true;
	}		
	else if (document.layers) //NN
		{
		alert(object);
		locateObject(object).document.write('<table width="10" border="0" cellspacing="1" cellpadding="1"><tr bgcolor="'+bordercolor+'"><td><table width="10" border="0" cellspacing="0" cellpadding="2"><tr bgcolor="'+backcolor+'"><td nowrap><font style="font-family: Tahoma, Arial, Helvetica, sans-serif; font-size: 11px; color: '+textcolor+'">'+unescape(tipContent)+'</font></td></tr></table></td></tr></table>')
		locateObject(object).document.close()
		locateObject(object).top=e.y+20

		if ((e.x + locateObject(object).clip.width) > (window.pageXOffset + window.innerWidth))
			{
				locateObject(object).left = window.innerWidth - locateObject(object).clip.width-10;
			}
		else
			{
			locateObject(object).left=e.x;
			}
		//locateObject(object).visibility="show";
		locateObject(object).style.display="";
		tipTimer=window.setTimeout("hideTooltip('"+object+"')", displaytime);
		return true;
	}
	else
	{
		return true;
	}
}


function toggleMenu(currMenu)
	{
	if (document.getElementById)
		{
		thisMenu = document.getElementById(currMenu).style
			if (thisMenu.display == "block")
				{thisMenu.display = "none"}
			else
				{thisMenu.display = "block"}
			return false
		}

}