/// <reference path="jquery-vsdoc.js"/>
jQuery('html').addClass("js");

jQuery.noConflict();

jQuery(document).ready(function()
{

    //external links excluding any elements which have child elements
    var h = window.location.host.toLowerCase();
    jQuery('a[href^="http://"]').not("[href*='" + h + "']").each(function()
    {
        jQuery(this).children().addClass("childExternal");
        if (!jQuery(this).children().hasClass("childExternal") && !jQuery(this).parent().is(":header"))
        {
            if (!jQuery(this).hasClass("relatedLink"))
            {
                jQuery(this).addClass('external').append("<span title='This is an external link'>&nbsp;</span>");
            }
        }
        jQuery(this).children().removeClass("childExternal");
    })

    //table row striping
    jQuery("table tbody").each(function()
    {
        jQuery(this).find("tr:odd").addClass('even');
        jQuery(this).find("tr:even").addClass('odd');
    })

    //document list striping
    jQuery(".documents ul.library").each(function()
    {
        jQuery(this).find("li:odd").addClass('even');
        jQuery(this).find("li:even").addClass('odd');
    })

    //toggle readyreckoner TEMP
    jQuery("#iReadyReckoner").toggleResult();
    jQuery("#iReadyReckonerAlt").toggleResult();

    //help
    jQuery("a.help").helpToggle();

    //JSON validation
    if (jQuery(".validate").length)
    {
        	jQuery(".validate").think_validation({
            formId: "form",
            urlString: window.location.href, //live data
            mainMessageId: "iError"
        });
    }

    //Polls labels
    /*jQuery('.pollResults').find("dd").each(function()
    {
        var ddWidth = parseInt(jQuery(this).css("width"));
        if (ddWidth >= 20)
        {
            jQuery(this).css("color", "#fff");
        }
    })*/


    //JSON self diagnosis
    if (jQuery("#iQuestions").length)
    {
        jQuery("#iQuestions").diagnosis();
    }


    //Homepage ajax tabs
    if (jQuery("#iTabs").length)
    {
        jQuery("#iTabs").ajaxTabs();
    }

    if (jQuery("#iPostcodeLookup").length)
    {
        jQuery("#iPostcodeLookup").postcodeLookup();
    }


    //Replace Postcode text on focus
    jQuery("#UserPreferences1_PostCodeText").replaceText();

    //news section tabs
    jQuery(".tabs").newsTabs();

    //ready reckoner results tabs
    jQuery(".rrtabs").readyReckonerTabs();

    jQuery("body").addClass("enhance");

    //add enhance stylesheet
    var root = jQuery('script[@src*="_assets/"]:eq(0)').attr('src').split('_assets')[0];
    jQuery('head link:eq(0)').after('<link rel="stylesheet" type="text/css" media="screen" href="' + root + '_assets/css/enhance.css" />');

    //lightbox
    if (jQuery(".lightbox").length)
    {
        jQuery(".lightbox").lightbox();
    }

    //big links
    if (typeof (redDotMode) == 'undefined')
    {
        jQuery("#iQuicklinks .quicklink").hover(function()
        {
            jQuery(this).addClass("hover");
        }, function()
        {
            jQuery(this).removeClass("hover");
        })
    .bigLink()
    }

    //toggle help
    if (typeof (redDotMode) == 'undefined')
    {
        jQuery(".faqs dl").toggleList();
    }


    //rounded corners
    jQuery("div.help, .sign-in, .message, #iBody, .filtered-list, .quote, #iQuicklinks .related, .highlightB, .highlightC, .group, .tariff-list, .highlight, .area-activity, .parish, .case-studies, .case-study, .contact, .task-list, .latest-list, .package-summary,.sub-pages, #homepageIncident, #homepageLinkLists .module, #homepageThreeLinks, .category").roundedCorners(true);
    jQuery("#iPrefHelp .information, .type-summary .summary").roundedCorners(false);
    jQuery("#iNavL2 h2").roundedCorners(true, 1);
    jQuery("#iPreferences .footer, .frmFooter").roundedCorners(true, 'blbr');
    jQuery(".your-area-map .postcode-search").roundedCorners(false, 'tltr');
    jQuery(".area-list .active").roundedCorners(true, 3);
    jQuery(".search-wrapper").roundedCorners(false, 'tlbl');


    //upload overlay
    if (jQuery("#uploadProgress").length)
    {
        jQuery("#uploadProgress").overlay();
    }

    //date picker

    //household - apply for reduced sewerage charge
    jQuery('#SelfDiagnosis_ucDateFormCompleted_dateSelectorDiv').dateHelper(
	{
	    linkId: 'SelfDiagnosis_ucDateFormCompleted_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#SelfDiagnosis_ucDateFormCompleted_iSelect_dd',
	    selectMthId: '#SelfDiagnosis_ucDateFormCompleted_iSelect_mm',
	    selectYrId: '#SelfDiagnosis_ucDateFormCompleted_iSelect_yyyy'
	});

    //household - update address details
    jQuery('#UpdateAddressDetails_ucDateStoppedWater_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdateAddressDetails_ucDateStoppedWater_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdateAddressDetails_ucDateStoppedWater_iSelect_dd',
	    selectMthId: '#UpdateAddressDetails_ucDateStoppedWater_iSelect_mm',
	    selectYrId: '#UpdateAddressDetails_ucDateStoppedWater_iSelect_yyyy'
	});

    jQuery('#UpdateAddressDetails_ucTenancyDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdateAddressDetails_ucTenancyDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdateAddressDetails_ucTenancyDate_iSelect_dd',
	    selectMthId: '#UpdateAddressDetails_ucTenancyDate_iSelect_mm',
	    selectYrId: '#UpdateAddressDetails_ucTenancyDate_iSelect_yyyy'
	});

    jQuery('#UpdateAddressDetails_ucDateStartUsingWater_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdateAddressDetails_ucDateStartUsingWater_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdateAddressDetails_ucDateStartUsingWater_iSelect_dd',
	    selectMthId: '#UpdateAddressDetails_ucDateStartUsingWater_iSelect_mm',
	    selectYrId: '#UpdateAddressDetails_ucDateStartUsingWater_iSelect_yyyy'
	});

    //household - provide a meter reading
    jQuery('#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReading_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_yyyy'
	});

    //household - apply for a meter
    jQuery('#ApplyForAMeter_ucMovingDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ApplyForAMeter_ucMovingDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ApplyForAMeter_ucMovingDate_iSelect_dd',
	    selectMthId: '#ApplyForAMeter_ucMovingDate_iSelect_mm',
	    selectYrId: '#ApplyForAMeter_ucMovingDate_iSelect_yyyy'
	});

    //household - leakage allowance
    jQuery('#LeakageAllowance_ucDateOfLeak_dateSelectorDiv').dateHelper(
	{
	    linkId: 'LeakageAllowance_ucDateOfLeak_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#LeakageAllowance_ucDateOfLeak_iSelect_dd',
	    selectMthId: '#LeakageAllowance_ucDateOfLeak_iSelect_mm',
	    selectYrId: '#LeakageAllowance_ucDateOfLeak_iSelect_yyyy'
	});

    jQuery('#LeakageAllowance_ucDateLeakRepaired_dateSelectorDiv').dateHelper(
	{
	    linkId: 'LeakageAllowance_ucDateLeakRepaired_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#LeakageAllowance_ucDateLeakRepaired_iSelect_dd',
	    selectMthId: '#LeakageAllowance_ucDateLeakRepaired_iSelect_mm',
	    selectYrId: '#LeakageAllowance_ucDateLeakRepaired_iSelect_yyyy'
	});

    jQuery('#LeakageAllowance_ucMeterReading1_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'LeakageAllowance_ucMeterReading1_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#LeakageAllowance_ucMeterReading1_ucDate_iSelect_dd',
	    selectMthId: '#LeakageAllowance_ucMeterReading1_ucDate_iSelect_mm',
	    selectYrId: '#LeakageAllowance_ucMeterReading1_ucDate_iSelect_yyyy'
	});

    jQuery('#LeakageAllowance_ucMeterReading2_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'LeakageAllowance_ucMeterReading2_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#LeakageAllowance_ucMeterReading2_ucDate_iSelect_dd',
	    selectMthId: '#LeakageAllowance_ucMeterReading2_ucDate_iSelect_mm',
	    selectYrId: '#LeakageAllowance_ucMeterReading2_ucDate_iSelect_yyyy'
	});

    jQuery('#LeakageAllowance_ucDateCompleted_dateSelectorDiv').dateHelper(
	{
	    linkId: 'LeakageAllowance_ucDateCompleted_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#LeakageAllowance_ucDateCompleted_iSelect_dd',
	    selectMthId: '#LeakageAllowance_ucDateCompleted_iSelect_mm',
	    selectYrId: '#LeakageAllowance_ucDateCompleted_iSelect_yyyy'
	});

    //household - apply for watercare
    jQuery('#WaterCare_ucDateFormCompleted_dateSelectorDiv').dateHelper(
	{
	    linkId: 'WaterCare_ucDateFormCompleted_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#WaterCare_ucDateFormCompleted_iSelect_dd',
	    selectMthId: '#WaterCare_ucDateFormCompleted_iSelect_mm',
	    selectYrId: '#WaterCare_ucDateFormCompleted_iSelect_yyyy'
	});

    //business - update premises details
    jQuery('#UpdatePremisesDetails_ucPreviousDateStopped_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdatePremisesDetails_ucPreviousDateStopped_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdatePremisesDetails_ucPreviousDateStopped_iSelect_dd',
	    selectMthId: '#UpdatePremisesDetails_ucPreviousDateStopped_iSelect_mm',
	    selectYrId: '#UpdatePremisesDetails_ucPreviousDateStopped_iSelect_yyyy'
	});

    jQuery('#UpdatePremisesDetails_ucDateTenancyStart_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdatePremisesDetails_ucDateTenancyStart_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdatePremisesDetails_ucDateTenancyStart_iSelect_dd',
	    selectMthId: '#UpdatePremisesDetails_ucDateTenancyStart_iSelect_mm',
	    selectYrId: '#UpdatePremisesDetails_ucDateTenancyStart_iSelect_yyyy'
	});

    jQuery('#UpdatePremisesDetails_ucDateStartUsingWater_dateSelectorDiv').dateHelper(
	{
	    linkId: 'UpdatePremisesDetails_ucDateStartUsingWater_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#UpdatePremisesDetails_ucDateStartUsingWater_iSelect_dd',
	    selectMthId: '#UpdatePremisesDetails_ucDateStartUsingWater_iSelect_mm',
	    selectYrId: '#UpdatePremisesDetails_ucDateStartUsingWater_iSelect_yyyy'
	});

    //business - provide a meter reading
    jQuery('#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl0_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl1_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl2_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl3_ucReading_ucDate_iSelect_yyyy'
	});

    jQuery('#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_dd',
	    selectMthId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_mm',
	    selectYrId: '#ProvideAMeterReadingBusiness_AddWaterMeterReadings1_lvReadings_ctrl4_ucReading_ucDate_iSelect_yyyy'
	});

    //developers - planning your development
    jQuery('#PreDevelopment_ucSiteStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucSiteStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucSiteStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucSiteStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucSiteStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucFirstOccupancyDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucFirstOccupancyDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucFirstOccupancyDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucFirstOccupancyDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucFirstOccupancyDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl0_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl0_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl0_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl0_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl0_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl1_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl1_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl1_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl1_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl1_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl2_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl2_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl2_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl2_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl2_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl3_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl3_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl3_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl3_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl3_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl4_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl4_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl4_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl4_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl4_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl5_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl5_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl5_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl5_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl5_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl6_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl6_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl6_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl6_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl6_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl7_ateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl7_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl7_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl7_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl7_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl8_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl8_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl8_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl8_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl8_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl9_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl9_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl9_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl9_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl9_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl10_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl10_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl10_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl10_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl10_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl11_ucStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl11_ucStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl11_ucStartDate_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl11_ucStartDate_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucConstructionPeriods_lvPeriods_ctrl11_ucStartDate_iSelect_yyyy'
	});

    jQuery('#PreDevelopment_ucDateFormCompleted_dateSelectorDiv').dateHelper(
	{
	    linkId: 'PreDevelopment_ucDateFormCompleted_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#PreDevelopment_ucDateFormCompleted_iSelect_dd',
	    selectMthId: '#PreDevelopment_ucDateFormCompleted_iSelect_mm',
	    selectYrId: '#PreDevelopment_ucDateFormCompleted_iSelect_yyyy'
	});

    //developers - commencement of service connections
    jQuery('#CommencementOfServiceConnections_ucLayingStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CommencementOfServiceConnections_ucLayingStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CommencementOfServiceConnections_ucLayingStartDate_iSelect_dd',
	    selectMthId: '#CommencementOfServiceConnections_ucLayingStartDate_iSelect_mm',
	    selectYrId: '#CommencementOfServiceConnections_ucLayingStartDate_iSelect_yyyy'
	});

    //developers - completed service connection
    jQuery('#CompleteServiceConnections_ucPlots_lsvPlots_ctrl0_ucDateMeterInstalled_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CompleteServiceConnections_ucPlots_lsvPlots_ctrl0_ucDateMeterInstalled_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl0_ucDateMeterInstalled_iSelect_dd',
	    selectMthId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl0_ucDateMeterInstalled_iSelect_mm',
	    selectYrId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl0_ucDateMeterInstalled_iSelect_yyyy'
	});

    jQuery('#CompleteServiceConnections_ucPlots_lsvPlots_ctrl1_ucDateMeterInstalled_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CompleteServiceConnections_ucPlots_lsvPlots_ctrl1_ucDateMeterInstalled_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl1_ucDateMeterInstalled_iSelect_dd',
	    selectMthId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl1_ucDateMeterInstalled_iSelect_mm',
	    selectYrId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl1_ucDateMeterInstalled_iSelect_yyyy'
	});

    jQuery('#CompleteServiceConnections_ucPlots_lsvPlots_ctrl2_ucDateMeterInstalled_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CompleteServiceConnections_ucPlots_lsvPlots_ctrl2_ucDateMeterInstalled_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl2_ucDateMeterInstalled_iSelect_dd',
	    selectMthId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl2_ucDateMeterInstalled_iSelect_mm',
	    selectYrId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl2_ucDateMeterInstalled_iSelect_yyyy'
	});

    jQuery('#CompleteServiceConnections_ucPlots_lsvPlots_ctrl3_ucDateMeterInstalled_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CompleteServiceConnections_ucPlots_lsvPlots_ctrl3_ucDateMeterInstalled_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl3_ucDateMeterInstalled_iSelect_dd',
	    selectMthId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl3_ucDateMeterInstalled_iSelect_mm',
	    selectYrId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl3_ucDateMeterInstalled_iSelect_yyyy'
	});

    jQuery('#CompleteServiceConnections_ucPlots_lsvPlots_ctrl4_ucDateMeterInstalled_dateSelectorDiv').dateHelper(
	{
	    linkId: 'CompleteServiceConnections_ucPlots_lsvPlots_ctrl4_ucDateMeterInstalled_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl4_ucDateMeterInstalled_iSelect_dd',
	    selectMthId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl4_ucDateMeterInstalled_iSelect_mm',
	    selectYrId: '#CompleteServiceConnections_ucPlots_lsvPlots_ctrl4_ucDateMeterInstalled_iSelect_yyyy'
	});

    //developers - join the approved plumber/contractor scheme
    jQuery('#ClassroomBooking_ctl00_ucDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ClassroomBooking_ctl00_ucDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ClassroomBooking_ctl00_ucDate_iSelect_dd',
	    selectMthId: '#ClassroomBooking_ctl00_ucDate_iSelect_mm',
	    selectYrId: '#ClassroomBooking_ctl00_ucDate_iSelect_yyyy'
	});

    // developers - method statement for connection
    jQuery('#MethodStatement_uvProposedStartDate_dateSelectorDiv').dateHelper(
	{
	    linkId: 'MethodStatement_uvProposedStartDate_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#MethodStatement_uvProposedStartDate_iSelect_dd',
	    selectMthId: '#MethodStatement_uvProposedStartDate_iSelect_mm',
	    selectYrId: '#MethodStatement_uvProposedStartDate_iSelect_yyyy'
	});

    //test code - TODO remove
    jQuery('#ctl00_ctl00_iPHContent_Content_ucWaterSureApplication_ucDateCompleted_dateSelectorDiv').dateHelper(
	{
	    linkId: 'ctl00_ctl00_iPHContent_Content_ucWaterSureApplication_ucDateCompleted_dateSelectorDivDatehelper',  // dynamic a tag, can be any unique id
	    selectDayId: '#ctl00_ctl00_iPHContent_Content_ucWaterSureApplication_ucDateCompleted_iSelect_dd',
	    selectMthId: '#ctl00_ctl00_iPHContent_Content_ucWaterSureApplication_ucDateCompleted_iSelect_mm',
	    selectYrId: '#ctl00_ctl00_iPHContent_Content_ucWaterSureApplication_ucDateCompleted_iSelect_yyyy'
	});
    //add remove
    jQuery(".hazards").addRemove("hazard", "hazard");
    jQuery(".plots").addRemove("plot", "plot");
    jQuery(".meter-readings").addRemove("meter reading", "meter-reading");
    jQuery(".meter-serials").addRemove("meter serial", "meter-serial");
    jQuery(".children").addRemove("child", "child");
    jQuery(".buildPeriods").addRemove("build period", "buildPeriod");
    jQuery(".business-types").addRemove("business type", "business-type");
    jQuery(".add-account-numbers").addRemove("account number", "add-account-number");
    jQuery(".add-addresses").addRemove("address", "add-address");

    jQuery(".meterReadingHelp").toggleMeterReadingHelp();
    jQuery("#infoFieldset").toggleInfoSection();


    // Shows/hides suboptions within a radiobutton list
    jQuery(".listWithOptions").radioButtonList();
    jQuery(".multiOpt:first").addClass("multiOne")
    .before('<a href="#" class="clearMultiOptions" style="z-index:999;padding:15px 0 0;position:absolute;right:10px">clear options</a>')
    .find("input:radio").each(function() {
        jQuery(this).click(function() {
            jQuery(".multiTwo").find("input:radio").attr("checked", false).end()
            .find(".subOption").addClass("js-hide");
        })
    });
    jQuery(".multiOpt:last").addClass("multiTwo")
    .before('<a href="#" class="clearMultiOptions" style="z-index:999;padding:15px 0 0;position:absolute;right:10px">clear options</a>')
    .find("input:radio").each(function() {
        jQuery(this).click(function() {
            jQuery(".multiOne").find("input:radio").attr("checked", false).end()
            .find(".subOption").addClass("js-hide");
        })
    });
    jQuery(".clearMultiOptions").live("click", function(e) {
        e.preventDefault();
        jQuery(this).next(".multiOpt").find("input:radio").attr("checked", false).end()
        .find(".subOption").addClass("js-hide");
    })

    //radio tabs
    jQuery(".frmConditions").radioTabs();

    //show/hide option
    jQuery(".frmOptionCheck").setOptions();

    // Modal popup - Only use when a postback happens. Need something different for AJAX calls
    jQuery(".longRunning").modalPopup();

    // Apply For WaterCare Bills To Nominee options
    jQuery(".billsToNominee").billsToNominee();

    //form panels

    if (jQuery.browser.msie && jQuery.browser.version < 7)
    {
        // IE6 is  really slow at rendering the other show/hide stuff so need to let
        // it finish before doing the according sections or else it still displays elements even if
        // they display:none set.
        setTimeout("jQuery(\".form\").accordian()", 100);
    }
    else
    {
        jQuery(".form").accordian();
    }

    //toggle help field
    jQuery("#iForm-Pay-By-DirectDebit #iFormSection3 fieldset .extrainfo").toggleHelp();

    //direct debit auth
    jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 fieldset input:radio").click(function()
    {
        checkChk(jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 fieldset #PayByDirectDebit_ucDDAuthorization_radAuthYes"));
    });
    checkChk(jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 fieldset #PayByDirectDebit_ucDDAuthorization_radAuthYes"));
    function checkChk(arg)
    {
        var item = arg;
        var helppanel = item.parents(".content").find(".help");
        //var hideItems = jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 fieldset .footer, #ddDetails,#ddMan,#ddProp,#ddDec,#ddFoot");
		var hideItems = jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 .footer, #iForm-Pay-By-DirectDebit #iFormSection2,#iForm-Pay-By-DirectDebit #iFormSection3,#iForm-Pay-By-DirectDebit #iFormSection4,#iForm-Pay-By-DirectDebit #iFormSection5, #iForm-Pay-By-DirectDebit .frmFooter ");
        if (item.is(":checked"))
        {
            helppanel.removeClass("hide");
            jQuery("#iForm-Pay-By-DirectDebit #iFormSection1").addClass("last");
            hideItems.addClass("hide");
        }
        else
        {
            helppanel.addClass("hide");
            hideItems.removeClass("hide");
            jQuery("#iForm-Pay-By-DirectDebit #iFormSection1").removeClass("last");
			if(jQuery("#iForm-Pay-By-DirectDebit #iFormSection1 fieldset #PayByDirectDebit_ucDDAuthorization_radAuthNo").is(":checked"))
			{
				jQuery("#iFormSection1 .footer a").trigger("click");
			}
        }
    }
});

