
$(document).ready(function()
{
	
	
	  $(".collapseImg").hide(); 
	  
	  //toggle the componenet with class msg_body
	  $(".expand").click(function()
	  {
		  var id =  $(this).attr("id");
		  $(".faq_body"+id).slideToggle(600);
		  $("#expand"+id).hide();
		  $("#collapse"+id).show();  
		 
	  });
	  

	  
	  $(".show-popup-link").hover(
  function () {
    $("#select-tooltip").show();
  },
  function () {
     $("#select-tooltip").hide();
  }
);

	  
	  $(".collapse").click(function()
	  {
		  var id =  $(this).attr("id");
		  $(".faq_body"+id).slideToggle(600);
		  $("#expand"+id).show();
		  $("#collapse"+id).hide(); 
	 });
	
	  
	  $("#showpart2").show();
	  $("#showpart1").hide();
	    
	  
		$('#test').livequery('click', function(event){
				
					var v = $('#test-box').html();
					$.facebox(v);
				});
		
		$('#test2').livequery('click', function(event){
				
					alert("WORKS!");
				});
	  
		$("#showpart2").livequery('click', function(event){
		
			var formname = $("#form-name").val();
			if (formname == "form-debt-man")
			{
				if (validateDebtManagementPart1())
				 {
					 $("#form-error").hide(); // hide error messages on default;
					 $("#part1").hide();
					 $("#part2").show();
					 
					 $("#showpart2").hide();
					 $("#showpart1").show();	
				 } 	
			}else
			{
				 if (validatePart1())
				 {
					 $("#form-error").hide(); // hide error messages on default;
					 $("#part1").hide();
					 $("#part2").show();
					 
					 $("#showpart2").hide();
					 $("#showpart1").show();	
				 } 	
			}
		});


		
		/**
		* Check if valid email address
		*/
		function isValidEmail(str)
		{
			var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
			if (filter.test(str))
			{
				testresults=true;
			}
			else
			{
				testresults=false;
			}
				return (testresults);
		}
		
		$("#showpart1").livequery('click', function(event){
				 $("#part1").show();
				 $("#part2").hide();
				 
				 $("#showpart2").show();
				 $("#showpart1").hide();
		});
		
		 $(document).bind('close.facebox', function() {
			 $(".part1").show();
			 $(".part2").hide();
			 
			 $("#showpart2").show();
			 $("#showpart1").hide();
		 });
		 
		 
		 $('#query-form').ajaxForm( 
				 {
					beforeSubmit: addressValidation, //validate before submitting
					success: function(result) 
					{
					 	if (result != "OK" && result != "00, OK")
					 	{
					 		showErrorMessage(result);
					 		// hide loading message;
					 	}else
					 	{
					 		showSuccessMessage();
					 		//  hide loading message
					 	}
					}
				 });
		 
		 function showSuccessMessage()
		 {
			 $.facebox.close();
			 $("#form-error").hide();
			  self.parent.location = "/thank-you.php";
		 }
		 
		function showErrorMessage(message)
		{
			// strip off any numbers etc
			var v = message.split(",");
			message = v[1];
			$("#form-error").html("* ERROR: "+message);
			$("#form-error").show();
		}
		
		var isjointlife = false;
		/**
		* Amount of cover - Life 2 is not available in Single Life
		*/
		$('#protection-policy-type').change(function()
		{
			var value = $('select[name=single_life]').val();
			if (value == "Single life") {
			     // Hide life 2 cover amount
				 $('.amount-life-cover-2').hide();
			} else {
				 // Show life 2 cover amount
				 $('.amount-life-cover-2').show();
				 isjointlife = true;
			}
		});
		 
		/**
		 * Validate part 2 of form 1
		 */
		function validatePart1()
		{			 
			var OK = true;
			var policy_type = $("select[name=single_life]").val();
			var nameArr = "";
			var numArr = "";

			nameArr = new Array("coveramount1","term");
			if (isjointlife) {
				nameArr.push('coveramount2');
			}

			for (var i=0; i < nameArr.length;i++)
			{
				if ($("input[name="+nameArr[i]+"]").val()=="" || $("input[name="+nameArr[i]+"]").val()==null)
				{
					$("input[name="+nameArr[i]+"]").addClass("highlight-field");
					OK = false;
				}else
				{
					$("input[name="+nameArr[i]+"]").removeClass("highlight-field");
				}
			}
			
			// number validation
			var status1 = isNumber("Amount of cover - Life 1","coveramount1");
			var status2 = isNumber("Premium amount","premiumamount");
			var status3 = isNumber("Term","term");
			if (status1 == false | status2 == false  || status3 == false ){ OK = false;}
			
			
			if (!OK)
			{
				$("#form-error").show();
			}else
			{
				$("#form-error").show();
			}
			
			return OK;
		}
		
		function isNumber(fieldtitle,fieldname)
		{
			var val = $("input[name="+fieldname+"]").val();
			if (((val != null) || (val != "")) && (isNaN(val)))
			{
				$("#form-error").show();
				$("#form-error").html("* "+fieldtitle+" must be a number!");
				$("input[name="+fieldname+"]").addClass("highlight-field");
				return false;
			}
			
			return true;
		}
		
					 
		/**
		 * Validate part 1 of the form before moving part 2
		 */
		function addressValidation()
		{
			var OK = true;
			
			var nameArr = new Array("firstname","surname","home_tel","house","mob_tel","street","city","postcode","agree");
			for (var i=0; i < nameArr.length;i++)
			{
				if ($("input[name="+nameArr[i]+"]").val()=="" || $("input[name="+nameArr[i]+"]").val()==null)
				{
					$("input[name="+nameArr[i]+"]").addClass("highlight-field");
					OK = false;
					//?/alert("error: " +nameArr[i]);
				}else
				{
					$("input[name="+nameArr[i]+"]").removeClass("highlight-field");
				}

			}
					
			//check gender checkbox
			if ( ! $("input[name=agree]").is(':checked') )
			{
				OK = false;
				$("#form-agree").addClass("highlight-field");
			}else
			{
				$("#form-agree").removeClass("highlight-field");
			}
			
			//check gender checkbox
			if ( ! $("input[name=gender]").is(':checked') )
			{
				OK = false;
				$("#form-gender").addClass("highlight-field");
			}else
			{
				$("#form-gender").removeClass("highlight-field");
			}
			
			// Show email error if there is no other error. If there is another error we want to show that first
			if (OK)
			{
				var hphone = $("input[name=home_tel]").val();
				var mob = $("input[name=mob_tel]").val();
				// validate telephone numbers
				if (((hphone != null) || (hpone != "")) && (isNaN(hphone)))
				{
						$("#form-error").show();
						$("#form-error").html("* Home telephone number must be a number!");
						$("input[name=home_tel]").addClass("highlight-field");
						return false;
				}else		
				if (((mob != null) || (mob != "")) && (isNaN(mob)))
				{
						$("#form-error").show();
						$("#form-error").html("* Mobile number must be a number!");
						$("input[name=mob_tel]").addClass("highlight-field");
						return false;
				}
				
				$("input[name=mob_tel]").removeClass("highlight-field");
				$("input[name=home_tel]").removeClass("highlight-field");
				$("input[name=email]").removeClass("highlight-field");
			}
			
			if (!OK)
			{
				$("#form-error").html("* Please complete all fields!");
				$("#form-error").show();
			}else
			{
				$("#form-error").show();
			}
			
			// SHOW LOADING IMAGE
			if (OK)
			{
			 $("#form-error").html("<p><img src='/_media/images/ajax-loader.gif' border='0' align='center' /></p>");
			}
			return OK;
		}
		
		/**
		 * Validate part 1 of debt management form
		 */
		function validateDebtManagementPart1()
		{
			var OK = true;
			
			var nameArr = new Array("firstname","surname","home_tel","mob_tel","house","street","city","postcode");
			for (var i=0; i < nameArr.length;i++)
			{
				if ($("input[name="+nameArr[i]+"]").val()=="" || $("input[name="+nameArr[i]+"]").val()==null)
				{
					$("input[name="+nameArr[i]+"]").addClass("highlight-field");
					OK = false;
					//?/alert("error: " +nameArr[i]);
				}else
				{
					$("input[name="+nameArr[i]+"]").removeClass("highlight-field");
				}

			}
					
			
			//check gender checkbox
			if ( ! $("input[name=gender]").is(':checked') )
			{
				OK = false;
				$("#form-gender").addClass("highlight-field");
			}else
			{
				$("#form-gender").removeClass("highlight-field");
			}
					
			// Show email error if there is no other error. If there is another error we want to show that first
			if (OK)
			{		
				var hphone = $("input[name=home_tel]").val();
				var mob = $("input[name=mob_tel]").val();
				// validate telephone numbers
				if (((hphone != null) || (hpone != "")) && (isNaN(hphone)))
				{
						$("#form-error").show();
						$("#form-error").html("* Home telephone number must be a number!");
						$("input[name=home_tel]").addClass("highlight-field");
						return false;
				}else		
				if (((mob != null) || (mob != "")) && (isNaN(mob)))
				{
						$("#form-error").show();
						$("#form-error").html("* Mobile number must be a number!");
						$("input[name=mob_tel]").addClass("highlight-field");
						return false;
				}
				
				$("input[name=mob_tel]").removeClass("highlight-field");
				$("input[name=home_tel]").removeClass("highlight-field");

			}
			
			if (!OK)
			{
				$("#form-error").html("* Please complete all fields!");
				$("#form-error").show();
			}else
			{
				$("#form-error").show();
			}
			
			return OK;
		}
		 


		

		
	});	
	
	
	// Mortgage Type Select
	var mortgage_type = '';
	$('#mortgage-new-mortgage').livequery('click', function() {
		$('.non-new-mortgage').hide();
		mortgage_type = 'new';
	});
	
	$('#mortgage-existing-mortgage').livequery('click',function() {
		$('.non-new-mortgage').show();
		mortgage_type = 'existing';
	});
	
	// Retirement select
	var make_monthly_payments = false;
	var make_lump_sum = false;
	
	$('.make_monthly_payments_select').livequery('click',function() {
		var value = $(this).val();
		if (value == 'yes') {
			make_monthly_payments = true;
			$('#make_monthly_payments_row').show();
		} else {
			$('#make_monthly_payments_row').hide();
			make_monthly_payments = false;
			// empty field
			$('input[name=make_monthly_payments]').val('');
		} 
	});
	
	$('.make_sum_lump_select').livequery('click',function() {
		var value = $(this).val();
		if (value == 'yes') {
			$('#make_lump_sum_row').show();
			make_lump_sum = true;
		} else {
			$('#make_lump_sum_row').hide();
			make_lump_sum = false;
			// empty field
			$('input[name=make_sum_lump]').val('');
		} 
	});
			
	/**
	 * Validate part 1 of form 3
	 */
	function validateForm(form)
	{
		var OK = true;
		var nameArr = new Array();
		switch (form)
		{
			case "form3":
				if (mortgage_type == 'new') {
					nameArr = new Array("mortgage_amount","purchase_price","mortgage_term");
				} else {
					nameArr = new Array("mortgage_amount","purchase_price","mortgage_term","current_lender","interest_rate","monthly_payment");
				}
				if ( ! $("input[name=mortgage]").is(':checked') )
				{
					OK = false;
					$("#form-mortgage").addClass("highlight-field");
				}else
				{
					$("#form-mortgage").removeClass("highlight-field");
				}	
				break;
			case "form5":
				if (make_monthly_payments && make_lump_sum) 
				{
					nameArr = new Array("make_monthly_payments","make_sum_lump");
				} else if (!make_monthly_payments && make_lump_sum) {
					nameArr = new Array("make_sum_lump");
				}else if (make_monthly_payments && !make_lump_sum) {
					nameArr = new Array("make_monthly_payments");
				}
				
				var state1 = validateRadioButton("pension_current_employer");
				var state2 = validateRadioButton("pension_to_transfer");
				var state3 = validateRadioButton("buy_annuity");
				var state4 = validateRadioButton("make_sum_lump_select");
				var state5 = validateRadioButton("make_monthly_payments_select");
				if (state1 == false || state2 == false || state3 == false || state4 == false || state5 == false) { OK = false;}
				break;	
			case "form-annuity":
				nameArr = new Array("pension_fund_value");
				var OK = validateRadioButton("buy_annuity");
				break;
			case "form7":
				nameArr = new Array("buildings_level_cover","contents_level_cover");
				break;
			case "form4":
				nameArr = new Array("investment_amount");
				break;	
			case "debt-form":
				nameArr = new Array("debtamount");
				break;
				
		}
		
		for (var i=0; i < nameArr.length;i++)
		{
			if ($("input[name="+nameArr[i]+"]").val()=="" || $("input[name="+nameArr[i]+"]").val()==null)
			{
				$("input[name="+nameArr[i]+"]").addClass("highlight-field");
				OK = false;
			}else
			{
				$("input[name="+nameArr[i]+"]").removeClass("highlight-field");
			}
		}
		
		if (!OK)
		{
			$("#form-error").show();
		}else
		{
			$("#form-error").hide();
		}
		
		showPart2(OK);
		return OK;
	}
	
	function validateRadioButton(id)
	{
		if ( ! $("input[name="+id+"]").is(':checked') )
		{
			$("#form-"+id+"").addClass("highlight-field");
			return false;
		}else
		{				
			$("#form-"+id+"").removeClass("highlight-field");
			return true;
		}	
	}

	
	function showPart2(OK)
	{
		if (OK)
		{
			$("#form-error").hide(); // hide error messages on default;
			$("#part1").hide();
			$("#part2").show();
			$("#showpart2").hide();
			$("#showpart1").show();	
		}
	
	}

	
	
