﻿var me_lastPostcodeChecked = null;

var me_detailedPolicyTypes = { remortgage: {ltvPercent: 95.0, id: 1}, firstTimeBuyer: {ltvPercent: 95.0, id: 2}, selfCertifyRemortgage: {ltvPercent: 85.0, id: 3}, selfCertifyOther: {ltvPercent: 85.0, id: 4}, buyToLet: {ltvPercent: 85.0, id: 5}, purchase: {ltvPercent: 95.0, id: 6}, adverseRemortgage: {ltvPercent: 80.0, id: 7}, adverseOther: {ltvPercent: 80.0, id: 8} };

//// URLs for web services on hades
var me_ajaxTestBrokerSearchUrl = 'localhost:2263/Partners/YourMortgage/Enquiry/SearchBroker.aspx';
var me_ajaxTestProcessLeadUrl = 'localhost:2263/Partners/YourMortgage/Enquiry/SubmitLead.aspx';


// URLs for web services
var me_ajaxBrokerSearchUrl = 'www.moneyexpert.com/Partners/YourMortgage/Enquiry/SearchBroker.aspx';
var me_ajaxProcessLeadUrl = 'www.moneyexpert.com/Partners/YourMortgage/Enquiry/SubmitLead.aspx';

//var me_ajaxTestBrokerSearchUrl = 'moneyexpert.com/Partners/YourMortgage/Search/SearchBroker.aspx';
//var me_ajaxTestProcessLeadUrl = 'moneyexpert.com/Partners/YourMortgage/Enquiry/SubmitLead.aspx';




/* ==================================================================================
   MORTGAGE FORM VALIDATION SETUP
   ================================================================================== */

// Step 1