jQuery.fn.toggleHelp = function()
{
    var helppanel = jQuery("#mandatehelp");
    helppanel.addClass("hide");
    jQuery(this).click(function(e)
    {
        e.preventDefault();
        helppanel.toggleClass("hide");
    });
}

// Shows/hides suboptions within a radiobutton list
jQuery.fn.radioButtonList = function() {
    jQuery(this).each(function(){
    var container = jQuery(this)
    jQuery(this).find("input:radio").click(function() {
        // check if the selected radiobutton has suboptions
        var hasOptionCheck = jQuery(this).hasClass("frmOptionCheck") || jQuery(this).parent().hasClass("frmOptionCheck");
        if (hasOptionCheck == false && jQuery(this).parents(".subOption:first").length == 0) {
            // it doesn't, hide all the suboptions
            container.find(".subOption").addClass("js-hide");
        } else if (hasOptionCheck) {
            // Get the suboption for this radiobutton as we don't want to hide this one
            var subOption = jQuery(this).parents(".frmOption:first").find(".subOption:first");
            // filter all other suboptions and hide them
            container.find(".subOption")
                     .filter(function() {
                         return !(jQuery(this).html() == subOption.html());
                     })
                     .addClass("js-hide")
                     .find("input:radio").attr("checked", false);
        }
    })
    })
}

