function formTask(obj, frm, action, msg)
{
    for ( var i=0; i<frm.elements.length; i++ )
    {
        var e = frm.elements[i];
        if ( e.tagName.toLowerCase() == 'select' )
        {
            if ( e.size > 0 )
            {
                frm.DATA.value += e.name + '=' + joinOptions(';', e) + '&';
            }
        }
    }

    if ( msg.length == 0 )
    {
        obj.disabled = true;
        frm.ACTION.value = action;
        frm.submit();
    }
    else
    {
        var response = confirm(msg);
        if (response)
        {
            obj.disabled = true;
            frm.ACTION.value = action;
            frm.submit();
        }
    }
}


function chkModify(frm, action)
{
    var TotalBoxes = 0;
    var TotalOn = 0;
    for ( var i=0; i<frm.elements.length; i++ )
    {
        var e = frm.elements[i];
        if ( e.type=='checkbox' )
        {
            TotalBoxes++;
            if ( e.checked )
            {
                TotalOn++;
            }
        }
    }

    if ( TotalOn == 0 )
    {
        alert ("Sorry, please select a record to modify.");
    }
    else if ( TotalOn > 1 )
    {
        alert ("Sorry, you can only modify one record at a time.");
    }
    else
    {
        frm.ACTION.value = action;
        frm.submit();
    }
}


function chkDelete(frm, action)
{
    var TotalBoxes = 0;
    var TotalOn = 0;
    for ( var i=0; i<frm.elements.length; i++ )
    {
        var e = frm.elements[i];
        if ( e.type=='checkbox' )
        {
            TotalBoxes++;
            if ( e.checked )
            {
                TotalOn++;
            }
        }
    }

    if ( TotalOn == 0 )
    {
        alert ("Sorry, please select a record to delete.");
    }
    else
    {
        var stay = confirm("Confirm to delete " + TotalOn + " record(s).");
        if (stay)
        {
            frm.ACTION.value = action;
            frm.submit();
        }
    }
}


function chkAll(chk, frm)
{
    for ( var i=0; i<frm.elements.length; i++ )
    {
        var e = frm.elements[i];
        if ( e.type == 'checkbox' )
        {
            if ( chk.checked )
                e.checked = true;
            else
                e.checked = false;
        }
    }
}


function strCompare(proceed, obj, sign, value, msg)
{
    if ( proceed == true )
    {
        var obj_value;

        obj.className = 'Textbox';
        obj_value = getObjectValue(obj);

        if ( sign == '==' )
        {
            if ( obj_value == value )
            {
                proceed = false;
            }
        }
        else if ( sign == '!=' )
        {
            if ( obj_value != value )
            {
                proceed = false;
            }
        }
        else if ( eval(obj_value + sign + value) )
        {
            proceed = false;
        }

        if ( proceed == false)
        {
            obj.focus();
            obj.className = 'TextboxError';
            alert(msg);
        }
    } // if proceed

    return proceed;
} // function strCompare


function lenCompare(proceed, obj, sign, value, msg)
{
    if ( proceed == true )
    {
        var obj_value;

        obj.className = 'Textbox';
        obj_value = getObjectValue(obj);

        if ( eval(obj_value.length + sign + value) ) proceed = false;

        if ( proceed == false)
        {
            obj.focus();
            obj.className = 'TextboxError';
            alert(msg);
        }
    } // if proceed

    return proceed;
} // function lenCompare


function numCompare(proceed, obj, sign, value, msg)
{
    if ( proceed == true )
    {
        var obj_value;

        obj.className = 'Textbox';
        obj_value = getObjectValue(obj);
        if ( isNan(obj_value) ) obj_value = 0;

        if ( eval(obj_value + sign + value) ) proceed = false;

        if ( proceed == false)
        {
            obj.focus();
            obj.className = 'TextboxError';
            alert(msg);
        }
    } // if proceed

    return proceed;
} // function numCompare


function navigate(obj, url)
{
    obj.disabled = true;
    window.location.href = url;
} // function navigate


function openWindow(name, location, w, h, param) 
{
    from_top  = screen.height/2-h/2;
    from_left = screen.width/2-w/2;
    myWindow  = open(location, name, 'width='+w+', height='+h+', '+param+', top='+from_top+', left='+from_left);
    if (myWindow.opener == null) myWindow.opener = self;
} // function openWindow


function chrCompare(proceed, obj, allow, chars, msg)
{
    if ( proceed == true )
    {
        var obj_value;

        obj.className = 'Textbox';
        obj_value = getObjectValue(obj);

        for ( var i=0; i<obj_value.length; i++ )
        {
            var letter = obj_value.charAt(i);
            if ( allow )
            {
                if ( chars.indexOf(letter) != -1 ) continue;
                proceed = false;
            }
            else
            {
                if ( chars.indexOf(letter) == -1 ) continue;
                proceed = false;
            }
        }

        if ( proceed == false)
        {
            obj.focus();
            obj.className = 'TextboxError';
            alert(msg);
        }
    }
    return proceed;
}


////////////////////////////////////////////////////////////////////////////////


function getObjectValue(obj)
{
    var obj_value;

    if ( obj.tagName.toLowerCase() == 'select' )
    {
        obj_value = obj.options[obj.selectedIndex].value;
    }
    else if ( obj.tagName.toLowerCase() == 'input' )
    {
        obj_value = obj.value;
    }
    else if ( obj.tagName.toLowerCase() == 'textarea' )
    {
        obj_value = obj.value;
    }

    return obj_value;
}