// hideshowfield

function hidefield(elementId) {
    //alert('here' + elementId);
    var element = document.getElementById(elementId);
    element.style.visibility = 'hidden';
}

function showfield(elementId) {
    //alert('there' + elementId);
    var element = document.getElementById(elementId);
    element.style.visibility = 'visible';
}


function hidebutton(button) {
    button.style.display = 'none';
    setTimeout('checkprevious(\'___XXXXXX\')', 100);
    setTimeout('showbutton(\'' + button.id + '\')', 100);
}

function showbutton(buttonId) {
    var button = document.getElementById(buttonId);
    if (!Page_IsValid) {
        button.style.display = 'inline';
    }
}

function togglephones(mobileId, mobLabelId, workLabelId, isMobilePhone) {
    //alert('here ' + righty.checked);
    if (isMobilePhone == true) {
        //alert('here ' + mobLabelId);
        changelabel(mobLabelId, 'Mobile phone');
        changelabel(workLabelId, 'Work/Home phone (optional)');
        changeclass(mobileId, 'required mobile');
        //Mobile_ClientValidate2(mobileId, false, true, document.getElementById(mobileId).value, null);
    }
    else if (isMobilePhone == false) {
        //alert('false ' + mobLabelId);
        changelabel(mobLabelId, 'Home phone');
        changelabel(workLabelId, 'Work phone (optional)');
        changeclass(mobileId, 'required phone');
        //Phone_ClientValidate2(mobileId, false, true, document.getElementById(mobileId).value);
    }
    
}

function changelabel(elementId, text) {
    //alert('here' + elementId + ' ' + text);
    var element = document.getElementById(elementId).childNodes[0];
    //alert('here' + elementLab.nodeValue);
    element.nodeValue = text;
}

function changeclass(elementId, value) {

    var element = document.getElementById(elementId);
    //alert('here ' + element.getAttribute("class"));
    element.setAttribute("class", value);
    //alert('here ' + element.getAttribute("class"));
}

function checkHasPension(hasPensionBlockId, currentEmployerBlockId, reviewedInLastYearsBlockId, messageId) {
    //alert('BEER');
    var control = null;
    var inputs = null;
    var showMessage = false;
    
    // Find the hasPension control
    if ((control = document.getElementById(hasPensionBlockId)) != null) {
        // Check if either of the radio buttons have been ticked
        if (hasValue(control.getElementsByTagName("INPUT")))
            showMessage = true;
    }

//    if (showMessage && (control = document.getElementById(currentEmployerBlockId)) != null) {
//        showMessage = hasValue(control.getElementsByTagName("INPUT"));
//    }

    if (showMessage && (control = document.getElementById(reviewedInLastYearsBlockId)) != null) {
        showMessage = hasValue(control.getElementsByTagName("INPUT"));
    }

    if (showMessage) {
        if ((control = document.getElementById(messageId)) != null)
            control.style.display = "";
    }
}

function hasValue(inputs)
{
    for (var index = 0; index < inputs.length; index ++)
    {
        if (inputs[index].checked)
            return true;
    }
    
    return false;
}

// Pensions
function haspension(hasPensionBlockId, noPensionBlockId, ageBlockId, taxFreeCashBlockId, valPensionWithEmployerId, valPensionReviewedId, valEmploymentStatusId, valReleaseTaxFreeCashId, valPopUpTextId, hasPension) {
   
    var hasPensionBlock = document.getElementById(hasPensionBlockId);
    var noPensionBlock = document.getElementById(noPensionBlockId);
    var ageBlock = document.getElementById(ageBlockId);
    var taxFreeCashBlock = document.getElementById(taxFreeCashBlockId);
    var popUpTextBlock = document.getElementById(valPopUpTextId);
    var valPensionWithEmployer = document.getElementById(valPensionWithEmployerId);
    var valPensionReviewed = document.getElementById(valPensionReviewedId);
    var valEmploymentStatus = document.getElementById(valEmploymentStatusId);
    var valReleaseTaxFreeCash = document.getElementById(valReleaseTaxFreeCashId);

    if (hasPension == true) {

        valPensionWithEmployer.enabled = true;
        valPensionReviewed.enabled = true;
        valEmploymentStatus.enabled = false;
        
        hasPensionBlock.style.display = 'inline';
        noPensionBlock.style.display = 'none';
        ageBlock.style.display = 'inline';
        //taxFreeCashBlock.style.display = 'none';
    }
    else if (hasPension == false) {
    
        valPensionWithEmployer.enabled = false;
        valPensionReviewed.enabled = false;
        valEmploymentStatus.enabled = true;
        popUpTextBlock.enabled = true;
        //valReleaseTaxFreeCash.enabled = false; 

        hasPensionBlock.style.display = 'none';
        noPensionBlock.style.display = 'inline';
        ageBlock.style.display = 'inline';
        popUpTextBlock.style.display = 'inline';
        //taxFreeCashBlock.style.display = 'none';
    }
}

