﻿var globalEditChanges = false;
function navTo(evt) {
    var el = evt.srcElement;
    if (evt.altKey && el.contentEditable=="true")
        window.location.href = el.href;
}

function getROCTextValue(el) {
    var acEl = ($(el).children().length == 1 && $(el).children().first().attr('tagName') == 'A') ? $(dhtmlEl).children().first() : $(el);
    if (acEl.attr("contentEditable") == "true" && acEl.attr("scsChanged") == true)
        return acEl.html();
    return null;
}

var notEditKeys = [9,11,17,35,36,37,38,39,49];
function isNoEditKey(k){
    for(var p = 0;p < notEditKeys.length;p++)
        if(notEditKeys[p] == k)
            return true;
}

function fldChange(evt) {
    if (typeof (disableGlobalEditChanges) != "undefined" && disableGlobalEditChanges == true)
        return;
    if (evt.type == "change" || (evt.type == "keydown" && !isNoEditKey(evt.keyCode))) {
        globalEditChanges = true;
        var el = evt.srcElement;
        if (el != null)
            el.scsChanged = true;
    }
}

function setupListeners() {
    $("input, textarea, select").each(function () {
        if (!$(this).hasClass('notInEdit') && !this.id != null && this.id.match(/^__/) == null && this.scslis == null && 
                (this.type==null || this.type != "hidden")) {
            $(this).change(function (e) { fldChange(e); });
            this.scslis = true;
        }
    });
    $(".CEDit").each(function () {
        if (!$(this).hasClass('notInEdit') && this.scslis == null) {
            $(this).keydown(function (e) { fldChange(e); });
            this.scslis = true;
        }
        if(this.tagName == "A")
            $(this).click(function(e){{navTo(e);}});
    });
}

$(window).unload(function () {
    if (globalEditChanges) {
        if (confirm("You have unsaved changes.  Would you like to save them before navigating away?")) {
            bizProcManager.triggerEvent(null, new EventInfo("globalEdit", "updateBizObj"));
        }
    }
});
var confirmSave = null;
$(window).load(function () {
    if (typeof (disableGlobalEditChanges) != "undefined" && disableGlobalEditChanges == true)
        return;
    setupListeners();
    bizProcManager.addAfterAjaxEventHandler(function (doc, eventInfo) {
        //debugger;
        if ((eventInfo.eventId != null && eventInfo.eventId.match(/_update$/) != null) || 
            (eventInfo.ctlId != null && eventInfo.ctlId.match(/_update$/) != null))
            globalEditChanges = false;
        setupListeners();
    });

    bizProcManager.addBeforeAjaxEventHandler(function (bizProc, eventInfo) {
        //debugger;
        if ((eventInfo.eventId == "bizObjSelected" || eventInfo.eventId == "gm1") && globalEditChanges) {
            if (confirm("You have unsaved changes.  Would you like to save them before navigating away?")) {
                bizProcManager.triggerEvent(null, new EventInfo("globalEdit", "updateBizObj"));
                globalEditChanges = false;
            }
            else
                globalEditChanges = false;
        }
    });
});