﻿window.onload = function() {
    //setHeader();
    //setFooter();
}

function doAjaxCallWithResult(func,params,targetOk,targetErr) 
{

    Sys.Net.WebServiceProxy.invoke
    (
        CommonServices,
        func,
        false,
        params,
        function(res) { $("#" + targetOk).html(res); },
        function(err) { if (targetErr != null) { $("#" + targetErr).html(err.get_message()); } }
    );
}

function fixCss() {
    var css = rootDir + 'css/w3.css';
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null) {
            var rv = parseFloat(RegExp.$1);
        }
        if (rv < 7) {
            css = rootDir + 'css/ie6.css';
        }
    }
    document.write('<link href=\'' + css + '\' rel=\'stylesheet\' type=\'text/css\' />');
}

function setHeader() {
    doAjaxCallWithResult('Header', {"p":CurrentPath}, 'sbHeader', 'sbHeader');
}
function setFooter() {
    var copy = '© AB Svensk Byggtjänst |';
    var feedback = '<a href="' + rootDir + 'Synpunkter">Synpunkter</a> |';
    var help = '<a href="' + rootDir + 'Hjalp">Hjälp</a> |';
    var about = '<a href="' + rootDir + 'Om_webbplatset">Om webbplatsen</a>';
    var linkAff = '<a href="http://aff.byggtjanst.se/" target="_blank">Aff</a> | ';
    var linkAma = '<a href="http://ama.byggtjanst.se/" target="_blank">AMA</a> | ';
    var linkBi = '<a href="http://bygginfo.byggtjanst.se/" target="_blank">Bygginfo</a> | ';
    var linkBk = '<a href="http://byggkatalogen.byggtjanst.se/" target="_blank">Byggkatalogen</a> | ';
    var linkEb = '<a href="http://www.byggtjanst.se/MyPages/MyEBooks.aspx?sectionid=587148" target="_blank">E-bokhyllan</a>';
    var div = '<div class="Footer"><div style="float: left; margin-left: 20px;">' + copy + feedback + help + about + '</div><div style="float: right; margin-right: 20px;">' + linkAff + linkAma + linkBi + linkBk + linkEb + '</div></div>';
    $("#sbFooter").html(div);
}

function searchOnEnter(event) {
    if (event.which || event.keyCode) {
        if ((event.which == 13) || (event.keyCode == 13)) {
            setTimeout('searchRedirect()', 200);
            return false;
        }
        return true;
    } else {
        return true;
    }
}
function searchRedirect() {
    return;
    var s = $("#TextSearch").val();
    ws.CommonServices.getSearchWord(s, function (res) {
        s = res;
        location.href = rootDir + '/Sok/?q=' + s;
    }, function (e) { s = ''; }, function (e) { s = ''; });
}

function ToggleNode(id,t) {
    var state = $("#Node" + id).attr("collapsed");
    var loaded = $("#Node" + id).attr("loaded");
    var childnodes = $("#Node" + id).attr("childnodes");
    if (childnodes == '0') return;
    var newState = '1';
    var ExpandCollapsed = "Collapse";

    
    $("#ExpandCollapse" + id).removeClass("Collapse");
    $("#ExpandCollapse" + id).removeClass("Expand");
    $("#ExpandCollapse" + id).addClass("Spinner");
    
    
    if (state == '1') {
        newState = '0';
        ExpandCollapsed = "Expand";
        $("#ChildNodes" + id).slideUp(150, function() { $("#ExpandCollapse" + id).removeClass("Spinner"); $("#ExpandCollapse" + id).addClass(ExpandCollapsed); });
    } else {
        if (loaded != '1') {
            Sys.Net.WebServiceProxy.invoke
            (
                CommonServices,
                'GetTreeNodes',
                false,
                { 'Table': t, 'ParentId': id },
                function(res) {
                    $("#ChildNodes" + id).html(res);
                    $("#ChildNodes" + id).slideDown(300, function() { $("#ExpandCollapse" + id).removeClass("Spinner"); $("#ExpandCollapse" + id).addClass(ExpandCollapsed); });
                    $("#Node" + id).attr("loaded", "1");
                    tooltip();
                },
                function(err) { alert(err.get_message()) }
            );
        }
        else {
            $("#ChildNodes" + id).slideDown(300, function() { $("#ExpandCollapse" + id).removeClass("Spinner"); $("#ExpandCollapse" + id).addClass(ExpandCollapsed); });
            $("#ExpandCollapse" + id).removeClass("Spinner");
            $("#ExpandCollapse" + id).addClass(ExpandCollapsed);
            tooltip();
        }
    }

    $("#Node" + id).attr("collapsed", newState);
}








