﻿//utilities.js
function NewArray(d,e){var b=[];for(var c=0;c<d;c++){b[c]=e}return b}function Sum(b){var d=0;for(var c=0;c<b.length;c++){d+=b[c]}return d}function NewID(a,b){if(!Global.LastID){Global.LastID=1000000}return(a?(a+"-"):"")+Global.LastID+++(b?("-"+b):"")}function NewDiv(a){a=a?a:NewID();return $("<div>").attr({id:a})}function ConsoleWrite(a){var b=$("#console #consoleOutput");if(b.length>0){if(!Global.ConsoleLineNumber){Global.ConsoleLineNumber=1}b.prepend($("<div>").append($("<span>").addClass("lineNumber").append(Global.ConsoleLineNumber)).append(a));Global.ConsoleLineNumber++}}function CssVal(b,a){if(!CssVal.Cache){CssVal.Cache={}}var c=b+a;if(CssVal.Cache[c]){return CssVal.Cache[c]}var d=NewDiv().addClass(b);Global.HiddenWorkspace.append(d);CssVal.Cache[c]=d.css(a);d.remove();return CssVal.Cache[c]}function Scale(c,a){var g=1;var f=c.width;var b=c.height;var e=a.width/c.width;var d=a.height/c.height;if(e<1&&e<d){g=e}else{if(d<1&&d<e){g=d}}if(g<1){f=Math.round(c.width*g);b=Math.round(c.height*g)}return{width:f,height:b}}function IsElementDetached(a){return $("html #"+a).length==0}function SetMousePosition(a){Global.MouseX=a.pageX;Global.MouseY=a.pageY}function MousePositionChanged(a){if(!Global.MouseX||!Global.MouseY){return false}return a.pageX!=Global.MouseX||a.pageY!=Global.MouseY}function GetRemainingAnimationDuration(c,d,e,a){var f=Math.abs(d-c);if(f!=0){var b=Math.abs(e-c);var g=((100-((f*100)/b))/100)*a;return g}else{return a}}jQuery.fn.extend({disableSelection:function(){this.each(function(){this.onselectstart=function(){return false};this.unselectable="on";jQuery(this).css("-moz-user-select","none")});return this}});
//animationManager.js
function AnimationManager(){}AnimationManager.ExecuteTasks=_ExecuteTasks;AnimationManager.Run=_Run;AnimationManager.AddTask=_AddTask;AnimationManager.RemoveTask=_RemoveTask;AnimationManager.Interval=15;AnimationManager.Tasks=new Object();AnimationManager.TaskCount=0;AnimationManager.Key=null;function _ExecuteTasks(){for(taskKey in AnimationManager.Tasks){AnimationManager.Tasks[taskKey]()}}function _Run(){if(AnimationManager.TaskCount>0&&AnimationManager.Key==null){AnimationManager.Key=setInterval("AnimationManager.ExecuteTasks()",AnimationManager.Interval)}}function _AddTask(a,b){AnimationManager.Tasks[a]=b;AnimationManager.TaskCount++;if(AnimationManager.TaskCount==1){AnimationManager.Run()}}function _RemoveTask(a){delete AnimationManager.Tasks[a];AnimationManager.TaskCount--;if(AnimationManager.TaskCount==0){clearInterval(AnimationManager.Key);AnimationManager.Key=null}};
//effects.js
function Effect(){this._element=null;this._onComplete=null}Effect.Effects=new Object();Effect.prototype.Start=function(a){a=a===undefined?true:a;var b=this.GetEffectKey();if(Effect.Effects[b]){if(a){Effect.Effects[b].Stop()}else{return}}Effect.Effects[b]=this;AnimationManager.AddTask(b,function(){Effect.Effects[b].ApplyEffect()})};Effect.prototype.ApplyEffect=function(){return};Effect.prototype.GetEffectKey=function(){if(this._element){return this._element.id+"."+this._effectName}};Effect.prototype.Stop=function(){var a=this.GetEffectKey();AnimationManager.RemoveTask(a);delete Effect.Effects[a];if(this._onComplete&&this._onComplete.constructor==Function){this._onComplete(this._element)}this._element=null};function Fader(b,a,c,d){this._element=b;this._targetOpacity=a;if(b.filters&&b.filters.length>0&&(b.filters[0].opacity!=undefined)){this._currentElementOpacity=b.filters[0].opacity/100}else{this._currentElementOpacity=parseFloat($(b).css("opacity"))}this._currentElementOpacity=isNaN(this._currentElementOpacity)?1:this._currentElementOpacity;this._step=(c&&c>0)?c:0.05;this._step*=(this._targetOpacity>this._currentElementOpacity?1:-1);this._onComplete=d}Fader.prototype=new Effect();Fader.prototype.constructor=Fader;Fader.prototype._effectName="Fader";Fader.EffectName=Fader.prototype._effectName;Fader.prototype.ApplyEffect=function(){this._currentElementOpacity=Math.round((this._currentElementOpacity+this._step)*100)/100;$(this._element).css("opacity",this._currentElementOpacity);if(this._targetOpacity==this._currentElementOpacity||(this._step>0&&this._currentElementOpacity+this._step>=this._targetOpacity)||(this._step<0&&this._currentElementOpacity+this._step<=this._targetOpacity)){$(this._element).css("opacity",this._targetOpacity);this.Stop(this.GetEffectKey())}};Fader.Start=function(b,a,c,e){var d=new Fader(b,a,c,e);d.Start(true)};function Slider(a,d,c,b){this._element=a;this._distance=d;this._direction=c;this._currentX=parseInt($(this._element).css("left"));this._currentY=parseInt($(this._element).css("top"));this._unit="px";this._onComplete=b;this._currentStep=0;this._useEasing=true;this._steps=EasingHelper.ComputeAnimationSteps(3,70,d,2.25,1.15)}Slider.prototype=new Effect();Slider.prototype.constructor=Slider;Slider.prototype._effectName="Slider";Slider.EffectName=Slider.prototype._effectName;Slider.Start=function(a,f,e,c,d){var b=new Slider(a,f,e,d);b.Start(c)};Slider.prototype.ApplyEffect=function(){if(this._currentStep<this._steps.length){if(this._direction=="<"){this._currentX-=this._steps[this._currentStep++]}else{if(this._direction==">"){this._currentX+=this._steps[this._currentStep++]}}this._element.style.left=this._currentX+this._unit;this._frames++}else{this.Stop()}};Slider.prototype.GenerateVariableStepArray=function(a){var b=this._minStep;var c=[];while(b<this._maxStep){c[c.length]=Math.floor(b);b*=a}return c};function Resizer2(g,h,c,b,j,e,a,d){this._element=g;this._onComplete=d;this._jqElement=$(g);this._jqElement.originalWidth=parseInt(this._jqElement.outerWidth(true));this._jqElement.originalHeight=parseInt(this._jqElement.outerHeight(true));this._jqElement.originalTop=parseInt(this._jqElement.position().top);this._jqElement.originalRight=parseInt(this._jqElement.position().left)+this._jqElement.originalWidth;this._jqElement.originalBottom=parseInt(this._jqElement.position().top)+this._jqElement.originalHeight;this._jqElement.originalLeft=parseInt(this._jqElement.position().left);this._cumulativeRight=0;this._cumulativeHeight=0;this._minStep=e;this._maxStep=a;this._dimensions={x1:{source:this._jqElement.originalLeft,target:c,distance:c-this._jqElement.originalLeft,steps:[],direction:1},y1:{source:this._jqElement.originalTop,target:h,distance:h-this._jqElement.originalTop,steps:[],direction:1},x2:{source:this._jqElement.originalRight,target:c+b,distance:(c+b)-this._jqElement.originalRight,steps:[],direction:1},y2:{source:this._jqElement.originalBottom,target:h+j,distance:(h+j)-this._jqElement.originalBottom,steps:[],direction:1}};this._currentStep=0;this._maxDistance=this._dimensions.x1;for(var i in this._dimensions){var f=this._dimensions[i];if(f.distance<0){f.direction=-1;f.distance=Math.abs(f.distance)}if(f.distance>this._maxDistance.distance){this._maxDistance=f}}this.ComputeAnimationSteps();this._startTime=new Date().getTime();this._endTime=null;this._frames=0}Resizer2.prototype=new Effect();Resizer2.prototype.constructor=Resizer2;Resizer2.prototype._effectName="Resizer2";Resizer2.EffectName=Slider.prototype._effectName;Resizer2.Start=function(f,h,c,b,i,e,a,d){var g=new Resizer2(f,h,c,b,i,e,a,d);g.Start(true)};Resizer2.prototype.ApplyEffect=function(){if(!IsElementDetached(this._jqElement[0].id)){if(this._currentStep<this._dimensions.x1.steps.length){this._jqElement.css("left",parseInt(this._jqElement.position().left)+(this._dimensions.x1.steps[this._currentStep]*this._dimensions.x1.direction));this._jqElement.css("top",parseInt(this._jqElement.position().top)+(this._dimensions.y1.steps[this._currentStep]*this._dimensions.y1.direction));this._cumulativeRight+=(this._dimensions.x2.steps[this._currentStep]*this._dimensions.x2.direction);this._jqElement.css("width",(this._jqElement.originalRight+this._cumulativeRight)-this._jqElement.position().left);this._cumulativeHeight+=(this._dimensions.y2.steps[this._currentStep]*this._dimensions.y2.direction);this._jqElement.css("height",(this._jqElement.originalBottom+this._cumulativeHeight)-this._jqElement.position().top);this._currentStep++}else{this.Stop();this._endTime=new Date().getTime();var a=(this._endTime-this._startTime)/1000}}else{this.Stop()}};Resizer2.prototype.ComputeAnimationSteps=function(){this._maxDistance.steps=EasingHelper.ComputeAnimationSteps(this._minStep,this._maxStep,this._maxDistance.distance,3.5,3);for(var c in this._dimensions){var e=this._dimensions[c];if(e!=this._maxDistance){e.steps=EasingHelper.ComputeAnimationStepRatios(this._minStep,this._maxStep,this._maxDistance.distance,3.5,3);var d=0;for(var b=0;b<e.steps.length;b++){e.steps[b]=Math.floor(e.distance*(e.steps[b]*0.01));d+=e.steps[b]}if(d<e.distance){var f=e.distance-d;var a=0;while(f>0){e.steps[a++]++;f--;if(a==e.steps.length){a=0}}}}}};function EasingHelper(){}EasingHelper.StepCache={};EasingHelper.RatioCache={};EasingHelper.GetCacheKey=function(f,a,e,d,c,b){return f.toString()+a.toString()+e.toString()+d.toString()+c.toString()+(b?"1":"0")};EasingHelper.GetEaseValues=function(c,a,b){list=[];while(c<a){list[list.length]=Math.floor(c);c*=b}return list.slice()};EasingHelper.ComputeAnimationStepRatios=function(c,a,b,h,e,f){var k=EasingHelper.GetCacheKey(c,a,b,h,e,f);var g=EasingHelper.RatioCache[k];if(!g){g=[];var j=EasingHelper.ComputeAnimationSteps(c,a,b,h,e,f);for(var d=0;d<j.length;d++){g[g.length]=(j[d]*100)/b}EasingHelper.RatioCache[k]=g}return g.slice()};EasingHelper.ComputeAnimationSteps=function(j,s,e,c,f,p){p=p==undefined?true:p;var u=EasingHelper.GetCacheKey(j,s,e,c,f,p);var m=EasingHelper.StepCache[u];if(!m){var a=EasingHelper.GetEaseValues(j,s,c);var b=EasingHelper.GetEaseValues(j,s,f);var r=0;var n=0;var q=0;var o=false;var h=false;if(p){while(true){if(n<a.length&&r+a[n]<=e){r+=a[n++]}else{o=true}if(q<b.length&&r+b[q]<=e){r+=b[q++]}else{h=true}if(o&&h){break}if(n==a.length&&q==b.length){break}}}var t=r<e?e-r:0;var g=Math.floor(t/s);var d=t<s?t:t%s;m=[].concat(a.slice(0,n),NewArray(g,s),b.slice(0,q).reverse());r+=g*s;if(d>0){if(m.length>0){var l=m[0];for(var k=0;k<m.length;k++){if(d<m[k]||m[k]<l){m.splice(k,0,d);r+=d;break}if(m[k]>l){l=m[k]}}}else{m[0]=d}}EasingHelper.StepCache[u]=m}return m};
// portfolio.js
function PrioritizedQueue(a){this._q={};this.Length=0;this._front=0;this._back=0;this._name=a}PrioritizedQueue.prototype.EnQ=function(b,e,c,d){var a;if(true===d){a=--this._front}else{a=++this._back}this._q[b]={key:b,order:a,data:e,Process:c};this.Length++};PrioritizedQueue.prototype.DeQ=function(){var c=[];for(var b in this._q){c[c.length]=this._q[b]}if(c.length>0){c.sort(function(e,d){return e.order-d.order});var a=c[0];this.Length--;if(c.length>2){this._front=c[1].order}else{this._front=0;this._back=0}delete this._q[a.key];return a}return null};PrioritizedQueue.prototype.ToFront=function(a){if(this._q[a]){this._q[a].order=--this._front}};function Portfolio(a){this._metadata=a;this._galleries=[];this._currentGallery=2;this._currentZoomGallery=-1;this._currentPage=0;this._currentThumbnail=0;this._queuedForPreview=null;this._entryCount=0;this._thumbnailsComplete=0;this._thumbnailDownloadQueue=new PrioritizedQueue("thumbnails");this._imageDownloadQueue=new PrioritizedQueue("images");this._concurrentDownloads=4;this._activeDownloads=0;this._infoPanelStatus={imageIndex:null,timeoutId:null};this._infoPanels={};this._previewTimeoutId=null;this._zoomViewControlTimeoutId=null;this._isZoomViewControlFadingIn=false;this._isMouseOverZoomViewControl=false;this._isGalleryNavigatorSliding=false}Portfolio.prototype.ClearInfoPanelStatus=function(){this._infoPanelStatus.imageIndex=null;this._infoPanelStatus.timeoutId=null};Portfolio.prototype.CancelInfoPanelCollapse=function(a){if(this._infoPanelStatus.imageIndex==a){clearTimeout(this._infoPanelStatus.timeoutId);this._infoPanelStatus.timeoutId=null}};Portfolio.prototype.CollapseInfoPanel=function(a){var b=this;if(a.length>0){Resizer2.Start(a[0],parseInt(a.parent().height())+15,parseInt(a.position().left),a.outerWidth(true),0,3,7,function(){a.remove();b.ClearInfoPanelStatus()})}};Portfolio.prototype.ExpandInfoPanel=function(a,g){var e=this;var b=this._infoPanels[this._currentGallery+"."+a].clone().attr("id",NewID());if(b.length>0){Global.HiddenWorkspace.append(b);var f=parseInt(b.height());var c=g.outerHeight(true);var d=(c-f)+15;g.append(b.height(0).css("top",c));Resizer2.Start(b[0],d,parseInt(b.position().left),b.outerWidth(true),f,3,7,function(){e._infoPanelStatus.imageIndex=a})}return b};Portfolio.prototype.ImgHandler=function(b,a){this._thumbnailsComplete++;b.originalWidth=b.width;b.originalHeight=b.height;if(b.q.Length>0){this.ProcessNextDownloadQueueItem(b.q)}if(this._thumbnailsComplete==this._entryCount){this.ThumbnailsLoadedHandler()}};Portfolio.prototype.ImgLoadHandler=function(a){this.ImgHandler(a,a.src+" loaded");if(!a.isThumbnail){if(this._queuedForPreview==a.entryIndex&&this._currentGallery==a.galleryIndex){this.RenderPreview(this._queuedForPreview,$("#main.artPreview"),true)}$(this._galleries[a.galleryIndex].Thumbnails[a.entryIndex]).addClass("clickable")}};Portfolio.prototype.ImgErrorHandler=function(a){a.failed=true;this.ImgHandler(a,a.src+" failed to load")};Portfolio.prototype.LoadGalleryImage=function(a,b,d,i,h,g){var e=false==b?a.replace(/^S/,"L"):a;var f=this;var c=new Image();c.onload=function(){f.ImgLoadHandler(this)};c.onerror=function(){f.ImgErrorHandler(this)};c.q=d;c.gallery=i;c.key=a;c.filename=e;c.galleryIndex=h;c.entryIndex=g;c.isThumbnail=b;c.src=Global.ImgPath+e;this._activeDownloads++;return c};Portfolio.prototype.ThumbnailsLoadedHandler=function(){var a=this;$.each(this._metadata.Galleries,function(b,c){a.LoadGalleryImages(b,a._galleries[b],false)});$(function(){a.RenderPortfolio($("#thumbnails")[0])});$(function(){a.ShowPage(a._galleries[a._currentGallery],0)});$(function(){a.BindRolloverEffects()});$(function(){a.BindGalleryLinks()})};Portfolio.prototype.LoadGalleryImages=function(b,d,e){if(d.Metadata.Works){var g=this;var h=null;var c=null;if(e){h=this._thumbnailDownloadQueue;c=d.Thumbnails}else{h=this._imageDownloadQueue;c=d.Images}$.each(d.Metadata.Works,function(a,i){h.EnQ(i.Filename,i,function(){c[a]=g.LoadGalleryImage(i.Filename,e,h,d,b,a)})});for(var f=0;f<this._concurrentDownloads;f++){this.ProcessNextDownloadQueueItem(h)}}};Portfolio.prototype.ProcessNextDownloadQueueItem=function(b){var a=b.DeQ();if(a){a.Process()}};Portfolio.prototype.LoadPortfolio=function(){var a=this;$.each(this._metadata.Galleries,function(b,c){if(c.Works){a._entryCount+=c.Works.length}});$.each(this._metadata.Galleries,function(b,d){var c=a._galleries[b]={};c.Metadata=d;c.Thumbnails=[];c.Images=[];a.LoadGalleryImages(b,c,true)})};Portfolio.prototype.GetThumbnailBorder=function(a){return border=$(a).siblings(".thumbnailFrame")};Portfolio.prototype.FormatDateForDisplay=function(a){if(typeof(a)=="string"){a=new Date(a)}return Global.Months[a.getMonth()]+" "+a.getFullYear()};Portfolio.prototype.ApplyThumbnailHoverEffects=function(){var a=this;$(".thumbnailImage").hover(function(c){var d=a.GetThumbnailBorder(c.target);Fader.Start(d[0],1,0.2);var b=$(c.target).parent().attr("galleryItemIndex");a.RenderPreview(b,$("#main.artPreview"));a.CancelInfoPanelCollapse(b)},function(b){var c=a.GetThumbnailBorder(b.target);Fader.Start(c[0],0,0.05);var d=$(".infoPanelContainer");a._infoPanelStatus.timeoutId=setTimeout(function(){a.CollapseInfoPanel(d)},300)}).click(function(b){if($(b.target).parents(".thumbnail").hasClass("clickable")){a.Zoom(b)}})};Portfolio.prototype.RenderShadowBox=function RenderShadowBox(e){var d=this._currentGallery;if($(".zoomIn").length>0){d=this._currentZoomGallery}var c=this._metadata.Galleries[d].Works[e];var a=this._galleries[d].Images[e];var g=$(window).width()-50;var f=$(window).height()-200;var b=Scale({width:a.originalWidth,height:a.originalHeight},{width:g,height:f});var h=NewDiv().addClass("shadowBox").append(NewDiv().addClass("zoomView").css("width",b.width+2).append(NewDiv().addClass("image").append($(a).clone().css({width:b.width,height:b.height}))).append(NewDiv().addClass("caption").append(c.Caption)).append(NewDiv().addClass("metadata").append(c.Location+"/"+this.FormatDateForDisplay(c.CompletionDate))).append(NewDiv().addClass("invisibleClear")));return h};Portfolio.prototype.AdvanceZoomView=function(c){var b=$(".zoomIn");var a=parseInt(b.attr("galleryItemIndex"))+c;if(a<0||a==this._metadata.Galleries[this._currentZoomGallery].Works.length){this._currentZoomGallery+=c;if(this._currentZoomGallery<0||this._currentZoomGallery==this._metadata.Galleries.length){this._currentZoomGallery=c==1?0:this._metadata.Galleries.length-1}a=c==1?0:this._metadata.Galleries[this._currentZoomGallery].Works.length-1}return a};Portfolio.prototype.NavigateZoomView=function(f){this.BindNavigationControls($("#zoomViewNavControls"),false,false,false);var c=$(".zoomIn");var a=this.AdvanceZoomView(f);var g=this.RenderShadowBox(a).children(".zoomView");Global.HiddenWorkspace.append(g);var e=this.PositionZoomView(g);var b=NewDiv();b.addClass("zoomIn transition").append(g.children().css("opacity",1).end());$(".shadowBox").append(b.css("opacity",0));b.attr("galleryItemIndex",a).css({top:e.y,width:g.outerWidth(true),height:g.outerHeight(true)});b.css("margin-left",-(Math.ceil(b.outerWidth(true)/2))+(100*f));var d=this;c.animate({opacity:0},{duration:300,queue:false,easing:"linear",complete:function(){c.remove();d.BindNavigationControls($("#zoomViewNavControls"),true,true,true)}});c.animate({"margin-left":"-="+(100*f)},{duration:320,queue:false,easing:"swing"});b.animate({opacity:1},{duration:300,queue:false,easing:"linear"});b.animate({"margin-left":"-="+(100*f)},{duration:320,queue:false,easing:"swing"});$(Global.HiddenWorkspace[0].children).remove()};Portfolio.prototype.WireUpZoomViewControls=function(){var b=$("#zoomViewNavControls");var a=this;b.hover(function(){a._isMouseOverZoomViewControl=true;clearTimeout(a._zoomViewControlTimeoutId);var c=b.css("opacity");if(c<1){a._isZoomViewControlFadingIn=true;var d=GetRemainingAnimationDuration(0,c,1,500);b.stop(true).fadeTo(d,1,function(){a._isZoomViewControlFadingIn=false})}},function(){a._isMouseOverZoomViewControl=false;var c=GetRemainingAnimationDuration(1,b.css("opacity"),0.5,250);b.stop(true).fadeTo(c,0.75)});this.BindNavigationControls(b,true,true)};Portfolio.prototype.AnimateZoomViewClosure=function(){jqZoomView=$(".transition.zoomIn");jqZoomView.css("opacity",1).animate({top:"+=30"},{duration:200,queue:false,easing:"swing"});jqZoomView.animate({opacity:0},{duration:200,queue:false,easing:"swing",complete:function(){$("#zoomViewNavControls, body .shadowBox, body .opaque70").remove()}})};Portfolio.prototype.HideZoomViewControls=function(){var b=$("#zoomViewNavControls");this._isZoomViewControlFadingIn=false;var a=GetRemainingAnimationDuration(1,b.css("opacity"),0,250);b.fadeTo(a,0,function(){b.remove();this._isMouseOverZoomViewControl=false})};Portfolio.prototype.HandleZoomViewControlMouseMoveEvent=function(a){var c=this;if(MousePositionChanged(a)){clearTimeout(this._zoomViewControlTimeoutId);jqZoomViewControls=$("#zoomViewNavControls");if(jqZoomViewControls.length>0){var b=jqZoomViewControls.css("opacity");if(!this._isMouseOverZoomViewControl&&!this._isZoomViewControlFadingIn&&b<0.5){this._isZoomViewControlFadingIn=true;var d=GetRemainingAnimationDuration(0,b,0.5,250);jqZoomViewControls.stop(true).fadeTo(d,0.75,function(){c._isZoomViewControlFadingIn=false})}}else{this._isZoomViewControlFadingIn=true;$(".shadowBox").append($("#hiddenControlTemplateContainer #zoomViewNavControlsTemplate").clone().attr("id","zoomViewNavControls").css({top:$(".transition").offset().top}));$("#zoomViewNavControls").fadeTo(250,0.75,function(){c._isZoomViewControlFadingIn=false});c.WireUpZoomViewControls()}if(!this._isMouseOverZoomViewControl){this._zoomViewControlTimeoutId=setTimeout(function(){c.HideZoomViewControls()},1000)}}SetMousePosition(a)};Portfolio.prototype.PositionZoomView=function(f){var c=$(window).width();var h=$(window).height();var g=$(window).scrollTop();var a=parseInt(CssVal("thumbnailImage","margin-left"));var b=parseInt(CssVal("thumbnailImage","border-left-width"));var e=Math.round((c-(f.outerWidth(true)+((a+b)*2)))/2);var d=Math.round((h-(f.outerHeight(true)+((a+b)*2)))/2)+g;if(d<g){d=g}else{if(d<0){d=0}}return{x:e,y:d}};Portfolio.prototype.Zoom=function(i){this.CancelInfoPanelCollapse();this.ClearInfoPanelStatus();$(".infoPanelContainer").remove();this._currentZoomGallery=this._currentGallery;var j=$(i.target);var e=$("body");var b=parseInt(j.parent().attr("galleryItemIndex"));var a=this.RenderShadowBox(b).children(".zoomView");var c=NewID();var h=parseInt(CssVal("thumbnailImage","margin-left"));var d=parseInt(CssVal("thumbnailImage","border-left-width"));e.append(NewDiv().addClass("opaque70"));Global.HiddenWorkspace.append(a);j.siblings(".thumbnailFrame").clone().attr({id:c,galleryItemIndex:b}).removeAttr("style").removeClass("thumbnailFrame").addClass("transition zoomOut").css({left:j.offset().left-h,top:j.offset().top-h,width:j.outerWidth()-(d*2),height:j.outerHeight()-(d*2),"z-index":100}).appendTo(e);$(".zoomHack").remove();var f=this.PositionZoomView(a);var g=this;Resizer2.Start(e.children("#"+c),f.y,f.x,a.outerWidth(true),a.outerHeight(),10,50,function(){var k=$("#"+c);k.append(a).removeClass("zoomOut").addClass("zoomIn").css({"margin-left":-(Math.ceil(k.outerWidth(true)/2)),left:"50%"}).appendTo(NewDiv().addClass("shadowBox").appendTo(e));var l=$(".shadowBox");Fader.Start($(".zoomView .image")[0],1,0.15,function(){l.mousemove(function(m){g.HandleZoomViewControlMouseMoveEvent(m)});l.disableSelection()})})};Portfolio.prototype.RenderThumbnail=function(e,d){e=$(e);var b=parseInt(CssVal("thumbnailImage","margin-left"));var c=parseInt(CssVal("thumbnailImage","border-left-width"));var a=NewDiv().addClass("thumbnail").css({width:e[0].width+(b*2)+(c*2),height:e[0].height+(b*2)+(c*2)}).attr("galleryItemIndex",d).append(NewDiv().addClass("thumbnailFrame").width(e[0].width+(b*2)+(c*2)).height(e[0].height+(b*2)+(c*2))).append(e.attr({id:NewID()}).addClass("thumbnailImage").width(e[0].width).height(e[0].height));return a};Portfolio.prototype.RenderGallery=function(n,a,d){d=d?d:true;if(n.Metadata&&n.Metadata.Works){var h=this;$.each(n.Thumbnails,function(i,o){n.Thumbnails[i]=h.RenderThumbnail(o,i)});n.Pages=[];var k=$(a).width();var g=null;var e=0;for(var l=0;l<n.Thumbnails.length;l++){if(e==0){g=NewDiv().addClass("galleryPage");Global.HiddenWorkspace.append(g);n.Pages[n.Pages.length]=g}g.append(n.Thumbnails[l].css("left",e));e+=n.Thumbnails[l].outerWidth(true);if((l+1)<n.Thumbnails.length){Global.HiddenWorkspace.append(n.Thumbnails[l+1])}if(l==(n.Thumbnails.length-1)||e+n.Thumbnails[l+1].outerWidth(true)>k){if(d&&e<k&&e>=(k*0.66)){var m=k-e;var j=Math.floor(m/(g[0].children.length-1));var c=m%(g[0].children.length-1);for(var f=g[0].children.length-1;f>0;f--){var b=$(g[0].children[f]);b.css("left",parseInt(b.css("left"))+(j*f)+(c>0?c--:0))}}e=0}}$(Global.HiddenWorkspace[0].children).remove()}};Portfolio.prototype.RenderCurtain=function RenderCurtain(c,b){var a=NewDiv();a.addClass("curtain").css({width:c.outerWidth(),height:c.outerHeight(),top:c.offset().top,left:c.offset().left,opacity:b});return a};Portfolio.prototype.ReprioritizeQueue=function(b){for(var a=b.length-1;a>=0;a--){this._imageDownloadQueue.ToFront(b[a].key)}};Portfolio.prototype.ShowPage=function(b,f){this._currentPage=0;var d=$("#thumbnails");d.children().remove().end().append(b.Pages[f].find(".thumbnail").css("opacity",0).end()).append(NewDiv().addClass("invisibleClear")).find(".thumbnailFrame").css("visibility","hidden");var c=0;var a=0;var g=d.find(".thumbnail");var e=this;$.each(g,function(h,i){setTimeout(function(){Fader.Start(i,1,0.03,function(j){if(h==g.length-1){g.css("opacity",null).find(".thumbnailFrame").css("visibility","visible");e.ApplyThumbnailHoverEffects();e.BindNavigationControls($("#galleryNavigator"))}})},c);c+=75});this.RenderPreview(0,$("#main.artPreview"));this.SelectNavItem($("#galleryMenu .default[galleryIndex="+b.Metadata.Id+"]"));this.ReprioritizeQueue(g.children("img"))};Portfolio.prototype.RenderPortfolio=function(a){var b=this;$.each(this._galleries,function(){if(this.Metadata.Works){b.RenderGallery(this,a)}})};Portfolio.prototype.SlidePage=function(c){this.BindNavigationControls($("#galleryNavigator"),false,false);var a=$("#thumbnails").width();var d=parseInt($("#thumbnails .galleryPage").css("left"));this._currentPage+=c;$("#thumbnails .galleryPage").wrap(NewDiv("slider").css("width",a*2));if(c==1){$("#thumbnails #slider").append(this._galleries[this._currentGallery].Pages[this._currentPage].css("left",a))}else{$("#thumbnails #slider").css("left",-a+d).find(".galleryPage").css("left",a).end().prepend(this._galleries[this._currentGallery].Pages[this._currentPage].css("left",0))}var b=this;Slider.Start($("#thumbnails :first")[0],a,c==1?"<":">",false,function(){var e=c==1?" :last":" :first";$("#thumbnails :first").children(e).prependTo($("#thumbnails")).css("left","").end().end().remove();$(function(){b.ApplyThumbnailHoverEffects()});b.BindNavigationControls($("#galleryNavigator"),true,true)});this.ReprioritizeQueue(this._galleries[this._currentGallery].Pages[this._currentPage].find("img"))};Portfolio.prototype.AnimateNavControlStateChange=function(a,b,d){if(b=="disabled"){a.children(":not(:last)").remove();a.addClass("disabled").children(":last").fadeTo(75,0)}else{var c=NewDiv().addClass("navIcon "+b).css("opacity",0);a.removeClass("disabled").append(c);a.children().stop(true,false);c.fadeTo(75,1,function(){if(a.children().length>1){a.children(":not(:last)").remove()}if(d){d()}})}};Portfolio.prototype.SelectNavItem=function(b){var a=b.siblings().filter(".selected");if(a.length>0){a.removeClass("selected");this.UnhighlightNavItem(a)}this.HighlightNavItem(b);b.addClass("selected")};Portfolio.prototype.HighlightNavItem=function(b){if(b.hasClass("default")&&b.children(".mouseOver").length==0){var a=NewDiv().addClass("mouseOver").appendTo(b);a.stop(true,false).fadeTo(75,1)}};Portfolio.prototype.HighlightNavItemHandler=function(a){this.HighlightNavItem($(a.target))};Portfolio.prototype.UnhighlightNavItem=function(a){if(!a.hasClass("mouseOver")){a=a.children(".mouseOver")}if(!a.parent().hasClass("selected")){a.stop(true,false).fadeTo(400,0,function(){a.remove()})}};Portfolio.prototype.UnhighlightNavItemHandler=function(a){this.UnhighlightNavItem($(a.target))};Portfolio.prototype.UnbindNavigationControl=function(a){a.unbind("mousedown mouseup");this.AnimateNavControlStateChange(a,"disabled")};Portfolio.prototype.BindNavigationControl=function(a){var b=this;a.unbind();a.hover(function(c){b.HighlightNavControl(c)},function(c){b.UnhighlightNavControl(c)});a.bind("mousedown",function(c){b.PressNavControl(c)});a.bind("mouseup",function(c){b.ReleaseNavControl(c)});this.AnimateNavControlStateChange(a,a.hasClass("mouseOver")?"selected":"enabled")};Portfolio.prototype.IsNextZoomImageLoaded=function(c){var d=this._currentZoomGallery;var b=this.AdvanceZoomView(c);var a=$(this._galleries[this._currentZoomGallery].Thumbnails[b]).hasClass("clickable");this._currentZoomGallery=d;return a};Portfolio.prototype.BindNavigationControls=function(f,e,c,a){e=null==e?true:e;c=null==c?true:c;a=null==a?true:a;var g=f.children(".navPrev");var d=f.children(".navNext");if(f.attr("id")=="galleryNavigator"){if(e&&this._currentPage>0){this.BindNavigationControl(g)}else{this.UnbindNavigationControl(g)}if(c&&this._currentPage<(this._galleries[this._currentGallery].Pages.length-1)){this.BindNavigationControl(d)}else{this.UnbindNavigationControl(d)}}else{if(f.attr("id")=="zoomViewNavControls"){if(e&&this.IsNextZoomImageLoaded(-1)){this.BindNavigationControl(g)}else{this.UnbindNavigationControl(g)}if(c&&this.IsNextZoomImageLoaded(1)){this.BindNavigationControl(d)}else{this.UnbindNavigationControl(d)}var b=f.children(".navExit");if(a){this.BindNavigationControl(b)}else{this.UnbindNavigationControl(b)}}}};Portfolio.prototype.HighlightNavControl=function(a){var b=$(a.target);if(b.hasClass("navIcon")){b=b.parent()}if(!b.hasClass("mouseOver")){if(!b.hasClass("disabled")){this.AnimateNavControlStateChange(b,"selected")}}b.addClass("mouseOver")};Portfolio.prototype.UnhighlightNavControl=function(a){var b=$(a.target);if(b.hasClass("navIcon")){b=b.parent()}b.removeClass("mouseOver");if(!b.hasClass("disabled")){this.AnimateNavControlStateChange(b,"enabled")}};Portfolio.prototype.PressNavControl=function(a){var b=$(a.target);if(b.hasClass("navIcon")){b=b.parent()}this.AnimateNavControlStateChange(b,"pressed")};Portfolio.prototype.ReleaseNavControl=function(a){var b=this;var d=$(a.target);if(d.hasClass("navIcon")){d=d.parent()}var c=d.hasClass("navPrev")?-1:1;if(d.parent().attr("id")=="galleryNavigator"){b.SlidePage(c)}else{if(d.parent().attr("id")=="zoomViewNavControls"){if(d.hasClass("navExit")){this.AnimateZoomViewClosure()}else{b.NavigateZoomView(c)}}}};Portfolio.prototype.BindRolloverEffects=function(){var a=this;$("#mainMenu .default, #footer .default").hover(function(b){a.HighlightNavItemHandler(b)},function(b){a.UnhighlightNavItemHandler(b)});$("#galleryMenu .default").hover(function(b){a.HighlightNavItemHandler(b)},function(b){var c=$(b.target);if(!c.hasClass("mouseOver")){c=$(b.target).parent()}if(c.attr("galleryIndex")!=a._currentGallery){a.UnhighlightNavItemHandler(b)}});this.BindNavigationControls($("#galleryNavigator"))};Portfolio.prototype.BindMainMenuLinks=function(){var a=this;$("#mainMenu .default, #footer .default").click(function(b){var h=$(b.target);if(h.hasClass("mouseOver")){h=h.parent()}if(!h.hasClass("selected")){var d=h.attr("contentGroup");if(null==d){$("#contentBackground").remove();a.SelectNavItem($("#navPortfolio"));a.SelectNavItem($("#footerPortfolio"))}else{var c=$("#mainMenu .default[contentGroup="+d+"]");var f=$("#footer .default[contentGroup="+d+"]");a.SelectNavItem(c);a.SelectNavItem(f);var g=$("#application");var e=g.children("#contentBackground");if(e.length==0){e=$("#hiddenControlTemplateContainer #contentBackgroundTemplate").clone().attr("id","contentBackground");e.children(".contentBackgroundPointer[contentGroup="+d+"]").insertBefore(e.children(".contentArea")).css("display","block");g.append(e)}else{e.children(".contentBackgroundPointer").css("display","none").end().children(".contentBackgroundPointer[contentGroup="+d+"]").insertBefore(e.children(".contentArea")).css("display","block")}e.children(".contentArea").children(".content").css("display","none").filter("[contentGroup="+d+"]").css("display","block");if(d=="contact"){WireUpContactForm()}}}})};Portfolio.prototype.BindGalleryLinks=function(){var a=this;$("#galleryMenu .default").click(function(b){var c=$(b.target);if(c.hasClass("mouseOver")){c=c.parent()}if(!c.hasClass("selected")){a.SelectNavItem(c);a._currentGallery=parseInt(c.attr("galleryIndex"));a.ShowPage(a._galleries[a._currentGallery],0);a.BindNavigationControls($("#galleryNavigator"),true,true)}})};Portfolio.prototype.BindPreviewClickHandler=function(){var a=$("#artPreview");var b=this;a.click(function(c){var e=a.find("img");var d=e[0].entryIndex;var f=e.clone().attr("id",NewID());f=b.RenderThumbnail(f[0],d);var i=a.offset().top-a.parent().offset().top;var h=a.offset().left-a.parent().offset().left;f.css({left:h+4,top:i+4,position:"absolute"}).addClass("zoomHack");a.parent().prepend(f);var g=f.find("img");g.removeAttr("style").width(e.width()).height(e.height());c.target=g;b.Zoom(c)})};Portfolio.prototype.RenderPreview=function(a,r,p){if(null!=this._infoPanelStatus.imageIndex){clearTimeout(this._infoPanelStatus.timeoutId)}var t=this._galleries[this._currentGallery].Images[a];if(t&&true!=t.failed&&(t.complete||p)){var x=NewID();var i=NewID();Global.HiddenWorkspace.append(NewDiv(i).append($(t).attr("id",x)));var z=$("#"+x);var l=9,e=9,g=8,u=8;var m=8,h=8,j=7,w=7;var c=parseInt(z.width());var o=parseInt(z.height());var D=parseInt(r.width());var f=parseInt(r.height());var y=D-m-j;var b=f-h-w;var v=Scale({width:c,height:o},{width:y,height:b});var s=v.width-(l-m)-(g-j);var B=v.height-(e-h)-(u-w);var d=v.width+m+j;var q=v.height+h+w;r.empty();NewDiv("artPreview").css({top:Math.floor((f-q)/2),width:d,height:q}).addClass("clickable").append(NewDiv("artPreviewFrame").height(e+B+u).append(NewDiv().addClass("artPreviewFrameRow1").width(l+g+s).height(e).append(NewDiv().addClass("topLeft")).append(NewDiv().addClass("topMiddle").width(s)).append(NewDiv().addClass("topRight"))).append(NewDiv().addClass("artPreviewFrameRow2").width(l+g+s).height(B).append(NewDiv().addClass("left").height(B)).append(NewDiv().addClass("right").height(B))).append(NewDiv().addClass("artPreviewFrameRow3").width(l+g+s).height(u).append(NewDiv().addClass("bottomLeft")).append(NewDiv().addClass("bottomMiddle").width(s)).append(NewDiv().addClass("bottomRight")))).append(NewDiv("artPreviewImage").css({left:m,top:h}).append(z.width(v.width).height(v.height))).appendTo(r);Global.HiddenWorkspace.find("#"+i).remove();var n=this._metadata.Galleries[this._currentGallery].Works[a];var k=this._infoPanels[this._currentGallery+"."+a];if(!k){var k=NewDiv().addClass("infoPanelContainer").append(NewDiv().addClass("infoPanel").append(NewDiv().addClass("caption").append(n.Caption)).append(NewDiv().addClass("invisibleClear")));r.append(k);this._infoPanels[this._currentGallery+"."+a]=k.clone()}else{if(null==this._infoPanelStatus.imageIndex){k=this.ExpandInfoPanel(a,r)}else{r.append(k.clone())}}var C=this;this._infoPanelStatus.imageIndex=a;this._infoPanelStatus.timeoutId=setTimeout(function(){C.CollapseInfoPanel($(".infoPanelContainer"))},3000);this.BindPreviewClickHandler()}else{r.children().remove().end().append(NewDiv("waitPreview"));this._queuedForPreview=a;var A=this._galleries[this._currentGallery].Metadata.Works[a].Filename;this._imageDownloadQueue.ToFront(A)}};
// main.js
function WireUpContactForm(){var a=$("#contentBackground .content[contentGroup=contact] form");a.bind("submit",function(b){a.find(".submitButton").attr("disabled","disabled").val("Thank you!");b.preventDefault();$.post($(this).attr("action"),$(this).serialize(),null,"html");return false})}var portfolio=new Portfolio(Global.RamonaBalazPortfolioMetadata);$(function(){portfolio.BindMainMenuLinks();portfolio.SelectNavItem($("#navPortfolio"));portfolio.SelectNavItem($("#footerPortfolio"));portfolio.LoadPortfolio();$("#patternContainer *, #topGradient *, #header *, #mainMenu *, #galleryNew *, #footer *").disableSelection()});
