/*
================================================================================
= Naam             : Object Functions 2.0                                      =
= Programmeur      : Rob Timmers                                               =
= Laatst gewijzigd : 11 maart 2008                                             =
= Omschrijving     : Functies om de standaard Form elementen te manipuleren    =
= Afhankelijkheden : geen                                                      =
================================================================================
	
================================================================================
= Changes																	   =
================================================================================
	
2007-10-18:
De functies TextValidateIsEmpty en TextIsEmpty zijn hernoemd naar
TextValidateIsNotEmpty en TextIsNotEmpty. Dit omdat deze functies precies op
een tegenovergestelde wijze werkten als de varianten voor de andere objecten.
De functies zullen nu dus true terug geven indien een veld gevuld is en false
indien een veld leeg is.
	
De functie TextValue is hernoemd naar TextGetValue, omdat het niet duidelijk
was of deze functie een waarde ophaalde of wegschreef.
	
De functie TextGetValue zal bij het niet bestaan van het object undefined terug
gaan geven in plaats van de gewoonlijke false. Dit omdat de functie de inhoud
van een input text op dient te halen en false een waarde is.
	
De functie TextEnabled is hernoemd naar TextSetEnabled, omdat het niet duidelijk
was of deze functie iets instelde of ophaalde. De functie TextGetEnabled is
toegevoegd om op te halen of een input text enabled is.
	
	
2007-11-13:
Bug verwijderd uit de Radio Group functies. Bij het selecteren van een groep
aan de hand van de naam werden ook de radio buttons met een gelijknamige id
meegenomen.
	
	
2008-02-28:
Alle afhankelijkheden vervangen voor interne afhandeling zodat de libraries
los gebruikt kunnen worden.
Nieuwe functies: CheckboxGroupGetValues, CheckboxGroupValidateNumberChecked,
CheckboxGroupClearChecks, CheckboxGroupIsValueChecked, CheckboxGroupEnable,
CheckboxGroupDisable, CheckboxGroupGetEnabled, CheckboxGroupSetEnabled,
CheckboxGroupExists en CheckboxGroupCheckByValue
    
2008-02-29:
Nieuwe functies: TextAreaGetValue, TextAreaSetValue, TextAreaGetValueLength,
TextAreaClearValue, TextAreaEnable, TextAreaDisable, TextAreaGetEnabled,
TextAreaSetEnabled en TextAreaExists
	
	
================================================================================
= Overzicht functies per object                                                =
================================================================================
	
Algemene functies
=================
	
ObjectSetFocus(strIDObject)
ObjectEnable(strIDObject)
ObjectDisable(strIDObject)
ObjectGetEnabled(strIDObject)
ObjectSetEnabled(strIDObject, blnEnabled)
ObjectExists(strIDObject)
	
	
Text
====
	
TextValidateIsNotEmpty(strIDText, blnTrimValue, blnUpdateText, blnMustEnter, blnShowAlerts, strAlertMessage, blnBackToText)
TextIsNotEmpty(strIDText, blnTrimValue, blnUpdateText)
TextGetValue(strIDText, blnTrimValue)
TextSetValue(strIDText, strValue)
TextClearValue(strIDText)
TextEnable(strIDText)
TextDisable(strIDText)
TextGetEnabled(strIDText)
TextSetEnabled(strIDText, blnEnabled)
TextExists(strIDText)
	
	
Checkbox
========
	
CheckboxIsChecked(strIDCheckbox)
CheckboxClearCheck(strIDCheckbox)
CheckboxEnable(strIDCheckbox)
CheckboxDisable(strIDCheckbox)
CheckboxGetEnabled(strIDCheckbox)	
CheckboxSetEnabled(strIDCheckbox, blnEnabled)
CheckboxExists(strIDCheckbox)
CheckboxGroupGetValues(strNameCheckboxGroup)
CheckboxGroupValidateNumberChecked(strNameCheckboxGroup, lngMinimum, lngMaximum, strGroupname, blnShowAlerts, blnBackToCheckboxGroup)
CheckboxGroupClearChecks(strNameCheckboxGroup)
CheckboxGroupIsValueChecked(strNameCheckboxGroup, strValue)
CheckboxGroupEnable(strNameCheckboxGroup)
CheckboxGroupDisable(strNameCheckboxGroup)
CheckboxGroupGetEnabled(strNameCheckboxGroup)
CheckboxGroupSetEnabled(strNameCheckboxGroup, blnEnabled)
CheckboxGroupExists(strNameCheckboxGroup)
CheckboxGroupCheckByValue(strNameCheckboxGroup, strValue)
	
	
Radio
=====
	
RadioEnable(strIDRadio)
RadioDisable(strIDRadio)
RadioEnabled(strIDRadio, blnEnabled)
RadioExists(strIDRadio)
RadioGroupValidateIsChecked(strNameRadioGroup, blnMustEnter, blnShowAlerts, strAlertMessage, blnBackToRadioGroup)
RadioGroupIsChecked(strNameRadioGroup)
RadioGroupGetValue(strNameRadioGroup, strNoChoiceValue)
RadioGroupSetValue(strNameRadioGroup, strValue)
RadioGroupClearChecks(strNameRadioGroup)
RadioGroupEnable(strNameRadioGroup)
RadioGroupDisable(strNameRadioGroup)
RadioGroupGetEnabled(strNameRadioGroup)
RadioGroupSetEnabled(strNameRadioGroup, blnEnabled)
RadioGroupExists(strNameRadioGroup)
	
	
Select
======
	
SelectValidateIsSelected(strIDSelect, blnMustEnter, strEmptyValue, blnShowAlerts, strAlertMessage, blnBackToSelect)
SelectIsSelected(strIDSelect, strEmptyValue)
SelectSelectByValue(strIDSelect, strValue)
SelectSelectByLabel(strIDSelect, strLabel)
SelectGetValue(strIDSelect)
SelectClearOptions(strIDSelect)
SelectEnable(strIDSelect)
SelectDisable(strIDSelect)
SelectGetEnabled(strIDSelect)
SelectSetEnabled(strIDSelect, blnEnabled)
SelectExists(strIDSelect)
	
TextArea
========
	
TextAreaGetValue(strIDTextArea, blnTrimValue, blnUpdateTextArea)
TextAreaSetValue(strIDTextArea, strValue)
TextAreaGetValueLength(strIDTextArea, blnTrimValue, blnUpdateTextArea)
TextAreaClearValue(strIDTextArea)
TextAreaEnable(strIDTextArea)
TextAreaDisable(strIDTextArea)
TextAreaGetEnabled(strIDTextArea)
TextAreaSetEnabled(strIDTextArea, blnEnabled)
TextAreaExists(strIDTextArea)
	
*/


