function hideDiv(pass)
{
    var divs = document.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++)
    {
        if (divs[i].id.match(pass))
        {//if they are 'see' divs
            if (document.getElementById) // DOM3 = IE5, NS6
                divs[i].style.display = "none";// show/hide
            else
                if (document.layers) // Netscape 4
                    document.layers[divs[i]].display = 'none';
                else // IE 4
                    document.all.hideShow.divs[i].display = 'none';
        }
    }
}

function showDiv(pass)
{
    var divs = document.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++)
    {
        if (divs[i].id.match(pass))
        {
            if (document.getElementById)
                divs[i].style.display = "block";
            else
                if (document.layers) // Netscape 4
                    document.layers[divs[i]].display = 'block';
                else // IE 4
                    document.all.hideShow.divs[i].display = 'block';
        }
    }
}

function showMultipleDiv(prefix, pass, suffix, delim, callback)
{
    var tokens = pass.split(delim);
    for (var i = 0; i < tokens.length; i++)
    {
        var token = tokens[i]
        if (token != "")
        {
            var divId = prefix + token + suffix;
            showDiv(divId);
            callback(divId);
        }
    }
}

function toggleDiv(pass)
{
    var divs = document.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++)
    {
        if (divs[i].id.match(pass))
        {
            if (document.getElementById)
                if (divs[i].style.display == "block")
                    divs[i].style.display = "none";
                else
                    divs[i].style.display = "block";
            else
                if (document.layers) // Netscape 4
                    if (document.layers[divs[i]].display == "block")
                        document.layers[divs[i]].display = 'none';
                    else
                        document.layers[divs[i]].display = 'block';
                else // IE 4
                    if (document.all.hideShow.divs[i].display == "block")
                        document.all.hideShow.divs[i].display = 'none';
                    else
                        document.all.hideShow.divs[i].display = 'block';
        }
    }
}

function toggleAllCheckboxes(controlField, listField)
{
    var size = listField.length;
    for (i = 0; i < size; i++)
    {
        listField[i].checked = controlField.checked;
    }
}

function removeSelectionOptions(selection)
{
    var length = selection.length;
    for (var i = 0; i < length; i++)
    {
        selection.options[0] = null;
    }
}

function replaceSelectionOptions(sourceSelection, targetSelection)
{
    var selectedValue = targetSelection.value;
    var reselected = false;
    removeSelectionOptions(targetSelection);
    var length = sourceSelection.length;
    for (i = 0; i < length; i++)
    {
        var currentOption = sourceSelection.options[i];
        targetSelection.options[i] = new Option(currentOption.text, currentOption.value);
        if (currentOption.value == selectedValue)
        {
            targetSelection.options[i].selected = true;
            reselected = true;
        }
    }
    if (!reselected)
    {
        targetSelection.selectedIndex = 0;
    }
}

function sliceTextField(textFieldName, notificationName, length)
{
    var textField = document.getElementById(textFieldName);

    if (textField != null)
    {
        if (textField.value.length > 0)
        {
            if (navigator.userAgent.indexOf("Firefox") != -1)
            {
                var versionindex = navigator.userAgent.indexOf("Firefox") + 8
                if (parseInt(navigator.userAgent.charAt(versionindex)) >= 1)
                {
                    var matches = textField.value.match(/\n/g);
                    if (matches != null && matches.length > 0)
                    {
                        length = length - matches.length;
                    }
                }
            }
        }
        var value = textField.value;
        var newValue = value.slice(0, length);
        if (value != newValue)
        {
            textField.value = newValue;
        }
        var notificationElement = document.getElementById(notificationName);
        if (notificationElement)
        {
            var remaining = length - newValue.length;
            if (remaining < 0) remaining = 0;
            notificationElement.innerHTML = remaining;
        }
    }
}

function disableAllFields()
{
    for (var j = 0; j < document.forms.length; j++)
    {
        var form = document.forms[j];
        disableFormFields(form);
    }
}

function disableFormFields(form)
{
    for (var i = 0; i < form.elements.length; i++)
    {
        var formElement = form.elements[i];
        if (formElement.type == "submit")
        {
            if (formElement.className.indexOf("alwaysEnabled") == -1)
            {
                formElement.style.display = "none";
            }
        }
        else if (formElement.type != "hidden")
        {
            if (formElement.className.indexOf("alwaysEnabled") == -1)
            {
                formElement.disabled = true;
            }
        }
    }
    for (var i = 0; i < document.images.length; i++)
    {
        var img = document.images[i];
        if (img.className.indexOf("calendar-img") != -1)
        {
            img.style.display = "none";
        }
    }
}

function enableAllFields()
{
    for (var j = 0; j < document.forms.length; j++)
    {
        var form = document.forms[j];
        enableFormFields(form);
    }
    for (var i = 0; i < document.images.length; i++)
    {
        var img = document.images[i];
        if (img.className.indexOf("calendar-img") != -1)
        {
            img.style.display = "";
        }
    }
}

function enableFormFields(form)
{
    for (var i = 0; i < form.elements.length; i++)
    {
        var formElement = form.elements[i];
        if (formElement.type == "submit")
        {
            formElement.style.display = "";
        }
        else if (formElement.type != "hidden")
        {
            formElement.disabled = false;
        }
    }
}

