function PanNav(mask,width,height,imgWidth,imgHeight,defaultScale,href,track){var _this=this;var _imgContainer;var _imgContainerDOM;this.imgs=[];var _halfWidth=width*.5;var _halfHeight=height*.5;var _halfImgWidth=imgWidth*.5;var _halfImgHeight=imgHeight*.5;var _paddingW=_halfImgWidth-_halfWidth;var _paddingH=_halfImgHeight-_halfHeight;var _isOver=false;var _x=0;var _y=0;var _s=0;var _tx=0;var _ty=0;var _ts=0;var currentImgId=0;var previousImgId=-1;var _mouseImgFunc;var _3dPrefix;var DELTA=.05;var _touchDownX;var _touchDownY;var _touchX;var _touchY;var _touchDownTime;function _init(){defaultScale=defaultScale||Math.max(width/imgWidth,height/imgHeight);_imgContainer=mask.find(".pan-nav-img");_imgContainerDOM=_imgContainer[0];_parseImage(_imgContainer.find("img")[0],0);if(Modernizr.csstransforms3d&&!Setting.isIOS){_imgContainerDOM.style[Modernizr.prefixed('transformOrigin')]="0% 0%";_mouseImgFunc=_3dMoveImg;_3dPrefix=Modernizr.prefixed('transform');}else{_mouseImgFunc=_normalMoveImg;}
if("ontouchstart"in window){mask.bind('click',_onClick);mask.bind('touchstart',_onMouseOver);mask.bind('touchend',_onMouseOut);_x=_tx=0;_y=_ty=0;_s=_ts=defaultScale;_render();}else{mask.bind('mousemove',_onMouseMove);mask.bind('mouseover',_onMouseOver);mask.bind('mouseout',_onMouseOut);mask.bind('click',_onClick);_this.start();}}
function _onClick(){Linkage.trackEvent("header",track);Setting.homeAutoChange.active=false;document.location.replace("#!/"+href);if(Setting.isIOS){var title=mask.parent().parent().parent().find(".title");title[0].ontouchstart({target:title[0]});}}
function _parseImage(img,id){if(id==0)_imgContainer.append(img);img.style.position="absolute";img.style.top="0px";img.style.left="0px";_this.imgs[id]=img;}
function _onMouseOver(e){_ts=1;_onMouseMove(e);}
function _onMouseMove(e){if(mask.offset().left>0){_tx=(e.pageX-mask.offset().left-_halfWidth)/_halfWidth;_ty=(e.pageY-mask.offset().top-_halfHeight)/_halfHeight;}}
function _onMouseOut(e){_ts=defaultScale;_tx=0;_ty=0;}
function _onTouchStart(e){_ts=1;}
function _onTouchMove(e){_tx=(e.relativeTouchX-_halfWidth)/_halfWidth;_ty=(e.relativeTouchY-_halfHeight)/_halfHeight;}
function _onTouchEnd(e){_ts=defaultScale;_tx=0;_ty=0;}
function _render(){_x+=(_tx-_x)*DELTA;_y+=(_ty-_y)*DELTA;_s+=(_ts-_s)*DELTA;_mouseImgFunc(_halfWidth-(_x*_paddingW+_halfImgWidth)*_s,_halfHeight-(_y*_paddingH+_halfImgHeight)*_s);}
function _normalMoveImg(x,y){_imgContainerDOM.style.left=x+"px";_imgContainerDOM.style.top=y+"px";var i=_this.imgs.length;while(i--){if(_this.imgs[i]){_this.imgs[i].style.width=(imgWidth*_s)+"px";_this.imgs[i].style.height=(imgHeight*_s)+"px";}}}
function _3dMoveImg(x,y){_imgContainerDOM.style[_3dPrefix]="translate3d("+x+"px,"+y+"px,0px) scale3d("+_s+","+_s+",1)";}
function _ipadMoveImg(x,y){_imgContainerDOM.style[_3dPrefix]="translate3d("+(x/imgWidth*100)+"%,"+(y/imgHeight*100)+"%,0%) scale3d("+_s+","+_s+",1)";}
function _getNextImage(){var img;currentImgId=currentImgId+1==_this.imgs.length?0:currentImgId+1;if(!(img=_this.imgs[currentImgId]))img=_getNextImage();return img;}
this.changeNextImage=function(){var previousImg=$(_this.imgs[currentImgId]).remove();var img=_getNextImage();_imgContainer.prepend(img);$(img).css("opacity",1);if(!Modernizr.csstransforms3d){img.style.width=(imgWidth*_s)+"px";img.style.height=(imgHeight*_s)+"px";}}
this.addImage=function(filename,onload){var id=_this.imgs.length;_this.imgs[id]=null;$("<img>").attr("src",filename).attr("data-id",id).load(function(){_parseImage($(this)[0],$(this).attr("data-id"));if(onload)onload(_this);});}
this.start=function(){_x=_tx=0;_y=_ty=0;_s=_ts=defaultScale;StageReference.addRenderFunc(_render);_render();}
this.stop=function(){StageReference.removeRenderFunc(_render);}
_init();this.getContainer=function(){return mask;}}
PanNav.group={};PanNav.numOfImagesReadyInGroup=function(group){var list=PanNav.group[group];var min=Number.MAX_VALUE;var i=list.length;while(i--){if(list[i].imgs.length<min)min=list[i].imgs.length}
return min;}
PanNav.changeImagesByGroup=function(group){var list=PanNav.group[group];var i=list.length;while(i--){list[i].changeNextImage();}}