//	================================================================================
//	= Algemene functies                                                            =
//	================================================================================

function ObjectSetFocus(strIDObject) {
    var l_objObject = document.getElementById(strIDObject);

    if (eval(l_objObject) == null) {
        alert("Bad Object Reference: " + strIDObject + "\n\nFunction: ObjectSetFocus");
        return (false);
    }

    l_objObject.focus();

    return (true);
}


function ObjectEnable(strIDObject) {
    var l_objObject = document.getElementById(strIDObject);

    if (eval(l_objObject) == null) {
        alert("Bad Object Reference: " + strIDObject + "\n\nFunction: ObjectEnable");
        return (false);
    }

    l_objObject.disabled = false;

    return (true);
}


function ObjectDisable(strIDObject) {
    var l_objObject = document.getElementById(strIDObject);

    if (eval(l_objObject) == null) {
        alert("Bad Object Reference: " + strIDObject + "\n\nFunction: ObjectDisable");
        return (false);
    }

    l_objObject.disabled = true;

    return (true);
}


function ObjectGetEnabled(strIDObject) {
    var l_objObject = document.getElementById(strIDObject);

    if (eval(l_objObject) == null) {
        alert("Bad Object Reference: " + strIDObject + "\n\nFunction: ObjectGetEnabled");
        return;
    }

    return (!l_objObject.disabled);
}


