/*     --------------Diseņadores tener en cuenta esto-------------------------------

1. el div de hiscores se llama ( ranking_div )
2. el div del navigator se llama ( navigator_div )
3. el id del imput de texto se llama (imput_serch) y tiene que contener este evento (  onKeyDown="key(event)"  )
4. la funcion on click del boton de busqueda se llama ( searchAlias() )
5. el css del alias que buscas se llama ( alias_found )

*/
// Settings
var POSITION=0;
var ALIAS=1;
var COUNTRY_COLUMN=2;
var POINTS=3;
var URL_RANK='http://playground.playw.com/ws/controller?processor=hs';
/*var URL='http://10.0.1.11/ws/controller?processor=hs';*/
  //-----------------------Vars for navigator and alias sercher-----------------
var TOTAL=0;
var ALIAS_SH;
var LAST_NAV=0;
var ACTUAL_NAV=1;
var NAV_DIV='navigator_div';
var N_TABLE='navigator_table';
var ALIAS_CSS='alias_found';
var ID_IMPUT_ALIAS='input_serch';
var ONLY_SHOW=true;
var SHOW_NAV=false;
var ALIAS_SH;
  //--------------------------------------------------------------------------------
var from=1;
var PAGE=10;
var GCODE=123545;
var showHeader=false;
var R_PAG='page_div'
var R_DIV='ranking_div';
var R_TABLE='ranking_table';
var R_SCRIPT='ranking_script';

function loadRanking() {
  var script=document.getElementById(R_SCRIPT);
  if(script)document.getElementsByTagName('head')[0].removeChild(script);
  script=document.createElement('script');
  //---------------------------Define the alias serch in peticion-------------------
  if(ALIAS_SH && ALIAS_SH.length > 0){
  	script.setAttribute('src',URL_RANK+'&gcode='+GCODE+'&country='+getParamValue('country')+'&cce=iso_a3&page='+PAGE+'&callback=ranking&alias='+ALIAS_SH);
  }else{
	script.setAttribute('src',URL_RANK+'&gcode='+GCODE+'&country='+getParamValue('country')+'&cce=iso_a3&from='+from+'&page='+PAGE+'&callback=ranking');
  }
  //--------------------------------------------------------------------------------
  script.setAttribute('type','text/javascript');
  script.setAttribute('id',R_SCRIPT);
  document.getElementsByTagName('head')[0].appendChild(script);
}

function ranking(xml){
  var xmlDoc=parseXml(xml);
  //--------------------------Calculate the navigator total pages-------------------
  var rowhead = xmlDoc.getElementsByTagName('rowset');
  TOTAL = rowhead[0].getAttribute('total');
  LAST_NAV = TOTAL/PAGE;
  LAST_NAV = Math.floor(LAST_NAV);
  if(TOTAL%PAGE != 0){
    LAST_NAV++;
  }
  //--------------------------------------------------------------------------------
  var fields=xmlDoc.getElementsByTagName('field');
  var rowset=xmlDoc.getElementsByTagName('row');
  var table=document.getElementById(R_TABLE);
  
  if(table)document.getElementById(R_DIV).removeChild(table);
  
  table=document.createElement('TABLE');
  table.setAttribute('id', R_TABLE);
  var tbody=document.createElement('TBODY');
  if(showHeader) var thead=document.createElement('THEAD');
  var show=new Array;
  var header=document.createElement('TR');
  for(var i=0;i<fields.length;i++){
    if(fields[i].getAttribute('display')=='yes'){
      if(showHeader){
        var th = document.createElement('TH');
        th.className='h_'+i;
        th.appendChild(document.createTextNode(fields[i].firstChild.nodeValue));
        header.appendChild(th);
      }
      show[i]=i;
    }
  }
  if(showHeader){thead.appendChild(header);table.appendChild(thead);}
  for(var i=0;i<rowset.length;i++){
    var tr=document.createElement('TR');
    //---------------------------Paint the alias if alias serch-----------------------
    if(ALIAS_SH && ALIAS_SH.length > 0 && rowset[i].getElementsByTagName('column')[ALIAS].firstChild.nodeValue == ALIAS_SH){
      tr.className=(ALIAS_CSS);
    }else{
      tr.className=(i%2==0?'odd':'even');
    }
    //--------------------------------------------------------------------------------
    var tdPos=document.createElement('TD');
    var tdCountry=document.createElement('TD');
    var tdAlias=document.createElement('TD');
    var tdPoints=document.createElement('TD');    
    tdPos.className='position';
    tdCountry.className=rowset[i].getElementsByTagName('column')[COUNTRY_COLUMN].firstChild.nodeValue;
    tdAlias.className='alias';
    tdPoints.className='points';
    tdPos.appendChild(document.createTextNode(rowset[i].getElementsByTagName('column')[POSITION].firstChild.nodeValue));    
    tdAlias.appendChild(document.createTextNode(rowset[i].getElementsByTagName('column')[ALIAS].firstChild.nodeValue));
    tdPoints.appendChild(document.createTextNode(rowset[i].getElementsByTagName('column')[POINTS].firstChild.nodeValue));    
    tr.appendChild(tdPos);
    tr.appendChild(tdCountry);
    tr.appendChild(tdAlias);
    tr.appendChild(tdPoints);
    tbody.appendChild(tr);
  }
  table.appendChild(tbody);
  document.getElementById(R_DIV).appendChild(table);
  rank_nav();
  ALIAS_SH = "";
}
    //------------------------Create the navigator table------------------------------
