$(document).ready(function() {
    if($("body#product_detail")) {
        
        var product_id = $("#product_id").val();
        
        $("#size_list a").click(function(){
            $("#id_color").val('');
            var size_id = $(this).attr('rel');
            
            $("#id_size").val(size_id);
            $("#size_list .size").removeClass('selected');
            $(this).parent().addClass('selected');
            
            $("#color_list .color").addClass('disabled');
            $("#size_list .size").removeClass('disabled');

            $.getJSON('/api/stocks/' + product_id + '/size/' + size_id, function(data){
                $.each(data, function(){
                   $("#color_id_" + this).removeClass('disabled');
                });
            });
            
            $("#color_selector").slideDown();
            
            
        });
        
        $("#color_list a").click(function(){
            
            var color_id = $(this).find('input').val();
            var quantity_container = $('#quantity');
            $("select#quantity_select").remove();
            
            $("#id_color").val(color_id);
            $("#color_list .color").removeClass("selected");
            $(this).parent().addClass('selected');
            
            $.getJSON('/api/inventory/' + product_id + '/' + $("#id_size").val() + '/' + color_id + '/', function(data){
                
                
                inventory_count = data[0].quantity;
                if(inventory_count >= 5){
                    max_quantity = 5;
                } else {
                    max_quantity = inventory_count;
                }
                
                if($("#quantity_select")){
                    var quantity_select = $("#quantity_select");
                    quantity_select.remove();
                    $(".ui-selectmenu").remove();
                } 
                
                var quantity_select = $("<select />").attr("id", "quantity_select");
                
                
                for(i=1; i<=max_quantity; i++){
                    var new_option = $("<option />").attr("value", i).text(i);
                    var new_pretty = $("<span />").attr("class", "ui-selectmenu-status").text(i);
                    quantity_select.append(new_option);
                }
                
                quantity_container.append(quantity_select);
                quantity_select.selectmenu({
                    style: 'dropdown',
                    maxHeight: 160,
                    change: function(){
                        $("#id_quantity").val($(this).val());
                    }
                });
                quantity_container.css('visibility', 'visible');

                

            });
                        
        });
        
        $("#product_image").loupe({
            width: 200,
            height: 150,
            loupe: 'loupe'
        });
        
        
        $("#add_to_cart_form").bind('submit', function(){
            
            var id_size = $("#id_size");
            var id_color = $("#id_color");
            
            if(id_size.val() === ''){
                $("#error_messages").html('<p class="error">Please select a size</p>');
                return false;
            }
            
            if(id_color.val() === ''){
                $("#error_messages").html('<p class="error">Please select a color</p>');
                return false;
            }
            
            if(id_size.val() !== '' && id_color.val() !== '') {
                return true;
            }
            
        });
        
    }
    
    if($("body#category_detail")){
        $("#category_select").change(function(){
            var slug = $(this).val();
            window.location.replace('/catalog/' + slug + '/');
        });
    }
    
});

