var lightbox_settings = {
  imageLoading:  'images/layout/lightbox/lightbox-ico-loading.gif',
  imageBtnPrev:  'images/layout/lightbox/lightbox-btn-prev.gif',
  imageBtnNext:  'images/layout/lightbox/lightbox-btn-next.gif',
  imageBtnClose: 'images/layout/lightbox/lightbox-btn-close.gif',
  imageBlank:    'images/layout/lightbox/lightbox-blank.gif'
};

var fancybox_settings = {
  hideOnContentClick: true,
  overlayShow: true,
  title : ''
}


/**
 * Beállítja a kezdőoldalon a hírek pozícióját
 */
function setPositionNewsTitle()
{
  $("#news").css(
  {
    display: "block",
    top: $("#activepicture").height() - $("#news").height() + "px"
    //left: (($("body").width() - $(".menus").width()) / 2) -10 + "px"
  });
}

/**
 * Tartalmat scrollozza vízszintesen
 */
function scrollContent(position, type)
{
  var maxScrollContent = ($("body").width() - $(".scrollContent").width() - parseInt($('.contenttext').css('marginLeft')) - parseInt($('.contenttext').css('marginRight')));
  
  if (type == "percent")
  {
    position = Math.max(Math.min(position, 1), 0);
    var leftPos = maxScrollContent * position;
  }
  else
  {
    var currentPos = parseInt($(".scrollContent").css("left"));
    var leftPos = currentPos + position;
    leftPos = Math.min(0, leftPos);
    leftPos = Math.max(leftPos, $("body").width() - $(".scrollContent").width() - parseInt($('.contenttext').css('marginLeft')) - parseInt($('.contenttext').css('marginRight')));
  }
  
  var scroll = $(".scrollContainer .scrollMiddle");
  if (type != "percent")
  {
    $(".scrollContent").stop();
    $(".scrollContent").animate({left: leftPos + "px"}, 400);
    
    var scrollPositionMax = scroll.width() - $(".scroll", scroll).width()-5;
    var newScrollPosition = (leftPos / (maxScrollContent + 20)) * scrollPositionMax;
    $(".scroll", scroll).animate({left: newScrollPosition + "px"}, 400);
    $.cookie('scrollBarPos', newScrollPosition, {expires: 1, path: '/'});
  }
  else
  {
    $(".scrollContent").stop();
    $(".scrollContent").animate({left: leftPos + "px"}, 800);
    $.cookie('scrollBarPos', parseInt($(".scroll", scroll).css('left')), {expires: 1, path: '/'});
  }
  $.cookie('scrollPos', leftPos, {expires: 1, path: '/'});
}


/**
 * Termék lista scrollozása
 */
function initScroll()
{
  var scroll = $(".scrollContainer .scrollMiddle");
  var scrollPercent = $("body").width() / $(".scrollContent").width();
  if (!initScroll.scrollContentWidth)
    initScroll.scrollContentWidth = $(".scrollContent").width();
  
  if (scrollPercent < 1)
  {
    $(".scrollContent").css('width', 'auto');
    $(".scroll", scroll).css({width: Math.max(40, scrollPercent * scroll.width()) + "px"});
    
    var maxScrollContent = ($("body").width() - initScroll.scrollContentWidth - parseInt($('.contenttext').css('marginLeft')) - parseInt($('.contenttext').css('marginRight')));

    if (parseInt($(".scrollContent").css('left')) < maxScrollContent)
      $(".scrollContent").css('left', maxScrollContent);
    
    var parentWidth = scroll.width();
    
    var scrollPositionMax = parentWidth - $(".scroll", scroll).width()-2;
    

    // A termék lista scroll pozíciója százalékosan (0 és 1 közti szám)
    var scrollContentPositionPercent = (parseInt($(".scrollContent").css('left')) * -1) / ($(".scrollContent").width() - $("body").width());

    var scPos = ($(".scrollContainer .scrollMiddle").width() - $(".scroll", scroll).width()) * scrollContentPositionPercent;
    $(".scroll", scroll).css({left: Math.min(scrollPositionMax, scPos)});

    /*
    if (parseInt($(".scroll", scroll).css('left')) > scrollPositionMax)
      $(".scroll", scroll).css({left: scrollPositionMax});
    */
    var moveFunction = function (e)
    {
      var scrollPosition = e.clientX - scroll.offset().left - startOffset;
      var scrollPositionMax = parentWidth - $(".scroll", scroll).width()-2;
      scrollPosition = Math.max(0, scrollPosition);
      scrollPosition = Math.min(scrollPosition, scrollPositionMax);
      
      $(".scroll", scroll).css({left: scrollPosition + "px"});
      scrollContent(scrollPosition / scrollPositionMax, "percent");
      if (document.selection) document.selection.empty();
      if (typeof document.body.style.MozUserSelect!="undefined")
        document.body.style.MozUserSelect="none";
    }
    
    var startOffset;
    
    $(".scroll", scroll).mousedown(function (e)
    {
      startOffset = e.clientX - $(".scroll", scroll).offset().left;
      $(document).bind("mousemove", moveFunction);
    });
    

    $(document).mouseup(function ()
    {
      if (typeof document.body.style.MozUserSelect!="undefined")
        document.body.style.MozUserSelect = "";
        
      $(document).unbind("mousemove");
    });
    
    $(".scrollContainer .scrollBtnLeft").click(function ()
    {
      scrollContent(300, "pixel");
      return false;
    });
    
    $(".scrollContainer .scrollBtnRight").click(function ()
    {
      scrollContent(-300, "pixel");
      return false;
    });
    
  }
  else
  {
    $(".scrollContainer").hide();
    
    // középre igazítás FF3 és Opera miatt
    $(".scrollContent").css('width', '100%');
  }
}

