﻿// ignore Enter key in text/checkbox/radio/select-one controls to prevent accidental form submission.
function stopRKey(evt) {
    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type == "text" || node.type == "checkbox" || node.type == "radio" || node.type == "select-one")) { return false; }
}

document.onkeypress = stopRKey;

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft, curtop];
}

function setScrollPos(name) {
    var obj = document.getElementById(name);
    if (obj) {
        var coors = findPos(obj);
        //would be nice if this worked, but since .NET restores the previous scroll position, we need to hack those values.
        //window.scrollTo(coors[0], coors[1]);

        var scrollX = document.getElementById("__SCROLLPOSITIONX");
        var scrollY = document.getElementById("__SCROLLPOSITIONY");
        if (scrollX && scrollY) {
            scrollX.value = coors[0];
            scrollY.value = coors[1];
        }
    }
}

function resetScrollPos() {
    var scrollX = document.getElementById("__SCROLLPOSITIONX");
    var scrollY = document.getElementById("__SCROLLPOSITIONY");
    if (scrollX && scrollY) {
        scrollX.value = 0;
        scrollY.value = 0;
    }
}

function scrollPos(name) {
    var obj = document.getElementById(name);
    if (obj) {
        var coors = findPos(obj);
        window.scrollTo(coors[0], coors[1]);
    }
}
