var Portfolio={toggleHeightHidden:55,toggleHeightShown:420,imageWidth:450,imageHeight:400,thumbsLimit:18,thumbsTimes:[10,50,150,250,350,450],$moreOrLess:null,$moreOrLessMoreText:null,$moreOrLessLessText:null,$about:null,$butPrev:null,$butNext:null,$year:null,$title:null,$description:null,$myPart:null,$website:null,$websiteTitle:null,$image:null,$thumbsTitle:null,$thumbsList:null,isLoading:true,isAboutToggled:false,isAboutExpanded:false,templates:{image:'<img src="{Src}" width="450" height="400" alt="{Alt}"/>',description:"<p>{Text}</p>",thumb:'<li><a class="thumb" title="{Desc}" href="{Detail}"><img src="{Thumb}" width="50" height="50" alt="{Desc}"/></a></li>',thumbPad:"<li/>"},isOldAnim:null,ieInfoLeftMargin:22,ieInfoLeftMarginHidden:-200,init:function(){var e=this,f,d=$("#project");this.isOldAnim=!Modernizr.csstransitions;this.$butPrev=$("#button-prev").bind("click",function(){e.showPrevProject($(this).attr("href").substr(1))});this.$butNext=$("#button-next").bind("click",function(){e.showNextProject($(this).attr("href").substr(1))});$(document).bind("keydown",function(a){var c=a.keyCode,j=e.$butPrev,k=e.$butNext,b;if(c===37&&!j.hasClass("button-hidden")){b=j.attr("href");e.showPrevProject(b.substr(1));window.location.hash=b;return false}else{if(c===39&&!k.hasClass("button-hidden")){b=k.attr("href");e.showNextProject(b.substr(1));window.location.hash=b;return false}else{if(c===77||c===187){if(!e.isAboutExpanded){e.toggleAbout()}}else{if(c===76||c===189){if(e.isAboutExpanded){e.toggleAbout()}}}}}});this.$moreOrLess=$("#moreOrLess");this.$moreOrLessMoreText=this.$moreOrLess.find("#more");this.$moreOrLessLessText=this.$moreOrLess.find("#less");this.$about=$("#about");this.$moreOrLess.bind("click",function(){e.toggleAbout();return false});$.each(["year","title","description","myPart","website","websiteTitle","image","thumbsTitle","thumbsList"],function(b,a){e["$"+a]=d.find("#"+a)});this.$website.unbind("click").bind("click",function(){var a=$(this).data("web-url");window.open(a);return false});this.$thumbsList.delegate("a.thumb","click",function(){e.thumbSelected($(this));return false});if(this.isOldAnim){$.each([this.$year,this.$title,this.$websiteTitle,this.$thumbsTitle],function(b,a){a.hide()});this.$description.css({marginLeft:this.ieInfoLeftMarginHidden});this.$myPart.css({marginLeft:this.ieInfoLeftMarginHidden});this.$about.css({height:this.toggleHeightHidden})}f=window.location.hash;this.loadProject((f&&f.length>1)?f.substr(1):null)},toggleAbout:function(){if(this.isAboutToggled){return}var k=700,p=k*0.7,o=k-p-0.1,l=this.$moreOrLessMoreText.hasClass("hidden"),i=(l?this.$moreOrLessMoreText:this.$moreOrLessLessText),n=(l?this.$moreOrLessLessText:this.$moreOrLessMoreText),j,m=this;this.isAboutToggled=true;this.$about.toggleClass("shown");if(this.isOldAnim){j=(l?this.toggleHeightHidden:this.toggleHeightShown);this.$about.animate({height:j},{duration:k,easing:"easeInCubic"})}n.fadeOut({duration:p,complete:function(){n.addClass("hidden");i.removeClass("hidden").fadeIn(o);m.isAboutToggled=false;m.isAboutExpanded=m.$about.hasClass("shown")}})},enableButton:function(g,f){var h,e=this;if(!f){return}h=(g==="next"?this.$butNext:this.$butPrev);h.attr("href","#"+f).removeClass("button-hidden").addClass("trans-show");setTimeout(function(){e.isLoading=false},300)},disableButtons:function(){var d=this.$butNext,c=this.$butPrev;d.removeClass("trans-show");c.removeClass("trans-show");setTimeout(function(){if(!d.hasClass("button-hidden")){d.addClass("button-hidden")}if(!c.hasClass("button-hidden")){c.addClass("button-hidden")}},300)},showYear:function(b){this.$year.text(b).addClass("trans-show");if(this.isOldAnim){this.$year.fadeIn(1000)}},hideYear:function(){this.$year.removeClass("trans-show");if(this.isOldAnim){this.$year.fadeOut(1000)}},showTitle:function(b){this.$title.text(b).addClass("trans-show");if(this.isOldAnim){this.$title.fadeIn(1000)}},hideTitle:function(){this.$title.removeClass("trans-show");if(this.isOldAnim){this.$title.fadeOut(1000)}},showDescription:function(g){var e=this.$description,f=this.isOldAnim,h=this.ieInfoLeftMargin;setTimeout(function(){e.text(g).addClass("trans-show");if(f){e.animate({marginLeft:h},1000,"easeOutQuad")}},500)},hideDescription:function(){this.$description.removeClass("trans-show");if(this.isOldAnim){this.$description.stop().animate({marginLeft:this.ieInfoLeftMarginHidden},800,"easeInQuad")}},showMyPart:function(g){var e=this.$myPart,f=this.isOldAnim,h=this.ieInfoLeftMargin;setTimeout(function(){e.text(g).addClass("trans-show");if(f){e.animate({marginLeft:h},1000,"easeOutQuad")}},600)},hideMyPart:function(){var d=this.$myPart,e=this.isOldAnim,f=this.ieInfoLeftMarginHidden;setTimeout(function(){d.removeClass("trans-show");if(e){d.stop().animate({marginLeft:f},800,"easeInQuad")}},200)},showWebsite:function(c,d){if(!d){return}this.$websiteTitle.text(c);this.$website.data("web-url",d).removeClass().addClass("trans-show");if(this.isOldAnim){this.$websiteTitle.fadeIn(1000)}},hideWebsite:function(){var b=this.$website.removeClass("trans-show");setTimeout(function(){b.addClass("invisible")},600);if(this.isOldAnim){this.$websiteTitle.fadeOut(1000)}},showDetail:function(g,i){var j=this.$image,k,l,h=this.isOldAnim;k=$(this.templates.image.replace("{Src}",g).replace("{Alt}",i)).bind("load",function(){var a=$(this);setTimeout(function(){a.addClass("trans-show");if(h){a.fadeIn(800)}},200)});j.append(k);if(h){k.hide()}l=$(this.templates.description.replace("{Text}",i));j.append(l);if(h){l.hide().fadeIn(1000)}setTimeout(function(){l.addClass("trans-show")},10)},hideDetail:function(){var f=this.$image.find("img"),d=this.$image.find("p"),e=this.isOldAnim;f.addClass("trans-hide");if(e){f.fadeOut(800)}setTimeout(function(){f.remove()},900);d.addClass("trans-hide");setTimeout(function(){d.remove()},400)},showThumbsTitle:function(){this.$thumbsTitle.addClass("trans-show");if(this.isOldAnim){this.$thumbsTitle.fadeIn(1000)}},hideThumbsTitle:function(){this.$thumbsTitle.removeClass("trans-show");if(this.isOldAnim){this.$thumbsTitle.fadeOut(1000)}},showThumbs:function(l){var q=this.$thumbsList,m,o,p=(l.length>this.thumbsLimit?this.thumbsLimit:l.length),r=this.templates.thumb,n=$(this.templates.thumbPad),i,k=!this.isOldAnim;for(m=0;m<p;m++){o=l[m];if(m===17){q.append(n)}i=$(r.replace("{Detail}",o.detail).replace("{Desc}",o.desc).replace("{Thumb}",o.thumb)).find("a").addClass("thumb"+m).end();(function(a){i.find("img").bind("load",function(){var b=$(this).parent(),c=parseInt(6*Math.random(),10);if(k){setTimeout(function(){b.removeClass("thumb"+a)},Portfolio.thumbsTimes[c])}else{b.hide();setTimeout(function(){b.removeClass("thumb"+a);b.fadeIn(600)},500+a*100)}})}(m));q.append(i)}},hideThumbs:function(){var e=this.thumbsTimes[this.thumbsTimes.length-1],g=this.$thumbsList,h=0,f=this.isOldAnim;g.find("li").each(function(){var a=$(this).addClass("to-be-removed").find("a");if(a.length){a.addClass("thumb"+(h++));if(f){a.fadeOut(400+h*100)}}});setTimeout(function(){g.find(".to-be-removed").remove()},(f?400+h*100:e))},thumbSelected:function(b){this.hideDetail();this.showDetail(b.attr("href"),b.attr("title"))},loadProject:function(c){var d=this;$.ajax({url:"/ajax/",type:"POST",data:{call:"getProject",url:c},dataType:"json",success:function(a){if(a.result==="none"){window.location="/"}else{d.showProject(a.data)}}})},showProject:function(b){this.enableButton("next",b.next);this.enableButton("prev",b.prev);this.showYear(b.year);this.showTitle(b.name);this.showDescription(b.description);this.showMyPart(b.myPart);this.showWebsite(b.webTitle,b.webUrl);this.showDetail(b.images[0].detail,b.images[0].desc);this.showThumbsTitle();this.showThumbs(b.images)},hideProject:function(){this.disableButtons();this.hideYear();this.hideTitle();this.hideDescription();this.hideMyPart();this.hideWebsite();this.hideDetail();this.hideThumbsTitle();this.hideThumbs()},showNextProject:function(d){var c=this;if(this.isLoading){return false}this.isLoading=true;this.hideProject();setTimeout(function(){c.loadProject(d)},900)},showPrevProject:function(d){var c=this;if(this.isLoading){return false}this.isLoading=true;this.hideProject();setTimeout(function(){c.loadProject(d)},900)}};
