// Preloading Images
if (document.images) {
  (new Image).src = '/images/buttons/right-active.png';
  (new Image).src = '/images/buttons/right-inactive.png';
  (new Image).src = '/images/buttons/left-active.png';
  (new Image).src = '/images/buttons/left-inactive.png';
}

function minimize_block(block_inner_div_id, button_el)
{
  if (!$(block_inner_div_id).hasClassName('hide'))
  {
    $(block_inner_div_id).toggleClassName('hide');
    $(block_inner_div_id).up('TABLE').className = 'sj-block-table-min';
    button_el.innerHTML = 'Maximize';
  } else {
    $(block_inner_div_id).up('TABLE').className = 'sj-block-table';
    $(block_inner_div_id).toggleClassName('hide');
    button_el.innerHTML = 'Minimieren';
  }
}

// from top-categories.tpl
function show_main_page_subcategories(div_num)
{
  var div = $('main-page-subcategories-' + div_num);
  if (div)
  {
    div.show();
  }
}
function hide_main_page_subcategories(div_num)
{
  var div = $('main-page-subcategories-' + div_num);
  if (div)
  {
    div.hide();
  }
}

// from brand-categories.tpl
function show_all_categories()
{
  var count = 0;

  $$('#categories-list li').each(function(el){
    count ++;
    if (count > max_categories_to_show)
    {
      el.className = '';
    }
  });

  $('min-categories-buttons').down('.top-10-left div').removeClassName('active');
  $('min-categories-buttons').down('.top-10 div').removeClassName('active');

  $('min-categories-buttons').down('.alle div').addClassName('active');
  $('min-categories-buttons').down('.alle-right div').addClassName('active');

  return false;
}
function hide_all_categories()
{
  var count = 0;

  $$('#categories-list li').each(function(el){
    count ++;

    if (count > max_categories_to_show)
    {
      el.className = 'hide';
    }
  });

  $('min-categories-buttons').down('.top-10-left div').addClassName('active');
  $('min-categories-buttons').down('.top-10 div').addClassName('active');

  $('min-categories-buttons').down('.alle div').removeClassName('active');
  $('min-categories-buttons').down('.alle-right div').removeClassName('active');

  return false;
}

// from category_brands.tpl
function show_all_brands()
{
  var count = 0;

  $$('#popular-brands-list li').each(function(el){
    count ++;
    if (count > max_brands_to_show)
    {
      el.className = '';
    }
  });

  $('popular-brands-hide-buttons').down('.top-10-left div').removeClassName('active');
  $('popular-brands-hide-buttons').down('.top-10 div').removeClassName('active');

  $('popular-brands-hide-buttons').down('.alle div').addClassName('active');
  $('popular-brands-hide-buttons').down('.alle-right div').addClassName('active');

  return false;
}
function hide_all_brands()
{
  var count = 0;

  $$('#popular-brands-list li').each(function(el){
    count ++;

    if (count > max_brands_to_show)
    {
      el.className = 'hide';
    }
  });

  $('popular-brands-hide-buttons').down('.top-10-left div').addClassName('active');
  $('popular-brands-hide-buttons').down('.top-10 div').addClassName('active');

  $('popular-brands-hide-buttons').down('.alle div').removeClassName('active');
  $('popular-brands-hide-buttons').down('.alle-right div').removeClassName('active');

  return false;
}

// from filter.tpl
function showHideFilters(id) {
    var show_more_div = $('show-more-'+id);
    var more_link = $('more-link-'+id);
    show_more_div.up('div.filter-dimension').toggleClassName('shortcut');
    if (show_more_div.hasClassName('show-more')) {
        show_more_div.className = 'hide-more';
        more_link.hide();
    } else {
        show_more_div.className='show-more';
        more_link.show();
    }
}

