
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:YAHOO.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 YAHOO.util.CustomEvent("disablePre",_self);_self.onEnablePre=new YAHOO.util.CustomEvent("enablePre",_self);_self.onDisableNext=new YAHOO.util.CustomEvent("disableNext",_self);_self.onEnableNext=new YAHOO.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 YAHOO.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);}}
