﻿// JScript File
function StatesSelectModalOK(list, pnlWest, pnlMidAtlantic, pnlMidwest, pnlSouth, pnlSouthwest, pnlNewEngland, pnlTerritories)
{
    //check west
    var arrWest = GetCheckedValues(pnlWest);
    var arrMidAtlantic = GetCheckedValues(pnlMidAtlantic);
    var arrMidwest = GetCheckedValues(pnlMidwest);
    var arrSouth = GetCheckedValues(pnlSouth);
    var arrSouthwest = GetCheckedValues(pnlSouthwest);
    var arrNewEngland = GetCheckedValues(pnlNewEngland);
    var arrTerritories = GetCheckedValues(pnlTerritories);

    DrawStatesFromArray(list, arrWest, arrMidAtlantic, arrSouth, arrMidwest, arrSouthwest, arrNewEngland, arrTerritories);
}

function DrawStatesFromArray(list, arrWest, arrMidAtlantic, arrSouth, arrMidwest, arrSouthwest, arrNewEngland, arrTerritories) 
{    
    while (list.hasChildNodes())
        list.removeChild(list.firstChild);
    DrawStatesSelect(list, "West", arrWest);
    DrawStatesSelect(list, "Mid-Atlantic", arrMidAtlantic);
    DrawStatesSelect(list, "South", arrSouth);
    DrawStatesSelect(list, "Midwest", arrMidwest);
    DrawStatesSelect(list, "Southwest", arrSouthwest);
    DrawStatesSelect(list, "New England", arrNewEngland);
    DrawStatesSelect(list, "Territories", arrTerritories);
    if (!list.hasChildNodes()) {
        var li = document.createElement("li");
        li.innerHTML = "No states selected";
        list.appendChild(li);
    }
}

function DrawFullStatesFromArray(list, arrWest, arrMidAtlantic, arrSouth, arrMidwest, arrSouthwest, arrNewEngland, arrTerritories) 
{
    while (list.hasChildNodes())
        list.removeChild(list.firstChild);
    DrawFullStatesSelect(list, "West", arrWest);
    DrawFullStatesSelect(list, "Mid-Atlantic", arrMidAtlantic);
    DrawFullStatesSelect(list, "South", arrSouth);
    DrawFullStatesSelect(list, "Midwest", arrMidwest);
    DrawFullStatesSelect(list, "Southwest", arrSouthwest);
    DrawFullStatesSelect(list, "New England", arrNewEngland);
    DrawFullStatesSelect(list, "Territories", arrTerritories);
    if (!list.hasChildNodes()) {
        var li = document.createElement("li");
        li.innerHTML = "No states selected";
        list.appendChild(li);
    }
}

function FullStatesSelectModalOK(list, pnlWest, pnlMidAtlantic, pnlMidwest, pnlSouth, pnlSouthwest, pnlNewEngland, pnlTerritories)
{
    var arrWest = GetCheckedValues(pnlWest);
    var arrMidAtlantic = GetCheckedValues(pnlMidAtlantic);
    var arrMidwest = GetCheckedValues(pnlMidwest);
    var arrSouth = GetCheckedValues(pnlSouth);
    var arrSouthwest = GetCheckedValues(pnlSouthwest);
    var arrNewEngland = GetCheckedValues(pnlNewEngland);
    var arrTerritories = GetCheckedValues(pnlTerritories);

    DrawFullStatesFromArray(list, arrWest, arrMidAtlantic, arrSouth, arrMidwest, arrSouthwest, arrNewEngland, arrTerritories);
}

function StatesSelectModalCancel(pnlWest, pnlMidAtlantic, pnlMidwest, pnlSouth, pnlSouthwest, pnlNewEngland, pnlTerritories)
{
    RestCheckedValues(pnlWest);
    RestCheckedValues(pnlMidAtlantic);
    RestCheckedValues(pnlMidwest);
    RestCheckedValues(pnlSouth);
    RestCheckedValues(pnlSouthwest);
    RestCheckedValues(pnlNewEngland);
    RestCheckedValues(pnlTerritories);
}

function DrawStatesSelect(list, Text, Arr)
{
    if ((Arr) && (Arr.length > 0))
    {
        var li = document.createElement("li");
        var lbl = document.createElement("label");
        var span = document.createElement("span");
        var spanText;
        lbl.className = "handle"
        lbl.innerHTML = Text;
        li.appendChild(lbl);
        li.appendChild(span);
        spanText = Arr.splice(0,3).join(', ');
        span.innerHTML = '(' + spanText.substring(0, 25) + '...)';
        list.appendChild(li);
    }
}

function DrawFullStatesSelect(list, Text, Arr)
{
    if (Arr.length > 0)
    {
        var li = document.createElement("li");
        var lbl = document.createElement("label");
        var span = document.createElement("span");
        var spanText;
        lbl.className = "handle"
        lbl.innerHTML = Text;
        li.appendChild(lbl);
        li.appendChild(span);
        spanText = Arr.splice(0,Arr.length).join(', ');
        span.innerHTML = '(' + spanText + ')';
        list.appendChild(li);
    }
}


function RestCheckedValues(div)
{
    if (div == null) return new Array();
    
    var children = div.getElementsByTagName("input");
    var arr = new Array();
    for(var i = 0;i<children.length;i++)
    {
        children[i].checked = children[i].old_checked;
    }
    return arr;
}

function GetCheckedValues(div)
{
    if (div == null) return new Array();
    
    var children = div.getElementsByTagName("input");
    var arr = new Array();
    for(var i = 0;i<children.length;i++)
    {
        children[i].old_checked = children[i].checked;
        if (children[i].checked == true)
        {
            for(var k=0;k<children[i].parentNode.childNodes.length;k++)
            {
                if (children[i].parentNode.childNodes[k].nodeName == "LABEL")
                    arr.push(children[i].parentNode.childNodes[k].innerHTML);
            }
        }
    }
    return arr;
}