// from mathing_categories.tpl
function show_all_matching_categories()
{
  var count = 0;

  $$('#categories-list li').each(function(el){
    count ++;
    if (count > max_categories_to_show)
    {
      el.className = '';
    }
  });

  $('min-categories-buttons').down('.top-10-left div').removeClassName('active');
  $('min-categories-buttons').down('.top-10 div').removeClassName('active');

  $('min-categories-buttons').down('.alle div').addClassName('active');
  $('min-categories-buttons').down('.alle-right div').addClassName('active');

  return false;
}
function hide_all_matching_categories()
{
  var count = 0;

  $$('#categories-list li').each(function(el){
    count ++;

    if (count > max_categories_to_show)
    {
      el.className = 'hide';
    }
  });

  $('min-categories-buttons').down('.top-10-left div').addClassName('active');
  $('min-categories-buttons').down('.top-10 div').addClassName('active');

  $('min-categories-buttons').down('.alle div').removeClassName('active');
  $('min-categories-buttons').down('.alle-right div').removeClassName('active');

  return false;
}

// from popular_products.tpl
function show_top5_popular_products()
{
  $('min-popular-products-buttons').down('.top-10-left div').removeClassName('active');
  $('min-popular-products-buttons').down('.top-10 div').removeClassName('active');

  $('min-popular-products-buttons').down('.alle div').addClassName('active');
  $('min-popular-products-buttons').down('.alle-right div').addClassName('active');

  return false;
}
function show_neu_popular_products()
{
  $('min-popular-products-buttons').down('.top-10-left div').addClassName('active');
  $('min-popular-products-buttons').down('.top-10 div').addClassName('active');

  $('min-popular-products-buttons').down('.alle div').removeClassName('active');
  $('min-popular-products-buttons').down('.alle-right div').removeClassName('active');
  return false;
}

// from product_comparison.tpl
function clearCompareList() {
    var url    = '/product-comparison/clear-compare-list';
    var ajax   = new Ajax.Updater('product-compare-block', url, {
        method: 'post',
        onComplete: function() {
            var inputs = document.getElementsByTagName('input');
            for (var i = 0; i < inputs.length; ++i) {
                if (!inputs[i].id.match(/product-/)) continue;
                inputs[i].checked = false;
            }
        }
    });
}

function deleteCompareProduct(pid) {
    var url    = '/product-comparison/delete-product';
    var params = 'pid=' + pid;
    var ajax   = new Ajax.Updater
        ('product-compare-block', url, {
            method: 'post',
            parameters: params,
            onComplete: function() {
                if (checkbox = $('product-' + pid))
                    checkbox.checked = false;
            }
        });
}

// from product_parameters.tpl
function show_hide_more_parameters(el)
{
  $(el).up('TABLE').toggleClassName('shortcut');
  if (el.className == 'show-more-link')
  {
    $(el).innerHTML = hide_all_params_translated;
    el.className = 'hide-more-link';
  } else {
    $(el).innerHTML = show_all_params_translated;
    el.className = 'show-more-link';
  }
  return false;
}

// from products.tpl
function updateCompareList(control, pid, forceChange) {
  if (forceChange == true) {
    if (control.checked) { control.checked = false;}
    else { control.checked = true;}
  }
  if (control.checked == true) {
    return addProductToCompare(pid)
  } else {
    return deleteProductFromCompareList(pid)
  }
}

function addProductToCompare(pid) {
  var url    = '/product-comparison/add-product';
  var params = 'pid=' + pid;
  var ajax   = new Ajax.Updater('product-compare-block', url, {
                            method: 'post',
                            parameters: params,
                            onComplete: checkComparisonLink
                        });
}

function deleteProductFromCompareList(pid) {
  var url    = '/product-comparison/delete-product';
  var params = 'pid=' + pid;
  var ajax   = new Ajax.Updater('product-compare-block', url, {
                            method: 'post',
                            parameters: params,
                            onComplete: checkComparisonLink
                        });
}

function checkComparisonLink()
{
  var el = $('currentComparisonCount');
  if (el && el.innerHTML > 0){
    showComparisonLink();
  } else {
    hideComparisonLink();
  }
}

function showComparisonLink()
{
  $$('.product-comparison-tr').each(function(el){el.show();});
}

function hideComparisonLink()
{
  $$('.product-comparison-tr').each(function(el){el.hide();});
}

