function AjaxRequest(u, cb) {
  this.callback = cb;
  this.url = u;
}

AjaxRequest.prototype.send = function() {
  this.request = (window.XMLHttpRequest ? new XMLHttpRequest() : (window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : null));
  var that = this;
  this.request.onreadystatechange = function() {
    that.callback(that);
  }
  this.request.open("GET", this.url, true);
  this.request.send(null);
}

function processOverview(req) {
  var request = req.request;
  if (request.readyState == 4) {

    if (request.status == 200) {
      var resultText = request.responseText;      

      var x = document.getElementById(req.resultDiv);
      x.innerHTML = "";
      x.style.display = 'block';
      
      x.innerHTML = resultText;      
      

  var notesTable = window.document.getElementById('notesTable');
  
  var notes = notesTable.getElementsByTagName("tr");
  
  for(var i=1; i < notes.length; i++){
    if (i%2 != 0) notes[i].className = 'bgAlt';
  }

    }
  }
}

function getNotes(outputDiv, lang, type, sort, search) {
  document.getElementById(outputDiv).innerHTML = "...";
  url = '/ssgpiweb/faces/public/getnotes.jsp';
  url += '?lang=' + lang + '&type=' + type + '&sort=' + sort;
  if (search != null && search != '') url += '&search=' + search;
  var ajax = new AjaxRequest(url , processOverview);
  ajax.resultDiv = outputDiv;  
  ajax.send();
}

function getUrlParam(paramname){
  var requestedValue = '';
  var href = document.location.href;
  if ( href.indexOf("?") != -1){
    var paramstring = href.split("?")[1];
    var params = paramstring.split("&");
    for (var i = 0; i < params.length; ++i){
      var pname = params[i].split("=")[0];
      var pvalue = params[i].split("=")[1];
      
      if (pname == paramname){
        requestedValue = pvalue;           
      }      
    }
  }
  return requestedValue;
}

function checkUrlParams(){
  
  var lang = getUrlParam("lang");
  if (lang == null || lang == '') lang = getUrlParam("langnotes");
  var type = getUrlParam("type");
  var sort = getUrlParam("sort");
  
  getNotes("notesContainer", lang, type, sort);
  
}

function generateLangSwitch(){
  var lang = getUrlParam("lang");
  if (lang == null || lang == '') lang = getUrlParam("langnotes"); 
  var type = getUrlParam("type");
  var sort = getUrlParam("sort");
  
  var href = document.location.href;
  if ( href.indexOf("?") != -1){
    var location = href.split("?")[0];
  }
  
  if (lang == 'fr') document.write("<a href='"+ location +"?sort=" + sort + "&type=" +type+ "&langnotes=nl&lang=nl&search=%'>NL</a>|FR");
  else document.write("NL|<a href='"+ location +"?sort=" + sort + "&type=" +type+ "&langnotes=fr&lang=fr&search=%'>FR</a>");
   
}
