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&&(200===r.status?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,e=0,s=0,h=0,s=t-n+1,o=n;t>=o;o++)this.images[o]=new Image,this.images[o].onload=function(n){e++;e>=s&&r(c.images,h);f(n.currentTarget,!1);var t=Math.ceil(e/s*100);u({loaded:e,total:s,error:h,percent:t})},this.images[o].onerror=function(n){h++;++e>=s&&r(c.images,h);f(n.currentTarget,!0);var t=Math.ceil(e/s*100);u({loaded:e,total:s,error:h,percent:t})},this.images[o].src=this.directory+"/"+this.sources[o]}}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:"left-right",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 r,i="",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;0==n.inertiaStatesArr.length&&(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}));({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)return void(this.autoRotatePaused=!1);this.stopInertiaAutoMoveInterval();try{if(t=i.inertiaStatesArr[i.inertiaStatesArr.length-1].moveX-i.inertiaStatesArr[0].moveX,0==t)return}catch(s){return}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;0!=n&&(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"PAN"==this.moveMode};this.isRotate=function(){return"ROTATE"==this.moveMode};this.mouseMoveHandler=function(n,t){if(this.smallLoaded){if(this.isPanMode())return this.currentPanMoveX=this.refMouseX-n,this.currentPanMoveY=this.refMouseY-t,void this.displayCurrentImage();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;0!==n&&(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);0!==t&&(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;1==i?(this.autoCol==this.cols-1&&(this.autoCol=-1),this.autoCol++):(0==this.autoCol&&(this.autoCol=this.cols-1),this.autoCol--);this.currentCol=this.autoCol;t=this.getIdxByColRow(this.autoCol,this.currentRow);this.displayImageByIdx(t);"loop"!=this.config.playBtnMode&&this._isPlayBtn&&("oneloop"==this.config.playBtnMode?(this._oneLoopCount++,this._oneLoopCount>=this.cols&&this.stopAutoRotate()):"firstimage"==this.config.playBtnMode?0==this.autoCol&&this.stopAutoRotate():"lastimage"==this.config.playBtnMode?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;0>n&&(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),n=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(){void 0!==this.latestImageIdx&&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 r,u,o,s,v=t.width/t.height,y=n.width/n.height,a,h;v>y?"left-right"==this.config.fitmode||"fit"==this.config.fitmode?(u=n.width,r=t.height*(u/t.width),o=0,s=(n.height-r)/2):(r=n.height,u=t.width*(r/t.height),o=(n.width-u)/2,s=0):y>v?"left-right"==this.config.fitmode?(u=n.width,r=t.height*(u/t.width),o=0,s=(n.height-r)/2):(r=n.height,u=t.width*(r/t.height),o=(n.width-u)/2,s=0):(r=n.height,u=n.width,o=0,s=0);var c=u*this.currentZoom,l=r*this.currentZoom,f=o-(c-u)/2,e=s-(l-r)/2;this.zoomedXPosCentered=f;this.zoomedYPosCentered=e;a=1;f-=this.currentPanMoveX+this.globalPanMoveX*this.currentZoom*a;e-=this.currentPanMoveY+this.globalPanMoveY*this.currentZoom*a;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));h=n.getContext("2d");i||h.clearRect(0,0,n.width,n.height);this.config.panInBounds&&(f>0&&(this.panMoveEmptyX=f,f=0),e>0&&(this.panMoveEmptyY=e,e=0),c+f<this.canvas.width&&(this.panMoveEmptyX=f,f=-(c-this.canvas.width),this.panMoveEmptyX-=f),l+e<this.canvas.height&&(this.panMoveEmptyY=e,e=-(l-this.canvas.height),this.panMoveEmptyY-=e));h.save();h.globalAlpha=this.config.opacity;h.drawImage(t,f,e,c,l);h.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],"unset"==n.oldBodyOverflowX&&(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"));void 0!==n.latestImageIdx&&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")),-1!=this.config.mode.indexOf("lightbox")&&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,"custom"==this.navigationConfig.type?t[n].style.borderRadius=this.navigationConfig.cornerRadius+"px":"round"==this.navigationConfig.type&&(t[n].style.borderRadius=this.navigationConfig.btnWidth/2+"px"),void 0!==this.navigationConfig.btnMargin&&(t[n].style.marginLeft=this.navigationConfig.btnMargin+"px"),"vertical"==this.navigationConfig.orientation&&"none"!=t[n].style.display&&(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;"vertical"==this.navigationConfig.orientation&&("left"==this.navigationConfig.align?r.style.right="auto":"right"==this.navigationConfig.align&&(r.style.left="auto"));i=this;this.bindBtn("View360-navigationFullscreenEnter","click",function(n){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(void 0,void 0,!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;1==this.currentZoom?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,r,n,t,i;if(this.config.autoLoadImages)for(f=this.config.imagesPattern,this.config.images=[],this.sources=[],r=0;r<this.config.rows;r++)for(this.config.images[r]=[],n=0;n<this.config.columns;n++){this.config.images[n]||(this.config.images[n]=[]);t=n;this.config.opositeDirection===!0&&(t=this.config.columns-n-1);t=t+this.config.imagesNumbering;i=r;this.config.opositeDirectionUpDown===!0&&(i=this.config.rows-r-1);var i=i+this.config.imagesNumberingUpDown,u=f.replace("%ROW",i).replace("%COL",t),u=u.replace("%R%",V360Util.pad(i,1)).replace("%C%",V360Util.pad(t,1)),u=u.replace("%RR%",V360Util.pad(i,2)).replace("%CC%",V360Util.pad(t,2)),u=u.replace("%RRR%",V360Util.pad(i,3)).replace("%CCC%",V360Util.pad(t,3));this.config.images[n].push(u);this.sources.push(u)}};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(){this.holder.offsetWidth;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";void 0!==this.latestImageIdx?this.displayImageByIdx(this.latestImageIdx):void 0!==this.noOneImage&&this.displayImage(this.noOneImage,this.config.firstImageOpacity)};this.lightboxCloseHandler=function(){this.destroy()};this.responsiveInterval=null;this.currentZoom=1;this.start=function(n){var t,r,u,f;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;("lightbox-responsive"==this.config.mode||"lightbox-css"==this.config.mode)&&(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());"lightbox"==this.config.mode?(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()):"fit"==this.config.mode?(this.config.width=this.holder.offsetWidth,this.config.height=this.holder.offsetHeight):"fullscreen"==this.config.mode?(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):"responsive"==this.config.mode||"responsive-width"==this.config.mode?(clearInterval(this.responsiveInterval),this.responsiveInterval=setInterval(function(){t.responsiveResize()},500),this.config.width=this.holder.offsetWidth,this.config.height=this.holder.offsetHeight):"responsive-fit"==this.config.mode||"lightbox-responsive"==this.config.mode||"lightbox-css"==this.config.mode?(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):"fixed"==this.config.mode;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();r=this.sources;u=this.canvas=V360Util.getFirstElementByClassName(this.innerHolder,"View360-canvas");this.canvasHolder=V360Util.getFirstElementByClassName(this.innerHolder,"View360-canvasHolder");t.updateCanvasSize();this.ctx=u.getContext("2d");var i=new View360Loader,e=function(n){t.loaderInfo.setPercent(n.percent)},o=function(n,i){i||("responsive"==t.config.mode||"responsive-width"==t.config.mode?t.resizeResponsiveByImage(n):"responsive-fit"==t.config.mode&&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(),"complete"===document.readyState)?i.start():f=setInterval(function(){"complete"===document.readyState&&(clearInterval(f),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,"ball-pulse"==t?n+='<div class="loader"><div class="ball-pulse"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-grid-pulse"==t?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>':"square-spin"==t?n+='<div class="loader"><div class="square-spin"><div><\/div><\/div><\/div>':"ball-pulse-rise"==t?n+='<div class="loader"><div class="ball-pulse-rise"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-rotate"==t?n+='<div class="loader"><div class="ball-rotate"><div><\/div><\/div><\/div>':"cube-transition"==t?n+='<div class="loader"><div class="cube-transition"><div><\/div><div><\/div><\/div><\/div>':"ball-zig-zag"==t?n+='<div class="loader"><div class="ball-zig-zag"><div><\/div><div><\/div><\/div><\/div>':"ball-zig-zag-deflect"==t?n+='<div class="loader"><div class="ball-zig-zag-deflect"><div><\/div><div><\/div><\/div><\/div>':"ball-triangle-path"==t?n+='<div class="loader"><div class="ball-triangle-path"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-scale"==t?n+='<div class="loader"><div class="ball-scale"><div><\/div><\/div><\/div>':"line-scale"==t?n+='<div class="loader"><div class="line-scale"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':"line-scale-party"==t?n+='<div class="loader"><div class="line-scale-party"><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-scale-multiple"==t?n+='<div class="loader"><div class="ball-scale-multiple"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-pulse-sync"==t?n+='<div class="loader"><div class="ball-pulse-sync"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-beat"==t?n+='<div class="loader"><div class="ball-beat"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"line-scale-pulse-out"==t?n+='<div class="loader"><div class="line-scale-pulse-out"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':"line-scale-pulse-out-rapid"==t?n+='<div class="loader"><div class="line-scale-pulse-out-rapid"><div><\/div><div><\/div><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-scale-ripple"==t?n+='<div class="loader"><div class="ball-scale-ripple"><div><\/div><\/div><\/div>':"ball-scale-ripple-multiple"==t?n+='<div class="loader"><div class="ball-scale-ripple-multiple"><div><\/div><div><\/div><div><\/div><\/div><\/div>':"ball-spin-fade-loader"==t?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>':"line-spin-fade-loader"==t?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>':"ball-grid-beat"==t&&(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=2*Math.PI,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);"lightbox-responsive"==this.config.mode?(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):"lightbox-css"==this.config.mode||(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){("View360-lighboxOuter"==t.target.getAttribute("id")||"View360-modalBackground"==t.target.getAttribute("id"))&&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)}}