suppliesOrderFields = ['id_orderEquipmentID', 'id_orderCompanyName', 'id_orderContactName', 'id_orderContactNumber', 'id_orderComments'];

function resetOrderSuppliesForm()
{
    Element.hide('id_orderSpinner');
    Element.hide('id_orderThankYou');
    Element.hide('id_orderRequestError');

    suppliesOrderFields.each(function(fieldID)
    {
        $(fieldID).value = "";
    });
}

function resetOrderSuppliesErrors()
{
    Element.hide('id_orderRequestError');
    Element.hide('id_orderValidationError');
    Element.hide('id_orderThankYou');
    suppliesOrderFields.each(function(fieldID)
    {
        Element.removeClassName(fieldID + "Label", 'red');
    });
}

function validateOrderSuppliesForm()
{
    var valid = true;
        
    suppliesOrderFields.each(function(fieldID)
    {
        if (Element.hasClassName(fieldID, '__required__') && ($(fieldID).value == ''))
        {
            Element.addClassName(fieldID + 'Label', 'red');
            valid = false;
        }
    });

    if (!valid)
    {
        Element.show('id_orderValidationError');
    }
    
    return valid;
}

function handleOrderSuppliesSubmit(evt)
{
    resetOrderSuppliesErrors();

    var valid = validateOrderSuppliesForm();
    if (valid)
    {
        var orderData = Form.serialize('id_orderSuppliesForm');
    
        Element.show('id_orderSpinner');
        new Ajax.Request('/georgia/products/supplies_order/',
        {
            method:     'post',
            parameters: orderData,
            
            onSuccess: function(transport)
            {
                Element.hide('id_orderSpinner');
                resetOrderSuppliesForm();
                resetOrderSuppliesErrors();
                Element.show('id_orderThankYou');
            },
            
            onFailure: function(transport)
            {
                Element.hide('id_orderSpinner');
                Element.hide('id_orderThankYou');
                Element.show('id_orderRequestError');
            }
        });
    }
    
    Event.stop(evt);
}

Event.observe(window, 'load', function()
{    
    Event.observe('id_orderSubmit', 'click', handleOrderSuppliesSubmit, false);   
    resetOrderSuppliesForm();
    resetOrderSuppliesErrors();
}, false);