$(document).ready(function() {
    initWatermark();
});

function initWatermark() {
    $("[WatermarkText]").each(function() {
        var w = $(this).attr("WatermarkText");
        if (waterMarkReplace != '')
            w = waterMarkReplace;
        var t = $(this).val();
        if (t == '') { $(this).val(w); $(this).addClass("sbWatermarkText"); }
        $(this).blur(function() { t = $(this).val(); if (t == '') { $(this).val(w); $(this).addClass("sbWatermarkText"); } });
        $(this).focus(function() { t = $(this).val(); if (t == w) { $(this).val(''); $(this).removeClass("sbWatermarkText"); } });
    });
}

function GetTree(DistId, ParentId, GetAllChildnodes, fn) {
    var ol = $('<ol class="jsTreeNodes"></ol>');
    $('#jsTree').append(ol);
    var lastId = '';
    var lastNode = '';
    var ExpandToCode = location.hash.replace('#', '');
    location.hash = '';
    
    Sys.Net.WebServiceProxy.invoke(CommonServices, 'GetTree', false, { "DistId": DistId, "ParentId": ParentId, "GetAllChildnodes": false, "ExpandToCode": ExpandToCode }, function (res) {
        for (var i = 0; i < res.length; i++) {
            var node = res[i];
            var Parent = $('#Node' + node.ParentId);
            if (Parent.length > 0) {
                var childContainer = $(Parent).find('div:first');
                if (childContainer.length == 0) {
                    childContainer = $('<div></div>');
                    $(Parent).append(childContainer);
                }
                var ParentOl = $('<ol class="jsTreeNodes"></ol>');

                lastNode = CreateNode(node, DistId, ParentOl, ExpandToCode);
                $(childContainer).append(ParentOl);
            } else {
                lastNode = CreateNode(node, DistId, ol, ExpandToCode);
                //$(ol).append(lastNode);
            }

            lastId = node.Id;
        }
        if (typeof fn == 'function') {
            fn();
        }
    }, function (err) { alert(err.get_message()) });
}

function CreateNode(node, DistId, Parent, ExpandToCode) {
    var li = $('<li class="jsTreeNode  ' + node.Status + '"></li>');
    $(li).attr('id', 'Node' + node.Id);
    $(li).attr('childnodes', node.ChildNodes);
    $(li).attr('code', node.Kod);
    var ExpandCollapse = $('<span class="' + node.ExpandCollapse + '"></span>');
    $(ExpandCollapse).bind('click', function () { ToggleThisNode(node.Id, DistId, false) });
    $(ExpandCollapse).attr('id', 'ExpandCollapse' + node.Id);
    var highlight = ExpandToCode == node.Kod ? 'Highlight' : '';
    var Title = '<span class="Rubrik ' + highlight + '"><span class="Kod">' + node.Kod + '</span> - ' + '<span class="tooltip" distid="' + DistId + '" bsab="' + node.Kod + '" bsabid="' + node.Id + '">' + node.Rubrik + '</span></span>';
    $(li).append(ExpandCollapse);
    $(li).append(Title);
    $(Parent).append(li);
    return li;
}

function ToggleThisNode(NodeId, DistId, GetAllChildnodes, fn) {
    var n = $('#Node' + NodeId);
    var span = $(n).find('span:first');
    var ol = $(n).find('div:first');
    if ($(span).hasClass('Expand') || GetAllChildnodes) {
        $(span).removeClass('Expand');
        if (!GetAllChildnodes) {
            if ($(ol).length > 0) {
                $(ol).show();
                $(span).addClass('Collapse');
                if (typeof fn == 'function') fn();
                return;
            }
        } else { $(span).removeClass('Collapse'); }
        $(span).addClass('Spinner');
        GetTree(DistId, NodeId, GetAllChildnodes, function () {
            $(span).removeClass('Spinner');
            $(span).addClass('Collapse');
            if (typeof fn == 'function') fn();
        });
    } else if ($(span).hasClass('Collapse')) {
        $(ol).hide();
        $(span).removeClass('Collapse');
        $(span).addClass('Expand');
        if (typeof fn == 'function') fn();
    }

}
