/*
 * FancyBox - jQuery Plugin
 * Simple and fancy lightbox alternative
 *
 * Examples and documentation at: http://fancybox.net
 * 
 * Copyright (c) 2008 - 2010 Janis Skarnelis
 *
 * Version: 1.3.1 (05/03/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
 */
(function(a){var b,c,d,e,f,g,h,i,j,k=0,l={},m=[],n=0,o={},p=[],q=null,r=new Image,s=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,t=/[^\.]\.(swf)\s*$/i,u,v=1,w,x,y=!1,z=a.extend(a("<div/>")[0],{prop:0}),A=0,B=!a.support.opacity&&!window.XMLHttpRequest,C=function(){c.hide(),r.onerror=r.onload=null,q&&q.abort(),b.empty()},D=function(){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"})},E=function(){return[a(window).width(),a(window).height(),a(document).scrollLeft(),a(document).scrollTop()]},F=function(){var a=E(),b={},c=o.margin,d=o.autoScale,e=(20+c)*2,f=(20+c)*2,g=o.padding*2;return o.width.toString().indexOf("%")>-1?(b.width=a[0]*parseFloat(o.width)/100-40,d=!1):b.width=o.width+g,o.height.toString().indexOf("%")>-1?(b.height=a[1]*parseFloat(o.height)/100-40,d=!1):b.height=o.height+g,d&&(b.width>a[0]-e||b.height>a[1]-f)&&(l.type=="image"||l.type=="swf"?(e+=g,f+=g,d=Math.min(Math.min(a[0]-e,o.width)/o.width,Math.min(a[1]-f,o.height)/o.height),b.width=Math.round(d*(b.width-g))+g,b.height=Math.round(d*(b.height-g))+g):(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+40))*.5,b.left=a[2]+(a[0]-(b.width+40))*.5,o.autoScale===!1&&(b.top=Math.max(a[3]+c,b.top),b.left=Math.max(a[2]+c,b.left)),b},G=function(a){if(a&&a.length)switch(o.titlePosition){case"inside":return a;case"over":return'<span id="fancybox-title-over">'+a+"</span>";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>'}return!1},H=function(){var b=o.title,c=x.width-o.padding*2,d="fancybox-title-"+o.titlePosition;a("#fancybox-title").remove(),A=0;if(o.titleShow!==!1){b=a.isFunction(o.titleFormat)?o.titleFormat(b,p,n,o):G(b);if(!!b&&b!==""){a('<div id="fancybox-title" class="'+d+'" />').css({width:c,paddingLeft:o.padding,paddingRight:o.padding}).html(b).appendTo("body");switch(o.titlePosition){case"inside":A=a("#fancybox-title").outerHeight(!0)-o.padding,x.height+=A;break;case"over":a("#fancybox-title").css("bottom",o.padding);break;default:a("#fancybox-title").css("bottom",a("#fancybox-title").outerHeight(!0)*-1)}a("#fancybox-title").appendTo(f).hide()}}},I=function(){a(document).unbind("keydown.fb").bind("keydown.fb",function(b){b.keyCode==27&&o.enableEscapeButton?(b.preventDefault(),a.fancybox.close()):b.keyCode==37?(b.preventDefault(),a.fancybox.prev()):b.keyCode==39&&(b.preventDefault(),a.fancybox.next())}),a.fn.mousewheel&&(e.unbind("mousewheel.fb"),p.length>1&&e.bind("mousewheel.fb",function(b,c){b.preventDefault(),y||c===0||(c>0?a.fancybox.prev():a.fancybox.next())})),o.showNavArrows&&((o.cyclic&&p.length>1||n!==0)&&i.show(),(o.cyclic&&p.length>1||n!=p.length-1)&&j.show())},J=function(){var a,b;p.length-1>n&&(a=p[n+1].href,typeof a!="undefined"&&a.match(s)&&(b=new Image,b.src=a)),n>0&&(a=p[n-1].href,typeof a!="undefined"&&a.match(s)&&(b=new Image,b.src=a))},K=function(){g.css("overflow",o.scrolling=="auto"?o.type=="image"||o.type=="iframe"||o.type=="swf"?"hidden":"auto":o.scrolling=="yes"?"auto":"visible"),a.support.opacity||(g.get(0).style.removeAttribute("filter"),e.get(0).style.removeAttribute("filter")),a("#fancybox-title").show(),o.hideOnContentClick&&g.one("click",a.fancybox.close),o.hideOnOverlayClick&&d.one("click",a.fancybox.close),o.showCloseButton&&h.show(),I(),a(window).bind("resize.fb",a.fancybox.center),o.centerOnScroll?a(window).bind("scroll.fb",a.fancybox.center):a(window).unbind("scroll.fb"),a.isFunction(o.onComplete)&&o.onComplete(p,n,o),y=!1,J()},L=function(a){var b=Math.round(w.width+(x.width-w.width)*a),c=Math.round(w.height+(x.height-w.height)*a),d=Math.round(w.top+(x.top-w.top)*a),f=Math.round(w.left+(x.left-w.left)*a);e.css({width:b+"px",height:c+"px",top:d+"px",left:f+"px"}),b=Math.max(b-o.padding*2,0),c=Math.max(c-(o.padding*2+A*a),0),g.css({width:b+"px",height:c+"px"}),typeof x.opacity!="undefined"&&e.css("opacity",a<.5?.5:a)},M=function(a){var b=a.offset();return 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(),b},N=function(){var b=l.orig?a(l.orig):!1,c={};return b&&b.length?(b=M(b),c={width:b.width+o.padding*2,height:b.height+o.padding*2,top:b.top-o.padding-20,left:b.left-o.padding-20}):(b=E(),c={width:1,height:1,top:b[3]+b[1]*.5,left:b[2]+b[0]*.5}),c},O=function(){c.hide();if(e.is(":visible")&&a.isFunction(o.onCleanup)&&o.onCleanup(p,n,o)===!1){a.event.trigger("fancybox-cancel"),y=!1;return}p=m,n=k,o=l,g.get(0).scrollTop=0,g.get(0).scrollLeft=0,o.overlayShow&&(B&&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":o.overlayColor,opacity:o.overlayOpacity}).unbind().show()),x=F(),H();if(e.is(":visible")){a(h.add(i).add(j)).hide();var f=e.position(),q;w={top:f.top,left:f.left,width:e.width(),height:e.height()},q=w.width==x.width&&w.height==x.height,g.fadeOut(o.changeFade,function(){var c=function(){g.html(b.contents()).fadeIn(o.changeFade,K)};a.event.trigger("fancybox-change"),g.empty().css("overflow","hidden"),q?(g.css({top:o.padding,left:o.padding,width:Math.max(x.width-o.padding*2,1),height:Math.max(x.height-o.padding*2-A,1)}),c()):(g.css({top:o.padding,left:o.padding,width:Math.max(w.width-o.padding*2,1),height:Math.max(w.height-o.padding*2,1)}),z.prop=0,a(z).animate({prop:1},{duration:o.changeSpeed,easing:o.easingChange,step:L,complete:c}))})}else e.css("opacity",1),o.transitionIn=="elastic"?(w=N(),g.css({top:o.padding,left:o.padding,width:Math.max(w.width-o.padding*2,1),height:Math.max(w.height-o.padding*2,1)}).html(b.contents()),e.css(w).show(),o.opacity&&(x.opacity=0),z.prop=0,a(z).animate({prop:1},{duration:o.speedIn,easing:o.easingIn,step:L,complete:K})):(g.css({top:o.padding,left:o.padding,width:Math.max(x.width-o.padding*2,1),height:Math.max(x.height-o.padding*2-A,1)}).html(b.contents()),e.css(x).fadeIn(o.transitionIn=="none"?0:o.speedIn,K))},P=function(){b.width(l.width),b.height(l.height),l.width=="auto"&&(l.width=b.width()),l.height=="auto"&&(l.height=b.height()),O()},Q=function(){y=!0,l.width=r.width,l.height=r.height,a("<img />").attr({id:"fancybox-img",src:r.src,alt:l.title}).appendTo(b),O()},R=function(){C();var c=m[k],d,e,f,h,i;l=a.extend({},a.fn.fancybox.defaults,typeof a(c).data("fancybox")=="undefined"?l:a(c).data("fancybox")),f=c.title||a(c).title||l.title||"",c.nodeName&&!l.orig&&(l.orig=a(c).children("img:first").length?a(c).children("img:first"):a(c)),f===""&&l.orig&&(f=l.orig.attr("alt")),d=c.nodeName&&/^(?:javascript|#)/i.test(c.href)?l.href||null:l.href||c.href||null,l.type?(e=l.type,d||(d=l.content)):l.content?e="html":d?d.match(s)?e="image":d.match(t)?e="swf":a(c).hasClass("iframe")?e="iframe":d.match(/#/)?(c=d.substr(d.indexOf("#")),e=a(c).length>0?"inline":"ajax"):e="ajax":e="inline",l.type=e,l.href=d,l.title=f,l.autoDimensions&&l.type!=="iframe"&&l.type!=="swf"&&(l.width="auto",l.height="auto"),l.modal&&(l.overlayShow=!0,l.hideOnOverlayClick=!1,l.hideOnContentClick=!1,l.enableEscapeButton=!1,l.showCloseButton=!1);if(a.isFunction(l.onStart)&&l.onStart(m,k,l)===!1){y=!1;return}b.css("padding",20+l.padding+l.margin),a(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){a(this).replaceWith(g.children())});switch(e){case"html":b.html(l.content),P();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),P();break;case"image":y=!1,a.fancybox.showActivity(),r=new Image,r.onerror=function(){D()},r.onload=function(){r.onerror=null,r.onload=null,Q()},r.src=d;break;case"swf":h='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+l.width+'" height="'+l.height+'"><param name="movie" value="'+d+'"></param>',i="",a.each(l.swf,function(a,b){h+='<param name="'+a+'" value="'+b+'"></param>',i+=" "+a+'="'+b+'"'}),h+='<embed src="'+d+'" type="application/x-shockwave-flash" width="'+l.width+'" height="'+l.height+'"'+i+"></embed></object>",b.html(h),P();break;case"ajax":c=d.split("#",2),e=l.ajax.data||{},c.length>1&&(d=c[0],typeof e=="string"?e+="&selector="+c[1]:e.selector=c[1]),y=!1,a.fancybox.showActivity(),q=a.ajax(a.extend(l.ajax,{url:d,data:e,error:D,success:function(a){q.status==200&&(b.html(a),P())}}));break;case"iframe":a('<iframe id="fancybox-frame" name="fancybox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" scrolling="'+l.scrolling+'" src="'+l.href+'"></iframe>').appendTo(b),O()}},S=function(){c.is(":visible")?(a("div",c).css("top",v*-40+"px"),v=(v+1)%12):clearInterval(u)},T=function(){a("#fancybox-wrap").length||(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>')),a.support.opacity||(e.addClass("fancybox-ie"),c.addClass("fancybox-ie")),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>'),h=a('<a id="fancybox-close"></a>'),i=a('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),j=a('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')),h.click(a.fancybox.close),c.click(a.fancybox.cancel),i.click(function(b){b.preventDefault(),a.fancybox.prev()}),j.click(function(b){b.preventDefault(),a.fancybox.next()}),B&&(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>')))};a.fn.fancybox=function(b){return a(this).data("fancybox",a.extend({},b,a.metadata?a(this).metadata():{})).unbind("click.fb").bind("click.fb",function(b){b.preventDefault();if(!y)return y=!0,a(this).blur(),m=[],k=0,b=a(this).attr("rel")||"",!b||b==""||b==="nofollow"?m.push(this):(m=a("a[rel="+b+"], area[rel="+b+"]"),k=m.index(this)),R(),!1}),this},a.fancybox=function(b,c){if(!y){y=!0,c=typeof c!="undefined"?c:{},m=[],k=c.index||0;if(a.isArray(b)){for(var d=0,e=b.length;d<e;d++)typeof b[d]=="object"?a(b[d]).data("fancybox",a.extend({},c,b[d])):b[d]=a({}).data("fancybox",a.extend({content:b[d]},c));m=jQuery.merge(m,b)}else typeof b=="object"?a(b).data("fancybox",a.extend({},c,b)):b=a({}).data("fancybox",a.extend({content:b},c)),m.push(b);if(k>m.length||k<0)k=0;R()}},a.fancybox.showActivity=function(){clearInterval(u),c.show(),u=setInterval(S,66)},a.fancybox.hideActivity=function(){c.hide()},a.fancybox.next=function(){return a.fancybox.pos(n+1)},a.fancybox.prev=function(){return a.fancybox.pos(n-1)},a.fancybox.pos=function(a){y||(a=parseInt(a,10),a>-1&&p.length>a&&(k=a,R()),o.cyclic&&p.length>1&&a<0&&(k=p.length-1,R()),o.cyclic&&p.length>1&&a>=p.length&&(k=0,R()))},a.fancybox.cancel=function(){y||(y=!0,a.event.trigger("fancybox-cancel"),C(),l&&a.isFunction(l.onCancel)&&l.onCancel(m,k,l),y=!1)},a.fancybox.close=function(){function b(){d.fadeOut("fast"),e.hide(),a.event.trigger("fancybox-cleanup"),g.empty(),a.isFunction(o.onClosed)&&o.onClosed(p,n,o),p=l=[],n=k=0,o=l={},y=!1}if(!y&&!e.is(":hidden")){y=!0;if(o&&a.isFunction(o.onCleanup)&&o.onCleanup(p,n,o)===!1){y=!1;return}C(),a(h.add(i).add(j)).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(o.transitionOut=="elastic"){w=N();var c=e.position();x={top:c.top,left:c.left,width:e.width(),height:e.height()},o.opacity&&(x.opacity=1),z.prop=1,a(z).animate({prop:0},{duration:o.speedOut,easing:o.easingOut,step:L,complete:b})}else e.fadeOut(o.transitionOut=="none"?0:o.speedOut,b)}},a.fancybox.resize=function(){var b,c;!y&&!e.is(":hidden")&&(y=!0,b=g.wrapInner("<div style='overflow:auto'></div>").children(),c=b.height(),e.css({height:c+o.padding*2+A}),g.css({height:c}),b.replaceWith(b.children()),a.fancybox.center())},a.fancybox.center=function(){y=!0;var a=E(),b=o.margin,c={};c.top=a[3]+(a[1]-(e.height()-A+40))*.5,c.left=a[2]+(a[0]-(e.width()+40))*.5,c.top=Math.max(a[3]+b,c.top),c.left=Math.max(a[2]+b,c.left),e.css(c),y=!1},a.fn.fancybox.defaults={padding:10,margin:20,opacity:!1,modal:!1,cyclic:!1,scrolling:"auto",width:560,height:340,autoScale:!0,autoDimensions:!0,centerOnScroll:!1,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:!0,hideOnContentClick:!1,overlayShow:!0,overlayOpacity:.3,overlayColor:"#666",titleShow:!0,titlePosition:"outside",titleFormat:null,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",easingOut:"swing",showCloseButton:!0,showNavArrows:!0,enableEscapeButton:!0,onStart:null,onCancel:null,onComplete:null,onCleanup:null,onClosed:null},a(document).ready(function(){T()})})(jQuery)