function ObjectSetEnabled(strIDObject, blnEnabled) {
    var l_objObject = document.getElementById(strIDObject);

    if (eval(l_objObject) == null) {
        alert("Bad Object Reference: " + strIDObject + "\n\nFunction: ObjectSetEnabled");
        return (false);
    }

    l_objObject.disabled = !blnEnabled;

    return (true);
}


function ObjectExists(strIDObject) {
    var l_objObject = document.getElementById(strIDObject);

    return (eval(l_objObject) != null);
}


//	================================================================================
//	= Text fields functies                                                         =
//	================================================================================

function TextValidateIsNotEmpty(strIDText, blnTrimValue, blnUpdateText, blnMustEnter, blnShowAlerts, strAlertMessage, blnBackToText) {
    var l_objText = document.getElementById(strIDText);
    var l_strTextValue = new String();

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextValidateIsNotEmpty");
        return (false);
    }

    l_strTextValue = l_objText.value.toString();

    if (blnTrimValue) {
        l_strTextValue = l_strTextValue.replace(/^\s+/g, "").replace(/\s+$/g, "");

        if (blnUpdateText) {
            l_objText.value = l_strTextValue;
        }
    }

    if (l_strTextValue.length == 0) {
        if (blnMustEnter) {

            if (blnShowAlerts) {
                alert(strAlertMessage);
            }

            if (blnBackToText) {
                l_objText.focus();
            }

            return (false);
        } else {
            return (true);
        }
    } else {
        return (true);
    }
}


function TextIsNotEmpty(strIDText, blnTrimValue, blnUpdateText) {
    var l_objText = document.getElementById(strIDText);
    var l_strTextValue = new String();

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextIsNotEmpty");
        return (false);
    }

    l_strTextValue = l_objText.value.toString();

    if (blnTrimValue) {
        l_strTextValue = l_strTextValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
        if (blnUpdateText) {
            l_objText.value = l_strTextValue;
        }
    }

    return (l_strTextValue.length > 0);
}


function TextGetValue(strIDText, blnTrimValue) {
    var l_objText = document.getElementById(strIDText);
    var l_strValue = new String();

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextGetValue");
        return;
    }

    l_strValue = l_objText.value.toString();

    if (blnTrimValue) {
        l_strValue = l_strValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
    }

    return (l_strValue);
}


function TextSetValue(strIDText, strValue) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextSetValue");
        return (false);
    }

    l_objText.value = strValue;

    return (true);
}


function TextClearValue(strIDText) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextClearValue");
        return (false);
    }

    l_objText.value = ""

    return (true);
}


function TextEnable(strIDText) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextEnable");
        return (false);
    }

    l_objText.disabled = false;

    return (true);
}


function TextDisable(strIDText) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextDisable");
        return (false);
    }

    l_objText.disabled = true;

    return (true);
}


function TextGetEnabled(strIDText) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextGetEnabled");
        return;
    }

    return (!l_objText.disabled);
}


function TextSetEnabled(strIDText, blnEnabled) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        alert("Bad Object Reference: " + strIDText + "\n\nFunction: TextSetEnabled");
        return (false);
    }

    l_objText.disabled = !blnEnabled;

    return (true);
}


function TextExists(strIDText) {
    var l_objText = document.getElementById(strIDText);

    if (eval(l_objText) == null) {
        return (false);
    } else if (l_objText.tagName.toUpperCase() == "INPUT" && l_objText.type.toUpperCase() == "TEXT") {
        return (true);
    } else {
        alert("Bad Object Type: " + strIDText + "\n\nFunction: TextExists");
        return (false);
    }
}



//	================================================================================
//	= Checkbox functies                                                            =
//	================================================================================

function CheckboxIsChecked(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxIsChecked");
        return;
    }

    return (l_objCheckbox.checked);
}


