/**
* jQuery fancyzoom plugin.
* This is an adaptation of the fancyzoom effect as a jQuery plugin
*
* Author: Mathieu Vilaplana <mvilaplana@df-e.com>
* Date: March 2008
* rev 1.0
* rev: 1.1
* Add title if alt in the img
*/
(function($){var r='ressources/';var s=$('<div>');var t=$('<img>').css({position:'absolute',top:0,left:0,cursor:'pointer',zIndex:102});$.fn.fancyzoom=function(p){var q=$('<div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,cursor:"wait"});function openZoomBox(a,o){if(o.showoverlay){q.appendTo('body').click(function(){closeZoomBox(o)})}pos=$('img',a).offset();o=$.extend(o,{dimOri:{width:$('img',a).outerWidth(),height:$('img',a).outerHeight(),left:pos.left,top:pos.top,'opacity':0}});var b=$('img',s);s.css({'opacity':0,'text-align':'center','border':'0px solid red'}).appendTo('body');var c=s.outerWidth();var d=s.outerHeight();dimBoxTarget=$.extend({},{width:c,height:d,'opacity':1},__posCenter((c+15),(d+30)));t.css({left:(dimBoxTarget.left+dimBoxTarget.width-22-(dimBoxTarget.width-b.width())/2),top:dimBoxTarget.top});var e=function(){if($.fn.shadow&&!$.browser.msie){$('img:first',s).shadow(o.shadowOpts)}if(o.Speed>0&&!$.browser.msie){t.fadeIn('slow');$('div',s).fadeIn('slow')}else{t.show();$('div',s).show()}};$('div',s).hide();if(o.Speed>0){s.css(o.dimOri).animate(dimBoxTarget,o.Speed,e)}else{s.css(dimBoxTarget);e()}}function closeZoomBox(o){t.remove();if(o.Speed>0){s.animate(o.dimOri,o.Speed,function(){$(this).empty().remove()});if(o.showoverlay){q.animate({'opacity':0},o.Speed,function(){$(this).empty().remove()})}}else{s.empty().remove();if(o.showoverlay){q.empty().remove()}}}return this.each(function(){var m=$(this);var n=$.extend($.fn.fancyzoom.defaultsOptions,p||{},{dimOri:{},oImgZoomBoxProp:{position:'absolute',left:0,top:0}});q.css({opacity:n.overlay,background:n.overlayColor});if(!/\.jpg|\.png|.gif/i.test(m.attr('href'))||$('img',m).size()===0){return}m.click(function(){if(u&&u.is(':visible')||w){if(s&&$('img:first',s).attr('src')!=$(this).attr('href')){__cancelLoading()}else{return false}}var o=$.extend({},n,p);if(s&&s.parent().size()>0){var b=$('img:first',s);if(m.attr('href')==b.attr('src')){var c=$('img',m);pos=c.offset();o=$.extend(o,{dimOri:{width:c.outerWidth(),height:c.outerHeight(),left:pos.left,top:pos.top,'opacity':0}});closeZoomBox(o);return false}else{t.remove();s.empty().remove()}}if(o.showoverlay&&q){q.empty().remove().css({'opacity':o.overlay})}t.attr('src',o.imgDir+'closebox.png').appendTo('body').hide();if($.fn.ifixpng){$.ifixpng(o.imgDir+'blank.gif');t.ifixpng(o.imgDir+'blank.gif')}t.unbind('click').click(function(){closeZoomBox(o)});s=$('<div>').empty().css(o.oImgZoomBoxProp);var d=$('img',m).attr('alt');if(d){var e=$('<div><center><table height=0 border="0" cellspacing=0 cellpadding=0><tr><td></td><td class="fancyTitle">'+d+'</td><td></td></table></center></div>').css({marginTop:10,marginRight:15});var f=e.find('td:first').css({'background':'url('+o.imgDir+'zoom-caption-l.png)',width:'13px',height:'26px'});var g=e.find('td:last').css({'background':'url('+o.imgDir+'zoom-caption-r.png)',width:'13px',height:'26px'});var h=$('.fancyTitle',e).css({'background':'url('+o.imgDir+'zoom-caption-fill.png)','padding':'0px 20px',color:'#FFF','font-size':'14px'});if($.fn.ifixpng){f.ifixpng(o.imgDir+'blank.gif');g.ifixpng(o.imgDir+'blank.gif');h.ifixpng(o.imgDir+'blank.gif')}e.appendTo(s)}var i=$('<img />').attr('src',$(this).attr('href')).css({zIndex:100,marginTop:15,marginRight:15}).click(function(){closeZoomBox(o)}).prependTo(s);var j=new Image();j.src=$(this).attr('href');var k=function(){if(v){v=false}else{if(__getFileName(j.src)==__getFileName($('img:first',s).attr('src'))){l();openZoomBox(m,o);__stoploading()}}};var l=function(){var a=$('<div></div>').css({position:'absolute','top':0,'left':0,opacity:0,'border':'1px solid red'});i.appendTo(a);a.appendTo('body');imWidth=i.width();imHeight=i.height();maxWidth=$(window).width()*0.8;maxHeight=$(window).height()*0.8;if(maxHeight<imHeight){i.css('height',maxHeight)}else if(maxWidth<imWidth){i.css('width',maxWidth)}a.remove();i.prependTo(s)};if(j.complete){l();openZoomBox(m,o)}else{__displayLoading();j.onload=function(){k()}}return false})})};$.fn.fancyzoom.defaultsOptions={overlayColor:'#000',overlay:0.6,showoverlay:false,Speed:400,shadowOpts:{color:"#000",offset:4,opacity:0.2},imgDir:r};function __posCenter(a,b){var c=($(window).width()-a)/2+$(window).scrollLeft();var d=($(window).height()-b)/2+$(window).scrollTop();c=(c<0)?0:c;d=(d<0)?0:d;return{left:c,top:d}}var u=null;var v=false;var w=null;function __displayLoading(){if(!u){u=$('<div></div>').css({width:50,height:50,position:'absolute','background':'transparent',opacity:8/10,color:'#FFF',padding:'5px','font-size':'10px'})}u.appendTo('body').css(__posCenter(50,50)).html('<img src="'+$.fn.fancyzoom.defaultsOptions.imgDir+'blank.gif" />').click(function(){__cancelLoading()}).show();w=setTimeout(__changeimageLoading,400)}function __cancelLoading(){v=true;__stoploading()}function __stoploading(){u.hide().remove();if(w){clearTimeout(w);w=null}}function __changeimageLoading(){if(!u.is(':visible')){w=null;return}var a=$('img',u);if(!a.attr('src')||/blank\.gif/.test(a.attr('src'))){strImgSrc=$.fn.fancyzoom.defaultsOptions.imgDir+"zoom-spin-1.png"}else{tab=a.attr('src').split(/[- .]+/);iImg=parseInt(tab[2]);iImg=(iImg<12)?(iImg+1):1;strImgSrc=tab[0]+"-"+tab[1]+"-"+iImg+"."+tab[3]}var b=new Image();b.src=strImgSrc;var c=function(){u.css(__posCenter(50,50));a.attr('src',strImgSrc);w=setTimeout(__changeimageLoading,100)};if(b.complete){c()}else{b.onload=c}}function __getFileName(a){if(!a){return false}var b=a.split('/');return((b.length<1)?a:b[(b.length-1)])}})(jQuery);
