﻿// Radio Buttons

function SetUniqueRadioButton(nameregex, current) {
    re = new RegExp(nameregex);
    for (i = 0; i < document.forms[0].elements.length; i++) {
        elm = document.forms[0].elements[i]
        if (elm.type == 'radio') {
            if (re.test(elm.name)) {
                elm.checked = false;
                elm.parentNode.parentNode.className = "";
            }
        }
    }
    current.checked = true;
    current.parentNode.parentNode.className = "SelectedItem";
}

// Mouse Wait Cursor

var MouseWaitCursor_Stiker = null;
var MouseWaitCursor_HighPriority = false;

function MouseWaitCursor_AddScroll() {
    var scrollX = 0, scrollY = 0;
    if (window.opera) {
        scrollX += document.documentElement.scrollLeft;
        scrollY += document.documentElement.scrollTop;
    }
    else if (window.event) {
        scrollX += document.documentElement.scrollLeft + document.body.scrollLeft;
        scrollY += document.documentElement.scrollTop + document.body.scrollTop;
    }
    else if (window.scrollX && window.scrollY) {
        scrollX += window.scrollX + document.body.scrollLeft;
        scrollY += window.scrollY + document.body.scrollTop;
    }
    else if (document.body.parentNode && typeof (document.body.parentNode.scrollTop) != "undefined") {
        scrollX += document.body.parentNode.scrollLeft;
        scrollY += document.body.parentNode.scrollTop;
    }

    return { sX: scrollX, sY: scrollY };
}

function MouseWaitCursor_RegisterEventHandler(object, eventName, handler) {
    if (object.attachEvent) {
        object.attachEvent('on' + eventName, handler);
    }
    else if (object.addEventListener) {
        object.addEventListener(eventName, handler, true);
    }
}

function MouseWaitCursor_EventMouseMove(evt) {
    if (window.event) {
        evt = window.event;
    }

    var p = MouseWaitCursor_AddScroll();
    p.sX += evt.clientX;
    p.sY += evt.clientY;

    if (MouseWaitCursor_Stiker != null && typeof (MouseWaitCursor_Stiker) != "undefined") {
        MouseWaitCursor_Stiker.style.left = p.sX + 15 + "px";
        MouseWaitCursor_Stiker.style.top = p.sY + 10 + "px";
    }
}

function MouseWaitCursor_Start(ID) {
    MouseWaitCursor_Stiker = document.getElementById(ID);
    MouseWaitCursor_Hide();
    MouseWaitCursor_RegisterEventHandler(document, "mousemove", MouseWaitCursor_EventMouseMove);
}

function MouseWaitCursor_Show(arg) {
    if (MouseWaitCursor_Stiker != null) {
        MouseWaitCursor_Stiker.style.display = "";

        if (arg == true) {
            MouseWaitCursor_HighPriority = true;
        }
    }
}

function MouseWaitCursor_Hide(arg) {
    if (MouseWaitCursor_Stiker != null) {
        if (((MouseWaitCursor_HighPriority == true) && (arg == true)) || (MouseWaitCursor_HighPriority == false)) {
            MouseWaitCursor_Stiker.style.display = "none";
            MouseWaitCursor_HighPriority = false;
        }
    }
}

// Calendar

function Controls_Generic_Calendar_Shown(sender, args) {
    sender._popupBehavior._element.style.zIndex = 1000000;
}

function Controls_ColorPicker_Popup(sender, args) {
    sender.get_dropDownControl().style.zIndex = 1000000;
    
    sender.remove_shown(Controls_ColorPicker_Popup);
    sender.add_shown(Controls_ColorPicker_Popup);
}