// (c)2010 Jakub Stilec

﻿(function($){var methods={init:function(options){var largeImg=false,caption;return this.each(function(){var original=$(this);var temporary=original.clone();temporary.css('display','none');temporary.insertAfter(original);original.isZoomed=false;original.isZooming=true;original.mouseIn=false;original.isLoaded=false;original.customWidth=original.width();original.customHeight=original.height();original.customAlt=original.attr('alt');var newImg=new Image();newImg.src=original.attr('src');$(newImg).load(function(){original.originalWidth=newImg.width;original.originalHeight=newImg.height;original.isLoaded=true;});if(newImg.complete){original.isLoaded=true;original.originalWidth=newImg.width;original.originalHeight=newImg.height;}
original.isZooming=false;original.mouseleave(function(e){if(!(original.isZooming||original.isZoomed)){original.mouseIn=false;}});original.mouseenter(function(e){if(original.isZoomed||original.isZooming||original.mouseIn||!original.isLoaded){return;}
original.mouseIn=true;original.isZooming=true;var viewport=$.fn.hoverZoom('getViewport');var w=original.originalWidth+'px';var h=original.originalHeight+'px';var t=Math.round(viewport[3]+(viewport[1]-original.originalHeight)/2)+'px';var l=Math.round(viewport[2]+(viewport[0]-original.originalWidth)/2)+'px';original.customTop=$(this).position().top;original.customLeft=$(this).position().left;var closeLabel='klikněte pro zavření náhledu';$(this).attr('title',closeLabel+' - '+original.customAlt);$(this).attr('alt',$(this).attr('title'));$(this).css({'z-index':'100'});$(this).css({'position':'absolute'});$(this).css({'cursor':'pointer'});$(this).css({'left':original.customLeft+'px'});$(this).css({'top':original.customTop+'px'});temporary.css('display','');$('body').append('<div id="jquery-overlay"></div>');$('#jquery-overlay').css({backgroundColor:'#000000',opacity:0.7,width:$(document).width(),height:$(document).height(),cursor:'pointer'}).fadeIn();$('#jquery-overlay').attr('title',closeLabel);$('#jquery-overlay').click(function(e){original.trigger('click');});$(document).keyup(function(e){if(e.keyCode==27){original.trigger('click');}});$(this).animate({width:w,height:h,top:t,left:l},function(){original.isZoomed=true;original.isZooming=false;});})
original.click(function(e){if(!original.isZoomed||original.isZooming){return;}
original.isZooming=true;var w=original.customWidth+'px';var h=original.customHeight+'px';var l=original.customLeft+'px';var t=original.customTop+'px';$(this).css({'cursor':''});$(this).attr('title',original.customAlt);$(this).attr('alt',$(this).attr('title'));$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$(this).animate({width:w,height:h,top:t,left:l},function(){temporary.css('display','none');$(this).css({'z-index':'0'});$(this).css({'position':''});original.isZoomed=false;original.isZooming=false;if(globalMouseX>=$(this).offset().left&&globalMouseY>=$(this).offset().top&&globalMouseX<=($(this).offset().left+$(this).width())&&globalMouseY<=($(this).offset().top+$(this).height())){original.mouseIn=true;}
else{original.mouseIn=false;}});})});},getViewport:function(){return[$(window).width(),$(window).height(),$(document).scrollLeft(),$(document).scrollTop()];}};$.fn.hoverZoom=function(method){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));}else if(typeof method==='object'||!method){return methods.init.apply(this,arguments);}else{$.error('Method '+method+' does not exist on jQuery.zoomer');}}})(jQuery);
