//libForm.js
//Javascript forms functions library

function validate(form, button, sys_message, skip_list, field_count)
        {
        //this is unndefined under Firebird/Mozilla, so define to override
        document.getElementById(button).disabled = false;

        if (document.getElementById(button).disabled == false)
                {
                document.getElementById(button).disabled = true;

                var i;
                var field_list = "";
                var fail = false;
                var error = "";
        
                if (skip_list == "all")
                        {
                        document.getElementById(sys_message).innerHTML = '<span style=\"color:#ff0000;\">updating...</span>';
                        form.submit();
                        }
                else
                        {
                        var skip = skip_list.split(",");
                        if (skip.length == 0)
                                skip = null;
                                
                        for (i = 0; i < field_count; i++)
                                {
                                if (form.elements[i].type != "checkbox")
                                        {
                                        form.elements[i].style.border = 'thin inset';
                                        form.elements[i].style.color = '#000000';
                                        }
                                else
                                        {
                                        if (form.elements[i].checked == true)
                                                form.elements[i].value = 1;
                                        else
                                                form.elements[i].value = 0;
                                        }
                        
                                if ((!inarray(i, skip)) || (skip == null))
                                        {
                                        //alert(i);
                                        if ((form.elements[i].value == "") && ((form.elements[i].type == "text") || (form.elements[i].type == "password")))
                                                {
                                                form.elements[i].style.border = 'thin inset #ff0000';
                                                form.elements[i].style.color = '#ff0000';
                                                fail = true;
                                                }
                                        else
                                                {
                                                if ((form.elements[i].value == 0) && ((form.elements[i].type == "select-one") || (form.elements[i].type == "select-multi")))
                                                        {
                                                        form.elements[i].style.border = 'thin inset #ff0000';
                                                        form.elements[i].style.color = '#ff0000';
                                                        fail = true;
                                                        }
                                                }
                                        }
                                }

                        if (!fail)
                                {
                                document.getElementById(sys_message).innerHTML = '<span style=\"color:#ff0000;\">updating...</span>';
                                form.submit();
                                }
                        else
                                {
                                document.getElementById(sys_message).innerHTML = '<span style=\"color:#ff0000;\">Please complete required fields</span>';
                                document.getElementById(button).disabled = false;
                                }
                        }
                }
        else
                {
                document.getElementById(sys_message).innerHTML = '<span style=\"color:#ff0000;\">processing...</span>';
                }
        }

function errors(form, error_list, field_count, sys_message)
        {
        var i;
        var error = "";
        var errors = error_list.split(",");

        for (i = 0; i < field_count; i++)
                {
                if (form.elements[i].type != "checkbox")
                        {
                        form.elements[i].style.border = 'thin inset';
                        form.elements[i].style.color = '#000000';
                        }

                if (inarray(form.elements[i].name, errors))
                        {
                        form.elements[i].style.border = 'thin inset #ff0000';
                        form.elements[i].style.color = '#ff0000';

                        error += i + "\n";
                        }
                }

        document.getElementById(sys_message).innerHTML = '<span style=\"color:#ff0000;\">Please correct invalid fields</span>';
        //alert(error_list);
        }

function inarray(item, arr)
        {
        var a;

        for (a = 0; a < arr.length; a++)
                {
                if (arr[a] == item)
                        return true;
                }

        return false;
        }
