function QuickView(){this.mContainer;this.mPanel;this.mImageContainer;this.mScrollingContainer;this.mNextButton;this.mPrevButton;this.mCenterOnCurrentButtonLeft;this.mCenterOnCurrentButtonRight;this.mBrowseAllLink;this.mPreviewContainer;this.mPreviewImage;this.mImageInfos=$([]);this.mImages=$([]);this.mRequestedImages=$([]);this.mAlreadyRequestedImages=$([]);this.mPlacholderImageUrl;this.mErrorImageUrl;this.mFunctionFetchImages;this.mFunctionCreateImageLinkUrl;this.mCurrentImageOffset=0;this.mOriginalImageOffset=0;this.mImageRange=$([]);this.mTotalNumberOfImages=0;this.mAdvanceTimeout=null;this.mAnimate=true;this.mHideBrowseAllLink=true;this.mShowMagnification=true;this.ADVANCE_IMAGE_DELAY=175;this.MAX_IMAGE_SIZE=96;this.GAP_SIZE=5;this.CLASSNAME="quickView";this.NEXT_BUTTON_CLASSNAME="nextButton";this.PREV_BUTTON_CLASSNAME="prevButton";this.CENTER_LEFT_BUTTON_CLASSNAME="centerLeftButton";this.CENTER_RIGHT_BUTTON_CLASSNAME="centerRightButton";this.BROWSE_ALL_LINK_CLASSNAME="browseAllLink";this.IMAGE_CONTAINER_CLASSNAME="imageContainer";this.BROWSE_ALL_LINK_TEXT="Thumbnails";this.NEXT_BUTTON_TEXT="Click to view the next image or hold to scroll quickly.";this.PREV_BUTTON_TEXT="Click to view the previous image or hold to scroll quickly.";this.CENTER_BUTTON_TEXT="Click to center on this page's image.";this.init=function(){this.mPanel=$(document.createElement("div"));this.mImageContainer=$(document.createElement("div"));this.mScrollingContainer=$(document.createElement("div"));this.mNextButton=$(document.createElement("a"));this.mPrevButton=$(document.createElement("a"));this.mCenterOnCurrentButtonLeft=$(document.createElement("a"));this.mCenterOnCurrentButtonRight=$(document.createElement("a"));this.mBrowseAllLink=$(document.createElement("a"));this.mPreviewContainer=$(document.createElement("div"));this.mPreviewImage=$(document.createElement("img"));this.mPreviewContainer.appendChild(this.mPreviewImage);this.mImageContainer.appendChild(this.mScrollingContainer);this.mPanel.appendChild(this.mBrowseAllLink);this.mPanel.appendChild(this.mCenterOnCurrentButtonLeft);this.mPanel.appendChild(this.mCenterOnCurrentButtonRight);this.mPanel.appendChild(this.mNextButton);this.mPanel.appendChild(this.mImageContainer);this.mPanel.appendChild(this.mPrevButton);this.mPanel.appendChild(this.mPreviewContainer);this.mContainer.appendChild(this.mPanel);this.mNextButton.href="javascript: var button";this.mNextButton.title=this.NEXT_BUTTON_TEXT;this.mPrevButton.href="javascript: var button";this.mPrevButton.title=this.PREV_BUTTON_TEXT;this.mCenterOnCurrentButtonLeft.href="javascript: var button";this.mCenterOnCurrentButtonLeft.title=this.CENTER_BUTTON_TEXT;this.mCenterOnCurrentButtonRight.href="javascript: var button";this.mCenterOnCurrentButtonRight.title=this.CENTER_BUTTON_TEXT;this.mPanel.addClassName(this.CLASSNAME);this.mNextButton.addClassName(this.NEXT_BUTTON_CLASSNAME);this.mPrevButton.addClassName(this.PREV_BUTTON_CLASSNAME);this.mBrowseAllLink.addClassName(this.BROWSE_ALL_LINK_CLASSNAME);this.mImageContainer.addClassName(this.IMAGE_CONTAINER_CLASSNAME);this.mCenterOnCurrentButtonLeft.addClassName(this.CENTER_LEFT_BUTTON_CLASSNAME);this.mCenterOnCurrentButtonRight.addClassName(this.CENTER_RIGHT_BUTTON_CLASSNAME);this.mBrowseAllLink.update(this.BROWSE_ALL_LINK_TEXT);if(this.mHideBrowseAllLink==true){this.mBrowseAllLink.hide()}var A=this;this.mNextButton.onmousedown=function(B){A.mNextButton.blur();A.advance(1);A.mAdvanceTimeout=setTimeout(A.mNextButton.onmousedown,A.ADVANCE_IMAGE_DELAY)};this.mNextButton.onmouseup=function(B){A.mNextButton.blur();if(A.mAdvanceTimeout){clearTimeout(A.mAdvanceTimeout)}};this.mNextButton.onmouseout=function(B){A.mNextButton.blur();if(A.mAdvanceTimeout){clearTimeout(A.mAdvanceTimeout)}};this.mPrevButton.onmousedown=function(B){A.mPrevButton.blur();A.advance(-1);A.mAdvanceTimeout=setTimeout(A.mPrevButton.onmousedown,A.ADVANCE_IMAGE_DELAY)};this.mPrevButton.onmouseup=function(B){A.mPrevButton.blur();if(A.mAdvanceTimeout){clearTimeout(A.mAdvanceTimeout)}};this.mPrevButton.onmouseout=function(B){A.mPrevButton.blur();if(A.mAdvanceTimeout){clearTimeout(A.mAdvanceTimeout)}};this.mCenterOnCurrentButtonLeft.onclick=function(B){this.blur();A.advanceToImage(A.mOriginalImageOffset)};this.mCenterOnCurrentButtonRight.onclick=function(B){this.blur();A.advanceToImage(A.mOriginalImageOffset)};this.mPreviewContainer.onmouseout=function(){A.mPreviewContainer.hide()};this.mPanel.style.position="absolute";this.mScrollingContainer.style.overflow="hidden";this.mImageContainer.style.position="absolute";this.mImageContainer.style.overflow="hidden";this.mNextButton.style.position="absolute";this.mPrevButton.style.position="absolute";this.mCenterOnCurrentButtonLeft.style.position="absolute";this.mCenterOnCurrentButtonRight.style.position="absolute";this.mBrowseAllLink.style.position="absolute";this.mPreviewContainer.hide();this.mPreviewContainer.style.position="absolute";this.mPreviewContainer.style.overflow="hidden";this.mPreviewContainer.style.backgroundColor="black";this.mPreviewContainer.style.border="1px solid #555250";this.mPreviewContainer.style.left=0+"px";this.mPreviewContainer.style.top=0+"px";this.resize();this.updatePosition()};this.render=function(A){this.mContainer=A;this.init()};this.advance=function(A){if(((this.mImageRange[1]+A)<=(this.mTotalNumberOfImages-1))&&((this.mImageRange[0]+A)>=0)){this.mCurrentImageOffset+=A;this.mImageRange[0]+=A;this.mImageRange[1]+=A;this.updateImages()}};this.advanceToImage=function(B){var A=(B-this.mCurrentImageOffset);this.advance(A)};this.resize=function(){this.mPanel.style.width=(187)+"px";this.mPanel.style.height=(58)+"px";var C=[0,0];var B=jshBorderOffsets([this.mPrevButton,this.mCenterOnCurrentButtonLeft],[0,0]);if(this.mHideBrowseAllLink!=true){B=jshBorderOffsets([this.mPrevButton,this.mCenterOnCurrentButtonLeft,this.mBrowseAllLink],[0,0]);C=[this.mBrowseAllLink.getWidth(),this.mBrowseAllLink.getHeight()]}var A=(this.mPanel.getHeight()-(B[1]+C[1]));this.mPrevButton.style.height=Math.round(2*A/3)+"px";this.mNextButton.style.height=this.mPrevButton.style.height;this.mCenterOnCurrentButtonLeft.style.height=Math.round(A/3)+"px";this.mCenterOnCurrentButtonRight.style.height=this.mCenterOnCurrentButtonLeft.style.height;this.mImageContainer.style.width=(this.mPanel.getWidth()-(this.mPrevButton.getWidth()+this.mNextButton.getWidth()))+"px";this.mImageContainer.style.height=(A+B[1]-jshBorderOffset(this.mImageContainer,[0,0])[1])+"px";this.mScrollingContainer.style.width=(this.mImageContainer.getHeight()*this.mTotalNumberOfImages)+"px";this.mImageRange=this.calculateOffset()};this.updatePosition=function(){var A=[0,0];var B=[0,0];if(this.mHideBrowseAllLink!=true){A=jshBorderOffset(this.mBrowseAllLink,[0,0]);B=[this.mBrowseAllLink.getWidth(),this.mBrowseAllLink.getHeight()]}this.mCenterOnCurrentButtonLeft.style.left=(0)+"px";this.mCenterOnCurrentButtonLeft.style.top=(B[1]+A[1])+"px";this.mPrevButton.style.left=(0)+"px";this.mPrevButton.style.bottom=(0)+"px";this.mImageContainer.style.backgroundColor="black";this.mImageContainer.style.left=(this.mPrevButton.getWidth())+"px";this.mImageContainer.style.top=(B[1]+A[1])+"px";this.mNextButton.style.right=(0)+"px";this.mNextButton.style.bottom=(0)+"px";this.mCenterOnCurrentButtonRight.style.right=(0)+"px";this.mCenterOnCurrentButtonRight.style.top=(B[1]+A[1])+"px";this.mBrowseAllLink.style.right=(0)+"px";this.mBrowseAllLink.style.top=(-2)+"px"};this.updateImages=function(){var D=this.mImageRange[0];var B=this.mImageRange[1];var A=jshBorderOffset(this.mImageContainer);for(var C=D;C<=B;C++){if(!this.mImages[C]){this.mImages[C]=$(document.createElement("div"));this.mImages[C].style.backgroundImage="url("+this.mPlacholderImageUrl+")";this.mImages[C].style.backgroundPosition="center center";this.mImages[C].style.backgroundRepeat="no-repeat";jshSetFloat(this.mImages[C],"left");this.mImages[C].style.overflow="hidden";this.mImages[C].style.textAlign="left";this.mImages[C].style.width=(this.mImageContainer.getHeight()-A[1])+"px";this.mImages[C].style.height=(this.mImageContainer.getHeight()-A[1])+"px";this.insertImage(this.mImages[C],C);if(!this.mImageInfos[C]){this.requestImages(C)}}if(this.mImageInfos[C]){this.preloadImage(this.mImageInfos[C].urlSize0,C);if(this.mImageInfos[C].displayName){this.mImages[C].title=this.mImageInfos[C].displayName}}}this.focusOnImage(this.mImages[D])};this.insertImage=function(A,C){if(A){A.offsetIndex=C;var B=this.findRefernceImage(C);if(B!=null){this.mScrollingContainer.insertBefore(A,B);this.mImageContainer.scrollLeft+=A.getWidth()}else{this.mScrollingContainer.appendChild(A)}}};this.focusOnImage=function(A){var B=A.getWidth()*jshIndexOfNode(A);if(this.mAnimate==true){ElementEffects.animateScroll(this.mImageContainer,[B,0],50,0.5,null)}else{this.mImageContainer.scrollLeft=B}};this.calculateOffset=function(){var B=this.mImageContainer.getWidth();var A=Math.ceil(B/this.mImageContainer.getHeight());var C=$([0,0]);if(this.mTotalNumberOfImages<A){A=this.mTotalNumberOfImages}C[0]=(this.mCurrentImageOffset-Math.floor((A-1)/2));C[1]=(this.mCurrentImageOffset+Math.ceil((A-1)/2));if((C[0])<0){C[1]=this.mCurrentImageOffset+A-1;C[0]=this.mCurrentImageOffset}if((C[1])>=this.mTotalNumberOfImages){C[0]=this.mCurrentImageOffset-(A)+1;C[1]=this.mCurrentImageOffset}C[0]=Math.max(C[0],0);C[1]=Math.min(C[1],this.mTotalNumberOfImages-1);return C};this.preloadImage=function(A,E){var C=$(new Image());var D=this;var B=E;C.onerror=function(){if(D.mImageInfos[B].mediaType&&D.mErrorImageUrl[D.mImageInfos[B].mediaType]){this.src=D.mErrorImageUrl[D.mImageInfos[B].mediaType]}};C.onload=function(){this.onload=null;if(D.mImages[B].childNodes.length<1){var G=$(document.createElement("img"));var K=D.GAP_SIZE;var J=[D.mImages[B].getWidth()-K,D.mImages[B].getHeight()-K];var I=[this.width,this.height];var H=jshCalculateProportionalDimensions(I,J);var F=[((J[0]+K-H[0])/2),((J[1]+K-H[1])/2)];G.src=this.src;G.style.width=(H[0])+"px";G.style.height=(H[1])+"px";G.style.position="relative";G.style.left=(F[0])+"px";G.style.top=(F[1])+"px";G.style.cursor="pointer";if(D.mFunctionCreateImageLinkUrl){G.onclick=function(){var L=D.mFunctionCreateImageLinkUrl(D.mImageInfos[B],B);if(L){document.location.href=L}}}if(D.mShowMagnification){G.onmouseover=function(){var R=D.GAP_SIZE*2;var M=jshCalculateProportionalDimensions(I,[D.MAX_IMAGE_SIZE+R,D.MAX_IMAGE_SIZE+R]);var Q=[Math.round((I[0]-H[0])/2)-(Math.round((H[0]-M[0])/2)),Math.round((I[1]-H[1])/2)];var O=((D.mImages[B].offsetIndex-D.mImages[D.mImageRange[0]].offsetIndex)*(D.mImages[B].getWidth()))+D.mCenterOnCurrentButtonLeft.getWidth()+Math.round((I[0]-H[0])/2);var N=(0);var L=(O+F[0]-Q[0]);var P=(N+F[1]-Q[1]);if(D.mAnimate==true){D.mPreviewContainer.style.width=(M[0])+"px";D.mPreviewContainer.style.height=(M[1])+"px";ElementEffects.animateElementPosition(D.mPreviewContainer,[L,P],55,0.45,null)}else{D.mPreviewContainer.style.width=(M[0])+"px";D.mPreviewContainer.style.height=(M[1])+"px";D.mPreviewContainer.style.left=(L)+"px";D.mPreviewContainer.style.top=(P)+"px"}D.mPreviewImage.src=G.src;D.mPreviewImage.style.position="absolute";D.mPreviewImage.style.left=((M[0]-I[0])/2)+"px";D.mPreviewImage.style.top=((M[1]-I[1])/2)+"px";D.mPreviewContainer.style.cursor="pointer";D.mPreviewImage.onclick=G.onclick;D.mPreviewContainer.title=G.title;D.mPreviewContainer.show()}}D.mImages[B].style.backgroundImage="";D.mImages[B].appendChild(G);this.onload=null;this.src=null}};C.src=A};this.findRefernceImage=function(C){var B=null;if(C>=0){for(var A=0;A<this.mImages.length;A++){if(this.mImages[A]&&(this.mImages[A].offsetIndex>C)){B=this.mImages[A];break}}}return B};this.requestImages=function(A){if(A>=0){this.mRequestedImages.push(A);if(this.mWaitingForImages!=true){this.mWaitingForImages=true;this.mAlreadyRequestedImages.push(A);this.mFunctionFetchImages(A)}}};this.setImageInfos=function(B,C){this.mWaitingForImages=false;for(var A=0;A<this.mRequestedImages;A++){if(this.mRequestedImages[A]==C){this.mRequestedImages[A]=null;this.mRequestedImages=this.mRequestedImages.compact()}}if(B&&B.length){if(C<0){C=0}for(var A=0;A<B.length;A++){this.mImageInfos[C+A]=B[A]}this.updateImages()}while(this.mRequestedImages.length>0){if((this.mImageInfos[this.mRequestedImages[0]])||(this.mAlreadyRequestedImages.indexOf(this.mRequestedImages[0])>=0)){this.mRequestedImages[0]=null;this.mRequestedImages=this.mRequestedImages.compact()}else{this.requestImages(this.mRequestedImages[0]);return }}};this.setTotalNumberOfImages=function(A){this.mTotalNumberOfImages=A};this.setCurrentImageOffset=function(A){this.mCurrentImageOffset=parseInt(A);this.mOriginalImageOffset=parseInt(A)};this.setImageLinkPrefix=function(A){this.mImageLinkPrefix=A};this.setPlacholderImageUrl=function(A){this.mPlacholderImageUrl=A};this.setErrorImageUrls=function(A){this.mErrorImageUrl=A};this.setFunctionFetchImages=function(A){this.mFunctionFetchImages=A};this.setFunctionCreateImageLinkUrl=function(A){this.mFunctionCreateImageLinkUrl=A};this.setShowMagnification=function(A){this.mShowMagnification=A};this.setAnimate=function(A){this.mAnimate=A}};