// from subcategories.tpl
function show_all_subcategories()
{
  var count = 0;

  $$('#subcategories-list li').each(function(el){
    count ++;
    if (count > max_subcategories_to_show)
    {
      el.className = '';
    }
  });

  $('min-subcategories-buttons').down('.top-10-left div').removeClassName('active');
  $('min-subcategories-buttons').down('.top-10 div').removeClassName('active');

  $('min-subcategories-buttons').down('.alle div').addClassName('active');
  $('min-subcategories-buttons').down('.alle-right div').addClassName('active');

  return false;
}
function hide_all_subcategories()
{
  var count = 0;

  $$('#subcategories-list li').each(function(el){
    count ++;

    if (count > max_subcategories_to_show)
    {
      el.className = 'hide';
    }
  });

  $('min-subcategories-buttons').down('.top-10-left div').addClassName('active');
  $('min-subcategories-buttons').down('.top-10 div').addClassName('active');

  $('min-subcategories-buttons').down('.alle div').removeClassName('active');
  $('min-subcategories-buttons').down('.alle-right div').removeClassName('active');

  return false;
}

// from switcher.tpl
function changeSwitcher(button_num, pan_id, button_element, is_last)
{
    var sw_table = button_element.up('.sj-block-table');
    var thead = sw_table.down('tr');
    var thead_center_td = thead.down('.center');

    var tbody = sw_table.down('tr', 2);
    var tbody_center_td = tbody.down('.center');

    setActiveButton(button_num, thead_center_td, is_last);
    setActiveHeader(pan_id, thead_center_td);
    setActiveSwitcherInner(pan_id, tbody_center_td);
}

function setActiveButton(button_num, center_td, is_last)
{
    var button_class = 'switcher-button-' + button_num;
    var switcher_buttons = center_td.down('#switcher-buttons');

    switcher_buttons.descendants().each(function(td){
        if (td.match('td'))
        {
            if (!td.hasClassName(button_class)) {
                td.down('DIV').removeClassName('active');
            } else {
                td.down('DIV').addClassName('active');
            }
            if (td.hasClassName('left-of-buttons'))
            {
              if (button_num == 0) {td.down('DIV').addClassName('active');}
              else {td.down('DIV').removeClassName('active');}
            }
            if (td.hasClassName('right-of-buttons'))
            {
              if (is_last) {td.down('DIV').addClassName('active');}
              else {td.down('DIV').removeClassName('active');}
            }
        }
    });
}

function setActiveHeader(pan_id, center_td)
{
    var current_header_class = 'switcher-header-' + pan_id;
    center_td.immediateDescendants().each(function (el){
        if (el.match('h2')) {
            if (el.hasClassName(current_header_class))
            {
                el.show();
            } else {
                el.hide();
            }
        }
    });
}

function setActiveSwitcherInner(pan_id, center_td)
{
    var current_block_class = 'switcher-inside-' + pan_id;
    center_td.immediateDescendants().each(function (el){
        if (el.match('div.inside-switcher-block')) {
            if (el.hasClassName(current_block_class))
            {
                el.show();
            } else {
                el.hide();
            }
        }
    });
}

// from product_comparison/view.tpl
function toggleDifferentParamsMode(button) {
  var flag = false;
  if (!$(button).up('DIV').hasClassName('active'))
  {
    flag = true;
    $(button).up('DIV').addClassName('active');
    $(button).up('TABLE.buttons-table').down('TD.left-of-buttons DIV').addClassName('active');
    $(button).up('TABLE.buttons-table').down('TD.right-of-buttons DIV').addClassName('active');
  } else {
    $(button).up('DIV').removeClassName('active');
    $(button).up('TABLE.buttons-table').down('TD.left-of-buttons DIV').removeClassName('active');
    $(button).up('TABLE.buttons-table').down('TD.right-of-buttons DIV').removeClassName('active');
  }

  equalParamsCached.each(function(node) {
    node[flag ? 'hide' : 'show']();
  });
}

function clearCompareList() {
  var url    = '/product-comparison/clear-compare-list';
  var ajax   = new Ajax.Updater('product-compare-block', url, {
    method: 'post',
    onComplete: function() {
      var inputs = document.getElementsByTagName('input');
      for (var i = 0; i < inputs.length; ++i) {
        if (!inputs[i].id.match(/product-/)) continue;
        inputs[i].checked = false;
      }
    }
  });
}