// Function that displays / hides options when a checkbox is clicked
jQuery.fn.setOptions = function() {
    // Loop through each element looking for checkboxes
    jQuery(this).each(function(optionIndex) {
        // check if the element is a checkbox or radiobutton
        jQuery(this).find("input:checkbox,input:radio").each(function(optionIndex) {
            var parentOption = jQuery(this).parents('.frmOption:first');
            var subOption = parentOption.find(".subOption");

            if (jQuery(this).is(":checked")) {
                subOption.removeClass("js-hide");
            }
            else {
                subOption.addClass("js-hide");
            }

            // Hook into the click event for each checkbox
            jQuery(this).click(function() {
                if (jQuery(this).is("input:checkbox")) { subOption.toggleClass("js-hide"); }
                else {
                    if (jQuery(this).is(":checked")) { subOption.removeClass("js-hide"); }
                }
            })
        })
    })
}


/**
jQuery extension - replace input box text when on focus
*/
jQuery.fn.replaceText = function()
{
	var text = jQuery(this).val()
	jQuery(this).focus(function(){
		jQuery(this).addClass("focused");
		jQuery(this).removeClass("active");
		if(jQuery(this).val() == text) jQuery(this).val("");
	});
	jQuery(this).blur(function(){
		jQuery(this).removeClass("focused");
		// removed so js does not repopulate input box
		/*if(jQuery(this).val() == "") {
			jQuery(this).val(text);
		} else {
			jQuery(this).addClass("active");
		};*/
	});
}


