﻿var Orcamento = {
    ListarLinhas: function(o) {
        switch (o.checked) {
            case false:
                document.getElementById("box-linhas-lista-" + o.value).innerHTML =
                document.getElementById("box-linhas-selecao-" + o.value).innerHTML = "";
                break;

            case true:
                var obj = Orcamento.GetObject(o.value, areasLinhas);
                Orcamento.PopulateFromObjectArray(obj, "box-linhas-lista-" + o.value);
                break;
        }
    },

    MarcarLinha: function(o) {
        var chkId = o.id.split("-");
        var areaId = chkId[1];
        var linhaId = chkId[3];
        var chkLabel = o.parentNode.title;

        var _target = document.getElementById("box-linhas-selecao-" + areaId);

        switch (o.checked) {
            case false:
                _target.removeChild(document.getElementById("area-" + areaId + "-linha-selec-" + linhaId));
                _target.removeChild(document.getElementById("lbl-area-" + areaId + "-linha-selec-" + linhaId));
                _target.removeChild(document.getElementById("br-area-" + areaId + "-linha-selec-" + linhaId));
                break;

            case true:

                var tmpChk = document.createElement("input");
                tmpChk.setAttribute("type", "checkbox");
                tmpChk.setAttribute("name", "linhas-area-selecionadas");
                tmpChk.setAttribute("id", "area-" + areaId + "-linha-selec-" + linhaId);
                tmpChk.setAttribute("value", linhaId);
                tmpChk.setAttribute("onclick", "Orcamento.DesmarcarLinha(this);");

                tmpChk.id = "area-" + areaId + "-linha-selec-" + linhaId;
                tmpChk.onclick = function() { Orcamento.DesmarcarLinha(this) };
                tmpChk.className = "fL";

                var tmpLbl = document.createElement("label");
                var lblText = (chkLabel.length > 30) ? chkLabel.substr(0, 27) + "..." : chkLabel;
                tmpLbl.setAttribute("class", "tmpLbl area-cor-" + o.areaId);
                tmpLbl.setAttribute("id", "lbl-area-" + areaId + "-linha-selec-" + linhaId);
                tmpLbl.setAttribute("title", chkLabel);
                tmpLbl.setAttribute("for", "area-" + areaId + "-linha-selec-" + linhaId);
                tmpLbl.className = "tmpLbl area-cor-" + o.areaId;
                tmpLbl.htmlFor = "area-" + areaId + "-linha-selec-" + linhaId;

                var tmpBr = document.createElement("br");
                tmpBr.setAttribute("class", "nF");
                tmpBr.className = "nF";
                tmpBr.setAttribute("id", "br-area-" + areaId + "-linha-selec-" + linhaId);

                try {
                    tmpChk.defaultChecked = true;
                } catch (e) {
                    tmpChk.setAttribute("checked", "checked");
                }

                _target.appendChild(tmpChk);
                _target.appendChild(tmpLbl);
                _target.appendChild(tmpBr);

                tmpLbl.innerHTML += lblText;

                //tmpChk.ckecked = true;
                //tmpLbl.getElementsByTagName("input")[0].ckecked = true;


                break;
        }
    },

    DesmarcarLinha: function(o) {
        var chkId = o.id.split("-");
        var areaId = chkId[1];
        var linhaId = chkId[4];

        var _target = document.getElementById("box-linhas-selecao-" + areaId);
        var tmpLbl = document.getElementById("lbl-" + o.id);
        var tmpBr = document.getElementById("br-" + o.id);

        _target.removeChild(o);
        _target.removeChild(tmpLbl);
        _target.removeChild(tmpBr);

        document.getElementById("area-" + areaId + "-linha-" + linhaId).checked = false;
    },

    GetObject: function(_id, _array) {
        for (var i = 0; i < _array.length; i++) {
            if (_array[i].id == _id) {
                return _array[i];
                break;
            }
        }
    },

    PopulateFromObjectArray: function(o, _targetId) {
        _target = document.getElementById(_targetId);
        for (var c = 0; c < o.childs.length; c++) {
            var tmpLbl = document.createElement("label");
            var lblText = (o.childs[c].label.length > 30) ? o.childs[c].label.substr(0, 27) + "..." : o.childs[c].label;
            tmpLbl.setAttribute("class", "area-cor-" + o.id);
            tmpLbl.setAttribute("title", o.childs[c].label);
            tmpLbl.setAttribute("for", "area-" + o.id + "-linha-" + o.childs[c].id);

            var tmpChk = document.createElement("input");
            tmpChk.setAttribute("type", "checkbox");
            tmpChk.setAttribute("name", "linhas-area-lista");
            tmpChk.setAttribute("id", "area-" + o.id + "-linha-" + o.childs[c].id);
            tmpChk.setAttribute("value", o.childs[c].id);
            tmpChk.setAttribute("onclick", "Orcamento.MarcarLinha(this);");

            tmpLbl.appendChild(tmpChk);
            _target.appendChild(tmpLbl);

            tmpLbl.innerHTML += lblText;

            if (c == o.childs.length - 1) {
                _target.getElementsByTagName("input")[0].focus();
            }

        }
    },

    InitPostedData: function(arrayAreas, arrayLinhas) {
        alert("arrayAreas.toString(): " + arrayAreas.toString());

        for (var a = 0; a < arrayAreas.length; a++) {
            var areaID = arrayAreas[a];
            var chkBox = document.getElementById("area-" + areaID);
            chkBox.checked = true;
            Orcamento.ListarLinhas(chkBox);

        }

        GetCheckboxFromValue = function(ckbVal) {
            var checkBoxes = document.getElementsByName("linhas-area-lista");
            for (var c = 0; c < checkBoxes; c++) {
                if (checkBoxes[c].value == ckbVal) {
                    return checkBoxes[c];
                    break;
                }
            }
        };

        for (var l = 0; l < arrayLinhas.length; l++) {
            var linhaID = arrayLinhas[l];
            var chkBox = GetCheckboxFromValue(a);
            chkBox.checked = true;
            Orcamento.ListarLinhas(chkBox);
        }
    }
}