function CheckboxSetCheck(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxSetCheck");
        return (false);
    }

    if (!l_objCheckbox.checked) {
        l_objCheckbox.checked = true;
    }

    return (true);
}


function CheckboxClearCheck(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxClearCheck");
        return (false);
    }

    if (l_objCheckbox.checked) {
        l_objCheckbox.checked = false;
    }

    return (true);
}


function CheckboxEnable(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxEnable");
        return (false);
    }

    l_objCheckbox.disabled = false;

    return (true);
}


function CheckboxDisable(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) { alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxDisable"); return (false); }

    l_objCheckbox.disabled = true;

    return (true);
}


function CheckboxGetEnabled(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxGetEnabled");
        return;
    }

    return (!l_objCheckbox.disabled);
}


function CheckboxSetEnabled(strIDCheckbox, blnEnabled) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        alert("Bad Object Reference: " + strIDCheckbox + "\n\nFunction: CheckboxSetEnabled");
        return (false);
    }

    l_objCheckbox.disabled = !blnEnabled;

    return (true);
}


function CheckboxExists(strIDCheckbox) {
    var l_objCheckbox = document.getElementById(strIDCheckbox);

    if (eval(l_objCheckbox) == null) {
        return (false);
    } else if (l_objCheckbox.tagName.toUpperCase() == "INPUT" && l_objCheckbox.type.toUpperCase() == "CHECKBOX") {
        return (true);
    } else {
        alert("Bad Object Type: " + strIDCheckbox + "\n\nFunction: CheckboxExists");
        return (false);
    }
}


function CheckboxGroupGetValues(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);
    var l_strValues = new String("");

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var i = 0; i < l_objCheckboxGroup.length; i++) {
            // Controleren of het element een checkbox is.
            if (l_objCheckboxGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(i).type.toUpperCase() == "CHECKBOX") {
                if (l_objCheckboxGroup.item(i).checked) {
                    if (l_strValues.length > 0) l_strValues = l_strValues + ", ";
                    l_strValues = l_strValues + l_objCheckboxGroup.item(i).value;
                }
            }
        }
        return (l_strValues);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupGetValues");
        return ("");
    }
}

function CheckboxGroupValidateNumberChecked(strNameCheckboxGroup, lngMinimum, lngMaximum, strGroupname, blnShowAlerts, blnBackToCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);
    var l_lngMinimum = new Number(-1);
    var l_lngMaximum = new Number(-1);
    var l_lngNumberChecked = new Number(0);

    if (!isNaN(lngMinimum)) l_lngMinimum = parseInt(lngMinimum, 10);
    if (!isNaN(lngMaximum)) l_lngMaximum = parseInt(lngMaximum, 10);

    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX") {
                if (l_objCheckboxGroup.item(l_lngCheckboxCounter).checked) {
                    l_lngNumberChecked++;
                }
            }
        }

        if (l_lngMinimum != -1) {
            if (l_lngNumberChecked < l_lngMinimum) {
                if (blnShowAlerts) {
                    if (l_lngMinimum != 1) {
                        alert("Er moeten minimaal " + l_lngMinimum.toString() + " keuzes bij '" + strGroupname + "' aangevinkt zijn.");
                    } else {
                        alert("Er moet minimaal 1 keuze bij '" + strGroupname + "' aangevinkt zijn.");
                    }
                }
                if (blnBackToCheckboxGroup) {
                    l_objCheckboxGroup[0].focus();
                }
                return (false);
            }
        }

        if (l_lngMaximum != -1) {
            if (l_lngNumberChecked > l_lngMaximum) {
                if (blnShowAlerts) {
                    if (l_lngMaximum != 1) {
                        alert("Er mogen maar " + l_lngMaximum.toString() + " keuzes bij '" + strGroupname + "' aangevinkt zijn.");
                    } else {
                        alert("Er mag maar 1 keuze bij '" + strGroupname + "' aangevinkt zijn.");
                    }
                }
                if (blnBackToCheckboxGroup) {
                    l_objCheckboxGroup[0].focus();
                }
                return (false);
            }
        }
        return (true);
    } else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupValidateNumberChecked");
        return (false);
    }
}


