﻿var MapUse = "Register";
var currentPage = 0;
var locataMember = false;

function ValidateLocataMember()
{
    if(req==null)
    {
        var url = "Ajax/ValidateMember.aspx?partnerId=" + document.getElementById("ctl00_ContentPlaceHolder1_PartnerCode").value +
            "&uai=" + document.getElementById("ctl00_ContentPlaceHolder1_LINNumber").value + 
            "&dob=" + document.getElementById("ctl00_ContentPlaceHolder1_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_ContentPlaceHolder1_EligibleList_0").checked)
                {
                    ShowIneligiblePage();
                    return;                
                }
                else */
                if(document.getElementById("ctl00_ContentPlaceHolder1_EligibleList_4").checked)
                {
                    currentPage++;
                }
                else
                {
                    currentPage = 2;
                }
                break;
            case 2:
                if(document.getElementById("ctl00_ContentPlaceHolder1_LocataMember_1").checked)
                {
                    if(locataMember)
                    {
                        currentPage++;
                    }
                    else
                    {
                        ValidateLocataMember();
                        return;
                    }
                }
                else 
                {
                    currentPage++;
                }
                break;
            case 3:
                if(locataMember)
                {
                    currentPage = 5;
                }
                else
                {
                    currentPage++;
                }
                break;
            default:
                currentPage++;
                break;
        }
        DisplayPage();
    }
}

function PreviousPage()
{
    switch(currentPage)
    {
        case 2:
            if(document.getElementById("ctl00_ContentPlaceHolder1_EligibleList_4").checked)
            {
                currentPage--;
            }
            else
            {
                currentPage = 0;
            }
            break;
        case 5:
            if(locataMember)
            {
                currentPage = 3;
            }
            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_ContentPlaceHolder1_RegisterButton").style.display = "inline";
    }
    else
    {
        document.getElementById("RegNavNext").style.display = "inline";
        document.getElementById("ctl00_ContentPlaceHolder1_RegisterButton").style.display = "none";
    }

    //set focus
    switch(currentPage)
    {
        case 0:
            document.getElementById("ctl00_ContentPlaceHolder1_EligibleList_0").focus();
            break;
        case 1:
            document.getElementById("ctl00_ContentPlaceHolder1_CouncilList_0").focus();
            break;               
        case 2:
            document.getElementById("ctl00_ContentPlaceHolder1_DOB").focus();
            break;
        case 3:
            document.getElementById("ctl00_ContentPlaceHolder1_Title").focus();
            break;
        case 4:
            document.getElementById("ctl00_ContentPlaceHolder1_Address1").focus();
            break;
        case 5:
            document.getElementById("ctl00_ContentPlaceHolder1_BEDC").focus();
            break;
        case 6:
            document.getElementById("ctl00_ContentPlaceHolder1_MXHHEAT_0").focus();
            break;
        case 7:
            document.getElementById("ctl00_ContentPlaceHolder1_MXHLL").focus();
            break;
        case 8:
            document.getElementById("SelectAll").focus();
            break;
        case 9:
            document.getElementById("ctl00_ContentPlaceHolder1_MXWBED").focus();
            break;
        case 10:
            document.getElementById("ctl00_ContentPlaceHolder1_MXWHEAT_0").focus();
            break;
        case 11:
            document.getElementById("ctl00_ContentPlaceHolder1_MXWRENT").focus();
            break;
        case 12:
            document.getElementById("ctl00_ContentPlaceHolder1_RegisterButton").focus();
            break;     
    }

 }
 
 //checks page for validation errors.
 function ValidatePage()
 {
    var result = true;
    var ctl;
    switch(currentPage)
    {
        case 0:
            result = ListRequiredValidation("EligibleList", 6);
            break;
        case 1:
            result = ListRequiredValidation("CouncilList", 4);
            break;             
        case 2:
            result = TextBoxRequired("DOB");
            result = (document.getElementById("ctl00_ContentPlaceHolder1_DOBValidator").style.display=="none") && result;
            result = ListRequiredValidation("LocataMember", 2) && result;
            break;
        case 3:
            result = TextBoxRequired("LastName");
            //result = TextBoxRequired("Email") && result;
            //result = (document.getElementById("ctl00_ContentPlaceHolder1_EmailValidator").style.display=="none") && result;
            break;
        case 4:
            result = TextBoxRequired("Address1");
            result = (document.getElementById("ctl00_ContentPlaceHolder1_PostcodeValidator").style.display=="none") && result;
            break;
        case 5:
            result = TextBoxRequired("BEDC");
            result = (document.getElementById("ctl00_ContentPlaceHolder1_BEDCValidator").style.display=="none") && result;
            result = ListRequiredValidation("MXHTYPE", 4) && result;
            break;
        case 6:
            result = ListRequiredValidation("MXHHEAT", 3);
            result = ListRequiredValidation("MXHCOOK", 4) && result;
            result = ListRequiredValidation("MXHGARD1", 3) && result;
            break;
        case 7:
            result = TextBoxRequired("MXHRENT");
            result = (document.getElementById("ctl00_ContentPlaceHolder1_MXHRENTValidator").style.display=="none") && result;
            break;
        case 9:
            result = TextBoxRequired("MXWBED");
            result = (document.getElementById("ctl00_ContentPlaceHolder1_MXWBEDValidator").style.display=="none") && result;
            break;
        case 11:
            result = (document.getElementById("ctl00_ContentPlaceHolder1_MXWRENTValidator").style.display=="none");
            break;         
    }
    return result;
 }

