
AE.namespace('run.minisite.productViewer');AE.run.minisite.productViewer=function(){var _self=this;var oDefConfig={startEnd:[0,8],thisIndex:0,itemSize:[0,0],showenItemCount:0,itemCount:1,step:3,animTime:1,orientation:"h",MotionMethod:CUNGV.util.Easing.easeBothStrong,itemContainerId:"itemViewerContainer",itemClassName:"productGroupOthersItem",preBtnId:"itemViewerPre",nextBtnId:"itemViewerNext",loadingGifId:"loadingGIF",itemViewerFakeDivId:"itemViewerFakeDiv",getDataUrl:false,dataFormId:false,updateItemCount:6}
var config;var preBtn,nextBtn,navContainer,itemContainer;var anim;var isInited=false;var basePoint=[0,0];var oldIndex;var loadDataForm,canGetData=true;var dataArray=[],tmpDTO=[];var currentIndex;var startEndIndex=[];_self.onDisablePre=new CUNGV.util.CustomEvent("disablePre",_self);_self.onEnablePre=new CUNGV.util.CustomEvent("enablePre",_self);_self.onDisableNext=new CUNGV.util.CustomEvent("disableNext",_self);_self.onEnableNext=new CUNGV.util.CustomEvent("enableNext",_self);var disablePre=function(){YUE.removeListener(preBtn,'click',_self.onDisablePre);_self.onDisablePre.fire();};var enablePre=function(){YUE.on(preBtn,'click',_self.fPre);_self.onEnablePre.fire();};var disableNext=function(){YUE.removeListener(nextBtn,'click',_self.onDisableNext);_self.onDisableNext.fire();};var enableNext=function(){YUE.on(nextBtn,'click',_self.fNext);_self.onEnableNext.fire();};_self.init=function(oConfig){if(isInited)return false;config=AE.cpAttribute(oConfig,oDefConfig);startEndIndex=config.startEnd;config.showenItemCount=config.showenItemCount<=0?config.step:config.showenItemCount;currentIndex=(config.thisIndex<0)?0:config.thisIndex;currentIndex=Math.floor(currentIndex/config.showenItemCount)*config.showenItemCount;if(config.itemNum<0){isInited=true;return false;}
itemContainer=get(config.itemContainerId);fakeDiv=createFakeDiv(itemContainer);var onloadData=YUD.getElementsByClassName(config.itemClassName,'*',itemContainer);dataArray=loadDataToContainer(onloadData,config.startEnd);basePoint=YUD.getXY(itemContainer.parentNode);anim=new CUNGV.util.Motion(config.itemContainerId,{points:{by:[0,0]}},config.animTime,config.MotionMethod)
anim.onStart.subscribe(animStart);anim.onComplete.subscribe(animComplete);setBtns();initItemContainer();isInited=true;return true;};var createFakeDiv=function(originalDiv){var fakeDiv=document.createElement('div');fakeDiv.className=originalDiv.className;fakeDiv.id=config.itemViewerFakeDivId;YUD.setStyle(fakeDiv,"position","absolute");YUD.insertBefore(fakeDiv,originalDiv);return fakeDiv;}
var createItemDiv=function(innerHTMLc,divClassName){var ItemDiv=document.createElement('div');ItemDiv.className=divClassName;ItemDiv.innerHTML=innerHTMLc;return ItemDiv;}
var setBtns=function(){try{preBtn=get(config.preBtnId);nextBtn=get(config.nextBtnId);}catch(e){preBtn=false;nextBtn=false;}
if(preBtn){YUD.setStyle(preBtn,'visibility','');YUD.setStyle(nextBtn,'visibility','');YUE.on(preBtn,'click',_self.fPre);YUE.on(nextBtn,'click',_self.fNext);}}
var animStart=function(){YUD.setStyle(fakeDiv,'visibility','hidden');YUD.setStyle(itemContainer,'visibility','');}
var animComplete=function(){showItems(fakeDiv);fillDataToScrollDiv(itemContainer);YUD.setStyle(fakeDiv,'visibility','');YUD.setStyle(itemContainer,'visibility','hidden');var offsetIndex=(currentIndex-config.step>0)?config.showenItemCount:currentIndex;YUD.setStyle(itemContainer,'left',(-offsetIndex*config.itemSize[0])+'px');}
var loadDataToContainer=function(dataF,startEnd){var containers=[];for(var i=startEnd[0];i<=startEnd[1];i++){containers[i]=dataF[i-startEnd[0]].innerHTML;}
return containers;}
var dataReader=function(fromIndex,ln){var aTempData=[];var addedClass='';for(var i=fromIndex;i<fromIndex+ln&&dataArray[i];i++){if(i==config.thisIndex){addedClass=config.itemClassName+' current';}else{addedClass=config.itemClassName;}
aTempData.push('<div class="'+addedClass+'">'+dataArray[i]+'</div>');}
return aTempData;}
var fillDataToScrollDiv=function(targetDiv){targetDiv.innerHTML='';var startIndex=currentIndex-config.step;if(startIndex<0){startIndex=0};targetDiv.innerHTML=dataReader(startIndex,config.showenItemCount+config.step*2).join('');}
var initItemContainer=function(){var offsetIndex=(currentIndex-config.step>0)?config.showenItemCount:currentIndex;YUD.setStyle(itemContainer,'left',(-offsetIndex*config.itemSize[0])+'px');if(moveToPoint(offsetIndex)){animComplete();}}
var showItems=function(targetDiv){targetDiv.innerHTML='';targetDiv.innerHTML=dataReader(currentIndex,config.step).join('');}
_self.fPre=function(e){if(e)YUE.stopEvent(e);if(anim.isAnimated())return false;var tmp=currentIndex-config.step>=0?currentIndex-config.step:0;var offsetIndex=tmp-currentIndex;currentIndex=tmp;if(moveToPoint(offsetIndex)){anim.animate();}}
_self.fNext=function(e){if(e)YUE.stopEvent(e);if(anim.isAnimated())return false;var tmp=(currentIndex+config.step>=config.itemCount)?config.itemCount-1:currentIndex+config.step;var offsetIndex=tmp-currentIndex;currentIndex=tmp;if(moveToPoint(offsetIndex)){anim.animate();}}
var moveToPoint=function(offsetIndex){currentIndex<=0?disablePre():enablePre();currentIndex>=config.itemCount-config.step?disableNext():enableNext();fetchData(offsetIndex);var x=-1*offsetIndex*config.itemSize[0];anim.attributes.points.by=[x,0];return true;}
var indexToServer=function(startIndex){return startIndex;}
var fetchData=function(offsetI){if(!canGetData||!config.getDataUrl)return false;var si,ol;var tdirect=false;var furl='';if(currentIndex+config.updateItemCount+config.showenItemCount>startEndIndex[1]&&offsetI>0&&startEndIndex[1]<config.itemCount){si=startEndIndex[1]+1;ol=(config.itemCount-config.startEnd[1]>config.updateItemCount)?config.updateItemCount:config.itemCount-1-config.startEnd[1];tdirect="f";furl=config.getDataUrl+"&startIndex="+indexToServer(si)+"&si="+si+"&offsetLen="+ol+"&direct="+tdirect;}
if(currentIndex-config.updateItemCount<startEndIndex[0]&&offsetI<0&&startEndIndex[0]>0){si=config.startEnd[0]-config.updateItemCount>0?config.startEnd[0]-config.updateItemCount:0;ol=config.startEnd[0]-si;tdirect="b";furl=config.getDataUrl+"&startIndex="+indexToServer(si)+"&si="+si+"&offsetLen="+ol+"&direct="+tdirect;}
if(tdirect){canGetData=false;loadscript(furl,"forRemoteData");}}
_self.fetchDataSuccess=function(productData,tIndex,si,ol,direct){var tmpDTO=productData;var minLen=Math.min(tmpDTO.length,ol);switch(direct){case'f':{for(var i=0;i<minLen;i++){dataArray[si+i]=tmpDTO[i];}
startEndIndex[1]=si+minLen-1;break;}
case'b':{for(var i=0;i<minLen;i++){dataArray[si+i]=tmpDTO[i];}
startEndIndex[0]=si;break;}}
canGetData=true;}}

