var list=new Array();
var positions=new Array();
var regexp_parse_id = /((^[^\d]+)_|^)(\d+)/;
var i=0; 

$(document).ready(function(){


$("[id*='title']").each(function(i){
  var group=this.id.substr(0,2);
  if (!list[group]) list[group]=new Array();
  unshift(list[group],this.id);
  positions[group]=-1;

  }).click(function(){
     var activeLink=this.id;
     var group=this.id.substr(0,2);
     $.each(list[group], function(j,val){
          if (val==activeLink) positions[group]=j;
       });

   });

$("[id*='prev'],[id*='next']").addClass("hand").addClass("unselectable");
$("[id*='prev'],[id*='next']").each(function(){
  this.onselectstart = function() { return(false); };
  })



function nextClick(){
 var match_info = $(this).attr("id").match(regexp_parse_id);
 var group=match_info[3];
 var css_layer=match_info[2];
 hideAllItems(group);
 
 if (checkVisible(group))
 {
   if (positions[group]>=list[group].length-1) positions[group]=-1;
 
   //skip all that are filtered out
   while (Filter.isElementFiltered('#' + list[group][positions[group]+1])) //!$("#"+list[group][positions[group]+1]).is(":visible") && 
   {
     positions[group]++;
     if (positions[group]>=list[group].length-1)
      positions[group]=-1;
   }

   if ($("#"+list[group][positions[group]+1]).parent("[id*='title']").length)
     $("#"+list[group][++positions[group]]).parent("[id*='title']").click();
   else
     $("#"+list[group][++positions[group]]).click();

   $("#"+$("#"+list[group][positions[group]]).attr("id").replace("title","item")).addClass(css_layer);
  }
}


$("[id*='next']").click(nextClick);


$("[id*='prev']").click(function(){
 var match_info = $(this).attr("id").match(regexp_parse_id);
 var group=match_info[3];
 var css_layer=match_info[2];

 if (checkVisible(group))
 {
   if (positions[group]<=0) positions[group]=list[group].length;
    while (!$("#"+list[group][positions[group]-1]).is(":visible") && !isHiddenButton(list[group][positions[group]+1]))
    {
     positions[group]--;
     if (positions[group]<=0)
      positions[group]=list[group].length;
    }
   if ($("#"+list[group][positions[group]-1]).parent("[id*='title']").length)
   $("#"+list[group][--positions[group]]).parent("[id*='title']").click();
   else
   $("#"+list[group][--positions[group]]).click();

   $("#"+$("#"+list[group][positions[group]]).attr("id").replace("title","item")).addClass(css_layer);
 }
 });

  /* button is clickable if it is not filtered out */
 function checkVisible(group){
    var result = false;
    $("[id^='"+group+"title']").each(function(i) {
      if(!Filter.isElementFiltered(this)) {
        result = true;
        return false;
      }
    });
    return result;
 }

 function unshift(array, data)
 { array[array.length]=data;
 }
 



 /**
  *   The following lines move the second layer buttons into a special container
  *   in top of the communications if there is a container with class new_button_container.
  */
 $(".button").each(function(i, item) {
  if($(item).parents('.Kommunikation_alles').find('.new_button_container').length)
    $(item).parents('.Kommunikation_alles').find('.new_button_container').append(item);
 });
 
  });
 
 
 
