/* begin Page */
var artEventHelper = {
  'bind' : function (obj, evt, fn) {
    if (obj.addEventListener)
      obj.addEventListener(evt, fn, false);
    else if (obj.attachEvent)
      obj.attachEvent('on' + evt, fn);
    else
      obj['on' + evt] = fn;
  }
};

var artLoadEvent = (function() {
  var userAgent = navigator.userAgent.toLowerCase();
  var browser = {
    version: (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
    safari: /webkit/.test(userAgent),
    opera: /opera/.test(userAgent),
    msie: /msie/.test(userAgent) && !/opera/.test(userAgent),
    mozilla: /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)
  };

  var list = [];

  var done = false;
  var ready = function () {
    if (done) return;
    done = true;
    for (var i = 0; i < list.length; i++)
      list[i]();
  };
  
  if (document.addEventListener && !browser.opera)
    document.addEventListener('DOMContentLoaded', ready, false);
  
  if (browser.msie && window == top) {
    (function () {
      try {
        document.documentElement.doScroll('left');
      } catch (e) {
        setTimeout(arguments.callee, 10);
        return;
      }
      ready();
    })();
  }
  
  if (browser.opera) {
    document.addEventListener('DOMContentLoaded', function () {
      for (var i = 0; i < document.styleSheets.length; i++) {
        if (document.styleSheets[i].disabled) {
          setTimeout(arguments.callee, 10);
          return;
        }
      }
      ready();
    }, false);
  }
  
  if (browser.safari) {
    var numStyles;
    (function(){
      if (document.readyState != 'loaded' && document.readyState != 'complete') {
        setTimeout(arguments.callee, 10);
        return;
      }
      if ('undefined' == typeof numStyles) {
        numStyles = document.getElementsByTagName('style').length;
        var links = document.getElementsByTagName('link');
        for (var i = 0; i < links.length; i++) {
          numStyles += (links[i].getAttribute('rel') == 'stylesheet') ? 1 : 0;
        }
        if (document.styleSheets.length != numStyles) {
          setTimeout(arguments.callee, 0);
          return;
        }
      }
      ready();
    })();
  }

  artEventHelper.bind(window, 'load', ready);

  return ({
    add: function(f) {
      list.push(f);
    }
  })
})();

(function () {
  // fix ie blinking
  var m = document.uniqueID && document.compatMode && !window.XMLHttpRequest && document.execCommand;
  try{ if(!!m) { m("BackgroundImageCache", false, true); } }
  catch(oh){};
})();

function xGetElementsByClassName(clsName, parentEle, tagName) {
  var elements = null;
  var found = [];
  var slash = String.fromCharCode(92);
  var re = new RegExp(slash + "b" + clsName + slash + "b");
  if (!parentEle) parentEle = document;
  if (!tagName) tagName = '*';
  elements = parentEle.getElementsByTagName(tagName);
  if (elements) {
    for (var i = 0; i < elements.length; ++i) {
      if (elements[i].className.search(re) != -1) {
        found[found.length] = elements[i];
      }
    }
  }
  return found;
}

var styleUrlCached = null;
function GetStyleUrl() {
  if (null == styleUrlCached) {
    var ns;
    styleUrlCached = '';
    ns = document.getElementsByTagName('link');
    for (var i = 0; i < ns.length; i++) {
      var l = ns[i];
      if (l.href && /style\.css(\?.*)?$/.test(l.href)){
        return styleUrlCached = l.href.replace(/style\.css(\?.*)?$/,'');
      }
    }
    
    ns = document.getElementsByTagName('style');
    for (var i = 0; i < ns.length; i++) {
      var matches = new RegExp('import\\s+"([^"]+\\/)style\\.css"').exec(ns[i].innerHTML);
      if (null != matches && matches.length > 0)
        return styleUrlCached = matches[1];
    }
  }
  return styleUrlCached;
}


