(function($) {
    $(document).ready(function() {
        $('#composition_open').click(function(event) {
            event.preventDefault();
            $('.field_composition_open').hide();
            $('.field_composition_hide').show();
          
            $('.field_hide').addClass('field_open');
            $('.field_hide').removeClass('field_hide');
        });
      
        $('#composition_hide').click(function(event) {
            event.preventDefault();
            $('.field_composition_hide').hide();
            $('.field_composition_open').show();
          
            $('.field_open').addClass('field_hide');
            $('.field_open').removeClass('field_open');
        });
    	
        $('.more').click(function(event) {
            event.preventDefault();
            if ($(this).hasClass('more-close')) {
                $(this).removeClass('more-close');
                $(this).addClass('more-open');
            } else if($(this).hasClass('more-open')) {
                $(this).removeClass('more-open');
                $(this).addClass('more-close');
            }

            $(this).parent().next().toggle('slow');
        });

        $('.favorite-link').live('click', function(event) {
            event.preventDefault();
            $addfilm = $(this);
            $.post($(this).attr('href'), function(data) {
                if ('success' == data.type) {
                    $addfilm.after(data.message);
                    $addfilm.remove();
                } else if ('error' == data.type) {
                    alert(data.message);
                }
            });
        });
        
        $('.snapshot-delete').live('click', function(event) {
            event.preventDefault();
            var self = this;
            var rel = $(this).attr('rel');
            var deleteUrl = $(this).attr('href');

            $.ajax({
              url: deleteUrl,
              type: 'POST',
              success: function(data){
                $('#'+rel).hide();
              },
              error: function(data) {
                alert('An error has occured, please contact the administrator if the error persisted');
              }
            });
        });
   
        $('.clickable_dominant_colors').click(function() {
            var id = $(this).attr('for');
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_dominant_colors_check').removeClass('clickable_dominant_colors_check');
                $('.clickable_dominant_colors > img').css('border', '2px solid white');
            } else {
                $('.clickable_dominant_colors_check > img').css('border', '2px solid white');
                $('.clickable_dominant_colors_check').removeClass('clickable_dominant_colors_check');
                $(this).addClass('clickable_dominant_colors_check');
                $('.clickable_dominant_colors_check > img').css("border", "2px solid black");

                $('#'+id).attr('checked', 'checked');
            }

            return false;
    	});
        
    	$('.clickable_horizons').click(function() {
            var id = $(this).attr('for');
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_horizons_check').removeClass('clickable_horizons_check');
                $('.clickable_horizons > img').css('border', '2px solid white');
            } else {
                $('.clickable_horizons_check > img').css('border', '2px solid white');
                $('.clickable_horizons_check').removeClass('clickable_horizons_check');
                $(this).addClass('clickable_horizons_check');
                $('.clickable_horizons_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }

            return false;
    	});
        
    	$('.clickable_first_plans').click(function() {
            var id = $(this).attr('for');
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_first_plans_check').removeClass('clickable_first_plans_check');
                $('.clickable_first_plans > img').css('border', '2px solid white');
            } else {
                $('.clickable_first_plans_check > img').css('border', '2px solid white');
                $('.clickable_first_plans_check').removeClass('clickable_first_plans_check');
                $(this).addClass('clickable_first_plans_check');
                $('.clickable_first_plans_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }
            
            return false;
    	});
        
    	$('.clickable_character_positions').click(function() {
            var id = $(this).attr('for');
            
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_character_positions_check').removeClass('clickable_character_positions_check');
                $('.clickable_character_positions > img').css('border', '2px solid white');
            } else {
                $('.clickable_character_positions_check > img').css('border', '2px solid white');
                $('.clickable_character_positions_check').removeClass('clickable_character_positions_check');
                $(this).addClass('clickable_character_positions_check');
                $('.clickable_character_positions_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }

            return false;
    	});
        
    	$('.clickable_positions').click(function() {
            var id = $(this).attr('for');
            
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_positions_check').removeClass('clickable_positions_check');
                $('.clickable_positions > img').css('border', '2px solid white');
            } else {
                $('.clickable_positions_check > img').css('border', '2px solid white');
                $('.clickable_positions_check').removeClass('clickable_positions_check');
                $(this).addClass('clickable_positions_check');
                $('.clickable_positions_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }

            return false;
    	});
        
    	$('.clickable_shot_values').click(function() {
            var id = $(this).attr('for');

            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_shot_values_check').removeClass('clickable_shot_values_check');
                $('.clickable_shot_values > img').css('border', '2px solid white');
            } else {
                $('.clickable_shot_values_check > img').css('border', '2px solid white');
                $('.clickable_shot_values_check').removeClass('clickable_shot_values_check');
                $(this).addClass('clickable_shot_values_check');
                $('.clickable_shot_values_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }

            return false;
    	});

    	$('.clickable_camera_positions').click(function() {
            var id = $(this).attr('for');
            
            if ($('#'+id).is(':checked')) {
                $('#'+id).attr('checked', false);
                $('.clickable_camera_positions_check').removeClass('clickable_camera_positions_check');
                $('.clickable_camera_positions > img').css('border', '2px solid white');
            } else {
                $('.clickable_camera_positions_check > img').css('border', '2px solid white');
                $('.clickable_camera_positions_check').removeClass('clickable_camera_positions_check');
                $(this).addClass('clickable_camera_positions_check');
                $('.clickable_camera_positions_check > img').css('border', '2px solid black');
                $('#'+id).attr('checked', 'checked');
            }
            
            return false;
    	});
    });
  })(jQuery);
