﻿/* Based on script created by: John G. Wang | http://www.csua.berkeley.edu/~jgwang/ */
/* Script online at: http://javascript.internet.com/forms/check-cap-locks.html */
function skm_CheckCapsLock(e, warnId, dispTime) {
    var myKeyCode = 0;
    var myShiftKey = e.shiftKey;

    if (document.all) {
        // Internet Explorer 4+
        myKeyCode = e.keyCode;
    } else if (document.getElementById) {
        // Mozilla / Opera / etc.
        myKeyCode = e.which;
    }

    if ((myKeyCode >= 65 && myKeyCode <= 90) || (myKeyCode >= 97 && myKeyCode <= 122)) {
        if (
        // Upper case letters are seen without depressing the Shift key, therefore Caps Lock is on
	        ((myKeyCode >= 65 && myKeyCode <= 90) && !myShiftKey)

	        ||

        // Lower case letters are seen while depressing the Shift key, therefore Caps Lock is on
	        ((myKeyCode >= 97 && myKeyCode <= 122) && myShiftKey)
    	   ) {
            skm_ShowCapsWarning(warnId, dispTime);
        }
        else {
            skm_HideCapsWarning(warnId);
        }
    }
}

function skm_GetWarningElement(warnId) {
    if (document.all) {
        // Internet Explorer 4+
        return document.all[warnId];
    } else if (document.getElementById) {
        // Mozilla / Opera / etc.
        return document.getElementById(warnId);
    }
}

/* Clearing of timers logic / script based on work by Ben Kittrell
http://garbageburrito.com/blog/entry/555/slideshow-clearing-all-javascript-timers */
var myTimers = new Array();

function skm_ShowCapsWarning(warnId, dispTime) {
    var warnElem = skm_GetWarningElement(warnId);

    if (warnElem == null)
        return;
    else {
        warnElem.style.visibility = 'visible';
        warnElem.style.display = 'inline';

        if (dispTime > 0)
            myTimers.push(setTimeout('skm_HideCapsWarning("' + warnId + '");', dispTime));
    }
}

function skm_HideCapsWarning(warnId) {
    var warnElem = skm_GetWarningElement(warnId);

    if (warnElem == null)
        return;
    else {
        warnElem.style.visibility = 'hidden';
        warnElem.style.display = 'none';

        // Clear all timers
        while (myTimers.length > 0)
            clearTimeout(myTimers.pop());
    }
}

function skm_Redirect(url, ctrl) {
    var assocCtrl = document.getElementById(ctrl);
    var assocValue = '';

    if (assocCtrl)
        assocValue = assocCtrl.value;

    document.location.href = url.replace('{AssocCtrlValue}', escape(assocValue));
}

function skm_CheckForEnter(e, btnToClick) {
    var myKeyCode = 0;

    if (document.all) {
        // Internet Explorer 4+
        myKeyCode = e.keyCode;
    } else if (document.getElementById) {
        // Mozilla / Opera / etc.
        myKeyCode = e.which;
    }

    if (myKeyCode == 13) {
        var btn = document.getElementById(btnToClick);
        if (btn) {
            btn.click();

            e.cancelBubble = true;
            if (e.stopPropagation)
                e.stopPropagation();

            return false;
        }
    }
    return true;
}

/*_____________________  E N D  _____________________*/
if (typeof (Sys) != "undefined") {
    Sys.Application.notifyScriptLoaded();
}
