jQuery.ajaxSetup({ 'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}});  

jQuery(function($){
  
  /* track selector */
  var toggle_select = function(el) {
    $(el).parent('.select').toggleClass('active');
    $(el).next('.select-list').fadeIn('fast');
    $(el).next('.select-list.down').fadeOut('dev');
    $(el).next('.select-list').toggleClass('down');
  }
  
  var update_map = function(track_id) {
    $.ajax({
      'type': 'GET',
      'url': '/map/'+track_id,
      'dataType': 'script'
    });
  }
  
  $('a[href="#sortby"]').click(function(){
    toggle_select(this);
    return false;
  });
  
  $('.track-option').each(function(){
    $(this).click(function() {
      var select = '.parent-select';
      var value = $(this).attr('href').replace(/(.+)tracks\//, '')
      toggle_select(select);
      update_map(value)
      $(select).html($(this).html()+'<span></span>').addClass('selected');
      return false;
    });
  });
  
  $('#add-location').click(function(){
    $('#new-location').fadeIn('fast');
    return false;
  });
  
  bbox_close = function(){
    $('#new-location').fadeOut('fast');
    return false;
  }
  $('#new-location #close').click(bbox_close);
  
  /* new location modal */
  $('#new-location form').validate({
    'submitHandler': function(form) {
      $.ajax({
        'type': 'POST',
        'url': $(form).attr('action'),
        'dataType': 'script',
        'data': $(form).serialize()
      });
      return false;
    }
  });
  
  /* infinite selects for categories */
  $('#location_category_id').change(function(){
    $('.sub-cat').attr('disabled', 'disabled').hide();
  });
  $('#new-location form select').change(function(){
    $('#cat_' + $(this).val()).toggleClass('hidden').show().removeAttr('disabled');
  });
  
  $('#categories').treeview({
    animated: "fast",
    collapsed: true
  });
  
  $('.tree-handle').click(function(){
    $(this).toggleClass('hide')
  })
  
  $("#categories .tree-item").click(function() {
    if ($(this).attr('selected') == 'selected') { 
      $.ajax({
        'type': 'GET',
        'url': $(this).attr('href'),
        'dataType': 'script',
        'data':'remove=true'
      })
    } else {
      $.ajax({
        'type': 'GET',
        'url': $(this).attr('href'),
        'dataType': 'script'
      })
    }
    return false;
  })
  
  
  like = function(a) {
    /* likes */
    $.ajax({
      'type':'POST',
      'url':$(a).attr('href'),
      'dataType':'script',
      'data':{
        'authenticity_token':$('input[name=authenticity_token]').val()
      }
    });
  }
  
  review = function(f) {
    $.ajax({
      'type':'POST',
      'url':$(f).attr('action'),
      'dataType':'script',
      'data':$(f).serialize()
    });
  }
  
  
});