/**
jQuery extension - tabbing for news categories
*/
jQuery.fn.newsTabs = function()
{

var parent = jQuery(this);
jQuery(this).addClass('js-tabs');
jQuery(this).find('.nav-jump').append('<span class="tl"></span><span class="tr"></span>');
jQuery(this).find('.nav li:eq(0)').addClass('here');
jQuery(this).find('.panel:gt(0)').hide();
jQuery(this).find('.nav a').click(function (){
	parent.find(".nav li").removeClass('here');
	jQuery(this).parent('li').addClass('here');
	parent.find(".panel").hide();
	jQuery(jQuery(this).attr('href')).show();
	return false;
});
}


/**
jQuery extension - tabbing for ready reckoner
*/
jQuery.fn.readyReckonerTabs = function()
{

var parent = jQuery(this);
jQuery(this).addClass('js-tabs');
jQuery(this).find('.nav-jump').append('<span class="tl"></span><span class="tr"></span>');
jQuery(this).find('.nav li:eq(0)').addClass('here');
jQuery(this).find('.panel:gt(0)').hide();
jQuery(this).find('.nav a').click(function (){
	parent.find(".nav li").removeClass('here');
	jQuery(this).parent('li').addClass('here');
	parent.find(".panel").hide();
	jQuery(jQuery(this).attr('href')).show();
	return false;
});
}

/**
jQuery extension - hide show of help panels
*/
jQuery.fn.helpToggle = function(arg)
{
    //jQuery(this).prev(".information").addClass("js-hide");
    jQuery(this).click(function(e)
    {
	    
        e.preventDefault();
        //jQuery(this).prev(".information").toggleClass("js-hide");
        jQuery(this).prev(".information").toggle();
    })
}

