﻿var _mxseriename;
var _mxargument;
var _mxvalue;

function handleChartTooltip(s, e) {
    if (s.cptooltip) {
        if (e.hitInfo.inSeriesPoint && e.additionalHitObject != null && e.additionalHitObject.series != null) {
            if (_mxseriename == null || _mxseriename != e.additionalHitObject.series.name ||
				_mxargument == null || _mxargument != e.additionalHitObject.argument ||
				_mxvalue == null || _mxvalue != e.additionalHitObject.values[0]) {
                _mxseriename = e.additionalHitObject.series.name;
                _mxargument = e.additionalHitObject.argument;
                _mxvalue = e.additionalHitObject.values[0];

                try {
                    if (Object.prototype.toString.call(_mxargument).match(/(\w+)\]/)[1] === 'Date') {
                        var date = new Date(_mxargument);

                        _mxargument = date.format('yyyy-MM-dd HH:mm:ss.fff');
                    }
                }
                catch (err) {

                }

                if (typeof (tooltipcp) != "undefined") {
                    tooltipcp.PerformCallback('webpart=' + s.cpwebpart + ';template=' + s.cptooltiptemplate + ';name=' + _mxseriename + ';argument=' + _mxargument + ';value=' + _mxvalue);
                    tooltipControl.Hide();
                    tooltipControl.ShowAtPos(e.absoluteX + 10, e.absoluteY + 10);
                }
            }
        }
    }

    if (s.cpruntimeselection && s.cptooltip) {
        if (e.hitInfo.inSeries || e.hitInfo.inSeriesPoint)
            s.SetCursor('pointer');
        else
            s.SetCursor('default');
    }
    else {
        if (s.cpruntimeselection)
            if (e.hitInfo.inSeries)
                s.SetCursor('pointer');
            else
                s.SetCursor('default');
        else
            if (e.hitInfo.inSeriesPoint) {
                if (s.cptooltip)
                    s.SetCursor('pointer');
                else
                    s.SetCursor('default');
            }
            else
                s.SetCursor('default');
    }
}

function setTreeDropDownText(s, e) {
    var selectedNode = s.GetSelectedNode();
    var combo = ASPxClientControl.GetControlCollection().Get(s.cpcombo);

    if (selectedNode == null) {
        combo.SetText(null);
    }
    else {
        if (s.cpfullpath == '1') {
            var texts = [];
            var currentnode = selectedNode;

            while (currentnode != null) {
                texts.push(currentnode.GetText());

                currentnode = currentnode.parent;
            }

            texts.reverse();
            combo.SetText(texts.join('->'));
        }
        else
            combo.SetText(selectedNode.GetText());
    }

    combo.HideDropDown();
}

function setCheckedComboText(s, e) {
    var texts = [];
    var selectedItems = s.GetSelectedItems();
    var combo = ASPxClientControl.GetControlCollection().Get(s.cpcombo);

    for (var i = 0; i < selectedItems.length; i++) {
        texts.push(selectedItems[i].text);
    }

    combo.SetText(texts);
    combo.cpChanged = true;
}

function mxPostback() {
    __doPostBack('contentPanel', '');
}

function processTreeDrag(s, e) {
	if(e.htmlEvent.shiftKey){
		e.cancel = true;
		var key = s.GetNodeKeyByRow(e.targetElement);
		s.PerformCustomCallback('r'+':'+e.nodeKey+':'+key);
	}
	else if(e.htmlEvent.ctrlKey){
		e.cancel = true;
		var key = s.GetNodeKeyByRow(e.targetElement);
		s.PerformCustomCallback('c'+':'+e.nodeKey+':'+key);
	}
}

function listCheckedNodes(parent) {
    var texts = [];

    for (var i = 0; i < parent.GetNodeCount(); i++) {
        if (parent.GetNode(i).GetChecked()) {
            texts.push(parent.GetNode(i).GetText());
        }

        if (parent.GetNode(i).GetNodeCount() != 0) {
            var tmp = listCheckedNodes(parent.GetNode(i));

            if (tmp.length > 0)
                texts.push(tmp);
        }
    }

    return texts.join(',');
}

function ProcessNode(node) {
    var htmlElement = node.GetHtmlElement();
    var count = node.GetNodeCount();

    if (htmlElement != null) {
        var handler = function (evt) {
            treeviewcontextmenu.ShowAtElement(node.GetHtmlElement());

            ASPxClientUtils.PreventEventAndBubble(evt);
        };

        ASPxClientUtils.AttachEventToElement(htmlElement, "contextmenu", handler);
    }

    for (var i = 0; i < count; i++)
        ProcessNode(node.GetNode(i));
}

function confirmOverwrite(e, value, list, question) {
    var exists = false;

    for (var i = 0; i < list.length; i++) {

        if (list[i] === value) {
            exists = true;

            break;
        }
    }

        if (exists == true) {
            e.processOnServer = confirm(question);
        }
    }


