//
// Switch tab
//
function switch_ranking_tab(link_elem)
{
  link_elem.blur();
  if (link_elem.hasClassName('current')) return;
  var links = $(link_elem).up('div').up('div').getElementsBySelector('a');
  links.each(function(elem) {
    var tab_name = elem.href.match(/#(.+)/)[1]
    var tab_dv = $(tab_name + '_table_wrap');
    if (elem == link_elem) {
      Element.show(tab_dv);
      load_tab_content(tab_name);
      elem.className = 'current';
    } else {
      Element.hide(tab_dv);
      elem.className = '';
    }
  });
  cancel_event();
}

function load_tab_content(tab_name)
{
  var url = 'user_ranking/' + tab_name;
  var tab_div = $(tab_name + '_table_wrap');
  tab_div.innerHTML = "";
  do_ajax(tab_div, url, '');
}

function change_page(elem, tab_name)
{
  var url = elem.href.gsub(/\?(.+)/,'/'+tab_name);
  var params = elem.href.toQueryParams();
  var tab_div = $(tab_name + '_table_wrap');
  tab_div.innerHTML = "";
  do_ajax(tab_div, url, params);
  cancel_event();
}

function change_cat_table(elem, cat_id)
{
  var url = elem.href.gsub(/\?(.+)/,'/categories');
  var params = elem.href.toQueryParams();
  var cat_td = $('cat_'+cat_id);
  cat_td.innerHTML = "";
  do_ajax(cat_td, url, params);
  cancel_event();
}

function do_ajax(update_elem, url, params)
{

  var loadimg = $('loading_img').cloneNode(true);
  update_elem.appendChild(loadimg);
  Element.show(loadimg);

  var myAjax = new Ajax.Request(url, {method: 'get', parameters:params,
    onSuccess: function(req) {
      update_elem.innerHTML = req.responseText;
    },
    onFailure: function(req) {
      update_elem.innerHTML = "";
      show_error_msg(req);
    }
  });
}