var help = {
    addEvent: function(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
              elm.addEventListener(evType, fn, useCapture); 
              return true;
        } else if (elm.attachEvent) {
              var r = elm.attachEvent('on' + evType, fn);
              return r;
        } else {
              elm['on' + evType] = fn;
        }
    },

    init: function() {
        var helpBox  = document.getElementById('helpbox');
        var errorBox = document.getElementById('errorbox');

        for (var i = 1; document.getElementById('fidx-'+i); i++) {
            var el_name = document.getElementById('fidx-'+i).value;

            if ( document.getElementById(el_name+'-hlp') && document.getElementById('helpbox') ) {
                helpBox.appendChild(document.getElementById(el_name+'-hlp'));
                help.addEvent(document.getElementById(el_name+'-hlpbtn'), 'click', help.toggleHelpDisplay, false);
            };
            if ( document.getElementById(el_name+'-vstat') && document.getElementById('errorbox')
                 && (    document.getElementById(el_name+'-vstat').value == 'Y' 
                      || document.getElementById(el_name+'-vstat').value == 'R'
                      || document.getElementById(el_name+'-vstat').value == 'S')  ) {
                if ( ( document.getElementById('mg-inp').value == 'Y' && document.getElementById('mg-'+i).value == 'N' )
                    || document.getElementById('mg-inp').value == 'N' ) { 
                    errorBox.appendChild(document.getElementById(el_name+'-err'));
                    document.getElementById(el_name+'-err').style.display = 'block';
                    document.getElementById(el_name+'-lbl').className = 'errorColor';
                    errorBox.style.display = 'inline';
                };
            };
        };

        for (var i = 1; i <= document.getElementById('mgidx-max-inp').value; i++) {
            var fidx_start = document.getElementById('mgidx-'+i).value;
            var n = i+1;
            var fidx_end = document.getElementById('mgidx-'+n).value;
            var g_errorBox = document.getElementById(document.getElementById('mgpn-'+i).value+"errorbox");

            for (var j = fidx_start; j<fidx_end; j++) {
                var el_name = document.getElementById('fidx-'+j).value;
                if ( document.getElementById(el_name+'-vstat') 
                     && (    document.getElementById(el_name+'-vstat').value == 'Y' 
                          || document.getElementById(el_name+'-vstat').value == 'R'
                          || document.getElementById(el_name+'-vstat').value == 'S')  ) {
                    if ( document.getElementById('mg-inp').value == 'Y'  && document.getElementById('mg-'+j).value == 'Y' ) { 
                        g_errorBox.appendChild(document.getElementById(el_name+'-err'));
                        document.getElementById(el_name+'-err').style.display = 'block';
                        document.getElementById(el_name+'-lbl').className = 'errorColor';
                        document.getElementById(document.getElementById('mgfs-'+i).value+'-lgd').className = 'errorColor';
                        g_errorBox.style.display = 'inline';
    
                        errorBox.style.display = 'inline';
                        document.getElementById(document.getElementById('mgfs-'+i).value+'-errlnk').style.display = 'block';
                        errorBox.appendChild(document.getElementById(document.getElementById('mgfs-'+i).value+'-errlnk'));
                        document.getElementById('errorbox-txt').firstChild.nodeValue = "Please correct the errors with the following entries:";
                    };
                };
            };
        };

    }, 

    toggleHelpDisplay: function (e) {
        var el = window.event ? window.event.srcElement : e ? e.target : null;
        if (!el) return;
        var el_name  = el.id.substring(0,el.id.length - 7);

        var help_el  = document.getElementById(el_name+'-hlp');
        var lhelp_el = document.getElementById(last_help+'-hlp');
        var helpBox  = document.getElementById('helpbox');
        var posX = e.clientX + (document.documentElement.scrollLeft ?Êdocument.documentElement.scrollLeft : document.body.scrollLeft);
        var posY = e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);

        helpBox.style.top = posY-10 + 'px';
        helpBox.style.left = posX+30 + 'px';

        if ( help_el.style.display == 'block' ) {
            if ( last_help ) { lhelp_el.style.display = 'block'; };
            help_el.style.display = 'none';
            helpBox.style.display = 'none';
            clearTimeout(TIMEOUT_ID)
        } else {
            if ( last_help ) { lhelp_el.style.display = 'none'; };
            help_el.style.display = 'block';
            helpBox.style.display = 'block';
            TIMEOUT_ID = setTimeout(function () { help_el.style.display = 'none';helpBox.style.display = 'none'; },10000);
        };
        last_help = el_name;

        return false;
    }
};
var last_help;
help.addEvent(window, 'load', help.init, false);