/**
jQuery extension - add remove of sections
*/
jQuery.fn.addRemove = function(arg, arg2) {
    var stringName = arg;
    var className = arg2;
    var topLevel = jQuery(this);

    jQuery(this).append("<div class='add'><a href='#'>Add another " + stringName + "</a></div>");

    var elemLength = jQuery("." + className).length;
    var defaultElementOpen = 1;
    if (className == 'child') {
        var elemOpen = 3;
        defaultElementOpen = 3;
    }
    else {
        var elemOpen = 1;
    }

    // Find each child element (will be inside the ItemLayout of the ListView)
    jQuery("." + className).each(function(i) {
        // Add the remove element link, need to render this to get the top of the element looking correct
        jQuery(this).prepend("<div class='remove'></div>");
        if (i >= defaultElementOpen) {
            // Insert the Remove link
            jQuery(this).find("div.remove:first").append("<a href='#'>Remove " + stringName + "</a>");
        }
        // Get the hidden field
        var hiddenfield = jQuery(this).find(":input[type='hidden']");
        if (hiddenfield.attr("value") == '1') {
            if (!jQuery(this).hasClass("postBack")) {
                if (i >= elemOpen) {
                    hiddenfield.attr("value", "0");
                    jQuery(this).addClass("js-hide");
                }
                else {
                    if (i >= defaultElementOpen) {
                        elemOpen += 1;
                    }
                    if (elemOpen == elemLength) {
                        topLevel.find("div.add").addClass("js-hide");
                    }
                }
            }
            else {
                // server postback, check if all the elements are open and hide the add link if they are
                elemOpen++;
                if (elemOpen == elemLength) {
                    topLevel.find("div.add").addClass("js-hide");
                }
            }
        }
        else {
            jQuery(this).addClass("js-hide");
        }
    })

    topLevel.find("div.add a").click(function(e) {
        e.preventDefault();
        elemOpen += 1;
        // Find the first hidden element and show it again
        var elementToShow = topLevel.find("fieldset." + className + ".js-hide:first");
        elementToShow.removeClass("js-hide");
        elementToShow.find(":input[type='hidden']:first").attr("value", "1");
        // Check if we have to hide the add now        
        if (elemOpen == elemLength) {
            topLevel.find("div.add").addClass("js-hide");
        }
    });

    jQuery("." + className).find("div.remove>a").click(function(e) {
        e.preventDefault();
        elemOpen += -1;
        var fieldsetParent = jQuery(this).parents("fieldset." + className + ":first");

        // Hide the element and clear it out
        fieldsetParent.addClass("js-hide");
        fieldsetParent.find(".frmElement input").attr("value", "");
        //reset date selectors to todays date on removal
        var today = new Date();
        fieldsetParent.find("select.dd").attr("value", today.getDate());
        fieldsetParent.find("select.mm").attr("value", today.getMonth() + 1);
        fieldsetParent.find("select.yyyy").attr("value", today.getFullYear());
        // Set the hiddenfield value to 0
        fieldsetParent.find(":input[type='hidden']").val("0");
        // If the error class was set remove it
        fieldsetParent.find(".error").removeClass("error");
        fieldsetParent.find(".inline.errorMessage").remove();

        if (elemOpen < elemLength) {
            // Show that we can add a new element
            topLevel.find("div.add").removeClass("js-hide");
        }
    });
}

/**
jQuery extension - adds rounded corners to elements

@param [noIe] boolean selector to determine whether to set corners on ie6
@param [bottomOnly] boolean selector to only add the bottom two corners
*/
jQuery.fn.roundedCorners = function(/**Bool*/noIe, /**int*/corners)
{
    var ie6 = jQuery.browser.msie && jQuery.browser.version < 7;
    if (ie6 && noIe)
    {
        jQuery(this).each(function()
        {
            var pb, pt, pl, pr;
            (jQuery(this).css("padding-bottom") == "auto") ? pb = "1px" : pb = (parseInt(pb) + 1) + "px";
            (jQuery(this).css("padding-top") == "auto") ? pt = "1px" : pt = (parseInt(pt) + 1) + "px";
            (jQuery(this).css("padding-left") == "auto") ? pl = "1px" : pl = (parseInt(pl) + 1) + "px";
            (jQuery(this).css("padding-right") == "auto") ? pr = "1px" : pr = (parseInt(pr) + 1) + "px";

            var padding = "padding: " + pt + " " + pr + " " + pb + " " + pl + ";";

            if (corners == 1)
            {
                jQuery(this).prepend('<span class="tl"></span>');
            }
            else if (corners == 'blbr')
            {
                jQuery(this).css("padding", "0");
                jQuery(this).wrapInner('<div class="iebr" style="float:left;z-index:10;position:relative;margin:0 -1px -1px 0"><div class="iebl" style="float:left;padding:3px 10px 6px 7px;margin:0 0 0 -1px;z-index:9;position:relative;"></div></div>');
            }
            else if (corners == 'tltr')
            {
                jQuery(this).css("padding", "0 0 0 1px");
                jQuery(this).wrapInner('<div class="tl" style="margin:-1px 0 0 -1px;z-index:10;border:none;padding:0;float:left;width:auto;height:auto;top:0;left:0;background-position:0 0;"><div class="tr" style="margin:0 -1px 0 0;padding:0;border:none;float:left;width:auto;height:auto;top:0;left:0;background-position:100% 0;"></div></div>');
            }
            else if (corners == 3)
            {
                jQuery(this).css("padding", "0 0 0 1px");
                jQuery(this).wrapInner('<div class="tl" style="margin:-1px 0 0 -1px;z-index:10;border:none;padding:0;float:left;width:auto;height:auto;top:0;left:0;background-position:0 0;"><div class="tr" style="margin:0 -1px 0 0;padding:0;border:none;float:left;width:auto;height:auto;top:0;left:0;background-position:100% 0;"><div class="br" style="margin:0 0 -1px 0;z-index:10;border:none;padding:10px 6px 10px 9px;float:left;width:136px;height:auto;top:0;left:0;background-position:100% 100%;"></div></div></div>');
            }
            else
            {
                jQuery(this).wrapInner("<div class='ietr' style='zoom:1;z-index:999;position:relative;margin-right:-1px;margin-top:-1px;'><div class='ietl' style='zoom:1;z-index:999;position:relative;margin-left:-1px;'><div class='iebr' style='zoom:1;z-index:999;position:relative;margin-bottom:-1px;'><div class='iebl' style='z-index:998;position:relative;zoom:1;height:1%;" + padding + "'></div></div></div></div>");
                jQuery(this).css({ "padding-top": "0",
                    "padding-bottom": "0",
                    "padding-left": "0",
                    "padding-right": "0"
                });
            }
        })

    }
    if (!ie6)
    {
        if (corners == 'blbr')
        {
            jQuery(this).append('<span class="bl"></span><span class="br"></span>');
        }
        else if (corners == 'tltr')
        {
            jQuery(this).append('<span class="tl"></span><span class="tr"></span>');
        }
        else if (corners == 'tlbl')
        {
            jQuery(this).append('<span class="tl"></span><span class="bl"></span>');
        }
        else if (corners == 3)
        {
            jQuery(this).append('<span class="tl"></span><span class="tr"></span><span class="br"></span>');
        }
        else if (corners == 1)
        {
            jQuery(this).prepend('<span class="tl"></span>');
        }
        else
        {
            jQuery(this).append('<span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span>');
        }

    }
}




