jQuery.fn.outerHtml = function(s) {
return (s)
? this.before(s).remove()
: jQuery("<p>").append(this.eq(0).clone()).html();
}

jQuery(document).ready(function() {

  var data = [];
  $('.carousel ul').hide();
  $('.carousel').each(function() {

    $(this).find('li img').each(function(){
      data.push({content: $(this).parent('li').html()});
    });

    $(this).agile_carousel({
      timer: 3000,
      carousel_data: data,
      carousel_outer_height: 260,
      carousel_height: 260,
      slide_height: 260,
      carousel_outer_width: 524,
      slide_width: 524,
      transition_time: 300,
      number_slides_visible: 1,
      control_set_2: "group_numbered_buttons",
    });
  });

  $('.race_descriptions').each(function(n, item){
    var el = $('<ul class="queens_percentages"></ul>');
    $('.race_descriptions').before(el);
    $(this).find('li').each(function(n, item) {
      var elName = $(this).attr('name');
      var innerEl = $('<li></li>');
      $(innerEl).css('background-image', 'url(\'/images/races/bg_fill_' + $(this).attr('name') + '.jpg\')');
      $(innerEl).css('width', $(this).attr('rel') + '%');
      $(innerEl).appendTo('.queens_percentages');
      $(innerEl).append('<span>' + Math.round($(this).attr('rel')) + ' %</span>');
      
      $(innerEl).click(function(n){
        $('.queens_percentages li').removeClass('active');
        $(innerEl).addClass('active');
        $('.race_descriptions li').removeClass('active');
        $('.race_descriptions li[name="' + elName + '"]').addClass('active');
      });
    });

    var maxCaract = 5.0;

    $('.ants_characteristics_details').each(function(n, item){
      var is_rare = $(this).parents('li').find('.rare').length > 0;
      var min_caract_str = 9999;
      var max_caract_str = -9999;

      $(this).find('.bar').each(function(n, item) {
        var caract = parseFloat($(this).attr('rel'));

        min_caract_str = parseFloat(min_caract_str) > parseFloat($(this).attr('rel'))
          ? $(this).attr('rel') : min_caract_str;
        max_caract_str = parseFloat(max_caract_str) < parseFloat($(this).attr('rel'))
          ? $(this).attr('rel') : max_caract_str;

        el = $('<div class="container"><div class="filled"></div></div>');
        if(caract > 0) {
          $(el).find('.filled').width(100*caract/maxCaract + '%');
        } else {
          $(el).find('.filled').hide();
        }
        $(this).append(el);
      });

      if(is_rare) {
        $(this).find('tr').addClass('starred_characteristic');
        $(this).find('.bar[rel="' + min_caract_str + '"]').parents('tr').removeClass('starred_characteristic');
      } else {
        $(this).find('.bar[rel="' + max_caract_str + '"]').parents('tr').addClass('starred_characteristic');
      }
    });
    
    $('.ants_details .ants_presenter').each(function(n, item){
      var content = $(this).parents('.ants_details').find('.ants_characteristics_details[rel="' + $(this).attr('rel') + '"]');

      $(this).qtip({
        content: content.outerHtml(),
        position: {
          my: 'top left',
          at: 'top left',
          target: 'mouse',
          adjust: { mouse: true }
        },
        style: {
          classes: 'ant_caracteristics_tip'
        },
        show: { effect: { length: 0 }, delay: 0 },
        hide: { delay: 0 }
      });
    });

    $('.queens_percentages li span:first').click();    
  });

  // Registration-related
  $('.registration_form').each(function(n, item) {

    var maxCaract = 5.0;
    $('.ants_characteristics_wrapper').each(function(n, item){
      var min_caract_str = 9999;
      var max_caract_str = -9999;

      $(this).find('.bar').each(function(n, item) {
        var caract = parseFloat($(this).attr('rel'));

        min_caract_str = parseFloat(min_caract_str) > parseFloat($(this).attr('rel'))
          ? $(this).attr('rel') : min_caract_str;
        max_caract_str = parseFloat(max_caract_str) < parseFloat($(this).attr('rel'))
          ? $(this).attr('rel') : max_caract_str;

        el = $('<div class="container"><div class="filled"></div></div>');
        if(caract > 0) {
          $(el).find('.filled').width(100*caract/maxCaract + '%');
        } else {
          $(el).find('.filled').hide();
        }
        $(this).append(el);
      });
    });

    $('.registration_form .unselected').click(function(item) {
      $(this).parents('table').find('.selected').hide();
      $(this).parents('table').find('.unselected').show();
      $(this).hide();
      $(this).parents('td').find('.selected').show();
      $(this).parents('table').find('.choice_summary .description').html($(this).parents('td').find('.description').html());
      $('#player_queen_description_id option').removeAttr('selected');
      $('#player_queen_description_id option[value=' + $(this).parents('td').attr('rel') + ']').attr('selected', 'selected');

    
      $('.ants_presenter').each(function(n, item){
        var content = $('.ants_characteristics_details[rel="' + $(this).attr('rel') + '"]');
        $(this).qtip({
          content: content.outerHtml(),
          position: {
            my: 'top left',
            at: 'top left',
            target: 'mouse',
            adjust: { mouse: true }
          },
          style: {
            classes: 'ant_caracteristics_tip'
          },
          show: { effect: { length: 0 } }
        });
      });  
      
    });

    $('.registration_form .queen td[rel="' + $('#player_queen_description_id').val() + '"] img.unselected').click();

  });
});

