$(document).ready(function() {
	
	function ucwords(str) {
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
      return $1.toUpperCase();
    });
  }
  
  /*function urldecode(str) {
    return decodeURIComponent((str + '').replace(/\+/g, '%20'));
  }*/
  function urldecode(str) {
    return unescape((str + '').replace(/\+/g, '%20'));
  }

  $('table.tbl_stats tbody tr:even').addClass('even');

  /* Functionaliteit voor het tonen van de gehele lijst */
  $('div.buttons a').bind('click', function() {
  	var $thisanchor = $(this);
    var page = parseInt($thisanchor.parent().find(':hidden[name=page]').attr('value'));
    var year = parseInt($thisanchor.parent().find(':hidden[name=year]').attr('value'));
    var id_button = $(this).attr('id');
    if (id_button == 'fastback') page = page - 5;
    else if (id_button == 'back') page = page - 1;
    else if (id_button == 'forward') page = page + 1;
    else if (id_button == 'fastforward') page = page + 5;
    if (page < 1) page = 1;
    else if (page > 80) page = 80;
    $.ajax({
      type:'POST',
      url:'ajax_statsWholeList.php',
      data:{page: page, year: year},
      dataType:'xml',
      error: function(){
        $('.error').text('Er is een fout opgetreden.');
      },
      success: function(xmlDoc, textStatus){
        // Maak een kopie van het eerste tr-element
        var $tr = $('table.tbl_stats tbody tr:first').clone();
        var strHref = $tr.find('td:eq(1)').find('a').attr('href');
        strHref = strHref.substring(0, (strHref.lastIndexOf('=') + 1));
        var $table_body = $('table.tbl_stats tbody');
        // Verwijder alle rijen
        $('table.tbl_stats tbody tr').hide("fast").remove();
        // Doorloop het XML-document
        var titles = xmlDoc.getElementsByTagName('artist_title');
        var switchvar = 'not_' + year;
        for (i = 0; i < titles.length; i++) {
          $new_tr = $tr.clone();
          strNotering = '';
          strArtiestnaam = '';
          strTitelnaam = '';
          strJaar = '';
          for (el = 0; el < titles[i].childNodes.length; el++) {
            if (titles[i].childNodes[el].nodeType == 1) {
              switch (titles[i].childNodes[el].nodeName) {
                case 'artiestnaam' : strArtiestnaam = ucwords(urldecode(titles[i].childNodes[el].firstChild.nodeValue)); break;
                case 'titelnaam' : strTitelnaam = ucwords(urldecode(titles[i].childNodes[el].firstChild.nodeValue)); break;
                case 'jaar' : strJaar = urldecode(titles[i].childNodes[el].firstChild.nodeValue); break;
                default : 
                  if (titles[i].childNodes[el].nodeName == switchvar) {
                  	strNotering = urldecode(titles[i].childNodes[el].firstChild.nodeValue);
                  }
                  break;
              }
            }
          }
          $new_tr.find('td:eq(0)').text(strNotering);
          $new_tr.find('td:eq(1)').find('a').attr('href', strHref + strArtiestnaam)
          $new_tr.find('td:eq(1)').find('a').text(strArtiestnaam);
          $new_tr.find('td:eq(2)').text(strTitelnaam + ' (' + strJaar + ')');
          //alert($new_tr.html());
          $new_tr.appendTo('table.tbl_stats tbody');
        }
        $('table.tbl_stats tbody tr').removeClass('even');
        $('table.tbl_stats tbody tr:even').addClass('even');
        $thisanchor.parent().find(':hidden[name=page]').attr('value', page);
      }
    });
    return false;
  });

  /* Functionaliteit voor de verdwenen platen */
  /* Koppel een klik-event aan iedere letter. */
  $('a.tab').bind('click', function() {
    var letter = $(this).find('span').text();
    //alert('aantal li elementen: ' + $('.artist_title ul li').length);
    $.ajax({
      type:'POST',
      url:'ajax_statsGetHitsGone.php',
      data:{letter: letter},
      dataType:'xml',
      error: function(){
        $('.error').text('Er is een fout opgetreden.');
      },
      success: function(xmlDoc, textStatus){
        // Maak een kopie van het eerste tr-element
        var $tr = $('table.tbl_stats tbody tr:first').clone();
        var strHref = $tr.find('td:eq(1)').find('a').attr('href');
        strHref = strHref.substring(0, (strHref.lastIndexOf('=') + 1));
        var $table_body = $('table.tbl_stats tbody');
        // Verwijder alle rijen
        $('table.tbl_stats tbody tr').hide("fast").remove();
        // Doorloop het XML-document
        var titles = xmlDoc.getElementsByTagName('artist_title');
        for (var i = 0; i < titles.length; i++) {
          $new_tr = $tr.clone();
          strArtiestnaam = '';
          strTitelnaam = '';
          strJaar = '';
          max_jaar = 0;
          for (el = 0; el < titles[i].childNodes.length; el++) {
            if (titles[i].childNodes[el].nodeType == 1) {
              switch (titles[i].childNodes[el].nodeName) {
                case 'artiestnaam' : strArtiestnaam = unescape(titles[i].childNodes[el].firstChild.nodeValue); break;
                case 'titelnaam' : strTitelnaam = unescape(titles[i].childNodes[el].firstChild.nodeValue); break;
                case 'jaar' : strJaar = unescape(titles[i].childNodes[el].firstChild.nodeValue); break;
                default :
                  if (titles[i].childNodes[el].nodeName.substr(0, 3) == 'not') {
                    jaar = parseInt(titles[i].childNodes[el].nodeName.substr(4, 4));
                    if (jaar > max_jaar && titles[i].childNodes[el].hasChildNodes()) {
                      max_jaar = jaar;
                    }
                  }
                  break;
              }
            }
          }
          var num = new Number(i + 1);
          $new_tr.find('td:eq(0)').text(num.toString());
          $new_tr.find('td:eq(1)').find('a').attr('href', strHref + strArtiestnaam)
          $new_tr.find('td:eq(1)').find('a').text(strArtiestnaam);
          $new_tr.find('td:eq(2)').text(strTitelnaam + ' (' + strJaar + ')');
          $new_tr.find('td:eq(3)').text(max_jaar.toString());
          $new_tr.appendTo('table.tbl_stats tbody');
        }
        $('table.tbl_stats tbody tr').removeClass('even');
        $('table.tbl_stats tbody tr:even').addClass('even');
      }
    });
    $('a.tab').removeClass('active');
    $(this).addClass('active');
    return false;
  });
  
});