function CheckboxGroupClearChecks(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup) {
                if (l_objCheckboxGroup.item(l_lngCheckboxCounter).checked) {
                    l_objCheckboxGroup.item(l_lngCheckboxCounter).checked = false;
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupClearChecks");
        return (false);
    }
}

function CheckboxGroupIsValueChecked(strNameCheckboxGroup, strValue) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).value == strValue) {
                return (l_objCheckboxGroup.item(l_lngCheckboxCounter).checked);
            }
        }
        return (false);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupIsValueChecked");
        return (false);
    }
}


function CheckboxGroupEnable(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup) {
                if (l_objCheckboxGroup.item(l_lngCheckboxCounter).disabled) {
                    l_objCheckboxGroup.item(l_lngCheckboxCounter).disabled = false;
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupEnable");
        return (false);
    }
}


function CheckboxGroupDisable(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objRadioGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup) {
                if (!l_objRadioGroup.item(l_lngCheckboxCounter).disabled) {
                    l_objRadioGroup.item(l_lngCheckboxCounter).disabled = true;
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupDisable");
        return (false);
    }
}


function CheckboxGroupGetEnabled(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup) {
                if (l_objCheckboxGroup.item(l_lngCheckboxCounter).disabled) {
                    return (false);
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupGetEnabled");
        return (false);
    }
}


function CheckboxGroupCheckByValue(strNameCheckboxGroup, strValue) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup && l_objCheckboxGroup.item(l_lngCheckboxCounter).value == strValue) {
                l_objCheckboxGroup.item(l_lngCheckboxCounter).checked = true;
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupCheckByValue");
        return (false);
    }
}



function CheckboxGroupSetEnabled(strNameCheckboxGroup, blnEnabled) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objCheckboxGroup.length > 0) {
        for (var l_lngCheckboxCounter = 0; l_lngCheckboxCounter < l_objCheckboxGroup.length; l_lngCheckboxCounter++) {
            // Controleren of het element een radio button is.
            if (l_objCheckboxGroup.item(l_lngCheckboxCounter).tagName.toUpperCase() == "INPUT" && l_objCheckboxGroup.item(l_lngCheckboxCounter).type.toUpperCase() == "CHECKBOX" && l_objCheckboxGroup.item(l_lngCheckboxCounter).name == strNameCheckboxGroup) {
                if (l_objCheckboxGroup.item(l_lngCheckboxCounter).disabled != !blnEnabled) {
                    l_objCheckboxGroup.item(l_lngCheckboxCounter).disabled = !blnEnabled;
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameCheckboxGroup + "\n\nFunction: CheckboxGroupSetEnabled");
        return (false);
    }
}


function CheckboxGroupExists(strNameCheckboxGroup) {
    var l_objCheckboxGroup = document.getElementsByName(strNameCheckboxGroup);

    return (l_objCheckboxGroup.length > 0);
}



//	================================================================================
//	= Radio buttons functies                                                       =
//	================================================================================

function RadioEnable(strIDRadio) {
    var l_objRadio = document.getElementById(strIDRadio);

    if (eval(l_objRadio) == null) {
        alert("Bad Object Reference: " + strIDRadio + "\n\nFunction: RadioEnable");
        return (false);
    }

    l_objRadio.disabled = false;

    return (true);
}


function RadioDisable(strIDRadio) {
    var l_objRadio = document.getElementById(strIDRadio);

    if (eval(l_objRadio) == null) {
        alert("Bad Object Reference: " + strIDRadio + "\n\nFunction: RadioDisable");
        return (false);
    }

    l_objRadio.disabled = true;

    return (true);
}


function RadioGetEnabled(strIDRadio) {
    var l_objRadio = document.getElementById(strIDRadio);

    if (eval(l_objRadio) == null) {
        alert("Bad Object Reference: " + strIDRadio + "\n\nFunction: RadioGetEnabled");
        return;
    }

    return (!l_objRadio.disabled);

}


function RadioSetEnabled(strIDRadio, blnEnabled) {
    var l_objRadio = document.getElementById(strIDRadio);

    if (eval(l_objRadio) == null) {
        alert("Bad Object Reference: " + strIDRadio + "\n\nFunction: RadioSetEnabled");
        return (false);
    }

    l_objRadio.disabled = !blnEnabled;

    return (true);
}


function RadioExists(strIDRadio) {
    var l_objRadio = document.getElementById(strIDRadio);

    if (eval(l_objRadio) == null) {
        return (false);
    } else if (l_objRadio.tagName.toUpperCase() == "INPUT" && l_objRadio.type.toUpperCase() == "RADIO" && l_objRadio.id == strIDRadio) {
        return (true);
    } else {
        alert("Bad Object Type: " + strIDRadio + "\n\nFunction: RadioExists");
        return (false);
    }
}


function RadioGroupValidateIsChecked(strNameRadioGroup, blnMustEnter, blnShowAlerts, strAlertMessage, blnBackToRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO") {
                // Indien de radio button is aangevinkt dit teruggeven.
                if (l_objRadioGroup.item(i).checked) return (true);
            }
        }

        if (blnMustEnter) {
            // Indien gewenst de gebruiker informeren met het opgegeven bericht.
            if (blnShowAlerts) alert(strAlertMessage);
            // Indien gewenst de eerst radio button uit de groep (weer) selecteren.
            if (blnBackToRadioGroup) {
                for (var i = 0; i < l_objRadioGroup.length; i++) {
                    // Controleren of het element een radio button is.
                    if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO") {
                        // De radio selecteren.
                        l_objRadioGroup.item(i).focus();
                        return (false);
                    }
                }
                return (false);
            }
        }
        else
            return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupValidateIsChecked");
        return (false);
    }
}