function deleteCompareProduct(pid) {
  var url    = '/product-comparison/delete-product';
  var params = 'pid=' + pid;
  var ajax   = new Ajax.Updater
    ('product-compare-block', url, {
      method: 'post',
      parameters: params,
      onComplete: function() {
        if (checkbox = $('product-' + pid))
          checkbox.checked = false;
      }
    });
}

function hideProductColumn(productNumber)
{
  var product_id = false;
  $$('table.parameters td.product-' + productNumber).each(function(td){
      $(td).remove();
      if (!product_id) product_id = $(td).readAttribute('id');
  });
  product_id = product_id.replace(/product-id-/, '');
  deleteCompareProduct(product_id);
  total_compare_products --;
  if (total_compare_products <= 0)
  {
      $('product_comparison_main_table').hide();
      $('no-products-to-compare').show();
  }
}

function addQueryParam(name, value, hr)
{
  if (!hr) hr = document.location.href;
  hr = hr.split('#')[0];
  
  var params = hr.split('?')[1];
  if (!params) return hr + '?' + (name + '=' + value);

  var re = new RegExp(name + '=[^\&]*', 'i');
  var match = params.match(re);
  hr = match ? hr.replace(match, name + '=' + value) : (hr + '&' + name + '=' + value);

  return hr;
}

Event.observe(window, 'load', function() {
      var sj = $('sj');
      if (!sj) return;

      var _1st_block = sj.down('.sj-block-table');
      if (typeof(_1st_block) != 'undefined')
      {
          var pos_of_1st_block = _1st_block.cumulativeOffset();
          var ads_block = $('ads-block');
          new Effect.Morph(ads_block, {
            style: 'top: ' + (pos_of_1st_block[1] - 20) + 'px;',
            duration: 0.8,
            afterFinish: morphLeftAds
          });
      }
});

function morphLeftAds()
{
    var _1st_block = $('sj').down('.sj-block-table');
    var pos_of_1st_block = _1st_block.cumulativeOffset();
    var ads_block = $('ads-block');
    var position_of_google_ads_block = ads_block.cumulativeOffset();
    var position_of_left_ads_block = position_of_google_ads_block[1] + pos_of_1st_block[1] - 20;
    var left_ads_block = $('left-ads');
    try {
        new Effect.Morph(left_ads_block, {
            style: 'top: ' + position_of_left_ads_block + 'px;',
            duration: 0.8
        });
    } catch (error) {
        console.log(error);
    }
}
function searchCurrentCategory(checkbox)
{
    var form = checkbox.form;
    var query_param = document.getElementById('query_param');

    if (checkbox.checked) {
        form.action = "";
        query_param.name = "query";
    } else {
        form.action = "/search/";
        query_param.name = "qry";
    }
}
function fixPNG(element) {
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
    {
      var src;

      if (element.tagName=='IMG')
      {
        if (/\.png$/.test(element.src))
        {
          src = element.src;
          element.src = "/images/blank.gif";
        }
      }
      else
      {
        src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);
        if (src)
        {
          src = src[1];
          element.runtimeStyle.backgroundImage="none";
        }
      }
      if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
    }
}

function createFloatMenu()
{
  var lid = LAYOUT_ID;
  var ltype = LAYOUT_TYPE;
  
  if (ltype != '')
  {
    var menu = new Element('div', { 'id' : 'actor-menu' });
    var link = new Element('a', { 'href' : '/admin/layouts/edit?id=' + ltype });
    link.update('Edit layout');
    menu.appendChild(link);

    if (lid != '') {
      var link = new Element('a', { 
        'href' : '/admin/layouts/edit?id=' + ltype + '/' + lid
      });
      link.update('Customize page');
      menu.appendChild(link);
    }

    $(document.body).appendChild(menu);
  }
}

function googlePixelCounter()
{
  var iframe = document.body.appendChild(document.createElement('iframe'));
  iframe.style.display = 'none';
  iframe.src='/files/google-pixel/google-pixel.html';
}