﻿var LOADING_IMAGE = "<img src='App_Themes/Default/Images/ajax-loader.gif' title='Laddar' />";
var _categoryID = 0;
var _customerID;
var _webSiteID;
var _radTreeView;
var _sender;
var _level = 0;
var _ownerID = 0;
var _loading = false;
var _languageID;
var _menuID;
var _isFirstLoad;
var _nodePath;
var _currentPageID;
var _currentSiteMapID;
var _currentUrl;
var _lastHash;
var _showSubMenu = true;

function ClearAjaxDivElements(val) {
}

function handler(newHash, initial) {
    if (initial) {

        if (newHash.length > 0) {
            var tmp = newHash.split('_');
            var showSubMenu = tmp[0] != "-1";
            if (showSubMenu)
                $("#menu .item .spanMenuItem").removeClass("selected");
            if (IsNumeric(tmp[0]) && IsNumeric(tmp[1])) {
                if (tmp.length > 2)
                    _currentSiteMapID = tmp[2];
                else
                    _currentSiteMapID = tmp[1];


                ExecuteAjaxContent(["PageID", tmp[0], "SiteMapID", _currentSiteMapID, "LoadSubTree", showSubMenu, "Editable", $("#isE").val() == '1'], "GetPageDetails", OnControlLoaded, OnError);
            }
        }
        else {
            if (location.href.indexOf("efault.aspx") > 0 || endsWith(location.href, "/"))
                ExecuteAjaxContent(["PageID", "-1", "SiteMapID", 0, "LoadSubTree", showSubMenu, "Editable", $("#isE").val() == '1'], "GetPageDetails", OnControlLoaded, OnError);
        }
    }
    else {
        var tmp = newHash.split('_');

        if (IsNumeric(tmp[0]) && IsNumeric(tmp[1])) {
            _currentSiteMapID = tmp[1];
            _currentPageID = tmp[0];
            ExecuteAjaxContent(["PageID", tmp[0], "SiteMapID", tmp[1], "LoadSubTree", _showSubMenu, "Editable", $("#isE").val() == '1'], "GetPageDetails", OnControlLoaded, OnError);
        }
    }
}

function endsWith(str, suffix) {
    return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

function ExecuteAjaxContent(paramArray, methodName, successCallBack, errorCallBack) {

    //Create list of parameters in the form:
    var paramList = '{"data":[';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 1) {
            if (i > 0) {
                paramList += ',';
            }
            paramList += '"' + paramArray[i] + '"';
        }
    }
    paramList += '],"method":"' + methodName + '"}';

    $.ajax({
        type: "POST",
        url: "DADServiceProxy.svc/GetContent",
        data: paramList,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successCallBack,
        error: errorCallBack
    });
}
function ExecuteAjaxData(paramArray, methodName, successCallBack, errorCallBack) {

    //Create list of parameters in the form:
    var paramList = '{"data":[';
    if (paramArray.length > 0) {
        for (var i = 0; i < paramArray.length; i += 1) {
            if (i > 0) {
                paramList += ',';
            }
            paramList += '"' + paramArray[i] + '"';
        }
    }
    paramList += '],"method":"' + methodName + '"}';

    $.ajax({
        type: "POST",
        url: "DADServiceProxy.svc/GetData",
        data: paramList,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: successCallBack,
        error: errorCallBack
    });
}



function isArray(obj) {
    return obj.constructor == Array;
}

function GetStartPage() {
    if (!_loading) {

        Loading('divLoading');
        ExecuteAjaxContent(["PageID", -1], "GetPage", OnControlLoaded, OnError);

    }
}

function OnError(xhr, ajaxOptions, thrownError) {
    _loading = false;
    if (badBrowser() == false)
        $("#ajaxDisable").hide();
    alert("Något gick fel:" + xhr.statusText + " " + xhr.status + " " + xhr.responseText);
}
function GetPage(pageID) {
    if (!_loading) {
        Loading('divMidContent');

        ExecuteAjaxContent(["PageID", pageID], "GetPage", OnControlLoaded, OnError);

    }
    return false;
}