AE.namespace('run.minisite.productShow');AE.run.minisite.productShow=function(){var _self=this;var config,aSmallImgSrc,sBigImgHTML,sImgNavHTML;var defConfig={sImgDescTargetId:'',sTabClass:'companyProductNavItem',sItemClass:'companyProductItem',oParentNode:get('companyProductShowId'),aContainerWH:[360,360],aPreviewImgWH:[100,100],aImgSrc:[],aImgAlt:[],aImgHref:'auto',sSwitchEvent:"mouseover",sCurrentClass:"current"}
_self.init=function(oConfig){config=TB.applyIf(oConfig||{},defConfig)
var oProductShow=new AE.widget.dynamicImagesShow();oProductShow.init(config);}}

function searchBarBeforeSubmit(SearchForm){if(trim(SearchForm.SearchText.value)==''){alert('Please input a search term.');return false;}
return true;}
var initText=new Array('search our products');function searchBarClearSearchText(obj){if(obj==null)return;for(var i=0;i<initText.length;i++){if(initText[i]==obj.value){obj.value='';return;}}}

AE.namespace('AE.run.fastFeedback');AE.run.fastFeedback=function(userConfig){var _self=this;var defConfig={fastFeedbackId:'fastFeedback',emailTextareaId:'emailTextarea',minMaxButtonIdS:'minMaxButtonS',sButtonMinId:'sButtonMin',sButtonMaxId:'sButtonMax',minMaxButtonIdL:'minMaxButtonL',emailCloseButtonId:'emailCloseButton',contentBoxId:'contentBox',smallEmailInputId:'smallEmailInput',emailInputAreaId:'emailInputArea',motionDuration:0.5,timeOutDelay:500,needMask:true};var config;var fastFeedback,emailTextarea,minMaxButtonS,minMaxButtonL,closeButton,contentBox,smallEmailInput,emailInputArea,emailCloseButton,sButtonMin,sButtonMax,iframeMask;_self.customEvent={'afterShowEmailTextarea':new CUNGV.util.CustomEvent('afterShowEmailTextarea',_self,false,CUNGV.util.CustomEvent.LIST)}
var __hideSth=function(){if(arguments.length>0){YUD.setStyle(arguments[arguments.length-1],'display','none');}else{return false;}}
var __showSth=function(){if(arguments.length>0){YUD.setStyle(arguments[arguments.length-1],'display','');}else{return false;}}
_self.calculateBottomXY=function(el){var clientWidth=YUD.getViewportWidth();var clientHeight=YUD.getViewportHeight();var elOffsetHeight=el.offsetHeight;var elOffsetWidth=el.offsetWidth;var scrollTop=document.documentElement.scrollTop;return([clientWidth-elOffsetWidth,clientHeight-elOffsetHeight+scrollTop]);}
_self.setToBottomRight=function(el){var desXY=_self.calculateBottomXY(el);YUD.setXY(el,desXY);}
_self.followScroll=function(el){clearTimeout();var desXY=_self.calculateBottomXY(el);var curXY=YUD.getXY(el);if(Math.abs(curXY[0]-desXY[0])>5||Math.abs(curXY[1]-desXY[1])>5){var anim=new CUNGV.util.Motion(el,{points:{to:desXY}},config.motionDuration,CUNGV.util.Easing.easeOut);anim.animate();}
setTimeout(function(){_self.followScroll(el)},config.timeOutDelay);}
_self.minMaxButtonSClick=function(){switch(minMaxButtonS.className){case'maxStatus':__hideSth(contentBox);minMaxButtonS.className='minStatus';YUD.setStyle(sButtonMin,'display','none');YUD.setStyle(sButtonMax,'display','');break;case'minStatus':__showSth(contentBox);minMaxButtonS.className='maxStatus';YUD.setStyle(sButtonMin,'display','');YUD.setStyle(sButtonMax,'display','none');break;}
clearTimeout();_self.setToBottomRight(fastFeedback);_self.followScroll(fastFeedback);if(config.needMask){_self.setToBottomRight(iframeMask);_self.followScroll(iframeMask);setIframeMaskSize(fastFeedback);}}
_self.minMaxButtonLClick=function(){__hideSth(emailTextarea);__showSth(fastFeedback);__hideSth(contentBox);minMaxButtonS.className='minStatus';YUD.setStyle(sButtonMin,'display','none');YUD.setStyle(sButtonMax,'display','');clearTimeout();_self.setToBottomRight(fastFeedback);_self.followScroll(fastFeedback);if(config.needMask){_self.setToBottomRight(iframeMask);_self.followScroll(iframeMask);setIframeMaskSize(fastFeedback);}}
_self.showEmailTextarea=function(){__showSth(emailTextarea);_self.setToBottomRight(emailTextarea);_self.followScroll(emailTextarea)
if(config.needMask){_self.setToBottomRight(iframeMask);_self.followScroll(iframeMask);setIframeMaskSize(emailTextarea);}
__hideSth(fastFeedback);fastFeedback.style.display='none';emailInputArea.focus();_self.customEvent['afterShowEmailTextarea'].fire();}
_self.closeEmailTextarea=function(){__hideSth(emailTextarea);__showSth(fastFeedback);}
var setIframeMaskSize=function(dContainer){if(config.needMask&&dContainer){iframeMask.style.display="";iframeMask.style.width=dContainer.offsetWidth+"px";iframeMask.style.height=dContainer.offsetHeight+"px";var xy=YUD.getXY(dContainer);YUD.setXY(iframeMask,xy);iframeMask.style.visibility="visible";}}
_self.init=function(userConfig){config=YL.merge(defConfig,userConfig||{});fastFeedback=get(config.fastFeedbackId);emailTextarea=get(config.emailTextareaId);minMaxButtonS=get(config.minMaxButtonIdS);sButtonMin=get(config.sButtonMinId);sButtonMax=get(config.sButtonMaxId);minMaxButtonL=get(config.minMaxButtonIdL);emailCloseButton=get(config.emailCloseButtonId);contentBox=get(config.contentBoxId);smallEmailInput=get(config.smallEmailInputId);emailInputArea=get(config.emailInputAreaId);_self.setToBottomRight(fastFeedback);_self.followScroll(fastFeedback);YUE.on(minMaxButtonS,'click',_self.minMaxButtonSClick);YUE.on(minMaxButtonL,'click',_self.minMaxButtonLClick);YUE.on(smallEmailInput,'focus',_self.showEmailTextarea);YUE.on(emailCloseButton,'click',_self.closeEmailTextarea);YUE.on(emailInputArea,'keyup',function(){smallEmailInput.value=emailInputArea.value})
if(config.needMask){iframeMask=document.createElement("iframe");iframeMask.className="maskIframe";iframeMask.style.zIndex=YUD.getStyle(fastFeedback,'zIndex')-1;iframeMask.style.top="0px";iframeMask.style.left="0px";iframeMask.frameBorder=0;fastFeedback.parentNode.appendChild(iframeMask);_self.setToBottomRight(iframeMask);_self.followScroll(iframeMask);setIframeMaskSize(fastFeedback);}}
_self.init(userConfig);}

