function refreshClanFilter(){
  var form = document.forms.clanRatingFilter;
  var clanSelect = form.clan;
  var cClan = currentClan ? currentClan : clanSelect.value;
  currentClan = null;
  var isClanChosen = false;
  var server = form.server.value;
  var race = form.race.value;
  for ( var i = clanSelect.options.length-1; i >= 0; i-- ){
    (clanSelect.options)[i] = null;
  }
  var clans = new Array();
  for ( var i = 0; i < dwarClans.length; i++ ){
    var clan = dwarClans[i];
    if ( server && server != clan[1] )
      continue;
    if ( race && race != clan[2] )
      continue;
    if ( cClan == clan[0] )
      isClanChosen = true;
    clans.push(clan);
  }
  (clanSelect.options)[0] = new Option("--", "");
  for ( var i = 0; i < clans.length; i++ ){
    var clan = clans[i];
    (clanSelect.options)[i+1] = new Option(clan[3], clan[0]);
  }
  if ( isClanChosen )
    clanSelect.value = cClan;
}

function getClanRatingPage(page){
  var form = document.forms.clanRatingFilter;
  var server = form.server.value;
  var race = form.race.value;
  var clanId = form.clan.value;
  var order = form.order.value;
  var orderType = form.orderType.value;
  
  var requestParams = new Array();
  requestParams["page"] = page;
  requestParams["server"] = server;
  requestParams["race"] = race;
  requestParams["clan_id"] = clanId;
  requestParams["order"] = order;
  requestParams["order_type"] = orderType;
  loadXMLDoc("../pro/clan_rating.action.php?action=get_clan_rating_list", requestParams, "onClanRatingListRecieved()", "Получение страницы рейтинга", "POST");
  return false;
}

function onClanRatingListRecieved(){
  if ( !requestResponse ){
    alert("Ошибка запроса");
    return;
  }
  var data = eval(requestResponse);
  drawClanRatingPage(data);
  updateCurrentLink();
}

function drawClanRatingPage(data){
  var entries = data.entries;
  var curPosition = (data.page-1)*data.entriesPerPage;
  
  var str = "<table><thead><tr><td>&#8470;</td>";
  str += "<td>Рейтинг</td>";
  str += "<td>Название клана</td>";
  str += "<td>Ступень клана</td>";
  str += "<td>Средний рейтинг игрока</td>";
  str += "<td>Дельта</td>";
  str += "<td>Игроков в клане</td>";
  str += "<td>Общая дельта</td>";
  str += "</thead>";
  str += "<tbody>";
   
  for ( var i = 0; i < entries.length; i++ ){
    var entry = entries[i];
    curPosition++;
    
    var str1 = "<tr>";
    str1 += "<td>"+curPosition+" ("+entry.pos+")</td>";
    str1 += "<td>"+entry.rating+"</td>";
    str1 += "<td>";
    str1 += "<img src='http://"+entry.server+".dwar.ru/images/ico_"+entry.race+".gif' height=15 width=14> ";
    str1 += " <a href='http://"+entry.server+".dwar.ru/clan_info.php?clan_id="+entry.clan_id+"' title='"+entry.clan_name+"' target=_blank>";
    str1 += "<img src='"+entry.clan_pic_url+"' height=13 width=13 border=0></a> ";
    str1 += "<img src='../img/ranks/rank"+(entry.clan_rank?entry.clan_rank:"0")+".gif' width=13 height=13> ";
    str1 += "<b>"+entry.clan_name+" ("+entry.server+") ["+entry.clan_level+"]</b>";
    str1 += "</td>";
    str1 += "<td>"+entry.clan_degree+"</td>";
    str1 += "<td>"+entry.mean_rating+"</td>";
    str1 += "<td>"+(entry.mean_delta?entry.mean_delta:0)+"</td>";
    str1 += "<td><a href='../pro/rating.php?clans[0]="+entry.id+"' target=_blank title='Индивидуальные рейтинги игроков'>"+entry.members_total+"</td>";
    str1 += "<td>"+(entry.overall_delta?entry.overall_delta:0)+"</td>";
    str1 += "</tr>";
    str += str1;
  } 
  str += "</tbody>";
  str += "<tfoot><tr><td colspan=8>";
  str += "Перейти на страницу: ";
  if ( data.page == 1 )
    str += "&lt;";
  else
    str += "<a href=javascript:void(0) onclick=javascript:getClanRatingPage("+(data.page-1)+") style='text-decoration:none;'>&lt;</a>";
  str += " <input type=text id=ratingPageNr value="+data.page+" style='text-align:center;width:"+(data.pagesTotal.toString().length)*15+"px' ";
  str += "maxlength="+(data.pagesTotal.toString().length)+" ";
  str += "onchange=\"javascript:checkPageNumberAndGetRatingList("+data.page+","+data.pagesTotal+",this)\"> ";
  if ( data.page == data.pagesTotal )
    str += "&gt;";
  else
    str += "<a href=javascript:void(0) onclick=javascript:getClanRatingPage("+(data.page+1)+") style='text-decoration:none;'>&gt;</a>";
  str += " | Всего найдено кланов: <b>"+data.entriesTotal+"</b> | Всего страниц: <b>"+data.pagesTotal+"</b>";
  str += "</td></tr></tfoot>";
  str += "</table>";
  document.getElementById("ratingContent").innerHTML = str;
}

function checkPageNumberAndGetRatingList(currentPage, pagesTotal, el){
  var newPage = parseInt(trim(el.value));
  if ( !newPage ){
    el.value = currentPage;
    return;
  }
  if ( newPage == currentPage )
    return;
  if ( newPage < 1 || newPage > pagesTotal ){
    alert("Номер страницы может быть лишь в интервале от 1 до "+pagesTotal+"!");
    el.value = currentPage;
    return;
  }
  el.value = newPage;
  getClanRatingPage(newPage);
}

function updateCurrentLink(){
  var locObj = document.location;
  var loc = locObj.protocol+"//"+locObj.host+locObj.pathname;
  loc += "?";
  var form = document.forms.clanRatingFilter;
  var server = form.server.value;
  var race = form.race.value;
  var clanId = form.clan.value;
  var order = form.order.value;
  var orderType = form.orderType.value;
  var page = document.getElementById("ratingPageNr").value;
  
  if ( server )
    loc += "&server="+prepareLinkStr(server);
  if ( race )
    loc += "&race="+prepareLinkStr(race);
  if ( clanId )
    loc += "&clan="+prepareLinkStr(clanId);
  loc += "&order[column]="+order;
  loc += "&order[type]="+orderType;
  loc += "&page="+page;
  
  document.getElementById("ratingCurrentLink").href = loc;
  document.getElementById("ratingCurrentLink").innerHTML = loc;
}