/**
 * Tartalmat scrollozza vízszintesen
 */
function verticalScrollContent(position, type)
{
  var maxScrollContent = ($(".cartScrollContainer").height() - $(".cartScrollContent").height());

  if (type == "percent")
  {
    position = Math.max(Math.min(position, 1), 0);
    var topPos = maxScrollContent * position;
  }
  else
  {
    var currentPos = parseInt($(".cartScrollContent").css("top"));
    var topPos = currentPos + position;
    topPos = Math.min(0, topPos);
    topPos = Math.max(topPos, $(".cartScrollContainer").height() - $(".cartScrollContent").height());
  }

  if (type != "percent")
  {
    $(".cartScrollContent").stop();
    $(".cartScrollContent").animate({top: topPos + "px"}, 200);

    var scroll = $(".verticalScrollContainer .scrollMiddle");
    var scrollPositionMax = scroll.height() - 3 - $(".scroll", scroll).height();
    var newScrollPosition = (topPos / maxScrollContent) * scrollPositionMax;
    $(".scroll", scroll).stop();
    $(".scroll", scroll).animate({top: newScrollPosition + "px"}, 200);
  }
  else $(".cartScrollContent").css({top: topPos + "px"});
}

/**
 * Kosár függőleges scrollozása
 */
function initVerticalScroll()
{
  var scroll = $(".verticalScrollContainer .scrollMiddle");
  var scrollPercent = $(".cartScrollContainer").height() / $(".cartScrollContent").height();

  if (scrollPercent < 1)
  {
    $(".scroll", scroll).css({height: Math.max(40, scrollPercent * scroll.height()) + "px"});

    var parentHeight = scroll.height();

    var moveFunction = function (e)
    {
      var scrollPosition = e.clientY - scroll.offset().top - startOffset;
      var scrollPositionMax = parentHeight - $(".scroll", scroll).height() - 3;

      scrollPosition = Math.max(0, scrollPosition);
      scrollPosition = Math.min(scrollPosition, scrollPositionMax);

      $(".scroll", scroll).css({top: scrollPosition + "px"});
      verticalScrollContent(scrollPosition / scrollPositionMax, "percent");
      if (document.selection) document.selection.empty();
      if (typeof document.body.style.MozUserSelect!="undefined")
        document.body.style.MozUserSelect="none";
    }

    var startOffset;

    $(".scroll", scroll).mousedown(function (e)
    {
      startOffset = e.clientY - $(".scroll", scroll).offset().top + 3;
      $(document).bind("mousemove", moveFunction);
    });


    $(document).mouseup(function ()
    {
      if (typeof document.body.style.MozUserSelect!="undefined")
        document.body.style.MozUserSelect = "";

      $(document).unbind("mousemove");
    });

    $(".verticalScrollContainer .scrollBtnTop").click(function()
    {
      verticalScrollContent(25, "pixel");
      return false;
    });

    $(".verticalScrollContainer .scrollBtnBottom").click(function()
    {
      verticalScrollContent(-25, "pixel");
      return false;
    });
    
    $(".cartScrollContainer").mousewheel(function(event, direction)
    {
      verticalScrollContent((direction<0 ? -1 : 1) * 50, "pixel");
      return false;
    }, null, true);

  }
  else $(".verticalScrollContainer").hide();
}

