
var API,D,E;if(API)
{(function(){var ensurePositionable;if(API.canAdjustStyle&&API.getStyle)
{ensurePositionable=function(el,posParent,position)
{var p=API.getStyle(el,'position');if(!p||p=='static')
{if(API.canAdjustStyle('position'))
{((!position||position=='absolute')?API.absoluteElement:API.relativeElement)(el,posParent);return true;}
return false;}
return true;};}
if(API&&API.positionAndSizeElement)
{var oldPositionAndSizeElement=API.positionAndSizeElement;API.positionAndSizeElement=(function()
{var activeEffects={};var cb={};return function(el,r,options,fnDone)
{var effect,fnDoneInternal,pt,uid;if(options&&options.duration)
{uid=API.elementUniqueId(el);if(activeEffects[uid])
{activeEffects[uid].stop(true);}
effect=new API.EffectTimer();options.effects=API.effects.moveAndSize;pt=options.effectParams||{};pt.targetPosition=[r[0],r[1]];pt.targetSize=[r[2],r[3]];options.effectParams=pt;cb[uid]=fnDone;fnDoneInternal=function(el,interrupt)
{effect=null;activeEffects[uid]=null;if(cb[uid])
{cb[uid](el,interrupt);}};activeEffects[uid]=effect;effect.start(el,options,fnDoneInternal);}
else
{oldPositionAndSizeElement(el,r);if(fnDone){fnDone(el);}}};})();if(API.attachDocumentReadyListener)
{API.attachDocumentReadyListener(function()
{var html=API.getAnElement();var tPx=(typeof html.style.top=='number')?0:'px';var hPx=(typeof html.style.height=='number')?0:'px';html=null;API.effects.moveAndSize=function(el,p,scratch,endCode)
{if(endCode)
{if(endCode>2)
{if(scratch.posDim)
{innerOldPos(el,scratch.posDim);}
return;}
if(endCode==1)
{if(typeof ensurePositionable=='undefined'||ensurePositionable(el))
{if(!scratch.posDim)
{if(scratch.bottomRight)
{scratch.posDim=[API.getStylePixels(el,'bottom'),API.getStylePixels(el,'right')];}
else
{scratch.posDim=API.getElementPositionStyle(el);}
if(scratch.posDim)
{scratch.posDim=scratch.posDim.concat(API.getElementSizeStyle(el));}}
if(scratch.posDim)
{if(scratch.targetPosition[0]===null)
{scratch.targetPosition[0]=scratch.posDim[0];}
if(scratch.targetPosition[1]===null)
{scratch.targetPosition[1]=scratch.posDim[1];}
if(scratch.targetSize[0]===null)
{scratch.targetSize[0]=scratch.posDim[0];}
if(scratch.targetSize[1]===null)
{scratch.targetSize[1]=scratch.posDim[1];}}}
else
{scratch.posDim=null;}}}
if(scratch.posDim)
{el.style.top=(scratch.posDim[0]+
((scratch.targetPosition[0]-scratch.posDim[0])*p))+tPx;el.style.left=(scratch.posDim[1]+
((scratch.targetPosition[1]-scratch.posDim[1])*p))+tPx;el.style.height=(scratch.posDim[2]+
((scratch.targetSize[0]-scratch.posDim[2])*p))+hPx;el.style.width=(scratch.posDim[3]+
((scratch.targetSize[1]-scratch.posDim[3])*p))+hPx;}};});}}
if(API&&API.attachDocumentReadyListener)
{API.attachDocumentReadyListener(function()
{var centerElementInto;if(API.centerElement)
{centerElementInto=function(el,constrainer){if(typeof ensurePositionable=='undefined'||ensurePositionable(el)){if(el.style.position=='relative'){el.style.position='absolute';}
var docNode=API.getElementDocument(el);var fixed=API.getStyle(el,'position')=='fixed';var posParent=API.getPositionedParent(el);var sp=(!fixed||typeof API.getScrollPosition=='undefined')?[0,0]:API.getScrollPosition(docNode);var m=(typeof API.getElementMarginsOrigin=='function')?API.getElementMarginsOrigin(el):[0,0];var p=API.getElementPosition(constrainer),p2;var dim=API.getElementSize(constrainer);if(posParent)
{p2=API.getElementPosition(posParent);p=[p[0]-p2[0],p[1]-p2[1]];}
p[0]+=((dim[0]-el.offsetHeight)/2)-m[0]-sp[0];p[1]+=((dim[1]-el.offsetWidth)/2)-m[1]-sp[1];API.positionElement(el,p[0],p[1]);return true;}
return false;};}
API.centerElementInto=centerElementInto;if(!API.canAdjustStyle){return;}
var oldCenterElementInto;if(typeof centerElementInto=='function')
{oldCenterElementInto=centerElementInto;centerElementInto=API.centerElementInto=function(el,constrainer,options,fnDone){var l,t,oldL,oldT,oldV,oldP;if(options){oldT=el.style.top;oldL=el.style.left;oldV=el.style.visibility;oldP=el.style.position;el.style.visibility='hidden';oldCenterElementInto(el,constrainer);t=API.getStylePixels(el,'top');l=API.getStylePixels(el,'left');el.style.top=oldT;el.style.left=oldL;el.style.visibility=oldV;if(oldP==el.style.position){API.positionElement(el,t,l,options,fnDone);return;}}
oldCenterElementInto(el,constrainer);if(fnDone){fnDone(el);}};centerElementInto.async=true;}
if(centerElementInto&&E)
{E.prototype.centerInto=function(constrainer,options,fnDone)
{centerElementInto(this.element(),constrainer,options,fnDone);return this;};}});}})();}
if(API&&E)
{var global=this;D().onReady(function()
{MyImageGallery('detailedview','productbody','thumbnails','detailedthumbs',{'thumb':[40,45],'regular':[185,185],'mid':[326,326],'big':[1200,1200]});});function MyImageGallery(mainImg,constrainer,thumbs,detailedThumbs,sizes)
{mainImg=I(mainImg);thumbs=(thumbs instanceof E)?thumbs:E(thumbs);detailedThumbs=(detailedThumbs instanceof E)?detailedThumbs:E(detailedThumbs);constrainer=(constrainer instanceof E)?constrainer:E(constrainer);var detailedThumbsImg=Q(API.toArray(detailedThumbs.descendants('img')));var thumbsImg=Q(API.toArray(thumbs.descendants('img')));var preloadedImgs={};var extRegexp=new RegExp("(_thumb|_mid|_big)?(\\.[\\w]{3,4})$");var oldImgPos=[],oldConstrainerSize=[];var zooming=false,zoomed=0;var dragging=false;var hasFade=E.prototype.fadeIn&&E.prototype.fadeOut;thumbsImg.forEach(function(img){var src=API.getAttributeProperty(img,'src').replace('_thumb','');preloadedImgs[src]=API.preloadImage(src,sizes.regular[0],sizes.regular[1]);});thumbs.on('mouseover',switchImg);detailedThumbs.on('click',switchImg);mainImg.on('click',zoomIn);thumbs.on('click',function(e){API.cancelDefault(e);API.dispatchEvent(mainImg.element(),'click');});E('close').on('click',function(e){zoomed=1;zoomOut(e);});function getPreloadedImg(src)
{var size,type;if(!preloadedImgs[src])
{type=src.match(extRegexp)[1]||'_regular';size=sizes[type.slice(1)];preloadedImgs[src]=API.preloadImage(src,size[0],size[1]);}
return preloadedImgs[src];}
function switchImg(e)
{if(!zooming)
{var target=E(API.getEventTarget(e));var images=detailedThumbsImg;var options={'effects':API.effects.fade,duration:250};var replaceStr='_mid';API.cancelDefault(e);var _switch=function()
{if(target.isTag('img'))
{var src=target.getAttributeProperty('src');getPreloadedImg(src.replace(extRegexp,'_big$2'));if(thumbs.isAncestor(target.element()))
{images=thumbsImg;options.duration=150;replaceStr='';}
images.removeClass('selected');target.addClass('selected');mainImg.change(getPreloadedImg(src.replace('_thumb',replaceStr)),options);}};if(zoomed===2)
{zoomOut(e,_switch);}
else
{_switch();}}}
function zoomOut(e,fnDone)
{if(!zooming&&!dragging&&zoomed)
{mainImg.off('mouseup',zoomOut);updateSelected();zooming=true;var cEl=constrainer.element();var options={'duration':700,'ease':API.ease.sigmoid4,'fps':60};var opt={'duration':300,'ease':API.ease.sigmoid4};var replaceStr='_mid$2';var size=sizes.mid;mainImg.change(mainImg.getAttributeProperty('src').replace(extRegexp,replaceStr));mainImg.detachDrag();mainImg.removeClass('dragging');if(zoomed===1)
{replaceStr='$2';size=sizes.regular;if(API.isHostMethod(global,'setTimeout'))
{global.setTimeout(function(){showZoomedLayout(false)},600);}
else
{showZoomedLayout(false);}
API.sizeElement(cEl,oldConstrainerSize[0],oldConstrainerSize[1],options);}
API.positionAndSizeElement(mainImg.element(),[oldImgPos[zoomed-1][0],oldImgPos[zoomed-1][1],size[0],size[1]],options,function()
{zoomed=(zoomed===2)?1:0;zooming=false;if(typeof fnDone=="function"){fnDone();}});}}
function zoomIn(e,fnDone)
{if(!zooming)
{zooming=true;var src,newSrc,newImg,s,m,p,cSize,constrains;var proportion=[sizes.big[0]/sizes.mid[0],sizes.big[1]/sizes.mid[1]];var cEl=constrainer.element();var options={'duration':700,'ease':API.ease.sigmoid4,'fps':60};oldImgPos[zoomed]=API.getElementPositionStyle(mainImg.element());updateSelected();if(!zoomed)
{if(mainImg.centerInto)
{oldConstrainerSize=API.getElementSizeStyle(cEl);src=mainImg.getAttributeProperty('src');getPreloadedImg(src.replace(extRegexp,'_big$2'));newSrc=src.replace(extRegexp,'_mid$2');newImg=API.createElement('img');newImg.style.visibility='hidden';newImg.style.position='absolute';newImg.width=sizes.mid[1];newImg.height=sizes.mid[0];E(newImg).appendTo(cEl).centerInto(cEl);p=API.getElementPositionStyle(newImg);E(newImg).remove();API.positionAndSizeElement(mainImg.element(),[null,p[1],sizes.mid[0],sizes.mid[1]],options,function()
{mainImg.change(newSrc,{'duration':500,'effects':API.effects.fade},fnDone);zooming=false;zoomed=1;});API.sizeElement(cEl,oldConstrainerSize[0]+(sizes.mid[0]-sizes.regular[0]),oldConstrainerSize[1],options);showZoomedLayout(true);}}
else if(zoomed===1)
{cSize=constrainer.getSize();constrains=[-(sizes.big[0]-cSize[0]),-(sizes.big[1]-cSize[1])];m=API.getMousePosition(e);p=API.getElementPosition(mainImg.element());m=[m[0]-p[0],m[1]-p[1]];if((m[0]=-(m[0]*proportion[0]))<constrains[0]){m[0]=constrains[0];}
if((m[1]=-(m[1]*proportion[1]))<constrains[1]){m[1]=constrains[1];}
src=mainImg.getAttributeProperty('src');newSrc=src.replace(extRegexp,'_big$2');API.positionAndSizeElement(mainImg.element(),[m[0],m[1],sizes.big[0],sizes.big[1]],options,function()
{mainImg.change(newSrc,{'duration':500,'effects':API.effects.fade},fnDone);mainImg.addClass('dragging');mainImg.attachDrag(null,{'mode':'move','ondrag':(function(co0,co1){return function(c)
{if(!(c[0]<0&&c[1]<0)&&!(c[0]>co0&&c[1]>co1)){return true;}
if(c[0]>0){c[0]=0;}else if(c[0]<co0){c[0]=co0;}
if(c[1]>0){c[1]=0;}else if(c[1]<co1){c[1]=co1;}}})(constrains[0],constrains[1]),'ondragstart':function(){dragging=true;},'ondrop':function(){dragging=false;},'ghost':1});mainImg.on('mouseup',zoomOut);zooming=false;zoomed=2;});}
else
{zooming=false;}}}
function showZoomedLayout(show)
{var opt={'duration':300,'ease':API.ease.sigmoid4};if(hasFade)
{if(!show)
{E('description').fadeIn(opt);thumbs.fadeIn(opt);E('close').fadeOut(opt);detailedThumbs.fadeOut(opt);}
else
{E('description').fadeOut(opt);thumbs.fadeOut(opt);E('close').fadeIn(opt);detailedThumbs.fadeIn(opt);}}
else
{E('description').show(!show);thumbs.show(!show);E('close').show(show);detailedThumbs.show(show);}}
function updateSelected()
{var selected,src,img,newS;newS=((!zoomed)?detailedThumbsImg:thumbsImg);selected=API.getEBCN('selected',((zoomed)?detailedThumbs:thumbs).element());if(selected.length)
{src=API.getAttributeProperty(selected[0],'src');newS.removeClass('selected');img=newS.elements();for(var l=img.length;--l>=0;)
{if(API.getAttributeProperty(img[l],'src')==src)
{API.addClass(img[l],'selected');return;}}}}}}