function RadioGroupIsChecked(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                // Indien de radio button is aangevinkt dit teruggeven.
                if (l_objRadioGroup.item(i).checked) return (true);
            }
        }
        // Indien de radio button niet is aangevinkt dit teruggeven.
        return (false);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupIsChecked");
        return (false);
    }
}


function RadioGroupGetValue(strNameRadioGroup, strNoChoiceValue) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                // Indien de radio button is aangevinkt de waarde hiervan teruggeven.
                if (l_objRadioGroup.item(i).checked) return (l_objRadioGroup.item(i).value);
            }
        }
        // Geen van de radiobuttons waren aangevinkt dus strNoChoiceValue teruggeven. 
        return (strNoChoiceValue);
    }
    else {
        alert("Bad Object Reference: " + strIDRadioGroup + "\n\nFunction: RadioGroupGetValue");
        return (strNoChoiceValue);
    }
}

function RadioGroupSetValue(strNameRadioGroup, strValue) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                // Indien de radio button is aangevinkt de waarde hiervan teruggeven.
                if (l_objRadioGroup.item(i).value == strValue) {
                    if (!l_objRadioGroup.item(i).checked) {
                        l_objRadioGroup.item(i).checked = true;
                    }
                } else {
                    if (l_objRadioGroup.item(i).checked) {
                        l_objRadioGroup.item(i).checked = false;
                    }
                }
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strIDRadioGroup + "\n\nFunction: RadioGroupSetValue");
        return (false);
    }
}

function RadioGroupClearChecks(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                if (l_objRadioGroup.item(i).checked) l_objRadioGroup.item(i).checked = false;
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupClearChecks");
        return (false);
    }
}


function RadioGroupEnable(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                if (l_objRadioGroup.item(i).disabled) l_objRadioGroup.item(i).disabled = false;
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupEnable");
        return (false);
    }
}


function RadioGroupDisable(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                if (!l_objRadioGroup.item(i).disabled) l_objRadioGroup.item(i).disabled = true;
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupDisable");
        return (false);
    }
}