/**
jQuery extension - tabbing with radio buttons
*/
jQuery.fn.radioTabs = function()
{
	jQuery(".frmConOption").addClass("tabOption js-hide");
	var siblingChecked;
    jQuery(this).each(function(i){
        jQuery(this).find(":radio,:checkbox").each(function(i)
        {

            //check if option is shown
            (jQuery(this).is(":checked")) ? jQuery(this).parents("li").addClass("selected") : jQuery(this).parents("li").removeClass("selected");

            if(jQuery(this).is(":checked")){
                jQuery(this).parents(".frmConditional").find(".tabOption").each(function(i){
                    if(jQuery(this).hasClass(".opt" + i)){
                        jQuery(this).removeClass("js-hide");
                    }
                })
            }
            
            
            if (jQuery(this).is(":checked")){
		        jQuery(this).parents('.frmConditions').siblings(".tabOption").each(function()
                {
                    (jQuery(this).hasClass(".opt" + i)) ? jQuery(this).removeClass("js-hide") : jQuery(this).addClass("js-hide");
                    if (jQuery(this).hasClass(".opt" + i)){
	                    jQuery(this).parents(".frmConditional").children('.frmConditions').find(".frmGroupPair li").addClass("selected");
	                    jQuery(this).parents(".frmConditional").children('.frmConditions').find(".frmGroupLine li").addClass("selected");
                    }
                })
                
                jQuery(this).parents(".frmConditional").find(":radio,:checkbox").each(function(){
	                if (!jQuery(this).is(":checked")){
		                jQuery(this).parents("li").removeClass("selected");
		               
                		if (jQuery(this).is(":checkbox")){
	                		jQuery(this).parents('.frmConditions').siblings(".tabOption").each(function()
                			{
	                			jQuery(this).addClass("js-hide");
                			})
                		}
	                }
                })
	        }
            jQuery(this).click(function()
            {
                jQuery(this).parents('.frmConditions').siblings(".tabOption").each(function()
                {
                    (jQuery(this).hasClass(".opt" + i)) ? jQuery(this).removeClass("js-hide") : jQuery(this).addClass("js-hide");
                    if (jQuery(this).hasClass(".opt" + i)){
	                    jQuery(this).parents(".frmConditional").children('.frmConditions').find(".frmGroupPair li").addClass("selected");
	                    jQuery(this).parents(".frmConditional").children('.frmConditions').find(".frmGroupLine li").addClass("selected");
                    }
                })
                
                jQuery(this).parents(".frmConditional").find(":radio,:checkbox").each(function(){
	                if (!jQuery(this).is(":checked")){
		                jQuery(this).parents("li").removeClass("selected");
		               
                		if (jQuery(this).is(":checkbox")){
	                		jQuery(this).parents('.frmConditions').siblings(".tabOption").each(function()
                			{
	                			jQuery(this).addClass("js-hide");
                			})
                		}
	                }
                })
            })
            
            
            
        })
    })
}

/**
jQuery extension - Add accordian functionallity to a group of form items
*/
jQuery.fn.accordian = function() {
    jQuery(this).find(".frmSection .container:not(:first)").each(function() {
        if (jQuery(this).find(".error").length == 0) {
            jQuery(this).addClass("js-hide");
        }
    });

    jQuery(this).find("h2:not(:first)").each(function() {
        if (jQuery(this).parents(".frmSection").find(".error").length == 0) {
            jQuery(this).addClass("js-closed");
            jQuery(this).wrapInner("<a class='js-toggle js-closed' href='#'></a>");
        }
        else {
            jQuery(this).wrapInner("<a class='js-toggle' href='#'></a>");
        }
    });

    jQuery(this).find("h2:first").wrapInner("<a class='js-toggle' href='#'></a>");

    /*jQuery(this).find("h2:not(:first)").wrapInner("<a class='js-toggle js-closed' href='#'></a>");*/


    jQuery(this).find(".footer").html("<a class='js-toggle-next' href='#'>open next section</a>");

    jQuery(".js-toggle").click(function(e) {
        e.preventDefault();
        if (jQuery(this).parents(".frmSection").find(".container").hasClass("js-hide") == true) {
            jQuery(this).parents(".frmSection").find(".container").removeClass("js-hide");
            jQuery(this).removeClass("js-closed").parent('h2').removeClass("js-closed");
            var pos = jQuery(this).parents(".frmSection").position();
            jQuery('html, body').animate({ scrollTop: pos.top + 50 }, 500);
        }
        else {
            jQuery(this).parents(".frmSection").find(".container").addClass("js-hide");
            jQuery(this).addClass("js-closed").parent('h2').addClass("js-closed");
        }

    });

    jQuery(".js-toggle-next").click(function(e) {
        e.preventDefault();
        if (jQuery(this).parents(".frmSection:first").hasClass("waterCareServices") &&
            jQuery(this).parents(".frmSection").next().hasClass("js-hide")) {
            // Special handling for Services your require section on the WaterCare form
            // for when the Nominee section is hidden
            jQuery(this).parents(".frmSection").next().next().find(".container").removeClass("js-hide");
        }
        else {
            jQuery(this).parents(".frmSection").next().find(".container").removeClass("js-hide");
        }
        var pos = jQuery(this).parents(".frmSection").next().position();
        jQuery('html, body').animate({ scrollTop: pos.top + 50 }, 500);
    })
}

/**
jQuery extension - Add hide show functionallity to a data list of q and a's
*/
jQuery.fn.toggleList = function()
{
    jQuery(this).find("dd").addClass("js-hide").end()
    .find("dt").addClass("js-closed").wrapInner("<a href='#'></a>")
    .find("a").click(function(e)
    {
        e.preventDefault();
        jQuery(this).parent("dt").toggleClass("js-closed").next("dd").toggleClass("js-hide");
    });
}


/**
jQuery extension - resize overlay in ie6 to make it span whole screen
*/
jQuery.fn.overlay = function()
{

	var width = jQuery(window).width();
	var xpos = 0 - jQuery(this).x();
	var ypos = 0 -jQuery(this).y();
	var height = jQuery(window).height();
	var pageHeight = document.body.clientHeight;  
	if (pageHeight > height) {  
		height = pageHeight;  
		}  
	jQuery("#uploadProgress").css({width: width, height: height, top:ypos, left:xpos}); 
	
	jQuery('#iBody').find(".tl,.tr,.bl,.br").each(function(){
		jQuery(this).css("z-index","-1");
	})
	jQuery('#iPage').css("z-index","-1");
}