function OnTopMenuClick(pageID, siteMapID, title, itemID) {


    if (!_loading) {
        if (pageID == 0)
            pageID = -1;

        //  Loading('divLoading');

        var link = '<a href=# onclick="OnTopMenuClick(' + pageID + ', ' + siteMapID + ', \'' + title + '\')";>' + title + '</a>';
        $("#divSelectedNode").html(link);

        // select only current item
        $("#menu .item .spanMenuItem").removeClass("selected");
        $(".lnkMenuItem").removeClass("selected");
        $("#" + itemID).addClass("selected");


        if (IsNumeric(pageID)) {
            _showSubMenu = true;
            Loading('divMidContent');
            if (Hash.go(pageID + "_" + siteMapID) == false) {
                // if not hash load normally

                ExecuteAjaxContent(["PageID", pageID, "SiteMapID", siteMapID], "GetPageDetails", OnControlLoaded, OnError);
            }
        }
    }
    return false;
}
function OnRadTreeViewClientLoad(sender, eventArgs) {
    //  $("#treeMenu").hide();
    _radTreeView = sender;
}
function LoadSubMenu(data) {
    $("#treeMenu").show();
    _radTreeView.get_nodes().clear();
    _radTreeView.trackChanges();
    for (var i = 0; i < data.length; i++) {
        var cols = data[i].split('\t');
        var parentID = cols[0];
        var id = cols[1];
        var title = cols[2];
        var pageID = cols[3];
        var url = cols[4];
        var node = CreateNode(id, title, pageID, url);
        node.set_cssClass('TreeNodeSelected');

        _level = 1;
        _radTreeView.get_nodes().add(node);
        i = AddChildNodes(node, id, data, i + 1);

    }
    _radTreeView.commitChanges();

    // expand all nodes
    var nodes = _radTreeView.get_allNodes();
    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].get_nodes() != null) {
            nodes[i].expand();
        }
    }
}
function AddChildNodes(parentNode, parentID, data, idx) {
    for (var i = idx; i < data.length; i++) {
        var cols = data[i].split('\t');
        var ownerID = cols[0];
        var id = cols[1];
        var title = cols[2];
        var pageID = cols[3];
        var url = cols[4];

        if (ownerID != _ownerID && _ownerID != 0) {
            _level = _level + 1;
        }

        _ownerID = ownerID;

        if (ownerID == parentID) {
            var node = CreateNode(id, title, pageID, url);
            parentNode.get_nodes().add(node);
            i = AddChildNodes(node, id, data, i + 1);
        }
        else {
            return i - 1;
        }
    }
    return i - 1;
}

function CreateNode(id, title, pageID, url) {
    var node = new Telerik.Web.UI.RadTreeNode();
    node.set_text(title);
    node.set_cssClass('treeLevel' + _level);
    node.set_category(id);
    node.set_navigateUrl(url);
    node.set_value(pageID);
    return node;
}
function IsNumeric(sText) {
    var ValidChars = "0123456789,-";
    var IsNumber = true;
    var Char;

    if (sText.length == 0)
        return false;

    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;

}

function flickr(item) {
    $(item).slideUp();
    $(item).slideDown();
}

var _node;
//treeview


var _tree;
function OnTreeNodeClicking(sender, eventArgs) {
    if (_loading)
        return false;
    _tree = sender;
    try {
        eventArgs.set_cancel(true);
    }
    catch (x) { }

    var node = eventArgs.get_node();
    node.select();
    var ul = node.get_childListElement();
    //    if (ul != null) {
    //        ul.style.background = "#E8E8E8";
    //    }

    //Disabla root node?
    $(".TreeNodeSelected").removeClass("TreeNodeSelected");

    _loading = true;
    scroll(0, 0);
    Loading('divMidContent');
    //_currentSiteMapID = node.get_category();
    _currentPageID = node.get_value();
    _showSubMenu = false;
    var currHash = _currentPageID + "_" + node.get_category() + "_" + _currentSiteMapID;
    if (Hash.go(currHash) == false) {

        ExecuteAjaxContent(["PageID", _currentPageID, "SiteMapID", node.get_category(), "LoadSubTree", false], "GetPageDetails", OnControlLoaded, OnError);
    }
    return false;
}