function RadioGroupGetEnabled(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                if (l_objRadioGroup.item(i).disabled) return (false);
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupGetEnabled");
        return (false);
    }
}

function RadioGroupSetEnabled(strNameRadioGroup, blnEnabled) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    // Controleren of er objecten zijn die de opgegeven naam hebben
    if (l_objRadioGroup.length > 0) {
        for (var i = 0; i < l_objRadioGroup.length; i++) {
            // Controleren of het element een radio button is.
            if (l_objRadioGroup.item(i).tagName.toUpperCase() == "INPUT" && l_objRadioGroup.item(i).type.toUpperCase() == "RADIO" && l_objRadioGroup.item(i).name == strNameRadioGroup) {
                if (l_objRadioGroup.item(i).disabled != blnEnabled) l_objRadioGroup.item(i).disabled = blnEnabled;
            }
        }
        return (true);
    }
    else {
        alert("Bad Object Reference: " + strNameRadioGroup + "\n\nFunction: RadioGroupSetEnabled");
        return (false);
    }
}

function RadioGroupExists(strNameRadioGroup) {
    var l_objRadioGroup = document.getElementsByName(strNameRadioGroup);

    return (l_objRadioGroup.length > 0);
}


//	================================================================================
//	= Select functies                                                              =
//	================================================================================

function SelectValidateIsSelected(strIDSelect, blnMustEnter, strEmptyValue, blnShowAlerts, strAlertMessage, blnBackToSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectValidateIsSelected");
        return;
    }

    if (l_objSelect.value != strEmptyValue) {
        return (true);
    } else {
        if (blnMustEnter) {
            if (blnShowAlerts) {
                alert(strAlertMessage);
            }
            if (blnBackToSelect) {
                l_objSelect.focus();
            }
            return (false);

        } else {
            return (true);
        }
    }
}


function SelectIsSelected(strIDSelect, strEmptyValue) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectIsSelected");
        return;
    }

    return (l_objSelect.value != strEmptyValue);
}


function SelectSelectByValue(strIDSelect, strValue) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectSelectByValue");
        return (false);
    }

    if (l_objSelect.options.length > 0) {
        for (var i = 0; i < l_objSelect.options.length; i++) {
            // Indien de waarde van de option overeen komt met de opgegeven waarde deze selecteren.
            if (l_objSelect.options[i].value == strValue) {
                l_objSelect.options[i].selected = true;
                return (true);
            }
        }
    }
    return (false);
}


function SelectSelectByLabel(strIDSelect, strLabel) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectSelectByLabel");
        return (false);
    }

    if (l_objSelect.options.length > 0) {
        for (var i = 0; i < l_objSelect.options.length; i++) {
            // Indien de label van de option overeen komt met de opgegeven label deze selecteren.
            if (l_objSelect.options[i].text == strLabel) {
                l_objSelect.options[i].selected = true;
                return (true);
            }
        }
    }
    return (false);
}


function SelectGetValue(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectGetValue");
        return (false);
    }

    return (l_objSelect.value);
}


function SelectClearOptions(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectClearOptions");
        return (false);
    }

    if (l_objSelect.length > 0) {
        l_lngNumberOfOptions = l_objSelect.length;
        for (var i = 0; i < l_objSelect.length; i++) {
            l_objSelect.remove(0);
        }
    }
}


function SelectEnable(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectEnable");
        return (false);
    }

    l_objSelect.disabled = false;
}


function SelectDisable(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectDisable");
        return (false);
    }

    l_objSelect.disabled = true;
}


function SelectGetEnabled(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectGetEnabled");
        return;
    }

    return (!l_objSelect.disabled);
}


function SelectSetEnabled(strIDSelect, blnEnabled) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        alert("Bad Object Reference: " + strIDSelect + "\n\nFunction: SelectSetEnabled");
        return (false);
    }

    l_objSelect.disabled = !blnEnabled;
}


