AE.namespace('AE.widget.quickView');AE.widget.quickView=function(){this.config={};this.defConfig={bigImgBoxId:'',bigImgPosOffset:[-1,0],dartIconBoxId:'',miniImgPosBoxId:'',miniImgMaskId:'',miniImgMaskBoxId:'',miniImgPosOffset:[-4,-4],displayFireEls:[],displayFireAction:'mouseover',displayDelay:0,closeFireEls:[],closeFireAction:'click',closeDelay:0,autoClose:true,verticalAlign:'center'};this.cache={elBigImgBox:null,elDartIconBox:null,elMiniImgPosBox:null,elMiniImgMask:null,elMiniImgMaskBox:null,canClose:false,isHidden:true,timer:null};this.templateStr='<div class="largeImg"><a href="$detailUrl$" target="_blank"><img src="$largeImgUrl$" /></a></div><div class="contactIcon"><a href="$atmUrlAction$" class="$atmClass$">$atmText$</a><span class="split">|</span><a href="$inquryUrlAction$" class="inquery">Contact Now</a></div>';this.templateParseHash={};this.init=function(usrConfig){var _self=this;this.config=YL.merge(this.defConfig,usrConfig);this.cache.elBigImgBox=get(this.config.bigImgBoxId);this.cache.elDartIconBox=get(this.config.dartIconBoxId);this.cache.elMiniImgPosBox=get(this.config.miniImgPosBoxId);this.cache.elMiniImgMask=get(this.config.miniImgMaskId);this.cache.elMiniImgMaskBox=get(this.config.miniImgMaskBoxId);var minImgPosBox=this.cache.elMiniImgPosBox,bigImgBox=this.cache.elBigImgBox;YUE.on(this.config.displayFireEls,this.config.displayFireAction,function(){_self.show(this);});YUE.on(this.config.closeFireEls,this.config.closeFireAction,function(e){_self.cache.canClose=true;_self.hide(e);});YUE.on([bigImgBox,minImgPosBox],'mouseover',function(e){_self.cache.canClose=false;});YUE.on([bigImgBox,minImgPosBox],'mouseout',function(e){_self.cache.canClose=true;if(_self.config.autoClose){_self.hide(e);}});YUE.on(window,'resize',function(e){_self.cache.canClose=true;_self.hide(e);});};};AE.widget.quickView.prototype={setTemplateStr:function(str){this.templateStr=str;},setTemplateParseHash:function(parseHash,isMerge){if(isMerge){this.templateParseHash=YL.merge(this.templateParseHash,parseHash);}else{delete this.templateParseHash;this.templateParseHash=parseHash;}},parseHtml:function(templateStr,parseHash){var tempHtml=templateStr;for(var flag in parseHash){tempHtml=tempHtml.replace('$'+flag+'$',parseHash[flag]);}
return tempHtml;},getMaskXY:function(el){var elXY=YUD.getXY(el),posOffset=this.config.miniImgPosOffset;return[elXY[0]+posOffset[0],elXY[1]+posOffset[1]];},getBigImgBoxXY:function(el,maskXY){var miniImgPosBox=this.cache.elMiniImgPosBox,bigImgBox=this.cache.elBigImgBox;var align=this.config.verticalAlign,posOffset=this.config.bigImgPosOffset;var scrollTop=YUD.getDocumentScrollTop(),viewPointH=YUD.getViewportHeight();var posX=maskXY[0]+miniImgPosBox.offsetWidth+posOffset[0],posY=0;switch(align.toLowerCase()){case'top':posY=maskXY[1];break;case'center':posY=maskXY[1]-0.5*(bigImgBox.offsetHeight-miniImgPosBox.offsetHeight);break;case'bottom':posY=maskXY[1]-bigImgBox.offsetHeight+miniImgPosBox.offsetHeight;break;}
if(posY<scrollTop){posY=scrollTop;if(posY>maskXY[1])posY=maskXY[1];}else if(posY+bigImgBox.offsetHeight>scrollTop+viewPointH){posY=scrollTop+viewPointH-bigImgBox.offsetHeight;if(posY<maskXY[1]-bigImgBox.offsetHeight+miniImgPosBox.offsetHeight)
posY=maskXY[1]-bigImgBox.offsetHeight+miniImgPosBox.offsetHeight;}
return[posX,posY];},resetWH:function(el){var elMaskBox=this.cache.elMiniImgMaskBox,dartIconBox=this.cache.elDartIconBox;YUD.setStyle(elMaskBox,'width',el.offsetWidth+'px');YUD.setStyle([elMaskBox,dartIconBox],'height',el.offsetHeight+'px');},genHtml:function(el){var miniImgPosBox=this.cache.elMiniImgPosBox,bigImgBox=this.cache.elBigImgBox;var maskXY=this.getMaskXY(el),bigImgBoxXY=this.getBigImgBoxXY(el,maskXY);YUD.setStyle(miniImgPosBox,'left',maskXY[0]+'px');YUD.setStyle(miniImgPosBox,'top',maskXY[1]+'px');YUD.setStyle(bigImgBox,'left',bigImgBoxXY[0]+'px');YUD.setStyle(bigImgBox,'top',bigImgBoxXY[1]+'px');bigImgBox.innerHTML=this.parseHtml(this.templateStr,this.templateParseHash);},show:function(el){var _self=this;if(this.config.displayDelay>0){YUE.removeListener(el,'mouseout');_self.cache.timer=setTimeout(function(){_self.resetWH(el);_self.genHtml(el);_self.onlyShow();},this.config.displayDelay);YUE.on(el,'mouseout',function(){clearTimeout(_self.cache.timer)});}else{this.resetWH(el);this.genHtml(el);this.onlyShow();}},onlyShow:function(){YUD.setStyle([this.cache.elBigImgBox,this.cache.elMiniImgPosBox],'visibility','visible');this.cache.isHidden=false;},hide:function(e){var _self=this;if(this.config.closeDelay>0){setTimeout(function(){if(_self.cache.isHidden||!_self.cache.canClose)return;YUD.setStyle([_self.cache.elBigImgBox,_self.cache.elMiniImgPosBox],'visibility','hidden');_self.cache.isHidden=true;},this.config.closeDelay);}else{if(this.cache.isHidden||!this.cache.canClose)return;YUD.setStyle([this.cache.elBigImgBox,this.cache.elMiniImgPosBox],'visibility','hidden');this.cache.isHidden=true;}}};