// Pensions
function taxfreecash(taxFreeCashBlockId, isWithEmployerYesId, isWithEmployerNoId, dobyearId, dobmonthId, dobdayId, year, month, day, valReleaseTaxFreeCashId) {

    //alert('here ' + isWithEmployerYesId);
    var isWithEmployer = document.getElementById(isWithEmployerYesId).checked;
    //alert('isWithEmployer1 ' + isWithEmployer);
    if (isWithEmployer == false) {
        isWithEmployer = !document.getElementById(isWithEmployerNoId).checked;
        if (isWithEmployer == true)
            return; // break, if value missing
    }

    var age = getage(dobyearId, dobmonthId, dobdayId, year, month, day)

    if (age == null)
        return; // break, if value missing

    if (age > 55 && isWithEmployer == false) {
        document.getElementById(taxFreeCashBlockId).style.display = 'inline';
        //valReleaseTaxFreeCash.enabled = true;
    }
    else
    {
        document.getElementById(taxFreeCashBlockId).style.display = 'none';
        //valReleaseTaxFreeCash.enabled = false;
    }
}

// Mortgages
function mortgagetypechange(mortgageTypeId, remortgageBlockId, purchaseBlockId, valAmountUnsecuredDebtId, valHouseOnMarketId) {

    var mortgageType = document.getElementById(mortgageTypeId);
    var remortgageBlock = document.getElementById(remortgageBlockId);
    var purchaseBlock = document.getElementById(purchaseBlockId);
    var valAmountUnsecuredDebt = document.getElementById(valAmountUnsecuredDebtId);
    var valHouseOnMarket = document.getElementById(valHouseOnMarketId);

    if (mortgageType.value == 'Remortgage') {
        remortgageBlock.style.display = 'inline';
        valAmountUnsecuredDebt.enabled = true;
    }
    else {
        remortgageBlock.style.display = 'none';
        valAmountUnsecuredDebt.enabled = false;
    }
      
    if (mortgageType.value == 'Purchase') {
        purchaseBlock.style.display = 'inline';
        valHouseOnMarket.enabled = true;
    }
    else {
        purchaseBlock.style.display = 'none';
        valHouseOnMarket.enabled = false;
    }
}

function showbrokertext(amountId, propertyValId, mortgageTypeId, creditCheckLeftVal, creditCheckRightVal, brokertextfield) {

    var mortgageType = document.getElementById(mortgageTypeId);
    var amount = document.getElementById(amountId);
    var propertyVal = document.getElementById(propertyValId);
    var creditCheckLeft = document.getElementById(creditCheckLeftVal);
    var creditCheckRight = document.getElementById(creditCheckRightVal);
    var brokertext = document.getElementById(brokertextfield);
    if (mortgageType.value == 'EquityRelease' && amount.value != '' && propertyVal.value != '' && (creditCheckLeft.value != '' || creditCheckRight.value != '')) 
    {
        brokertext.style.display = 'inline';
    }
    else if (mortgageType.value != 'EquityRelease' && mortgageType.value != '' && amount.value != '' && propertyVal.value != '' && (creditCheckLeft.checked != false || creditCheckRight.checked != false)) 
    {
         brokertext.style.display = 'inline';
    }
    else
        brokertext.style.display = 'none';    
}

// Mortgages , equityBlock, defaultBlock
function equityrelease(mortgageTypeId, mortgageOutstandingBlockId, securedDebtBlockId, valMortgageOutstandingId, valSecuredDebtId, dobHelpLinkId, dobFocusInfoId, dobyearId, dobmonthId, dobdayId, year, month, day, propertyId, amountId, amountBlockId, valAmountId)
{
    var mortgageType = document.getElementById(mortgageTypeId);
    var mortgageOutstandingBlock = document.getElementById(mortgageOutstandingBlockId);
    var securedDebtBlock = document.getElementById(securedDebtBlockId);
    var valMortgageOutstanding = document.getElementById(valMortgageOutstandingId);
    var valSecuredDebt = document.getElementById(valSecuredDebtId);
    var property = document.getElementById(propertyId);
    var amount = document.getElementById(amountId);
    var dobHelpLink = document.getElementById(dobHelpLinkId);
    var dobFocusInfo = document.getElementById(dobFocusInfoId);
    var age = getage(dobyearId, dobmonthId, dobdayId, year, month, day);
    var ltv = amount.value.replace(/,/g, '') / property.value.replace(/,/g, '');
    var amountBlock = document.getElementById(amountBlockId);
    var valAmount = document.getElementById(valAmountId);
//    var equityAmount = document.getElementById(equityBlock);
//    var defaultAmount = document.getElementById(defaultBlock);

    if (mortgageType.value == 'EquityRelease') {
//        equityAmount.style.display = 'inline';
        mortgageOutstandingBlock.style.display = 'inline';
        securedDebtBlock.style.display = 'inline';
        valMortgageOutstanding.enabled = true;
        valSecuredDebt.enabled = true;

        dobHelpLink.style.display = 'none';
        dobFocusInfo.style.visibility = 'hidden';
//        defaultAmount.style.display = 'none';
        amountBlock.style.display = 'none';
        valAmount.enabled = false;

        optionalfields = null;
    }
    else
    {
        mortgageOutstandingBlock.style.display = 'none';
        securedDebtBlock.style.display = 'none';
        valMortgageOutstanding.enabled = false;
        valSecuredDebt.enabled = false;
//        defaultAmount.style.display = 'inline';
        dobHelpLink.style.display = 'none';
        dobFocusInfo.style.visibility = 'hidden';
//        equityAmount.style.display = 'none';
        amountBlock.style.display = 'inline';
        valAmount.enabled = true;

        optionalfields = null;
    }
}