function SelectExists(strIDSelect) {
    var l_objSelect = document.getElementById(strIDSelect);

    if (eval(l_objSelect) == null) {
        return (false);
    } else if (l_objSelect.tagName.toUpperCase() == "SELECT") {
        return (true);
    } else {
        alert("Bad Object Type: " + strIDSelect + "\n\nFunction: SelectExists");
        return (false);
    }
}


//	================================================================================
//	= Text Area Functies                                                           =
//	================================================================================

function TextAreaValidateIsNotEmpty(strIDTextArea, blnTrimValue, blnUpdateTextArea, blnMustEnter, blnShowAlerts, strAlertMessage, blnBackToTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);
    var l_strValue = new String();

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaValidateIsNotEmpty");
        return (false);
    }

    l_strValue = l_objTextArea.value.toString();

    if (blnTrimValue) {
        l_strValue = l_strValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
        if (blnUpdateTextArea) {
            l_objTextArea.value = l_strValue;
        }
    }

    if (l_strValue.length == 0) {
        if (blnMustEnter) {
            if (blnShowAlerts) {
                alert(strAlertMessage);
            }
            if (blnBackToTextArea) {
                l_objTextArea.focus();
            }
            return (false);
        } else {
            return (true);
        }
    } else {
        return (true);
    }
}


function TextAreaIsNotEmpty(strIDTextArea, blnTrimValue, blnUpdateTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);
    var l_strValue = new String();

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaIsNotEmpty");
        return (false);
    }

    l_strValue = l_objTextArea.value.toString();
    if (blnTrimValue) {
        l_strValue = l_strValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
        if (blnUpdateTextArea) {
            l_objTextArea.value = l_strValue;
        }
    }
    return (l_strValue.length > 0);
}


function TextAreaGetValue(strIDTextArea, blnTrimValue, blnUpdateTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);
    var l_strValue = new String();

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaGetValue");
        return;
    }
    l_strValue = l_objTextArea.value.toString();
    if (blnTrimValue) {
        l_strValue = l_strValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
        if (blnUpdateTextArea) {
            l_objTextArea.value = l_strValue;
        }
    }
    return (l_strValue);
}


function TextAreaSetValue(strIDTextArea, strValue) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaSetValue");
        return (false);
    }
    l_objTextArea.value = strValue.toString();
    return (true);
}


function TextAreaGetValueLength(strIDTextArea, blnTrimValue, blnUpdateTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);
    var l_strValue = new String();

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaGetValueLength");
        return;
    }
    l_strValue = l_objTextArea.value.toString();
    if (blnTrimValue) {
        l_strValue = l_strValue.replace(/^\s+/g, "").replace(/\s+$/g, "");
    }
    if (blnUpdateTextArea) {
        l_objTextArea.value = l_strValue;
    }
    return (l_strValue.length);
}


function TextAreaClearValue(strIDTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaClearValue");
        return (false);
    }
    l_objTextArea.value = "";
    return (true);
}


function TextAreaEnable(strIDTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaEnable");
        return (false);
    }
    l_objTextArea.disabled = false;
    return (true);
}


function TextAreaDisable(strIDTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaDisable");
        return (false);
    }
    l_objTextArea.disabled = true;
    return (true);
}


function TextAreaGetEnabled(strIDTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaGetEnabled");
        return;
    }
    return (!l_objTextArea.disabled);
}


function TextAreaSetEnabled(strIDTextArea, blnEnabled) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        alert("Bad Object Reference: " + strIDTextArea + "\n\nFunction: TextAreaSetEnabled");
        return (false);
    }
    l_objTextArea.disabled = !blnEnabled;
    return (true);
}


function TextAreaExists(strIDTextArea) {
    var l_objTextArea = document.getElementById(strIDTextArea);

    if (eval(l_objTextArea) == null) {
        return (false);
    } else if (l_objTextArea.tagName.toUpperCase() == "TEXTAREA") {
        return (true);
    } else {
        alert("Bad Object Type: " + strIDTextArea + "\n\nFunction: TextAreaExists");
        return (false);
    }
}