addValidation( [ $('ME_PolicyType') ], [{validator: radioButtonListHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_PolicyType_Label'), $('ME_PolicyType_ErrorAdvice'), false, false, true, $('ME_Step1_NextButton'), true, true, false, null, null, null );
addValidation( [ $('ME_CriticalIllness') ], [{validator: radioButtonListHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_CriticalIllness_Label'), $('ME_CriticalIllness_ErrorAdvice'), false, false, true, $('ME_Step1_NextButton'), true, true, false, null, null, null );
addValidation( [ $('ME_CoverYouNeed') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter value, e.g. £225,500"]}, {validator: ValidIntegerValidator, validationData: null, errorMessages: ["Enter valid value"]}, {validator: GreaterThanValueValidator, validationData: {minValue: 24999}, errorMessages: ["Must be £25,000 or over"]}, {validator: LessThanValueValidator, validationData: {maxValue: 5000000}, errorMessages: ["Must be under £5,000,000"]} ], $('ME_CoverYouNeed_Label'), $('ME_CoverYouNeed_ErrorAdvice'), true, true, true, $('ME_Step1_NextButton'), false, true, false, null, null, null, [addCommasToNumberTextbox] );


// Step 2
addValidation( [ $('ME_PolicyLength') ], [{validator: selectHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_PolicyLength_Label'), $('ME_PolicyLength_ErrorAdvice'), false, false, true, $('ME_Step2_NextButton'), true, true, false, null, null, null );
addValidation( [ $('ME_TypeofCover') ], [{validator: radioButtonListHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_TypeofCover_Label'), $('ME_TypeofCover_ErrorAdvice'), false, false, true, $('ME_Step2_NextButton'), true, true, false, null, null, null );


// Step 3
addValidation( [ $('ME_FirstName') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter first name"]}, {validator: RegexValidator, validationData: "^[-`'\\wÁáĆćÉéÍíĹĺŃńÓóŔŕŚśÚúÝýŹźÀàÈèÌìÒòÙùÂâĈĉÊêĜĝĤĥÎîĴĵÔôŜŝÛûŴŵŶŷÄäËëÏïÖöÜüŸÿßÃãẼẽĨĩÑñÕõŨũỸỹÇçĢģĶķĻļŅņŖŗŞşŢţĐđŮůǍǎČčĎďĚěǏǐĽľŇňǑǒŘřŠšŤťǓǔŽžĀāĒēĪīŌōŪūǢǣǖǘǚǜĂăĔĕĞğĬĭŎŏŬŭĊċĖėĠġİıŻżĄąĘęĮįǪǫŲųḌḍḤḥḶḷḸḹṂṃṆṇṚṛṜṝṢṣṬṭŁłŐőŰűĿŀĦħÐðÞþŒœÆæØøÅåƏə\\s]{2,50}$", errorMessages: ["Enter valid name"]}, {validator: RegexValidator, validationData: "^[\\D]{2,}$", errorMessages: ["Enter valid name"]} ], $('ME_FirstName_Label'), $('ME_FirstName_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_LastName') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter last name"]}, {validator: RegexValidator, validationData: "^[-`'\\wÁáĆćÉéÍíĹĺŃńÓóŔŕŚśÚúÝýŹźÀàÈèÌìÒòÙùÂâĈĉÊêĜĝĤĥÎîĴĵÔôŜŝÛûŴŵŶŷÄäËëÏïÖöÜüŸÿßÃãẼẽĨĩÑñÕõŨũỸỹÇçĢģĶķĻļŅņŖŗŞşŢţĐđŮůǍǎČčĎďĚěǏǐĽľŇňǑǒŘřŠšŤťǓǔŽžĀāĒēĪīŌōŪūǢǣǖǘǚǜĂăĔĕĞğĬĭŎŏŬŭĊċĖėĠġİıŻżĄąĘęĮįǪǫŲųḌḍḤḥḶḷḸḹṂṃṆṇṚṛṜṝṢṣṬṭŁłŐőŰűĿŀĦħÐðÞþŒœÆæØøÅåƏə\\s]{2,50}$", errorMessages: ["Enter valid name"]}, {validator: RegexValidator, validationData: "^[\\D]{2,}$", errorMessages: ["Enter valid name"]} ], $('ME_LastName_Label'), $('ME_LastName_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_Gender') ], [{validator: radioButtonListHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_Gender_Label'), $('ME_Gender_ErrorAdvice'), false, false, true, $('ME_Step3_FinishButton'), true, true, false, null, null, null );
addValidation( [ $('ME_Smoker') ], [{validator: radioButtonListHasValueValidator, validationData: null, errorMessages: ["Make a selection"]}], $('ME_Smoker_Label'), $('ME_Smoker_ErrorAdvice'), false, false, true, $('ME_Step3_FinishButton'), true, true, false, null, null, null );
addValidation( [ $('ME_EmailAddress') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter e-mail address"]}, {validator: EmailAddressValidator, validationData: null, errorMessages: ["Invalid e-mail address"]} ], $('ME_EmailAddress_Label'), $('ME_EmailAddress_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_PhoneNumber') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter number"]}, {validator: UkPhoneNumberValidator, validationData: null, errorMessages: UkPhoneNumberErrorMessages} ], $('ME_PhoneNumber_Label'), $('ME_PhoneNumber_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_AlternatePhoneNumber') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter number"]}, {validator: UkPhoneNumberValidator, validationData: null, errorMessages: UkPhoneNumberErrorMessages} ], $('ME_AlternatePhoneNumber_Label'), $('ME_AlternatePhoneNumber_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_FirstLineAddress') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter address"]}, {validator: RegexValidator, validationData: "^[-`'&:\\.,/\\\\\\(\\)\\wÁáĆćÉéÍíĹĺŃńÓóŔŕŚśÚúÝýŹźÀàÈèÌìÒòÙùÂâĈĉÊêĜĝĤĥÎîĴĵÔôŜŝÛûŴŵŶŷÄäËëÏïÖöÜüŸÿßÃãẼẽĨĩÑñÕõŨũỸỹÇçĢģĶķĻļŅņŖŗŞşŢţĐđŮůǍǎČčĎďĚěǏǐĽľŇňǑǒŘřŠšŤťǓǔŽžĀāĒēĪīŌōŪūǢǣǖǘǚǜĂăĔĕĞğĬĭŎŏŬŭĊċĖėĠġİıŻżĄąĘęĮįǪǫŲųḌḍḤḥḶḷḸḹṂṃṆṇṚṛṜṝṢṣṬṭŁłŐőŰűĿŀĦħÐðÞþŒœÆæØøÅåƏə\\s]{2,128}$", errorMessages: ["Enter valid address"]} ], $('ME_FirstLineAddress_Label'), $('ME_FirstLineAddress_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
var me_postcodeValidator = addValidation( [ $('ME_Postcode') ], [{validator: textboxHasValueValidator, validationData: null, errorMessages: ["Enter postcode"]}, {validator: PostcodeValidator, validationData: null, errorMessages: ["Enter valid postcode"]} ], $('ME_Postcode_Label'), $('ME_Postcode_ErrorAdvice'), true, false, true, $('ME_Step3_FinishButton'), false, false, false, null, null, null );
addValidation( [ $('ME_DateOfBirth_Day'), $('ME_DateOfBirth_Month'), $('ME_DateOfBirth_Year') ], [{validator: dateGroupValidator, validationData: null, errorMessages: ["Select date of birth", "Invalid date"]}, {validator: ageValidator, validationData: {minAge: 18, maxAge: 65}, errorMessages: ["Must be 18 or over", "Must be 65 or under"]} ], $('ME_DateOfBirth_Label'), $('ME_DateOfBirth_ErrorAdvice'), false, false, true, $('ME_Step3_FinishButton'), true, false, false, null, null, null );

/* ==================================================================================
   MORTGAGE FORM EVENT SETUP
   ================================================================================== */

// Mortgage Type on Step 1 - defines what is visible on Step 2
addEvent( $('ME_PolicyType'), 'onclick', policyTypeChange );
addEvent( $('ME_PolicyType_2'), 'onclick', policyTypeChange );

addEvent( $('ME_CriticalIllness'), 'onclick', criticalIllnessChange );
addEvent( $('ME_CriticalIllness_2'), 'onclick', criticalIllnessChange );

// Back, Next, Finish buttons
addEvent( $('ME_Step1_NextButton'), 'onclick', ME_Step1_NextButton_Event_Click );

addEvent( $('ME_Step2_BackButton'), 'onclick', ME_Step2_BackButton_Event_Click );
addEvent( $('ME_Step2_NextButton'), 'onclick', ME_Step2_NextButton_Event_Click );

addEvent( $('ME_Step3_BackButton'), 'onclick', ME_Step3_BackButton_Event_Click );
addEvent( $('ME_Step3_FinishButton'), 'onclick', ME_Step3_FinishButton_Event_Click );

// Monitor Postcode field for changes
addEvent( $('ME_Postcode'), 'onkeyup', getBrokerName );
addEvent( $('ME_Postcode'), 'onblur', getBrokerName );
addEvent( $('ME_Postcode'), 'onchange', getBrokerName );

function criticalIllnessChange()
{
}

function policyTypeChange()
{

	if( this == window )
	{
		sessionStartPing( "POLICYHTML10", "POLICY" );
	}

}



/* ==================================================================================
   MORTGAGE FORM BUTTON EVENT HANDLERS
   ================================================================================== */

function findElementPosition(element)
{
	var curleft = curtop = 0;
	if (element.offsetParent)
	{
		curleft = element.offsetLeft;
		curtop = element.offsetTop;
		while (element = element.offsetParent)
		{
			curleft += element.offsetLeft;
			curtop += element.offsetTop;
		}

	}

	return {left: curleft, top: curtop};
}

// Step 1
function ME_Step1_NextButton_Event_Click( event )
{
	var event = new Event(event);

	setCurrentControlFocus( event.target );

	if( validateMultiple( event ) )
	{
		// Change the visible wizard step	
		$('ME_Step1').className = 'ME_FormStep ME_FormStepHidden';
		$('ME_Step2').className = 'ME_FormStep ME_FormStepVisible';

		
	}
	
}

// Step 2
function ME_Step2_BackButton_Event_Click( event )
{
  
	var event = new Event(event);
	setCurrentControlFocus( event.target );

	$('ME_Step2').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step1').className = 'ME_FormStep ME_FormStepVisible';
	
}

function ME_Step2_NextButton_Event_Click( event )
{

	var event = new Event(event);
	setCurrentControlFocus( event.target );
	
	if( validateMultiple( event ) )
	{
		$('ME_Step2').className = 'ME_FormStep ME_FormStepHidden';

		// Copy off the values from PropertyValue and AmountToBorrow into the replica boxes on Step2b. If the
		// LTV is out of whack then we can re-present the boxes to the user and get them to adjust the values
		$('ME_PropertyValue2').value = $('ME_PropertyValue').value;
		$('ME_AmountToBorrow2').value = $('ME_AmountToBorrow').value;

		// Otherwise, if Loan-To-Value is fine, jump to last Step (Contact Details) as normal
		$('ME_Step3').className = 'ME_FormStep ME_FormStepVisible';

		// Update the status of this session in the database
		sessionStepPing( "STEP3", 0 );

		// We call this here in case they've gone back through the form and changed an earlier value - we now
		// need to get a new broker name for them as the type of lead might have changed
		getBrokerName(true);
			
		
	}
}





// Step 3
function ME_Step3_BackButton_Event_Click( event )
{
	var event = new Event(event);
	setCurrentControlFocus( event.target );

	$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step2').className = 'ME_FormStep ME_FormStepVisible';
}

function ME_Step3_FinishButton_Event_Click( event )
{
	var event = new Event(event);
	setCurrentControlFocus( event.target );

	if( validateMultiple( event ) )
	{
		$('ME_Step3_FinishButton').disabled = true;
		$('ME_Step3_FinishButton').value = "Submitting details...";
		
		setTimeout('revertSubmitButton()', 20000);

		submitLead();
	}
	
	return false;
}

function revertSubmitButton()
{
	$('ME_Step3_FinishButton').disabled = false;
	$('ME_Step3_FinishButton').value = "Submit";
	
	return;
}

function ProcessLeadCallBackMEX()
{	
	$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step4').className = 'ME_FormStep ME_FormStepVisible';
   
}

function PublishError()
{
	$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step4b').className = 'ME_FormStep ME_FormStepVisible';
   
}



/* ==================================================================================
   JSON AJAX MORTGAGE CALMEACK FUNCTIONS
   ================================================================================== */

function BrokerSearchCallback(BrokerDetails)
{
    
	if( BrokerDetails )
	{
		if( BrokerDetails.Error.ErrorNumber == '0' )
		{
		    
			var BrokerText = BrokerDetails.Broker.DisplayText;
    			
    			$('ME_Consent').innerHTML  = "Based on your requirements we have selected the FSA regulated broker <strong>" + BrokerText + "</strong> Click 'Submit' to confirm that you are happy to be contacted by telephone or email regarding your life insurance policy.";
                $('ME_Consent').style.visibility = 'visible';
			    $('hidBrokerGuid').value = BrokerDetails.Broker.Id;
			    $('ME_Step3_FinishButton').disabled = false;
			    $('ME_Step3_FinishButton').value = "Submit";
		}
		else
		{
			$('ME_BrokerName').innerHTML = "There has been a problem trying to find an FSA regulated broker to pass on your life insurance details.";
			$('ME_Consent').style.visibility = 'hidden';
			$('hidBrokerGuid').value = BrokerDetails.Broker.Id;
			$('ME_SessionId').value = '';
		}
	}
}

function WriteBrokerName (returnData)
{
    $('ME_Consent').innerHTML = returnData;
    $('ME_Consent').innerHTML += 'Click <b>SUBMIT</b> to confirm that you are happy to be contacted by telephone or email.';    
    $('ME_Consent').style.visibility = 'visible';
    $('ME_Step3_FinishButton').disabled = false;
	$('ME_Step3_FinishButton').value = "Submit";
    
    
    	
}

     
function ProcessLeadCallback( returnData )
{
	var grossLeadPrice = 0;
	if( returnData.Lead && returnData.Lead.GrossPrice )
	{
		grossLeadPrice = returnData.Lead.GrossPrice;
	}

	switch( returnData.Error.ErrorNumber )
	{
		case '235':
		case '0':
		{
			// Update the status of this session in the database
			sessionStepPing( "FINISH", 1, "&lp=" + grossLeadPrice );

			if( me_redirectThankYouPage )
			{
				if( me_leadPriceQueryStringParameterName )
				{
					if( me_thankYouPageHref.indexOf("?") > 0 )
					{
						me_thankYouPageHref += "&" + me_leadPriceQueryStringParameterName + "=" + grossLeadPrice;
					}
					else
					{
						me_thankYouPageHref += "?" + me_leadPriceQueryStringParameterName + "=" + grossLeadPrice;
					}
				}
							
				window.location.href = me_thankYouPageHref;
			}
			else
			{
				$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
				$('ME_Step4').className = 'ME_FormStep ME_FormStepVisible';
				createMarketingMessageElement(returnData.Lead.BrokerMarketingMessage);
			}
			
			break;
		}

		case '100':
		{
			setControlToErrorState( me_postcodeValidator, "Enter valid UK postcode" );
			break;
		}
		
		default:
		{
			// Unknown error
			break;
		}
	}
}


function ProcessLeadCallBackMEX()
{	
	$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step4').className = 'ME_FormStep ME_FormStepVisible';
   
}
function FriendlyErrorMessage(returnData)
{
    if (returnData)
        {
            $('ME_Consent').innerHTML = returnData;    
            $('ME_Consent').style.visibility = 'visible';
            $('ME_Step3_FinishButton').disabled = false;
	        $('ME_Step3_FinishButton').value = "Submit";
	    }
	else 
	    {
	        $('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	        $('ME_Step4b').className = 'ME_FormStep ME_FormStepVisible';
	    }
}	
	
function PublishError()
{
	$('ME_Step3').className = 'ME_FormStep ME_FormStepHidden';
	$('ME_Step4b').className = 'ME_FormStep ME_FormStepVisible';
   
}

/* ==================================================================================
   JSON AJAX MORTGAGE CALLOUT FUNCTIONS
   ================================================================================== */


function getBrokerName(overrideIdenticalPostcodeCheck)
{
  
	var postcode = $('ME_Postcode').value.trim().toUpperCase();

	if( me_lastPostcodeChecked == postcode && overrideIdenticalPostcodeCheck != true )
	{
		return;
	}
	else
	{
		me_lastPostcodeChecked = postcode;
	}

	if( postcodeTest( postcode ) != -1 )
	{
		$('ME_Consent').style.visibility = 'hidden';
		$('ME_SessionId').value = '';
		$('ME_Step3_FinishButton').disabled = false;
		$('ME_Step3_FinishButton').value = "Submit";
		return;
	}

	$('ME_Step3_FinishButton').disabled = true;
	$('ME_Step3_FinishButton').value = "Submitting details...";

	var queryString = buildBasicQueryString();
    
   
	if( me_testing )
	{
		remoteJson({"uri": getPageProtocol()  + me_ajaxTestBrokerSearchUrl + queryString});
		
        //alert(getPageProtocol()  + me_ajaxTestBrokerSearchUrl + queryString);
		 
	}
	else
	{
		remoteJson({"uri": getPageProtocol() + me_ajaxBrokerSearchUrl + queryString});
	}
 
	return true;
}

function buildBasicQueryString()
{
	var postcode = $('ME_Postcode').value.trim().toUpperCase();

	var queryString = '?';
	

    queryString += 'Type=Life';
	queryString += '&Smoker=' + getRadioButtonListSelectedValue('ME_Smoker');
	queryString += '&DOBday=' + $('ME_DateOfBirth_Day').value;
	queryString += '&DOBmonth=' + $('ME_DateOfBirth_Month').value;
	queryString += '&DOByear=' + $('ME_DateOfBirth_Year').value;
   	queryString += '&CriticalIllness=' + isCriticalIllness();
	queryString += '&CoverAmount=' + $('ME_CoverYouNeed').value;
   	queryString += '&Policy_Term=' + $('ME_PolicyLength').value;
   	queryString += '&PolicyType=' + getRadioButtonListSelectedValue('ME_PolicyType');
    queryString += '&FormCategory=1'; // full form - 2 used to be
    queryString += '&Postcode=' + escape($('ME_Postcode').value);
	queryString += '&IPAddress=1.1.1.1' ;
	queryString += '&AffiliateID=' + (me_testing ? me_testAffiliateId : me_affiliateId);
   	queryString += '&Cover_Type=' + $('ME_TypeofCover').value;
    queryString += '&Title=&First_Name=' + $('ME_FirstName').value;
	queryString += '&Surname=' + $('ME_LastName').value;
	queryString += '&Gender=' + $('ME_Gender').value;
	queryString += '&adr1=' + $('ME_FirstLineAddress').value;
	queryString += '&adr2=&town=&county=';
	queryString += '&Home_Phone=' + $('ME_PhoneNumber').value;
	queryString += '&Work_Phone=' + $('ME_AlternatePhoneNumber').value;
	queryString += '&Mobile_Phone=&Email=' + $('ME_EmailAddress').value;
	queryString += '&hidBrokerGuid=' + $('hidBrokerGuid').value;
 
	return queryString;
}


function submitLead()
{

	if( $('ME_SessionId').value.length < 1 || $('ME_SessionId').value == '' )
	{   
	   getBrokerName();		
	}    
	
	var queryString = buildBasicQueryString();

	if( me_testing )
	{
	    remoteJson({"uri": getPageProtocol() + me_ajaxTestProcessLeadUrl + queryString});
	
	}
	else
	{
		remoteJson({"uri": getPageProtocol() + me_ajaxProcessLeadUrl + queryString});
	}
		
	//call final method
	//ProcessLeadCallBackMEX();
	
	return true;
}





/* ==================================================================================
   UTILITY FUNCTIONS - MORTGAGE SPECIFIC
   ================================================================================== */


function isSmoker()
{
	if( $('ME_Smoker').checked)
	{
		return 1;
	}
	
	return 0;
}

function isCriticalIllness()
{
	if( $('ME_CriticalIllness').checked)
	{
		return 1;
	}
	
	return 0;
}

function TypeOfCover()
{
	if( $('ME_TypeofCover').checked)
	{
		return 1;
	}
	
	return 2;
}


function GetAgeInYearsFromDOB(year,month,day)
{
    var now = new Date()
    var dob = new Date(parseInt(year),parseInt(month)-1,parseInt(day));
   
    var ms = now.getTime()-dob.getTime();
    var minutes = ms / 1000 / 60;
    var hours =  minutes / 60;
    var days =  hours / 24;
    var years = days / 365.25;

    return Math.floor(years);
}



function getPrivacyPolicyText()
{
    if(typeof(me_privacyPolicyUrl) != 'undefined' && me_privacyPolicyUrl != '')
    { 
        me_privacyPolicyUrl = me_privacyPolicyUrl.trim(); 
        
        if (!(me_privacyPolicyUrl.indexOf("http") >= 0 || me_privacyPolicyUrl.indexOf("https") >= 0 ))
            {me_privacyPolicyUrl = 'http://' + me_privacyPolicyUrl;}
            
        return '<a target=\'_blank\' href=\"' + me_privacyPolicyUrl + '\">privacy policy</a>.'; 
    }
    else
    {
        return 'privacy policy.';
    }
}    


// uses me_formPrefillQueryStringParameters to get names for qs parameter values like policyType, 
// creates an object with appropriate property names,
// then passes it to generic prefillForm function
function prefillFormFromQueryString()
{
   var prefillObject = {};
    convertQueryStringParamsToLower();
    
	if( me_queryObject[me_formPrefillQueryStringParameters.mortgageSize] )
	{    
	    prefillObject.mortgageSize = me_queryObject[me_formPrefillQueryStringParameters.mortgageSize];
	}
	
	if( me_queryObject[me_formPrefillQueryStringParameters.policyType] )
	{    
	    prefillObject.policyType = me_queryObject[me_formPrefillQueryStringParameters.policyType];
	}
	
	if( me_queryObject[me_formPrefillQueryStringParameters.mortgagePeriod] )
	{    
	    prefillObject.mortgagePeriod = me_queryObject[me_formPrefillQueryStringParameters.mortgagePeriod];
	}
	
	if( me_queryObject[me_formPrefillQueryStringParameters.propertyValue] )
	{    
	    prefillObject.propertyValue = me_queryObject[me_formPrefillQueryStringParameters.propertyValue];
	}
	
	if( me_queryObject[me_formPrefillQueryStringParameters.firstTimeBuyer] )
	{    
	    prefillObject.firstTimeBuyer = me_queryObject[me_formPrefillQueryStringParameters.firstTimeBuyer];
	}

	prefillForm(prefillObject)
}

function convertQueryStringParamsToLower()
{
    if( me_formPrefillQueryStringParameters.mortgageSize ) me_formPrefillQueryStringParameters.mortgageSize = me_formPrefillQueryStringParameters.mortgageSize.toLowerCase();
    if( me_formPrefillQueryStringParameters.policyType ) me_formPrefillQueryStringParameters.policyType = me_formPrefillQueryStringParameters.policyType.toLowerCase();
    if( me_formPrefillQueryStringParameters.mortgagePeriod ) me_formPrefillQueryStringParameters.mortgagePeriod = me_formPrefillQueryStringParameters.mortgagePeriod.toLowerCase();
    if ( me_formPrefillQueryStringParameters.propertyValue ) me_formPrefillQueryStringParameters.propertyValue = me_formPrefillQueryStringParameters.propertyValue.toLowerCase();
    if (me_formPrefillQueryStringParameters.firstTimeBuyer ) me_formPrefillQueryStringParameters.firstTimeBuyer = me_formPrefillQueryStringParameters.firstTimeBuyer.toLowerCase();
}

function prefillForm(prefillObject)
{

	if( prefillObject.policyType )
	{
		$('ME_PolicyType').checked = false;
		$('ME_PolicyType_2').checked = false;


		switch( prefillObject.policyType )
		{
		    // Decreasing (Mortgage) Term
			case '1': 
				$('ME_PolicyType_2').checked = true;
				break;
			// Level term
			case '3': 
				$('ME_PolicyType').checked = true;
				break;
			
		}
		
        policyTypeChange()
		
	}
	
	if( prefillObject.mortgageSize )
	{
		$('ME_AmountToBorrow').value = prefillObject.mortgageSize;
	}
	
	if( prefillObject.mortgagePeriod)
	{
	    $('ME_MortgagePeriod').value = prefillObject.mortgagePeriod;
	    if( prefillObject.mortgagePeriod != $('ME_MortgagePeriod').value)
	        {$('ME_MortgagePeriod').value = 25;}
	}
	
	if( prefillObject.propertyValue )
	{
		$('ME_PropertyValue').value = prefillObject.propertyValue;
	}

	if( prefillObject.firstTimeBuyer && ( prefillObject.firstTimeBuyer == 'true' || prefillObject.firstTimeBuyer == '1') )
	{
		$('ME_FirstTimeBuyer').checked = true;
	}
	else
	{
	    if(prefillObject.firstTimeBuyer == 'false' || prefillObject.firstTimeBuyer == '0')
		    $('ME_FirstTimeBuyer_1').checked = true;
	}
	
   if(me_formPrefillQueryStringParameters)
        $('ME_Form').style.display = '';

	if( prefillObject.mortgageSize && prefillObject.policyType )
	{

		var errors = 0;
		
		if( $('ME_Step1_NextButton').validators )
		{
			for( var i = 0 ; i < $('ME_Step1_NextButton').validators.length ; i++ )
			{
				errors += delayedValidate.attempt( null, $('ME_Step1_NextButton').validators[i] );
			}
		}

		if( errors == 0 )
		{
			// Change the visible wizard step	
			$('ME_Step1').className = 'ME_FormStep ME_FormStepHidden';
			$('ME_Step2').className = 'ME_FormStep ME_FormStepVisible';
		}
	}					
}

function createMarketingMessageElement(MarketingMessage)
{
    if(typeof(MarketingMessage) != 'undefined')
   {
        if(MarketingMessage != '')
        {
            MarketingMessage = MarketingMessage.replace(/&lt;/gi, '<').replace(/&gt;/gi, '>').replace(/&amp;/gi, '&').replace(/&quot;/gi, '"');
	    MarketingMessage = '<strong>A message from the broker</strong><br/>' + MarketingMessage;
            $('ME_Step4').innerHTML = '<tr><td class="ME_Headline">Finished</td></tr><tr><td class="ME_FormStepContent" id="ME_Step4_Content"><br />Thank you for your enquiry.<br /><br />Your adviser will be in touch with you shortly.<br /><br />' + MarketingMessage +'<br /><br /></td></tr>';
        }   
   }      
}

try

{

            if (document.location.href.indexOf("https") != 0)

            {

                        var wl_ord=new Date().getTime();

                        //document.write('<img  width="1" height="1" style="border-width\: 0\;" src="' + 'http://tu.connect.wunderloop.net/TU/483/1556/5912/?ord=' + wl_ord + '" />');

            }

}

catch(e){}
