﻿var MapUse = "Register";
var currentPage = 0;
var locataMember = false;

function ValidateLocataMember()
{
    if(req==null)
    {
        var url = "Ajax/ValidateMember.aspx?partnerId=" + document.getElementById("ctl00_MainPart_PartnerCode").value +
            "&uai=" + document.getElementById("ctl00_MainPart_LINNumber").value + 
            "&dob=" + document.getElementById("ctl00_MainPart_DOB").value;
        sendRequest(url)
        var img = document.getElementById("progress");
        img.style.display="block";
    }
    else
    {
        requestWaiting = true;
    }
}

function onReadyStateChange()
{
    var ready = req.readyState;
    if(ready==READY_STATE_COMPLETE)
    {
        var img = document.getElementById("progress");
        img.style.display="none";
        if(req.responseText=="1")
        {
            locataMember = true;
            document.getElementById("LinNumberError").innerText = "";
            NextPage();
        }
        else
        {
            locataMember = false;
            document.getElementById("LinNumberError").innerText = "Either your LIN Number or your Date of Birth are incorrect";
        }
        req = null;
    }
}   

function NextPage()
{
    if(ValidatePage())
    {
        switch(currentPage)
        {
            case 0:
                if(document.getElementById("ctl00_MainPart_EligibleList_9").checked)
                {
                    ShowIneligiblePage();
                    return;
                }
                currentPage++;
                break;
            case 1:
                if(document.getElementById("ctl00_MainPart_LocataMember_1").checked)
                {
                    if(locataMember)
                    {
                        currentPage++;
                    }
                    else
                    {
                        ValidateLocataMember();
                        return;
                    }
                }
                else 
                {
                    currentPage++;
                }
                break;
            case 2:
                if(locataMember)
                {
                    currentPage = 4;
                }
                else
                {
                    currentPage++;
                }
                break;
            default:
                currentPage++;
                break;
        }
        DisplayPage();
    }
}

function PreviousPage()
{
    switch(currentPage)
    {
        case 4:
            if(locataMember)
            {
                currentPage = 2;
            }
            else
            {
                currentPage--;
            }
            break;
        default:
            currentPage--;
            break;
    }
    DisplayPage();
}

function DisplayPage()
{
    //browsers without javascript will show complete form as single page
    
    //this code hides all pages except the currentPage
    var i = 0
    var page = document.getElementById("regPage" + i);
    var lastPageDisplayed = false;
    
    while(page)
    {
        if(i==currentPage)
        {
            page.style.display = "block";
            lastPageDisplayed = true;
        }
        else
        {
            page.style.display = "none";
            lastPageDisplayed = false;
        }
        i++;
        page = document.getElementById("regPage" + i);
    }
    
    //display back button
    if(currentPage==0)
    {
        document.getElementById("RegNavBack").style.display = "none";
    }
    else
    {
        document.getElementById("RegNavBack").style.display = "inline";
    }
    
    //display next button
    if(lastPageDisplayed)
    {
        document.getElementById("RegNavNext").style.display = "none";
        document.getElementById("ctl00_MainPart_RegisterButton").style.display = "inline";
    }
    else
    {
        document.getElementById("RegNavNext").style.display = "inline";
        document.getElementById("ctl00_MainPart_RegisterButton").style.display = "none";
    }
    
    //set focus
    switch(currentPage)
    {
        case 0:
            document.getElementById("ctl00_MainPart_EligibleList_0").focus();
            break;
        case 1:
            document.getElementById("ctl00_MainPart_DOB").focus();
            break;
        case 2:
            document.getElementById("ctl00_MainPart_Title").focus();
            break;
        case 3:
            document.getElementById("ctl00_MainPart_Address1").focus();
            break;
        case 4:
            document.getElementById("ctl00_MainPart_BEDC").focus();
            break;
        case 5:
            document.getElementById("ctl00_MainPart_MXHHEAT_0").focus();
            break;
        case 6:
            document.getElementById("ctl00_MainPart_MXHLL").focus();
            break;
        case 7:
            document.getElementById("SelectAll").focus();
            break;
        case 8:
            document.getElementById("ctl00_MainPart_MXWBED").focus();
            break;
        case 9:
            document.getElementById("ctl00_MainPart_MXWHEAT_0").focus();
            break;
        case 10:
            document.getElementById("ctl00_MainPart_MXWRENT").focus();
            break;
        case 11:
            document.getElementById("ctl00_MainPart_RegisterButton").focus();
            break;
    }
    
 }
 
 //checks page for validation errors.
 function ValidatePage()
 {
    var result = true;
    var ctl;
    switch(currentPage)
    {
        case 0:
            result = ListRequiredValidation("EligibleList", 10);
            break;
        case 1:
            result = TextBoxRequired("DOB");
            result = (document.getElementById("ctl00_MainPart_DOBValidator").style.display=="none") && result;
            result = ListRequiredValidation("LocataMember", 2) && result;
            break;
        case 2:
            result = TextBoxRequired("LastName");
            result = TextBoxRequired("Email") && result;
            result = (document.getElementById("ctl00_MainPart_EmailValidator").style.display=="none") && result;
            break;
        case 3:
            result = TextBoxRequired("Address1");
            result = (document.getElementById("ctl00_MainPart_PostcodeValidator").style.display=="none") && result;
            break;
        case 4:
            result = TextBoxRequired("BEDC");
            result = (document.getElementById("ctl00_MainPart_BEDCValidator").style.display=="none") && result;
            result = ListRequiredValidation("MXHTYPE", 4) && result;
            break;
        case 5:
            result = ListRequiredValidation("MXHHEAT", 3);
            result = ListRequiredValidation("MXHCOOK", 4) && result;
            result = ListRequiredValidation("MXHGARD1", 3) && result;
            break;
        case 6:
            result = TextBoxRequired("MXHRENT");
            result = (document.getElementById("ctl00_MainPart_MXHRENTValidator").style.display=="none") && result;
            break;
        case 8:
            result = (document.getElementById("ctl00_MainPart_MXWBEDValidator").style.display=="none");
            break;
        case 10:
            result = (document.getElementById("ctl00_MainPart_MXWRENTValidator").style.display=="none");
            break;
    }
    return result;
 }

