(function(F){F.fn.fixPNG=function(){return this.each(function(){var J=F(this).css("backgroundImage");if(J.match(/^url\(["']?(.*\.png)["']?\)$/i)){J=RegExp.$1;F(this).css({backgroundImage:"none",filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod="+(F(this).css("backgroundRepeat")=="no-repeat"?"crop":"scale")+", src='"+J+"')"}).each(function(){var K=F(this).css("position");if(K!="absolute"&&K!="relative"){F(this).css("position","relative")}})}})};var D,A,G=false,C=new Image,H,I=1,E=/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i;var B=(F.browser.msie&&parseInt(F.browser.version.substr(0,1))<8);F.fn.fancybox=function(K){K=F.extend({},F.fn.fancybox.defaults,K);var S=this;function N(){D=this;A=K;L();return false}function L(){if(G){return }if(F.isFunction(A.callbackOnStart)){A.callbackOnStart()}A.itemArray=[];A.itemCurrent=0;if(K.itemArray.length>0){A.itemArray=K.itemArray}else{var U={};if(!D.rel||D.rel==""){var U={href:D.href,title:D.title};if(F(D).children("img:first").length){U.orig=F(D).children("img:first")}A.itemArray.push(U)}else{var V=F(S).filter("a[rel="+D.rel+"]");var U={};for(var T=0;T<V.length;T++){U={href:V[T].href,title:V[T].title};if(F(V[T]).children("img:first").length){U.orig=F(V[T]).children("img:first")}A.itemArray.push(U)}while(A.itemArray[A.itemCurrent].href!=D.href){A.itemCurrent++}}}if(A.overlayShow){if(B){F("embed, object, select").css("visibility","hidden")}F("#fancy_overlay").css("opacity",A.overlayOpacity).show()}O()}function O(){F("#fancy_right, #fancy_left, #fancy_close, #fancy_title").hide();var T=A.itemArray[A.itemCurrent].href;if(T.match(/#/)){var U=window.location.href.split("#")[0];U=T.replace(U,"");U=U.substr(U.indexOf("#"));M('<div id="fancy_div">'+F(U).html()+"</div>",A.frameWidth,A.frameHeight)}else{if(T.match(E)){C=new Image;C.src=T;if(C.complete){R()}else{F.fn.fancybox.showLoading();F(C).unbind().bind("load",function(){F(".fancy_loading").hide();R()})}}else{if(T.match("iframe")||D.className.indexOf("iframe")>=0){M('<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe'+Math.round(Math.random()*1000)+'" frameborder="0" hspace="0" src="'+T+'"></iframe>',A.frameWidth,A.frameHeight)}else{F.get(T,function(V){M('<div id="fancy_ajax">'+V+"</div>",A.frameWidth,A.frameHeight)})}}}}function R(){if(A.imageScale){var U=F.fn.fancybox.getViewport();var W=Math.min(Math.min(U[0]-36,C.width)/C.width,Math.min(U[1]-60,C.height)/C.height);var V=Math.round(W*C.width);var T=Math.round(W*C.height)}else{var V=C.width;var T=C.height}M('<img alt="" id="fancy_img" src="'+C.src+'" />',V,T)}function P(){if((A.itemArray.length-1)>A.itemCurrent){var T=A.itemArray[A.itemCurrent+1].href;if(T.match(E)){objNext=new Image();objNext.src=T}}if(A.itemCurrent>0){var T=A.itemArray[A.itemCurrent-1].href;if(T.match(E)){objNext=new Image();objNext.src=T}}}function M(Y,U,a){G=true;var W=A.padding;if(B){F("#fancy_content")[0].style.removeExpression("height");F("#fancy_content")[0].style.removeExpression("width")}if(W>0){U+=W*2;a+=W*2;F("#fancy_content").css({top:W+"px",right:W+"px",bottom:W+"px",left:W+"px",width:"auto",height:"auto"});if(B){F("#fancy_content")[0].style.setExpression("height","(this.parentNode.clientHeight - 20)");F("#fancy_content")[0].style.setExpression("width","(this.parentNode.clientWidth - 20)")}}else{F("#fancy_content").css({top:0,right:0,bottom:0,left:0,width:"100%",height:"100%"})}if(F("#fancy_outer").is(":visible")&&U==F("#fancy_outer").width()&&a==F("#fancy_outer").height()){F("#fancy_content").fadeOut("fast",function(){F("#fancy_content").empty().append(F(Y)).fadeIn("normal",function(){J()})});return }var Z=F.fn.fancybox.getViewport();var V=(U+36)>Z[0]?Z[2]:(Z[2]+Math.round((Z[0]-U-36)/2));var c=(a+50)>Z[1]?Z[3]:(Z[3]+Math.round((Z[1]-a-50)/2));var b={left:V,top:c,width:U+"px",height:a+"px"};if(F("#fancy_outer").is(":visible")){F("#fancy_content").fadeOut("normal",function(){F("#fancy_content").empty();F("#fancy_outer").animate(b,A.zoomSpeedChange,A.easingChange,function(){F("#fancy_content").append(F(Y)).fadeIn("normal",function(){J()})})})}else{if(A.zoomSpeedIn>0&&A.itemArray[A.itemCurrent].orig!==undefined){F("#fancy_content").empty().append(F(Y));var X=A.itemArray[A.itemCurrent].orig;var T=F.fn.fancybox.getPosition(X);F("#fancy_outer").css({left:(T.left-18)+"px",top:(T.top-18)+"px",width:F(X).width(),height:F(X).height()});if(A.zoomOpacity){b.opacity="show"}F("#fancy_outer").animate(b,A.zoomSpeedIn,A.easingIn,function(){J()})}else{F("#fancy_content").hide().empty().append(F(Y)).show();F("#fancy_outer").css(b).fadeIn("normal",function(){J()})}}}function Q(){if(A.itemCurrent!=0){F("#fancy_left, #fancy_left_ico").unbind().bind("click",function(T){T.stopPropagation();A.itemCurrent--;O();return false});F("#fancy_left").show()}if(A.itemCurrent!=(A.itemArray.length-1)){F("#fancy_right, #fancy_right_ico").unbind().bind("click",function(T){T.stopPropagation();A.itemCurrent++;O();return false});F("#fancy_right").show()}}function J(){Q();P();F(document).keydown(function(T){if(T.keyCode==27){F.fn.fancybox.close();F(document).unbind("keydown")}else{if(T.keyCode==37&&A.itemCurrent!=0){A.itemCurrent--;O();F(document).unbind("keydown")}else{if(T.keyCode==39&&A.itemCurrent!=(A.itemArray.length-1)){A.itemCurrent++;O();F(document).unbind("keydown")}}}});if(A.centerOnScroll){F(window).bind("resize scroll",F.fn.fancybox.scrollBox)}else{F("div#fancy_outer").css("position","absolute")}if(A.hideOnContentClick){F("#fancy_wrap").click(F.fn.fancybox.close)}F("#fancy_overlay, #fancy_close").bind("click",F.fn.fancybox.close);F("#fancy_close").show();if(A.itemArray[A.itemCurrent].title!==undefined&&A.itemArray[A.itemCurrent].title.length>0){F("#fancy_title div").text(A.itemArray[A.itemCurrent].title);F("#fancy_title").show()}if(A.overlayShow&&B){F("embed, object, select",F("#fancy_content")).css("visibility","visible")}if(F.isFunction(A.callbackOnShow)){A.callbackOnShow()}G=false}return this.unbind("click").click(N)};F.fn.fancybox.scrollBox=function(){var J=F.fn.fancybox.getViewport();F("#fancy_outer").css("left",((F("#fancy_outer").width()+36)>J[0]?J[2]:J[2]+Math.round((J[0]-F("#fancy_outer").width()-36)/2)));F("#fancy_outer").css("top",((F("#fancy_outer").height()+50)>J[1]?J[3]:J[3]+Math.round((J[1]-F("#fancy_outer").height()-50)/2)))};F.fn.fancybox.getNumeric=function(J,K){return parseInt(F.curCSS(J.jquery?J[0]:J,K,true))||0};F.fn.fancybox.getPosition=function(J){var K=J.offset();K.top+=F.fn.fancybox.getNumeric(J,"paddingTop");K.top+=F.fn.fancybox.getNumeric(J,"borderTopWidth");K.left+=F.fn.fancybox.getNumeric(J,"paddingLeft");K.left+=F.fn.fancybox.getNumeric(J,"borderLeftWidth");return K};F.fn.fancybox.showIframe=function(){F(".fancy_loading").hide();F("#fancy_frame").show()};F.fn.fancybox.getViewport=function(){return[F(window).width(),F(window).height(),F(document).scrollLeft(),F(document).scrollTop()]};F.fn.fancybox.animateLoading=function(){if(!F("#fancy_loading").is(":visible")){clearInterval(H);return }F("#fancy_loading > div").css("top",(I*-40)+"px");I=(I+1)%12};F.fn.fancybox.showLoading=function(){clearInterval(H);var J=F.fn.fancybox.getViewport();F("#fancy_loading").css({left:((J[0]-40)/2+J[2]),top:((J[1]-40)/2+J[3])}).show();F("#fancy_loading").bind("click",F.fn.fancybox.close);H=setInterval(F.fn.fancybox.animateLoading,66)};F.fn.fancybox.close=function(){G=true;F(C).unbind();F("#fancy_overlay, #fancy_close").unbind();if(A.hideOnContentClick){F("#fancy_wrap").unbind()}F("#fancy_close, .fancy_loading, #fancy_left, #fancy_right, #fancy_title").hide();if(A.centerOnScroll){F(window).unbind("resize scroll")}__cleanup=function(){F("#fancy_overlay, #fancy_outer").hide();if(A.centerOnScroll){F(window).unbind("resize scroll")}if(B){F("embed, object, select").css("visibility","visible")}if(F.isFunction(A.callbackOnClose)){A.callbackOnClose()}G=false};if(F("#fancy_outer").is(":visible")!==false){if(A.zoomSpeedOut>0&&A.itemArray[A.itemCurrent].orig!==undefined){var K=A.itemArray[A.itemCurrent].orig;var J=F.fn.fancybox.getPosition(K);var L={left:(J.left-18)+"px",top:(J.top-18)+"px",width:F(K).width(),height:F(K).height()};if(A.zoomOpacity){L.opacity="hide"}F("#fancy_outer").stop(false,true).animate(L,A.zoomSpeedOut,A.easingOut,__cleanup)}else{F("#fancy_outer").stop(false,true).fadeOut("fast",__cleanup)}}else{__cleanup()}return false};F.fn.fancybox.build=function(){var J="";J+='<div id="fancy_overlay"></div>';J+='<div id="fancy_wrap">';J+='<div class="fancy_loading" id="fancy_loading"><div></div></div>';J+='<div id="fancy_outer">';J+='<div id="fancy_inner">';J+='<div id="fancy_close"></div>';J+='<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>';J+='<a href="javascript:;" id="fancy_left"><span class="fancy_ico" id="fancy_left_ico"></span></a><a href="javascript:;" id="fancy_right"><span class="fancy_ico" id="fancy_right_ico"></span></a>';J+='<div id="fancy_content"></div>';J+='<div id="fancy_title"></div>';J+="</div>";J+="</div>";J+="</div>";F(J).appendTo("body");F('<table cellspacing="0" cellpadding="0" border="0"><tr><td class="fancy_title" id="fancy_title_left"></td><td class="fancy_title" id="fancy_title_main"><div></div></td><td class="fancy_title" id="fancy_title_right"></td></tr></table>').appendTo("#fancy_title");if(B){F("#fancy_inner").prepend('<iframe class="fancy_bigIframe" scrolling="no" frameborder="0" src="javascript:false;"></iframe>');F("#fancy_close, .fancy_bg, .fancy_title, .fancy_ico").fixPNG()}};F.fn.fancybox.defaults={padding:10,imageScale:true,zoomOpacity:false,zoomSpeedIn:0,zoomSpeedOut:0,zoomSpeedChange:300,easingIn:"swing",easingOut:"swing",easingChange:"swing",frameWidth:425,frameHeight:355,overlayShow:true,overlayOpacity:0.3,hideOnContentClick:true,centerOnScroll:true,itemArray:[],callbackOnStart:null,callbackOnShow:null,callbackOnClose:null};F(document).ready(function(){F.fn.fancybox.build()})})(jQuery);