/**
 * Kirakja a hírek szöveges tartalmát
 */
 
$(function()
{
  $(".newsItems").fancybox({width: 300});
});



function showSubMenu()
{
  var $menu = $('.menuLinkSubLevel');
  if (!$menu.is(':visible'))
  {
    $('.menuLinks .dropDownMenu').addClass('rowUp');
    $menu.fadeIn();
  }
  else
  {
    $('.menuLinks .dropDownMenu').removeClass('rowUp');
    $menu.fadeOut();
  }
  
  return false;
}

/**
 * onloadkor lefuttat
 */
$(function()
{
  if ($('.scrollContainer').length > 0)
  {
    initScroll();
    $(window).bind('resize', initScroll);
  }

  if ($('.verticalScrollContainer').length > 0) initVerticalScroll();
  $('#activepicture').ready(function ()
  {
    setTimeout(setPositionNewsTitle, 100);
  });

  var lastHoverTr;
  $('.cartProductsTable.hoverTr tr').each(function()
  {
    $(this).hover(
      function()
      {
        $('.cartProductsTable tr.hover').removeClass('hover');
        $(this).addClass('hover');
      },
      function()
      {
        $(this).removeClass('hover');
      });
  });

  //$('.piccontainer a[rel*=lightbox]').lightBox(lightbox_settings);
  $('.piccontainer a[rel*=lightbox]').fancybox(fancybox_settings);
});

/**
 * Termék másik színét választotta ki
 */
function productColorSelect(id)
{
  if (!productColorSelect.cacheImages) productColorSelect.cacheImages = {};
  if (!productColorSelect.cacheAjax) productColorSelect.cacheAjax = {};
  //if (currentProductColor == id) return;
  
    
  var ajaxCallback = function(data)
  {
    productColorSelect.cacheAjax[id] = data;
    try
    {
      data = eval('(' + data + ')');
    }
    catch (e)
    {
      return false;
    }

    var timer = setTimeout(function ()
    {
      $('#mainpic img').get(0).src = 'images/layout/preloader.gif';
    }, 100);


    var imgLoadedCallback = function()
    {
      if (timer) clearTimeout(timer);
      if (timer2) clearTimeout(timer2);
      $('#mainpic').fadeOut(function ()
      {
        if (data.picLink)
          $('#mainpic')[0].href = $('#mainpic')[0].href.replace(/\/[^\/]+$/, '/' + data.pic.replace(/^.+\/([^\/]+)$/, '$1'));
        $('#mainpic img')[0].src = data.pic;

        $('#mainpic').fadeIn();
        $('.thumbnails img').each(function()
        {
          if (this.id && this.id == 'thumbpic_' + id)
            $(this).css('display', 'none');
          else
            $(this).css('display', 'inline');
        });
        $('.productpage .productDatas').html(data.html);
        
        var after;
        $('.piccontainer a[rel*=lightbox]').each(function(){
          if (this.id == 'mainpic') after = this;
          else $(this).remove();
        });
        
        if (data.pictures)
        {
          for (var i in data.pictures)
          {
            var cln = $(after).clone();
            cln[0].href = cln[0].href.replace(/\/[^\/]+$/, '/' + data.pictures[i].src);
            $(cln).css('display', 'none');
            cln[0].id = '';
            $(cln).insertAfter(after);
            after = cln;
          }
        }

        if (data.picLink)
        {
          //$('.piccontainer a[rel*=lightbox]').lightBox(lightbox_settings);
          $('.piccontainer a[rel*=lightbox]').fancybox(fancybox_settings);
          $('#mainpic')[0].setAttribute('onclick', '');
          $('#mainpic')[0].onclick = '';
        }
        else
        {
          $('#mainpic').unbind('click');
          $('#mainpic')[0].setAttribute('onclick', 'return false;');
          $('#mainpic')[0].onclick = function(){return false;};
        }
        var a = $('a#go2cart')[0];
        $('#tooltip').remove();
        startTooltip(a);
      });
    };

    if (!productColorSelect.cacheImages[data.pic])
    {
      var timer2 = setTimeout(imgLoadedCallback, 1000);
      $.get(data.pic, function()
      {
        if (timer2)
        {
          clearTimeout(timer2);
          imgLoadedCallback();
        }
      });
      productColorSelect.cacheImages[data.pic] = 1;
    }
    else
      imgLoadedCallback();
  };
  
  if (!productColorSelect.cacheAjax[id])
  {
    if (window.location.href.match(/.+\?/))
      var reqLink = (window.location.href.match(/([\?&])ajax=[^&]+/) ? window.location.href.replace(/([\?&])ajax=[^&]+/, '$1ajax=' + id) : window.location.href + '&ajax=' + id);
    else
      var reqLink = window.location.href + '?ajax=' + id;
      
    $.get(reqLink, ajaxCallback);
  }
  else
  {
    ajaxCallback(productColorSelect.cacheAjax[id]);
  }
}

