var DetailViewToggleNotification="DetailViewToggleNotification";var DetailView=Class.create(Widget,{widgetIdentifier:"com-apple-iweb-widget-detailview",initialize:function($super,f,a,b,e,d,c){if(f!=null){$super(f,a,b,e,d,c);this.mIsActive=false;this.mShowingThumbnails=false;this.needsHeightSet=true;this.p_setHeight();this.updateFromPreferences();if(this.runningInApp){this.postToggleNotification(true)}}},onload:function(){this.p_updateSlideshow();this.p_updateDownloadVisibility();this.p_addEvent(document,"onkeydown",this.p_keyDown.bind(this),true);this.p_addEvent(document,"onkeyup",this.p_keyUp.bind(this),true);this.div().select(".noselect").each(function(a){if(windowsInternetExplorer){a.onselectstart=function(){return false}}else{a.onmousedown=function(){return false}}})},onunload:function(){},loadFromStream:function(a){if(a){a.load(this.p_baseURL(),this.onStreamLoad.bind(this))}},onStreamLoad:function(e){this.mCurrentMediaStream=e;this.mThumbnailsInvalid=true;var c=this.getElementById("slideshow_placeholder");var g=this.getElementById("slideshow_anchor");if(this.mSlideshow!=null){this.mSlideshow.pause();c.innerHTML=""}var h=[];for(var b=0;b<e.length;++b){h.push(e[b].slideshowValue("image"))}var j={backgroundColor:this.p_backgroundColor(),scaleMode:this.p_scaleMode(),advanceAnchor:g};this.mSlideshow=new Slideshow(c,h,this.p_onPhotoChange.bind(this),j);this.mSlideshow.setTransitionIndex(1);this.mSlideshow.pause();if(this.preferences){var f=this.preferenceForKey("movie overlay");if(f&&IWImageNamed("movie overlay")===null){IWRegisterNamedImage("movie overlay",f)}}if(this.runningInApp){this.p_updateCanvasControls();this.p_setupThumbnails();var d=this.p_startIndex();this.p_updateThumbScrollers(d);this.mSlideshow.showPhotoNumber(d);var a=this.div().selectFirst(".Caption");a.innerHTML="&#160;";a.id="caption"}},downloadPhoto:function(){var b=this.mSlideshow.currentPhotoNumber;var c=this.mCurrentMediaStream[b];var a=c.targetURL();a+=(a.indexOf("?")==-1)?"?":"&";a+="disposition=download";window.location.href=a},toggleThumbnails:function(){var a=this.mShowingThumbnails==false;this.p_toggleThumbnails(a,true);this.setPreferenceForKey(a,"showThumbnails")},willShow:function(a){if(!this.mCanvasControlsSetUp){this.mCanvasControlsSetUp=true;this.p_updateCanvasControls()}this.p_setupThumbnails();if(this.needsHeightSet){this.p_setHeight()}else{if(this.mSlideshow){this.mSlideshow.updateSize()}}this.p_updateThumbScrollers(a)},showPhotoNumber:function(a,b){this.mIsActive=true;this.p_updateThumbScrollers(a);this.photoChangeCallback=b;this.mSlideshow.showPhotoNumber(a)},height:function(){return this.getElementById("middle").offsetHeight},postToggleNotification:function(b){this.mIsActive=b;var c={showDetailView:b};if(this.mSlideshow){c.index=this.mSlideshow.currentPhotoNumber}if(this.runningInApp){this.preferences.postCrossWidgetNotification("IWCommentTargetChanged",{});this.setPreferenceForKey(b,"inDetailView")}else{NotificationCenter.postNotification(new IWNotification("IWCommentTargetChanged",null,{}));var a=this.preferenceForKey("gridID");NotificationCenter.postNotification(new IWNotification(DetailViewToggleNotification,a,c))}},exitDetailView:function(){this.mIsActive=false;if(this.mSlideshow){this.mSlideshow.inactivate()}this.postToggleNotification(false)},playSlideshow:function(){if(this.mPlaySlideshowFunction){this.mPlaySlideshowFunction()}},setPlaySlideshowFunction:function(a){this.mPlaySlideshowFunction=a},p_setHeight:function(){if(this.needsHeightSet){var f=this.getElementById("slideshow_placeholder");var c=f.offsetWidth;if(c>0){var b=px(c*3/4);if(b!=parseFloat(f.style.height)){f.parentNode.style.height=b;f.style.height=b;if(this.mSlideshow){this.mSlideshow.updateSize()}this.needsHeightSet=false;if(this.runningInApp&&!window.onresize){window.onresize=function(){this.needsHeightSet=true;this.p_setHeight()}.bind(this)}}}this.div().style.height="";var e=this.getElementById("footer_controls");var a=this.preferenceForKey("gridID");var d=Position.cumulativeOffset(e)[1]+e.offsetHeight;if(d){NotificationCenter.postNotificationWithInfo("DetailViewHeightNotification",a,{top:d})}}},p_setupThumbnails:function(){if(this.p_showThumbnails()){if(!this.mShowingThumbnails){this.p_toggleThumbnails(true,false)}}else{this.p_buildThumbnailView()}},p_toggleThumbnails:function(o,b){if(this.mShowingThumbnails!=o){var l=this.getElementById("thumbnail_view");var g=this.getElementById("thumbnails_back");var h=this.getElementById("thumbnails_forward");var k=this.getElementById("view");var j=k.select(".thumbs_on_only");var a=k.select(".thumbs_off_only");var c=59;if(o){this.mShowingThumbnails=true;if(b){var d=new SimpleAnimation(function(){});d.duration=300;d.pre=function(){g.style.opacity=h.style.opacity=0;g.style.visibility=h.style.visibility="visible";l.show()};d.post=function(){l.style.height=px(c);g.style.opacity=h.style.opacity=1};d.update=function(i){l.style.height=px(c*i);g.style.opacity=h.style.opacity=i};d.start()}else{g.style.visibility=h.style.visibility="visible";g.style.opacity=h.style.opacity=1;l.style.height=px(c);l.show()}var n=this.getElementById("thumbnails");var m=n.select(".thumbnail");if(m.length>this.mSlideshow.currentPhotoNumber){var e=m[this.mSlideshow.currentPhotoNumber];if(e){this.p_ensureThumbnailIsVisible(e,true)}}for(var f=0;f<j.length;++f){j[f].style.display="inline"}for(f=0;f<a.length;++f){a[f].style.display="none"}this.p_buildThumbnailView()}else{this.mShowingThumbnails=false;for(var f=0;f<j.length;++f){j[f].style.display="none"}for(f=0;f<a.length;++f){a[f].style.display="inline"}if(b){var d=new SimpleAnimation(function(){});d.duration=300;d.pre=function(){};d.post=function(){l.style.height=px(1);g.style.visibility=h.style.visibility="hidden";l.hide()};d.update=function(i){l.style.height=px(Math.max(1,c*(1-i)));g.style.opacity=h.style.opacity=1-i};d.start()}else{l.style.height=px(1);g.style.visibility=h.style.visibility="hidden";l.hide()}}}},p_setThumbnail:function(b,c){var a=56;c.load(function(e,j){e.src=j.sourceURL();var f=j.naturalSize();var h=Math.min(f.width,f.height);var i=a/h;var g=i*f.width;var d=i*f.height;$(e).setStyle({position:"absolute",left:px(Math.round((a-g)/2)),top:px(Math.round((a-d)/2)),width:px(Math.round(g)),height:px(Math.round(d))});j.unload()}.bind(null,b,c))},p_buildThumbnailView:function(){if(this.mThumbnailsInvalid){var h=this.getElementById("thumbnail_view");var e=this.getElementById("thumbnails_back");var f=this.getElementById("thumbnails_forward");this.mThumbnailsInvalid=false;var j=this.getElementById("thumbnails");var m=56;var n=3;var g=this.preferenceForKey("currentPhoto")||0;for(var d=0;d<this.mCurrentMediaStream.length;++d){var c=$(document.createElement("a"));var a=$(document.createElement("div"));a.className="thumbnail";a.setStyle({position:"absolute",top:0,left:px(d*(m+n))});if(windowsInternetExplorer&&(effectiveBrowserVersion<7)){a.setStyle({width:px(m),height:px(m)})}if(d==g){$(a).addClassName("selected")}var k=this.mCurrentMediaStream[d];var l=IWStreamEntryBadgeMarkup(new IWRect(0,0,m,m),k.isMovie(),false,null);if(l&&l.length>0){a.innerHTML=l}var b=document.createElement("img");c.href="#"+d;c.onclick=function(p,o){setTimeout(o.showPhotoNumber.bind(o,p,true),0)}.bind(null,d,this.mSlideshow);c.appendChild(b);a.insertBefore(c,a.firstChild);j.appendChild(a)}this.p_updateThumbScrollers(g);e.onclick=function(){var i=this.getElementById("thumbnails");var p=0;if(i.style.left){p=-parseFloat(i.style.left)}if(p>0){var q=(m+n);var o=Math.floor(i.parentNode.offsetWidth/q);this.p_setThumbnailLeft(Math.max(p-o*q,0),true)}}.bind(this);f.onclick=function(){var i=this.getElementById("thumbnails");var q=0;if(i.style.left){q=-parseFloat(i.style.left)}if(this.p_enableForward(i)){var r=m+n;var p=i.parentNode.offsetWidth;var o=Math.floor(p/r);this.p_setThumbnailLeft(Math.min(q+o*r,this.p_lastThumnbailRight()-p),true)}}.bind(this)}},p_updateThumbScrollers:function(d){var a=this.getElementById("thumbnails");var b=this.getElementById("thumbnails_back");var c=this.getElementById("thumbnails_forward");if(d!==undefined){var e=a.select(".thumbnail")[d];if(e){this.p_ensureThumbnailIsVisible(e,false)}}var f=parseFloat(a.style.left);var g=b.select("img");if(f<0){g[0].style.display="none";g[1].style.display="inline"}else{g[0].style.display="inline";g[1].style.display="none"}var g=c.select("img");if(this.p_enableForward(a)){g[0].style.display="none";g[1].style.display="inline"}else{g[0].style.display="inline";g[1].style.display="none"}},p_enableForward:function(a){var d=false;var g=a.select(".thumbnail");if(g&&g.length>0){var e=g[g.length-1];var f=0;if(a.style.left){f=parseFloat(a.style.left)}var b=a.parentNode.offsetWidth;var c=b-f;if(e.offsetLeft+e.offsetWidth>c){d=true}}return d},p_showSlideshow:function(){var a=this.preferenceForKey("showSlideshow");(function(){return a!==undefined}).assert();return a},p_updateSlideshow:function(){this.div().select(".play_slideshow").invoke(this.p_showSlideshow()?"show":"hide")},p_showDownload:function(){var c=4;var b=this.preferenceForKey("photoSize");var a=(b==null||b!=c);return a},p_updateDownloadVisibility:function(){this.getElementById("download").style.visibility=(this.p_showDownload()?"visible":"hidden")},changedPreferenceForKey:function(h){if(h=="mediaStream"||h=="mediaStreamObject"){var i=this.p_mediaStream();if(i!==null){this.loadFromStream(i)}}else{if(h=="captionHeight"){var d=this.div().selectFirst(".Caption");d.style.height=px(this.preferenceForKey("captionHeight"))}else{if(h=="movieTime"){this.mSlideshow.setMovieTime(this.preferenceForKey(h))}else{if(h=="movieParams"){var a=this.preferenceForKey(h);this.mCurrentMediaStream[this.mSlideshow.currentPhotoNumber].setMovieParams(a);this.mSlideshow.setMovieParams(a)}else{if(h=="canvas controls"){this.p_updateCanvasControls()}else{if(h=="currentImageURL"){var g=this.mCurrentMediaStream[this.mSlideshow.currentPhotoNumber];g.setImageURL(this.preferenceForKey(h));this.mSlideshow.setImage(g.image())}else{if(h=="currentThumbnailURL"){var g=this.mCurrentMediaStream[this.mSlideshow.currentPhotoNumber];var b=this.preferenceForKey(h);g.setThumbnailURL(b);if(this.mThumbnailsInvalid==false){var e=this.getElementById("thumbnails");var f=e.selectFirst(".selected");var c=$(f).selectFirst("img");this.p_setThumbnail(c,g.thumbnail())}}else{if(h=="showSlideshow"){this.p_updateSlideshow()}else{if(h=="photoSize"){this.p_updateDownloadVisibility()}}}}}}}}}},updateFromPreferences:function(){var a=this.p_mediaStream();this.loadFromStream(a)},p_updateCanvasControls:function(){var a=this.preferenceForKey("canvas controls");this.div().select(".canvas").each(function(b){var c="canvas_"+b.classNames().toArray()[1];setImgSrc(b,a[c])})},p_onPhotoChange:function(e){var f=this.mCurrentMediaStream[e];var d=f.commentAssetURL();if(this.runningInApp){d="iweb-widget:Comments/"+f.guid();this.preferences.postCrossWidgetNotification("IWCommentTargetChanged",{IWResourceURL:d})}else{if(this.mIsActive){NotificationCenter.postNotification(new IWNotification("IWCommentTargetChanged",null,{IWResourceURL:d}))}var b=this.div().selectFirst(".Caption");if(b){b.update(f.title())}}var c=this.getElementById("thumbnails");var g=c.selectFirst(".selected");if(g){g.removeClassName("selected")}var a=c.select(".thumbnail")[e];if(a){a.addClassName("selected");this.p_ensureThumbnailIsVisible(a,true)}this.p_updatePreviousNextControls(e);this.setPreferenceForKey(e,"currentPhoto");if(this.photoChangeCallback){this.photoChangeCallback();this.photoChangeCallback=null}},p_lastThumnbailRight:function(){var a=this.getElementById("thumbnails");var d=a.select(".thumbnail");var b=d[d.length-1];var c=b.offsetLeft+b.offsetWidth;return c},p_ensureThumbnailIsVisible:function(h,b){if(this.mShowingThumbnails){var a=this.getElementById("thumbnails");var d=0;if(a.style.left){d=parseFloat(a.style.left)}var e=new IWRange(-d,a.parentNode.offsetWidth);var c=h.offsetLeft;var f=c+h.offsetWidth;var g=e.location();if(f>e.max()){var g=c;g=Math.min(g,this.p_lastThumnbailRight()-e.length())}else{if(c<e.location()){var g=f-e.length();g=Math.max(g,0)}}this.p_setThumbnailLeft(g,b)}},p_setThumbnailLeft:function(i,a){var k=this.getElementById("thumbnails");var b=0;if(k.style.left){b=parseFloat(k.style.left)}var o=56;var p=3;var m=(o+p);var f=Math.ceil(k.parentNode.offsetWidth/m);var l=new IWRange(Math.floor(i/m),f);var j=k.select(".thumbnail > a > img");for(var g=l.location(),d=Math.min(l.max(),j.length);g<d;++g){var e=j[g];if(e.src===undefined||e.src==""){var n=this.mCurrentMediaStream[g];this.p_setThumbnail(e,n.micro())}}var h=-b-i;if(h!=0){if(a){var c=new SimpleAnimation(function(){});c.pre=function(){};c.post=function(){k.style.left=px(b+h);this.p_updateThumbScrollers()}.bind(this);c.update=function(q){k.style.left=px(b+h*q)};c.start()}else{k.style.left=px(b+h);this.p_updateThumbScrollers()}}},p_updatePreviousNextControls:function(c){var h=this.getElementById("previous").select("span");var b=this.getElementById("next").select("span");var e=c==0;var d=c>=this.mCurrentMediaStream.length-1;var g=function(k,j){setTimeout(j.showPhotoNumber.bind(j,k,true),0)};if(e){h[0].show();h[1].hide()}else{var f=c-1;h[0].hide();h[1].show();$(h[1]).select("a").each(function(i){i.href="#"+f;i.onclick=g.bind(null,f,this.mSlideshow)}.bind(this))}if(d){b[0].show();b[1].hide()}else{var a=c+1;b[0].hide();b[1].show();$(b[1]).select("a").each(function(i){i.href="#"+a;i.onclick=g.bind(null,a,this.mSlideshow)}.bind(this))}},p_mediaStream:function(){var mediaStream=null;if(this.preferences){mediaStream=this.preferenceForKey("mediaStreamObject");if(mediaStream==null||mediaStream==undefined){var mediaStreamCode=this.preferenceForKey("mediaStream");if(mediaStreamCode!=null&&mediaStreamCode.length>0){mediaStream=eval(mediaStreamCode)}}}return mediaStream},p_backgroundColor:function(){var a=null;if(this.preferences){a=this.preferenceForKey("color")}if(a===undefined){a="transparent"}return a},p_baseURL:function(){return this.preferenceForKey("baseURL")},p_startIndex:function(){var a=null;if(this.preferences){a=this.preferenceForKey("startIndex")}if(a===undefined){a=0}return a},p_showThumbnails:function(){var a=null;if(this.preferences){a=this.preferenceForKey("showThumbnails")}if(a===undefined){a=false}return a},p_scaleMode:function(){var a=null;if(this.preferences){a=this.preferenceForKey("scaleMode")}if(a===undefined){a="fit"}return a},p_addEvent:function(b,c,d,a){if(b.addEventListener){c=c.length>2?c.substring(2):c;a=a?a:false;b.addEventListener(c,d,a)}else{if(b.attachEvent){b.attachEvent(c,d)}else{try{b.setAttribute(c,d)}catch(f){}}}},p_keyDown:function(a){},p_keyUp:function(a){a=a?a:(window.event?window.event:"");var b=a.which?a.which:a.keyCode;switch(b){case 37:a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}if(!(window.isWebKit&&window.isEarlyWebKitVersion)){location.hash=this.mSlideshow.prevPhotoNumber()}this.mSlideshow.goBack();break;case 39:a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}if(!(window.isWebKit&&window.isEarlyWebKitVersion)){location.hash=this.mSlideshow.nextPhotoNumber()}this.mSlideshow.advance();break}}});