var queryResNos = new Array();
var groupNos = new Array();

var checkboxStatusIsChecked = 0;

function onQueryInputClick(no){
  
  var queryContainer = 'querySelectionContainer' + no;  
  var queryLinkId = 'queryLink' + no; 
  var queryId = 'queryResNo' + no;  
  var inputElement = $(queryId);    
  if (inputElement.checked == true) {
    $(queryContainer).addClassName('bold');
    $(queryContainer).addClassName('querySelectionContainerSelected');
    addQueryResNoOnClick(no);
  }
  else {
    $(queryContainer).removeClassName('bold');
    $(queryContainer).removeClassName('querySelectionContainerSelected');
    removeQueryResNoOnClick(no);    
  }    
 
}

function onGroupInputClick(no){
  
  var groupContainer = 'groupSelectionContainer' + no;  
  var groupLinkId = 'groupLink' + no; 
  var groupId = 'groupNo' + no;  
  var inputElement = $(groupId);    
  if (inputElement.checked == true) {
    $(groupContainer).addClassName('bold');
    $(groupContainer).addClassName('querySelectionContainerSelected');
    addGroupNoOnClick(no);
    checkboxStatusIsChecked = 1;
    inspectCheckboxStatus()
  }
  else {
    $(groupContainer).removeClassName('bold');
    $(groupContainer).removeClassName('querySelectionContainerSelected');
    removeGroupNoOnClick(no);  
    checkboxStatusIsChecked = 0;  
    inspectCheckboxStatus()
  }    
 
}

function onQueryLinkClick(no){
  
  var queryContainer = 'querySelectionContainer' + no;
  var queryLinkId = 'queryLink' + no;
  var queryId = 'queryResNo' + no;
  var inputElement = $(queryId);
  if (inputElement != null) {
    if (inputElement.checked == true) {
      $(queryContainer).removeClassName('bold');
      $(queryContainer).removeClassName('querySelectionContainerSelected');
      inputElement.checked = false;
      removeQueryResNoOnClick(no);       
    }
    else {
      inputElement.checked = true;
      $(queryContainer).addClassName('bold');
      $(queryContainer).addClassName('querySelectionContainerSelected');
      addQueryResNoOnClick(no);
    }
  }

}

function onGroupLinkClick(no){
  
  var groupContainer = 'groupSelectionContainer' + no;
  var groupLinkId = 'groupLink' + no;
  var groupId = 'groupNo' + no;
  var inputElement = $(groupId);
  if (inputElement != null) {
    if (inputElement.checked == true) {
      $(groupContainer).removeClassName('bold');
      $(groupContainer).removeClassName('querySelectionContainerSelected');
      inputElement.checked = false;
      removeGroupNoOnClick(no);  
      checkboxStatusIsChecked = 0;
      inspectCheckboxStatus()     
    }
    else {
      inputElement.checked = true;
      $(groupContainer).addClassName('bold');
      $(groupContainer).addClassName('querySelectionContainerSelected');
      addGroupNoOnClick(no);
      checkboxStatusIsChecked = 1;
      inspectCheckboxStatus()          
    }
  }

}

function addQueryResNoOnClick(no){
  queryResNos.push(no);
  __queryResNos = queryResNos;
}

function addGroupNoOnClick(no){
  groupNos.push(no);
  __groupNos = groupNos;
}
  
function getqueryResNos(){
  return __queryResNos
}

function getgroupNos(){
  return __groupNos
}
  
 
function removeQueryResNoOnClick(no){
  for (var i = 0; i < queryResNos.length; i++) {
    if (queryResNos[i] == no) {
      queryResNos.splice(i, 1);
      __queryResNos = queryResNos;
      break;
    }
  }
}

function removeGroupNoOnClick(no){
  for (var i = 0; i < groupNos.length; i++) {
    if (groupNos[i] == no) {
      groupNos.splice(i, 1);
      __groupNos = groupNos;
      break;
    }
  }
}

