//Array für durchsuchbare Inhalte
searchable = "";

//Array für LiveSearch	
searchArray = "";

//Array für die dynamische Sortierung
sortArray = new Array();
sortString = "abcdefghijklmnopqrstuvwxyz";

//Array für Offsets der Listen
listArray = new Array("0", "100", "200", "300", "400", "500", "600");

//Initialsettings
$(document).ready(function(){
  //Sortierminimum
  minimum = 20;
  
  searchable = searchable.split("+++");  
  searchArray = searchArray.split(",");
  
  //Gespeicherte Suche ausführen
  var savedsearch = window.location.hash;
  savedsearch = savedsearch.split("#");
  savedsearch = savedsearch.join("");
  savedsearch = savedsearch.split(",");
  savedsearch = savedsearch.join(" ");
  if(savedsearch != ""){
    submitSearch(savedsearch);
  } else {
    dynamicSort();
  }
});

//Nach Buchstaben sortieren
function showAlpha(string){
  $('#flexresult').hide();

  if(string == "flexmodul"){
    $('#sorter-flexmodul').hide();
  } else {
    $('#sorter-flexmodul').show();
  }
  
  var anzahl = 0;
  $('.'+string).each(function(){
    $(this).css('display', 'block');
    if(parseInt($(this).css('height')) != 0) anzahl++;
  });
  
  if(anzahl == 0) $('#flexresult').show();
  
  $('.flexmodul').not('.'+string).css('display', 'none');
  $('.ab-sorter').css({'background': '#0093A1', 'color': '#fff'});
  $('#sorter-'+string).css({'background': '#fff', 'color': '#0093A1'});
}

//Nach Kategorie sortieren
function showCategory(ident){
  $('#flexsearch').val('');
  $(ident).css({'height': 'auto', 'margin-bottom': '1em'});
  $('.flexmodul').not(ident).css({'height': 0, 'margin-bottom': 0});
  if(ident == '.flexmodul'){
    $('#searchinform').html(flextext_completelist);
  }else{
    $('#category').find('option').each(function(){
      if($(this).val() == ident) bezeichnung = $(this).html();
    });
    $('#searchinform').html(flextext_category+": "+bezeichnung);
  }
  window.location.hash = "";
  dynamicSort();
}

//LiveSearch
function liveSearch(){
  var anzahl = 0;
  var output = "";
  var search = $('#flexsearch').val();
  if(search != ""){
    search = search.toLowerCase();
    $('#suggestions').html("");

    for(var i = 0; i < searchArray.length; i++){
      if(anzahl < 10){
        if(searchArray[i].search(search) != -1){
          var outstring = searchArray[i].split("+++");
          output+= '<div class="suggestion" onclick="submitSearch(\''+ outstring[0] +'\', \'\')">'+ outstring[0] +'</div>';
          anzahl++;
        }
      } else {
        break;
      }
    }
  }
  $('#suggestions').html(output);
}

//Liste aktualisieren
function getActualList(){
  for(var i = 0; i < listArray.length; i++){
    $.get("http://www.isea2010ruhr.org/node/363&offset="+listArray[i]);
  }
}

//Suchen
function submitSearch(string){
  $('#flexresult').hide();
  
  //Searchstring aufteilen
  string = $.trim(string);
  $('#flexsearch').val(string);
  $('#searchinform').html(flextext_search+': "'+string+'"');
  $('#suggestions').html("");
  string = string.toLowerCase();
  
  //Ergebnisarray initiieren
  var ident = 0;
  var resultArray = new Array();
  if(string.indexOf(" ") != -1){
    string = string.split(" ");
    for(var i = 0; i < string.length; i++){
      for(var j = 0; j < searchable.length; j++){
        if(searchable[j].indexOf(string[i]) != -1){
          var resultOut = searchable[j].split("***");
          resultArray[ident] = resultOut[0];
          ident++;
        }
      }
    }
  } else {
    for(var j = 0; j < searchable.length; j++){
      if(searchable[j].indexOf(string) != -1){
        var resultOut = searchable[j].split("***");
        resultArray[ident] = resultOut[0];
        ident++;
      }
    }
  }
  
  $('.flexmodul').css({'height': 0, 'margin-bottom': 0});
  for(var k = 0; k < resultArray.length; k++){
    $('#'+resultArray[k]).css({'height': 'auto', 'margin-bottom': '1em'});
  }

  window.location.hash = string;
  $('#language a').each(function () {
  		var tempHref = $(this).attr("href") + '#' + string;
  		$(this).attr("href", tempHref);
  });
  
  dynamicSort();
}

//"Dynamische" Sortierung
function dynamicSort(){
  var anzahl = 0;
  $('.flexmodul').each(function(){
    if(parseInt($(this).css('height')) != 0) anzahl++;
  });

  if(anzahl > minimum) {
    $('#ab-sorter').show();
    showAlpha('flex-abcde');
  } else {
    $('#ab-sorter').hide();
    $('.flexmodul').show();
    if(anzahl == 0){
      $('#flexresult').show();
    }
  }
}