function selSortim(idpref, sortim)
{
  $('.productSortiment a').removeClass('sel');
  $('.productSortiment a#sortim_' + idpref).addClass('sel');
  var a = $('a#go2cart')[0];
  a.href = a.href.replace(/kosarba\/(m?\d+)\/.*$/, 'kosarba/$1/' + sortim);
  a.title = a.title.replace(/<br ?\/?>/g, '|');
  a.title = a.title.replace(/^(.*)\|[^\|]+$/, '$1|' + sortim);
  a.title = a.title.replace(/\|/g, '<br>');
  a.t.innerHTML = a.title.replace(/\|/g,"<br />");
  return false;
}

function brandFlowMenuRepos()
{
  var l = $('.menus').position().left;
  var t = $('.cart').next('div').position().top;
  $('#brandFlowMenu').css({top: t + 1, left: l});
}

function openBrandMenu()
{
  if (openBrandMenu.fading || openLoginMenu.fading) return;
  openBrandMenu.fading = true;
  
  brandFlowMenuRepos();
  if (typeof openBrandMenu.binded == 'undefined')
  {
    $(window).bind('resize', brandFlowMenuRepos);
    openBrandMenu.binded = 1;
  }
  
  var currentVisible = $('#brandFlowMenu').css('display') == 'block';
  $('#loginBox').fadeOut('slow');
  $('#brandFlowMenu').stop();
  if (currentVisible) $('#brandFlowMenu').fadeOut('slow', function(){openBrandMenu.fading = false;});
  else $('#brandFlowMenu').fadeIn('slow', function(){openBrandMenu.fading = false;});
}

function openLoginMenu()
{
  if (openBrandMenu.fading || openLoginMenu.fading) return;
  openLoginMenu.fading = true;
  var currentVisible = $('#loginBox').css('display') == 'block';
  $('#brandFlowMenu').fadeOut('slow');
  $('#loginBox').stop();
  if (currentVisible) $('#loginBox').fadeOut('slow', function(){openLoginMenu.fading = false;});
  else $('#loginBox').fadeIn('slow', function(){openLoginMenu.fading = false;});
}

$(function()
{
  /**
   * IE enterre is submitoljon
   */
  if ($.browser.msie && parseInt($.browser.version.substr(0,1)) < 8)
  {
    $('input[name=login_username], ' +
      'input[name=login_password], ' +
      'form#cart_login_form input[name=username], ' +
      'form#cart_login_form input[name=password], ' +
      'form#reg_form input').bind('keyup', function(e)
    {
      if (e.keyCode != 13) return;
      this.form.submit();
    });
  }
  
  /**
   * Képek középen
   */
  if (!$.browser.msie || $.browser.version != 6)
  {
    var onloadFunct = function(e)
    {
      var img;
      if (this.tagName != undefined)
      {
        e = e || event;
        img = e.srcElement || e.target;
      }
      else img = e;

      var anchor = img.parentNode;

      var firstPic = false;
      $('img', anchor).each(function()
      {
        if (!firstPic) { firstPic = this; return; }
        var left = parseInt(Math.round(($(anchor).width()-$(firstPic).width()) / 2));
        $(this).css('left', left + 'px');
      });
    }
      
      
    $('table.products td.pic a').each(function()
    {
      var firstPic = false;
      $('img', $(this)).each(function()
      {
        if (!firstPic) { firstPic = this; return; }
        $(this).bind('load', onloadFunct);
        onloadFunct(firstPic);
      });
    });
  }
});

