{Array.prototype.index=0;Array.prototype.get=function(index,wrap){if(!wrap||!this.length)return this[index];index=index%this.length;if(index<0)index+=this.length;return this[index];};Array.prototype.current=function(){return this[this.index];};Array.prototype.next=function(wrap){this.index++;if(wrap&&this.index>=this.length)this.index=0;return this[this.index];};Array.prototype.previous=function(wrap){this.index--;if(wrap&&this.index<0)this.index=this.length-1;return this[this.index];};Array.prototype.jumpTo=function(index,wrap){this.index=index;if(!wrap||!this.length)return(index>=this.length)?this[0]:this[index];this.index=this.index%this.length;if(this.index<0)this.index+=this.length;return this[this.index];};Array.prototype.jumpBy=function(amount,wrap){return this.jumpTo(this.index+amount,wrap);};Array.prototype.copy=function(){var tempArray=[];var i=this.length;while(i--)tempArray[i]=(this[i]instanceof Array)?this[i].copy():this[i];return tempArray;};Array.prototype.swap=function(firstIndex,secondIndex){if(firstIndex<0)firstIndex=this.length+firstIndex;if(secondIndex<0)secondIndex=this.length+secondIndex;if(this[firstIndex]==this[secondIndex])return;var tempIndex=this[firstIndex];this[firstIndex]=this[secondIndex];this[secondIndex]=tempIndex;};Array.prototype.range=function(from,to,step){if(from==null&&to==null)return[];if(from!=null&&from==to)return[from];var range=[];var i=from;if(!step)step=1;if((step>0&&from>to)||(step<0&&from<to)){step*=-1;}while(true){range.push(i);if((from<to&&i>=to)||(from>to&&i<=to)){return range;}i+=step;}};Array.prototype.contains=function(value){var i=this.length;while(i--)if(this[i]===value)return true;return false;};Array.prototype.indexOf=function(value){for(var i=0;i<this.length;i++){if(this[i]===value)return i;}return false;};Array.prototype.indicesOf=function(value){var results=[];for(var i=0;i<this.length;i++){if(this[i]===value)results.push(i);}return results.length?results:false;};Array.prototype.map=function(func){for(var results=[],i=0;i<this.length;i++){results.push(func(this[i]));}return results;};}{String.prototype.pad=function(chars,char){for(var padding="",i=this.length;i<chars;i++){padding+=char;}return padding+this;};String.prototype.trim=function(){var str=this.replace(/^\s\s*/,"");var ws=/\s/;var i=str.length;while(ws.test(str.charAt(--i)));return str.slice(0,i+1);};String.prototype.strip=function(){return this.replace(/\s+/," ");};String.prototype.reverse=function(){return this.split("").reverse().join("");};String.prototype.contains=function(value){return(this.indexOf(value)>=0);};String.prototype.beginsWith=function(value){return(value==this.substring(0,value.length));};String.prototype.endsWith=function(value){return(value==this.substring(this.length-value.length));};String.prototype.stripTags=function(){return this.replace(/<\/?[^>]+>/gi,"");};String.prototype.htmlEncode=function(){var entities={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};var t=this;for(var i in entities)t=t.replace(i,entities[i]);return t;};String.prototype.htmlDecode=function(){var entities={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};var t=this;for(var i in entities)t=t.replace(entities[i],i);return t;};String.prototype.urlEncode=function(){return encodeURIComponent(this);};String.prototype.urlDecode=function(){return decodeURIComponent(this);};}{document.getClientWidth=function(){var doc=document.documentElement;return(doc&&doc.clientWidth)?doc.clientWidth:document.body.clientWidth;};document.getClientHeight=function(){var doc=document.documentElement;return(doc&&doc.clientHeight)?doc.clientHeight:document.body.clientHeight;};}{window.isArray=function(value){return isObject(value)&&value.constructor==Array;};window.isBoolean=function(value){return typeof value=="boolean";};window.isFunction=function(value){return typeof value=="function";};window.isObject=function(value){return(value&&typeof value=="object")||isFunction(value);};window.isNull=function(value){return typeof value=="object"&&!value;};window.isNumber=function(value){return typeof value=="number"&&isFinite(value);};window.isNaNNumber=function(value){return typeof value=="number"&&isNaN(value);};window.isUnNumber=function(value){return typeof value=="number"&&(isNaN(value)||!isFinite(value));};window.isString=function(value){return typeof value=="string";};window.isUndefined=function(value){return typeof value=="undefined";};window.isUnknown=function(value){return isObject(value)&&typeof value.constructor!="function";};window.isWidget=function(value,type){if(!isObject(value)||!value.hasAttribute||!value.hasAttribute("widget"))return false;if(!type)return true;var wtype=value.getAttribute("widget").split(" ");var i=wtype.length;while(i--)if(wtype[i]==type)return true;return false;};window.isComponent=function(value,type){if(!isObject(value)||!value.hasAttribute||!value.hasAttribute("component"))return false;return(type)?value.getAttribute("component")==type:value.hasAttribute("component");};}{window.getElementsById=function(){if(arguments.length==1){return(isString(arguments[0]))?document.getElementById(arguments[0]):arguments[0];}for(var elements=[],i=0;i<arguments.length;i++){var element=arguments[i];elements.push((isString(element))?document.getElementById(element):element);}return elements;};window.$=window.getElementsById;window.getElementsByClassName=function(className,tag){if(ie&&SOAPI.HTMLElement)return SOAPI.HTMLElement.getElementsByClassName(className,tag);return document.getElementsByClassName(className,tag);};window.$C=window.getElementsByClassName;window.getElementsBySelector=function(selector){var levels=selector.trim().split(/\s+/);var scope=[document];for(var i=0,level;(level=levels[i])!=null;i++){var id="";var tagName="";var className="";var classNames=[];var state=0;for(var j=0,chr;(chr=level.charAt(j))!="";j++){switch(chr){case"#":if(state==1||id)return[];state=1;break;case".":if(state==2&&!className)return[];if(state==2){classNames.push(className);className="";}state=2;break;default:switch(state){case 0:tagName+=chr;break;case 1:id+=chr;break;case 2:className+=chr;break;}break;}}if(state==1&&!id)return[];if(state==2&&!className)return[];if(state==2)classNames.push(className);var element=(id)?$(id):null;if(id){if(!element)return[];if(tagName&&element.nodeName.toLowerCase()!=tagName)return[];for(var j=0;j<classNames.length;j++){if(!element.className||!element.className.match(new RegExp("(\\s|^)"+classNames[j]+"(\\s|$)"))){return[];}}scope=[element];continue;}var found=[];for(var j=0;j<scope.length;j++){var elements=scope[j].getElementsByTagName(tagName||"*");for(var k=0;k<elements.length;k++){found.push(elements[k]);}}scope=[];for(var j=0,item;(item=found[j])!=null;j++){if(!classNames.length){scope.push(item);continue;}if(!item.className)continue;for(var matched=true,k=0;k<classNames.length;k++){if(!item.className.match(new RegExp("(\\s|^)"+classNames[k]+"(\\s|$)"))){matched=false;break;}}if(matched)scope.push(item);}}return scope;};window.$S=window.getElementsBySelector;}window.SOAPI=window.SOAPI||{};var SOAPI=window.SOAPI;SOAPI.Core_Opera_HTMLElement=function(){{HTMLElement.prototype.getElementsByClassName=function(className,tag){var elements=[];var tagElements=this.getElementsByTagName(tag||"*");var pattern=new RegExp("(^|\\s)"+className+"(\\s|$)");for(var i=0;i<tagElements.length;i++){if(pattern.test(tagElements[i].className)){elements.push(tagElements[i]);}}return elements;};HTMLElement.prototype.$C=HTMLElement.prototype.getElementsByClassName;HTMLElement.prototype.replaceHTML=function(html){var parent=this.parentNode;var newElement=this.cloneNode(false);newElement.innerHTML=html;parent.replaceChild(newElement,this);SOAPI.Event.copyEventHandlers(this,newElement,false);};HTMLElement.prototype.insertAfter=function(node,referenceNode){this.insertBefore(node,referenceNode.nextSibling);};HTMLElement.prototype.prependChild=function(node){this.insertBefore(node,this.firstChild);};HTMLElement.prototype.contains=function(node){while(node&&(this!=node))node=node.parentNode;return this==node;};HTMLElement.prototype.getAppliedStyle=function(name){return document.defaultView.getComputedStyle(this,null).getPropertyValue(name);};HTMLElement.prototype.refresh=function(){};}};SOAPI.Core_Opera_CreateElement=function(){document._createElement=document.createElement;document.createElement=function(type){var element=document._createElement(type);if(type.toLowerCase()=="input"||type.toLowerCase()=="textarea"){SOAPI.Event.addEventHandler(element,"focus");SOAPI.Event.addEventHandler(element,"blur");}return element;};};window.SOAPI=window.SOAPI||{};var SOAPI=window.SOAPI;SOAPI.Core_IE_HTMLElement=function(){SOAPI.HTMLElement={getElementsByClassName:function(className,tag){var elements=[];var tagElements=document.getElementsByTagName(tag||"*");var pattern=new RegExp("(^|\\s)"+className+"(\\s|$)");for(var i=0;i<tagElements.length;i++){if(pattern.test(tagElements[i].className)){elements.push(tagElements[i]);}}return elements;},replaceHTML:function(html){this.innerHTML=html;},hasAttribute:function(name){switch(name){case"class":name="className";break;case"for":name="htmlFor";break;}return this[name]!=null;},getAttribute:function(name){switch(name){case"class":return this.className;case"style":return this.style.cssText;case"for":return this.htmlFor;default:return String(this[name]);}},setAttribute:function(name,value){switch(name){case"class":this.className=value;break;case"style":this.style.cssText=value;break;case"for":this.htmlFor=value;break;default:this[name]=value;}this.refresh();},insertAfter:function(node,referenceNode){this.insertBefore(node,referenceNode.nextSibling);},prependChild:function(node){this.insertBefore(node,this.firstChild);},contains:function(node){while(node&&(this!=node))node=node.parentNode;return this==node;},getAppliedStyle:function(name){name=name.replace(/\-(\w)/g,function(match,p1){return p1.toUpperCase();});return this.currentStyle[name];},refresh:function(){this.className=this.className;}};};SOAPI.Core_IE_CreateElement=function(){document._createElement=document.createElement;document.createElement=function(type){var element=document._createElement(type);var HTMLElement=SOAPI.HTMLElement;for(var pName in HTMLElement)element[pName]=HTMLElement[pName];return element;};};window.SOAPI=window.SOAPI||{};var SOAPI=window.SOAPI;SOAPI.Core_Gecko_HTMLElement=function(){{HTMLElement.prototype.getElementsByClassName=function(className,tag){var elements=[];var tagElements=this.getElementsByTagName(tag||"*");var pattern=new RegExp("(^|\\s)"+className+"(\\s|$)");for(var i=0;i<tagElements.length;i++){if(pattern.test(tagElements[i].className)){elements.push(tagElements[i]);}}return elements;};HTMLElement.prototype.$C=HTMLElement.prototype.getElementsByClassName;HTMLElement.prototype.replaceHTML=function(html){var parent=this.parentNode;var newElement=this.cloneNode(false);newElement.innerHTML=html;parent.replaceChild(newElement,this);SOAPI.Event.copyEventHandlers(this,newElement,false);};HTMLElement.prototype.insertAdjacentHTML=function(location,html){var range=this.ownerDocument.createRange();switch(String(location).toLowerCase()){case"beforebegin":range.setStartBefore(this);this.parentNode.insertBefore(range.createContextualFragment(html),this);break;case"afterbegin":range.selectNodeContents(this);range.collapse(true);this.insertBefore(range.createContextualFragment(html),this.firstChild);break;case"beforeend":range.selectNodeContents(this);range.collapse(false);this.appendChild(range.createContextualFragment(html));break;case"afterend":range.setStartAfter(this);this.parentNode.insertBefore(range.createContextualFragment(html),this.nextSibling);break;}};HTMLElement.prototype.__defineGetter__("outerHTML",function(){var html="<"+this.tagName;var emptyTags={BR:true,HR:true,IMG:true,INPUT:true,LINK:true,META:true,PARAM:true};for(var i=0,attribute;attribute=this.attributes[i];i++){html+=" "+attribute.name+"=\""+attribute.value+"\"";}return html+((emptyTags[this.tagName])?" />":">"+this.innerHTML+"</"+this.tagName+">");});HTMLElement.prototype.__defineSetter__("outerHTML",function(html){var range=this.ownerDocument.createRange();range.setStartBefore(this);this.parentNode.replaceChild(range.createContextualFragment(html),this);});HTMLElement.prototype.insertAfter=function(node,referenceNode){this.insertBefore(node,referenceNode.nextSibling);};HTMLElement.prototype.prependChild=function(node){this.insertBefore(node,this.firstChild);};HTMLElement.prototype.__defineGetter__("isDisabled",function(){return this.hasAttribute("disabled");});HTMLElement.prototype.contains=function(node){while(node&&(this!=node))node=node.parentNode;return this==node;};HTMLElement.prototype.getAppliedStyle=function(name){return document.defaultView.getComputedStyle(this,null).getPropertyValue(name);};HTMLElement.prototype.refresh=function(){};}};SOAPI.Core_Gecko_CreateElement=function(){document._createElement=document.createElement;document.createElement=function(type){var element=document._createElement(type);if(type.toLowerCase()=="input"||type.toLowerCase()=="textarea"){SOAPI.Event.addEventHandler(element,"focus");SOAPI.Event.addEventHandler(element,"blur");}return element;};};{window.opera=window.opera||false;window.ie=(!window.opera&&typeof HTMLElement=="undefined");window.gecko=(!window.ie&&typeof HTMLElement.prototype.__defineGetter__!="undefined");window.ie9=(!window.ie&&!window.gecko&&!window.opera);}if(opera||ie9){SOAPI.Core_Opera_HTMLElement.call();SOAPI.Core_Opera_CreateElement.call();}else  if(ie){SOAPI.Core_IE_HTMLElement.call();SOAPI.Core_IE_CreateElement.call();}else {SOAPI.Core_Gecko_HTMLElement.call();SOAPI.Core_Gecko_CreateElement.call();}SOAPI.Cookie={get:function(name){var start=document.cookie.indexOf(name+"=");if(start==-1)return;var middle=start+name.length+1;var end=document.cookie.indexOf(';',middle);if(end==-1)end=document.cookie.length;return unescape(document.cookie.substring(middle,end));},set:function(name,value,expires,path,domain,secure){var cookie=name+"="+escape(value);if(expires!=null){var date=new Date();date.setTime(date.getTime()+(expires*1000));cookie+=";expires="+date.toGMTString();}cookie+=";path="+((path!=null)?path:"/");if(domain!=null)cookie+=";domain="+domain;if(secure)cookie+=";secure";document.cookie=cookie;},clear:function(name,path,domain){this.set(name,"",-1,path,domain);}};SOAPI.Message={domRef:null,contentDomRef:null,bottom:0,timerOffset:0,_ERROR:'error',_INFO:'info',_WARNING:'warning',_MESSAGE_ERROR:'Please provide a message for SOAPI.Message',_TYPE_ERROR:'Please select an existing SOAPI.Message type',_MESSAGE_DISPLAY:'Unable to display message, make sure there is an available DOM reference',initialise:function(){if($('messages')){var messages=window.messages;this.domRef=$('messages');this.contentDomRef=$('content');this.bottom=this.contentDomRef.get('bottom');if(messages.length>0){for(var i=0;i<messages.length;i++){this.add(messages[i].type,messages[i].message,messages[i].perm,true);}}}},add:function(type,message,perm,init){if(this.domRef){var className=null;switch(type){case this._ERROR:className=this._ERROR;break;case this._INFO:className=this._INFO;break;case this._WARNING:className=this._WARNING;break;}if(className!=null){if(message!=undefined){var messageNode=SOAPI.createElement({parent:this.domRef,attributes:{'class':type}});var messageContent=SOAPI.createElement({parent:messageNode});messageContent.write(message);var obj=this;var animator=new SOAPI.Animator(new SOAPI.Sprite(messageNode),"scale");var height=messageNode.get('height');animator.addAnimation(1,{height:SOAPI.Transition.generate([new Array('Sin','In',15),new Array('Sin','Out',15)],0,height)},{interval:17,repeat:false,relative:false,action:[function(){obj.resizeContent();}]});animator.addAnimation(2,{height:SOAPI.Transition.generate([new Array('Sin','In',15),new Array('Sin','Out',15)],height,0)},{interval:17,repeat:false,relative:false,action:[function(){messageNode.hide();obj.resizeContent();}]});if(!init){animator.Play(1);this.timerOffset=2500;}else {this.timerOffset+=2500;}if(!perm){var timer=null;timer=setTimeout(function(){obj.hideMessage(messageNode);clearTimeout(timer);},this.timerOffset);}else {var closeNode=SOAPI.createElement({parent:messageContent,attributes:{'class':'close',title:'Close this message'}});SOAPI.Event.addEventHandler(closeNode,'mousedown',function(){obj.hideMessage(messageNode);},'message');}}else {throw this._MESSAGE_ERROR;}}else {throw this._TYPE_ERROR;}}else {throw this._MESSAGE_DISPLAY;}this.resizeContent();},hideMessage:function(messageNode){var animator=messageNode.animators.scale;animator.Play(2);},resizeContent:function(){var bottom=this.domRef.get('bottom');var height=this.domRef.get('actualheight');if(height<=1)bottom=this.bottom;this.contentDomRef.styleTo('bottom',height+bottom);SOAPI.Event.triggerEvent('contentchange',this.contentDomRef,null,true);}};window.SOAPI=window.SOAPI||{};var SOAPI=window.SOAPI;{SOAPI.version="4.9";SOAPI.progress=false;SOAPI.built=false;SOAPI.action=null;SOAPI.widgets=SOAPI.widgets||{};SOAPI.setupActions=[];SOAPI.speedtest=0;SOAPI.setup=function(progress,action,build){while(SOAPI.setupActions.length){var setupAction=SOAPI.setupActions.shift();setupAction();}if(progress)SOAPI.progress=true;if(action)SOAPI.action=action;if(SOAPI.built){if(SOAPI.action&&isFunction(SOAPI.action))SOAPI.action();if(SOAPI.action&&!isFunction(SOAPI.action))eval(SOAPI.action);SOAPI.action=null;return;}var theHTMLElement=(ie&&SOAPI.HTMLElement)?SOAPI.HTMLElement:window.HTMLElement.prototype;for(var member in SOAPI.Sprite.prototype){if(["parentClass","construct","isSprite","dragger","animators","timer","callParent"].contains(member))continue;theHTMLElement[member]=SOAPI.Sprite.prototype[member];}if(ie&&SOAPI.HTMLElement)SOAPI.extendHTML(document);if(!(SOAPI.speedtest=SOAPI.Cookie.get('speedtest'))){function fibTest(n){var s=0;if(n==0)return s;if(n==1){s+=1;return s;}else {return fibTest(n-1)+fibTest(n-2);}};var timeOne=new Date();var testArray=new Array();for(i=0;i<27;i++)testArray.push(fibTest(i));var timeTwo=new Date();var diff=timeTwo.getTime()-timeOne.getTime();if(diff<650)SOAPI.speedtest='good';else SOAPI.speedtest='poor';SOAPI.Cookie.set('speedtest',SOAPI.speedtest,3600);}SOAPI.Event.setupEventHandlers();SOAPI.Message.initialise();if(build)return SOAPI.buildWidgets();if(SOAPI.action&&isFunction(SOAPI.action))SOAPI.action();if(SOAPI.action&&!isFunction(SOAPI.action))eval(SOAPI.action);};SOAPI.createElement=function(parameters){var p={type:"div",element:null,parent:document.body,attributes:null,styles:null,content:null,insert:true};for(var pName in parameters){if(parameters[pName]!=null)p[pName]=parameters[pName];}var px={left:true,top:true,width:true,height:true};if(isString(p.parent))p.parent=document.getElementById(p.parent);if(isString(p.element))p.element=document.getElementById(p.element);var e=(p.element)?p.element:document.createElement(p.type);for(pName in p.attributes){if(p.attributes[pName]!=null)e.setAttribute(pName,p.attributes[pName]);}for(pName in p.styles){if(p.styles[pName]!=null){e.style[pName]=(px[pName]==null)?p.styles[pName]:parseFloat(p.styles[pName])+"px";}}if(p.content!=null)e.innerHTML=p.content;if(!p.element&&p.insert)p.parent.appendChild(e);return e;};SOAPI.destroyElement=function(element){if(isString(element))element=document.getElementById(element);element.innerHTML="";element.outerHTML="";};SOAPI.findAllChildElements=function(parent,type,attributes,recurse,limit,forwards){type=(type)?type.toLowerCase():"*";var a=(attributes)?attributes:{};var children=[];var childNodes=(recurse)?parent.getElementsByTagName(type):parent.childNodes;var i=childNodes.length;while(i--){var child=childNodes[(forwards)?childNodes.length-i-1:i];if(child.nodeType!=1||(type!="*"&&child.tagName.toLowerCase()!=type)){continue;}var found=true;for(var aName in a){var found=false;if(!child.hasAttribute(aName))break;var attribute=child.getAttribute(aName);if(isArray(a[aName])){var aSub=a[aName];var j=aSub.length;while(j--){var aSubName=aSub[j];switch(aName){case"widget":found=isWidget(child,aSubName);break;case"class":found=attribute.split(" ").contains(aSubName);break;default:found=attribute==aSubName;break;}if(found)break;}}else {switch(aName){case"widget":found=isWidget(child,a[aName]);break;case"class":found=attribute.split(" ").contains(a[aName]);break;default:found=attribute==a[aName];break;}}if(!found)break;}if(found)children.push(child);if(children.length>=limit)break;}return children;};SOAPI.findFirstChildElement=function(parent,type,attributes,recurse){return this.findAllChildElements(parent,type,attributes,recurse,1,true)[0];};SOAPI.findLastChildElement=function(parent,type,attributes,recurse){return this.findAllChildElements(parent,type,attributes,recurse,1)[0];};SOAPI.findAllChildComponents=function(parent,cType,eType,recurse){return this.findAllChildElements(parent,eType,{component:cType},recurse);};SOAPI.findFirstChildComponent=function(parent,cType,eType,recurse){return this.findFirstChildElement(parent,eType,{component:cType},recurse);};SOAPI.findLastChildComponent=function(parent,cType,eType,recurse){return this.findLastChildElement(parent,eType,{component:cType},recurse);};SOAPI.findAllChildWidgets=function(parent,wType,eType,recurse){return this.findAllChildElements(parent,eType,{widget:wType},recurse);};SOAPI.findFirstChildWidget=function(parent,wType,eType,recurse){return this.findFirstChildElement(parent,eType,{widget:wType},recurse);};SOAPI.findLastChildWidget=function(parent,wType,eType,recurse){return this.findLastChildElement(parent,eType,{widget:wType},recurse);};SOAPI.getMatchingAttributes=function(element,attributes){for(var i in attributes){if(element.hasAttribute(i))attributes[i]=element.getAttribute(i);}return attributes;};SOAPI.buildWidgets=function(element){element=element||document.body;var elements=[];var allelements=element.getElementsByTagName("*");var stack=[element];var buildsubs=0;for(var i=0,e;(e=allelements[i])!=null;i++){if(((isWidget(e)&&this.widgets[e.getAttribute("widget")])||isComponent(e))&&!e.built){var hasBuild=e.hasAttribute("build");var hasBuildsubs=e.hasAttribute("buildsubs");var j=stack.length-1;while(j>=0){if(stack[j]===document.body||stack[j].contains(e)){stack.push(e);if(buildsubs==j&&((hasBuildsubs&&e.getAttribute("buildsubs")!="false")||(!hasBuildsubs))){buildsubs=j+1;}j++;break;}stack.pop();j--;if(buildsubs>j)buildsubs=j;}if(isWidget(e)&&buildsubs>=j-1&&(j==1||((hasBuild&&e.getAttribute("build")!="false")||(!hasBuild)))){elements.push(e);}}}if(isWidget(element))element.builtsubs=true;var progress=this.progress;if(!this.ProgressBar)progress=false;if(progress){progress=this.progress={};progress.time=0;progress.elements=elements;progress.element=0;progress.bar=new this.ProgressBar({element:document.getElementById("SOAPI_LoadBar")});return this.buildNextWidget();}for(var i=0,e;(e=elements[i])!=null;i++)this.widgets[e.getAttribute("widget")]({element:e});this.built=true;SOAPI.setup();};SOAPI.buildNextWidget=function(){var progress=SOAPI.progress;var e=progress.elements[progress.element];SOAPI.widgets[e.getAttribute("widget")]({element:e});progress.element++;if(progress.element<progress.elements.length){var now=new Date();var time=now.getTime();if(time-progress.time>1000){progress.bar.updatePosition(progress.element/progress.elements.length*100);progress.time=time;return setTimeout(SOAPI.buildNextWidget,0);}else {return SOAPI.buildNextWidget();}}progress.bar.parentNode.removeChild(progress.bar);SOAPI.progress=true;SOAPI.built=true;SOAPI.setup();};SOAPI.findParentWidget=function(element,type){while((element=element.parentNode)!==document){if(isWidget(element,type))return element;}return false;};SOAPI.findParentComponent=function(element,type){while((element=element.parentNode)!==document){if(isComponent(element,type))return element;}return false;};SOAPI.configureWidgetPieces=function(config){for(var i in config){var pieces=config[i];var widget=SOAPI[i].prototype;if(!isObject(pieces)){widget.parameters=SOAPI.merge(widget.parameters);widget.parameters.pieces=pieces;continue;}for(var j in pieces){if(j=="self"){widget.parameters.pieces=pieces[j];continue;}widget.ctypes[j]=widget.ctypes[j].duplicate();var proto=widget.ctypes[j].prototype;proto.parameters=SOAPI.merge(proto.parameters);proto.parameters.pieces=pieces[j];}}};SOAPI.merge=function(){if(isArray(arguments[0]))return[].concat(arguments);var result={};for(var i=0;i<arguments.length;i++){var object=arguments[i];for(var j in object)result[j]=object[j];}return result;};SOAPI.applyBackgroundCSS=function(element){if(isString(element))element=document.getElementById(element);if(element.tagName.toLowerCase()!="img")return;var bg=element.getAppliedStyle("background-image");if(bg.length>5)element.src=bg.match(/http.+[^")]/g)[0];else  if(element.src=="")element.style.display="none";element.style.backgroundImage="none";};SOAPI.extendHTML=function(baseElement){var element=!isString(baseElement)?baseElement:$(baseElement);var elements=element.getElementsByTagName("*");var HTMLElement=SOAPI.HTMLElement;for(var i=elements.length-1;i>=0;i--){var el=elements[i];if(typeof el.getAppliedStyle=="undefined"){if(el.tagName=="OBJECT"){for(var pName in HTMLElement){if(!el[pName])el[pName]=HTMLElement[pName];}continue;}for(var p in HTMLElement)el[p]=HTMLElement[p];}}};}SOAPI.Class=function(){};{SOAPI.Class.prototype.construct=function(){};SOAPI.Class.extension=function(){var subClass=this.duplicate();subClass.prototype.parentClass=this.prototype;return subClass;};SOAPI.Class.extend=function(members){for(var member in members)this.prototype[member]=members[member];};SOAPI.Class.duplicate=function(){var Class=SOAPI.Class;var sibClass=function(){if(arguments[0]!==Class)return this.construct.apply(this,arguments);};sibClass.prototype=new this(Class);sibClass.extension=this.extension;sibClass.extend=this.extend;sibClass.duplicate=this.duplicate;return sibClass;};SOAPI.Class.prototype.callParent=function(object,name,parameters){var currentClass=this;var found=null;while(currentClass!=null){if(currentClass[name]===object)found=currentClass;currentClass=currentClass.parentClass;}currentClass=found||this;return currentClass.parentClass[name].apply(this,parameters);};}SOAPI.Events={mousedown:["onMouseDown","mousedown"],mousemove:["onMouseMove","mousemove"],mouseup:["onMouseUp","mouseup"],mousewheel:["onMouseWheel",(!ie)?"DOMMouseScroll":"mousewheel"],mouseover:["onMouseOver","mouseover"],mouseout:["onMouseOut","mouseout"],focus:["onFocus",(!ie)?"focus":"activate"],blur:["onBlur",(!ie)?"blur":"deactivate"],keypress:["onKeyPress","keypress"],keydown:["onKeyDown","keydown"],keyup:["onKeyUp","keyup"],change:["onChange","change"],scroll:["onScroll","scroll"],nodeinserted:["onNodeInserted","DOMNodeInserted"],noderemoved:["onNodeRemoved","DOMNodeRemoved"],nodeinsertedintodocument:["onNodeInsertedIntoDocument","DOMNodeInsertedIntoDocument"],noderemovedfromdocument:["onNodeRemovedFromDocument","DOMNodeRemovedFromDocument"],drag:["onDrag"],dragstart:["onDragStart"],dragend:["onDragEnd"],dragover:["onDragOver"],dragout:["onDragOut"],drop:["onDrop"],sizechange:["onSizeChange"],contentchange:["onContentChange"],action:["onAction"],onmousedown:function(event){return SOAPI.Event.processEvent("mousedown",event,this);},onmousemove:function(event){return SOAPI.Event.processEvent("mousemove",event,this);},onmouseup:function(event){return SOAPI.Event.processEvent("mouseup",event,this);},onmousewheel:function(event){return SOAPI.Event.processEvent("mousewheel",event,this);},onmouseover:function(event){return SOAPI.Event.processEvent("mouseover",event,this);},onmouseout:function(event){return SOAPI.Event.processEvent("mouseout",event,this);},onfocus:function(event){return SOAPI.Event.processEvent("focus",event,this);},onblur:function(event){return SOAPI.Event.processEvent("blur",event,this);},onkeypress:function(event){return SOAPI.Event.processEvent("keypress",event,this);},onkeydown:function(event){return SOAPI.Event.processEvent("keydown",event,this);},onkeyup:function(event){return SOAPI.Event.processEvent("keyup",event,this);},onchange:function(event){return SOAPI.Event.processEvent("change",event,this);},onscroll:function(event){return SOAPI.Event.processEvent("scroll",event,this);},onnodeinserted:function(event){return SOAPI.Event.processEvent("nodeinserted",event,this);},onnoderemoved:function(event){return SOAPI.Event.processEvent("noderemoved",event,this);},onnodeinsertedintodocument:function(event){return SOAPI.Event.processEvent("nodeinsertedintodocument",event,this);},onnoderemovedfromdocument:function(event){return SOAPI.Event.processEvent("noderemovedfromdocument",event,this);},onMouseDown:function(event){var E=SOAPI.Event;var e=event.event;var element=event.element;E.button=event.getMouseButton();E.x=e.clientX+document.body.scrollLeft;E.y=e.clientY+document.body.scrollTop;E.currentLeft=(element.isSprite)?element.get("left"):element.offsetLeft;E.currentTop=(element.isSprite)?element.get("top"):element.offsetTop;E.offsetX=E.x-E.currentLeft;E.offsetY=E.y-E.currentTop;if(!element.isSprite)return true;if(element.isUsable&&!element.isUsable()){if(element.parentNode)E.triggerEvent("focus",element.parentNode,null,true);return false;}if(E.button==E.LEFT&&element.dragger&&element.dragger.enabled){E.triggerEvent("focus",element,null,true);E.dragImminent=element;event.stopPropagation();}return true;},onMouseMove:function(event){var E=SOAPI.Event;var e=event.event;E.x=e.clientX+document.body.scrollLeft;E.y=e.clientY+document.body.scrollTop;E.distanceX=E.x-E.offsetX-E.currentLeft;E.distanceY=E.y-E.offsetY-E.currentTop;E.currentLeft+=E.distanceX;E.currentTop+=E.distanceY;if(!E.dragActive){if(!E.dragImminent){if(event.element.isUsable&&!event.element.isUsable())event.stopProcessing();return true;}event.element=E.dragImminent;E.triggerEvent("dragstart",event.element);E.dragImminent=false;}event.element=E.dragActive;if(!event.element.isSprite)return false;if(event.getMouseButton()){E.triggerEvent("drag",event.element);}else {E.triggerEvent("dragend",event.element);}event.stopPropagation();return false;},onMouseUp:function(event){var E=SOAPI.Event;var e=event.event;E.x=e.clientX+document.body.scrollLeft;E.y=e.clientY+document.body.scrollTop;E.dragImminent=false;if(!E.dragActive){if(event.element.isUsable&&!event.element.isUsable())event.stopProcessing();return true;}E.triggerEvent("dragend",E.dragActive);event.stopPropagation();return true;},onMouseWheel:function(event){var E=SOAPI.Event;var e=event.event;if(e.wheelDelta)E.wheelDelta=e.wheelDelta/120*((opera)?1:-1);if(e.detail)E.wheelDelta=e.detail;if(E.dragActive)return false;if(event.element.isUsable&&!event.element.isUsable())event.stopProcessing();return true;},onMouseOver:function(event){if(SOAPI.Event.dragActive&&event.element!=SOAPI.Event.dragActive)event.stopProcessing();if(event.element.isUsable&&!event.element.isUsable())event.stopProcessing();return true;},onMouseOut:function(event){if(SOAPI.Event.dragActive&&event.element!=SOAPI.Event.dragActive)event.stopProcessing();if(event.element.isUsable&&!event.element.isUsable())event.stopProcessing();return true;},onDragStart:function(event){SOAPI.Event.dragActive=event.element;var elements=event.element.getElementsByTagName("*");var i=elements.length;while(i--){if(elements[i].eventHandlers&&elements[i].eventHandlers["sizechange"]){SOAPI.Event.changeOnDrag.push(elements[i]);}}return true;},onDrag:function(event){var E=SOAPI.Event;var element=E.dragActive;if(E.distanceX||E.distanceY)SOAPI.Events.doDrag(E,element.dragger.partners,false);if(E.distanceX||E.distanceY)SOAPI.Events.doDrag(E,element.dragger.partners,true);var targets=element.dragger.targets;var topTarget=null;var topZIndex=null;var i=targets.length;while(i--){var target=targets[i];var sprite=target.sprite;var zIndex=parseInt(sprite.style.zIndex);if(E.x>sprite.get("ActualLeft")&&E.x<sprite.get("ActualLRight")&&E.y>sprite.get("ActualTop")&&E.y<sprite.get("ActualTBottom")&&(zIndex>topZIndex||(isNaN(zIndex)&&topZIndex==null))&&sprite.isVisible()){topTarget=target;if(!isNaN(zIndex))topZIndex=zIndex;}}if(topTarget&&!topTarget.over){E.triggerEvent("dragover",topTarget.sprite);topTarget.over=true;}var i=targets.length;while(i--){var target=targets[i];if(target!==topTarget&&target.over){E.triggerEvent("dragout",target.sprite);target.over=false;}}var i=E.changeOnDrag.length;while(i--)E.triggerEvent("sizechange",E.changeOnDrag[i]);return true;},onDragEnd:function(event){var partners=SOAPI.Event.dragActive.dragger.partners;var i=partners.length;while(i--){var r=partners[i].sprite.dragger.restrictions;for(style in r)r[style].delta=0;}var targets=SOAPI.Event.dragActive.dragger.targets;var i=targets.length;while(i--){if(targets[i].over){SOAPI.Event.triggerEvent("drop",targets[i].sprite);break;}}SOAPI.Event.dragActive=false;SOAPI.Event.changeOnDrag=[];return true;},doDrag:function(object,partners,apply){var i=partners.length;while(i--){var partner=partners[i];var sprite=partner.sprite;for(var axis in{X:null,Y:null}){var multiply=partner["multiply"+axis];for(var style in multiply){if(multiply[style]==null)continue;var d=object["distance"+axis]*multiply[style];if(apply){sprite.styleBy(style,d);continue;}var styles=[[style,1]];switch(style){case"width":{var sl=sprite.style.left;var sr=sprite.style.right;if(sl!=""||sr==""){styles.push(["right",-1],["lright",1]);}else {styles.push(["left",-1],["rleft",1]);}}break;case"left":{var sw=sprite.style.width;var sl=sprite.style.left;if((sw=="auto"||sw=="")&&sl!=""){styles.push(["width",-1]);}else {styles.push(["right",-1],["lright",1]);}styles.push(["rleft",-1]);}break;case"right":{var sw=sprite.style.width;var sr=sprite.style.right;if((sw=="auto"||sw=="")&&sr!=""){styles.push(["width",-1]);}else {styles.push(["left",-1],["rleft",1]);}styles.push(["lright",-1]);}break;case"height":{var st=sprite.style.top;var sb=sprite.style.bottom;if(st!=""||sb==""){styles.push(["bottom",-1],["tbottom",1]);}else {styles.push(["top",-1],["btop",1]);}}break;case"top":{var sh=sprite.style.height;var st=sprite.style.top;if((sh=="auto"||sh=="")&&st!=""){styles.push(["height",-1]);}else {styles.push(["bottom",-1],["tbottom",1]);}styles.push(["btop",-1]);}break;case"bottom":{var sh=sprite.style.height;var sb=sprite.style.bottom;if((sh=="auto"||sh=="")&&sb!=""){styles.push(["height",-1]);}else {styles.push(["top",-1],["btop",1]);}styles.push(["tbottom",-1]);}break;}if(!sprite.dragger.restrict)continue;var j=styles.length;while(j--){var r=sprite.dragger.restrictions[styles[j][0]];if(!r)continue;var value=parseFloat(sprite.get(styles[j][0]));d*=styles[j][1];r.delta+=d;if(d<0&&r.min!=null&&value+d<=r.min){d=r.min-value;}else  if(d>0&&r.max!=null&&value+d>=r.max){d=r.max-value;}else  if(SOAPI.Event.dragActive&&((d<0&&r.delta>0&&r.delta+d>0)||(d>0&&r.delta<0&&r.delta+d<0))){d=0;}r.delta-=d;d*=styles[j][1];if(!d||r.step==null)continue;d*=styles[j][1];r.delta+=d;var steps=Math.floor(Math.abs(r.delta)/r.step);var part=r.delta%r.step;if(Math.abs(part)>r.step/2){steps++;d=steps*r.step*((r.delta>0)?1:-1);r.delta-=d;d*=styles[j][1];}else {d=0;}}if(partner.key)object["distance"+axis]=d/multiply[style];}}}},onFocus:function(event){SOAPI.Event.propogateEvent(event,event.element);if(SOAPI.Event.dragActive)event.preventDefault();return true;},onBlur:function(event){SOAPI.Event.propogateEvent(event,event.element);return true;},onDragOver:function(event){return true;},onDragOut:function(event){return true;},onDrop:function(event){return true;},onKeyPress:function(event){return true;},onKeyDown:function(event){return true;},onKeyUp:function(event){return true;},onChange:function(event){return true;},onScroll:function(event){return true;},onSizeChange:function(event){return true;},onContentChange:function(event){return true;},onNodeInserted:function(event){return true;},onNodeRemoved:function(event){return true;},onNodeInsertedIntoDocument:function(event){return true;},onNodeRemovedFromDocument:function(event){return true;}};SOAPI.Event={button:0,LEFT:1,RIGHT:2,MIDDLE:4,wheelDelta:0,x:0,y:0,offsetX:0,offsetY:0,distanceX:0,distanceY:0,currentLeft:0,currentTop:0,dragActive:false,dragImminent:false,changeOnDrag:[],setupEventHandlers:function(){SOAPI.Event.addEventHandler(document,"mousemove");SOAPI.Event.addEventHandler(document,"mousedown");SOAPI.Event.addEventHandler(document,"mouseup");var sets=[document.getElementsByTagName("input"),document.getElementsByTagName("textarea")];var s=sets.length;while(s--){var elements=sets[s];var i=elements.length;while(i--){SOAPI.Event.addEventHandler(elements[i],"focus");SOAPI.Event.addEventHandler(elements[i],"blur");}}},addEventHandler:function(element,type,handler,name,order){if(isString(element))element=document.getElementById(element);if(!isArray(order))order=(order)?[order]:["last"];type=type.toLowerCase().replace(/^on/,"");if(!SOAPI.Events[type])return false;if(!element.eventHandlers){element.eventHandlers={};element.eventQueues={};}if(!element.eventHandlers[type]){var defaultName=SOAPI.Events[type][0];element.eventHandlers[type]={};element.eventHandlers[type][defaultName]={handler:SOAPI.Events[defaultName],pos:0};element.eventQueues[type]=[defaultName];if(SOAPI.Events[type][1]){if(element.addEventListener){element.addEventListener(SOAPI.Events[type][1],SOAPI.Events["on"+type],false);}else {element["on"+SOAPI.Events[type][1]]=SOAPI.Events["on"+type];}}}if(!handler||!name)return true;var handlers=element.eventHandlers[type];var queue=element.eventQueues[type];if(handlers[name])queue.splice(handlers[name].pos,1);var pos=false;for(var i=0;i<order.length;i++){if(order[i]=="last"){pos=queue.push(name);break;}if(order[i]=="first"){pos=queue.unshift(name);break;}var info=order[i].split(" ",2);if(handlers[info[1]]){pos=handlers[info[1]].pos;if(info[0]!="before")pos++;queue.splice(pos,0,name);break;}}if(isArray(handler)){handlers[name]={element:handler[0],handler:handler[1]};}else {handlers[name]={handler:handler};}for(var i=0;i<queue.length;i++){handlers[queue[i]].pos=i;}return true;},removeEventHandler:function(element,type,name){if(isString(element))element=document.getElementById(element);type=type.toLowerCase().replace(/^on/,"");if(!SOAPI.Events["on"+type]||!element.eventHandlers||!element.eventHandlers[type]||!element.eventHandlers[type][name]){return false;}var handlers=element.eventHandlers[type];var queue=element.eventQueues[type];queue.splice(handlers[name].pos,1);handlers[name]=null;for(var i=0;i<queue.length;i++)handlers[queue[i]].pos=i;if(!queue.length){element.eventHandlers[type]=null;element.eventQueues[type]=null;if(SOAPI.Events[type][1]){if(element.removeEventListener){element.removeEventListener(SOAPI.Events[type][1],SOAPI.Events["on"+type],false);}else {element.detachEvent("on"+SOAPI.Events[type][1],SOAPI.Events["on"+type]);}}}return true;},copyEventHandlers:function(from,to,deep){if(isString(from))from=document.getElementById(from);if(isString(to))to=document.getElementById(to);if(deep){for(var i=0;i<from.childNodes.length;i++){SOAPI.Event.copyEventHandlers(from.childNodes[i],to.childNodes[i],true);}}if(isWidget(from))SOAPI.widgets[from.getAttribute("widget")]({element:to});if(!from.eventQueues)return;for(var type in from.eventQueues){for(var i=0;i<from.eventQueues[type].length;i++){var name=from.eventQueues[type][i];if(name.match(/^on/))continue;SOAPI.Event.addEventHandler(to,type,from.eventHandlers[type][name].handler,name);}}},processEvent:function(type,event,element){var e=event||window.event;var E=(e.event)?e:{event:e};element=(ie)?(e.srcElement&&e.srcElement.eventHandlers&&e.srcElement.eventHandlers[type]?e.srcElement:element):element||e.target;var p={type:type,element:element,stop:false,stopPropagation:this._stopPropagation,preventDefault:this._preventDefault,stopProcessing:this._stopProcessing,getMouseButton:this._getMouseButton};for(var i in p)E[i]=p[i];if(ie&&e.fromElement)e.relatedTarget=(e.type=="mouseover")?e.fromElement:e.toElement;if(!element.eventHandlers||!element.eventHandlers[type])return true;var handlers=element.eventHandlers[type];var queue=element.eventQueues[type];for(var i=0;i<queue.length;i++){var handler=handlers[queue[i]];if(!handler.handler.apply((handler.element)?handler.element:element,[E]))return false;if(E.stop)return true;}return true;},triggerEvent:function(type,element,properties,propogate,percolate,pass){if(isString(element))element=document.getElementById(element);type=type.toLowerCase().replace(/^on/,"");if(!SOAPI.Events[type])return false;var E=properties||{};E.event=E.event||{};E.event.target=element;SOAPI.Event.processEvent(type,E,element);if(propogate&&!E.cancelPropogation)this.propogateEvent(E,element,pass);if(percolate&&!E.cancelPercolation)this.percolateEvent(E,element);return true;},propogateEvent:function(event,element,pass){while(element!==document){element=element.parentNode;if(!element)return;if(element.eventHandlers&&element.eventHandlers[event.type]){if(pass&&element[event.type])element[event.type]();else  this.processEvent(event.type,event,element);break;}}},percolateEvent:function(event,element){var elements=element.getElementsByTagName("*");for(var i=0;i<elements.length;i++){if(elements[i].eventHandlers&&elements[i].eventHandlers[event.type]){this.processEvent(event.type,event,elements[i]);}}},_stopPropagation:function(){var e=this.event;if(e.stopPropagation)e.stopPropagation();else  e.cancelBubble=true;this.cancelPropogation=true;},stopPercolation:function(){this.cancelPercolation=true;},_preventDefault:function(){var e=this.event;if(e.preventDefault)e.preventDefault();else  e.returnValue=false;},_stopProcessing:function(){this.stop=true;},_getMouseButton:function(){var E=SOAPI.Event;var e=this.event;return(e.which)?((e.which==2)?E.MIDDLE:((e.which==3)?E.RIGHT:E.LEFT)):e.button;}};SOAPI.Dragger=SOAPI.Class.extension();SOAPI.Dragger.extend({enabled:false,bringToTop:false,restrict:false,restrictions:null,partners:null,targets:null,construct:function(){this.restrictions={};this.partners=[];this.targets=[];},addRestriction:function(style,properties){var p={min:null,max:null,step:null,delta:0};for(var pName in properties)p[pName]=properties[pName];if(!isString(style))return;this.restrictions[style]=p;},removeRestriction:function(style){if(!isString(style))return;var restrictions={};for(var i in this.restrictions){if(i!=style){restrictions[i]=this.restrictions[i];}}this.restrictions=restrictions;},addPartner:function(sprite,x,y,key){if(isString(sprite))sprite=document.getElementById(sprite);if(!isObject(x))x={};if(!isObject(y))y={};for(var i in x){if(x[i]==null)x[i]=1;}for(var i in y){if(y[i]==null)y[i]=1;}this.partners.push({sprite:sprite,multiplyX:x,multiplyY:y,key:key});},removePartner:function(sprite){if(isString(sprite))sprite=document.getElementById(sprite);var i=this.partners.length;while(i--){if(this.partners[i].sprite===sprite){this.partners.splice(i,1);break;}}},addTarget:function(sprite){if(isString(sprite))sprite=document.getElementById(sprite);this.targets.push({sprite:sprite,over:false});},removeTarget:function(sprite){if(isString(sprite))sprite=document.getElementById(sprite);var i=this.targets.length;while(i--){if(this.targets[i].sprite===sprite){this.targets.splice(i,1);break;}}}});SOAPI.Sprite=SOAPI.Class.extension();SOAPI.Sprite.extend({isSprite:true,timer:0,dragger:null,animators:null,construct:function(element,draggable){if(isString(element))element=document.getElementById(element);if(!element.isSprite){for(var member in this)element[member]=this[member];element.animators={};}if(draggable&&!element.dragger){element.dragger=new SOAPI.Dragger();element.dragger.addPartner(element,{left:1},{top:1},true);}return element;},enable:function(){this.removeAttribute("disabled");},disable:function(){this.setAttribute("disabled",true);},get:function(name,giveUnits){switch(name.replace(/-/g,"").toLowerCase()){case"width":{var value=this.getAppliedStyle("width");return(!isNumber(value)&&value.indexOf("px")<0)?this.clientWidth:parseFloat(value);}case"offsetwidth":return this.offsetWidth;case"clientwidth":return this.clientWidth;case"scrollwidth":return this.scrollWidth;case"actualwidth":return this.offsetWidth;case"contentwidth":{var value=0;var i=this.childNodes.length;while(i--){var node=this.childNodes[i];if(node.nodeType!=1)continue;var width=node.offsetLeft+node.offsetWidth;if(width>value)value=width;}return value;}case"height":{var value=this.getAppliedStyle("height");return(!isNumber(value)&&value.indexOf("px")<0)?this.clientHeight:parseFloat(value);}case"offsetheight":return this.offsetHeight;case"clientheight":return this.clientHeight;case"scrollheight":return this.scrollHeight;case"actualheight":return this.offsetHeight;case"contentheight":{var value=0;var i=this.childNodes.length;while(i--){var node=this.childNodes[i];if(node.nodeType!=1)continue;var height=node.offsetTop+node.offsetHeight;if(height>value)value=height;}return value;}case"minwidth":return parseFloat(this.getAppliedStyle("min-width"));case"maxwidth":return parseFloat(this.getAppliedStyle("max-width"));case"minheight":return parseFloat(this.getAppliedStyle("min-height"));case"maxheight":return parseFloat(this.getAppliedStyle("max-height"));case"left":{var value=this.getAppliedStyle("left");return(!isNumber(value)&&value.indexOf("px")<0)?this.offsetLeft:parseFloat(value);}case"offsetleft":return this.offsetLeft;case"clientleft":return this.clientLeft;case"scrollleft":return this.scrollLeft;case"actualleft":return this.getActual("offsetLeft");case"right":{var value=this.getAppliedStyle("right");return(!isNumber(value)&&value.indexOf("px")<0)?this.offsetRight:parseFloat(value);}case"offsetright":return this.offsetRight;case"clientright":return this.clientRight;case"scrollright":return this.scrollRight;case"actualright":return this.getActual("offsetRight");case"top":{var value=this.getAppliedStyle("top");return(!isNumber(value)&&value.indexOf("px")<0)?this.offsetTop:parseFloat(value);}case"offsettop":return this.offsetTop;case"clienttop":return this.clientTop;case"scrolltop":return this.scrollTop;case"actualtop":return this.getActual("offsetTop");case"bottom":{var value=this.getAppliedStyle("bottom");return(!isNumber(value)&&value.indexOf("px")<0)?this.offsetBottom:parseFloat(value);}case"offsetbottom":return this.offsetBottom;case"clientbottom":return this.clientBottom;case"scrollbottom":return this.scrollBottom;case"actualbottom":return this.getActual("offsetBottom");case"rleft":return this.get("right")+this.get("width");case"offsetrleft":return this.get("offsetright")+this.get("offsetwidth");case"clientrleft":return this.get("clientright")+this.get("clientwidth");case"scrollrleft":return this.get("scrollright")+this.get("scrollwidth");case"actualrleft":return this.get("actualright")+this.get("actualwidth");case"lright":return this.get("left")+this.get("width");case"offsetlright":return this.get("offsetleft")+this.get("offsetwidth");case"clientlright":return this.get("clientleft")+this.get("clientwidth");case"scrolllright":return this.get("scrollleft")+this.get("scrollwidth");case"actuallright":return this.get("actualleft")+this.get("actualwidth");case"btop":return this.get("bottom")+this.get("height");case"offsetbtop":return this.get("offsetbottom")+this.get("offsetheight");case"clientbtop":return this.get("clientbottom")+this.get("clientheight");case"scrollbtop":return this.get("scrollbottom")+this.get("scrollheight");case"actualbtop":return this.get("actualbottom")+this.get("actualheight");case"tbottom":return this.get("top")+this.get("height");case"offsettbottom":return this.get("offsettop")+this.get("offsetheight");case"clienttbottom":return this.get("clienttop")+this.get("clientheight");case"scrolltbottom":return this.get("scrolltop")+this.get("scrollheight");case"actualtbottom":return this.get("actualtop")+this.get("actualheight");case"clip":{var regex=(giveUnits)?/rect|\(|\)|\s/ig:/rect|\(|\)|px|\s/ig;var clip=this.getAppliedStyle("clip").replace(regex,"").split(",");if(clip.length<4){if(clip.length==1&&clip[0]=="")return["auto","auto","auto","auto"];if(clip.length==1)return[clip[0],clip[0],clip[0],clip[0]];if(clip.length==2)return[clip[0],clip[1],clip[0],clip[1]];clip[3]="auto";}return clip;}case"opacity":return parseFloat(this.getAppliedStyle("opacity"))*100;case"borderleftwidth":case"borderrightwidth":case"bordertopwidth":case"borderbottomwidth":return parseFloat(this.getAppliedStyle(name));default:return this.getAppliedStyle(name);}},getActual:function(name){var obj=this;var value=obj[name];var offsetName=(name.substring(0,6)=="offset")?name.substring(6).toLowerCase():"";var borderName=(offsetName)?"border-"+offsetName+"-width":"";while(obj=obj.offsetParent){if(name=="offsetTop")value-=obj.get('scrolltop');if(name=="offsetLeft")value-=obj.get('scrollleft');var borderWidth=(borderName)?parseFloat(obj.getAppliedStyle(borderName)):0;value+=obj[name]+(isNaN(borderWidth)?0:borderWidth);if(gecko&&obj.getAppliedStyle("overflow")=="hidden"){value+=isNaN(borderWidth)?0:borderWidth;}}return value;},moveTo:function(left,top){this.styleTo({left:left,top:top});},moveBy:function(left,top){this.moveTo((left!=null)?this.get("left")+left:left,(top!=null)?this.get("top")+top:top);},sizeTo:function(width,height){this.styleTo({width:(width<0)?0:width,height:(height<0)?0:height});},sizeBy:function(width,height){this.sizeTo((width!=null)?this.get("width")+width:width,(height!=null)?this.get("height")+height:height);},clipTo:function(clipTop,clipRight,clipBottom,clipLeft){var clip=this.get("clip",true);if(clipTop!=null)clip[0]=(clipTop=="auto")?"auto":clipTop+"px";if(clipRight!=null)clip[1]=(clipRight=="auto")?"auto":clipRight+"px";if(clipBottom!=null)clip[2]=(clipBottom=="auto")?"auto":clipBottom+"px";if(clipLeft!=null)clip[3]=(clipLeft=="auto")?"auto":clipLeft+"px";this.style.clip="rect("+clip[0]+" "+clip[1]+" "+clip[2]+" "+clip[3]+")";},clipBy:function(clipTop,clipRight,clipBottom,clipLeft){var clip=this.get("clip",false);clipTop=parseFloat(clipTop);clipRight=parseFloat(clipRight);clipBottom=parseFloat(clipBottom);clipLeft=parseFloat(clipLeft);clipTop=(clipTop)?clipTop+((clip[0]=="auto")?0:parseFloat(clip[0])):clip[0];clipRight=(clipRight)?clipRight+((clip[1]=="auto")?this.scrollWidth:parseFloat(clip[1])):clip[1];clipBottom=(clipBottom)?clipBottom+((clip[2]=="auto")?this.scrollHeight:parseFloat(clip[2])):clip[2];clipLeft=(clipLeft)?clipLeft+((clip[3]=="auto")?0:parseFloat(clip[3])):clip[3];this.clipTo(clipTop,clipRight,clipBottom,clipLeft);},blendTo:function(opacity){if(!isNumber(opacity))return;this.style.opacity=opacity/100;if(ie)this.style.filter="alpha(opacity="+opacity+")";},blendBy:function(opacity){this.blendTo((this.get("opacity")*100)+opacity);},hide:function(){this.style.visibility="hidden";if(this.getAppliedStyle("display")!="none"){this.previousDisplayCSS=this.getAppliedStyle("display");this.style.display="none";}},show:function(){this.style.visibility="visible";if(this.getAppliedStyle("display")=="none"){this.style.display=(this.previousDisplayCSS)?this.previousDisplayCSS:"block";}SOAPI.Event.triggerEvent("sizechange",this,null,false,true);SOAPI.Event.triggerEvent("contentchange",this,null,true);},visibilityTo:function(visible){this[(visible)?"show":"hide"]();},isVisible:function(){return!(this.getAppliedStyle("visibility")=="hidden"||this.getAppliedStyle("display")=="none");},toggleVisibility:function(){this[(this.isVisible)?"hide":"show"]();},classNames:function(){return this.className.split(/\s+/);},hasClassName:function(className){return(this.className&&this.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))?true:false;},addClassName:function(className){if(this.hasClassName(className))return;this.className+=(this.className?" ":"")+className;},removeClassName:function(className){this.className=this.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)")," ").trim();},toggleClassName:function(className){this[(this.hasClassName(className))?"removeClassName":"addClassName"](className);},styleTo:function(name,value){var px={"width":true,"height":true,"left":true,"right":true,"top":true,"bottom":true};var pos={"width":true,"height":true};var scroll={"scrollTop":true,"scrollLeft":true};var styles=isObject(name)?name:{};if(!isObject(name))styles[name]=value;for(var i in styles){if(styles[i]==null||isUnNumber(styles[i]))continue;if(pos[i]&&styles[i]<0)styles[i]=0;if(scroll[i])this[i]=styles[i];else  this.style[i]=styles[i]+((isNumber(styles[i])&&px[i])?"px":"");}},styleBy:function(name,value){var styles=isObject(name)?name:{};if(!isObject(name))styles[name]=value;for(var i in styles){if(isNumber(styles[i]))styles[i]+=this.get(i);}this.styleTo(styles);},write:function(html,append,position){position=position||"beforeend";if(append)this.insertAdjacentHTML(position,html);else  this.innerHTML=html;}});SOAPI.Ajax={threads:[],queue:[],limit:3,loadIndicator:null,_404_ERROR:'The request URL was unreachable',_AJAX_FAIL:'Unable to create the AJAX request',_EMPTY_URL:'No request provided',setup:function(){this.threads=[];for(var i=0;i<=this.limit-1;i++){this.threads[i]={ajax:null,request:null,updating:false,timerOn:false,slow:false};}},request:function(properties){if(this.threads.length!=this.limit)this.setup();var r={url:null,data:'',dataType:'GET',onSuccess:function(){},onError:function(e){console.log(e);},onUploadEvents:function(){},executeResponse:false,DOMReference:[],showProgress:true};if(isObject(properties)){for(var pName in properties)r[pName]=properties[pName];if(properties.dataType)r.dataType=properties.dataType.toUpperCase();if(r.dataType=='FILE'&&isObject(properties.data)){r.data=properties.data;}else  if(isObject(r.data)){r.data='';for(var key in properties.data)r.data+=key+'='+(properties.data[key].urlEncode?properties.data[key].urlEncode():properties.data[key])+'&';}for(var i=0;i<this.limit;i++){if(!this.threads[i].ajax){this.threads[i].request=r;this.make(i);return;}}this.queue.push(r);}},make:function(id){var thread=this.threads[id];try{thread.ajax=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");if(thread.request.url==null)throw this._EMPTY_URL;if(!thread.ajax)throw this._AJAX_FAIL;var obj=this;thread.ajax.onreadystatechange=function(){return obj.xhrProcessor(id);};thread.updating=new Date();if(thread.request.dataType=="POST"){var url=thread.request.url+'?'+thread.updating.getTime();thread.ajax.open("POST",url,true);thread.ajax.setRequestHeader("X-Requested-With","XMLHttpRequest");thread.ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");thread.ajax.send(thread.request.data);}else  if(thread.request.dataType=="FILE"){var url=thread.request.url+thread.updating.getTime();thread.ajax.upload.onprogress=thread.ajax.upload.onload=thread.ajax.upload.onerror=thread.request.onUploadEvents;thread.ajax.open("POST",url,true);thread.ajax.setRequestHeader("X-Requested-With","XMLHttpRequest");thread.ajax.setRequestHeader("Content-Type",thread.request.data.type);thread.ajax.setRequestHeader("Content-Length",thread.request.data.fileSize);thread.ajax.send(thread.request.data);}else {var url=thread.request.url+'?'+thread.request.data+thread.updating.getTime();thread.ajax.open("GET",url,true);thread.ajax.setRequestHeader("X-Requested-With","XMLHttpRequest");thread.ajax.send(null);}}catch(e){thread.request.onError(e);return false;}return true;},xhrProcessor:function(id){var thread=this.threads[id];this.showHideLoadIndicator(id,true);if(thread.ajax.readyState!=4)return;if(thread.ajax.responseText!=''){var data=eval("("+thread.ajax.responseText+")");if(thread.request.executeResponse){var object=thread.request.DOMReference;eval(data.command);}else {thread.request.onSuccess(data);}}thread.ajax=null;thread.updating=false;thread.slow=false;this.showHideLoadIndicator(id,false);if(this.queue.length){thread.request=this.queue.shift();this.make(id);}return;},showHideLoadIndicator:function(id,show){if(!this.loadIndicator){this.loadIndicator=SOAPI.createElement({parent:document.body,attributes:{id:'loadIndicator'}});}var thread=this.threads[id];if(show&&thread.request.showProgress){if(!thread.timerOn){var obj=this;thread.waitForLoad=setTimeout(function(){obj.loadIndicator.show();thread.slow=true;},2500);thread.timerOn=true;}return;}if(thread.timerOn){clearTimeout(thread.waitForLoad);thread.timerOn=false;}for(var i=0;i<this.limit;i++){if(this.threads[i].slow)return;}this.loadIndicator.hide();}};SOAPI.Widget=SOAPI.Class.extension();SOAPI.Widget.extend({wtype:"",ctypes:{},built:true,builtsubs:false,handlers:null,components:null,elementType:"div",parameters:{element:null,parent:document.body,id:null,"class":null,style:null,pieces:0,disabled:"false"},construct:function(parameters){this.components={};var result=this.setup(parameters);var p=result.p;var w=result.w;if(p.element==null)p.parent.appendChild(w);this.configure.apply(w);return w;},setup:function(parameters){var p=this.setupParameters(parameters);var w=this.createWidget(p,null,this.elementType);var c=w.components;var pieces={16:"top",32:"bottom",64:"left",128:"right",256:"topleft",512:"topright",1024:"bottomleft",2048:"bottomright"};for(var i in pieces){if(p.pieces&i){c[pieces[i]]=this.createComponent({element:p.element,parent:w,cType:pieces[i]});}}if(p.pieces&8){c.filler=this.createComponent({element:p.element,parent:w,cType:"filler",eType:"img"});}if(p.pieces&2){c.inner=this.createComponent({element:p.element,parent:w,cType:"inner"});if(p.pieces&4){var inner=w.components.inner;inner.components=c={};c.filler=this.createComponent({element:inner,parent:inner,widget:w,cType:"filler",eType:"img"});}}return{p:p,w:w};},configure:function(){},setupParameters:function(parameters){var p=SOAPI.merge(this.parameters,parameters);if(p.element!=null){for(var pName in p){if(pName!="element"&&pName!="parent"&&p.element.hasAttribute(pName)){p[pName]=p.element.getAttribute(pName);}}}p.disabled=(p.disabled!="false"&&p.disabled!=null)?true:null;p.usable=!p.disabled;return p;},createWidget:function(parameters,extras,type){var a={widget:this.wtype};for(var pName in extras)a[pName]=extras[pName];for(var pName in parameters){if(pName!="element"&&pName!="parent"){a[pName]=parameters[pName];}}var w=new SOAPI.Sprite(SOAPI.createElement({type:type,element:parameters.element,attributes:a,insert:false}),this.draggable);for(var member in this)w[member]=this[member];return w;},createComponent:function(parameters,makeSprite,draggable){var p={element:null,parent:null,widget:null,cType:null,eType:"div",extras:null,criteria:null,parameters:null,recurse:false};for(var pName in parameters){if(parameters[pName]!=null)p[pName]=parameters[pName];}p.eType=p.eType.toLowerCase();p.widget=p.widget||p.parent;var a={};var c={component:p.cType};for(var pName in p.extras)a[pName]=p.extras[pName];for(var pName in p.criteria)c[pName]=p.criteria[pName];var child=null;if(p.element!=null)child=SOAPI.findLastChildElement(p.element,"*",c,p.recurse);if(child!=null)a=SOAPI.getMatchingAttributes(child,a);a.component=p.cType;var component=SOAPI.createElement({type:p.eType,element:child,parent:p.parent,attributes:a});var parameters=p.parameters||{};parameters.element=component;parameters.parent=p.parent;if(this.ctypes[p.cType]!=null)component=new this.ctypes[p.cType](parameters);component.parentWidget=p.widget;if(makeSprite)component=new SOAPI.Sprite(component,draggable);SOAPI.applyBackgroundCSS(component);return component;},createComponents:function(parameters,makeSprite,draggable){var p={element:null,parent:null,widget:null,cType:null,eType:"div",extras:null,criteria:null,parameters:null,recurse:false};for(var pName in parameters){if(parameters[pName]!=null)p[pName]=parameters[pName];}p.eType=p.eType.toLowerCase();p.widget=p.widget||p.parent;var ctypes=this.ctypes;var children=null;var c={component:p.cType};for(var pName in p.criteria)c[pName]=p.criteria[pName];if(p.element!=null)children=SOAPI.findAllChildElements(p.element,"*",c,p.recurse);if(!children)return[];var items=[];var i=children.length;var j=0;while(i--){var a={id:null,"class":null,style:null};for(var pName in p.extras)a[pName]=p.extras[pName];var child=children[i];a=SOAPI.getMatchingAttributes(child,a);items[j]=SOAPI.createElement({type:p.eType,element:child,parent:p.parent,attributes:a});var cType=items[j].getAttribute("component");var parameters=p.parameters||{};parameters.element=items[j];if(ctypes[cType]!=null)items[j]=new ctypes[cType](parameters);items[j].parentWidget=p.widget;if(makeSprite)items[j]=new SOAPI.Sprite(items[j],draggable);SOAPI.applyBackgroundCSS(items[j++]);}return items;},allow:function(noBubble){if(!this.isDisabled)this.setAttribute("usable",true);if(!noBubble)this.allowChildren();},deny:function(noBubble){this.setAttribute("usable",false);if(!noBubble)this.denyChildren();},allowChildren:function(){var elements=this.getElementsByTagName("*");for(var i=0,e;(e=elements[i])!=null;i++){if(isWidget(e)&&e.allow)e.allow(true);}},findScrollableParent:function(){var node=this;var scrollableParent=null;while(scrollableParent==null){if(node.parentNode==null)break;node=node.parentNode;if(node.hasAttribute&&node.hasAttribute("widget")&&node.getAttribute("widget")=="scrollbox"){scrollableParent=node;}else  if(node.get&&(node.get('overflow-x')=="auto"||node.get('overflow-y')=="auto")){scrollableParent=node;}}return scrollableParent;},denyChildren:function(){var elements=this.getElementsByTagName("*");for(var i=0,e;(e=elements[i])!=null;i++){if(isWidget(e)&&e.deny)e.deny(true);}},isUsable:function(){return this.getAttribute("usable")!="false";},enable:function(){this.removeAttribute("disabled");this.allow();},disable:function(){this.setAttribute("disabled",true);this.deny();},onFocus:function(event){this.setAttribute("focused",true);return true;},onBlur:function(event){this.setAttribute("focused",false);return true;}});SOAPI.Transition={decimalPlaces:2,bounceDefault:[[0,0.2],[0.1,0.5],[0.4,1]],spolyDefault:2,polyDefault:[0,1],backDefault:[1,0.5],generate:function(transition_types,x0,x1){var total_steps=0;var number_of_transitions=transition_types.length;for(var i=0;i<number_of_transitions;i++){transition=transition_types[i];total_steps=total_steps+transition[2];}var array_of_values=new Array();var transition;var transition_type;var ease_type;var degree;var steps;var temp_array;var gap;var y0=x0;var diff=x1-x0;var y1;for(var i=0;i<number_of_transitions;i++){transition=transition_types[i];transition_type=transition[0];ease_type=transition[1];steps=transition[2];options=transition[3];gap=diff*(steps/total_steps);y1=y0+gap;array_of_values.pop();temp_array=this.transitionHandler(transition_type,ease_type,y0,y1,steps,options);array_of_values=array_of_values.concat(temp_array);y0=y1;}return array_of_values;},transitionHandler:function(transition_type,ease_type,x0,x1,steps,options){standard_values=this.standardTransition(steps,transition_type,options);if(ease_type=="In"){adjusted_values=this.shiftValues(standard_values,x0,x1);}else {adjusted_values=this.flipAndShiftValues(standard_values,x0,x1);}return adjusted_values;},standardTransition:function(steps,transition_type,options){var start_x=0;var final_x=1;if(transition_type=="Sin"){start_x=3*(Math.PI/2);final_x=2*Math.PI;}else  if(transition_type=="Bounce"){options=this.findBounceDetails(options);}else  if(transition_type=="Back"){options=this.findBackCoefficients(options);}else  if(transition_type=="SPoly"){options=this.findStandardPolynomial(options);}var gap=(final_x-start_x)/steps;var standard_values=new Array(steps+1);var x=start_x;for(var i=0;i<=steps;i++){standard_values[i]=this.standardTransitionHandler(x,transition_type,options);x=x+gap;}return standard_values;},standardTransitionHandler:function(x,transition_type,options){switch(transition_type){case"Sin":return this.sinTransition(x);case"Exp":return this.expTransition(x);case"SPoly":return this.polynomialTransition(x,options);case"Poly":return this.polynomialTransition(x,options);case"Circ":return this.circTransition(x);case"Back":return this.polynomialTransition(x,options);case"Bounce":return this.bounceTransition(x,options[1],options[0]);case"Linear":default:return x;}},findStandardPolynomial:function(degree){degree=(degree==undefined?this.spolyDefault:degree);var coefficients=new Array(degree+1);for(var i=0;i<=degree;i++){coefficients[i]=0;}coefficients[degree]=1;return coefficients;},polynomialTransition:function(x,options){var coefficients=(options==undefined?this.polyDefault:options);var polynomial_degree=coefficients.length-1;var expression_value=0;var x_power=1;for(var i=0;i<=polynomial_degree;i++){expression_value=expression_value+(coefficients[i]*x_power);x_power=x_power*x;}return expression_value;},sinTransition:function(x){return Math.sin(x)+1;},expTransition:function(x){return(Math.exp(x)-1)/(Math.exp(1)-1);},circTransition:function(x){return 1-Math.sqrt(1-Math.pow(x,2));},flipAndShiftValues:function(standard_values,x0,x1){var array_length=standard_values.length;var adjusted_values=new Array(array_length);var gap=x1-x0;var scale_factor=Math.pow(10,this.decimalPlaces);var flipped_value;var adjusted_value;var rounded_value;for(var i=0;i<array_length;i++){flipped_value=1-standard_values[array_length-i-1];adjusted_value=gap*flipped_value+x0;adjusted_values[i]=Math.round(adjusted_value*scale_factor)/scale_factor;}return adjusted_values;},shiftValues:function(standard_values,x0,x1){var array_length=standard_values.length;var adjusted_values=new Array(array_length);var gap=x1-x0;var scale_factor=Math.pow(10,this.decimalPlaces);var adjusted_value;var rounded_value;for(var i=0;i<array_length;i++){adjusted_value=gap*standard_values[i]+x0;adjusted_values[i]=Math.round(adjusted_value*scale_factor)/scale_factor;}return adjusted_values;},findBackCoefficients:function(options){options=(options==undefined?this.backDefault:options);var h=options[0];var p=options[1];var a=((1/3)*h-(1/2)*h*p+(1/6)*Math.pow(p,3))/((1/2)*Math.pow(p,2)+(1/2)*h-p*h);var c=1/((1/3)-(1/2)*(a+p)+a*p);var coefficients=new Array(0,c*a*p,(-1/2)*(a+p)*c,(1/3)*c);return coefficients;},findBounceDetails:function(options){if(options==undefined)options=this.bounceDefault;var bounce_heights=new Array(0);var x_points=new Array(0);for(var i=0;i<options.length;i++){details=options[i];x_points.push(details[0]);bounce_heights.push(details[1]);}x_points.push(1+(1-x_points[x_points.length-1]));return Array(x_points,bounce_heights);},bounceTransition:function(x,bounce_heights,x_points){current_index=0;while(((x_points[current_index]<=x)&&(x<x_points[current_index+1]))==false){current_index+=1;}return(x-x_points[current_index])*(x_points[current_index+1]-x)*((4*bounce_heights[current_index])/(Math.pow(x_points[current_index+1]-x_points[current_index],2)));}};SOAPI.Animator=SOAPI.Class.extension();SOAPI.Animator.extend({parentNode:null,id:null,animations:null,construct:function(sprite,id){if(isString(sprite))sprite=document.getElementById(sprite);this.parentNode=sprite;this.parentNode.animators[id]=this;this.id=id;this.animations=[];},addAnimation:function(aIndex,properties,settings,custom){var p={left:[],top:[],width:[],height:[],clipTop:[],clipRight:[],clipBottom:[],clipLeft:[],opacity:[]};var s={interval:[40],frameMin:null,frameMax:null,stepLimit:null,direction:1,repeat:true,relative:false,action:[]};var c={};for(var pName in properties)p[pName]=properties[pName];for(var pName in settings)s[pName]=settings[pName];if(isObject(custom))c=custom;for(var pName in p){if(!isObject(p[pName]))p[pName]=[p[pName]];}for(var pName in c){if(!isObject(c[pName]))c[pName]=[c[pName]];}if(!isObject(s.interval))s.interval=[s.interval];if(!isObject(s.action))s.action=[s.action];var animation={timer:null,frame:0,step:1,busy:false,updated:false,properties:p,settings:s,custom:c};this.animations[aIndex]=animation;},runAnimation:function(aIndex){var animation=this.animations[aIndex];var properties=animation.properties;var settings=animation.settings;var custom=animation.custom;animation.frame+=settings.direction;animation.step++;if((settings.frameMax!=null&&animation.frame>settings.frameMax)||(settings.frameMin!=null&&animation.frame<settings.frameMin)||(settings.stepLimit&&animation.step>settings.stepLimit)){return this.doActions(aIndex);}for(var pName in properties)properties[pName].jumpBy(settings.direction,settings.repeat);for(var pName in custom)custom[pName].jumpBy(settings.direction,settings.repeat);animation.updated=false;if(!this.Update(aIndex))return this.doActions(aIndex);function timer(animator,aIndex){return function(){animator.runAnimation(aIndex);};}animation.timer=setTimeout(timer(this,aIndex),settings.interval.jumpBy(settings.direction,settings.repeat));},doActions:function(aIndex){this.Pause(aIndex);for(var i=0,action;action=this.animations[aIndex].settings.action[i];i++){if(isFunction(action))action();if(isString(action))eval(action);if(isArray(action)){for(var key in action)eval(action[key]);}}},Play:function(aIndex){if(this.animations[aIndex].busy)return;this.animations[aIndex].busy=true;this.runAnimation(aIndex);},PlayAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Play(aIndex);},Stop:function(aIndex){this.Pause(aIndex);this.Reset(aIndex);},StopAll:function(){this.PauseAll();this.ResetAll();},Pause:function(aIndex){this.animations[aIndex].busy=false;clearTimeout(this.animations[aIndex].timer);},PauseAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Pause(aIndex);},Reset:function(aIndex){var animation=this.animations[aIndex];var properties=animation.properties;var settings=animation.settings;var custom=animation.custom;animation.frame=0;animation.step=1;for(var pName in properties)properties[pName].jumpTo(0);for(var pName in custom)custom[pName].jumpTo(0);settings.interval.jumpTo(0);},ResetAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Reset(aIndex);},Reverse:function(aIndex){this.animations[aIndex].settings.direction*=-1;},ReverseAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Reverse(aIndex);},JumpTo:function(aIndex,frame){var animation=this.animations[aIndex];var properties=animation.properties;var settings=animation.settings;var custom=animation.custom;animation.frame=frame;for(var pName in properties)properties[pName].jumpTo(frame,settings.repeat);for(var pName in custom)custom[pName].jumpTo(frame,settings.repeat);settings.interval.jumpTo(frame,settings.repeat);},JumpToAll:function(frame){var aIndex=this.animations.length;while(aIndex--)this.JumpTo(aIndex,frame);},JumpBy:function(aIndex,frames){var animation=this.animations[aIndex];var properties=animation.properties;var settings=animation.settings;var custom=animation.custom;animation.frame+=frames;for(var pName in properties)properties[pName].jumpBy(frames,settings.repeat);for(var pName in custom)custom[pName].jumpBy(frames,settings.repeat);settings.interval.jumpBy(frames,settings.repeat);},JumpByAll:function(frames){var aIndex=this.animations.length;while(aIndex--)this.JumpBy(aIndex,frames);},Update:function(aIndex){var animation=this.animations[aIndex];var properties=animation.properties;var settings=animation.settings;var custom=animation.custom;var p={};var values=0;var method=(settings.relative)?"By":"To";if(settings.relative&&animation.updated)return;for(var pName in properties){p[pName]=properties[pName].current();if(p[pName]!=null)values++;}if(p.clipTop!=null||p.clipRight!=null||p.clipBottom!=null||p.clipLeft!=null){this.parentNode["clip"+method](p.clipTop,p.clipRight,p.clipBottom,p.clipLeft);}if(p.width!=null||p.height!=null)this.parentNode["size"+method](p.width,p.height);if(p.left!=null||p.top!=null)this.parentNode["move"+method](p.left,p.top);if(p.opacity!=null)this.parentNode["blend"+method](p.opacity);for(var pName in custom){var value=custom[pName].current();if(value==null)continue;values++;this.parentNode["style"+method](pName,value);}animation.updated=true;return values;},UpdateAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Update(aIndex);},Clear:function(aIndex){this.Stop(aIndex);this.animations[aIndex]=null;},ClearAll:function(){var aIndex=this.animations.length;while(aIndex--)this.Clear(aIndex);}});SOAPI.widgets.panel=function(p){new SOAPI.Panel(p);};SOAPI.Panel=SOAPI.Widget.extension();SOAPI.Panel.extend({wtype:"panel",setup:function(parameters){var result=this.callParent(arguments.callee,"setup",arguments);var p=result.p;var w=result.w;var c=w.components;w._write=SOAPI.Sprite.prototype.write;if(p.pieces&1){c.content=this.createComponent({element:p.element,parent:w,cType:"content"},true);}return result;},configure:function(){if(this.hasAttribute("text"))this.write(this.getAttribute("text"),true,"afterbegin");this.removeAttribute("text");},write:function(html,append,position){if(this.components.content){this.components.content.write(html,append,position);}else {this._write(html,append,position);}}});SOAPI.Events.action=["onAction"];SOAPI.Events.onAction=function(event){return true};SOAPI.widgets.button=function(p){new SOAPI.Button(p);};SOAPI.Button=SOAPI.Panel.extension();SOAPI.Button.extend({wtype:"button",parameters:SOAPI.merge(SOAPI.Panel.prototype.parameters,{tabindex:0,action:""}),setup:function(parameters){var result=this.callParent(arguments.callee,"setup",arguments);var p=result.p;var w=result.w;var c=w.components;var handlers=SOAPI.Button_Handlers;w.setAttribute("tabindex",p.tabindex);w.setAttribute("state","default");SOAPI.Event.addEventHandler(w,"mousedown",handlers.onMouseDown,"Button");SOAPI.Event.addEventHandler(w,"mouseup",handlers.onMouseUp,"Button");SOAPI.Event.addEventHandler(w,"mouseup",handlers.onMouseUpAction,"Action");SOAPI.Event.addEventHandler(w,"mouseover",handlers.onMouseOver,"Button");SOAPI.Event.addEventHandler(w,"mouseout",handlers.onMouseOut,"Button");SOAPI.Event.addEventHandler(w,"action");SOAPI.Event.addEventHandler(w,"focus",w.onFocus,"Widget");SOAPI.Event.addEventHandler(w,"blur",w.onBlur,"Widget");if(w.hasAttribute("onaction")){eval("var func = function(event) {"+w.getAttribute("onaction")+"}");SOAPI.Event.addEventHandler(w,"action",func,"Attribute");w.removeAttribute("onaction");}if(p.pieces&4096){var icon=c.icon=this.createComponent({element:p.element,parent:w,cType:"icon"});}return result;}});SOAPI.Button_Handlers={onMouseOver:function(event){this.setAttribute("state","over");event.stopPropagation();return true;},onMouseOut:function(event){this.setAttribute("state","default");event.stopPropagation();return true;},onMouseDown:function(event){this.setAttribute("state","down");event.stopPropagation();return true;},onMouseUp:function(event){this.setAttribute("state","over");event.stopPropagation();return true;},onMouseUpAction:function(event){SOAPI.Event.triggerEvent("action",this);return true;}};SOAPI.Events.minimize=["onMinimize"];SOAPI.Events.maximize=["onMaximize"];SOAPI.Events.restore=["onRestore"];SOAPI.Events.close=["onClose"];SOAPI.Events.onMinimize=function(event){return true};SOAPI.Events.onMaximize=function(event){return true};SOAPI.Events.onRestore=function(event){return true};SOAPI.Events.onClose=function(event){return true};SOAPI.widgets.window=function(p){new SOAPI.Window(p);};SOAPI.Window=SOAPI.Panel.extension();SOAPI.Window.extend({wtype:"window",ctypes:{titlebar:SOAPI.Panel,task:SOAPI.Button,minimize:SOAPI.Button,maximize:SOAPI.Button,close:SOAPI.Button},draggable:true,parameters:SOAPI.merge(SOAPI.Panel.prototype.parameters,{tabindex:0,resizeable:"false",taskbar:"true"}),setup:function(parameters){var result=this.callParent(arguments.callee,"setup",arguments);var p=result.p;var w=result.w;var c=w.components;var handlers=SOAPI.Window_Handlers;w.setAttribute("resizeable",p.resizeable!="false");w.setAttribute("taskbar",p.taskbar!="false");w.setAttribute("state","default");w.dragger.enabled=p.resizeable!="false";w.dragger.removePartner(w);SOAPI.Event.addEventHandler(w,"mousedown");SOAPI.Event.addEventHandler(w,"mouseup");SOAPI.Event.addEventHandler(w,"focus",w.onFocus,"Widget");SOAPI.Event.addEventHandler(w,"focus",handlers.onFocus,"Window");SOAPI.Event.addEventHandler(w,"blur",w.onBlur,"Widget");SOAPI.Event.addEventHandler(w,"blur",handlers.onBlur,"Window");SOAPI.Event.addEventHandler(w,"drag");SOAPI.Event.addEventHandler(w,"dragstart",handlers.onDragStart,"Window");SOAPI.Event.addEventHandler(w,"dragend",handlers.onDragEnd,"Window");SOAPI.Event.addEventHandler(w,"minimize",handlers.onMinimize,"Window");SOAPI.Event.addEventHandler(w,"maximize",handlers.onMaximize,"Window");SOAPI.Event.addEventHandler(w,"restore",handlers.onRestore,"Window");SOAPI.Event.addEventHandler(w,"close",handlers.onClose,"Window");var content=c.content=this.createComponent({element:p.element,parent:w,cType:"content"},true);SOAPI.Event.addEventHandler(content,"mousedown",handlers.content.onMouseDown,"Window");SOAPI.Event.addEventHandler(content,"mouseup",handlers.content.onMouseUp,"Window");var titlebar=c.titlebar=this.createComponent({element:p.element,parent:w,cType:"titlebar"},true,true);titlebar.dragger.enabled=true;titlebar.dragger.removePartner(titlebar);titlebar.dragger.addPartner(w,{left:1},{top:1});SOAPI.Event.addEventHandler(titlebar,"mousedown");SOAPI.Event.addEventHandler(titlebar,"mouseup");SOAPI.Event.addEventHandler(titlebar,"drag");SOAPI.Event.addEventHandler(titlebar,"dragstart",handlers.titlebar.onDragStart,"Window");SOAPI.Event.addEventHandler(titlebar,"dragend",handlers.titlebar.onDragEnd,"Window");if(w.getAttribute("taskbar")!="false"){var task=c.task=this.createComponent({element:p.element,parent:w,cType:"task",extras:{"class":w.className}});SOAPI.Event.addEventHandler(task,"mouseup",handlers.task.onMouseUp,"Window",["before Action"]);SOAPI.Event.addEventHandler(task,"mousedown",handlers.task.onMouseDown,"Window");SOAPI.Event.addEventHandler(task,"focus",handlers.task.onFocus,"Window",["before onFocus"]);}var minimize=c.minimize=this.createComponent({element:p.element,parent:w,cType:"minimize"});SOAPI.Event.addEventHandler(minimize,"mouseup",handlers.minimize.onMouseUp,"Window",["before Action"]);var maximize=c.maximize=this.createComponent({element:p.element,parent:w,cType:"maximize"});SOAPI.Event.addEventHandler(maximize,"mouseup",handlers.maximize.onMouseUp,"Window",["before Action"]);var close=c.close=this.createComponent({element:p.element,parent:w,cType:"close"});SOAPI.Event.addEventHandler(close,"mouseup",handlers.close.onMouseUp,"Window",["before Action"]);var animator=new SOAPI.Animator(w,"fade");var opacity=0;var opacities=[];for(var i=0;i<=5;i++){opacities[i]=opacity+(i*(100-opacity)/5);}animator.addAnimation(1,{opacity:opacities},{interval:0,direction:-1,repeat:false,relative:false});if(p.pieces&4096){var icon=c.icon=this.createComponent({element:p.element,parent:w,cType:"icon"});}if(p.pieces&8192){var gripper=c.gripper=this.createComponent({element:p.element,parent:w,cType:"gripper"});}return result;},configure:function(){var c=this.components;if(this.hasAttribute("text"))c.titlebar.write(this.getAttribute("text"),true);if(this.hasAttribute("text"))c.task.write(this.getAttribute("text"),true);if(this.getAttribute("taskbar")!="false"){var desktop=SOAPI.findParentWidget(this,"desktop");if(desktop)desktop.components.taskbar.components.content.appendChild(c.task);if(desktop)desktop.recalculateWorkspace();}function show(object){return function(){object.show();try{object.parentWidget.focus();}catch(err){}}}var animator=this.animators.fade;animator.animations[1].settings.action=[show(c.content)];c.content.hide();animator.Reverse(1);animator.Play(1);},minimize:function(){SOAPI.Event.triggerEvent("minimize",this);},maximize:function(){SOAPI.Event.triggerEvent("maximize",this);},restore:function(){SOAPI.Event.triggerEvent("restore",this);},close:function(){SOAPI.Event.triggerEvent("close",this);}});SOAPI.Window_Handlers={onFocus:function(event){var current=SOAPI.findLastChildElement(this.parentNode,"div",{widget:"window"});if(current!==this){SOAPI.Event.triggerEvent("noderemovedfromdocument",this,{event:{relatedTarget:this}},false,true);this.parentNode.insertAfter(this,current);SOAPI.Event.triggerEvent("nodeinsertedintodocument",this,{event:{relatedTarget:this}},false,true);}if(this.components.task)this.components.task.setAttribute("focused",true);return true;},onBlur:function(event){if(this.components.task)this.components.task.setAttribute("focused",false);return true;},onDragStart:function(event){var multiplyX={width:1};var multiplyY={height:1};if(SOAPI.Event.offsetX<this.get("width")/2){multiplyX.left=1;multiplyX.width=-1;}if(SOAPI.Event.offsetY<this.get("height")/2){multiplyY.top=1;multiplyY.height=-1;}this.dragger.addPartner(this,multiplyX,multiplyY,true);this.dragger.addRestriction("width",{min:this.get("minWidth")});this.dragger.addRestriction("height",{min:this.get("minHeight")});this.dragger.restrict=true;return true;},onDragEnd:function(event){this.dragger.removePartner(this);this.dragger.removeRestriction("width");this.dragger.removeRestriction("height");return true;},onMinimize:function(event){this.hide();this.blur();return true;},onMaximize:function(event){this.setAttribute("state","maximized");this.dragger.enabled=false;this.components.titlebar.dragger.enabled=false;SOAPI.Event.triggerEvent("sizechange",this,null,false,true);return true;},onRestore:function(event){if(!this.isVisible()){this.show();}else {this.setAttribute("state","default");this.dragger.enabled=this.getAttribute("resizeable")!="false";this.components.titlebar.dragger.enabled=true;SOAPI.Event.triggerEvent("sizechange",this,null,false,true);}this.focus();return true;},onClose:function(event){if(!this.closing){this.closing=true;function close(object){return function(){object.close();}}var animator=this.animators.fade;animator.animations[1].settings.action=[close(this)];this.components.content.hide();animator.Reverse(1);animator.Play(1);return true;}var desktop=SOAPI.findParentWidget(this,"desktop");this.hide();if(this.components.task)this.components.task.parentNode.removeChild(this.components.task);this.parentNode.removeChild(this);if(desktop)desktop.recalculateWorkspace();return true;},titlebar:{onDragStart:function(event){this.parentWidget.components.content.hide();return true;},onDragEnd:function(event){this.parentWidget.components.content.show();return true;}},content:{onMouseDown:function(event){event.stopPropagation();return true;},onMouseUp:function(event){event.stopPropagation();return true;}},task:{onMouseUp:function(event){if(!this.parentWidget.isVisible()){SOAPI.Event.triggerEvent("restore",this.parentWidget);}else  if(this.parentWidget.getAttribute("focused")=="true"){SOAPI.Event.triggerEvent("minimize",this.parentWidget);}else {this.parentWidget.focus();}return true;},onMouseDown:function(event){event.stopPropagation();event.preventDefault();return false;},onFocus:function(event){event.stopPropagation();event.preventDefault();return false;}},minimize:{onMouseUp:function(event){SOAPI.Event.triggerEvent("mouseout",this);SOAPI.Event.triggerEvent("minimize",this.parentWidget);return true;}},maximize:{onMouseUp:function(event){var w=this.parentWidget;SOAPI.Event.triggerEvent("mouseout",this);SOAPI.Event.triggerEvent((w.getAttribute("state")=="maximized")?"restore":"maximize",w);return true;}},close:{onMouseUp:function(event){SOAPI.Event.triggerEvent("mouseout",this);SOAPI.Event.triggerEvent("close",this.parentWidget);return true;}}};SOAPI.Events.contentupdate=["onContentupdate"];SOAPI.Events.onContentupdate=function(event){return true};SOAPI.setupActions.push(function(){SOAPI.DialogLayer=SOAPI.createElement({parent:document.body});});SOAPI.widgets.dialog=function(p){new SOAPI.Dialog(p);};SOAPI.Dialog=SOAPI.Widget.extension();SOAPI.Dialog.extend({wtype:"dialog",ctypes:{window:SOAPI.Window},action:null,parameters:SOAPI.merge(SOAPI.Widget.prototype.parameters,{resizeable:"false"}),setup:function(parameters){var result=this.callParent(arguments.callee,"setup",arguments);var p=result.p;var w=result.w;var c=w.components;var handlers=SOAPI.Dialog_Handlers;var window=c.window=this.createComponent({element:p.element,parent:w,cType:"window",extras:{taskbar:"false"}});window.draggable=false;SOAPI.Event.removeEventHandler(window,"blur","Widget");SOAPI.Event.removeEventHandler(window.components.close,"mouseup","Window");SOAPI.Event.addEventHandler(window.components.close,"mouseup",handlers.close.onMouseUp,"Dialog",["before Action"]);SOAPI.Event.addEventHandler(window.components.content,"contentupdate",[w,handlers.window.onContentupdate],"Window");return result;},configure:function(){if(this.hasAttribute("text"))this.components.window.components.titlebar.write(this.getAttribute("text"),true);this.hide();},activate:function(action){this.action=action;if(this.parentNode!==SOAPI.DialogLayer)SOAPI.DialogLayer.appendChild(this);this.resizePositionAndShow();},deactivate:function(value){if(this.action&&isFunction(this.action))this.action(value);if(this.action&&!isFunction(this.action))eval(this.action);this.action=null;this.hide();},resizePositionAndShow:function(){var window=this.components.window;this.show();this.moveTo(0,0);if(window.components.content.children[0]!=undefined){var width=window.components.content.children[0].get('actualwidth');var height=window.components.content.children[0].get('actualheight');window.sizeTo(width,height);}window.styleTo("left",(document.getClientWidth()-window.get("actualwidth"))/2);window.styleTo("top",(document.getClientHeight()-window.get("actualheight"))/2);window.focus();}});SOAPI.Dialog_Handlers={close:{onMouseUp:function(event){SOAPI.Event.triggerEvent("mouseout",this);this.parentWidget.parentWidget.deactivate("close");return true;}},window:{onContentupdate:function(event){this.resizePositionAndShow();return true;}}};SOAPI.widgets.lightbox=function(p){new SOAPI.LightBox(p);};SOAPI.LightBox=SOAPI.Widget.extension();SOAPI.LightBox.extend({wtype:"lightbox",ctypes:{dialog:SOAPI.Dialog},galleryElements:[],currentElement:0,allowPreview:true,widget:null,parameters:SOAPI.merge(SOAPI.Panel.prototype.parameters,{tabindex:0}),setup:function(parameters){var result=this.callParent(arguments.callee,"setup",arguments);var p=result.p;var w=result.w;var c=w.components;var handlers=SOAPI.LightBox_Handlers;var dialog=c.dialog=this.createComponent({element:p.element,parent:w,cType:"dialog",extras:{taskbar:"false"}});this.widget=w;if(w.hasAttribute("galleryElements")){var galleryElements=$C(w.getAttribute("galleryElements"));var ln=galleryElements.length;while(ln--){SOAPI.Event.addEventHandler(galleryElements[ln],"mousedown",[this,handlers.galleryElement.mousedown],'lightbox');galleryElements[ln].directlink=btoa(galleryElements[ln].getAttribute("lightboxlink"));this.galleryElements.push(galleryElements[ln]);}var animator=new SOAPI.Animator(c.dialog.components.window,"resize");var title=c.title=this.createComponent({parent:c.dialog.components.window,cType:'title'});var description=c.description=this.createComponent({parent:c.dialog.components.window,cType:'description'});var directlink=c.directlink=this.createComponent({parent:c.dialog.components.window,cType:'directlink'});if(this.galleryElements.length>1){var forward=c.forward=this.createComponent({parent:c.dialog.components.window,cType:'forward'});var back=c.back=this.createComponent({parent:c.dialog.components.window,cType:'back'});forward.hide();back.hide();SOAPI.Event.addEventHandler(forward,"mousedown",[this,handlers.directionButtons.mousedown],'lightbox');SOAPI.Event.addEventHandler(back,"mousedown",[this,handlers.directionButtons.mousedown],'lightbox');SOAPI.Event.addEventHandler(c.dialog.components.window,"mouseover",[this,handlers.directionButtons.mouseover],'lightbox');SOAPI.Event.addEventHandler(c.dialog.components.window,"mouseout",[this,handlers.directionButtons.mouseout],'lightbox');}SOAPI.Event.addEventHandler(directlink,"mousedown",[this,handlers.directlink.mousedown],'lightbox');if(dialog.components.window.components.icon)dialog.components.window.components.icon.hide();if(w.hasAttribute("isDraggroup")&&w.getAttribute("isDraggroup")=="true"){this.allowPreview=false;SOAPI.Event.addEventHandler(w,"keydown",[this,handlers.lightbox.keydown],'lightbox');SOAPI.Event.addEventHandler(w,"keyup",[this,handlers.lightbox.keyup],'lightbox');SOAPI.Event.addEventHandler(w,"blur",[this,handlers.lightbox.blur],'lightbox');}this.checkHash();}return result;},checkHash:function(){var ln=this.galleryElements.length;var hash=window.location.hash;var obj=this;function show(){while(ln--){if(hash=="#"+obj.galleryElements[ln].directlink){obj.currentElement=ln;obj.displayImage();}}}setTimeout(show,1000);},displayImage:function(){if(this.galleryElements[this.currentElement].hasAttribute('lightboxlink')){if(!this.components.dialog.isVisible())this.components.dialog.activate();var windowComponent=this.components.dialog.components.window;var content=this.components.dialog.components.window.components.content;var animator=windowComponent.animators.resize;var inner=this.components.dialog.components.inner;var title=this.components.title;var description=this.components.description;title.write(this.galleryElements[this.currentElement].getAttribute('title'));description.write(this.galleryElements[this.currentElement].getAttribute('description'));title.hide();description.hide();content.innerHTML='';inner.styleTo("bottom",0-window.pageYOffset);var left=windowComponent.get('actualleft');var top=windowComponent.get('actualtop');var width=windowComponent.get('actualwidth');var height=windowComponent.get('actualheight');var image=new Image();image.src=this.galleryElements[this.currentElement].getAttribute('lightboxlink');image.onload=function(){content.appendChild(this);this.styleTo('opacity',0);var toWidth=this.get('clientwidth')>document.getClientWidth()?document.getClientWidth()-20:this.get('clientwidth');var toHeight=this.get('clientheight')>document.getClientHeight()?document.getClientHeight()-20:this.get('clientheight');var toLeft=((document.getClientWidth()-toWidth)/2)+window.pageXOffset;var toTop=((document.getClientHeight()-toHeight)/2)+window.pageYOffset;if(this.get('clientheight')>document.getClientHeight()){content.style.overflowY="auto";}else {content.style.overflowX="hidden";}animator.addAnimation(1,{left:SOAPI.Transition.generate([new Array('Sin','In',20),new Array('Sin','Out',15)],left,toLeft),top:SOAPI.Transition.generate([new Array('Sin','In',20),new Array('Sin','Out',15)],top,toTop),width:SOAPI.Transition.generate([new Array('Sin','In',20),new Array('Sin','Out',15)],width,toWidth),height:SOAPI.Transition.generate([new Array('Sin','In',20),new Array('Sin','Out',15)],height,toHeight)},{interval:5,repeat:false,relative:false,direction:1,action:[function(event){image.styleTo('opacity',1);title.show();description.show();}]});animator.Play(1);return true;};}}});SOAPI.LightBox_Handlers={lightbox:{keydown:function(event){event.stopPropagation();event.preventDefault();var keyCode=event.event.keyCode;if(keyCode==224||keyCode==17){this.allowPreview=true;}return true;},keyup:function(event){this.allowPreview=false;return true;},blur:function(event){this.allowPreview=false;return true;}},galleryElement:{mousedown:function(event){this.widget.focus();if(this.allowPreview){this.currentElement=this.galleryElements.indexOf(event.element);this.displayImage();}return true;}},directionButtons:{mousedown:function(event){if(event.element.getAttribute('component')=='forward')this.currentElement--;else this.currentElement++;if(this.currentElement==this.galleryElements.length)this.currentElement=0;if(this.currentElement==-1)this.currentElement=(this.galleryElements.length-1);this.displayImage();return true;},mouseover:function(event){this.components.back.show();this.components.forward.show();return true;},mouseout:function(event){this.components.back.hide();this.components.forward.hide();return true;}},directlink:{mousedown:function(event){window.location.hash=this.galleryElements[this.currentElement].directlink;return true;}}};
