
function suppress()
{
  return false;
}

function str_replace(search, replace, subject)
{
  return subject.split(search).join(replace);
}

function strstr(haystack, needle, bool)
{
  var pos = 0;
  haystack += '';
  pos = haystack.indexOf( needle );
  if (pos == -1)
  {
    return false;
  }
  else
  {
    if (bool)
    {
      return haystack.substr( 0, pos );
    }
    else
    {
      return haystack.slice( pos );
    }
  }
}

function in_array(item,arr)
{
  for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
  return false;
}

function searchreset()
{
  $('#inline-search').removeClass('searching');
  
  document.getElementById("inline-search").value = "";
  
  $("ol").show();
  
  $("#resetButtonOn").hide();
  $("#resetButtonOff").show();
  
  return false;
}

$(document).ready(function()
{
  $('input#inline-search').search('ol');
});

$.fn.search = function(searchElements)
{
  $(this).keyup(function()
  {
    var searchString = $(this).val().toLowerCase();
    
    searchString = str_replace( "Ö", "oe", searchString );
    searchString = str_replace( "Ä", "ae", searchString );
    searchString = str_replace( "Ü", "ue", searchString );
    searchString = str_replace( "ö", "oe", searchString );
    searchString = str_replace( "ä", "ae", searchString );
    searchString = str_replace( "ü", "ue", searchString );
    searchString = str_replace( "ß", "ss", searchString );

    if (searchString.length > 1 )
    {
      removeActive();
      
      $("#resetButtonOff").hide();
      $("#resetButtonOn").show();
      
      $('#inline-search').addClass('searching');
      
      $(searchElements).hide();
      $(searchElements+':contains(' +searchString+ ')').show();
    }
    else
    {
      $('#inline-search').removeClass('searching');
    
      $(searchElements).show();

      $("#resetButtonOn").hide();
      $("#resetButtonOff").show();
    }
  });
};
  
var countries = [ 'at', 'ch', 'de', 'es', 'fr', 'it', 'nl' ];

var powers = [ 'm50', 'e50', 'l50' ];

var types = [ 'tad', 'tid', 'tfa', 'tff', 'tnv', 'tis' ];

var brands = [ 'danfoss', 'ecolights', 'hoppecke', 'huber-suhner', 'kaco', 'kyocera', 'morningstar', 'multicontact', 'phoenix-contact', 'rennsteig', 'sanyo', 'schott-solar', 'sma', 'solar-log', 'solarmax', 'solarworld', 'solrif', 'suntech', 'tritec', 'tyco' ];


Array.prototype.foreach = function( callback ) 
{
  for( var k=0; k<this .length; k++ ) {
    callback( k, this[ k ] );
  }
}

function toggleCookieFilter( value )
{
  $.cookie("tritecFilter", value);
}

function toggleCookieSort( value )
{
  $.cookie("tritecSort", value);
}

function toggleFilter( value )
{
  if ( in_array(value,countries) )
  {
    toggleCountry(value);
  }
  
  if ( in_array(value,powers) )
  {
    togglePower(value);
  }
  
  if ( in_array(value,types) )
  {
    toggleType(value);
  }
  
  if ( in_array(value,brands) )
  {
    toggleBrands(value);
  }
}

function removeActive()
{
  var returnvalue = false;
  
  countries.foreach( function( key, value )
  {
    if ( $('#ref_selected_' + value ).hasClass('selected') )
    {
      $('#ref_selected_' + value ).removeClass('selected');
      
      returnvalue = value;
    }
  });
  
  powers.foreach( function( key, value )
  {
    if ( $('#ref_selected_' + value ).hasClass('selected') )
    {
      $('#ref_selected_' + value ).removeClass('selected');
      
      returnvalue = value;
    }
  });
  
  types.foreach( function( key, value )
  {
    if ( $('#ref_selected_' + value ).hasClass('selected') )
    {
      $('#ref_selected_' + value ).removeClass('selected');
      
      returnvalue = value;
    }
  });
  
  brands.foreach( function( key, value )
  {
    if ( $('#ref_selected_' + value ).hasClass('selected') )
    {
      $('#ref_selected_' + value ).removeClass('selected');
      
      returnvalue = value;
    }
  });
  
  return returnvalue;
}