function getage(dobyearId, dobmonthId, dobdayId, year, month, day)
{
    var dobyear = document.getElementById(dobyearId).value;
    var dobmonth = document.getElementById(dobmonthId).value;
    var dobday = document.getElementById(dobdayId).value;
    
    if (dobday == '' || dobmonth == '' || dobyear == '')
        return null; // break, if value missing
    
    var age = year - dobyear;
    //alert('day ' + dobday + ' ' + day);
    if (dobmonth < month || (dobmonth == month && dobday <= day)) //already had birthday
        age++;
        
    return age;
}

// Loans
function hasmortgage(mortgageOutstandingBlockId, propertyValueBlockId, valMortgageOutstandingId, valPropertyValueId, hasMortgage)
{
    var mortgageOutstandingBlock = document.getElementById(mortgageOutstandingBlockId);
    var propertyValueBlock = document.getElementById(propertyValueBlockId);
    var valMortgageOutstanding = document.getElementById(valMortgageOutstandingId);
    var valPropertyValue = document.getElementById(valPropertyValueId);
    
    if (hasMortgage == true) {
        mortgageOutstandingBlock.style.display = 'inline';
        propertyValueBlock.style.display = 'inline';

        valMortgageOutstanding.enabled = true;
        valPropertyValue.enabled = true;
    }
    else {
        mortgageOutstandingBlock.style.display = 'none';
        propertyValueBlock.style.display = 'none';

        valMortgageOutstanding.enabled = false;
        valPropertyValue.enabled = false;
    }
}

function shortterm(loanPeriodId, shortloanPurposeBlockId, standardloanPurposeBlockId, valctlPurposeId, valctlPurpose2Id) {
    var loanPeriod = document.getElementById(loanPeriodId);
    var shortLoanBlock = document.getElementById(shortloanPurposeBlockId);
    var loanValueBlock = document.getElementById(standardloanPurposeBlockId);
    var valPurposeValue = document.getElementById(valctlPurposeId);
    var valPurpose2Value = document.getElementById(valctlPurpose2Id);

    if (loanPeriod.value == '0') {
        shortLoanBlock.style.display = 'inline';
        loanValueBlock.style.display = 'none';

        valPurposeValue.enabled = false;
        valPurpose2Value.enabled = true;
    }
    else {
        loanValueBlock.style.display = 'inline';
        shortLoanBlock.style.display = 'none';

        valPurposeValue.enabled = true;
        valPurpose2Value.enabled = false;
    }
}

// Loans - toggles PPI related questions based on answers to previous questions
function ppiToggle(havePPIBlockId, wantCompensationBlockId, havePPIValidatorId, wantCompensationValidatorId, eligiblePPI, hasPPI)
{
    var havePPIBlock = document.getElementById(havePPIBlockId);
    var wantCompensationBlock = document.getElementById(wantCompensationBlockId);

    var havePPIValidator = document.getElementById(havePPIValidatorId);
    var wantCompensationValidator = document.getElementById(wantCompensationValidatorId);

    if (eligiblePPI == true && hasPPI == true) {
        havePPIBlock.style.display = 'inline';
        havePPIValidator.enabled = true;

        wantCompensationBlock.style.display = 'inline';
        wantCompensationValidator.enabled = true;
    }
    else if (eligiblePPI == true) {
        havePPIBlock.style.display = 'inline';
        havePPIValidator.enabled = true;

        wantCompensationBlock.style.display = 'none';
        wantCompensationValidator.enabled = false;
    }
    else {
        havePPIBlock.style.display = 'none';
        havePPIValidator.enabled = false;

        wantCompensationBlock.style.display = 'none';
        wantCompensationValidator.enabled = false;
    }
}