function TextBoxRequired(textBoxName)
{
    var result = false;
    var ctl = document.getElementById("ctl00_ContentPlaceHolder1_" + textBoxName);
    if(ctl) result = (ctl.value!="");
    if(!result)
    {
        ctl = document.getElementById("ctl00_ContentPlaceHolder1_" + 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_ContentPlaceHolder1_" + listName + "_" + i);
        if(ctl)
        {
            if(ctl.checked)
            {
                result = true;
                break;
            }
        }
    }
    if(!result)
    {
        ctl = document.getElementById("ctl00_ContentPlaceHolder1_" + 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";
            //lah 3/8/2007
            //added to prevent existing members from logging in and then 
            //going back and deselecting existing and then blank details being saved
            locataMember=false;            
        }
    }
}

function Eligible_Changed(sender)
{
    //fired when the customer chooses from the eligible list
    partnerCode = document.getElementById("ctl00_ContentPlaceHolder1_PartnerCode");
    landlord = document.getElementById("ctl00_ContentPlaceHolder1_MXHLL");
    
    if(document.getElementById(sender.id + "_0").checked) //Amber Valley
    {
        partnerCode.value = "11";
        landlord.value = "Amber Valley Housing Limited ";
    }    
    else if(document.getElementById(sender.id + "_1").checked) //Dales Housing
    {
        partnerCode.value = "3";
        landlord.value = "Dales Housing";
    }
    else if(document.getElementById(sender.id + "_2").checked) //Derbyshire Dales District Council
    {
        partnerCode.value = "1";
        landlord.value = "Derbyshire Dales District Council";
    }
    else if(document.getElementById(sender.id + "_3").checked) //High Peak Community Housing
    {
        partnerCode.value = "4";
        landlord.value = "High Peak Community Housing";
    }
    else if (document.getElementById(sender.id + "_4").checked) //Three Valleys Housing
    {
        partnerCode.value = "11";
        landlord.value = "Three Valleys Housing";
    }
    else if(document.getElementById(sender.id + "_5").checked) //other
    {
        partnerCode.value = "0";
        landlord.value = "";
    }
}

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;
    }
}

function returnValidDateFormat(DateField) {
    var errorMessage = 'Please enter valid date as 2 digit day, three letter month and four digit year.\nYou may use a space to separate the values.';
    var err = 0;
    var bDateInFormat = false;
    //If Date already in dd mmm yyyy then validate in a different way
    var RegEx = /^\d\d\s\w{3}\s\d{4}$/;
    if (DateField.value.toLowerCase().match(RegEx)) {
        bDateInFormat = true;
        if (!checkDateFormatDDMMMYYYY(DateField))
            err = 10;
    }
    else {
        bDateInFormat = false;
        if (!checkDateFormatOTHERS(DateField))
            err = 20;
    }

    if (err == 0) {
        if (!bDateInFormat) {
            DateField = returnDateFormatDDMMMYYYY(DateField);
        }
        return DateField.value;
    }
    /* Error-message if err != 0 */
    else {
        alert(errorMessage);
        DateField.focus();
    }
}

