/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var sorting_options_chosen = 0;
var sort_objects           = new Array();
var sort_objects_chosen    = new Array();


function Sort_Object()
{
  this.id_fragment = "";
  this.text        = "";
  this.alt_text    = "";
}

function create_sort_item(id_fragment, text, order)
{
  return  "<a href='#' id='remove_item_" + id_fragment + "'>" +
  "<div class='ss ss_bullet_toggle_minus'>" +
  text +
  "</div>" +
  "<input id='sort_input_" + id_fragment + "'" +
  "type='hidden'" +
  "value='" + id_fragment + "'" +
  "name='sort[]'>" +
  "</input>" +
  "</a>";
};

function show_sorting_options()
{
  $('#sorting_options').show();
  $('#show_sorting_options').hide();
}

function hide_sorting_options()
{
  $('#sorting_options').hide();
  $('#show_sorting_options').show();
}

// Rendera objekt
function render_options_list()
{
  tmp_text = "";
  iterator = 0;

  // Skapa HTML-innehåll
  for( var i in sort_objects_chosen )
  {
    if( iterator == 0)
    {
      tmp_text += create_sort_item(sort_objects_chosen[i].id_fragment, sort_objects_chosen[i].text, iterator);
    }
    else
    {
      tmp_text += create_sort_item(sort_objects_chosen[i].id_fragment, sort_objects_chosen[i].alt_text, iterator);
    }

    iterator += 1;
  }

  // Sätt innehållet i sorteringslistan
  $('#sorting_list').html(tmp_text);


  // Associera borttagningsfunktioner med samtliga object i listan
  var iterator = 0;

  jQuery.each(sort_objects_chosen, function() 
  {
    var me = this;
    var i = iterator++;
    
    $("#remove_item_" + me.id_fragment).click(function(event)
    {
      event.preventDefault();

      // Visa valet för detta objekt igen
      $('#add_item_' + me.id_fragment).show();

      // Ta bort objektet ur listan över valda ting
      delete sort_objects_chosen[i];

      // Rendera om listan
      render_options_list();
    });
  });

  update_search_id();
}

function initialize_sorting_item(item_id_fragment, text, alt_text)
{
  // Skapa ett objekt och lägg till det i listan över tillgängliga sorteringar
  tmp = new Sort_Object();

  tmp.id_fragment      = item_id_fragment;
  tmp.text             = text;
  tmp.alt_text         = alt_text;

  sort_objects[item_id_fragment] = tmp;


  // Lägg till sorteringsalternativet i listan över valda sorteringar
  $('#add_item_' + item_id_fragment).click(function(event)
  {
    // Se till att default-händelsen inte utförs
    event.preventDefault();

    // Göm länken så att man inte kan lägga till samma sortering två gånger
    $(this).hide();

    // Lägg över objektet till listan över valda sorteringar.
    sort_objects_chosen.push(sort_objects[item_id_fragment]);

    // Rendera listan
    render_options_list();

    // Göm sorteringsvalen
    hide_sorting_options();
  });

}

$(document).ready(function(){
  
  // Göm "sorting options"
  $('#sorting_options').hide();

  // Öppna "sorting options"
  $('#show_sorting_options').click(function(event)
  {
    event.preventDefault();
    show_sorting_options();
  });

  // Stäng "sorting options"
  $('#hide_sorting_options').click(function(event)
  {
    event.preventDefault();
    hide_sorting_options();
  });
  
  initialize_sorting_item( "votes", "Antal <strong>röster</strong>", "därefter antal <strong>röster</strong>");
  initialize_sorting_item( "comments", "Antal <strong>kommentarer</strong>", "därefter antal <strong>kommentarer</strong>");
  initialize_sorting_item( "date_desc", "<strong>Senaste överst</strong>", "därefter <strong>senaste överst</strong>");
  initialize_sorting_item( "date_asc", "<strong>Äldsta överst</strong>", "därefter <strong>äldsta överst</strong>");

});


function getAssocArrayLength(tempArray) {
   var result = 0;
   for ( tempValue in tempArray ) {
      result++;
   }

   return result;
}
