/**
 * Created by IntelliJ IDEA.
 * User: home
 * Date: 13 ��� 2010
 * Time: 12:13:27
 * To change this template use File | Settings | File Templates.
 */
(function () {
    var Project = {
        initBuyButton: function() {
            $('.buyButton').click(function() {
                var items = $('#itemquantity').val();
                if (Project.isAllStockPropertiesSelected()) {
                    if (items > 0) {
                        window.Project.startLoading();
                        $.ajax({
                            url: SH.carturl + '?itemid=' + SH.ItemId + "&count=" + items + "&" + Project.buildStockSelectValues(),
                            success: function(msg) {
                                eval("var data =  " + msg + ";");
                                if (data.success) {
                                    $('#cart_headline').html(data.cart);
                                    window.Project.showMessage(SH.item_added_to_cart, 0);
                                } else {
                                    window.Project.showMessage(data.message, 2);
                                }
                                window.Project.dataLoaded();
                            }
                        });
                    } else {
                        $('#itemquantity').focus();
                        window.Project.showMessage('Please fill count', 1);
                    }
                } else {
                    window.Project.showMessage('Please fill all stock parameters', 1);
                }
            });
        },
        initCartPage: function() {
            $("#form_cart_update").validate();

            $("#update_cart").click(function() {
                if ($("#form_cart_update").validate())
                    $("#form_cart_update").submit();
            });

            $("#order_submit").click(function() {
                if (!$('#order_agreement').is(':checked')) {
                    alert(SH.agreement);
                    return false;
                }
                return true;
            });
        },
        deleteOrder: function(id) {
            if (confirm(SH.confirm_delete_order)) {
                this.startLoading();
                $.ajax({
                    url: SH.url_delete,
                    data: { 'id': id },
                    type: "POST",
                    success: function (data) {
                        Project.dataLoaded();
                        if (data == "success") {
                            $('tr#order_item_' + id).remove();
                            Project.showMessage(SH.order_deleted, 0);
                        }
                        else {
                            Project.showMessage(data, 1);
                        }
                    }
                });
            }
        },
        initStockSelectBoxes: function() {
            $(".stockproperty").change(function() {
                var params = Project.buildStockSelectValues();
                if (params != "") {
                    window.Project.startLoading();
                    $.ajax({
                        url:SH.stockurl + "?" + params,
                        success: function(msg) {
                            window.Project.dataLoaded();
                            eval("var html =  " + msg + ";");
                            $("#stockProperties").html(html);
                            Project.initStockSelectBoxes();
                        }
                    });
                }
            });
        },
        isAllStockPropertiesSelected: function() {
            var ret = true;
            $(".stockproperty").each(function() {
                if ($(this).val() == "") {
                    ret = false;
                    //TODO: break cycle
                }
            });
            return ret;
        },
        buildStockSelectValues: function() {
            var ret = "";
            $(".stockproperty").each(function() {
                if ($(this).val() != "") {
                    var prop = $(this).attr("prop");
                    var val = $(this).val();
                    ret += "property[" + prop + "]=" + val + "&";
                }
            });
            return ret;
        },
        //0 - success, 1 - warning, 2 - error
        showMessage: function(msg, type) {
            alert(msg);
        },
        startLoading: function() {
            $('#loader').css({
                top: ($(window).height() - $('#loader').height()) / 2,
                left: ($(window).width() - $('#loader').width()) / 2
            });
            $('#loader').show();
        },

        dataLoaded: function() {
            $('#loader').hide();
        },
        setTicketName: function(id) {
            $('#simplemodal_ticketname').modal({
                position: ["20%",],
                overlayId: 'ticketname-overlay',
                containerId: 'ticketname-container',
                onShow: function (dialog) {

                    $('#ticket_ownername').val($('#ownername_' + id).html());
                    $('#ownername' + id).html('');
                    // if the user clicks "yes"
                    $('.yes', dialog.data[0]).click(function () {
                        window.Project.startLoading();
                        $.ajax({
                            url: SH.setTicketNameUrl,
                            data: { 'id': id, 'ownername':$('#ticket_ownername').val()},
                            type: "POST",
                            success: function (data) {
                                window.Project.dataLoaded();
                                if (data == "success") {
                                    $('#ownername_' + id).html($('#ticket_ownername').val());
                                    $.modal.close();
                                }
                                else {
                                    $.modal.close();
                                    alert(data);
                                }
                            }
                        });


                    });
                    $('.no', dialog.data[0]).click(function () {
                        $.modal.close();
                    });
                }
            });
        }
    };
    window.Project = Project;
})();

$(document).ready(function () {
    if (SH.act == 'item/show') {
        Project.initBuyButton();
        Project.initStockSelectBoxes();
    } else if (SH.act == 'cart/index') {
        Project.initCartPage();
    } else if (SH.act == 'order/paymentdetails') {






        $('#payment_types').change(function() {
            $('#payment_processor').html("");
            window.Project.startLoading();
            $.ajax({
                url: SH.showPaymentTypeUrl,
                type: "POST",
                data: {
                    payment_type_id: $(this).val(),
                    order_id: SH.orderId
                },
                success: function(msg) {
                    $('#payment_processor').html($(this).val() + msg);
                    window.Project.dataLoaded();
                }
            });
        });

                $('#payment_types').change();
    }
    else if (SH.act == 'contact') {
        $('#formContact').validate();
    }
    else if (SH.act == 'order/shipmentdetails') {
        $("#update_shipment_details").click(function() {
            $("#shipment_details_form").attr('action', '/order/shipmentdetails').submit();
        });
        $('#order_submit').click(function() {
            if ($("#shipment_details_form").validate()) {
                $('#shipment_details_form').submit();
            }
        });
    }
    else if (SH.act == 'order/deliveryinfo') {
        $('#delivery_info_form').validate();
        $('#submit_delivery_info').click(function() {
            if ($("#delivery_info_form").validate()) {
                $('#delivery_info_form').submit();
            }
        });

    }

});