function toggleSearch( query )
{
  searchString = query.toLowerCase();
  
  searchString = str_replace( "Ö", "oe", searchString );
  searchString = str_replace( "Ä", "ae", searchString );
  searchString = str_replace( "Ü", "ue", searchString );
  searchString = str_replace( "ö", "oe", searchString );
  searchString = str_replace( "ä", "ae", searchString );
  searchString = str_replace( "ü", "ue", searchString );
  searchString = str_replace( "ß", "ss", searchString );

  if (searchString.length > 1 )
  {
    removeActive();
      
    $("#resetButtonOff").hide();
    $("#resetButtonOn").show();
      
    $('#inline-search').addClass('searching');
    
    document.getElementById("inline-search").value = query;
      
    $("ol").hide();
    $('ol:contains(' +searchString+ ')').show();
  }
}

function toggleCountry( country )
{
  toggleCookieFilter( country );
  
  var lastactive = removeActive();
  
  /* $("#ybLoader").show( 500); */
  
  countries.foreach( function( key, value )
  {
    if ( country == "default" )
    {
      $(".ref_" + value ).show();
    }
    
    if ( country == lastactive )
    {
      $(".ref_" + value ).show();
    }
    
    if ( country != "default" && country != lastactive && value != country )
    {
      $(".ref_" + value ).hide();
    }
    
  });
  
  $(".ref_" + country ).show();
  
  if ( country != lastactive )
  {
    $('#ref_selected_' + country ).addClass('selected');
  }
  
  /* setTimeout('$("#ybLoader").slideUp( 400 )', 1000); */
  
  return false;
}

function togglePower( power )
{
  toggleCookieFilter( power );
  
  var lastactive = removeActive();
  
  powers.foreach( function( key, value )
  {
    if ( power == "default" )
    {
      $(".ref_" + value ).show();
    }
    
    if ( power == lastactive )
    {
      $(".ref_" + value ).show();
    }
    
    if ( power != "default" && power != lastactive && value != power )
    {
      $(".ref_" + value ).hide();
    }
    
  });
  
  $(".ref_" + power ).show();
  
  if ( power != lastactive )
  {
    $('#ref_selected_' + power ).addClass('selected');
  }
  
  return false;
}

function toggleType( type )
{
  toggleCookieFilter( type );
  
  var lastactive = removeActive();
  
  types.foreach( function( key, value )
  {
    if ( type == "default" )
    {
      $(".ref_" + value ).show();
    }
    
    if ( type == lastactive )
    {
      $(".ref_" + value ).show();
    }
    
    if ( type != "default" && type != lastactive && value != type )
    {
      $(".ref_" + value ).hide();
    }
    
  });
  
  $(".ref_" + type ).show();
  
  if ( type != lastactive )
  {
    $('#ref_selected_' + type ).addClass('selected');
  }
  
  return false;
}

function toggleBrands( brand )
{
  toggleCookieFilter( brand );
  
  var lastactive = removeActive();
  
  types.foreach( function( key, value )
  {
    if ( brand == "default" )
    {
      $(".ref_" + value ).show();
    }
    
    if ( brand == lastactive )
    {
      $(".ref_" + value ).show();
    }
    
    if ( brand != "default" && brand != lastactive && value != brand )
    {
      $(".ref_" + value ).hide();
    }
    
  });
  
  $(".ref_" + brand ).show();
  
  if ( brand != lastactive )
  {
    $('#ref_selected_' + brand ).addClass('selected');
  }
  
  return false;
}

function sortPower()
{
  toggleCookieSort( "power" );
  
  $("#ref_selected_power").addClass("selected");
  $("#ref_selected_date").removeClass("selected");
  
  $.tinysort.defaults.order="desc";
  
  $("#content>ol").tsort("span.sortpower");
  
  return false;
}

function sortProjectDate()
{
  toggleCookieSort( "date" );
  
  $("#ref_selected_power").removeClass("selected");
  $("#ref_selected_date").addClass("selected");
  
  $.tinysort.defaults.order="desc";
  
  $("#content>ol").tsort("span.sortdate");
  
  return false;
}
