/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Copyright (c) 20010 Janis Skarnelis
 * Examples and documentation at: http://fancybox.net
 *
 * Version: 1.3.0 (02/02/2010)
 * Requires: jQuery v1.3+
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

/*
 * Modified by Guilhem Malichier (fix for processing URLs with query strings)
 */

(function(a){function V(){if(a("#fancybox-wrap").length)return;a("body").append(b=a('<div id="fancybox-tmp"></div>'),c=a('<div id="fancybox-loading"><div></div></div>'),d=a('<div id="fancybox-overlay"></div>'),e=a('<div id="fancybox-wrap"></div>'));f=a('<div id="fancybox-outer"></div>').append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>').appendTo(e);f.append(g=a('<div id="fancybox-inner"></div>'),i=a('<a id="fancybox-close"></a>'),j=a('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),k=a('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>'));i.click(a.fancybox.close);c.click(a.fancybox.cancel);j.click(function(b){b.preventDefault();a.fancybox.prev()});k.click(function(b){b.preventDefault();a.fancybox.next()});if(!a.support.opacity){f.find(".fancy-bg").fixPNG()}if(D){a(i.add(".fancy-ico").add("div",c)).fixPNG();d.get(0).style.setExpression("height","document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");c.get(0).style.setExpression("top","(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");f.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>')}}function U(a){if(a&&a.length){switch(p.titlePosition){case"inside":return a;break;case"over":return'<span id="fancybox-title-over">'+a+"</span>";break;default:return'<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">'+a+'</span><span id="fancybox-title-right"></span></span>';break}}return false}function T(){a("#fancybox-title").remove();C=0;if(p.titleShow==false)return;var b=q[o];var c=p.title;c=a.isFunction(p.titleFormat)?p.titleFormat(c,q,o,p):U(c);if(!c||c=="")return;var d=y.width-p.padding*2;var e="fancybox-title-"+p.titlePosition;a('<div id="fancybox-title" class="'+e+'" />').css({width:d,paddingLeft:p.padding,paddingRight:p.padding}).html(c).appendTo("body");switch(p.titlePosition){case"inside":C=a("#fancybox-title").outerHeight(true)-p.padding;y.height+=C;break;case"over":a("#fancybox-title").css("bottom",p.padding);break;default:a("#fancybox-title").css("bottom",a("#fancybox-title").outerHeight(true)*-1);break}a("#fancybox-title").appendTo(f).hide();if(D){a("#fancybox-title span").fixPNG()}}function S(a){var b=a.offset();b.top+=parseFloat(a.css("paddingTop"))||0;b.left+=parseFloat(a.css("paddingLeft"))||0;b.top+=parseFloat(a.css("border-top-width"))||0;b.left+=parseFloat(a.css("border-left-width"))||0;b.width=a.width();b.height=a.height();return b}function R(){return[a(window).width(),a(window).height(),a(document).scrollLeft(),a(document).scrollTop()]}function Q(){if(!c.is(":visible")){clearInterval(v);return}a("div",c).css("top",w*-40+"px");w=(w+1)%12}function P(){if(q.length-1>o){var a=q[o+1].href;if(typeof a!=="undefined"&&a.match(t)){var b=new Image;b.src=a}}if(o>0){var a=q[o-1].href;if(typeof a!=="undefined"&&a.match(t)){var b=new Image;b.src=a}}}function O(){a(document).unbind("keydown.fb").bind("keydown.fb",function(b){if(b.keyCode==27&&p.enableEscapeButton){b.preventDefault();a.fancybox.close()}else if(b.keyCode==37){b.preventDefault();a.fancybox.prev()}else if(b.keyCode==39){b.preventDefault();a.fancybox.next()}});if(a.fn.mousewheel){e.unbind("mousewheel.fb");if(q.length>1){e.bind("mousewheel.fb",function(b,c){b.preventDefault();if(z||c==0)return;c>0?a.fancybox.prev():a.fancybox.next()})}}if(!p.showNavArrows)return;if(p.cyclic&&q.length>1||o!=0){j.show()}if(p.cyclic&&q.length>1||o!=q.length-1){k.show()}}function N(){var b=m.orig?a(m.orig):false;var c={};if(b&&b.length){var d=S(b);c={width:d.width+p.padding*2,height:d.height+p.padding*2,top:d.top-p.padding-A,left:d.left-p.padding-A}}else{var e=R();c={width:1,height:1,top:e[3]+e[1]*.5,left:e[2]+e[0]*.5}}return c}function M(){var a=R();var b={};var c=p.margin;var d=p.autoScale;var e=(A+c)*2;var f=(A+c)*2;var g=p.padding*2;if(p.width.toString().indexOf("%")>-1){b.width=a[0]*parseFloat(p.width)/100-A*2;d=false}else{b.width=p.width+g}if(p.height.toString().indexOf("%")>-1){b.height=a[1]*parseFloat(p.height)/100-A*2;d=false}else{b.height=p.height+g}if(d&&(b.width>a[0]-e||b.height>a[1]-f)){if(m.type=="image"||m.type=="swf"){e+=g;f+=g;var h=Math.min(Math.min(a[0]-e,p.width)/p.width,Math.min(a[1]-f,p.height)/p.height);b.width=Math.round(h*(b.width-g))+g;b.height=Math.round(h*(b.height-g))+g}else{b.width=Math.min(b.width,a[0]-e);b.height=Math.min(b.height,a[1]-f)}}b.top=a[3]+(a[1]-(b.height+A*2))*.5;b.left=a[2]+(a[0]-(b.width+A*2))*.5;if(p.autoScale==false){b.top=Math.max(a[3]+c,b.top);b.left=Math.max(a[2]+c,b.left)}return b}function L(){g.css("overflow",overflow=p.scrolling=="auto"?p.type=="image"||p.type=="iframe"||p.type=="swf"?"hidden":"auto":p.scrolling=="yes"?"auto":"visible");if(!a.support.opacity){g.get(0).style.removeAttribute("filter");e.get(0).style.removeAttribute("filter")}a("#fancybox-title").show();if(p.hideOnContentClick)g.one("click",a.fancybox.close);if(p.hideOnOverlayClick)d.one("click",a.fancybox.close);if(p.showCloseButton)i.show();O();a(window).bind("resize.fb",a.fancybox.center);p.centerOnScroll?a(window).bind("scroll.fb",a.fancybox.center):a(window).unbind("scroll.fb");if(a.isFunction(p.onComplete))p.onComplete(q,o,p);z=false;P()}function K(a){var b=Math.round(x.width+(y.width-x.width)*a);var c=Math.round(x.height+(y.height-x.height)*a);var d=Math.round(x.top+(y.top-x.top)*a);var f=Math.round(x.left+(y.left-x.left)*a);e.css({width:b+"px",height:c+"px",top:d+"px",left:f+"px"});b=Math.max(b-p.padding*2,0);c=Math.max(c-(p.padding*2+C*a),0);g.css({width:b+"px",height:c+"px"});if(typeof y.opacity!=="undefined")e.css("opacity",a<.5?.5:a)}function J(){c.hide();if(e.is(":visible")&&a.isFunction(p.onCleanup)){if(p.onCleanup(q,o,p)===false){a.event.trigger("fancybox-cancel");z=false;return}}q=n;o=l;p=m;g.get(0).scrollTop=0;g.get(0).scrollLeft=0;if(p.overlayShow){if(D){a("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"})}d.css({"background-color":p.overlayColor,opacity:p.overlayOpacity}).unbind().show()}y=M();T();if(e.is(":visible")){a(i.add(j).add(k)).hide();var f=e.position();x={top:f.top,left:f.left,width:e.width(),height:e.height()};var h=x.width==y.width&&x.height==y.height;g.fadeOut(p.changeFade,function(){function c(){g.html(b.contents()).fadeIn(p.changeFade,L)}a.event.trigger("fancybox-change");g.css({top:p.padding,left:p.padding,width:Math.max(x.width-p.padding*2,1),height:Math.max(x.height-p.padding*2,1)}).empty().css("overflow","hidden");B.prop=0;a(B).animate({prop:1},{duration:h?0:p.changeSpeed,easing:p.easingChange,step:K,complete:c})});return}e.css("opacity",1);if(p.transitionIn=="elastic"){x=N();g.css({top:p.padding,left:p.padding,width:Math.max(x.width-p.padding*2,1),height:Math.max(x.height-p.padding*2,1)}).html(b.contents());e.css(x).show();if(p.opacity)y.opacity=0;B.prop=0;a(B).animate({prop:1},{duration:p.speedIn,easing:p.easingIn,step:K,complete:L})}else{g.css({top:p.padding,left:p.padding,width:Math.max(y.width-p.padding*2,1),height:Math.max(y.height-p.padding*2-C,1)}).html(b.contents());e.css(y).fadeIn(p.transitionIn=="none"?0:p.speedIn,L)}}function I(){b.width(m.width);b.height(m.height);if(m.width=="auto")m.width=b.width();if(m.height=="auto")m.height=b.height();J()}function H(){z=true;m.width=s.width;m.height=s.height;a("<img />").attr({id:"fancybox-img",src:s.src,alt:m.title}).appendTo(b);J()}function G(){E();var c=n[l];m=a.extend({},a.fn.fancybox.defaults,typeof a(c).data("fancybox")=="undefined"?m:a(c).data("fancybox"));var d,e,f=c.title||a(c).title||m.title||"";if(c.nodeName&&!m.orig){m.orig=a(c).children("img:first").length?a(c).children("img:first"):a(c)}if(f==""&&m.orig)f=m.orig.attr("alt");if(c.nodeName&&/^(?:javascript|#)/i.test(c.href)){d=m.href||null}else{d=m.href||c.href||null}if(m.type){e=m.type;if(!d)d=m.content}else if(m.content){e="html"}else if(d){if(d.indexOf("?")>=0)hrefWithoutQueryString=d.substr(0,d.indexOf("?"));else hrefWithoutQueryString=d;if(hrefWithoutQueryString.match(t)){e="image"}else if(hrefWithoutQueryString.match(u)){e="swf"}else if(a(c).hasClass("iframe")){e="iframe"}else if(d.match(/#/)){c=d.substr(d.indexOf("#"));e=a(c).length>0?"inline":"ajax"}else{e="ajax"}}else{e="inline"}m.type=e;m.href=d;m.title=f;if(m.autoDimensions&&m.type!=="iframe"&&m.type!=="swf"){m.width="auto";m.height="auto"}if(m.modal){m.overlayShow=true;m.hideOnOverlayClick=false;m.hideOnContentClick=false;m.enableEscapeButton=false;m.showCloseButton=false}if(a.isFunction(m.onStart)){if(m.onStart(n,l,m)===false){z=false;return}}b.css("padding",A+m.padding+m.margin);a(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){a(this).replaceWith(g.children())});switch(e){case"html":b.html(m.content);I();break;case"inline":a('<div class="fancybox-inline-tmp" />').hide().insertBefore(a(c)).bind("fancybox-cleanup",function(){a(this).replaceWith(g.children())}).bind("fancybox-cancel",function(){a(this).replaceWith(b.children())});a(c).appendTo(b);I();break;case"image":z=false;a.fancybox.showActivity();s=new Image;s.onerror=function(){F()};s.onload=function(){s.onerror=null;s.onload=null;H()};s.src=d;break;case"swf":var h="";var i="";h+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+m.width+'" height="'+m.height+'"><param name="movie" value="'+d+'"></param>';a.each(m.swf,function(a,b){h+='<param name="'+a+'" value="'+b+'"></param>';i+=" "+a+'="'+b+'"'});h+='<embed src="'+d+'" type="application/x-shockwave-flash" width="'+m.width+'" height="'+m.height+'"'+i+"></embed></object>";b.html(h);I();break;case"ajax":var j=d.split("#",2);var k=m.ajax.data||{};if(j.length>1){d=j[0];typeof k=="string"?k+="&selector="+j[1]:k["selector"]=j[1]}z=false;a.fancybox.showActivity();r=a.ajax(a.extend(m.ajax,{url:d,data:k,error:F,success:function(a,c,d){if(r.status==200){b.html(a);I()}}}));break;case"iframe":a('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" scrolling="'+m.scrolling+'" src="'+m.href+'"></iframe>').appendTo(b);J();break}}function F(){a.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>',{scrolling:"no",padding:20,transitionIn:"none",transitionOut:"none"})}function E(){c.hide();s.onerror=s.onload=null;if(r)r.abort();b.empty()}var b,c,d,e,f,g,h,i,j,k;var l=0,m={},n=[],o=0,p={},q=[];var r=null,s=new Image,t=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,u=/[^\.]\.(swf)\s*$/i;var v,w=1;var x,y,z=false,A=20,B=a.extend(a("<div/>")[0],{prop:0}),C=0,D=!a.support.opacity&&!window.XMLHttpRequest;a.fn.fixPNG=function(){return this.each(function(){var b=a(this).css("backgroundImage");if(b.match(/^url\(["']?(.*\.png)["']?\)$/i)){b=RegExp.$1;a(this).css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod="+(a(this).css("backgroundRepeat")=="no-repeat"?"crop":"scale")+", src='"+b+"')"}).each(function(){var b=a(this).css("position");if(b!="absolute"&&b!="relative")a(this).css("position","relative")}).css("zoom",1)}})};a.fn.fancybox=function(b){a(this).data("fancybox",a.extend({},b));a(this).unbind("click.fb").bind("click.fb",function(b){b.preventDefault();if(z)return;z=true;a(this).blur();n=[];l=0;var c=a(this).attr("rel")||"";if(!c||c==""||c==="nofollow"){n.push(this)}else{n=a("a[rel="+c+"], area[rel="+c+"]");l=n.index(this)}G();return false});return this};a.fancybox=function(b,c){if(z)return;z=true;n=[];l=0;if(a.isArray(b)){for(var d=0,e=b.length;d<e;d++){if(typeof b[d]=="object"){a(b[d]).data("fancybox",a.extend({},c,b[d]))}else{b[d]=a({}).data("fancybox",a.extend({content:b[d]},c))}}n=jQuery.merge(n,b)}else{if(typeof b=="object"){a(b).data("fancybox",a.extend({},c,b))}else{b=a({}).data("fancybox",a.extend({content:b},c))}n.push(b)}G()};a.fancybox.showActivity=function(){clearInterval(v);c.show();v=setInterval(Q,66)};a.fancybox.hideActivity=function(){c.hide()};a.fancybox.next=function(){return a.fancybox.pos(o+1)};a.fancybox.prev=function(){return a.fancybox.pos(o-1)};a.fancybox.pos=function(a){if(z)return;a=parseInt(a);if(a>-1&&q.length>a){l=a;G()}if(p.cyclic&&q.length>1&&a<0){l=q.length-1;G()}if(p.cyclic&&q.length>1&&a>=q.length){l=0;G()}return};a.fancybox.cancel=function(){if(z)return;z=true;a.event.trigger("fancybox-cancel");E();if(m&&a.isFunction(m.onCancel)){m.onCancel(n,l,m)}z=false};a.fancybox.close=function(){function b(){d.fadeOut("fast");e.hide();a.event.trigger("fancybox-cleanup");g.empty();if(a.isFunction(p.onClosed)){p.onClosed(q,o,p)}q=m=[];o=l=0;p=m={};z=false}if(z||e.is(":hidden"))return;z=true;if(p&&a.isFunction(p.onCleanup)){if(p.onCleanup(q,o,p)===false){z=false;return}}E();a(i.add(j).add(k)).hide();a("#fancybox-title").remove();e.add(g).add(d).unbind();a(window).unbind("resize.fb scroll.fb");a(document).unbind("keydown.fb");g.css("overflow","hidden");if(p.transitionOut=="elastic"){x=N();var c=e.position();y={top:c.top,left:c.left,width:e.width(),height:e.height()};if(p.opacity){y.opacity=1}B.prop=1;a(B).animate({prop:0},{duration:p.speedOut,easing:p.easingOut,step:K,complete:b})}else{e.fadeOut(p.transitionOut=="none"?0:p.speedOut,b)}};a.fancybox.resize=function(){if(z||e.is(":hidden"))return;z=true;var b=g.wrapInner("<div style='overflow:auto'></div>").children();var c=b.height();e.css({height:c+p.padding*2+C});g.css({height:c});b.replaceWith(b.children());a.fancybox.center()};a.fancybox.center=function(){z=true;var a=R();var b=p.margin;var c={};c.top=a[3]+(a[1]-(e.height()-C+A*2))*.5;c.left=a[2]+(a[0]-(e.width()+A*2))*.5;c.top=Math.max(a[3]+b,c.top);c.left=Math.max(a[2]+b,c.left);e.css(c);z=false};a.fn.fancybox.defaults={padding:10,margin:20,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:640,height:360,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:.75,overlayColor:"#000",titleShow:true,titlePosition:"outside",titleFormat:null,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,onStart:null,onCancel:null,onComplete:null,onCleanup:null,onClosed:null};a(document).ready(function(){V()})})(jQuery)