function checkDateFormatOTHERS(fld) {
    var checkstr = "0123456789";
    var Datevalue = "";
    var DateTemp = "";
    var seperator = ".";
    var day;
    var month;
    var year;
    var leap = 0;
    var i;

    err = 0;
    DateValue = fld.value;
    /* Delete all chars except 0..9 */
    for (i = 0; i < DateValue.length; i++) {
        if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0) {
            DateTemp = DateTemp + DateValue.substr(i, 1);
        }
    }
    DateValue = DateTemp;
    /* Always change date to 8 digits - string*/
    /* if year is entered as 2-digit then we add the first 2 digits of the current year */
    if (DateValue.length == 6) {
        var currentTime = new Date();
        var currentYearDigits = (currentTime.getFullYear() + '').substr(0, 2); //needed to add space to convert number to text and then apply substring.
        DateValue = DateValue.substr(0, 4) + currentYearDigits + DateValue.substr(4, 2);
    }
    if (DateValue.length != 8) {
        err = 10;
    }
    /* year is wrong if year = 0000 */
    year = DateValue.substr(4, 4);
    if (year == 0) {
        err = 20;
    }
    /* Validation of month*/
    month = DateValue.substr(2, 2);
    if ((month < 1) || (month > 12)) {
        err = 30;
    }
    /* Validation of day*/
    day = DateValue.substr(0, 2);
    if (day < 1) {
        err = 40;
    }
    /* Validation leap-year / february / day */
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
        leap = 1;
    }
    if ((month == 2) && (leap == 1) && (day > 29)) {
        err = 50;
    }
    if ((month == 2) && (leap != 1) && (day > 28)) {
        err = 60;
    }
    /* Validation of other months */
    if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
        err = 70;
    }
    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
        err = 80;
    }
    /* if 00 ist entered, no error, deleting the entry */
    if ((day == 0) && (month == 0) && (year == 00)) {
        err = 0;
        day = "";
        month = "";
        year = "";
        seperator = "";
    }

    /* if no error, write the completed date in format we need to the input field */
    if (err == 0) {
        return true;
    }
    /* Error-message if err != 0 */
    else {
        return false;
    }
}

function checkDateFormatDDMMMYYYY(fld) {
    var RegExPattern1 = /^((31(?! (feb|apr|jun|sep|nov)))|((30|29)(?! feb))|(29(?= feb (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8]) (jan|feb|mar|may|apr|jul|jun|aug|oct|sep|nov|dec) ((1[6-9]|[2-9]\d)\d{2})$/;
    //var RegExPattern2 =  /^((31(?! (FEB|APR|JUN|SEP|NOV)))|((30|29)(?! FEB))|(29(?= FEB (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8]) (JAN|FEB|MAR|MAY|APR|JUL|JUN|AUG|OCT|SEP|NOV|DEC) ((1[6-9]|[2-9]\d)\d{2})$/;
    //var RegExPattern3 =  /^((31(?! (Feb|Apr|Jun|Sep|Nov)))|((30|29)(?! FEB))|(29(?= FEB (((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)))))|(0?[1-9])|1\d|2[0-8]) (Jan|Feb|Mar|May|Apr|Jul|Jun|Aug|Oct|Sep|Nov|Dec) ((1[6-9]|[2-9]\d)\d{2})$/;
    //var RegExPattern4 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
    //var errorMessage = 'Please enter valid date as day, three letter month and four digit year.\nYou may use a space to separate the values.\nOr this can be left as blank.';

    if (fld.value != '') {
        if (!(fld.value.toLowerCase().match(RegExPattern1)))
            return false;
        else
            return true;
    }
}

function returnDateFormatDDMMMYYYY(fld) {
    var checkstr = "0123456789";
    var Datevalue = "";
    var DateTemp = "";
    var day;
    var month;
    var year;

    DateValue = fld.value;
    /* Delete all chars except 0..9 */
    for (i = 0; i < DateValue.length; i++) {
        if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0) {
            DateTemp = DateTemp + DateValue.substr(i, 1);
        }
    }
    DateValue = DateTemp;

    if (DateValue.length == 6) {
        var currentTime = new Date();
        var currentYearDigits = (currentTime.getFullYear() + '').substr(0, 2); //needed to add space to convert number to text and then apply substring.
        DateValue = DateValue.substr(0, 4) + currentYearDigits + DateValue.substr(4, 2);
    }

    year = DateValue.substr(4, 4);
    month = DateValue.substr(2, 2);
    day = DateValue.substr(0, 2);
    switch (month) {
        case "01":
            month = " Jan ";
            break;
        case "02":
            month = " Feb ";
            break;
        case "03":
            month = " Mar ";
            break;
        case "04":
            month = " Apr ";
            break;
        case "05":
            month = " May ";
            break;
        case "06":
            month = " Jun ";
            break;
        case "07":
            month = " Jul ";
            break;
        case "08":
            month = " Aug ";
            break;
        case "09":
            month = " Sep ";
            break;
        case "10":
            month = " Oct ";
            break;
        case "11":
            month = " Nov ";
            break;
        case "12":
            month = " Dec ";
            break;
    }

    fld.value = day + month + year;
    return fld;

}