if(typeof(RICHFX)=='undefined') var RICHFX=new function(){var mousePos=[0,0];var watchedObjects=new Array();var visibleWatcher=new Array();var mouseNearWatcher=new Array();var watcherTimer;var numWatchers=0;var customEventNames={};var initialized;var self=this;var viewerList=new Array();var imageID='';var altDivID='';var altType='';var availableSwatches='';var custColorControl='';var SAView='';var SACat='' var SASwatchData={};var SAArray={};var SAArrayCount=0;function RICHFX(){if(this.isIE&&(this.browserVersion<5.5))return;if(this.isFirefox&&this.browserVersion<1.5)return;if(this.isSafari&&this.browserVersion<3.0)return;if(this.isOpera&&this.browserVersion<9.0)return;if(!(this.isIE||this.isFirefox||this.isSafari||this.isOpera))return;if(typeof(RICHFX_INTERFACE_LOADER)=='undefined') this.addEvent(window,'load',initialize,this);else{if(this.isIE||this.isSafari){this.setTimeout(initialize,1,this);}else{initialize.apply(this);}} this.addEvent(window,'unload',cleanup,this);this.addEvent(window,'resize',resize_handler,this);this.prototype=this;} var createLocalEvent=function(evType){if(document.createEvent){var eventObj=document.createEvent('Events');eventObj.initEvent(evType,true,true);}else if(document.createEventObject){var eventObj=document.createEventObject();} return eventObj;} var watcherRound=0;var WATCHER_INTERVAL=500;function watcher_handler(){if(!watchedObjects)return;for(var i=0;i0) watcherTimer=this.setTimeout(watcher_handler,WATCHER_INTERVAL,this);} this.addVisibleWatcher=function(obj,fn,context,score){if(visibleWatcher.length==0){this.addEventListener(window,'scroll',handler_visibleWatcher,this);} for(var i=0;i=tmpVisibleWatcher[i].score){tmpVisibleWatcher[i].fn.apply(tmpVisibleWatcher[i].context);}}} this.addMouseNearWatcher=function(obj,fn,context,score){if(mouseNearWatcher.length==0){this.addEventListener(document.body,'mousemove',handler_mouseNearWatcher,this);} for(var i=0;i=elemLeft)){distance=calcDistPointToPoint(pointTop,pointLeft,elemTop,pointLeft);}else{distance=calcDistPointToPoint(pointTop,pointLeft,elemTop,elemRight);}}else if((pointTop>=elemTop)&&(pointTop<=elemBottom)){if(pointLeft=elemLeft)){distance=0;}else{distance=calcDistPointToPoint(pointTop,pointLeft,pointTop,elemRight);}}else{if(pointLeft=elemLeft)){distance=calcDistPointToPoint(pointTop,pointLeft,elemBottom,pointLeft);}else{distance=calcDistPointToPoint(pointTop,pointLeft,elemBottom,elemRight);}} return distance;} this.isValidPreLoadEventType=function(preLoadEventType){if((preLoadEventType=='mousenear')||(preLoadEventType=='visible')){return true;}else{return false;}} this.addChangeWatcher=function(obj,property,frequency,fn,context){if(frequency<1)frequency=1;var elemData=this.getElementData(obj);if(!elemData.watcher)elemData.watcher=new Object();if(!elemData.watcher[property])elemData.watcher[property]=new Object();var data=elemData.watcher[property];if(!data.handlers)data.handlers=new Array();var args=[];for(var i=5;i1?range:1;return zindex;} this.isAttached=function(elem){return!this.isIE?elem.parentNode:elem.parentNode?elem.parentNode.nodeName!='#document-fragment':false;} this.mouseIsInside=function(e,elem){var elemMetrics=this.getElementMetrics(elem);var frameBoundingBox=this.getAbsoluteBoundingBox(elem);var windowMetrics=this.getWindowMetrics();var mousePos=[e.clientX+windowMetrics.offset[0],e.clientY+windowMetrics.offset[1]];if(mousePos[0]>=frameBoundingBox[0]&&mousePos[0]<=frameBoundingBox[2]&&mousePos[1]>=frameBoundingBox[1]&&mousePos[1]<=frameBoundingBox[3]) return true;else return false;} this.getWindowMetrics=function(){if(this.isIE){var dim=[document.documentElement.clientWidth||document.body.clientWidth,document.documentElement.clientHeight||document.body.clientHeight];}else{var dim=[window.innerWidth,window.innerHeight];} var offset=[window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft,window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop];var screenDim=[screen.width,screen.height,screen.availWidth,screen.availHeight];return{dim:dim,offset:offset,screen:screenDim}} this.getElementStyle=function(elem,propertyName){var JSName=propertyName.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()});var CSSName=propertyName.replace(/([A-Z])/g,function(a,b){return'-'+b.toLowerCase()});try{if(elem.currentStyle){var returnVal=elem.currentStyle[JSName];}else{if(this.isSafari&&elem.style.display=="none"){obj.style.display="";var wasHidden=true;} var returnVal=document.defaultView.getComputedStyle(elem,'').getPropertyValue(CSSName);if(this.isSafari&&wasHidden){elem.style.display="none";}}}catch(e){} return returnVal;} this.addCSSRule=function(selector,rule,index){if(!rule||rule=="")return;if(!document.styleSheets)return;if(this.isIE&&selector.indexOf(',')) selector=selector.split(',');var headNode=document.getElementsByTagName('head')[0];if(document.styleSheets.length==0){headNode.appendChild(document.createElement('style'));} if(!index)index=0;var styleSheet=document.styleSheets[0];try{if(styleSheet.addRule){if(typeof(selector)=='string') styleSheet.addRule(selector,rule,0);else for(var i=0;ielementOffset.top){numberOfImageLinesWithinViewport=numberOfImageLinesWithinViewport-(windowMetrics.offset[1]-elementOffset.top);} if((windowMetrics.offset[1]+windowMetrics.dim[1])<(elementOffset.top+elementSize[1])){numberOfImageLinesWithinViewport=numberOfImageLinesWithinViewport-((elementOffset.top+elementSize[1])-(windowMetrics.offset[1]+windowMetrics.dim[1]));} var numberOfImageRowsWithinViewport=elementSize[0];if(windowMetrics.offset[0]>elementOffset.left){numberOfImageRowsWithinViewport=numberOfImageRowsWithinViewport-(windowMetrics.offset[0]-elementOffset.left);} if((windowMetrics.offset[0]+windowMetrics.dim[0])<(elementOffset.left+elementSize[0])){numberOfImageRowsWithinViewport=numberOfImageRowsWithinViewport-((elementOffset.left+elementSize[0])-(windowMetrics.offset[0]+windowMetrics.dim[0]));} return Math.round(((numberOfImageLinesWithinViewport*numberOfImageRowsWithinViewport)/numberOfImagePixels)*100);} this.getElementPos=function(elem){var elemData=this.getElementData(elem);if(elemData.resize_state&&elemData.resize_state==resize_state) return elemData.position;var absolute=getAbsoluteOffset.apply(this,[elem]);elemData.resize_state=resize_state;elemData.position=[elem.offsetLeft,elem.offsetTop,absolute.left,absolute.top];return elemData.position;} this.getElementSize=function(elem){var elWidth=0,elHeight=0;elWidth=elem.offsetWidth;elHeight=elem.offsetHeight;return[elWidth,elHeight];} this.setElementOpacity=function(elem,opacity){elem.style['opacity']=opacity/100;elem.style['-moz-opacity']=opacity/100;if(elem.style.filter!=undefined)elem.style.filter='alpha(opacity='+opacity+')';} this.getElementOpacity=function(elem){var opacity=this.getElementStyle(elem,'opacity')||this.getElementStyle(elem,'-moz-opacity');if(typeof(opacity)=='undefined'&&elem.style.filter!=undefined){opacity=this.getElementStyle(elem,'filter');if(opacity==''){opacity=1;}else{opacity=parseFloat(opacity.substr(opacity.indexOf('opacity=')+8))/100;}} return 100*opacity||0;} this.getElementsByClass=function getElementsByClass(classPattern,node,tag){var classElements=new Array();if(node==null)node=document;if(tag==null)tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+classPattern+"(\\s|$)");for(var i=0,j=0;i');loadedScripts[file_cache_key]=true;} return false;} this.isJSLoaded=function(file){var file_cache_key=file.replace(/[^a-z0-9_-]/ig,'___');if(file_cache_key in loadedScripts){return loadedScripts[file_cache_key];} return false;} this.loadLibrary=function(libraryName,callBack,context){var args=[];for(var i=3;i0){this.loadLibrary.apply(this,[requiredLibs,callBack,context].concat(args));}else if(checkAllRequiredLoaded.apply(this,[libraryName])){if(typeof(callBack)=='function') callBack.apply(context,args);} return;} var checkAllRequiredLoaded=function(libName){var requiredLibs=getRequiredLibs.apply(this,[libName]);return checkLibraryLoaded.apply(this,[requiredLibs]);} var checkLibraryLoaded=function(libName){if(typeof(libName)=='string'){return(libName in this);}else{for(var i=0;i=0;i--){if(!seen[requiredLibs[i]])libs=[requiredLibs[i]].concat(libs);seen[requiredLibs[i]]=true;} return libs;} var loadXML_callback_handler=function(xmlID,func,context,args){var xmlSrc=this['xml_'+xmlID];var xmlDOM=this.parseXML(xmlSrc);if(typeof(func)=='function') func.apply(context,[xmlDOM].concat(args));} var loadComponent=this.loadComponent=function(componentName,elem){var args=[];for(var i=0;i2&&accountVars[accountVars.length-2].toLowerCase()=='richfx') account=accountVars[accountVars.length-3].toLowerCase();var linkMethod='injected';var urlPathParts=urlPath.split('/');if(scriptName=='rfxembed'||urlPathParts[1]+'/'+urlPathParts[2]=='project/configuration'){with(queryVarObj){if(typeof(rfx_client)=='undefined'||!rfx_client)queryVarObj.rfx_client=account;if(typeof(rfx_viewerBaseURL)=='undefined'||!rfx_viewerBaseURL)queryVarObj.rfx_viewerBaseURL=protocol+'//'+host+'/project/viewers/base/';if(typeof(rfx_settingsBaseURL)=='undefined'||!rfx_settingsBaseURL)queryVarObj.rfx_settingsBaseURL=rfx_viewerBaseURL+'../../settings/';if(typeof(rfx_baseURL)=='undefined'||!rfx_baseURL)queryVarObj.rfx_baseURL=protocol+'//'+host+'/';} linkMethod=queryVarObj.inline?'inline':'rfxembed';}else{with(queryVarObj){if(typeof(rfx_client)=='undefined'||!rfx_client)queryVarObj.rfx_client=account;if(typeof(rfx_viewerBaseURL)=='undefined'||!rfx_viewerBaseURL)queryVarObj.rfx_viewerBaseURL=protocol+'//'+host+urlPath;if(typeof(rfx_settingsBaseURL)=='undefined'||!rfx_settingsBaseURL)queryVarObj.rfx_settingsBaseURL=rfx_viewerBaseURL+'../../settings/';if(typeof(rfx_baseURL)=='undefined'||!rfx_baseURL)queryVarObj.rfx_baseURL=protocol+'//'+host+'/';} linkMethod='injected';} var scriptParsedObject=new Object();scriptParsedObject.search=queryVars;scriptParsedObject.host=scriptParsedObject.hostname=host;scriptParsedObject.protocol=protocol;scriptParsedObject.pathname=urlPath;scriptParsedObject.href=scriptVars.join(scriptName);scriptParsedObject.query=queryVarObj;scriptParsedObject.account=account;scriptParsedObject.referer=String(document.location);scriptParsedObject.linkMethod=linkMethod;return scriptParsedObject;} var DecodeScript=function(scriptName){var tags=document.getElementsByTagName("script");var scriptSrc=undefined;var scripTagsObjects=new Array();for(var i=0;ileft_bracket&&posleft_bracket&&pos=0;i--) if(/^embed/.test(requiredlibs[i])) this[requiredlibs[i]].apply(this);this.loader=function(){} this.loader.require=["base"];initQueryDependancy.apply(this);this.loadLibrary("loader",function(){detectQuerySupport.apply(this);var murl=this.RequestParams.query.rfx_imageMediaURL;if(!murl&&RICHFX_CONFIG.imageMediaURL) murl=RICHFX_CONFIG.imageMediaURL;if(!murl) murl=this.RequestParams.query.rfx_baseURL+'image/media/';this.imageMediaURL=appendSlash(murl);initClassEmbeds.apply(this);initialized=true;if((RICHFX_CONFIG.tracking!=undefined)&&(RICHFX_CONFIG.tracking.active!=undefined)&&(RICHFX_CONFIG.tracking.active==true)){this.loadLibrary('Tracking',function(){this.Tracking();},this);}},this);},this);} var cleanup=this.cleanup=function(e){this.removeEventListener(window,'scroll',handler_visibleWatcher,this);visibleWatcher=null;this.removeEventListener(document.body,'mousemove',handler_mouseNearWatcher,this);mouseNearWatcher=null;this.queryFunction=undefined;for(var k in registeredObjects){var obj=registeredObjects[k];var elemData=this.getElementData(obj);this.removeAllEvents.apply(this,[obj]);if(elemData){elemData.components=undefined;if(elemData.defaults){for(var i in elemData.defaults){for(var j in elemData.defaults[i]) elemData.defaults[i][j]=undefined;elemData.defaults[i]=undefined;} elemData.defaults=undefined;} if(elemData.api){for(var k in elemData.api._properties) elemData.api._properties[k]=null;elemData.api._properties=undefined;for(var component in elemData.api) for(var k in elemData.api[component]) elemData.api[component][k]=null;}}} registeredObjects=null;for(var i=0;i