function OnNewsItemSelected(typeName, pageID) {
    ExecuteAjaxContent(["PageID", pageID], "GetPage", OnControlLoaded, OnError);

    return false;
}

function OnActivityItemSelected(typeName, pageID) {

    ExecuteAjaxContent(["PageID", pageID], "GetPage", OnControlLoaded, OnError);
    return false;
}
function OnContactGroupItemSelected(typeName, contactGroupID) {
    ExecuteAjaxContent(["ContactGroupID", contactGroupID], "GetPage", OnControlLoaded, OnError);
    return false;
}

function treeExpandAllNodes(node) {

    while (node.get_parent() != null) {


        if (node.get_parent() == node.get_treeView())
            break;
        else
            node = node.get_parent();
    }
    node.expand();
    var nodes = node.get_nodes();

    for (var i = 0; i < nodes.get_count(); i++) {
        nodes.getItem(i).expand();
    }

}
function treeCollapseAllNodes(treeView) {

    var nodes = treeView.get_allNodes();

    for (var i = 0; i < nodes.length; i++) {
        if (nodes[i].get_nodes() != null) {
            nodes[i].collapse();
        }
    }
}

function ValidateField(value, field) {
    if (value.length == 0) {
        alert("Du måste ange " + field + ".");
        return false;
    }
    else
        return true;
}

function PrintPage(articleNo) {
    window.open('/PrintArticle.aspx?ArticleNo=' + articleNo, 'printWindow', 'status=0, toolbar=0, resizable=0, width = 700, height = 730'); return false;
}



function OnTrackerLoaded(data) {
    document.getElementById('divAjaxTracker').innerHtml = data.d[0];
}

function Loading(div) {
    $(".ServerClass").html("");
    var pos = $("#divAjaxContent").offset();
    var width = $("#divAjaxContent").width();
    var height = $("#divAjaxContent").height();
    //show the menu directly over the placeholder 
    $("#divLoading").css({ "left": (pos.left) + "px", "top": pos.top + "px", "width": width + "px", "height": height + "px" });



    $("#divLoading").show(); // removed reason: it makes content move to the left when loading
    $("#divLoading").html(LOADING_IMAGE);


}

function DisableBackground() {

    if (badBrowser() == false) {
        var windowWidth = document.documentElement.clientWidth;
        var windowHeight = document.documentElement.clientHeight;

        $("#ajaxDisable").css({
            "height": windowHeight,
            "width": windowWidth,
            "position": 'fixed',
            "_position": 'absolute',
            "opacity": 0.5,
            "z-index": 999999
        });
        $("#ajaxDisable").show();   //fadeIn("slow");
    }
}

function badBrowser() {
    if ($.browser.msie && parseInt($.browser.version) <= 6)
    { return true; }
    return false;
}

// Used by textBoxes (EmptyMessage) 
function clickClear(thisfield, defaulttext) {
    if (thisfield.value == defaulttext) {
        thisfield.value = "";
    }
}

function clickRecall(thisfield, defaulttext) {
    if (thisfield.value == "") {
        thisfield.value = defaulttext;
    }
}


function getInternetExplorerVersion() {
    var rv = 1000;
    // Return value assumes failure.    
    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)
            rv = parseFloat(RegExp.$1);
    } return rv;
}
function GetIEVersionVersion() {
    var msg = "You're not using Windows Internet Explorer.";
    var version = getInternetExplorerVersion();
    return version;


}

