
jQuery(document).ready(function($) {

  var is_number = {'resort_name':false, 'new_snow':true, 'base_depth':true, 'runs_open':true, 'lifts_open':true, 'category':false, 'region':false, 'name':false};
  function sort_by(my_list, method_name, dir) {
    method = false;
    //var number_match = /[-0-9\.+]/g;
    //var is_number = number_match.test($(my_list[0]).find("span."+method_name+"-value").text());
    //alert(':'+$(my_list[0]).find("span."+method_name+"-value").text()+':');
    if (is_number[method_name]) {
      method = function(a, b) {
        var a_value = parseFloat($(a).find("span."+method_name+"-value").text());
        var b_value = parseFloat($(b).find("span."+method_name+"-value").text());
        return a_value > b_value ? 1 : -1;
      } 
    } else {
      method = function(a, b) {
        var a_word = $(a).find("span."+method_name+"-value").text();
        var b_word = $(b).find("span."+method_name+"-value").text();
        return a_word.toLowerCase() > b_word.toLowerCase() ? 1 : -1;
      } 
    }
    var sorted_list = my_list.sort(method);
    if (dir == "desc") {
      sorted_list = sorted_list.reverse();
    }
    return sorted_list;
  }
    
  function resort() {
    var selected = $("form#sort_form select").find("option:selected:first").attr("value");
      
    var sorted = sort_by($("li.link_box").get(), selected, $("input#asc_desc").attr('value'));
    $("ul.panel li.link_box").remove();
    $("ul.panel").append(sorted);
  }
  $("form#sort_form select").change(function(){resort();});
  $("input#asc_desc").click(function(event) {
    if ($(this).attr('value') == 'desc') {
      $(this).attr('value','asc');
      $(this).attr('title', "Ascending");
    } else {
      $(this).attr('value', 'desc');
      $(this).attr('title', "Descending");
    }
    resort();
  });

});


