/*
* zoomBox - Bartek Bazyluk, 2008
*/

$(document).ready(function() {
 
 var zoomboxActive = false;
 var zoomboxThumbW = 0;
 var zoomboxThumbH = 0;
 var zoomboxOriginalW = 0;
 var zoomboxOriginalH = 0;
 var zoomboxIndex = 0;
 
 function showZoombox(thumb)
 {
  
  var id = thumb.attr('id');
  var src = thumb.attr('href');
  var title = thumb.find('img').attr('alt');
  var description = thumb.next('.opis');
  
  if (zoomboxActive) {
   hideZoombox();
   return;
  }
  zoomboxActive = true;
  
  thumb.addClass('zoombox');
  thumb.append($('<div class="ladowanie"></div>'));
  thumb.find('img').css('opacity', '0.3');
  
  $('body').append($(''
   + '<div id="zoombox" style="visibility: hidden;">'
   + '<div class="e"></div>'
   + '<div class="n"></div>'
   + '<div class="s"></div>'
   + '<div class="w"></div>'
   + '<div class="ne"></div>'
   + '<div class="nw"></div>'
   + '<div class="se"></div>'
   + '<div class="sw"></div>'
   + '<img src="' + src + '" alt="Powiększenie: ' + title + '"/>'
   + '<div class="opis">'
   + ' <h2>' + title + '</h2>'
   + (description.length ? description.html() : '')
   + '</div>'
   + '</div>'
  +''));
  
  $('#zoombox img').addClass(id).load(function() {
   var o = thumb.offset();
   var offsetL = o.left - 10;
   var offsetT = o.top;
   zoomboxOriginalW = $('#zoombox img').width();
   zoomboxOriginalH = $('#zoombox img').height();
   zoomboxThumbW = thumb.find('img').width();
   zoomboxThumbH = thumb.find('img').height();
   var tOffsetT = Math.max(0, ($.browser.msie ? document.documentElement.scrollTop + (document.documentElement.offsetHeight - zoomboxOriginalH) / 2 : window.pageYOffset + (window.innerHeight - zoomboxOriginalH) / 2));
   $('#zoombox img').css('width', '100%').css('height', '100%');
   $('#zoombox').css('left', offsetL + 'px').css('top', offsetT + 'px').css('width', zoomboxThumbW + 'px').css('height', zoomboxThumbH + 'px').css('opacity', '0.0').css('visibility', 'visible').animate({
    width: zoomboxOriginalW + 'px',
    height: zoomboxOriginalH + 'px',
    /*top: ($('body').height() / 2 - zoomboxOriginalH / 2) + 'px',*/
    top: tOffsetT + 'px',
    left: ($('body').width() / 2 - zoomboxOriginalW / 2) + 'px',
    opacity: 2.0
   }, 400, 'linear', function() { 
    $('#zoombox img').css('width', zoomboxOriginalW + 'px').css('height', zoomboxOriginalH + 'px');
    $('#zoombox').click(hideZoombox).css('height', 'auto').find('.opis').slideDown();
   });
   thumb.find('.ladowanie').remove();
  });
  return false;
  
 }
 
 function hideZoombox()
 {
  $('#zoombox img').css('width', '100%').css('height', '100%');
  var o = $('#' + $('#zoombox img').attr('class')).offset();
  var offsetL = o.left;
  var offsetT = o.top;
  $('#zoombox').css('height', zoomboxOriginalH + 'px').animate({
    width: zoomboxThumbW + 'px',
    height: zoomboxThumbH + 'px',
    left: offsetL + 'px',
    top: offsetT + 'px',
    opacity: 0.5
   }, 150, 'linear', function() {
    $('#' + $('#zoombox img').attr('class') + ' img').css('opacity', '1.0');
    $('#zoombox').remove();
    zoomboxActive = false;
   });
 }
 
 $('a.zoombox, .galeria a, .galeria-zdjec a').addClass('zoombox').each(function() {
  $(this).attr('id', 'zb' + (zoomboxIndex++)).click(function() {
   showZoombox($(this));
   return false;
  });
 });
 
});