function submitSelectedQueryResNos(url, chk, type){
  
  if (queryResNos.length > 0) {
    if (type == 'html') {
      if (groupNos.length > 0){
        window.location.href = url + "/get_queries_reports?selQueries=" + getqueryResNos() + "&selUsergroups=" + getgroupNos();
      } else {
        window.location.href = url + "/get_queries_reports?selQueries=" + getqueryResNos();
      }
    } else if (type == 'excel'){
       window.open(url + "/get_queries_report_excel/export?selQueries=" + getqueryResNos(),'top');     
    }
  } else {
    alert('Valitse ainakin 1 kysely josta haluat koostaa raportin.');
    return false;
  }
}

function onInvertSelectionClick(chk){

  chk = document.forms.selectReport.queryResNo;
  var no = null;
  var queryContainer = null;
  
  if (chk != null) {
    chk.checked = !chk.checked;
    for (i = 0; i < chk.length; i++) {
      chk[i].checked = !chk[i].checked;
      
      if (!chk[i].checked) {
        no = chk[i].value;
        for (var x = 0; x < queryResNos.length; x++) {
          queryContainer = 'querySelectionContainer' + no;
          $(queryContainer).removeClassName('bold');
          $(queryContainer).removeClassName('querySelectionContainerSelected');
          if (queryResNos[x] == no) {
            queryResNos.splice(x, 1);
            __queryResNos = queryResNos;
          }
        }
      }
      else {
        no = chk[i].value;
        queryContainer = 'querySelectionContainer' + no;
        $(queryContainer).addClassName('querySelectionContainerSelected');
        $(queryContainer).addClassName('bold');  
        addQueryResNoOnClick(no);
      }
    }
    
  }
}

function onInvertSelectionClickGroup(chk){

  chk = document.forms.selectReport.groupNo;

  var no = null;
  var groupContainer = null;
  
  if (chk != null) {
    
    chk.checked = !chk.checked;
    
    for (i = 0; i < chk.length; i++) {
      chk[i].checked = !chk[i].checked;
      
      if (!chk[i].checked) {
        no = chk[i].value;
        for (var x = 0; x < groupNos.length; x++) {
          groupContainer = 'groupSelectionContainer' + no;
          $(groupContainer).removeClassName('bold');
          $(groupContainer).removeClassName('querySelectionContainerSelected');
          if (groupNos[x] == no) {
            groupNos.splice(x, 1);
            __groupNos = groupNos;
          }
        }
      }
      else {
        no = chk[i].value;
        groupContainer = 'groupSelectionContainer' + no;
        $(groupContainer).addClassName('querySelectionContainerSelected');
        $(groupContainer).addClassName('bold');  
        addGroupNoOnClick(no);
      }
    }
    
    inspectCheckboxStatus();
  }
}

function inspectCheckboxStatus(){
  /* Estet&#228;&#228;n Excel napin toimivuus mik&#228;li jokin k&#228;ytt&#228;j&#228;ryhm&#228; on valittuna 
  * ToDo: 
  * Kun on mahdollista koostaa raportti exceliin k&#228;ytt&#228;j&#228;ryhm&#228;rajauksella poistetaan t&#228;m&#228; kohta
  */
    
  chk = document.forms.selectReport.groupNo;

  var no = null;
  var groupContainer = null;    
        
  for (i = 0; i < chk.length; i++) {
    
    if (chk[i].checked == true){
      checkboxStatusIsChecked = 1;
    } else {
      //checkboxStatusIsChecked = 0;
    }
  }
  
  if (checkboxStatusIsChecked == 1) {
    $('getReportsByUsergrpButton').disable();
    $('getReportsByUsergrpButton').removeClassName('button');
    $('getReportsByUsergrpButton').addClassName('buttonDisabled');
  }
  else {
    $('getReportsByUsergrpButton').enable();
    $('getReportsByUsergrpButton').removeClassName('buttonDisabled');
    $('getReportsByUsergrpButton').addClassName('button');    
  } 
  
}

