window.addEvent('domready', function() {
    include('/core/views/website/pages/products/products/javascript/estimate.js');

    $$('#orderForm select').addEvent('change', updateEstimate); 
    $$('#orderForm select').addEvent('change', showComments); 
    updateEstimate();
});

function showComments()
{
    $$('#orderForm p.comment').setStyle('display', 'none'); 
    var comment = $$('#orderForm p.propertyValueId' + this.value)[0]; 
    if (comment !== undefined)
    {
        comment.setStyle('display', 'block');
    }
}

function updateEstimate()
{
    function getOrderOptions()
    {
        var result = ''; 
        var elements = $$('#orderForm *');
        for(var i = 0; i < elements.length; i++)
        {
            var regexp1 = new RegExp("^value(\[[0-9]+\]){2}$");
            var regexp2 = new RegExp("^reference(\[[0-9]+\]){2}$");

            var elementName  = elements[i].get('name');
            var elementValue = elements[i].get('value');
            if (regexp1.exec(elementName) || regexp2.exec(elementName))
            {
                if (elements[i].get('type') == 'checkbox' && ! elements[i].checked) continue;
                result = result + '&' + elementName + '=' + elementValue;
            }
        }
        return result.substr(1, result.length);
    }

    function sendRequest(data)
    {
        var myRequest = new Request
        ({
            url: '/core/views/website/pages/products/shipping-options/',
            method: 'post',
            data: data,
            onSuccess: function(jsonResponse)
            {
                $('id_shippingMethod').empty();
                var response = JSON.decode(jsonResponse);
                var estimates = new Estimate(response);
                estimates.update();
            }
        });
        myRequest.send();
    }

    $('estimate').addClass('disable');
    selectedIndex = $('id_shippingMethod').selectedIndex;
    var orderOptions = getOrderOptions();
    data = orderOptions+'&selectedIndex='+selectedIndex+'&iItem=' + iItem;
    sendRequest(data);
}

function onSubmit()
{
    if ($$('#orderForm li.design select')[0].value == '')
    {
        alert('Please Choose Design');
        return false;
    }
    if ($$('#orderForm li.jobName input')[0].value == '')
    {
        alert('Please Enter Job Name');
        return false;
    }
}

