/* Copyright (C) 2007 - 2011 YOOtheme GmbH, YOOtheme Proprietary Use License (http://www.yootheme.com/license) */

/*
 Lightbox Plugin is based on Fancybox (http://fancybox.net, Janis Skarnelis, MIT License)
*/
(function(b){var h,m,t,p,e,B,l,A,f,x,y,D,q=0,d={},n=[],o=0,a={},j=[],C=null,s=new Image,E,F=1,G=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i,K=/[^\.]\.(swf)\s*$/i,H=/(http:\/\/.*?youtube\.[a-z]+)\/watch\?v=([^&]+)/,I=/(http:\/\/vimeo\.[a-z]+)\/([0-9]+).*?/,w=0,u="",r,g,i=!1,z=b.extend(b("<div/>")[0],{prop:0});_abort=function(){t.hide();s.onerror=s.onload=null;C&&C.abort();m.empty()};_error=function(){!1===d.onError(n,q,d)?(t.hide(),i=!1):(d.titleShow=!1,d.width="auto",d.height="auto",m.html('<p id="lightbox-error">The requested content cannot be loaded.<br />Please try again later.</p>'),
_process_inline())};_start=function(){var c=n[q],a,k,e,g,j,f;_abort();d=b.extend({},h.defaults,typeof b(c).data(h.name)=="undefined"?d:b(c).data(h.name));b(c).attr("data-lightbox")&&b.each(b(c).attr("data-lightbox").split(";"),function(a,c){var b=c.match(/\s*([A-Z_]*?)\s*:\s*(.+)\s*/i);b&&(d[b[1]]=b[2])});f=d.onStart(n,q,d);if(f===!1)i=!1;else{typeof f=="object"&&(d=b.extend(d,f));e=d.title||(c.nodeName?b(c).attr("title"):c.title)||"";if(c.nodeName&&!d.orig)d.orig=b(c).children("img:first").length?
b(c).children("img:first"):b(c);e===""&&d.orig&&d.titleFromAlt&&(e=d.orig.attr("alt"));a=d.href||(c.nodeName?b(c).attr("href"):c.href)||null;if(/^(?:javascript)/i.test(a)||a=="#")a=null;if(d.type){if(k=d.type,!a)a=d.content}else d.content?k="html":a&&(a.match(G)?k="image":a.match(K)?k="swf":a.match(H)?(a=a.replace(H,"$1/v/$2"),k="swf"):a.match(I)?(a=a.replace(I,"$1/moogaloop.swf?clip_id=$2"),k="swf"):k=a.indexOf("http://")!=-1&&a.indexOf(location.hostname.toLowerCase())==-1?"iframe":a.indexOf("#")===
0?"inline":"ajax");if(k){k=="inline"&&(c=a.substr(a.indexOf("#")),k=b(c).length>0?"inline":"ajax");d.type=k;d.href=a;d.title=e;if(d.autoDimensions&&d.type!=="iframe"&&d.type!=="swf")d.width="auto",d.height="auto";if(d.modal)d.overlayShow=!0,d.hideOnOverlayClick=!1,d.hideOnContentClick=!1,d.enableEscapeButton=!1,d.showCloseButton=!1;d.padding=parseInt(d.padding,10);d.margin=parseInt(d.margin,10);m.css("padding",d.padding+d.margin);b(".lightbox-inline-tmp").unbind("lightbox-cancel").bind("lightbox-change",
function(){b(this).replaceWith(l.children())});switch(k){case "html":m.html(d.content);_process_inline();break;case "inline":if(b(c).parent().is("#lightbox-content")===!0){i=!1;break}b('<div class="lightbox-inline-tmp" />').hide().insertBefore(b(c)).bind("lightbox-cleanup",function(){b(this).replaceWith(l.children())}).bind("lightbox-cancel",function(){b(this).replaceWith(m.children())});b(c).appendTo(m);_process_inline();break;case "image":i=!1;h.showActivity();s=new Image;s.onerror=function(){_error()};
s.onload=function(){i=!0;s.onerror=s.onload=null;_process_image()};s.src=a;break;case "swf":d.scrolling="no";d.autoDimensions=!1;g='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+d.width+'" height="'+d.height+'"><param name="movie" value="'+a+'"></param>';j="";b.each(d.swf,function(a,c){g+='<param name="'+a+'" value="'+c+'"></param>';j+=" "+a+'="'+c+'"'});g+='<embed src="'+a+'" type="application/x-shockwave-flash" width="'+d.width+'" height="'+d.height+'"'+j+"></embed></object>";
m.html(g);_process_inline();break;case "ajax":i=!1;h.showActivity();d.ajax.win=d.ajax.success;C=b.ajax(b.extend({},d.ajax,{url:a,data:d.ajax.data||{},error:function(a){a.status>0&&_error()},success:function(c,b,k){if((typeof k=="object"?k:C).status==200){if(typeof d.ajax.win=="function")if(f=d.ajax.win(a,c,b,k),f===!1){t.hide();return}else if(typeof f=="string"||typeof f=="object")c=f;m.html(c);_process_inline()}}}));break;case "iframe":d.autoDimensions=!1,_show()}}else _error()}};_process_inline=
function(){m.wrapInner('<div style="width:'+(d.width=="auto"?"auto":d.width+"px")+";height:"+(d.height=="auto"?"auto":d.height+"px")+";overflow: "+(d.scrolling=="auto"?"auto":d.scrolling=="yes"?"scroll":"hidden")+'"></div>');d.width=m.width();d.height=m.height();_show()};_process_image=function(){d.width=s.width;d.height=s.height;b("<img />").attr({id:"lightbox-img",src:s.src,alt:d.title}).appendTo(m);_show()};_show=function(){var c,J;t.hide();if(e.is(":visible")&&!1===a.onCleanup(j,o,a))b.event.trigger("lightbox-cancel"),
i=!1;else if(i=!0,b(l.add(p)).unbind(),b(window).unbind("resize.fb scroll.fb"),b(document).unbind("keydown.fb"),e.is(":visible")&&a.titlePosition!=="outside"&&e.css("height",e.height()),j=n,o=q,a=d,a.overlayShow?(p.css({"background-color":a.overlayColor,opacity:a.overlayOpacity,cursor:a.hideOnOverlayClick?"pointer":"auto",height:b(document).height()}),p.is(":visible")||p.show()):p.hide(),g=_get_zoom_to(),_process_title(),e.is(":visible"))b(A.add(x).add(y)).hide(),c=e.position(),r={top:c.top,left:c.left,
width:e.width(),height:e.height()},J=r.width==g.width&&r.height==g.height,l.fadeTo(a.changeFade,0.3,function(){var c=function(){l.html(m.contents()).fadeTo(a.changeFade,1,_finish)};b.event.trigger("lightbox-change");l.empty().removeAttr("filter").css({"border-width":a.padding,width:g.width-a.padding*2,height:a.type=="image"||a.type=="swf"||a.type=="iframe"?g.height-w-a.padding*2:"auto"});J?c():(z.prop=0,b(z).animate({prop:1},{duration:a.changeSpeed,easing:a.easingChange,step:_draw,complete:c}))});
else if(e.removeAttr("style"),l.css("border-width",a.padding),a.transitionIn=="elastic"){r=_get_zoom_from();l.html(m.contents());e.show();if(a.opacity)g.opacity=0;z.prop=0;b(z).animate({prop:1},{duration:a.speedIn,easing:a.easingIn,step:_draw,complete:_finish})}else a.titlePosition=="inside"&&w>0&&f.show(),l.css({width:g.width-a.padding*2,height:a.type=="image"||a.type=="swf"||a.type=="iframe"?g.height-w-a.padding*2:"auto"}).html(m.contents()),e.css(g).fadeIn(a.transitionIn=="none"?0:a.speedIn,_finish)};
_format_title=function(c){if(c&&c.length)return'<div id="lightbox-title-'+a.titlePosition+'">'+c+"</div>";return!1};_process_title=function(){u=a.title||"";w=0;f.empty().removeAttr("style").removeClass();if(a.titleShow!==!1&&(u=b.isFunction(a.titleFormat)?a.titleFormat(u,j,o,a):_format_title(u))&&u!=="")switch(f.addClass("lightbox-title-"+a.titlePosition).html(u).appendTo("body").show(),a.titlePosition){case "inside":f.css({width:g.width-a.padding*2,marginLeft:a.padding,marginRight:a.padding});w=
f.outerHeight(!0);f.appendTo(B);g.height+=w;break;case "over":f.css({marginLeft:a.padding,width:g.width-a.padding*2,bottom:a.padding}).appendTo(B);break;case "float":f.css("left",parseInt((f.width()-g.width-40)/2,10)*-1).appendTo(e);break;default:f.css({width:g.width-a.padding*2,paddingLeft:a.padding,paddingRight:a.padding}).appendTo(e)}f.hide()};_set_navigation=function(){(a.enableEscapeButton||a.enableKeyboardNav)&&b(document).bind("keydown.fb",function(c){if(c.keyCode==27&&a.enableEscapeButton)c.preventDefault(),
h.close();else if((c.keyCode==37||c.keyCode==39)&&a.enableKeyboardNav&&c.target.tagName!=="INPUT"&&c.target.tagName!=="TEXTAREA"&&c.target.tagName!=="SELECT")c.preventDefault(),h[c.keyCode==37?"prev":"next"]()});a.showNavArrows?((a.cyclic&&j.length>1||o!==0)&&x.show(),(a.cyclic&&j.length>1||o!=j.length-1)&&y.show()):(x.hide(),y.hide())};_finish=function(){b.support.opacity||(l.get(0).style.removeAttribute("filter"),e.get(0).style.removeAttribute("filter"));e.css("height","auto");a.type!=="image"&&
a.type!=="swf"&&a.type!=="iframe"&&l.css("height","auto");u&&u.length&&f.show();a.showCloseButton&&A.show();_set_navigation();a.hideOnContentClick&&l.bind("click",h.close);a.hideOnOverlayClick&&p.bind("click",h.close);b(window).bind("resize.fb",h.resize);a.centerOnScroll&&b(window).bind("scroll.fb",h.center);a.type=="iframe"&&b('<iframe id="lightbox-frame" name="lightbox-frame'+(new Date).getTime()+'" frameborder="0" hspace="0" '+(b.browser.msie?'allowtransparency="true""':"")+' scrolling="'+d.scrolling+
'" src="'+a.href+'"></iframe>').appendTo(l);e.show();i=!1;h.center();a.onComplete(j,o,a);_preload_images()};_preload_images=function(){var c,a;if(j.length-1>o&&(c=j[o+1].href,typeof c!=="undefined"&&c.match(G)))a=new Image,a.src=c;if(o>0&&(c=j[o-1].href,typeof c!=="undefined"&&c.match(G)))a=new Image,a.src=c};_draw=function(c){var b={width:parseInt(r.width+(g.width-r.width)*c,10),height:parseInt(r.height+(g.height-r.height)*c,10),top:parseInt(r.top+(g.top-r.top)*c,10),left:parseInt(r.left+(g.left-
r.left)*c,10)};if(typeof g.opacity!=="undefined")b.opacity=c<0.5?0.5:c;e.css(b);l.css({width:b.width-a.padding*2,height:b.height-w*c-a.padding*2})};_get_viewport=function(){return[b(window).width()-a.margin*2,b(window).height()-a.margin*2,b(document).scrollLeft()+a.margin,b(document).scrollTop()+a.margin]};_get_zoom_to=function(){var c=_get_viewport(),b={},k=a.autoScale,e=a.padding*2;b.width=a.width.toString().indexOf("%")>-1?parseInt(c[0]*parseFloat(a.width)/100,10):parseInt(a.width)+e;b.height=
a.height.toString().indexOf("%")>-1?parseInt(c[1]*parseFloat(a.height)/100,10):parseInt(a.height)+e;if(k&&(b.width>c[0]||b.height>c[1]))if(d.type=="image"||d.type=="swf"){k=a.width/a.height;if(b.width>c[0])b.width=c[0],b.height=parseInt((b.width-e)/k+e,10);if(b.height>c[1])b.height=c[1],b.width=parseInt((b.height-e)*k+e,10)}else b.width=Math.min(b.width,c[0]),b.height=Math.min(b.height,c[1]);b.top=parseInt(Math.max(c[3]-20,c[3]+(c[1]-b.height-40)*0.5),10);b.left=parseInt(Math.max(c[2]-20,c[2]+(c[0]-
b.width-40)*0.5),10);return b};_get_obj_pos=function(a){var b=a.offset();b.top+=parseInt(a.css("paddingTop"),10)||0;b.left+=parseInt(a.css("paddingLeft"),10)||0;b.top+=parseInt(a.css("border-top-width"),10)||0;b.left+=parseInt(a.css("border-left-width"),10)||0;b.width=a.width();b.height=a.height();return b};_get_zoom_from=function(){var c=d.orig?b(d.orig):!1,e={};c&&c.length?(c=_get_obj_pos(c),e={width:c.width+a.padding*2,height:c.height+a.padding*2,top:c.top-a.padding-20,left:c.left-a.padding-20}):
(c=_get_viewport(),e={width:a.padding*2,height:a.padding*2,top:parseInt(c[3]+c[1]*0.5,10),left:parseInt(c[2]+c[0]*0.5,10)});return e};_animate_loading=function(){t.is(":visible")?(b("div",t).css("top",F*-40+"px"),F=(F+1)%12):clearInterval(E)};var v=function(){};v.prototype=b.extend(v.prototype,{name:"lightbox",defaults:{padding:10,margin:40,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:0.7,overlayColor:"#777",titleShow:!0,titlePosition:"float",titleFormat:null,titleFromAlt:!1,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast",easingIn:"swing",easingOut:"swing",showCloseButton:!0,showNavArrows:!0,enableEscapeButton:!0,enableKeyboardNav:!0,onStart:function(){},onCancel:function(){},onComplete:function(){},onCleanup:function(){},onClosed:function(){},onError:function(){}},init:function(){var c=
this;b("#lightbox-wrap").length||(b("body").append(m=b('<div id="lightbox-tmp"></div>'),t=b('<div id="lightbox-loading"><div></div></div>'),p=b('<div id="lightbox-overlay"></div>'),e=b('<div id="lightbox-wrap"></div>')),D=p.show().position(),p.hide(),D.top!=0&&p.css("top",D.top*-1),B=b('<div id="lightbox-outer"></div>').appendTo(e),B.append(l=b('<div id="lightbox-content"></div>'),A=b('<a id="lightbox-close"></a>'),f=b('<div id="lightbox-title"></div>'),x=b('<a href="javascript:;" id="lightbox-left"><span id="lightbox-left-ico"></span></a>'),
y=b('<a href="javascript:;" id="lightbox-right"><span id="lightbox-right-ico"></span></a>')),A.bind("click",this.close),t.bind("click",this.cancel),x.bind("click",function(a){a.preventDefault();c.prev()}),y.bind("click",function(a){a.preventDefault();c.next()}),b.fn.mousewheel&&e.bind("mousewheel.fb",function(b,d){(i||a.type=="image")&&b.preventDefault();c[d>0?"prev":"next"]()}))},open:function(a,d){var e;if(!i){i=!0;e=typeof d!=="undefined"?d:{};n=[];q=parseInt(e.index,10)||0;if(b.isArray(a)){for(var f=
0,g=a.length;f<g;f++)typeof a[f]=="object"?b(a[f]).data(h.name,b.extend({},e,a[f])):a[f]=b({}).data(h.name,b.extend({content:a[f]},e));n=b.merge(n,a)}else typeof a=="object"?b(a).data(h.name,b.extend({},e,a)):a=b({}).data(h.name,b.extend({content:a},e)),n.push(a);if(q>n.length||q<0)q=0;_start()}},showActivity:function(){clearInterval(E);t.show();E=setInterval(_animate_loading,66)},hideActivity:function(){t.hide()},next:function(){return this.pos(o+1)},prev:function(){return this.pos(o-1)},pos:function(b){i||
(b=parseInt(b),n=j,b>-1&&b<j.length?(q=b,_start()):a.cyclic&&j.length>1&&(q=b>=j.length?0:j.length-1,_start()))},cancel:function(){i||(i=!0,b.event.trigger("lightbox-cancel"),_abort(),d.onCancel(n,q,d),i=!1)},close:function(){function c(){p.fadeOut("fast");f.empty().hide();e.hide();b.event.trigger("lightbox-cleanup");l.empty();a.onClosed(j,o,a);j=d=[];o=q=0;a=d={};i=!1}if(!i&&!e.is(":hidden"))if(i=!0,a&&!1===a.onCleanup(j,o,a))i=!1;else if(_abort(),b(A.add(x).add(y)).hide(),b(l.add(p)).unbind(),b(window).unbind("resize.fb scroll.fb"),
b(document).unbind("keydown.fb"),l.find("iframe").attr("src","about:blank"),a.titlePosition!=="inside"&&f.empty(),e.stop(),a.transitionOut=="elastic"){r=_get_zoom_from();var h=e.position();g={top:h.top,left:h.left,width:e.width(),height:e.height()};if(a.opacity)g.opacity=1;f.empty().hide();z.prop=1;b(z).animate({prop:0},{duration:a.speedOut,easing:a.easingOut,step:_draw,complete:c})}else e.fadeOut(a.transitionOut=="none"?0:a.speedOut,c)},resize:function(){p.is(":visible")&&p.css("height",b(document).height());
h.center(!0)},center:function(b){var d,f;if(!i&&(f=b===!0?1:0,d=_get_viewport(),f||!(e.width()>d[0]||e.height()>d[1])))e.stop().animate({top:parseInt(Math.max(d[3]-20,d[3]+(d[1]-l.height()-40)*0.5-a.padding)),left:parseInt(Math.max(d[2]-20,d[2]+(d[0]-l.width()-40)*0.5-a.padding))},typeof b=="number"?b:200)}});b.fn[v.prototype.name]=function(){var a=arguments,d=a[0]?a[0]:{};return this.each(function(){b(this).data(v.prototype.name,d).unbind("click."+v.prototype.name).bind("click."+v.prototype.name,
function(a){a.preventDefault();i||(i=!0,b(this).blur(),n=[],q=0,(a=b(this).attr("data-lightbox")||"")&&(a=a.match(/group:([^;]+)/i))?(n=b('a[data-lightbox*="'+a[0]+'"], area[data-lightbox*="'+a[0]+'"]'),q=n.index(this)):n.push(this),_start())})})};b(document).ready(function(){h=new v;h.init();b[v.prototype.name]=h})})(jQuery);

