﻿var _formEnabled = true;

if (window.addEventListener)
    window.addEventListener('load', WindowLoadHandler, false);
else if (window.attachEvent)
    window.attachEvent('onload', WindowLoadHandler);

function WindowLoadHandler()
{
    var forms = document.body.getElementsByTagName("form");
    
    for (var i = 0; i < forms.length; i++)
    {
        var elements = forms[i].elements;
        
        for (var j = 0; j < elements.length; j++)
        {
            var element = elements[j];
            
            if (element.addEventListener)
                element.addEventListener('focus', ElementFocusHandler, false);
            else if (element.attachEvent)
                element.attachEvent('onfocus', ElementFocusHandler);
        }
    }
}

function ElementFocusHandler(e)
{
    if (!e)
        e = window.event;
    
    if (!e)
        return;
    
    var element = e.srcElement;
    
    if (!element)
        element = e.target;
    
    var hiddenField = document.getElementById ? document.getElementById("__LASTFOCUS") : document.all ? document.all["__LASTFOCUS"] : null;
    
    if (hiddenField)
        hiddenField.value = element.name;
}

function RestoreFocus(elementName)
{
    if (!elementName)
        return;
    
    var forms = document.body.getElementsByTagName("form");
    
    for (var i = 0; i < forms.length; i++)
    {
        var element = forms[i].elements[elementName];
        
        if (element)
        {
            try
            {
                element.focus();
            }
            catch (ex)
            {
            }
            
            break;
        }
    }
}

function EnableForm()
{
    SetFormEnabled(true);
}

function DisableForm()
{
    SetFormEnabled(false);
}

function SetFormEnabled(value)
{
    if (_formEnabled == value)
        return;
    
    document.body.className = value ? "" : "Disabled";
    _formEnabled = value;
}

function HideNotPrintableElements(keepBackup, excludePrinter)
{
    for (var i = 0; i < document.all.length; i++)
    {
        var element = document.all[i];
        
        if ((element.getAttribute('printable') == 'false') && (!excludePrinter || (element.id != 'tdPrinter')))
        {
            if (keepBackup)
                element.originalDisplay = element.style.display;
            
            element.style.display = 'none';
        }
    }
}

function ShowNotPrintableElements(useBackup, excludePrinter)
{
    for (var i = 0; i < document.all.length; i++)
    {
        var element = document.all[i];
        
        if ((element.getAttribute('printable') == 'false') && (!excludePrinter || (element.id != 'tdPrinter')))
        {
            if (useBackup)
                element.style.display = element.originalDisplay ? element.originalDisplay : '';
            else
                element.style.display = '';
        }
    }
}
