﻿var BranchViewer = new __BranchViewer();

function __BranchViewer() {}

(function()
{

    var BRANCH_SORT_BY = 0;
    var BRANCH_SORT_ORDER = 0;

    __BranchViewer.prototype.Sort = function(sortId)
    {
        if(document.getElementById("LoadingPanel")) return;

        Daedalus.Ajax.ShowLoadingPanel();

        var table = document.getElementById("branchTable");
        var thead = table.getElementsByTagName("thead")[0];
        var img = thead.getElementsByTagName("img")[0];
        var th = thead.getElementsByTagName("th");
        
        BRANCH_SORT_BY = sortId;
        BRANCH_SORT_ORDER = (BRANCH_SORT_ORDER == "0" ? "1" : "0");

        img.src = img.src.replace((BRANCH_SORT_ORDER == "0" ? "Desc" : "Asc"), (BRANCH_SORT_ORDER == "0" ? "Asc" : "Desc"));

        th[sortId].appendChild(img.parentNode.removeChild(img));

        this.RefreshList();
    }

    __BranchViewer.prototype.RefreshList = function()
    {
        var branchTable = document.getElementById("branchTable");
        var tbody = branchTable.getElementsByTagName("tbody")[0];
        var sortBy = parseInt(BRANCH_SORT_BY);
        var sortOrder = BRANCH_SORT_ORDER;

        // Make HTTP request
        var request = Daedalus.Ajax.GetRequestObject();
        if(request != null)
        {
            request.onreadystatechange = function()
            {
                if(request.readyState == 4)  // COMPLETED
                {
                    if(request.status == 200)  // HTTP Status Code - 200 OK
                    {
                        var xmlDoc = request.responseXML;
                        var index = (xmlDoc.evaluate ? 1 : 0);

                        var childLen = tbody.childNodes.length;
                        for(var i=0; i<childLen; i++)
                        {
                            tbody.removeChild(tbody.childNodes[0]);
                        }
                        
                        for(var i=0; i<xmlDoc.documentElement.childNodes.length; i++)
                        {
                            if(xmlDoc.documentElement.childNodes[i].nodeName == "branch")
                            {
                                var panelRow = document.createElement("tr");
                                
                                for(var j=0; j<3; j++)
                                {
                                    var cell = panelRow.appendChild(document.createElement("td"));
                                    if(j == 1) cell.style.whiteSpace = "normal";
                                }

                                var name = Daedalus.Utility.Trim(xmlDoc.documentElement.childNodes[i].attributes[0].nodeValue);
                                var address = Daedalus.Utility.Trim(xmlDoc.documentElement.childNodes[i].attributes[1].nodeValue);
                                var employees = Daedalus.Utility.Trim(xmlDoc.documentElement.childNodes[i].attributes[2].nodeValue);

                                panelRow.childNodes[0].innerHTML = name;
                                panelRow.childNodes[1].innerHTML = (address.length == 0 ? unspecifiedLabel : address);
                                panelRow.childNodes[2].innerHTML = (employees == "0" ? unspecifiedLabel : employees);
                                
                                panelRow.childNodes[sortBy].className = "SortedColumn";

                                tbody.appendChild(panelRow);
                                index++;
                            }
                        }

                        Daedalus.Ajax.HideLoadingPanel();
                        Daedalus.Ajax.ReleaseRequestObject(request);
                    }
                }
            }

            request.open("GET", "Ajax/GetBranchList.aspx?id=" + companyId + "&sb=" + sortBy + "&so=" + sortOrder, true);
            request.send("");
        }
    }

})();