function TextBoxRequired(textBoxName)
{
    var result = false;
    var ctl = document.getElementById("ctl00_MainPart_" + textBoxName);
    if(ctl) result = (ctl.value!="");
    if(!result)
    {
        ctl = document.getElementById("ctl00_MainPart_" + textBoxName + "Required");
        if(ctl) ctl.style.display = "inline";
    }
    return result;
}

function ListRequiredValidation(listName, entries)
{
    var result = false;
    var ctl;
    
    for(var i=0; i<entries; i++)
    {
        ctl = document.getElementById("ctl00_MainPart_" + listName + "_" + i);
        if(ctl)
        {
            if(ctl.checked)
            {
                result = true;
                break;
            }
        }
    }
    if(!result)
    {
        ctl = document.getElementById("ctl00_MainPart_" + listName + "Required");
        if(ctl) ctl.style.display = "inline";
    }
    return result;
}

function ShowIneligiblePage()
{
    //this code hides all pages
    var i = 0
    var page = document.getElementById("RegPage" + i);
    
    while(page)
    {
        page.style.display = "none";
        i++;
        page = document.getElementById("RegPage" + i);
    }
    
    document.getElementById("RegNavBack").style.display = "none";
    document.getElementById("RegNavNext").style.display = "none";
    
    document.getElementById("regPageNotEligible").style.display = "block";
}
      
function LocataMember_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("LinNumberRow");
   if(target)
   {
        var testElement = document.getElementById(sender.id + "_1");
        if(testElement.checked)
        {
            target.style.display = "block";
        }
        else
        {
            target.style.display = "none";
        }
    }
}

function Eligible_Changed(sender)
{
    //fired when the customer chooses from the eligible list
    partnerCode = document.getElementById("ctl00_MainPart_PartnerCode");
    landlord = document.getElementById("ctl00_MainPart_MXHLL");
  
    if(document.getElementById(sender.id + "_0").checked) 
    {
        partnerCode.value = "12";
        landlord.value = "Acton Housing Association";
    }
    else if(document.getElementById(sender.id + "_1").checked) 
    {
        partnerCode.value = "7";
        landlord.value = "Catalyst Communities Housing Association";
    }
    else if(document.getElementById(sender.id + "_2").checked) 
    {
        partnerCode.value = "15";
        landlord.value = "Inquilab Housing Association";
    }
    else if(document.getElementById(sender.id + "_3").checked) 
    {
        partnerCode.value = "21";
        landlord.value = "Octavia Housing and Care";
    }
    else if(document.getElementById(sender.id + "_4").checked) 
    {
        partnerCode.value = "9";
        landlord.value = "PCHA Housing Association";
    }
    else if(document.getElementById(sender.id + "_5").checked)
    {
        partnerCode.value = "28";
        landlord.value = "Shepherds Bush Housing Association";
    }
    else if(document.getElementById(sender.id + "_6").checked)
    {
        partnerCode.value = "46";
        landlord.value = "Stadium Housing Association";
    }
    else if(document.getElementById(sender.id + "_7").checked)
    {
        partnerCode.value = "29";
        landlord.value = "Thames Valley Association";
    }
    else if(document.getElementById(sender.id + "_8").checked)
    {
        partnerCode.value = "5";
    }
}

function MXHTYPE_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("FloorRow");
   if(target)
   {
        if(document.getElementById(sender.id + "_1").checked||document.getElementById(sender.id + "_2").checked)
        {
            target.style.display = "block";
        }
        else
        {
            target.style.display = "none";
            document.getElementById("LiftRow").style.display = "none";
        }
   }
}

function MXHFLR_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("LiftRow");
   if(target)
   {
        if(document.getElementById(sender.id + "_1").checked)
        {
            target.style.display = "none";
        }
        else
        {
            target.style.display = "block";
        }
   }
}

function MXWTYPE_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("FloorRow2");
   if(target)
   {
        if(document.getElementById(sender.id + "_1").checked||document.getElementById(sender.id + "_2").checked)
        {
            target.style.display = "block";
        }
        else
        {
            target.style.display = "none";
            document.getElementById("LiftRow2").style.display = "none";
        }
   }
}

function MXWFLR_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("LiftRow2");
   if(target)
   {
        if(document.getElementById(sender.id + "_0").checked||document.getElementById(sender.id + "_2").checked||
            document.getElementById(sender.id + "_3").checked||document.getElementById(sender.id + "_4").checked)
        {
            target.style.display = "block";
        }
        else
        {
            target.style.display = "none";
        }
   }
}

function MXHGARD1_Changed(sender)
{
   //fired when the customer enters whether LocataMember or not
   var target = document.getElementById("GardenRow");
   if(target)
   {
        if(document.getElementById(sender.id + "_0").checked)
        {
            target.style.display = "none";
        }
        else
        {
            target.style.display = "block";
        }
   }
}

function DOB_OnValidate(sender, args)
{
    date = ValidateDate(args.Value);
    if(isNaN(date))
    {
        args.IsValid = false;
    }
    else
    {
        args.IsValid = true;
    }
}