function artButtonSetupJsHover(btn)
{
  artEventHelper.bind(btn, 'mouseover', function() {
    var spans = btn.getElementsByTagName("span");
    if (spans.length > 0)
      spans[0].className += " hover";
  });
  artEventHelper.bind(btn, 'mouseout', function() {
    var spans = btn.getElementsByTagName("span");
    if (spans.length > 0)
      spans[0].className = spans[0].className.replace(/hover/, "");
  });
}

function artButtonsSetupJsHover() {
  var elements = xGetElementsByClassName("btn", document, "span");
  for (var i = 0; i < elements.length; i++) {
    if (!elements[i].tagName) continue;
    artButtonSetupJsHover(elements[i].parentNode);
  }
}
artLoadEvent.add(artButtonsSetupJsHover);

/* end Page */

/* begin Menu */
function Insert_Separators()
{
  var menus = xGetElementsByClassName("artmenu", document);
  for (var i = 0; i < menus.length; i++) {
    var menu = menus[i];
    var childs = menu.childNodes;
    var listItems = [];
    for (var j = 0; j < childs.length; j++){
      var el = childs[j];
      if (String(el.tagName).toLowerCase() == "li")listItems.push(el);
    }
    for (var j = 0; j < listItems.length - 1; j++){
      var span = document.createElement('span');
      span.className = 'separator';
      var li = document.createElement('li');
      li.appendChild(span);
      listItems[j].parentNode.insertBefore(li, listItems[j].nextSibling);
    }
  }
}
artLoadEvent.add(Insert_Separators);

function Menu_IE6Setup() {
  var isIE6 = navigator.userAgent.toLowerCase().indexOf("msie") != -1 
    && navigator.userAgent.toLowerCase().indexOf("msie 7") == -1;
  if (!isIE6) return;
  var aTmp2, i, j, oLI, aUL, aA;
  var aTmp = xGetElementsByClassName("artmenu", document, "ul");
  for (i=0;i<aTmp.length;i++) {
    aTmp2 = aTmp[i].getElementsByTagName("li");
    for (j=0;j<aTmp2.length;j++) {
      oLI = aTmp2[j];
      aUL = oLI.getElementsByTagName("ul");
      if (aUL && aUL.length) {
        oLI.UL = aUL[0];
        aA = oLI.getElementsByTagName("a");
        if (aA && aA.length)
          oLI.A = aA[0];
        oLI.onmouseenter = function() {
          this.className += " artmenuhover";
          this.UL.className += " artmenuhoverUL";
          if (this.A) this.A.className += " artmenuhoverA";
        };
        oLI.onmouseleave = function() {
          this.className = this.className.replace(/menuhover/,"");
          this.UL.className = this.UL.className.replace(/menuhoverUL/,"");
          if (this.A) this.A.className = this.A.className.replace(/menuhoverA/,"");
        };
      }
    }
  }
}
artLoadEvent.add(Menu_IE6Setup);
/* end Menu */

var debug = ['3'];

function in_array(needle, haystack) {
    var length = haystack.length;
    for(var i = 0; i < length; i++) {
        if(haystack[i] == needle) return true;
    }
    return false;
}

function getHeight(e)
{
    var oh = e.attr('offsetHeight');
    var h = e.attr('height');
    var ch = e.attr('clientHeight');
    var ih = e.attr('innerHeight');
    var nh = e.attr('naturalHeight');
    return nh | oh | h | ch | ih;
}

function getWidth(e)
{
    var ow = e.attr('offsetWidth');
    var w = e.attr('width');
    var cw = e.attr('clientWidth');
    var iw = e.attr('innerWidth');
    var nw = e.attr('naturalWidth');
    return nw | ow | w | cw | iw;
}

var ii = 0;

function getTotalWidth()
{
    var b = $('#page_wrapper_1 #page_wrapper_2');
    var cw = b.attr('clientWidth');
    var ow = b.attr('offsetWidth');
    var iw = b.attr('innerWidth');
    var width = cw | ow | iw;
    return width - 432;
}