jQuery.fn.x = function(n) {
	var result = null;
	this.each(function() {
	var o = this;
	if (n === undefined) {
	var x = 0;
	if (o.offsetParent) {
	while (o.offsetParent) {
	x += o.offsetLeft;
	o = o.offsetParent;
	}
	}
	if (result === null) {
	result = x;
	} else {
	result = Math.min(result, x);
	}
	} else {
	o.style.left = n + 'px';
	}
	});
	return result;
};

jQuery.fn.y = function(n) {
	var result = null;
	this.each(function() {
	var o = this;
	if (n === undefined) {
	var y = 0;
	if (o.offsetParent) {
	while (o.offsetParent) {
	y += o.offsetTop;
	o = o.offsetParent;
	}
	}
	if (result === null) {
	result = y;
	} else {
	result = Math.min(result, y);
	}
	} else {
	o.style.top = n + 'px';
	}
	});
	return result;
};


/**
jQuery extension - Create a large clickable area from a hyperlink, when clicked the hyperlink click event is invoked.
	
@param [selector] An optional jQuery selector string pointing the link you wish to 'make big', if ommitted it will use the first hyperlink within the element
*/
jQuery.fn.bigLink = function(/**String*/selector)
{
    //var link = selector ? jQuery(selector) : this.find('a[@href]:eq(0)');

    this.click(function()
    {
	    var link = jQuery(this).find('a[@href]:eq(0)');
        // the first link within the supplied element
        var prevent_default = false;

        // check through all click events to for preventDefault command
        var all_events = link.data('events');
        var click_events;

        if (all_events && all_events.click)
        {
            click_events = all_events.click;

            for (var k in click_events)
            {
                if (/\.preventDefault\(\)/.test(click_events[k].toString()))
                {
                    prevent_default = true;
                }
            }
        }

        // trigger all jquery assigned events
        link.triggerHandler('click');

        // if preventDefault has never been assigned to this link then it is safe to do a standard redirect
        if (!prevent_default)
        {
            document.location = link.attr('href');
        }
    })
	.css('cursor', 'pointer');
}

