function View360UtilStatic(){this.getElementById=function(n){return document.getElementById(n)};this.getFirstElementByClassName=function(n,t){var i=this.getElementsByClassName(n,t);return i[0]};this.getElementsByClassName=function(n,t){return n.getElementsByClassName?n.getElementsByClassName(t):n.querySelectorAll?n.querySelectorAll("."+t):document.querySelectorAll?document.querySelectorAll("."+t):void 0};this.addEvent=function(n,t,i,r){return n.addEventListener?n.addEventListener(t,i,r):n.attachEvent?n.attachEvent("on"+t,i):void 0};this.removeEvent=function(n,t,i){return n.addEventListener?n.removeEventListener(t,i):n.detachEvent?n.detachEvent("on"+t,i):void 0};this.setAttribute=function(n,t,i){n.setAttribute?n.setAttribute(t,i):n[t]=i};this.hasClass=function(n,t){return n.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))};this.addClass=function(n,t){this.hasClass(n,t)||(n.className+=" "+t)};this.removeClass=function(n,t){if(this.hasClass(n,t)){var i=new RegExp("(\\s|^)"+t+"(\\s|$)");n.className=n.className.replace(i," ")}};this.pad=function(n,t){for(var i=n+"";i.length<t;)i="0"+i;return i};this.loadJSON=function(n,t,i){var r=new XMLHttpRequest;r.onreadystatechange=function(){r.readyState===XMLHttpRequest.DONE&&(r.status===200?t&&t(JSON.parse(r.responseText)):i&&i(r))};r.open("GET",n,!0);r.send()}}function View360Loader(n){this.sources=n;this.directory;this.callbackOne=function(){};this.callbackAll=function(){};this.callbackEach=function(){};this.callbackOn={};this.images=[];this.totalImages;this.setDirectory=function(n){this.directory=n};this.setSources=function(n){this.sources=n};this.setCallbackOne=function(n,t){this.callbackOne=n;this.urlOne=t};this.setCallbackAll=function(n){this.callbackAll=n};this.setCallbackEach=function(n){this.callbackEach=n};this.setCallbackProgress=function(n){this.callbackProgress=n};this.setCallbackOn=function(n,t){this.callbackOn[n]=t};this.loadFirstNum=function(n){this.loadFirstNum=n};this.start=function(){var n=this;this.loadImages(0,this.sources.length-1,function(t,i){n.callbackOne(t,i)},function(t,i){n.callbackAll(t,i)},function(t){n.callbackProgress(t)},function(t,i){n.callbackEach(t,i)})};this.getImages=function(){return this.images};this.loadOne=function(){var t=this,n=new Image;n.onload=function(n){t.callbackOne(n.currentTarget,!1)};n.src=this.directory+"/"+this.urlOne};this.loadImages=function(n,t,i,r,u,f){for(var c=this,o=0,s=0,h=0,s=t-n+1,e=n;e<=t;e++)this.images[e]=new Image,this.images[e].onload=function(n){o++;o>=s&&r(c.images,h);f(n.currentTarget,!1);var t=Math.ceil(o/s*100);u({loaded:o,total:s,error:h,percent:t})},this.images[e].onerror=function(n){h++;++o>=s&&r(c.images,h);f(n.currentTarget,!0);var t=Math.ceil(o/s*100);u({loaded:o,total:s,error:h,percent:t})},this.images[e].src=this.directory+"/"+this.sources[e]}}var View360=function(n){this.consObj=n;this.navigationConfig={btnWidth:40,btnHeight:40,btnMargin:5,showButtons:!0,showTool:!0,showMove:!0,showRotate:!0,showPlay:!0,showPause:!0,showZoom:!0,showTurn:!0,turnSpeed:40,showFullscreen:!0,showClose:!0,align:"center",orientation:"horizontal",type:"square",cornerRadius:20,btnImageSize:"100%"};this.config={verticalAngles:{from:15,to:45,initial:15},horizontalAngles:{from:0,to:360,initial:0},opacity:1,mode:"fixed",width:620,height:350,fitmode:"fit",oneTurnOnStartUp:!0,autoRotate:!1,autoRotateDirection:1,autoRotateSpeed:50,autoRotateStopOnMove:!0,zoomMultipliers:[1,1.2,1.5,2,3],loadFullSizeImagesOnZoom:!0,loadFullSizeImagesOnFullscreen:!0,initialImage:0,imagesDirectory:".",fullSizeImagesDirectory:"",images:[],autoLoadImages:!0,imagesPattern:"image_%COL_%ROW.jpg",imagesNumbering:0,showTurnMeOn:!1,rows:1,columns:36,xAxisSensitivity:10,yAxisSensitivity:40,inertiaConstant:10,panInBounds:!1,playBtnMode:"loop",opositeDirection:!1,loadOnPageLoad:!1,firstImageOpacity:.5,loadFirstImage:!0,imagesNumberingUpDown:0};this.loaderInfoClass=View360LoadingInfo;this.loaderInfoConfig={};this.fullSizeLoaderInfoClass=View360LoadingInfo;this.fullSizeLoaderInfoConfig={display:!1,holderClassName:"View360-fullSizeLoader",circleLineWidth:25,circleLineColor:"#AAAAAA",modalOpacity:0,loadingTitle:"Loading fullsize images...",circleWidth:50};this.addCloseToDom=function(n){n.innerHTML+=this.closeButtons.close};this.addNavButtonsToDom=function(n){for(var i="",r,t=0;t<this.navButtonsOrder.length;t++)r=this.navButtonsOrder[t],i+=this.navButtons[r];n.innerHTML=i};this.addNavButton=function(n,t){this.navButtons[n]=t;this.navButtonsOrder.push(n)};this.navButtons={rotate:'<div class="View360-navigationRotate View360-navigationBtn"><\/div>',move:'<div class="View360-navigationHand View360-navigationBtn"><\/div>',play:'<div class="View360-navigationPlay View360-navigationBtn"><\/div>',pause:'<div class="View360-navigationPause View360-navigationBtn"><\/div>',"turn-left":'<div class="View360-navigationTurnLeft View360-navigationBtn"><\/div>',"turn-right":'<div class="View360-navigationTurnRight View360-navigationBtn"><\/div>',"zoom-in":'<div class="View360-navigationZoomIn View360-navigationBtn"><\/div>',"zoom-out":'<div class="View360-navigationZoomOut View360-navigationBtn"><\/div>',fullscreen:'<div class="View360-navigationFullscreenEnter View360-navigationBtn"><\/div><div class="View360-navigationFullscreenExit View360-navigationBtn"><\/div>'};this.closeButtons={close:'<div class="View360-navigationClose View360-navigationBtn"><\/div>'};this.navButtonsOrder=["rotate","move","play","pause","turn-left","turn-right","zoom-in","zoom-out","fullscreen"];this.setNavButtonsOrder=function(n){this.navButtonsOrder=n};this.htmlTemplate=" ";this.htmlTemplate+='   <div class="View360-holder"> ';this.htmlTemplate+='       <div class="View360-canvasHolder"> ';this.htmlTemplate+='           <canvas class="View360-canvas"><\/canvas> ';this.htmlTemplate+="       <\/div> ";this.htmlTemplate+='       <div class="View360-borderHolder View360-loadingBackground"><\/div> ';this.htmlTemplate+='       <div class="View360-loaderHolder"><\/div> ';this.htmlTemplate+='       <div class="View360-fullSizeLoaderHolder"><\/div> ';this.htmlTemplate+='       <div class="View360-clickableArea"><\/div> ';this.htmlTemplate+='<div class="View360-turnMeOnHolder"><div class="View360-turnMeOn"><\/div><\/div>';this.htmlTemplate+='<div class="View360-closeHolder">';this.htmlTemplate+="<\/div> ";this.htmlTemplate+='<div class="View360-navigationHolder">';this.htmlTemplate+='<div class="View360-navigation">';this.htmlTemplate+="<\/div> ";this.htmlTemplate+="<\/div> ";this.htmlTemplate+='       <div class="View360-close"><\/div> ';this.htmlTemplate+="   <\/div>";this.globalPanMoveX=0;this.globalPanMoveY=0;this.currentPanMoveX=0;this.currentPanMoveY=0;this.currentZoom=1;this.isFullscreen=!1;this.ctx=null;this.totalImages=0;this.cols;this.rows;this.totalImages;this.autoRotatePaused=!1;this.mouseDown=!1;this.refMouseX;this.refMouseY;this.refCol;this.refRow;this.currentCol=0;this.currentRow=0;this.refCol=this.currentCol;this.refRow=this.currentRow;this.autoCol=0;this.images=[];this.clickableAreaObj=null;this.oldBodyOverflowX="unset";this.rememberInertiaInterval=null;this.inertiaStatesArr=[];this.stopRememberInertiaInterval=function(){clearInterval(this.rememberInertiaInterval)};this.inertiaPrevStateX=null;this.inertiaPrevStateY=null;this.allowInertia=!1;this.startRememberInertiaInterval=function(){var n=this;this.inertiaStatesArr=[];this.rememberInertiaInterval=setInterval(function(){n.allowInertia=n.inertiaPrevStateX==n.currentMoveX&&n.inertiaPrevStateY==n.currentMoveY?!1:!0;n.inertiaPrevStateX=n.currentMoveX;n.inertiaPrevStateY=n.currentMoveY},30)};this.rememberInertiaStates=function(){var n=this,t;n.inertiaStatesArr.length==0&&(n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY}),n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY}),n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY}),n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY}),n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY}));t={moveX:n.currentMoveX,moveY:n.currentMoveY};n.inertiaStatesArr.push({moveX:n.currentMoveX,moveY:n.currentMoveY});n.inertiaStatesArr.shift()};this.inertiaAutoMoveInterval=null;this.startInertiaAutoMoveInterval=function(n){var i=this,t;if(n)t=24;else{if(!this.allowInertia){this.autoRotatePaused=!1;return}this.stopInertiaAutoMoveInterval();try{if(t=i.inertiaStatesArr[i.inertiaStatesArr.length-1].moveX-i.inertiaStatesArr[0].moveX,t==0)return}catch(s){return}t=t/10;t=i.getDirection(t)*Math.min(15,Math.abs(t))}this.refCol=this.currentCol;this.refRow=this.currentRow;var o=Math.abs(t),r=o*1.5,u=0,f=6,e=0;this.inertiaAutoMoveInterval=setInterval(function(){var n=r/f;e+=n;r-=n;u+=1;u>6*f&&(i.autoRotatePaused=!1,clearInterval(i.inertiaAutoMoveInterval));i.autoColMove(i.getDirection(t)*Math.round(e))},10)};this.stopInertiaAutoMoveInterval=function(){clearInterval(this.inertiaAutoMoveInterval)};this.autoColMove=function(n){var t,i;n!=0&&(t=-1,this.currentCol=(this.refCol+t*n)%this.cols,this.currentCol=this.currentCol<0?this.currentCol+this.cols:this.currentCol,this.autoCol=this.currentCol,i=this.getIdxByColRow(this.currentCol,this.currentRow),this.displayImageByIdx(i))};this.mouseDownHandler=function(n,t){var i=this;(this.config.hideOnMouseTurnMeOn&&V360Util.addClass(this.turnMeOnHolder,"View360-opacity0"),this.config.autoRotateStopOnMove&&this.stopAutoRotate(),this.stopInertiaAutoMoveInterval(),this.startRememberInertiaInterval(),this.refCol=this.currentCol,this.refRow=this.currentRow,this.refMouseX=n,this.refMouseY=t,this.mouseDown)||(this.autoRotatePaused=!0,this.mouseDown=!0,V360Util.removeEvent(document,"touchmove",this.touchMoveHandlerListener),this.touchMoveHandlerListener=function(n){n.touches.length>1||(n.preventDefault(),i.mouseMoveHandler(n.touches[0].pageX,n.touches[0].pageY))},V360Util.addEvent(document,"touchmove",this.touchMoveHandlerListener,!1),V360Util.removeEvent(document,"mousemove",this.mouseMoveHandlerListener),this.mouseMoveHandlerListener=function(n){i.mouseMoveHandler(n.pageX,n.pageY)},V360Util.addEvent(document,"mousemove",this.mouseMoveHandlerListener,!1),V360Util.removeEvent(document,"mouseup",this.mouseUpHandlerListener),V360Util.removeEvent(this.clickableAreaObj,"touchend",this.mouseUpHandlerListener),this.mouseUpHandlerListener=function(n){i.mouseUpHandler(n)},V360Util.addEvent(document,"mouseup",this.mouseUpHandlerListener,!1),V360Util.addEvent(this.clickableAreaObj,"touchend",this.mouseUpHandlerListener,!1))};this.setRelativePosition=function(n,t){this.globalPanMoveX=n;this.globalPanMoveY=t};this.mouseUpHandler=function(n){n.stopPropagation();this.mouseDown=!1;this.currentPanMoveX=0;this.currentPanMoveY=0;this.isPanMode()&&(this.globalPanMoveX=-((this.zoomedXPosMoved-this.zoomedXPosCentered-this.panMoveEmptyX)/this.currentZoom),this.globalPanMoveY=-((this.zoomedYPosMoved-this.zoomedYPosCentered-this.panMoveEmptyY)/this.currentZoom),this.panMoveEmptyX=0,this.panMoveEmptyY=0);V360Util.removeEvent(document,"mousemove",this.mouseMoveHandlerListener);V360Util.removeEvent(document,"touchmove",this.touchMoveHandlerListener);V360Util.removeEvent(document,"mouseup",this.mouseUpHandlerListener);V360Util.removeEvent(this.clickableAreaObj,"touchend",this.mouseUpHandlerListener);this.stopRememberInertiaInterval();this.startInertiaAutoMoveInterval()};this.setMoveMode=function(n){this.moveMode=n};this.isPanMode=function(){return this.moveMode=="PAN"};this.isRotate=function(){return this.moveMode=="ROTATE"};this.mouseMoveHandler=function(n,t){if(this.smallLoaded){if(this.isPanMode()){this.currentPanMoveX=this.refMouseX-n;this.currentPanMoveY=this.refMouseY-t;this.displayCurrentImage();return}var i=this.currentMoveX=this.refMouseX-n,r=this.currentMoveY=this.refMouseY-t;this.moveObjectByXY(i,r);this.rememberInertiaStates()}};this.moveObjectByXY=function(n,t){var i,r,u,f,e;n!==0&&(i=-this.getDirection(n),r=Math.floor(Math.abs(n)/this.config.xAxisSensitivity),this.currentCol=(this.refCol+i*r)%this.cols,this.currentCol=this.currentCol<0?this.currentCol+this.cols:this.currentCol);t!==0&&(u=-this.getDirection(t),f=Math.floor(Math.abs(t)/this.config.yAxisSensitivity),this.currentRow=this.refRow+u*f,this.currentRow=Math.min(this.rows-1,this.currentRow),this.currentRow=Math.max(0,this.currentRow));this.autoCol=this.currentCol;e=this.getIdxByColRow(this.currentCol,this.currentRow);this.displayImageByIdx(e)};this.getIdxByColRow=function(n,t){return n+t*this.cols};this.getDirection=function(n){return n>=0?1:-1};this.autoRotateFunc=function(n){var i=n?n:this.config.autoRotateDirection,t;(i==1?(this.autoCol==this.cols-1&&(this.autoCol=-1),this.autoCol++):(this.autoCol==0&&(this.autoCol=this.cols-1),this.autoCol--),this.currentCol=this.autoCol,t=this.getIdxByColRow(this.autoCol,this.currentRow),this.displayImageByIdx(t),this.config.playBtnMode!="loop")&&this._isPlayBtn&&(this.config.playBtnMode=="oneloop"?(this._oneLoopCount++,this._oneLoopCount>=this.cols&&this.stopAutoRotate()):this.config.playBtnMode=="firstimage"?this.autoCol==0&&this.stopAutoRotate():this.config.playBtnMode=="lastimage"?this.autoCol==this.cols-1&&this.stopAutoRotate():parseInt(this.config.playBtnMode)==this.config.playBtnMode&&this.autoCol==parseInt(this.config.playBtnMode)&&this.stopAutoRotate())};this.setRow=function(n){if(this.smallLoaded){this.currentRow=n<this.config.rows?n:n%this.config.rows;var t=this.getIdxByColRow(this.currentCol,this.currentRow);this.displayImageByIdx(t)}};this.setColumn=function(n){if(this.smallLoaded){n=Math.abs(n)<this.config.columns?n:n%this.config.columns;n<0&&(n=this.config.columns+n);this.currentCol=n;var t=this.getIdxByColRow(this.currentCol,this.currentRow);this.displayImageByIdx(t)}};this.minMax=function(n,t,i){return n=Math.min(n,i),Math.max(n,t)};this.setVerticalAngle=function(n){n=Math.abs(n);n=this.minMax(n,this.config.verticalAngles.from,this.config.verticalAngles.to);var i=n-this.config.verticalAngles.from,r=this.config.verticalAngles.to-this.config.verticalAngles.from,u=i/r*100,t=Math.floor(this.config.rows*(u/100));t=Math.min(t,this.config.rows-1);this.setRow(t)};this.displayCurrentImage=function(){this.latestImageIdx!==undefined&&this.displayImageByIdx(this.latestImageIdx)};this._getFullSizeImageByIdx=function(n){return this.fullSizeImages[n]};this.displayImageByIdx=function(n){var t;this.latestImageIdx=n;t=this.images[n];this.fullSizeImages&&this.fullSizeImages[n]&&this.fullSizeImages[n].complete&&(t=this.fullSizeImages[n]);this.displayImage(t)};this.displayImage=function(n){this.latestImageObj=n;this.fitImageOn(this.canvas,n)};this.panMoveEmptyX=0;this.panMoveEmptyY=0;this.fitImageOn=function(n,t,i){var o=n.height-70,y=t.width/t.height,p=n.width/o,r,u,s,h,v,c;y>p?this.config.fitmode=="left-right"||this.config.fitmode=="fit"?(u=n.width,r=t.height*(u/t.width),s=0,h=(o-r)/2):(r=o,u=t.width*(r/t.height),s=(n.width-u)/2,h=0):y<p?this.config.fitmode=="left-right"?(u=n.width,r=t.height*(u/t.width),s=0,h=(o-r)/2):(r=o,u=t.width*(r/t.height),s=(n.width-u)/2,h=0):(r=o,u=n.width,s=0,h=0);var l=u*this.currentZoom,a=r*this.currentZoom,f=s-(l-u)/2,e=h-(a-r)/2;this.zoomedXPosCentered=f;this.zoomedYPosCentered=e;v=1;f-=this.currentPanMoveX+this.globalPanMoveX*this.currentZoom*v;e-=this.currentPanMoveY+this.globalPanMoveY*this.currentZoom*v;this.zoomedXPosMoved=f;this.zoomedYPosMoved=e;this.zoomChanged&&(this.zoomChanged=!1,this.globalPanMoveX=-((this.zoomedXPosMoved-this.zoomedXPosCentered)/this.currentZoom),this.globalPanMoveY=-((this.zoomedYPosMoved-this.zoomedYPosCentered)/this.currentZoom));c=n.getContext("2d");i||c.clearRect(0,0,n.width,o);this.config.panInBounds&&(f>0&&(this.panMoveEmptyX=f,f=0),e>0&&(this.panMoveEmptyY=e,e=0),l+f<this.canvas.width&&(this.panMoveEmptyX=f,f=-(l-this.canvas.width),this.panMoveEmptyX-=f),a+e<this.workingHeight&&(this.panMoveEmptyY=e,e=-(a-this.workingHeight),this.panMoveEmptyY-=e));c.save();c.globalAlpha=this.config.opacity;c.drawImage(t,f,e,l,a);c.restore()};this.addFullScreenEvents=function(){var n=this;V360Util.removeEvent(window,"resize",this.windowResize);V360Util.removeEvent(document.documentElement,"fullscreenchange",this.fullscreenEnteredListener);V360Util.removeEvent(document,"mozfullscreenchange",this.fullscreenEnteredListener);V360Util.removeEvent(document,"MSFullscreenChange",this.fullscreenEnteredListener,!1);V360Util.removeEvent(document.documentElement,"webkitfullscreenchange",this.fullscreenEnteredListener);this.fullscreenEnteredListener=function(){n.isFullscreen=document.fullscreen||document.mozFullScreen||document.webkitIsFullScreen||document.msFullscreenElement;n.windowResize()};this.windowResize=function(){var r,u,i,t;n.isFullscreen?(n.disableResponsive=!0,n.latestRWidth=-1,i=document.getElementsByTagName("body"),t=i[0],n.oldBodyOverflowX=="unset"&&(n.oldBodyOverflowX=t.style.overflowX,n.oldBodyOverflowY=t.style.overflowY),t.style.overflowX="hidden",t.style.overflowY="hidden",n.innerHolder.className="View360-holderFullscreen",document.body.appendChild(n.innerHolder),r=n.canvas.width/window.innerWidth,u=n.canvas.height/window.innerHeight,n.globalPanMoveX=-((n.zoomedXPosMoved-n.zoomedXPosCentered)/n.currentZoom)/r,n.globalPanMoveY=-((n.zoomedYPosMoved-n.zoomedYPosCentered)/n.currentZoom)/u,V360Util.setAttribute(n.canvas,"width",window.innerWidth),V360Util.setAttribute(n.canvas,"height",window.innerHeight),n.innerHolder.style.width=window.innerWidth+"px",n.innerHolder.style.height=window.innerHeight+"px",n.innerHolder.style.top=window.pageYOffset+"px",n.innerHolder.style.left=window.pageXOffset+"px",n.navigationConfig.showFullscreen&&n.navigationConfig.showButtons&&(V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenEnter").style.display="none",V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenExit").style.display="inline-block"),n.config.loadFullSizeImagesOnFullscreen&&n.startFullSizeImageLoader()):(n.disableResponsive=!1,n.innerHolder.className="View360-holder",n.holder.appendChild(n.innerHolder),r=n.canvas.width/n.config.width,u=n.canvas.height/n.config.height,n.globalPanMoveX=-((n.zoomedXPosMoved-n.zoomedXPosCentered)/n.currentZoom)/r,n.globalPanMoveY=-((n.zoomedYPosMoved-n.zoomedYPosCentered)/n.currentZoom)/u,V360Util.setAttribute(n.canvas,"width",n.config.width),V360Util.setAttribute(n.canvas,"height",n.config.height),n.innerHolder.style.width=n.config.width+"px",n.innerHolder.style.height=n.config.height+"px",n.innerHolder.style.top="0px",n.innerHolder.style.left="0px",i=document.getElementsByTagName("body"),t=i[0],t.style.overflowX=n.oldBodyOverflowX,t.style.overflowY=n.oldBodyOverflowY,setTimeout(function(){t.style.overflowX=n.oldBodyOverflowX;t.style.overflowY=n.oldBodyOverflowY},200),n.navigationConfig.showFullscreen&&n.navigationConfig.showButtons&&(V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenEnter").style.display="inline-block",V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenExit").style.display="none"));n.latestImageIdx!==undefined&&n.displayImageByIdx(n.latestImageIdx)};V360Util.addEvent(window,"resize",this.windowResize,!1);V360Util.addEvent(document.documentElement,"fullscreenchange",this.fullscreenEnteredListener,!1);V360Util.addEvent(document,"mozfullscreenchange",this.fullscreenEnteredListener,!1);V360Util.addEvent(document,"MSFullscreenChange",this.fullscreenEnteredListener,!1);V360Util.addEvent(document.documentElement,"webkitfullscreenchange",this.fullscreenEnteredListener,!1)};this.destroy=function(){V360Util.removeEvent(window,"resize",this.windowResize);V360Util.removeEvent(document.documentElement,"fullscreenchange",this.fullscreenEnteredListener);V360Util.removeEvent(document,"mozfullscreenchange",this.fullscreenEnteredListener);V360Util.removeEvent(document,"MSFullscreenChange",this.fullscreenEnteredListener,!1);V360Util.removeEvent(document.documentElement,"webkitfullscreenchange",this.fullscreenEnteredListener);this.responsiveInterval&&clearInterval(this.responsiveInterval);this.windowResize=null;this.fullscreenEnteredListener=null;this.innerHolder=null;this.turnMeOnHolder=null;this.holder.innerHTML="";this.holder=null};this.addInterface=function(){var u,t,n,f,r,i;for(this.holder.innerHTML=this.htmlTemplate,this.addNavButtonsToDom(V360Util.getFirstElementByClassName(this.holder,"View360-navigation")),this.config.mode.indexOf("lightbox")!=-1&&this.addCloseToDom(V360Util.getFirstElementByClassName(this.holder,"View360-closeHolder")),this.innerHolder=V360Util.getFirstElementByClassName(this.holder,"View360-holder"),this.turnMeOnHolder=V360Util.getFirstElementByClassName(this.holder,"View360-turnMeOnHolder"),this.turnMeOnHolder.style.display="none",u=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationFullscreenExit"),u.style.display="none",t=V360Util.getElementsByClassName(this.innerHolder,"View360-navigationBtn"),n=0;n<t.length;n++)t[n].style.width=this.navigationConfig.btnWidth+"px",t[n].style.height=this.navigationConfig.btnHeight+"px",t[n].style.backgroundSize=this.navigationConfig.btnImageSize+" "+this.navigationConfig.btnImageSize,this.navigationConfig.type=="custom"?t[n].style.borderRadius=this.navigationConfig.cornerRadius+"px":this.navigationConfig.type=="round"&&(t[n].style.borderRadius=this.navigationConfig.btnWidth/2+"px"),this.navigationConfig.btnMargin!==undefined&&(t[n].style.marginLeft=this.navigationConfig.btnMargin+"px"),this.navigationConfig.orientation=="vertical"&&t[n].style.display!="none"&&(t[n].style.display="block");f=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigation");r=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationHolder");f.style.textAlign=this.navigationConfig.align;this.navigationConfig.orientation=="vertical"&&(this.navigationConfig.align=="left"?r.style.right="auto":this.navigationConfig.align=="right"&&(r.style.left="auto"));i=this;this.bindBtn("View360-navigationFullscreenEnter","click",function(n){var f=n.target;V360Util.getFirstElementByClassName(i.innerHolder,"View360-navigationFullscreenEnter").style.display="none";V360Util.getFirstElementByClassName(i.innerHolder,"View360-navigationFullscreenExit").style.display="inline-block";i.addFullScreenEvents();var t=document.documentElement,r=t.requestFullScreen||t.webkitRequestFullScreen||t.mozRequestFullScreen||t.msRequestFullscreen,u=i.isAllowedFS();r&&u?r.call(t):(i.isFullscreen=!0,i.windowResize())});this.bindBtn("View360-navigationFullscreenExit","click",this.exitFullscreenBtnHandler.bind(this))};this.exitFullscreenBtnHandler=function(){V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationFullscreenEnter").style.display="inline-block";V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationFullscreenExit").style.display="none";this.addFullScreenEvents();var n=document,t=n.exitFullscreen||n.webkitCancelFullScreen||n.webkitExitFullscreen||n.mozCancelFullScreen||n.msExitFullscreen,i=this.isAllowedFS();t&&i?t.call(n):(this.isFullscreen=!1,this.windowResize())};this.close=function(){clearInterval(this.rememberInertiaInterval);clearInterval(this.autoRotateInterval);clearInterval(this.responsiveInterval);clearInterval(this.inertiaAutoMoveInterval);this.holder.innerHTML=""};this.isAllowedFS=function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled};this.bindBtn=function(n,t,i){var r=V360Util.getFirstElementByClassName(this.innerHolder,n);V360Util.addEvent(r,t,function(n){i(n)},!1)};this.bindEvents=function(){var n=this,u,f,e,o,s,h,t,i,r;(this.clickableAreaObj=V360Util.getFirstElementByClassName(this.innerHolder,"View360-clickableArea"),this.mouseDownHandlerListener=function(t){t.preventDefault();n.mouseDownHandler(t.pageX,t.pageY)},V360Util.addEvent(this.clickableAreaObj,"mousedown",this.mouseDownHandlerListener,!1),V360Util.addEvent(this.clickableAreaObj,"click",function(n){n.stopPropagation()},!1),this.touchStartHandlerListener=function(t){n.mouseDownHandler(t.touches[0].pageX,t.touches[0].pageY)},V360Util.addEvent(this.clickableAreaObj,"touchstart",this.touchStartHandlerListener,!1),this.navigationHolder=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationHolder"),this.navigationHolder.style.visibility="hidden",this.navigationConfig.showButtons)&&(u=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationRotate"),this.navigationConfig.showTool&&this.navigationConfig.showRotate&&this.navigationConfig.showButtons?(this.navigationHandHandlerListener=function(){n.setMoveMode("ROTATE")},V360Util.addEvent(u,"click",this.navigationHandHandlerListener,!1)):u.style.display="none",f=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationHand"),this.navigationConfig.showTool&&this.navigationConfig.showMove&&this.navigationConfig.showButtons?(this.navigationHandHandlerListener=function(){n.setMoveMode("PAN")},V360Util.addEvent(f,"click",this.navigationHandHandlerListener,!1)):f.style.display="none",e=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationPlay"),this.navigationConfig.showPlay&&this.navigationConfig.showButtons?(this.navigationPlayHandlerListener=function(){n.startAutoRotate(undefined,undefined,!0)},V360Util.addEvent(e,"click",this.navigationPlayHandlerListener,!1)):e.style.display="none",o=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationPause"),this.navigationConfig.showPause&&this.navigationConfig.showButtons?(this.navigationPauseHandlerListener=function(){n.stopAutoRotate()},V360Util.addEvent(o,"click",this.navigationPauseHandlerListener,!1)):o.style.display="none",s=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationZoomIn"),this.navigationConfig.showZoom&&this.navigationConfig.showButtons?(this.navigationZoomInHandlerListener=function(){n.zoomIn()},V360Util.addEvent(s,"click",this.navigationZoomInHandlerListener,!1)):s.style.display="none",h=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationZoomOut"),this.navigationConfig.showZoom&&this.navigationConfig.showButtons?(this.navigationZoomOutHandlerListener=function(){n.zoomOut()},V360Util.addEvent(h,"click",this.navigationZoomOutHandlerListener,!1)):h.style.display="none",t=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationTurnLeft"),this.navigationConfig.showTurn&&this.navigationConfig.showButtons?(this.navigationTurnLeftMouseDownHandlerListener=function(){n.startAutoRotate(-1,n.navigationConfig.turnSpeed);V360Util.addEvent(document,"mouseup",function(){n.stopAutoRotate()},!1);V360Util.addEvent(document,"touchend",function(){n.stopAutoRotate()},!1)},V360Util.addEvent(t,"mousedown",this.navigationTurnLeftMouseDownHandlerListener,!1),V360Util.addEvent(t,"touchstart",this.navigationTurnLeftMouseDownHandlerListener,!1)):t.style.display="none",i=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationTurnRight"),this.navigationConfig.showTurn&&this.navigationConfig.showButtons?(this.navigationTurnLeftMouseDownHandlerListener=function(){n.startAutoRotate(1,n.navigationConfig.turnSpeed);V360Util.addEvent(document,"mouseup",function(){n.stopAutoRotate()},!1);V360Util.addEvent(document,"touchend",function(){n.stopAutoRotate()},!1)},V360Util.addEvent(i,"mousedown",this.navigationTurnLeftMouseDownHandlerListener,!1),V360Util.addEvent(i,"touchstart",this.navigationTurnLeftMouseDownHandlerListener,!1)):i.style.display="none",r=V360Util.getFirstElementByClassName(this.innerHolder,"View360-navigationClose"),r&&(this.navigationConfig.showClose?V360Util.addEvent(r,"click",function(){n.isFullscreen?n.exitFullscreenBtnHandler():n.lightbox&&n.lightbox.close()},!1):r.style.display="none"),this.navigationConfig.showFullscreen&&this.navigationConfig.showButtons||(V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenEnter").style.display="none",V360Util.getFirstElementByClassName(n.innerHolder,"View360-navigationFullscreenExit").style.display="none"))};this.zoomIn=function(){for(var n=0;n<this.config.zoomMultipliers.length;n++)if(this.config.zoomMultipliers[n]>this.currentZoom){this.setZoom(this.config.zoomMultipliers[n]);break}};this.zoomOut=function(){for(var n=this.config.zoomMultipliers.length-1;n>=0;n--)if(this.config.zoomMultipliers[n]<this.currentZoom){this.setZoom(this.config.zoomMultipliers[n]);break}};this.setZoom=function(n,t){this.currentZoom=n;t||this.displayImageByIdx(this.latestImageIdx);this.zoomChanged=!0;this.currentZoom==1?this.pauseFullSizeImageLoader():this.config.loadFullSizeImagesOnZoom===!1||(this.config.loadFullSizeImagesOnZoom===!0?this.startFullSizeImageLoader():this.currentZoom>=this.config.loadFullSizeImagesOnZoom&&this.startFullSizeImageLoader())};this.startFullSizeImageLoader=function(){var n;if(this.config.fullSizeImagesDirectory&&this.config.fullSizeImagesDirectory!=""&&(n=this,!this.fullSizeLoaderInfo)){this.fullSizeLoaderInfo=new this.fullSizeLoaderInfoClass(V360Util.getFirstElementByClassName(this.innerHolder,"View360-fullSizeLoaderHolder"));this.fullSizeLoaderInfo.setConfig(this.fullSizeLoaderInfoConfig);var t=new View360Loader,i=function(t){n.fullSizeLoaderInfo.setPercent(t.percent)},r=function(){},u=function(t){t==n._getFullSizeImageByIdx(n.latestImageIdx)&&n.displayCurrentImage()},f=function(t){n.fullSizeLoaderInfo.hide();n.fullSizeImages=t;n.displayCurrentImage()};t.setCallbackOne(r);t.setCallbackAll(f);t.setCallbackEach(u);t.setCallbackProgress(i);t.setSources(this.sources);t.setDirectory(this.config.fullSizeImagesDirectory);t.start();n.fullSizeImages=t.getImages();this.fullSizeLoaderInfo.show()}};this.pauseFullSizeImageLoader=function(){};this.unbindEvents=function(){};this.autoRotateInterval=null;this.startAutoRotate=function(n,t,i){this._isPlayBtn=i;this._oneLoopCount=0;t=t?t:this.config.autoRotateSpeed;this.stopAutoRotate();var r=this;this.autoRotateInterval=setInterval(function(){r.autoRotatePaused||r.autoRotateFunc(n)},t)};this.stopAutoRotate=function(){clearInterval(this.autoRotateInterval)};this.autoCreateImages=function(){var f,u,t,n,i;if(this.config.autoLoadImages)for(f=this.config.imagesPattern,this.config.images=[],this.sources=[],u=0;u<this.config.rows;u++)for(this.config.images[u]=[],t=0;t<this.config.columns;t++){this.config.images[t]||(this.config.images[t]=[]);n=t;this.config.opositeDirection===!0&&(n=this.config.columns-t-1);n=n+this.config.imagesNumbering;i=u;this.config.opositeDirectionUpDown===!0&&(i=this.config.rows-u-1);var i=i+this.config.imagesNumberingUpDown,r=f.replace("%ROW",i).replace("%COL",n),r=r.replace("%R%",V360Util.pad(i,1)).replace("%C%",V360Util.pad(n,1)),r=r.replace("%RR%",V360Util.pad(i,2)).replace("%CC%",V360Util.pad(n,2)),r=r.replace("%RRR%",V360Util.pad(i,3)).replace("%CCC%",V360Util.pad(n,3));this.config.images[t].push(r);this.sources.push(r)}};this.calculate=function(){this.rows=0;this.cols=0;this.config.images instanceof Array&&(this.config.images[0]&&this.config.images[0]instanceof Array?(this.rows=this.config.images[0].length,this.cols=this.config.images.length):(this.rows=this.config.images.length,this.cols=1));this.totalImages=this.rows*this.cols};this.responsiveResize=function(){var n,t;if(!this.disableResponsive&&this.responsiveConst){if(n=this.holder.offsetWidth,n==this.latestRWidth)return;t=Math.round(n*this.responsiveConst);this.holder.style.height=t+"px";this.config.width=n;this.config.height=t;this.latestRWidth=n;this.updateCanvasSize();this.displayCurrentImage()}};this.responsiveFitResize=function(){if(!this.disableResponsive){var n=this.holder.offsetWidth,t=this.holder.offsetHeight;(n!=this.latestRWidth||t!=this.latestRHeight)&&(this.config.width=n,this.config.height=t,this.latestRWidth=n,this.latestRHeight=t,this.updateCanvasSize(),this.displayCurrentImage())}};this.resizeResponsiveByImage=function(n){var i=this.holder.offsetWidth,t;this.responsiveConst=n.height/n.width;t=Math.round(i*this.responsiveConst);this.holder.style.height=t+"px";this.config.height=t;this.updateCanvasSize()};this.resizeResponsiveFitByImage=function(){var n=this.holder.offsetWidth,t=this.holder.offsetHeight;this.updateCanvasSize()};this.updateCanvasSize=function(){V360Util.setAttribute(this.canvas,"width",this.config.width);V360Util.setAttribute(this.canvas,"height",this.config.height);this.canvasHolder.style.width=this.config.width+"px";this.canvasHolder.style.height=this.config.height+"px";this.innerHolder.style.width=this.config.width+"px";this.innerHolder.style.height=this.config.height+"px";this.latestImageIdx!==undefined?this.displayImageByIdx(this.latestImageIdx):this.noOneImage!==undefined&&this.displayImage(this.noOneImage,this.config.firstImageOpacity)};this.lightboxCloseHandler=function(){this.destroy()};this.responsiveInterval=null;this.currentZoom=1;this.start=function(n){var t,u;this.config.loaderShow&&(this.loaderInfoClass=View360LoadingInfo_New,this.fullSizeLoaderInfoClass=View360LoadingInfo_New,this.loaderInfoConfig.loaderShow=this.config.loaderShow,this.loaderInfoConfig.loaderColor=this.config.loaderColor,this.loaderInfoConfig.loaderClassname=this.config.loaderClassname);t=this;this.holder=n;(this.config.mode=="lightbox-responsive"||this.config.mode=="lightbox-css")&&(this.lightbox=new View360Lightbox,this.lightbox.closeCallback=this.lightboxCloseHandler.bind(this),this.lightbox.setConfig(this.config),this.holder=document.createElement("div"),this.lightbox.setContent(this.holder),this.lightbox.open());this.config.mode=="lightbox"?(this.lightbox=new View360Lightbox,this.lightbox.closeCallback=this.lightboxCloseHandler.bind(this),this.lightbox.setConfig(this.config),this.holder=document.createElement("div"),this.lightbox.setContent(this.holder),this.lightbox.open()):this.config.mode=="fit"?(this.config.width=this.holder.offsetWidth,this.config.height=this.holder.offsetHeight):this.config.mode=="fullscreen"?(this.holder=document.createElement("div"),this.holder.style.position="fixed",this.holder.top="0px",this.holder.left="0px",document.body.appendChild(this.holder),this.config.width=window.innerWidth,this.config.height=window.innerHeight):this.config.mode=="responsive"||this.config.mode=="responsive-width"?(clearInterval(this.responsiveInterval),this.responsiveInterval=setInterval(function(){t.responsiveResize()},500),this.config.width=this.holder.offsetWidth,this.config.height=this.holder.offsetHeight):this.config.mode=="responsive-fit"||this.config.mode=="lightbox-responsive"||this.config.mode=="lightbox-css"?(this.holder.style.top="0px",this.holder.style.left="0px",this.holder.style.bottom="0px",this.holder.style.right="0px",this.holder.style.position="absolute",this.holder.style.overflow="hidden",clearInterval(this.responsiveInterval),this.responsiveInterval=setInterval(function(){t.config.width=t.holder.offsetWidth;t.config.height=t.holder.offsetHeight;t.responsiveFitResize()},500),this.config.width=this.holder.offsetWidth,this.config.height=this.holder.offsetHeight):this.config.mode=="fixed";setTimeout(function(){t._timeout=!0},29e3);this.currentZoom=1;this.panMoveX=0;this.panMoveY=0;this.autoCreateImages();this.calculate();this.addInterface();this.bindEvents();t.smallLoaded=!1;this.loaderInfo=new this.loaderInfoClass(V360Util.getFirstElementByClassName(this.innerHolder,"View360-loaderHolder"));this.loaderInfo.setConfig(this.loaderInfoConfig);this.loaderInfo.show();var r=this.sources,f=this.canvas=V360Util.getFirstElementByClassName(this.innerHolder,"View360-canvas"),h=this.canvasHolder=V360Util.getFirstElementByClassName(this.innerHolder,"View360-canvasHolder");t.updateCanvasSize();this.ctx=f.getContext("2d");var i=new View360Loader,e=function(n){t.loaderInfo.setPercent(n.percent)},o=function(n,i){i||(t.config.mode=="responsive"||t.config.mode=="responsive-width"?t.resizeResponsiveByImage(n):t.config.mode=="responsive-fit"&&t.resizeResponsiveFitByImage(n),t.displayImage(n,.5),t.noOneImage=n)},s=function(n){t.smallLoaded=!0;t.loaderInfo.hide();t.config.showTurnMeOn&&(t.turnMeOnHolder.style.display="block");t.navigationConfig.showButtons?t.navigationHolder.style.visibility="visible":t.navigationHolder.style.display="none";t.images=n;t.displayImageByIdx(t.config.initialImage);t.currentCol=t.config.initialImage;t.config.autoRotate?t.startAutoRotate():t.config.oneTurnOnStartUp&&t.startInertiaAutoMoveInterval(!0)};i.setCallbackOne(o,r[this.config.initialImage]);i.setCallbackAll(s);i.setCallbackProgress(e);i.setSources(r);i.setDirectory(this.config.imagesDirectory);this.config.loadOnPageLoad?(this.config.loadFirstImage&&i.loadOne(),document.readyState==="complete"?i.start():u=setInterval(function(){document.readyState==="complete"&&(clearInterval(u),t.config.loadFirstImage||i.loadOne(),i.start())},200)):(i.loadOne(),i.start())};this.setConfig=function(n){for(var t in n)this.config[t]=n[t]};this.setNavigationConfig=function(n){for(var t in n)this.navigationConfig[t]=n[t]};this.setProperty=function(n,t){this.config[n]=t};this.setMode=function(n){this.setProperty("mode",n)};this.setFitMode=function(n){this.setProperty("fitmode",n)};this.setImagesPattern=function(n){this.setProperty("imagesPattern",n)};this.setImagesDirectory=function(n){this.setProperty("imagesDirectory",n)};this.setFullSizeImagesDirectory=function(n){this.setProperty("fullSizeImagesDirectory",n)};this.setHtmlTemplate=function(n){this.htmlTemplate=n};this.setLoaderInfoClass=function(n){this.loaderInfoClass=n};this.setLoaderInfoConfig=function(n){this.loaderInfoConfig=n};this.setFullSizeLoaderInfoClass=function(n){this.fullSizeLoaderInfoClass=n};this.setFullSizeLoaderInfoConfig=function(n){this.fullSizeLoaderInfoConfig=n};this.loadPreset=function(n){var t=this;V360Util.loadJSON(n,function(n){t.loaderInfoClass=View360LoadingInfo_New;t.fullSizeLoaderInfoClass=View360LoadingInfo_New;t.loaderInfoConfig.loaderShow=n.v360config.loaderShow;t.loaderInfoConfig.loaderColor=n.v360config.loaderColor;t.loaderInfoConfig.loaderClassname=n.v360config.loaderClassname;t.setConfig(n.v360config);t.setNavigationConfig(n.v360navigation);t.setImagesDirectory((t.consObj.basepath?t.consObj.basepath+"/":"")+t.consObj.product);t.start(V360Util.getElementById(t.consObj.id))},function(){console.log("View360: Load preset failed.")})};this.consObj&&this.consObj.preset&&this.loadPreset((this.consObj.basepath?this.consObj.basepath+"/":"")+this.consObj.preset)};V360Util=new View360UtilStatic;var View360LoadingInfo_New=function(n){this.holder=n;this.config={loaderShow:!0,loaderColor:"#dddddd",loaderClassname:"ball-pulse"};this.getHTMLTemplate=function(){var n=" ",t;return n+="",n+="    <style>",n+="        .View360-loaderInnerHolder > .load-container > .loader > div > div{",n+="            background: "+this.config.loaderColor+";",n+="        }",n+="        .View360-loaderInnerHolder > .load-container > .loader{",n+="            margin-left: -50%;",n+="           margin-top: -50%;",n+="        }",n+="        .View360-loaderInnerHolder > .load-container  {",n+="            top: 50%;",n+="            position: absolute;",n+="            left: 50%;",n+="        }",n+="    <\/style>",n+='            <div class="View360-loaderInnerHolder">  ',n+='            <div class="View360-loaderBackground"><\/div>  ',n+='                    <div class="loaders load-container">',t=this.config.loaderClassname,t=="ball-pulse"?n+='<div class="loader"><div class="ball-pulse"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-grid-pulse"?n+='<div class="loader"><div class="ball-grid-pulse"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="square-spin"?n+='<div class="loader"><div class="square-spin"><div><\/div><\/div><\/div>':t=="ball-pulse-rise"?n+='<div class="loader"><div class="ball-pulse-rise"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-rotate"?n+='<div class="loader"><div class="ball-rotate"><div><\/div><\/div><\/div>':t=="cube-transition"?n+='<div class="loader"><div class="cube-transition"><div><\/div><div><\/div><\/div><\/div>':t=="ball-zig-zag"?n+='<div class="loader"><div class="ball-zig-zag"><div><\/div><div><\/div><\/div><\/div>':t=="ball-zig-zag-deflect"?n+='<div class="loader"><div class="ball-zig-zag-deflect"><div><\/div><div><\/div><\/div><\/div>':t=="ball-triangle-path"?n+='<div class="loader"><div class="ball-triangle-path"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-scale"?n+='<div class="loader"><div class="ball-scale"><div><\/div><\/div><\/div>':t=="line-scale"?n+='<div class="loader"><div class="line-scale"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="line-scale-party"?n+='<div class="loader"><div class="line-scale-party"><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-scale-multiple"?n+='<div class="loader"><div class="ball-scale-multiple"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-pulse-sync"?n+='<div class="loader"><div class="ball-pulse-sync"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-beat"?n+='<div class="loader"><div class="ball-beat"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="line-scale-pulse-out"?n+='<div class="loader"><div class="line-scale-pulse-out"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="line-scale-pulse-out-rapid"?n+='<div class="loader"><div class="line-scale-pulse-out-rapid"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-scale-ripple"?n+='<div class="loader"><div class="ball-scale-ripple"><div><\/div><\/div><\/div>':t=="ball-scale-ripple-multiple"?n+='<div class="loader"><div class="ball-scale-ripple-multiple"><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-spin-fade-loader"?n+='<div class="loader"><div class="ball-spin-fade-loader"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="line-spin-fade-loader"?n+='<div class="loader"><div class="line-spin-fade-loader"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':t=="ball-grid-beat"&&(n+='<div class="loader"><div class="ball-grid-beat"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>'),n+="<\/div>",n+="    <\/div>  ",n+"    "};this.initializeInterface=function(){this.holder.innerHTML=this.getHTMLTemplate()};this.destroyInterface=function(){this.holder.innerHTML=""};this.setPercent=function(){};this.setConfig=function(n){for(var t in n)this.config[t]=n[t]};this.show=function(){this.config.loaderShow&&this.initializeInterface()};this.hide=function(){this.config.loaderShow&&this.destroyInterface()};this.drawPercent=function(){}},View360LoadingInfo=function(n){this.holder=n;this.config={display:!0,holderClassName:null,loadingTitle:null,loadingSubtitle:null,loadingMessage:null,modalBackground:"#FFF",modalOpacity:.5,circleWidth:"70",circleLineWidth:"10",circleLineColor:"#555",circleBackgroundColor:"#FFF"};this.htmlTemplate=" ";this.htmlTemplate+='    <div class="View360-loaderInnerHolder">  ';this.htmlTemplate+='        <div class="View360-loaderBackground"><\/div>  ';this.htmlTemplate+='        <div class="View360-loader">  ';this.htmlTemplate+='             <div class="View360-loadingTitle"><\/div>  ';this.htmlTemplate+='             <div class="View360-loadingSubtitle"><\/div>  ';this.htmlTemplate+='             <div class="View360-loadingMessage"><\/div>  ';this.htmlTemplate+='             <div class="View360-visual">  ';this.htmlTemplate+='                 <div class="View360-visualHolder">  ';this.htmlTemplate+='                    <canvas class="View360-visualCanvas" width="80" height="80"><\/canvas>  ';this.htmlTemplate+='                    <div class="View360-percentHolder">  ';this.htmlTemplate+='                        <div class="View360-percent"><\/div>  ';this.htmlTemplate+="                    <\/div>  ";this.htmlTemplate+="                <\/div>  ";this.htmlTemplate+="             <\/div>  ";this.htmlTemplate+="        <\/div>  ";this.htmlTemplate+="    <\/div>  ";this.htmlTemplate+="    ";this.setHtmlByClassOrHide=function(n,t){var i=V360Util.getFirstElementByClassName(this.holder,n);i&&(t&&t!=""?i.innerHTML=t:i.style.display="none")};this.initializeInterface=function(){this.holder.innerHTML=this.htmlTemplate;this.config.holderClassName&&(this.holder.className+=" "+this.config.holderClassName);this.setHtmlByClassOrHide("View360-loadingTitle",this.config.loadingTitle);this.setHtmlByClassOrHide("View360-loadingSubtitle",this.config.loadingSubtitle);this.setHtmlByClassOrHide("View360-loadingMessage",this.config.loadingMessage);this.canvas=V360Util.getFirstElementByClassName(this.holder,"View360-visualCanvas");V360Util.setAttribute(this.canvas,"width",this.config.circleWidth);V360Util.setAttribute(this.canvas,"height",this.config.circleWidth);this.percentHolder=V360Util.getFirstElementByClassName(this.holder,"View360-percentHolder");this.percentHolder.style.width=this.config.circleWidth+"px";this.percentHolder.style.height=this.config.circleWidth+"px";this.percent=V360Util.getFirstElementByClassName(this.holder,"View360-percent");this.percent.style.width=this.config.circleWidth+"px";this.percent.style.height=this.config.circleWidth+"px";this.loaderInnerHolder=V360Util.getFirstElementByClassName(this.holder,"View360-loaderBackground");this.loaderInnerHolder.style.background=this.config.modalBackground;this.loaderInnerHolder.style.opacity=this.config.modalOpacity;this.percentEl=V360Util.getFirstElementByClassName(this.holder,"View360-percent")};this.destroyInterface=function(){this.percentEl=null;this.loaderInnerHolder=null;this.holder.innerHTML=""};this.setPercent=function(n){this.config.display&&this.percentEl&&this.drawPercent(n)};this.setConfig=function(n){for(var t in n)this.config[t]=n[t]};this.show=function(){this.config.display&&this.initializeInterface()};this.hide=function(){this.config.display&&this.destroyInterface()};this.drawPercent=function(n){try{this.percentEl.innerHTML=n+"%";var e=n/100,t=this.canvas.getContext("2d"),i=this.canvas.width/2,r=this.canvas.height/2,u=(this.canvas.width-this.config.circleLineWidth)/2,o=Math.PI*2,f=Math.PI/2;t.lineWidth=this.config.circleLineWidth;t.strokeStyle=this.config.circleLineColor;t.shadowOffsetX=0;t.shadowOffsetY=0;t.shadowColor="#656565";t.clearRect(0,0,this.canvas.width,this.canvas.height);t.arc(i,r,Math.max(0,u-this.config.circleLineWidth/2),0,2*Math.PI,!1);t.fillStyle=this.config.circleBackgroundColor;t.fill();t.beginPath();t.arc(i,r,Math.max(0,u),-f,o*e-f,!1);t.stroke()}catch(s){}}},View360Lightbox=function(){this.config={width:"800",height:"600",paddingTop:"10px",paddingBottom:"10px",paddingLeft:"10px",paddingRight:"10px",mode:"fixed"};this.setConfig=function(n){for(var t in n)this.config[t]=n[t]};this.open=function(){this.addInterface()};this.close=function(){this.removeInterface()};this.addInterface=function(){this.modalBackground=document.createElement("div");V360Util.setAttribute(this.modalBackground,"id","View360-modalBackground");document.body.appendChild(this.modalBackground);this.lighboxOuter=document.createElement("div");this.lighboxOuter.style.top=window.pageYOffset+"px";V360Util.setAttribute(this.lighboxOuter,"id","View360-lighboxOuter");document.body.appendChild(this.lighboxOuter);this.lighbox=document.createElement("div");V360Util.setAttribute(this.lighbox,"id","View360-lighbox");this.lighboxOuter.appendChild(this.lighbox);this.config.mode=="lightbox-responsive"?(this.lighbox.style.maxWidth=this.config.width+"px",this.lighbox.style.maxHeight=this.config.height+"px",this.lighbox.style.top=this.config.paddingTop,this.lighbox.style.left=this.config.paddingLeft,this.lighbox.style.bottom=this.config.paddingBottom,this.lighbox.style.right=this.config.paddingRight):this.config.mode=="lightbox-css"||(this.lighbox.style.width=this.config.width+"px",this.lighbox.style.height=this.config.height+"px");this.lighbox.appendChild(this.content);var n=this;this.modalClickHandlerListener=function(t){(t.target.getAttribute("id")=="View360-lighboxOuter"||t.target.getAttribute("id")=="View360-modalBackground")&&n.close()};V360Util.addEvent(this.modalBackground,"mousedown",this.modalClickHandlerListener,!1);V360Util.addEvent(this.lighboxOuter,"mousedown",this.modalClickHandlerListener,!1)};this.setContent=function(n){this.content=n};this.removeInterface=function(){V360Util.removeEvent(this.lighboxOuter,"mousedown",this.modalClickHandlerListener);this.removeElement(this.lighbox);this.removeElement(this.lighboxOuter);this.removeElement(this.modalBackground);this.lighbox=null;this.lighboxOuter=null;this.modalBackground=null;this.closeCallback&&this.closeCallback();this.closeCallback=null};this.removeElement=function(n){n&&n.parentNode&&n.parentNode.removeChild(n)}}