function rr()
{    
    var pl = $('.productsList');
    if(!pl.is('.ignore'))
    {
        var pi = $('.productItem');    
        pi.css('visibility', 'hidden');
        var item_count = pi.size();
        var total_width = getTotalWidth();
        if(total_width < 540)total_width = 540;
        var line_width = pl.attr('offsetWidth');
        if(line_width < 540)line_width = 540;
        var count = Math.floor(total_width / 125);
        var rows = Math.floor(item_count / count);
        if(count > 6)count = 6;
        if(count < 4)count = 4;
        var current_width = 0;
        var current_count = 0;
        var items_rest = item_count;
        var left_padding = 0;
        $.each(pi, function(key, item){
            item = $(item);
            var alone = false;
            if(!current_width)
            {
                current_width = line_width;
                current_count = Math.min(count, items_rest);
                if(current_count == 1)
                {
                    alone = true;
                }
                left_padding = 0;
            }
            var item_width = Math.round(current_width/current_count);
            var real_width = item_width - left_padding;
            if(real_width)
            {
                item.css('width', real_width);
                if(alone)
                {
                    item.attr('align', 'center');
                }
                else
                {
                    item.css('padding-left', left_padding);
                }
                var last_row = items_rest <= item_count - rows * count;
                var count_for_padding = !last_row ? count : (item_count % count - 1);
                left_padding += Math.round((item_width - 125) / count_for_padding);
                current_width -= item_width;
                current_count--;
                items_rest--;
            }
        });    
        pi.css('visibility', 'visible');
    }
}


$(document).ready(rr);
$(window).resize(rr);
setTimeout(rr, 1000);

function checkReview(number)
{
    jQuery('#reviewsContainer input[type="checkbox"]').each(function(index)
    {
        if(number!=index)
        {
            jQuery(this).attr('checked',false);
            jQuery(this).parent().removeClass('ez-checked');
        }
    });
}

Utility=
{
     toInt: function(number)
     {
         var result=parseInt(number);
        return isNaN(result) ? 0 : result;
     }
} 

$('.reviews_info .list .text').mouseenter(function(){
    $(this).css('color', '#666666');
});

$('.reviews_info .list .text').mouseleave(function(){
    $(this).css('color', '#003366');
});

$(document).ready(function(){
    var inputs = $('input[type=text][default],input[type=password][default]');
    $.each(inputs, function(key,input){
        input = $(input);
        var d = input.attr('default');
        var type = input.attr('type');
        if(type == 'text')
        {
            input.attr('value', d);
        }
        if(type == 'password')
        {
            input.attr('value', d);
        }
    });
    inputs.click(function(){
        $(this).attr('value', '');
    });
    inputs.focusout(function(){
        var value = $(this).attr('value');
        if(value == '')
        {
            var d = $(this).attr('default');
            $(this).attr('value', d);
        }
    });
});

$(document).ready(function(){
    $('img').click(function(){
        $(this).blur();
    });
});

function check_review(t, href, href_uncheck)
{
    if(!$(t).parent().hasClass('ez-checked'))
    {
        var table = $(t).closest('table');
        table.find('.ez-checked').removeClass('ez-checked');
        table.find('input[type=checkbox]').attr('checked','');
        $(t).attr('checked','checked');
        $(t).parent().addClass('ez-checked');
        document.location = href;
    } 
    else 
    {
        document.location = href_uncheck;
    }   
}

$(document).ready(function(){
    var search_buttons = $('input.button[alt=Suche]');
    search_buttons.click(function(){
        var search_input = $(this).parent().find('input[type=text]');
        var flag = search_input.attr('value').toUpperCase() != 'SUCHE';
        if(!flag)
        {
            alert('Eingabe bitte etwas!');
        }
        return flag;
    });
});

$(document).ready(function(){
    var menu_items = $('.cat-item');
    $.each(menu_items, function(key, menu_item){
        menu_item = $(menu_item);
        menu_item.mousedown(function(event){
            if(event.which == 1)
            {
                var link = $(this).find('a');
                var prev = $('.current-cat');
                prev.removeClass('current-cat');
                menu_item.addClass('current-cat');
                var href = link.attr('href');
                document.location = href;
            }
        });
    });
    $('.current-cat').click(function(event){
        event.stopPropagation();
    });
});
