﻿var IWAllImages={},IWAllImageObjects={};function IWCreateImage(a){return IWAllImages[a]||new IWImage(a)}var IWNamedImages={};function IWImageNamed(b){var a=IWNamedImages[b];return a?IWCreateImage(a):null}function IWRegisterNamedImage(a,b){IWNamedImages[a]=b}var IWImageEnableUnload=isiPhone,IWImage=Class.create({initialize:function(a){if(IWAllImages.hasOwnProperty(a))iWLog("warning -- use IWCreateImage rather than new IWImage and you'll get better performance");this.mPreventUnloading=0;this.mLoading=false;this.mLoaded=false;this.mURL=a;this.mCallbacks=[];IWAllImages[a]=this},sourceURL:function(){return this.mURL},loaded:function(){return this.mLoaded},load:function(a,c){if(this.mLoaded&&a!=null)c?setTimeout(a,0):a();else{if(a!=null)this.mCallbacks.push(a);if(this.mLoading==false){this.mLoading=true;var b=new Image;IWAllImageObjects[this.sourceURL()]=b;b.onload=this.p_onload.bind(this);b.src=this.mURL}}},unload:function(a){if((a||IWImageEnableUnload)&&this.mLoaded)if(this.mPreventUnloading<=0){this.mLoaded=false;this.mLoading=false;IWAllImageObjects[this.sourceURL()]=null}else this.mPreventedUnload=true},preventUnloading:function(){if(this.mPreventUnloading==0)this.mPreventedUnload=false;++this.mPreventUnloading},allowUnloading:function(){--this.mPreventUnloading;if(this.mPreventUnloading<=0&&this.mPreventedUnload)this.unload()},naturalSize:function(){(function(){return this.mNaturalSize!==undefined}).bind(this).assert();return this.mNaturalSize},imgObject:function(){return IWAllImageObjects[this.sourceURL()]},p_onload:function(){this.preventUnloading();this.mLoaded=true;if(this.mNaturalSize===undefined){var a=this.imgObject();(function(){return a!==undefined}).assert();this.mNaturalSize=new IWSize(a.width,a.height)}for(var b=0;b<this.mCallbacks.length;++b)this.mCallbacks[b]();this.mCallbacks=[];this.allowUnloading()},toString:function(){return "IWImage("+this.mNaturalSize+", "+this.mURL+")"}});function IWCreateLoadingArea(){if(IWSharedLoadingAreaManager==null)IWSharedLoadingAreaManager=new IWLoadingAreaManager;return IWSharedLoadingAreaManager.createLoadingArea()}var IWLoadingAreaManager=Class.create({initialize:function(){var a=$(document.createElement("div"));a.setStyle({visibility:"hidden",position:"absolute",width:0,height:0,overflow:"hidden"});document.body.appendChild(a);this.mCurrentLoadingArea=a},createLoadingArea:function(){var a=document.createElement("div");this.mCurrentLoadingArea.appendChild(a);return a}}),IWSharedLoadingAreaManager=null,IWSharedEffectRegistry=null,allStyleSheetsLoaded=false,timeStyleSheetsAppearedInDOM=null;function IWCreateEffectRegistry(){if(IWSharedEffectRegistry==null)IWSharedEffectRegistry=new IWEffectRegistry;return IWSharedEffectRegistry}var IWEffectRegistry=Class.create({initialize:function(){this.mEffects=null},registerEffects:function(a){this.mEffects=a},applyEffects:function(){var a=[];a=a.concat(this.p_queueForEffectType("crop"));a=a.concat(this.p_queueForEffectType("stroke"));a=a.concat(this.p_queueForEffectType("reflection"));a=a.concat(this.p_queueForEffectType("shadow"));this.p_applyEffectsFromQueue(a)},p_queueForEffectType:function(c){var b=[],d=0,a=c+"_"+d++;while(effect=this.mEffects[a]){b=b.concat(this.p_queueForEffectClass(effect,a));a=c+"_"+d++}return b},p_queueForEffectClass:function(f,c,g){var b=[],a=g||$$("."+c);while(a&&a.length>0){var e=a.shift(),d=e.select("."+c);if(d.length>0){a=a.minusArray(d);b=b.concat(this.p_queueForEffectClass(f,c,d))}b.push({element:e,effect:f})}return b},p_allStyleSheetsLoaded:function(){if(isCamino||isFirefox){if(timeStyleSheetsAppearedInDOM!=null){duration=(new Date).getTime()-timeStyleSheetsAppearedInDOM;if(duration>100){allStyleSheetsLoaded=true;timeStyleSheetsAppearedInDOM=null}}else if(!allStyleSheetsLoaded)for(var a=0,c=document.styleSheets.length;a<c;a++){var b=document.styleSheets[a];if(b.href&&b.href.indexOf("Moz.css")!=-1)timeStyleSheetsAppearedInDOM=(new Date).getTime()}}else allStyleSheetsLoaded=true;return allStyleSheetsLoaded},p_applyEffectsFromQueue:function(b){var e=(new Date).getTime(),c=0,d=this.p_allStyleSheetsLoaded();while(b.length>0&&c<100&&d){var a=b.shift();if(a&&a.effect&&a.element)a.effect.applyToElement(a.element);c=(new Date).getTime()-e}if(b.length>0)setTimeout(this.p_applyEffectsFromQueue.bind(this,b),0);else performPostEffectsFixups()}});function IWChildOffset(f,b,e){var c=0,d=0;if(b){var a=f;while(a&&a!=b){if(!e||a.style.position=="absolute"||a.style.position=="relative"){c+=a.offsetLeft;d+=a.offsetTop}a=a.parentNode}}return new IWPoint(c,d)}function IWImageExtents(i,e,j,k,o,n){var c=new IWRect(j,k,o-j,n-k);for(var d=0;d<e.length;++d){var b=new IWRect(e[d].offsetLeft,e[d].offsetTop,e[d].offsetWidth,e[d].offsetHeight);if(i){var a=e[d].parentNode;while(a&&a!=i){if(a.style.position=="absolute"||a.style.position=="relative"){b.origin.x+=a.offsetLeft||0;b.origin.y+=a.offsetTop||0}var h=function(a){return a=="hidden"},f=[a.style.overflow,a.style.overflowX].any(h),g=[a.style.overflow,a.style.overflowY].any(h);if(f||g){var l=new IWRect(f?a.offsetLeft:b.origin.x,g?a.offsetTop:b.origin.y,f?a.offsetWidth:b.size.width,g?a.offsetHeight:b.size.height);b=b.intersection(l)}a=a.parentNode}}if(b.size.width>0&&b.size.height>0)if(c.size.width>0&&c.size.height>0)c=c.union(b);else c=b.clone()}var m={left:c.origin.x,top:c.origin.y,right:c.origin.x+c.size.width,bottom:c.origin.y+c.size.height};return m}function IWEffectChildren(a,c){a=$(a);var b=a.select(".inline-block");return a.descendants().findAll(function(d){if(!c&&d.match("div.badge-fill")||d.match("img")){var a=false;for(var e=0,f=b.length;a==false&&e<f;++e)a=d.descendantOf(b[e]);return a==false}else return false})}function IWClippingNode(a){if(a)if(a.style&&(a.style.overflow||a.style.overflowX||a.style.overflowY)){if([a.style.overflow,a.style.overflowX,a.style.overflowY].include("hidden"))return a}else return IWClippingNode(a.parentNode);return null}var IWShadow=Class.create({initialize:function(a){this.mBlurRadius=a.blurRadius;this.mOffset=a.offset;this.mColor=a.color;this.mOpacity=a.opacity},applyToElement:function(a){var B=new IWPoint(a.offsetLeft,a.offsetTop),k=new IWSize(a.offsetWidth,a.offsetHeight),r=1;if(a!=null){a=$(a);r=a.getStyle("opacity");if(windowsInternetExplorer){var e=$(a.cloneNode(false));a.parentNode.insertBefore(e,a);var l=$(document.createElement("DIV")),u=a.cloneNodeExcludingIDs(true);l.appendChild(u);l.select("map").each(function(a){a.parentNode.removeChild(a)});l.select(".IWReflection").invoke("remove");e.appendChild(l);e.appendChild(a);a.setStyle({top:0,left:0});var y=this.mBlurRadius*.5,z=this.mOffset.x-this.mBlurRadius*.6,A=this.mOffset.y-this.mBlurRadius*.6;l.setStyle({position:"absolute",left:px(z-500),top:px(A-500),width:px(k.width+1e3),height:px(k.height+1e3)});u.setStyle({position:"absolute",left:px(500),top:px(500),padding:0,margin:0});l.style.filter="progid:DXImageTransform.Microsoft.MaskFilter() progid:DXImageTransform.Microsoft.MaskFilter(color="+this.mColor+")"+" progid:DXImageTransform.Microsoft.Alpha(opacity="+this.mOpacity*r*100+")"+" progid:DXImageTransform.Microsoft.Blur(pixelradius="+y+")";if(e.hasClassName("inline-block")){var i=e.style.top,h=e.style.marginTop;if(i&&!h){i=toPixelsAtElement(e,i,true);e.style.marginTop=px(-i)}else if(!i&&h){h=toPixelsAtElement(e,h,true);e.style.rootTop=px(-h)}else if(i&&h){i=toPixelsAtElement(e,i,true);h=toPixelsAtElement(e,h,true);if(i!=h)e.style.rootTop=px(-h)}}if(a.offsetTop!=0){var p=a.style.top;p=p?toPixelsAtElement(a,p,true):0;p-=a.offsetTop;a.style.top=px(p)}}else{var j=IWEffectChildren(a,false),b=IWImageExtents(a,j,0,0,k.width,k.height),c=undefined;if(a.sandwich&&a.sandwich.canvas)c=a.sandwich.canvas;b.left-=Math.max(this.mBlurRadius-this.mOffset.x,0);b.top-=Math.max(this.mBlurRadius-this.mOffset.y,0);b.right+=Math.max(this.mBlurRadius+this.mOffset.x,0);b.bottom+=Math.max(this.mBlurRadius+this.mOffset.y,0);b.left=Math.floor(b.left);b.top=Math.floor(b.top);b.right=Math.ceil(b.right);b.bottom=Math.ceil(b.bottom);var m=b.left,n=b.top;b.right-=b.left;b.bottom-=b.top;b.left=0;b.top=0;var t=b.right-b.left,s=b.bottom-b.top;if(c===undefined)c=$(document.createElement("canvas"));var v=c.getContext?c.getContext("2d"):null,x=v?v.shadowColor:false;if(x){$(c).setAttribute("width",t);$(c).setAttribute("height",s);$(c).setStyle({position:"absolute",top:px(n),left:px(m)});var f=undefined;if(a.sandwich&&a.sandwich.workingCanvas)f=a.sandwich.workingCanvas;if(f===undefined)f=c.cloneNode(false);var g=this,d=a.sandwich||{};d.loadedElements=[];d.elementCount=j.length;d.loadedElementCount=0;d.canvas=c;d.workingCanvas=f;a.sandwich=d;d.onImageLoad=function(e,b,d){var c=IWChildOffset(b,a,true);this.loadedElements[e]={imgObject:d.imgObject(),left:c.x-m,top:c.y-n,width:b.offsetWidth,height:b.offsetHeight,render:function(a){a.drawImage(this.imgObject,this.left,this.top,this.width,this.height)}};this.loadedElementCount++;if(this.loadedElementCount==this.elementCount)this.renderShadow()};d.registerDiv=function(d,b){var c=IWChildOffset(b,a,true);this.loadedElements[d]={divElement:b,left:c.x-m,top:c.y-n,width:b.offsetWidth,height:b.offsetHeight,render:function(a){var b=this.divElement,d=b.getStyle("background-color"),c=parseFloat(b.style.opacity||1);a.save();a.globalAlpha*=c;a.fillStyle=d;a.fillRect(this.left,this.top,this.width,this.height);a.restore()}};this.loadedElementCount++;if(this.loadedElementCount==this.elementCount)this.renderShadow()};d.renderShadow=function(){if(c.parentNode===null)a.insertBefore(c,a.firstChild);c.parentNode.insertBefore(f,c);var b=f.getContext("2d");(new IWRect(0,0,t,s)).clear(b);var w=a.getStyle("background-image"),y=w&&w.indexOf("url(")==0,z=a.getStyle("background-color"),p=g.p_alphaComponent(z);IWAssert(function(){return p==0||p==1},"alpha must be 0 or 1 for background color if shadow is applied");var u=y||p>0,h=(new IWRect(-m,-n,k.width,k.height)).round();if(u){b.fillStyle="rgba(0,0,0,1)";h.fill(b)}for(var e=0;e<this.loadedElements.length;++e){var x=this.loadedElements[e],l=$(IWClippingNode(j[e]));if(l&&l.descendantOf(a)){var v=IWChildOffset(l,a,true);b.save();b.rect(v.x-m,v.y-n,l.offsetWidth,l.offsetHeight);b.clip();x.render(b);b.restore()}else x.render(b)}b=c.getContext("2d");(new IWRect(0,0,t,s)).clear(b);var o=true;b.globalAlpha=r;if(b.shadowColor){var i=true;b.save();i=!(isWebKit&&isEarlyWebKitVersion);if(i){var d=g.mColor.toLowerCase().match(/#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/);if(d&&d.length>=4)b.shadowColor="rgba("+parseInt(d[1],16)+", "+parseInt(d[2],16)+", "+parseInt(d[3],16)+", "+g.mOpacity+")";else{d=g.mColor.match(/rgb\(([0-9\.]+),[ ]*([0-9\.]+),[ ]*([0-9\.]+)\)/);if(d&&d.length>=4)b.shadowColor="rgba("+d[1]+", "+d[2]+", "+d[3]+", "+g.mOpacity+")";else{iWLog("not using shadow alpha, failed to match "+g.mColor);i=false}}}if(i==false){b.globalAlpha*=g.mOpacity;b.shadowColor=g.mColor}b.shadowBlur=g.mBlurRadius;b.shadowOffsetX=g.mOffset.x;b.shadowOffsetY=g.mOffset.y;b.drawImage(f,0,0);b.restore();if(i==false)o=g.mOpacity<1;else o=false}if(o)b.drawImage(f,0,0);if(u){h.clear(b);b.save();b.globalAlpha=r;b.rect(h.origin.x,h.origin.y,h.size.width,h.size.height);b.clip();for(var e=0;e<this.loadedElements.length;++e)this.loadedElements[e].render(b);b.restore()}if(f.parentNode){f.parentNode.removeChild(f);delete this.workingCanvas;this.workingCanvas=null}for(var q=0;q<j.length;++q)j[q].style.opacity=0};if(j.length>0)for(var q=0;q<j.length;++q){var o=$(j[q]);if(o.match("img")){var w=IWCreateImage(o.src);w.load(d.onImageLoad.bind(d,q,o,w))}else if(o.match("div"))d.registerDiv(q,o)}else d.renderShadow();f.style.visibility="hidden"}}}},p_alphaComponent:function(a){var b=1;if(a&&a.indexOf("rgba(")!=-1)if(a.match(/rgba\((?:\s*\S+\s*,\s*){3}(\S+)\s*\)/))b=RegExp.$1;return b}}),IWReflection=Class.create({initialize:function(a){this.mOpacity=a.opacity;this.mOffset=Math.max(a.offset,1);this.mFadeSustain=.4;this.mMaxSustain=120},applyToElement:function(d){var e=new IWRect(d.offsetLeft,d.offsetTop,d.offsetWidth,d.offsetHeight),l=Math.min(d.offsetHeight*this.mFadeSustain,this.mMaxSustain)*.75;if(d!=null){var g=IWEffectChildren(d,true),b=IWImageExtents(d,g,0,0,e.size.width,e.size.height),o=b.right-b.left,n=b.bottom-b.top,j=b.left,p=b.top,m=n-e.size.height;if(windowsInternetExplorer){var c=$(document.createElement("div"));c.setStyle({position:"absolute",left:px(b.left),top:px(e.size.height),marginTop:px(this.mOffset),width:px(o),height:px(l),overflow:"hidden",filter:"progid:DXImageTransform.Microsoft.Alpha(opacity="+this.mOpacity*100+", style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy=100)"});c.addClassName("IWReflection");var k=$(document.createElement("div"));k.setStyle({position:"relative",width:px(o),height:px(n),filter:"flipv"});var h=$(d.cloneNode(true));h.setStyle({left:px(-b.left),top:px(-b.top),position:"absolute"});h.className=h.className.replace(/(shadow_\d+)/g,"");c.appendChild(k);k.appendChild(h);d.insertBefore(c,d.firstChild)}else{var c=$(document.createElement("canvas"));b.right-=b.left;b.bottom-=b.top;b.left=0;b.top=0;c.setAttribute("width",b.right-b.left);c.setAttribute("height",l+this.mOffset/2);c.setStyle({position:"absolute",top:px(e.size.height),marginTop:px(this.mOffset),left:px(j)});d.insertBefore(c,d.firstChild);var a=c.getContext("2d");a.clearRect(0,0,c.width,c.height);var f={};f.loadedImgs=[];f.imgCount=g.length;var s=this;f.onImageLoad=function(r,l,q){var o=IWChildOffset(l,d,true);this.loadedImgs[r]={imgObject:q.imgObject(),left:o.x-j,top:o.y-p-m,width:l.offsetWidth,height:l.offsetHeight};var i=false;if(this.loadedImgs.length>=this.imgCount){i=true;for(var f=0;i&&f<this.loadedImgs.length;++f)if(this.loadedImgs[f]===undefined)i=false}if(i){a.save();a.translate(0,e.size.height-1);a.scale(1,-1);for(var f=0;f<this.loadedImgs.length;++f){var b=this.loadedImgs[f],h=$(IWClippingNode(g[f]));if(h&&h.descendantOf(d)){var n=IWChildOffset(h,d,true);a.save();a.rect(n.x-j,n.y-p-m,h.offsetWidth,h.offsetHeight);a.clip();a.drawImage(b.imgObject,b.left,b.top,b.width,b.height);a.restore()}else a.drawImage(b.imgObject,b.left,b.top,b.width,b.height)}a.restore();a.save();a.globalCompositeOperation="destination-out";var k=a.createLinearGradient(0,0,0,c.height);k.addColorStop(1,"rgba(255, 255, 255, 1.0)");k.addColorStop(0,"rgba(255, 255, 255, "+(1-s.mOpacity)+")");a.fillStyle=k;if(navigator.appVersion.indexOf("WebKit")!=-1){a.rect(0,0,c.width,c.height*2);a.fill()}else a.fillRect(0,0,c.width,c.height*2);a.restore()}};for(var i=0;i<g.length;++i){var r=g[i],q=IWCreateImage(r.src);q.load(f.onImageLoad.bind(f,i,r,q))}}}}}),kLeft=0,kTopLeft=1,kTop=2,kTopRight=3,kRight=4,kBottomRight=5,kBottom=6,kBottomLeft=7,kPartCount=8,IWStrokeParts=Class.create({initialize:function(c,b,a,d){this.mStrokeParts=c;this.mMaxImageSize=b;this.mShouldClip=a;if(a)this.mStrokeWidth=d},p_imageLayout:function(j){var a=this.mStrokeParts,d=this.mMaxImageSize.width-j.width,e=this.mMaxImageSize.height-j.height,l=a[kTopLeft].rect,k=a[kTopRight].rect.offset(-d,0),b=a[kBottomRight].rect.offset(-d,-e),i=a[kBottomLeft].rect.offset(0,-e),h=a[kTop].rect;h.size.width=k.origin.x-h.origin.x;var f=a[kRight].rect.offset(-d,0);f.size.height=b.origin.y-f.origin.y;var c=a[kBottom].rect.offset(0,-e);c.size.width=b.origin.x-c.origin.x;var g=a[kLeft].rect;g.size.height=i.origin.y-g.origin.y;return [g,l,h,k,f,b,c,i]},p_imageMarkup:function(f,c){var b="",e=this.p_imageLayout(f);for(var a=kLeft;a<kPartCount;++a){var d=e[a].position();if(c)d+="z-index: "+c+";";b+=imgMarkup(this.mStrokeParts[a].url,d)}return b},markupForImageStreamEntry:function(i,b){var g=new IWRect(0,0,b.width,b.height),e="",d="",c=g.clone();if(this.mShouldClip){var f=this.mStrokeWidth/2+1,h=this.mStrokeWidth/2+1,j=new IWRect(f,h,b.width-this.mStrokeWidth-2,b.height-this.mStrokeWidth-2);e='<div style="overflow: hidden; '+j.position()+'">';d="</div>";c.origin.x-=f;c.origin.y-=h}var a='<div class="framedImage" style="'+g.position()+'">';a+=e;a+=i.thumbnailMarkupForRect(c);a+=d;a+=this.p_imageMarkup(b,2);a+="</div>";return a},applyToElement:function(a){a=$(a);if(a!=null){if(a.parentNode)$(a.parentNode).ensureHasLayoutForIE();var h=new IWSize(a.offsetWidth,a.offsetHeight);a.insert(this.p_imageMarkup(h,a.hasClassName("aboveStrokesAndFrames")?-1:"auto"));if(!a.hasClassName("flowDefining"))if(a.style.position!="absolute"){var j=new IWRect(0,0,a.offsetWidth,a.offsetHeight),g=IWZeroRect(),i=this.p_imageLayout(h);i.each(function(a){g=g.union(a)});var b=j.paddingToRect(g),e=Element.getStyle(a,"marginLeft");e=e?toPixelsAtElement(a,e,false):0;var f=Element.getStyle(a,"marginTop");f=f?toPixelsAtElement(a,f,true):0;var d=Element.getStyle(a,"marginRight");d=d?toPixelsAtElement(a,d,false):0;var c=Element.getStyle(a,"marginBottom");c=c?toPixelsAtElement(a,c,true):0;if(windowsInternetExplorer){a.setStyle({marginLeft:px(Math.max(0,b.left-1)+e),marginTop:px(Math.max(0,b.top-1)+f),marginRight:px(Math.max(0,b.right-1)+d),marginBottom:px(Math.max(0,b.bottom-1)+c)});if(effectiveBrowserVersion==7)updateListOfIE7FloatsFix(a)}else a.setStyle({marginLeft:px(b.left+e),marginTop:px(b.top+f),marginRight:px(b.right+d),marginBottom:px(b.bottom+c)})}}},strokeExtra:function(a){if(!a)a=this.mMaxImageSize;rect=new IWRect(IWZeroPoint(),a);var c=this.p_imageLayout(rect.size),b=IWZeroRect();c.each(function(a){b=b.union(a)});return rect.paddingToRect(b)}}),IWStroke=Class.create({initialize:function(c,b,a){this.mStrokeURL=c;this.mStrokeRect=b;this.mMaxImageSize=a},p_strokeRect:function(a){var c=a.width/this.mMaxImageSize.width,d=a.height/this.mMaxImageSize.height,b=this.mStrokeRect.scale(c,d,true);return b},p_imageMarkup:function(c,a){var b=this.p_strokeRect(c).position();if(a)b+="z-index: "+a+";";return imgMarkup(this.mStrokeURL,b)},markupForImageStreamEntry:function(d,b){var c=new IWRect(0,0,b.width,b.height),a='<div class="framedImage" style="'+c.position()+'">';a+=d.thumbnailMarkupForRect(c);a+=this.p_imageMarkup(b,2);a+="</div>";return a},applyToElement:function(a){a=$(a);if(a!=null){if(a.parentNode)$(a.parentNode).ensureHasLayoutForIE();var h=new IWSize(a.offsetWidth,a.offsetHeight);a.insert(this.p_imageMarkup(h,a.hasClassName("aboveStrokesAndFrames")?-1:"auto"));if(!a.hasClassName("flowDefining"))if(a.style.position!="absolute"){var g=new IWRect(0,0,a.offsetWidth,a.offsetHeight),f=g.paddingToRect(this.mStrokeRect),d=Element.getStyle(a,"marginLeft");d=d?toPixelsAtElement(a,d,false):0;var e=Element.getStyle(a,"marginTop");e=e?toPixelsAtElement(a,e,true):0;var c=Element.getStyle(a,"marginRight");c=c?toPixelsAtElement(a,c,false):0;var b=Element.getStyle(a,"marginBottom");b=b?toPixelsAtElement(a,b,true):0;a.setStyle({marginLeft:px(f.left+d),marginTop:px(f.top+e),marginRight:px(f.right+c),marginBottom:px(f.bottom+b)});if(windowsInternetExplorer&&effectiveBrowserVersion==7)updateListOfIE7FloatsFix(a)}}},strokeExtra:function(a){if(a===undefined)a=this.mMaxImageSize;var b=new IWRect(IWZeroPoint(),a);return b.paddingToRect(this.p_strokeRect(a))}}),IWEmptyStroke=Class.create({initialize:function(){},markupForImageStreamEntry:function(d,b){var c=new IWRect(0,0,b.width,b.height),a='<div class="framedImage" style="'+c.position()+'">';a+=d.thumbnailMarkupForRect(c);a+="</div>";return a},applyToElement:function(){},strokeExtra:function(){return new IWPadding(0,0,0,0)}}),kSFRFrameTopLeft=0,kSFRFrameTop=1,kSFRFrameTopRight=2,kSFRFrameRight=3,kSFRFrameBottomRight=4,kSFRFrameBottom=5,kSFRFrameBottomLeft=6,kSFRFrameLeft=7,kSFRFrameClip=0,kSFRFrameStretchEvenly=1,kSFRFrameStretchToFit=2,IWPhotoFrame=Class.create({initialize:function(t,o,q,n,r,s,p,m,e,f,b,a,i,l,h,g,k,c,j,d){this.mImages=t;this.mMaskImages=o;this.mTilingMode=q;this.mLeftInset=r;this.mTopInset=s;this.mRightInset=p;this.mBottomInset=m;this.mUnscaledLeftWidth=e;this.mUnscaledTopHeight=f;this.mUnscaledRightWidth=b;this.mUnscaledBottomHeight=a;this.mLeftTileHeight=i;this.mTopTileWidth=l;this.mRightTileHeight=h;this.mBottomTileWidth=g;this.mAdornmentURL=k;this.mAdornmentPosition=c;this.mAdornmentSize=j;this.mMinimumAssetScale=d;this.setAssetScale(n)},setAssetScale:function(a){a=Math.min(a,1);a=Math.max(this.mMinimumAssetScale,a);this.mAssetScale=a;this.mLeftWidth=this.scaledValue(this.mUnscaledLeftWidth);this.mTopHeight=this.scaledValue(this.mUnscaledTopHeight);this.mRightWidth=this.scaledValue(this.mUnscaledRightWidth);this.mBottomHeight=this.scaledValue(this.mUnscaledBottomHeight)},scaledValue:function(a){return Math.ceil(a*this.mAssetScale)},markupForImageStreamEntry:function(g,c){var e=this.mAssetScale,d=this.maximumAssetScaleForImageSize(c);if(d<e&&d>=this.mMinimumAssetScale)this.setAssetScale(d);var a=this.coverageRect(new IWRect(0,0,c.width,c.height)),f=new IWRect(-a.origin.x,-a.origin.y,c.width,c.height);a=a.offsetToOrigin();var b='<div class="framedImage" style="'+a.position()+'">';b+=g.thumbnailMarkupForRect(f);if(d>=this.mMinimumAssetScale){if(this.mImages!=null)b+=this.p_buildFrame(this.mImages,a.size,2);if(this.mAdornmentURL!=null)b+=this.p_adornmentMarkupForRect(f,2);if(this.mMaskImages);}b+="</div>";if(e!=this.mAssetScale)this.setAssetScale(e);return b},strokeExtra:function(){var a=0;if(this.mAdornmentURL)a=Math.max(0,(this.scaledValue(this.mAdornmentSize.height)-this.mTopHeight)/2-this.mAdornmentPosition.y);return new IWPadding(this.mLeftWidth-this.scaledValue(this.mLeftInset),this.mTopHeight-this.scaledValue(this.mTopInset)+a,this.mRightWidth-this.scaledValue(this.mRightInset),this.mBottomHeight-this.scaledValue(this.mBottomInset))},applyToElement:function(a){a=$(a);if(a!=null){if(a.parentNode)$(a.parentNode).ensureHasLayoutForIE();var b="",h=new IWRect(0,0,a.offsetWidth,a.offsetHeight);if(h.size.width>=this.scaledValue(this.mLeftInset)+this.scaledValue(this.mRightInset)&&h.size.height>=this.scaledValue(this.mTopInset)+this.scaledValue(this.mTopInset)){if(this.mImages!=null){var i=this.coverageRect(h),j=new IWRect(i.origin.x,i.origin.y,0,0);b+='<div style="'+j.position()+'">';b+=this.p_buildFrame(this.mImages,i.size,a.hasClassName("aboveStrokesAndFrames")?-1:"auto");b+="</div>"}if(this.mAdornmentURL!=null)b+=this.p_adornmentMarkupForRect(h)}a.insert(b);if(!a.hasClassName("flowDefining"))if(a.style.position!="absolute"){var e=this.strokeExtra(),f=Element.getStyle(a,"marginLeft");f=f?toPixelsAtElement(a,f,false):0;var g=Element.getStyle(a,"marginTop");g=g?toPixelsAtElement(a,g,true):0;var d=Element.getStyle(a,"marginRight");d=d?toPixelsAtElement(a,d,false):0;var c=Element.getStyle(a,"marginBottom");c=c?toPixelsAtElement(a,c,true):0;a.setStyle({marginLeft:px(e.left+f),marginTop:px(e.top+g),marginRight:px(e.right+d),marginBottom:px(e.bottom+c)});if(windowsInternetExplorer&&effectiveBrowserVersion==7)updateListOfIE7FloatsFix(a)}}},maximumAssetScaleForImageSize:function(a){var e=1;if(a.width>this.mLeftInset+this.mRightInset&&a.height>this.mTopInset+this.mBottomInset)e=1;else if(a.width<Math.ceil(this.mLeftInset*this.mMinimumAssetScale)+Math.ceil(this.mRightInset*this.mMinimumAssetScale)||a.height<Math.ceil(this.mTopInset*this.mMinimumAssetScale)+Math.ceil(this.mBottomInset*this.mMinimumAssetScale))e=0;else{var c=1,d=1e-7;if(this.mLeftInset+this.mRightInset>=a.width&&this.mLeftInset+this.mRightInset>0){var h=Math.floor(this.mLeftInset/(this.mLeftInset+this.mRightInset)*a.width)/this.mLeftInset,g=Math.floor(this.mRightInset/(this.mLeftInset+this.mRightInset)*a.width)/this.mRightInset;h-=d;g-=d;c=Math.max(h,g);if(a.width<Math.ceil(this.mLeftInset*c)+Math.ceil(this.mRightInset*c))c=Math.min(h,g);if(c<this.mMinimumAssetScale||a.width<Math.ceil(this.mLeftInset*c)+Math.ceil(this.mRightInset*c))c=this.mMinimumAssetScale}var b=1;if(this.mTopInset+this.mBottomInset>=a.height&&this.mTopInset+this.mBottomInset>0){var i=Math.floor(this.mTopInset/(this.mTopInset+this.mBottomInset)*a.height)/this.mTopInset,f=Math.floor(this.mBottomInset/(this.mTopInset+this.mBottomInset)*a.height)/this.mBottomInset;i-=d;f-=d;b=Math.max(i,f);if(a.height<Math.ceil(this.mTopInset*b)+Math.ceil(this.mBottomInset*b))b=Math.min(i,f);if(b<this.mMinimumAssetScale||a.height<Math.ceil(this.mTopInset*b)+Math.ceil(this.mBottomInset*b))b=this.mMinimumAssetScale}e=Math.min(c,b)}return e},coverageRect:function(a){var b=a.origin.x+this.scaledValue(this.mLeftInset),c=a.origin.y+this.scaledValue(this.mTopInset),e=a.maxX()-this.scaledValue(this.mRightInset),d=a.maxY()-this.scaledValue(this.mBottomInset);b-=this.mLeftWidth;e+=this.mRightWidth;c-=this.mTopHeight;d+=this.mBottomHeight;return (new IWRect(b,c,e-b,d-c)).round()},p_buildFrame:function(d,m,e){var j=m.width,i=m.height,f=this.mLeftWidth,k=j-this.mRightWidth,g=this.mTopHeight,l=i-this.mBottomHeight,c="",h=e?"z-index: "+e+";":"";if(f<=k+1&&g<=l+1){var a=new IWRect(0,0,this.mLeftWidth,this.mTopHeight);c=imgMarkup(d[kSFRFrameTopLeft].sourceURL(),a.position()+h);a=new IWRect(0,i-this.mBottomHeight,this.mLeftWidth,this.mBottomHeight);c+=imgMarkup(d[kSFRFrameBottomLeft].sourceURL(),a.position()+h);a=new IWRect(j-this.mRightWidth,0,this.mRightWidth,this.mTopHeight);c+=imgMarkup(d[kSFRFrameTopRight].sourceURL(),a.position()+h);a=new IWRect(j-this.mRightWidth,i-this.mBottomHeight,this.mRightWidth,this.mBottomHeight);c+=imgMarkup(d[kSFRFrameBottomRight].sourceURL(),a.position()+h);var b=new IWSize(this.mLeftWidth,this.scaledValue(this.mLeftTileHeight));a=new IWRect(0,g,b.width,b.height);c+=this.p_tiles(d[kSFRFrameLeft].sourceURL(),a,g,l,true,e);b=new IWSize(this.mRightWidth,this.scaledValue(this.mRightTileHeight));a=new IWRect(j-this.mRightWidth,g,b.width,b.height);c+=this.p_tiles(d[kSFRFrameRight].sourceURL(),a,g,l,true,e);b=new IWSize(this.scaledValue(this.mTopTileWidth),this.mTopHeight);a=new IWRect(f,0,b.width,b.height);c+=this.p_tiles(d[kSFRFrameTop].sourceURL(),a,f,k,false,e);b=new IWSize(this.scaledValue(this.mBottomTileWidth),this.mBottomHeight);a=new IWRect(f,i-this.mBottomHeight,b.width,b.height);c+=this.p_tiles(d[kSFRFrameBottom].sourceURL(),a,f,k,false,e)}return c},p_adornmentRectForRect:function(b){var a=new IWPoint;b=this.coverageRect(b);a.x=(b.size.width-(this.mLeftWidth+this.mRightWidth))*this.mAdornmentPosition.x;a.x+=b.origin.x+this.mLeftWidth;a.y=this.mTopHeight/2+(b.origin.y+this.mAdornmentPosition.y);var c=new IWSize(this.scaledValue(this.mAdornmentSize.width),this.scaledValue(this.mAdornmentSize.height)),d=new IWPoint(a.x-c.width/2,a.y-c.height/2),e=new IWRect(d,c);return e},p_adornmentMarkupForRect:function(c,a){var b=a?"z-index: "+a+";":"";return imgMarkup(this.mAdornmentURL,this.p_adornmentRectForRect(c).position()+b)},p_tiles:function(l,a,e,f,h,m){var d="";if(e<f){var k=m?"z-index: "+m+";":"",g=a.clone(),c=this.mTilingMode;if(h){g.size.height=Math.ceil(f-e);if(a.size.height==1)c=kSFRFrameStretchToFit}else{g.size.width=Math.ceil(f-e);if(a.size.width==1)c=kSFRFrameStretchToFit}if(c==kSFRFrameStretchToFit)d+=imgMarkup(l,g.position()+k);else{var j=a.size,b=h?j.height:j.width,i=Math.ceil((f-e)/b);if(b<5||i>20){IWAssert(function(){return true},"Please remove this assert and the surrouding block.");iWLog("Too many frame image tiles are getting generated.  Performance may be affected.")}if(c==kSFRFrameStretchEvenly){b=(f-e)/i;if(h)a.size.height=b;else a.size.width=b}else if(c==kSFRFrameClip){d+='<div style="'+g.position()+'overflow: hidden; ">';a.origin.x=0;a.origin.y=0}for(var p=0;p<i;++p){var n=Math.round(a.origin.x),s=Math.round(a.origin.x+a.size.width),o=Math.round(a.origin.y),r=Math.round(a.origin.y+a.size.height),q=new IWRect(n,o,s-n,r-o);d+=imgMarkup(l,q.position()+k);a=h?a.offset(0,b):a.offset(b,0)}if(c==kSFRFrameClip)d+="</div>"}}return d}})