/**
jQuery plugin extension which adds inline date selection
*/
jQuery.fn.dateHelper = function(attr) {
    if (this.length == 0) return this;

    var containingId = "#" + this.attr("id");

    //add link
    jQuery(containingId + " .frmElement:last").after('<a id="' + attr.linkId + '" href="#" class="dp-applied dateSelector">Select date</a>');

    jQuery('#' + attr.linkId).click(function(e) { e.preventDefault(); });

    //get the start end dates	
    var endDd = jQuery(attr.selectDayId + ' option:last').val();
    var endMm = jQuery(attr.selectMthId + ' option:last').val();
    var endYyyy = jQuery(attr.selectYrId + ' option:last').val();
    var endDate = endDd + "/" + endMm + "/" + endYyyy;
    var startDd = jQuery(attr.selectDayId + ' option:first').val();
    if (startDd.length === 1) startDd = "0" + startDd;
    var startMm = jQuery(attr.selectMthId + ' option:first').val();
    if (startMm.length === 1) startMm = "0" + startMm;
    var startYyyy = jQuery(attr.selectYrId + ' option:first').val();
    var startDate = startDd + "/" + startMm + "/" + startYyyy;

    jQuery('#' + attr.linkId)
		.datePicker(
    // associate the link with a date picker
			{
			createButton: false,
			startDate: startDate,
			endDate: endDate


}
		).bind(
    // when the link is clicked display the date picker
			'click',
			function() {
			    //updateSelects(jQuery(this).dpGetSelected()[0]);
			    updateSelects(jQuery(attr.selectMthId).val() + '/' + jQuery(attr.selectDayId).val() + '/' + jQuery(attr.selectYrId).val());
			    jQuery(this).dpDisplay();
			    return false;
			}
		).bind(
    // when a date is selected update the SELECTs
			'dateSelected',
			function(e, selectedDate, jQuerytd, state) {
			    updateSelects(selectedDate);
			}
		).bind(
			'dpClosed',
			function(e, selected) {
			    //updateSelects(selected[0]);
			}
		);

    var updateSelects = function(selectedDate) {
        var count = 0;
        selectedDate = new Date(selectedDate);
        var todayDay = today.getDate();
        var todayMonth = today.getMonth();
        var todayYear = today.getFullYear();
        var d = selectedDate.getDate();
        var m = selectedDate.getMonth();
        var y = selectedDate.getFullYear();
        var dateValid;

        if (jQuery(attr.selectYrId).hasClass("preventRetro")) {
            var errorMsg = "<div style='clear:left;padding:10px 0;' class='inline errorMessage'><strong>The selected date cannot be in the past</strong></div>";
            if (d < todayDay) {
                if (m <= todayMonth) {
                    if (y <= todayYear) {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                    else {
                        dateValid = true;
                    }
                }
                else {
                    dateValid = true;
                }
            }
            else {
                if (m >= todayMonth) {
                    if (y >= todayYear) {
                        dateValid = true;
                    }
                    else {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                }
                else {
                    if (y <= todayYear) {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                    else {
                        dateValid = true;
                    }
                }
            }

        }

        if (jQuery(attr.selectYrId).hasClass("preventFuture")) {
            var errorMsg = "<div style='clear:left;padding:10px 0;' class='inline errorMessage'><strong>The selected date cannot be in the future</strong></div>";
            if (d > todayDay) {
                if (m >= todayMonth) {
                    if (y >= todayYear) {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                    else {
                        dateValid = true;
                    }
                }
                else {
                    dateValid = true;
                }
            }
            else {
                if (m <= todayMonth) {
                    if (y <= todayYear) {
                        dateValid = true;
                    }
                    else {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                }
                else {
                    if (y >= todayYear) {
                        jQuery(containingId).addClass("error").append(errorMsg);
                    }
                    else {
                        dateValid = true;
                    }
                }
            }
        }

        if (dateValid == true) {
            jQuery(containingId).removeClass("error")
            if (jQuery(containingId).find(".errorMessage")) {
                jQuery(containingId).find(".errorMessage").remove();
            }
            (jQuery(attr.selectDayId)[0]).selectedIndex = d - 1;
            (jQuery(attr.selectMthId)[0]).selectedIndex = m;
            (jQuery(attr.selectYrId)[0]).selectedIndex = y - startYyyy;
        }

        jQuery(attr.selectDayId + ", " + attr.selectMthId + ", " + attr.selectYrId).trigger("change");
    }
    // listen for when the selects are changed and update the picker
    jQuery(attr.selectDayId + ", " + attr.selectMthId + ", " + attr.selectYrId)
		.bind(
			'change',
			function() {
			    var d = new Date(
							jQuery(attr.selectYrId).val(),
							jQuery(attr.selectMthId).val() - 1,
							jQuery(attr.selectDayId).val()
						);
			    jQuery('#' + attr.linkId).dpSetSelected(d.asString());
			}
		);

    // default the position of the selects to today

    if (!jQuery(this).children(".frmElementGroup").hasClass("noDefault")) {
        var today = new Date();

        (jQuery(attr.selectDayId)[0]).selectedIndex = today.getDate() - 1;
        (jQuery(attr.selectMthId)[0]).selectedIndex = today.getMonth();
        (jQuery(attr.selectYrId)[0]).selectedIndex = today.getFullYear() - 2005;


        // and update the datePicker to reflect it...
        jQuery(attr.selectDayId + ", " + attr.selectMthId + ", " + attr.selectYrId).trigger("change")
        jQuery(attr.selectDayId).trigger('change');
    }

    // Check if the date picker has been locked to today only, if it has hide the link
    if (jQuery(this).children(".frmElementGroup").hasClass("todayOnly")) { jQuery(this).find("a.dp-applied.dateSelector").addClass("js-hide"); }
}


/**
jQuery extension - ready reckoner
*/
jQuery.fn.toggleResult = function()
{
	 if (jQuery("#iReadyReckonerAlt").length) {
		jQuery(this).find("input.frmTxt").numeric();
	}
	
	var resultsDiv = jQuery(this).find("#iResult-x-usage");
	var help = jQuery(this).find("#iInfo");

	jQuery(this).find(":submit").click(function(){
		help.addClass("js-hide");
		calculatePrices();
		resultsDiv.show();
		
		window.location.href="#iReadyReckonerAlt";
		return false;
	})

   
	var total;
    var inputs = jQuery(this);
    jQuery(this).find("input.frmTxt").blur(function(){
	    checkTotals();
    })
    
    function calculatePrices(){
	    var consumption = checkTotals();
		var waterTotal = ((consumption * waterCubicMetre) + waterStandingCharge);
		waterTotal = roundNumber(waterTotal,2);
		if(jQuery("#iReadyReckonerAlt").find(".option :checkbox").is(':checked')){
			var sewerageTotal = roundNumber(((((consumption/100)*90)* sewerageCubicMetre) + sewerageReducedCharge),2);
		}
		else{
			var sewerageTotal = roundNumber(((((consumption/100)*90)* sewerageCubicMetre) + sewerageStandingCharge),2);
		}
		sewerageTotal = roundNumber(sewerageTotal,2);
		var annualTotal = roundNumber((waterTotal + sewerageTotal),2);
		jQuery("#resultsTotalWater").html("&pound;"+makePrice(waterTotal));
		jQuery("#resultsTotalSewerage").html("&pound;"+makePrice(sewerageTotal));
		jQuery("#resultsTotal").html("&pound;"+makePrice(annualTotal));
    }
    
    function checkTotals(){
	    var total = 0;
	    var annCon;
	    jQuery("#iReadyReckonerAlt").find("input.frmTxt").each(function(){
		    var iVal = jQuery(this).val(); 
		    if (!iVal){
			    iVal = 0;
		    }
	    	var amount = window[jQuery(this).attr("rel")];
	    	var subTotal = parseInt(iVal) * parseInt(amount);
	    	total  = total + subTotal;
	    	jQuery("#twuowTotal").html(zeroPad(total,5));
	    	annCon = (total*52)/1000;
	    	jQuery("#eacTotal").html(annCon);
	    })
	    return annCon;
    }
    
    function zeroPad(num,count){
		var numZeropad = num + '';
		while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad;
		}
		return numZeropad;
	}
	
	function roundNumber(num, dec) {
		var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
		return result;
	}
	
	function makePrice(num){
		var e = num+"";
		var f = e.split('.');
		if (f[1]){
			if (f[1].length=='1'){
				f[1] = f[1]*10;
			}
		}
		else{
			f[1]='00';
		}
		var result = f[0] +"."+ f[1];
		return result;
	}
	
	jQuery(this).find("a#resetForm").click(function(){
		jQuery("#iReadyReckonerAlt").find("input.frmTxt").each(function(){
		    jQuery(this).val("0");
	    })
	    calculatePrices();
		jQuery("#iResult-x-usage").hide();
		jQuery("#iInfo").removeClass("js-hide");
		return false;
	})
		
	
    
}

// Only use when a postback happens. Need something different for AJAX calls
jQuery.fn.modalPopup = function() {
jQuery(this).find(":input[type='submit']").each(function() {
    jQuery(this).click(function() {
        jQuery("#uploadProgress").removeClass("js-hide");
    });
    });
}

// Enables or disables the Nominee section based on the status of the 2 checkboxes
jQuery.fn.billsToNominee = function() {
    var ie6 = jQuery.browser.msie && jQuery.browser.version < 7;
    if (ie6 == false) {

        if (jQuery('.billsToNomineeSection').find('.servererror').length > 0) {
            jQuery('.billsToNomineeSection').removeClass("js-hide");
        }
        else {
            jQuery('.billsToNomineeSection').addClass("js-hide");
        }

        var checkbox = jQuery(this).find(":input[type='checkbox']:first");
        checkbox.click(function() {
            if (jQuery(this).parent().hasClass("billsToNominee")) {
                if (checkbox.is(":checked")) {
                    jQuery('.billsToNomineeSection').removeClass("js-hide");
                }
                else {
                    jQuery('.billsToNomineeSection').addClass("js-hide");
                }
            }
        })
    } 
}

jQuery.fn.toggleMeterReadingHelp = function() {
    jQuery(this).each(function() {
    jQuery(this).find("h3:first").css({'cursor' : 'pointer', 'text-decoration' : 'underline'});
        var infoSection = jQuery(this).find("#meterInstructions");
        infoSection.addClass("js-hide");
        jQuery(this).find("h3:first").click(function() {
            infoSection.toggleClass("js-hide");
        })
    })
}

jQuery.fn.toggleInfoSection = function() {
    jQuery(this).find("h3").wrapInner("<a class='js-closed' style='cursor:pointer;'></a>");
    jQuery(this).find("div.infoHide").addClass("js-hide");
    jQuery(this).find("a").each(function() {
        jQuery(this).click(function() {
            jQuery(this).parents("fieldset:first").find("div.infoHide:first").toggleClass("js-hide");
            jQuery(this).toggleClass("js-closed");
        })
    })
}