﻿
function ShowExistingStructureFields( ddlProjectType )
{
    var strShow = "none";

    if ( ddlProjectType.options[ ddlProjectType.selectedIndex ].value == "Renovation Site & Existing Structure Cover" )
        strShow = "block";
    
    document.getElementById( "ctl00_ContentPlaceHolder1_panExistingStructure" ).style.display = strShow;
}

function ShowMortgageLendersMandatoryIndicator()
{
    var strShow = "none";

    if ( document.getElementById( "ctl00_ContentPlaceHolder1_rdoMortgageOnPropertyY" ).checked == true )
        strShow = "inline";
    
    document.getElementById( "ctl00_ContentPlaceHolder1_lblMortgageLendersMandatoryIndicator" ).style.display = strShow;
}

function ShowProposer2Fields()
{
    var strShow = "none";

    if ( document.getElementById( "ctl00_ContentPlaceHolder1_rdoAnotherProposerY" ).checked == true )
        strShow = "block";
    
    document.getElementById( "ctl00_ContentPlaceHolder1_panProposer2" ).style.display = strShow;
}

function ShowRiskAddressFields( chkSameAddresses )
{
    var strShow;
    
    if ( chkSameAddresses.checked == true )
        strShow = "none";
    else
        strShow = "block";
    
    document.getElementById( "ctl00_ContentPlaceHolder1_panRiskAddress" ).style.display = strShow;
}

function ValidateMaterialFacts( source, args )
{
    args.IsValid = document.getElementById( "ctl00_ContentPlaceHolder1_chkMaterialFacts" ).checked;
}

function ValidateProjectStartDate( source, args )
{
    var ddlDDProjectStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlDDProjectStartDate" );
    var ddlMMProjectStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlMMProjectStartDate" );
    var ddlYYYYProjectStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlYYYYProjectStartDate" );
    var ddlDDStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlDDStartDate" );
    var ddlMMStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlMMStartDate" );
    var ddlYYYYStartDate = document.getElementById( "ctl00_ContentPlaceHolder1_ddlYYYYStartDate" );
    var intDDMaxProjectStartDate;
    var intMMMaxProjectStartDate;
    var intYYYYMaxProjectStartDate;

    args.IsValid = true;

    if ( ValidateDate( ddlYYYYStartDate.options[ ddlYYYYStartDate.selectedIndex ].value,
                       ddlMMStartDate.options[ ddlMMStartDate.selectedIndex ].value,
                       ddlDDStartDate.options[ ddlDDStartDate.selectedIndex ].value ) == true )
    {
        args.IsValid = ValidateDate( ddlYYYYProjectStartDate.options[ ddlYYYYProjectStartDate.selectedIndex ].value,
                                     ddlMMProjectStartDate.options[ ddlMMProjectStartDate.selectedIndex ].value,
                                     ddlDDProjectStartDate.options[ ddlDDProjectStartDate.selectedIndex ].value );

        if ( args.IsValid == true &&
            DateDiffInMilliseconds( ddlYYYYStartDate.options[ ddlYYYYStartDate.selectedIndex ].value,
                                    ddlMMStartDate.options[ ddlMMStartDate.selectedIndex ].value,
                                    ddlDDStartDate.options[ ddlDDStartDate.selectedIndex ].value,
                                    ddlYYYYProjectStartDate.options[ ddlYYYYProjectStartDate.selectedIndex ].value,
                                    ddlMMProjectStartDate.options[ ddlMMProjectStartDate.selectedIndex ].value,
                                    ddlDDProjectStartDate.options[ ddlDDProjectStartDate.selectedIndex ].value,
                                    true ) > 0 )
        {
            args.IsValid = false;
        }
        
        if ( args.IsValid == true )
        {
            intDDMaxProjectStartDate = parseInt( ddlDDStartDate.options[ ddlDDStartDate.selectedIndex ].value, 10 );
            intMMMaxProjectStartDate = parseInt( ddlMMStartDate.options[ ddlMMStartDate.selectedIndex ].value, 10 );
            intYYYYMaxProjectStartDate = parseInt( ddlYYYYStartDate.options[ ddlYYYYStartDate.selectedIndex ].value, 10 );
        
            // Find Date 6 months from ProjectStartDate
            intMMMaxProjectStartDate = intMMMaxProjectStartDate + 6;
            
            if ( intMMMaxProjectStartDate > 12 )
            {
                intMMMaxProjectStartDate = intMMMaxProjectStartDate - 12;
                intYYYYMaxProjectStartDate++;
            }
            
            if ( intMMMaxProjectStartDate == 2 && IsLeapYear( intYYYYMaxProjectStartDate ) == true &&
                 intDDMaxProjectStartDate > 29 )
            {
                intDDMaxProjectStartDate = intDDMaxProjectStartDate - 29;
                intMMMaxProjectStartDate = 3;
            }
            
            if ( intMMMaxProjectStartDate == 2 && IsLeapYear( intYYYYMaxProjectStartDate ) == false &&
                 intDDMaxProjectStartDate > 28 )
            {
                intDDMaxProjectStartDate = intDDMaxProjectStartDate - 28;
                intMMMaxProjectStartDate = 3;
            }
            
            if ( ( intMMMaxProjectStartDate == 4 || intMMMaxProjectStartDate == 6 || intMMMaxProjectStartDate == 9 ||
                   intMMMaxProjectStartDate == 11 ) && intDDMaxProjectStartDate > 30 )
            {
                intDDMaxProjectStartDate = intDDMaxProjectStartDate - 30;
                intMMMaxProjectStartDate++;
            }
            
            if ( DateDiffInMilliseconds( intYYYYMaxProjectStartDate, intMMMaxProjectStartDate, intDDMaxProjectStartDate,
                                         ddlYYYYProjectStartDate.options[ ddlYYYYProjectStartDate.selectedIndex ].value,
                                         ddlMMProjectStartDate.options[ ddlMMProjectStartDate.selectedIndex ].value,
                                         ddlDDProjectStartDate.options[ ddlDDProjectStartDate.selectedIndex ].value,
                                         true ) < 0 )
            {
                args.IsValid = false;
            }
        }
    }
}

function ValidateRiskAddressField( objControlToValidate )
{
    return !( document.getElementById( "ctl00_ContentPlaceHolder1_chkSameAddresses" ).checked == false &&
              objControlToValidate.value == '' );
}

function ValidateRiskAddress( source, args )
{
    args.IsValid = ValidateRiskAddressField( document.getElementById( "ctl00_ContentPlaceHolder1_txtRiskAddress1" ) );
}

function ValidateRiskHouseNumName( source, args )
{
    args.IsValid = ValidateRiskAddressField( document.getElementById( "ctl00_ContentPlaceHolder1_txtRiskHouseNumName" ) );
}

function ValidateRiskPostcode( source, args )
{
    args.IsValid = ValidateRiskAddressField( document.getElementById( "ctl00_ContentPlaceHolder1_txtRiskPostcode" ) );
}

function ValidateRiskTown( source, args )
{
    args.IsValid = ValidateRiskAddressField( document.getElementById( "ctl00_ContentPlaceHolder1_txtRiskTown" ) );
}