function rank_nav(){

  if(document.getElementById(N_TABLE))document.getElementById(NAV_DIV).removeChild(document.getElementById(N_TABLE));
	
  var ntable=document.createElement('TABLE');
  ntable.setAttribute('id', N_TABLE);
  var tbody=document.createElement('TBODY');
  var tr=document.createElement('TR');
  
  if(!ONLY_SHOW){
    if(LAST_NAV > 5){
      if(ACTUAL_NAV < 3){
      	var tdNav=document.createElement('TD'); 
      	tdNav.appendChild(document.createTextNode(' '));
      	tr.appendChild(tdNav);
        for(i=1;i<4;i++){
          var tdNav=document.createElement('TD');      
          if(i==ACTUAL_NAV){
            tdNav.appendChild(document.createTextNode(i));
          }else{
            tdNav.innerHTML="<A HREF='javascript:go_to("+i+")'> "+ i +" </A>";
          }
          tr.appendChild(tdNav);
        }
        var tdNav=document.createElement('TD');
        tdNav.appendChild(document.createTextNode('...'));
        tr.appendChild(tdNav);
      }else if(ACTUAL_NAV >= 3 && ACTUAL_NAV < LAST_NAV-1){
        var tdNav=document.createElement('TD');
        tdNav.appendChild(document.createTextNode('...'));
        tr.appendChild(tdNav);
        for(i=ACTUAL_NAV-1;i<ACTUAL_NAV+2;i++){
          var tdNav=document.createElement('TD');
          if(i==ACTUAL_NAV){
            tdNav.appendChild(document.createTextNode(i));
          }else{
            tdNav.innerHTML="<A HREF='javascript:go_to("+i+")'> "+ i +" </A>";
          }
          tr.appendChild(tdNav);
        }
        var tdNav=document.createElement('TD');
        tdNav.appendChild(document.createTextNode('...'));
        tr.appendChild(tdNav);
      }else if(ACTUAL_NAV > LAST_NAV-2){
        var tdNav=document.createElement('TD');
        tdNav.appendChild(document.createTextNode('...'));
        tr.appendChild(tdNav);
        for(i=ACTUAL_NAV-1;i<=LAST_NAV;i++){
          var tdNav=document.createElement('TD');
          if(i==ACTUAL_NAV){
            tdNav.appendChild(document.createTextNode(i));
          }else{
            tdNav.innerHTML="<A HREF='javascript:go_to("+i+")'> "+ i +" </A>";
          }
          tr.appendChild(tdNav);
        }
        if(ACTUAL_NAV==LAST_NAV){
          var tdNav=document.createElement('TD');
          tdNav.appendChild(document.createTextNode(' '));
          tr.appendChild(tdNav);
          tdNav=document.createElement('TD');
          tdNav.appendChild(document.createTextNode(' '));
          tr.appendChild(tdNav); 
        }else if (ACTUAL_NAV==LAST_NAV-1){
          var tdNav=document.createElement('TD'); 
          tdNav.appendChild(document.createTextNode(' '));
          tr.appendChild(tdNav);
        }
      }
    }else{
      for( i=0 ; i <= LAST_NAV ; i++ ){
        var tdNav=document.createElement('TD');
        tdNav.innerHTML="<A HREF='javascript:go_to("+i+")'> "+ i +" </A>";
        tr.appendChild(tdNav);
      }
    }
  }else{
	if(SHOW_NAV){
    	var tdNav=document.createElement('TD');
		tdNav.className='pages_numbers';
    	tdNav.appendChild(document.createTextNode("   "+ACTUAL_NAV+"   "));
    	tr.appendChild(tdNav);
	}
  }
  
  if(SHOW_NAV){
  	tbody.appendChild(tr)
  	ntable.appendChild(tbody);
  	document.getElementById(NAV_DIV).appendChild(ntable);
  }
}
    //-------------------------All navigator functions--------------------------------
function previous(){
  if(from > 1){
    from=from-PAGE;
    ACTUAL_NAV--;
    loadRanking();
  }
}
function next(){
  if(ACTUAL_NAV < LAST_NAV){
    from=from+PAGE;
    ACTUAL_NAV++;
    loadRanking();
  }
}

function reset(){
  from=1;
  ACTUAL_NAV=1;
  loadRanking();
}

function last(){
  from = (LAST_NAV*10)-10;
  ACTUAL_NAV=LAST_NAV;
  loadRanking();
}

function go_to(pag){
  if(pag <= LAST_NAV){
    from = (pag*10)-10;
    ACTUAL_NAV=pag;
    loadRanking();
  }
}
    //------------------------Search function-----------------------------------------
function searchAlias(){
  ALIAS_SH = document.getElementById(ID_IMPUT_ALIAS).value;
  loadRanking();
}
    //------------------Imput key event function--------------------------------------
function key(e) {
  if(window.event){
    keynum = e.keyCode
  }else if(e.which){
    keynum = e.which
  }
  if(keynum == 13){
    searchAlias();
  }
}