
function CheckboxHover(id, activate) 
{
    var element = document.getElementById(id);

    if (element != null) 
    {
        if (activate == true)
            element.className = CheckGetState(id, "onmouseover");
        else
            element.className = CheckGetState(id, "onmouseout");
    }
}

function Check(DivID, valueId) 
{
    var element = document.getElementById(DivID);
    var valueElement = document.getElementById(valueId);
    var CheckedValueElement = document.getElementById(valueId+"CheckedValue");
    var UnCheckedValueElement = document.getElementById(valueId+"UnCheckedValue");

    if (element != null && valueElement!=null && CheckedValueElement!=null && UnCheckedValueElement!=null) 
    {
        var state = CheckGetState(DivID, "onclick");

        element.className = state;

        if (state == "checkbox_checked_hover")
            valueElement.value = CheckedValueElement.value;
        else
            valueElement.value = UnCheckedValueElement.value;
    }
}

function CheckGetState(id, event) 
{
    var element = document.getElementById(id);

    if (element != null) 
    {
        switch (event) 
        {
            case "onmouseover":
                if (element.className == "checkbox_unchecked")
                    return "checkbox_unchecked_hover";
                else
                    return "checkbox_checked_hover";
                break;

            case "onmouseout":
                if (element.className == "checkbox_unchecked_hover")
                    return "checkbox_unchecked";
                else
                    return "checkbox_checked";
                break;

            case "onclick":
                if (element.className == "checkbox_unchecked_hover")
                    return "checkbox_checked_hover";
                else
                    return "checkbox_unchecked_hover";

            default: return "checkbox_unchecked";
        }
    }
}