source: extensions/see_photos_by_user/js/jquery.tagcanvas.min.js @ 31711

Last change on this file since 31711 was 30403, checked in by ddtddt, 10 years ago
File size: 35.9 KB
Line 
1/**
2 * Copyright (C) 2010-2014 Graham Breach
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17/**
18 * jQuery.tagcanvas 2.5.1
19 * For more information, please contact <graham@goat1000.com>
20 */
21(function(ak){var K,I,J=Math.abs,ad=Math.sin,v=Math.cos,q=Math.max,ay=Math.min,al=Math.ceil,C=Math.sqrt,an=Math.pow,f={},h={},k={0:"0,",1:"17,",2:"34,",3:"51,",4:"68,",5:"85,",6:"102,",7:"119,",8:"136,",9:"153,",a:"170,",A:"170,",b:"187,",B:"187,",c:"204,",C:"204,",d:"221,",D:"221,",e:"238,",E:"238,",f:"255,",F:"255,"},w,b,O,aA,F,aB,B=document,n,a={};for(K=0;K<256;++K){I=K.toString(16);if(K<16){I="0"+I}h[I]=h[I.toUpperCase()]=K.toString()+","}function ae(i){return typeof i!="undefined"}function G(i){return typeof i=="object"&&i!=null}function ap(i,j,aC){return isNaN(i)?aC:ay(aC,q(j,i))}function av(){return false}function E(){return new Date().valueOf()}function z(aC,aF){var j=[],aD=aC.length,aE;for(aE=0;aE<aD;++aE){j.push(aC[aE])}j.sort(aF);return j}function aj(j){var aD=j.length-1,aC,aE;while(aD){aE=~~(Math.random()*aD);aC=j[aD];j[aD]=j[aE];j[aE]=aC;--aD}}function aa(i,aC,j){this.x=i;this.y=aC;this.z=j}F=aa.prototype;F.length=function(){return C(this.x*this.x+this.y*this.y+this.z*this.z)};F.dot=function(i){return this.x*i.x+this.y*i.y+this.z*i.z};F.cross=function(j){var i=this.y*j.z-this.z*j.y,aD=this.z*j.x-this.x*j.z,aC=this.x*j.y-this.y*j.x;return new aa(i,aD,aC)};F.angle=function(j){var i=this.dot(j),aC;if(i==0){return Math.PI/2}aC=i/(this.length()*j.length());if(aC>=1){return 0}if(aC<=-1){return Math.PI}return Math.acos(aC)};F.unit=function(){var i=this.length();return new aa(this.x/i,this.y/i,this.z/i)};function af(aC,j){j=j*Math.PI/180;aC=aC*Math.PI/180;var i=ad(aC)*v(j),aE=-ad(j),aD=-v(aC)*v(j);return new aa(i,aE,aD)}function P(i){this[1]={1:i[0],2:i[1],3:i[2]};this[2]={1:i[3],2:i[4],3:i[5]};this[3]={1:i[6],2:i[7],3:i[8]}}aA=P.prototype;P.Identity=function(){return new P([1,0,0,0,1,0,0,0,1])};P.Rotation=function(aD,i){var j=ad(aD),aC=v(aD),aE=1-aC;return new P([aC+an(i.x,2)*aE,i.x*i.y*aE-i.z*j,i.x*i.z*aE+i.y*j,i.y*i.x*aE+i.z*j,aC+an(i.y,2)*aE,i.y*i.z*aE-i.x*j,i.z*i.x*aE-i.y*j,i.z*i.y*aE+i.x*j,aC+an(i.z,2)*aE])};aA.mul=function(aC){var aD=[],aG,aF,aE=(aC.xform?1:0);for(aG=1;aG<=3;++aG){for(aF=1;aF<=3;++aF){if(aE){aD.push(this[aG][1]*aC[1][aF]+this[aG][2]*aC[2][aF]+this[aG][3]*aC[3][aF])}else{aD.push(this[aG][aF]*aC)}}}return new P(aD)};aA.xform=function(aC){var j={},i=aC.x,aE=aC.y,aD=aC.z;j.x=i*this[1][1]+aE*this[2][1]+aD*this[3][1];j.y=i*this[1][2]+aE*this[2][2]+aD*this[3][2];j.z=i*this[1][3]+aE*this[2][3]+aD*this[3][3];return j};function o(aD,aF,aK,aH){var aG,aJ,j,aI,aL=[],aE=Math.PI*(3-C(5)),aC=2/aD;for(aG=0;aG<aD;++aG){aJ=aG*aC-1+(aC/2);j=C(1-aJ*aJ);aI=aG*aE;aL.push([v(aI)*j*aF,aJ*aK,ad(aI)*j*aH])}return aL}function U(aE,aC,aH,aN,aL){var aM,aO=[],aF=Math.PI*(3-C(5)),aD=2/aE,aK,aJ,aI,aG;for(aK=0;aK<aE;++aK){aJ=aK*aD-1+(aD/2);aM=aK*aF;aI=v(aM);aG=ad(aM);aO.push(aC?[aJ*aH,aI*aN,aG*aL]:[aI*aH,aJ*aN,aG*aL])}return aO}function L(aC,aD,aG,aM,aK,aI){var aL,aN=[],aE=Math.PI*2/aD,aJ,aH,aF;for(aJ=0;aJ<aD;++aJ){aL=aJ*aE;aH=v(aL);aF=ad(aL);aN.push(aC?[aI*aG,aH*aM,aF*aK]:[aH*aG,aI*aM,aF*aK])}return aN}function ai(aD,i,j,aC){return U(aD,0,i,j,aC)}function ao(aD,i,j,aC){return U(aD,1,i,j,aC)}function c(aE,i,j,aC,aD){aD=isNaN(aD)?0:aD*1;return L(0,aE,i,j,aC,aD)}function l(aE,i,j,aC,aD){aD=isNaN(aD)?0:aD*1;return L(1,aE,i,j,aC,aD)}function S(aF,i){var aE=aF,aD,aC,j=(i*1).toPrecision(3)+")";if(aF[0]==="#"){if(!f[aF]){if(aF.length===4){f[aF]="rgba("+k[aF[1]]+k[aF[2]]+k[aF[3]]}else{f[aF]="rgba("+h[aF.substr(1,2)]+h[aF.substr(3,2)]+h[aF.substr(5,2)]}}aE=f[aF]+j}else{if(aF.substr(0,4)==="rgb("||aF.substr(0,4)==="hsl("){aE=(aF.replace("(","a(").replace(")",","+j))}else{if(aF.substr(0,5)==="rgba("||aF.substr(0,5)==="hsla("){aD=aF.lastIndexOf(",")+1,aC=aF.indexOf(")");i*=parseFloat(aF.substring(aD,aC));aE=aF.substr(0,aD)+i.toPrecision(3)+")"}}}return aE}function N(i,j){if(window.G_vmlCanvasManager){return null}var aC=B.createElement("canvas");aC.width=i;aC.height=j;return aC}function ah(){var j=N(3,3),aD,aC;if(!j){return false}aD=j.getContext("2d");aD.strokeStyle="#000";aD.shadowColor="#fff";aD.shadowBlur=3;aD.globalAlpha=0;aD.strokeRect(2,2,2,2);aD.globalAlpha=1;aC=aD.getImageData(2,2,1,1);j=null;return(aC.data[0]>0)}function ag(aG,j,aF,aE){var aD=aG.createLinearGradient(0,0,j,0),aC;for(aC in aE){aD.addColorStop(1-aC,aE[aC])}aG.fillStyle=aD;aG.fillRect(0,aF,j,1)}function g(aE,aC,j){var aD=1024,aI=1,aH=aE.weightGradient,aG,aK,aF,aJ;if(aE.gCanvas){aK=aE.gCanvas.getContext("2d");aI=aE.gCanvas.height}else{if(G(aH[0])){aI=aH.length}else{aH=[aH]}aE.gCanvas=aG=N(aD,aI);if(!aG){return null}aK=aG.getContext("2d");for(aF=0;aF<aI;++aF){ag(aK,aD,aF,aH[aF])}}j=q(ay(j||0,aI-1),0);aJ=aK.getImageData(~~((aD-1)*aC),j,1,1).data;return"rgba("+aJ[0]+","+aJ[1]+","+aJ[2]+","+(aJ[3]/255)+")"}function V(aL,aE,j,aN,aF,aK,aG,aD,aJ,aM){var aI=aF+(aG||0)+(aD.length&&aD[0]<0?J(aD[0]):0),aC=aF+(aG||0)+(aD.length&&aD[1]<0?J(aD[1]):0),aH,aO;aL.font=aE;aL.textBaseline="top";aL.fillStyle=j;aK&&(aL.shadowColor=aK);aG&&(aL.shadowBlur=aG);aD.length&&(aL.shadowOffsetX=aD[0],aL.shadowOffsetY=aD[1]);for(aH=0;aH<aN.length;++aH){aO=aM?(aJ-aM[aH])/2:0;aL.fillText(aN[aH],aI+aO,aC);aC+=parseInt(aE)}}function am(aG,i,aF,j,aD,aE,aC){if(aE){aG.beginPath();aG.moveTo(i,aF+aD-aE);aG.arcTo(i,aF,i+aE,aF,aE);aG.arcTo(i+j,aF,i+j,aF+aE,aE);aG.arcTo(i+j,aF+aD,i+j-aE,aF+aD,aE);aG.arcTo(i,aF+aD,i,aF+aD-aE,aE);aG.closePath();aG[aC?"stroke":"fill"]()}else{aG[aC?"strokeRect":"fillRect"](i,aF,j,aD)}}function t(aG,aO,aI,aT,aJ,aQ,aH,aR,aP,aN,i,aL,aF,aM,aV){var aD=aI+J(i[0])+2*(aN+aL)+aR,aK=aT+J(i[1])+2*(aN+aL)+aR,aE,aW,aU,aS,aC,j;aE=N(aD,aK);if(!aE){return null}aU=aC=aR/2;aS=aD-aR;j=aK-aR;aL+=aU;aW=aE.getContext("2d");if(aQ){aW.fillStyle=aQ;am(aW,aU,aC,aS,j,aF)}if(aR){aW.strokeStyle=aH;aW.lineWidth=aR;am(aW,aU,aC,aS,j,aF,true)}V(aW,aO,aJ,aG,aL,aP,aN,i,aM,aV);return aE}function u(aD,j,aE){var aC=N(j,aE),aF;if(!aC){return null}aF=aC.getContext("2d");aF.drawImage(aD,(j-aD.width)/2,(aE-aD.height)/2);return aC}function ar(aD,j,aE){var aC=N(j,aE),aF;if(!aC){return null}aF=aC.getContext("2d");aF.drawImage(aD,0,0,j,aE);return aC}function ax(aO,aJ,aP,aT,aK,aI,aH,aM,aF,aG){var aD=aJ+((2*aM)+aI)*aT,aL=aP+((2*aM)+aI)*aT,aE=N(aD,aL),aS,aR,aC,aQ,j,aU,aN;if(!aE){return null}aI*=aT;aF*=aT;aR=aC=aI/2;aQ=aD-aI;j=aL-aI;aM=(aM*aT)+aR;aS=aE.getContext("2d");if(aK){aS.fillStyle=aK;am(aS,aR,aC,aQ,j,aF)}if(aI){aS.strokeStyle=aH;aS.lineWidth=aI;am(aS,aR,aC,aQ,j,aF,true)}if(aG){aU=N(aD,aL);aN=aU.getContext("2d");aN.drawImage(aO,aM,aM,aJ,aP);aN.globalCompositeOperation="source-in";aN.fillStyle=aH;aN.fillRect(0,0,aD,aL);aN.globalCompositeOperation="destination-over";aN.drawImage(aE,0,0);aN.globalCompositeOperation="source-over";aS.drawImage(aU,0,0)}else{aS.drawImage(aO,aM,aM,aO.width,aO.height)}return{image:aE,width:aD/aT,height:aL/aT}}function X(aI,aO,aK,aE,aM,aN,aD){var aP=J(aD[0]),aJ=J(aD[1]),aF=aO+(aP>aN?aP+aN:aN*2)*aE,j=aK+(aJ>aN?aJ+aN:aN*2)*aE,aH=aE*((aN||0)+(aD[0]<0?aP:0)),aC=aE*((aN||0)+(aD[1]<0?aJ:0)),aG,aL;aG=N(aF,j);if(!aG){return null}aL=aG.getContext("2d");aM&&(aL.shadowColor=aM);aN&&(aL.shadowBlur=aN*aE);aD&&(aL.shadowOffsetX=aD[0]*aE,aL.shadowOffsetY=aD[1]*aE);aL.drawImage(aI,aH,aC,aO,aK);return{image:aG,width:aF/aE,height:j/aE}}function r(aO,aG,aM){var aN=parseInt(aO.toString().length*aM),aF=parseInt(aM*2*aO.length),aD=N(aN,aF),aJ,j,aE,aI,aL,aK,aC,aH;if(!aD){return null}aJ=aD.getContext("2d");aJ.fillStyle="#000";aJ.fillRect(0,0,aN,aF);V(aJ,aM+"px "+aG,"#fff",aO,0,0,0,[]);j=aJ.getImageData(0,0,aN,aF);aE=j.width;aI=j.height;aH={min:{x:aE,y:aI},max:{x:-1,y:-1}};for(aK=0;aK<aI;++aK){for(aL=0;aL<aE;++aL){aC=(aK*aE+aL)*4;if(j.data[aC+1]>0){if(aL<aH.min.x){aH.min.x=aL}if(aL>aH.max.x){aH.max.x=aL}if(aK<aH.min.y){aH.min.y=aK}if(aK>aH.max.y){aH.max.y=aK}}}}if(aE!=aN){aH.min.x*=(aN/aE);aH.max.x*=(aN/aE)}if(aI!=aF){aH.min.y*=(aN/aI);aH.max.y*=(aN/aI)}aD=null;return aH}function m(i){return"'"+i.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'"}function Z(i,j,aC){aC=aC||B;if(aC.addEventListener){aC.addEventListener(i,j,false)}else{aC.attachEvent("on"+i,j)}}function aq(aG,aC,aK,aF){var aL=aF.imageScale,aI,aD,aH,j,aE,aJ;if(!aC.complete){return Z("load",function(){aq(aG,aC,aK,aF)},aC)}if(!aG.complete){return Z("load",function(){aq(aG,aC,aK,aF)},aG)}aC.width=aC.width;aC.height=aC.height;if(aL){aG.width=aC.width*aL;aG.height=aC.height*aL}aK.w=aG.width;aK.h=aG.height;if(aF.txtOpt){aD=aG;aI=aF.zoomMax*aF.txtScale;aE=aK.w*aI;aJ=aK.h*aI;if(aE<aC.naturalWidth||aJ<aC.naturalHeight){aD=ar(aG,aE,aJ);if(aD){aK.image=aD}}else{aE=aK.w;aJ=aK.h;aI=1}if(aF.shadow){aD=X(aK.image,aE,aJ,aI,aF.shadow,aF.shadowBlur,aF.shadowOffset);if(aD){aK.image=aD.image;aK.w=aD.width;aK.h=aD.height}}if(aF.bgColour||aF.bgOutlineThickness){aH=aF.bgColour=="tag"?W(aK.a,"background-color"):aF.bgColour;j=aF.bgOutline=="tag"?W(aK.a,"color"):(aF.bgOutline||aF.textColour);aE=aK.image.width;aJ=aK.image.height;if(aF.outlineMethod=="colour"){aD=ax(aK.image,aE,aJ,aI,aH,aF.bgOutlineThickness,aF.outlineColour,aF.padding,aF.bgRadius,1);if(aD){aK.oimage=aD.image}}aD=ax(aK.image,aE,aJ,aI,aH,aF.bgOutlineThickness,j,aF.padding,aF.bgRadius);if(aD){aK.image=aD.image;aK.w=aD.width;aK.h=aD.height}}if(aF.outlineMethod=="size"){if(aF.outlineIncrease>0){aK.w+=2*aF.outlineIncrease;aK.h+=2*aF.outlineIncrease;aE=aI*aK.w;aJ=aI*aK.h;aD=ar(aK.image,aE,aJ);aK.oimage=aD;aK.image=u(aK.image,aK.oimage.width,aK.oimage.height)}else{aE=aI*(aK.w+(2*aF.outlineIncrease));aJ=aI*(aK.h+(2*aF.outlineIncrease));aD=ar(aK.image,aE,aJ);aK.oimage=u(aD,aK.image.width,aK.image.height)}}}}function W(aD,aC){var j=B.defaultView,i=aC.replace(/\-([a-z])/g,function(aE){return aE.charAt(1).toUpperCase()});return(j&&j.getComputedStyle&&j.getComputedStyle(aD,null).getPropertyValue(aC))||(aD.currentStyle&&aD.currentStyle[i])}function s(j,aD,aC){var i=1,aE;if(aD){i=1*(j.getAttribute(aD)||aC)}else{if(aE=W(j,"font-size")){i=(aE.indexOf("px")>-1&&aE.replace("px","")*1)||(aE.indexOf("pt")>-1&&aE.replace("pt","")*1.25)||aE*3.3}}return i}function e(i){return i.target&&ae(i.target.id)?i.target.id:i.srcElement.parentNode.id}function Q(aE,aF){var aD,aC,i=parseInt(W(aF,"width"))/aF.width,j=parseInt(W(aF,"height"))/aF.height;if(ae(aE.offsetX)){aD={x:aE.offsetX,y:aE.offsetY}}else{aC=Y(aF.id);if(ae(aE.changedTouches)){aE=aE.changedTouches[0]}if(aE.pageX){aD={x:aE.pageX-aC.x,y:aE.pageY-aC.y}}}if(aD&&i&&j){aD.x/=i;aD.y/=j}return aD}function A(aC){var j=aC.target||aC.fromElement.parentNode,i=x.tc[j.id];if(i){i.mx=i.my=-1;i.UnFreeze();i.EndDrag()}}function ab(aG){var aD,aC=x,j,aF,aE=e(aG);for(aD in aC.tc){j=aC.tc[aD];if(j.tttimer){clearTimeout(j.tttimer);j.tttimer=null}}if(aE&&aC.tc[aE]){j=aC.tc[aE];if(aF=Q(aG,j.canvas)){j.mx=aF.x;j.my=aF.y;j.Drag(aG,aF)}j.drawn=0}}function y(aD){var j=x,i=B.addEventListener?0:1,aC=e(aD);if(aC&&aD.button==i&&j.tc[aC]){j.tc[aC].BeginDrag(aD)}}function az(aE){var aC=x,j=B.addEventListener?0:1,aD=e(aE),i;if(aD&&aE.button==j&&aC.tc[aD]){i=aC.tc[aD];ab(aE);if(!i.EndDrag()&&!i.touched){i.Clicked(aE)}}}function R(aC){var i=x,j=e(aC);if(j&&aC.changedTouches&&i.tc[j]){i.tc[j].touched=1;i.tc[j].BeginDrag(aC)}}function p(aC){var i=x,j=e(aC);if(j&&aC.changedTouches&&i.tc[j]){au(aC);if(!i.tc[j].EndDrag()){i.tc[j].Draw();i.tc[j].Clicked(aC)}}}function au(aG){var aD,aC=x,j,aF,aE=e(aG);for(aD in aC.tc){j=aC.tc[aD];if(j.tttimer){clearTimeout(j.tttimer);j.tttimer=null}}if(aE&&aC.tc[aE]&&aG.changedTouches){j=aC.tc[aE];if(aF=Q(aG,j.canvas)){j.mx=aF.x;j.my=aF.y;j.Drag(aG,aF)}j.drawn=0}}function ac(aC){var i=x,j=e(aC);if(j&&i.tc[j]){aC.cancelBubble=true;aC.returnValue=false;aC.preventDefault&&aC.preventDefault();i.tc[j].Wheel((aC.wheelDelta||aC.detail)>0)}}function M(){D(E())}function D(aD){var j=x.tc,aC;x.NextFrame(x.interval);aD=aD||E();for(aC in j){j[aC].Draw(aD)}}function Y(aC){var aF=B.getElementById(aC),i=aF.getBoundingClientRect(),aI=B.documentElement,aG=B.body,aH=window,aD=aH.pageXOffset||aI.scrollLeft,aJ=aH.pageYOffset||aI.scrollTop,aE=aI.clientLeft||aG.clientLeft,j=aI.clientTop||aG.clientTop;return{x:i.left+aD-aE,y:i.top+aJ-j}}function T(j,aD,aE,aC){var i=j.radius*j.z1/(j.z1+j.z2+aD.z);return{x:aD.x*i*aE,y:aD.y*i*aC,z:aD.z,w:(j.z1-aD.z)/j.z2}}function aw(i){this.e=i;this.br=0;this.line=[];this.text=[];this.original=i.innerText||i.textContent}aB=aw.prototype;aB.Lines=function(aE){var aD=aE?1:0,aF,j,aC;aE=aE||this.e;aF=aE.childNodes;j=aF.length;for(aC=0;aC<j;++aC){if(aF[aC].nodeName=="BR"){this.text.push(this.line.join(" "));this.br=1}else{if(aF[aC].nodeType==3){if(this.br){this.line=[aF[aC].nodeValue];this.br=0}else{this.line.push(aF[aC].nodeValue)}}else{this.Lines(aF[aC])}}}aD||this.br||this.text.push(this.line.join(" "));return this.text};aB.SplitWidth=function(aC,aJ,aG,aF){var aE,aD,aI,aH=[];aJ.font=aF+"px "+aG;for(aE=0;aE<this.text.length;++aE){aI=this.text[aE].split(/\s+/);this.line=[aI[0]];for(aD=1;aD<aI.length;++aD){if(aJ.measureText(this.line.join(" ")+" "+aI[aD]).width>aC){aH.push(this.line.join(" "));this.line=[aI[aD]]}else{this.line.push(aI[aD])}}aH.push(this.line.join(" "))}return this.text=aH};function H(i,j){this.ts=E();this.tc=i;this.tag=j;this.x=this.y=this.w=this.h=this.sc=1;this.z=0;this.Draw=i.pulsateTo<1&&i.outlineMethod!="colour"?this.DrawPulsate:this.DrawSimple;this.radius=i.outlineRadius|0;this.SetMethod(i.outlineMethod)}w=H.prototype;w.SetMethod=function(aC){var j={block:["PreDraw","DrawBlock"],colour:["PreDraw","DrawColour"],outline:["PostDraw","DrawOutline"],classic:["LastDraw","DrawOutline"],size:["PreDraw","DrawColour"],none:["LastDraw"]},i=j[aC]||j.outline;if(aC=="none"){this.Draw=function(){return 1}}else{this.drawFunc=this[i[1]]}this[i[0]]=this.Draw};w.Update=function(aI,aH,aJ,aE,aF,aG,aD,i){var j=this.tc.outlineOffset,aC=2*j;this.x=aF*aI+aD-j;this.y=aF*aH+i-j;this.w=aF*aJ+aC;this.h=aF*aE+aC;this.sc=aF;this.z=aG};w.DrawOutline=function(aF,i,aE,j,aC,aD){aF.strokeStyle=aD;am(aF,i,aE,j,aC,this.radius,true)};w.DrawColour=function(aD,aG,aE,aH,aC,i,aI,j,aF){if(aI.oimage){aI.alpha=1;aI.Draw(aD,j,aF,aI.oimage);return 1}return this[aI.image?"DrawColourImage":"DrawColourText"](aD,aG,aE,aH,aC,i,aI,j,aF)};w.DrawColourText=function(aE,aH,aF,aI,aC,i,aJ,j,aG){var aD=aJ.colour;aJ.colour=i;aJ.alpha=1;aJ.Draw(aE,j,aG);aJ.colour=aD;return 1};w.DrawColourImage=function(aH,aK,aI,aL,aG,i,aO,j,aJ){var aM=aH.canvas,aE=~~q(aK,0),aD=~~q(aI,0),aF=ay(aM.width-aE,aL)+0.5|0,aN=ay(aM.height-aD,aG)+0.5|0,aC;if(n){n.width=aF,n.height=aN}else{n=N(aF,aN)}if(!n){return this.SetMethod("outline")}aC=n.getContext("2d");aC.drawImage(aM,aE,aD,aF,aN,0,0,aF,aN);aH.clearRect(aE,aD,aF,aN);aO.alpha=1;aO.Draw(aH,j,aJ);aH.setTransform(1,0,0,1,0,0);aH.save();aH.beginPath();aH.rect(aE,aD,aF,aN);aH.clip();aH.globalCompositeOperation="source-in";aH.fillStyle=i;aH.fillRect(aE,aD,aF,aN);aH.restore();aH.globalCompositeOperation="destination-over";aH.drawImage(n,0,0,aF,aN,aE,aD,aF,aN);aH.globalCompositeOperation="source-over";return 1};w.DrawBlock=function(aF,i,aE,j,aC,aD){aF.fillStyle=aD;am(aF,i,aE,j,aC,this.radius)};w.DrawSimple=function(aE,i,j,aD){var aC=this.tc;aE.setTransform(1,0,0,1,0,0);aE.strokeStyle=aC.outlineColour;aE.lineWidth=aC.outlineThickness;aE.shadowBlur=aE.shadowOffsetX=aE.shadowOffsetY=0;aE.globalAlpha=1;return this.drawFunc(aE,this.x,this.y,this.w,this.h,aC.outlineColour,i,j,aD)};w.DrawPulsate=function(aF,i,j,aD){var aE=E()-this.ts,aC=this.tc;aF.setTransform(1,0,0,1,0,0);aF.strokeStyle=aC.outlineColour;aF.lineWidth=aC.outlineThickness;aF.shadowBlur=aF.shadowOffsetX=aF.shadowOffsetY=0;aF.globalAlpha=aC.pulsateTo+((1-aC.pulsateTo)*(0.5+(v(2*Math.PI*aE/(1000*aC.pulsateTime))/2)));return this.drawFunc(aF,this.x,this.y,this.w,this.h,aC.outlineColour,i,j,aD)};w.Active=function(aC,i,j){return(i>=this.x&&j>=this.y&&i<=this.x+this.w&&j<=this.y+this.h)};w.PreDraw=w.PostDraw=w.LastDraw=av;function d(aD,aO,aK,aN,aL,aE,aC,aG,aM,aF,aJ,j,aI,i){var aH=aD.ctxt;this.tc=aD;this.image=aO.src?aO:null;this.text=aO.src?[]:aO;this.text_original=i;this.line_widths=[];this.title=aK.title||null;this.a=aK;this.position=new aa(aN[0],aN[1],aN[2]);this.x=this.y=this.z=0;this.w=aL;this.h=aE;this.colour=aC||aD.textColour;this.bgColour=aG||aD.bgColour;this.bgRadius=aM|0;this.bgOutline=aF||this.colour;this.bgOutlineThickness=aJ|0;this.textFont=j||aD.textFont;this.padding=aI|0;this.sc=this.alpha=1;this.weighted=!aD.weight;this.outline=new H(aD,this);if(!this.image){this.textHeight=aD.textHeight;this.Measure(aH,aD)}this.SetShadowColour=aD.shadowAlpha?this.SetShadowColourAlpha:this.SetShadowColourFixed;this.SetDraw(aD)}b=d.prototype;b.EqualTo=function(aC){var j=aC.getElementsByTagName("img");if(this.a.href!=aC.href){return 0}if(j.length){return this.image.src==j[0].src}return(aC.innerText||aC.textContent)==this.text_original};b.SetDraw=function(i){this.Draw=this.image?(i.ie>7?this.DrawImageIE:this.DrawImage):this.DrawText;i.noSelect&&(this.CheckActive=av)};b.MeasureText=function(aF){var aD,aC=this.text.length,j=0,aE;for(aD=0;aD<aC;++aD){this.line_widths[aD]=aE=aF.measureText(this.text[aD]).width;j=q(j,aE)}return j};b.Measure=function(aH,j){var aF=r(this.text,this.textFont,this.textHeight),aD,aE,aG,aC,i;this.h=aF?aF.max.y+aF.min.y:this.textHeight;aH.font=this.font=this.textHeight+"px "+this.textFont;this.w=this.MeasureText(aH);if(j.txtOpt){aD=j.txtScale;aE=aD*this.textHeight;aG=aE+"px "+this.textFont;aC=[aD*j.shadowOffset[0],aD*j.shadowOffset[1]];aH.font=aG;i=this.MeasureText(aH);this.image=t(this.text,aG,i+aD,(aD*this.h)+aD,this.colour,this.bgColour,this.bgOutline,aD*this.bgOutlineThickness,j.shadow,aD*j.shadowBlur,aC,aD*this.padding,aD*this.bgRadius,i,this.line_widths);if(j.outlineMethod=="colour"){this.oimage=t(this.text,aG,i+aD,(aD*this.h)+aD,j.outlineColour,this.bgColour,j.outlineColour,aD*this.bgOutlineThickness,j.shadow,aD*j.shadowBlur,aC,aD*this.padding,aD*this.bgRadius,i,this.line_widths)}else{if(j.outlineMethod=="size"){aF=r(this.text,this.textFont,this.textHeight+j.outlineIncrease);aE=aF.max.y+aF.min.y;aG=(aD*(this.textHeight+j.outlineIncrease))+"px "+this.textFont;aH.font=aG;i=this.MeasureText(aH);this.oimage=t(this.text,aG,i+aD,(aD*aE)+aD,this.colour,this.bgColour,this.bgOutline,aD*this.bgOutlineThickness,j.shadow,aD*j.shadowBlur,aC,aD*this.padding,aD*this.bgRadius,i,this.line_widths);if(j.outlineIncrease>0){this.image=u(this.image,this.oimage.width,this.oimage.height)}else{this.oimage=u(this.oimage,this.image.width,this.image.height)}}}if(this.image){this.w=this.image.width/aD;this.h=this.image.height/aD}this.SetDraw(j);j.txtOpt=!!this.image}};b.SetFont=function(j,aD,aC,i){this.textFont=j;this.colour=aD;this.bgColour=aC;this.bgOutline=i;this.Measure(this.tc.ctxt,this.tc)};b.SetWeight=function(aC){var j=this.tc,aE=j.weightMode.split(/[, ]/),i,aD,aF=aC.length;if(!this.text.length){return}this.weighted=true;for(aD=0;aD<aF;++aD){i=aE[aD]||"size";if("both"==i){this.Weight(aC[aD],j.ctxt,j,"size",j.min_weight[aD],j.max_weight[aD],aD);this.Weight(aC[aD],j.ctxt,j,"colour",j.min_weight[aD],j.max_weight[aD],aD)}else{this.Weight(aC[aD],j.ctxt,j,i,j.min_weight[aD],j.max_weight[aD],aD)}}this.Measure(j.ctxt,j)};b.Weight=function(aC,aH,aD,j,aG,aE,aF){aC=isNaN(aC)?1:aC;var i=(aC-aG)/(aE-aG);if("colour"==j){this.colour=g(aD,i,aF)}else{if("bgcolour"==j){this.bgColour=g(aD,i,aF)}else{if("bgoutline"==j){this.bgOutline=g(aD,i,aF)}else{if("size"==j){if(aD.weightSizeMin>0&&aD.weightSizeMax>aD.weightSizeMin){this.textHeight=aD.weightSize*(aD.weightSizeMin+(aD.weightSizeMax-aD.weightSizeMin)*i)}else{this.textHeight=q(1,aC*aD.weightSize)}}}}}};b.SetShadowColourFixed=function(aC,j,i){aC.shadowColor=j};b.SetShadowColourAlpha=function(aC,j,i){aC.shadowColor=S(j,i)};b.DrawText=function(aE,aH,aD){var aI=this.tc,aG=this.x,aF=this.y,aJ=this.sc,j,aC;aE.globalAlpha=this.alpha;aE.fillStyle=this.colour;aI.shadow&&this.SetShadowColour(aE,aI.shadow,this.alpha);aE.font=this.font;aG+=aH/aJ;aF+=(aD/aJ)-(this.h/2);for(j=0;j<this.text.length;++j){aC=aG-(this.line_widths[j]/2);aE.setTransform(aJ,0,0,aJ,aJ*aC,aJ*aF);aE.fillText(this.text[j],0,0);aF+=this.textHeight}};b.DrawImage=function(aE,aL,aD,aG){var aI=this.x,aF=this.y,aM=this.sc,j=aG||this.image,aJ=this.w,aC=this.h,aH=this.alpha,aK=this.shadow;aE.globalAlpha=aH;aK&&this.SetShadowColour(aE,aK,aH);aI+=(aL/aM)-(aJ/2);aF+=(aD/aM)-(aC/2);aE.setTransform(aM,0,0,aM,aM*aI,aM*aF);aE.drawImage(j,0,0,aJ,aC)};b.DrawImageIE=function(aE,aI,aD){var j=this.image,aJ=this.sc,aH=j.width=this.w*aJ,aC=j.height=this.h*aJ,aG=(this.x*aJ)+aI-(aH/2),aF=(this.y*aJ)+aD-(aC/2);aE.setTransform(1,0,0,1,0,0);aE.globalAlpha=this.alpha;aE.drawImage(j,aG,aF)};b.Calc=function(i,aC){var j,aF=this.tc,aE=aF.minBrightness,aD=aF.maxBrightness,aG=aF.max_radius;j=i.xform(this.position);this.xformed=j;j=T(aF,j,aF.stretchX,aF.stretchY);this.x=j.x;this.y=j.y;this.z=j.z;this.sc=j.w;this.alpha=aC*ap(aE+(aD-aE)*(aG-this.z)/(2*aG),0,1)};b.UpdateActive=function(aH,aC,aF){var aE=this.outline,j=this.w,aD=this.h,i=this.x-j/2,aG=this.y-aD/2;aE.Update(i,aG,j,aD,this.sc,this.z,aC,aF);return aE};b.CheckActive=function(aE,i,aD){var j=this.tc,aC=this.UpdateActive(aE,i,aD);return aC.Active(aE,j.mx,j.my)?aC:null};b.Clicked=function(aF){var j=this.a,aC=j.target,aD=j.href,i;if(aC!=""&&aC!="_self"){if(self.frames[aC]){self.frames[aC].document.location=aD}else{try{if(top.frames[aC]){top.frames[aC].document.location=aD;return}}catch(aE){}window.open(aD,aC)}return}if(B.createEvent){i=B.createEvent("MouseEvents");i.initMouseEvent("click",1,1,window,0,0,0,0,0,0,0,0,0,0,null);if(!j.dispatchEvent(i)){return}}else{if(j.fireEvent){if(!j.fireEvent("onclick")){return}}}B.location=aD};function x(aI,j,aD){var aC,aF,aH=B.getElementById(aI),aE=["id","class","innerHTML"],aG;if(!aH){throw 0}if(ae(window.G_vmlCanvasManager)){aH=window.G_vmlCanvasManager.initElement(aH);this.ie=parseFloat(navigator.appVersion.split("MSIE")[1])}if(aH&&(!aH.getContext||!aH.getContext("2d").fillText)){aF=B.createElement("DIV");for(aC=0;aC<aE.length;++aC){aF[aE[aC]]=aH[aE[aC]]}aH.parentNode.insertBefore(aF,aH);aH.parentNode.removeChild(aH);throw 0}for(aC in x.options){this[aC]=aD&&ae(aD[aC])?aD[aC]:(ae(x[aC])?x[aC]:x.options[aC])}this.canvas=aH;this.ctxt=aH.getContext("2d");this.z1=250/this.depth;this.z2=this.z1/this.zoom;this.radius=ay(aH.height,aH.width)*0.0075;this.max_weight=[];this.min_weight=[];this.textFont=this.textFont&&m(this.textFont);this.textHeight*=1;this.pulsateTo=ap(this.pulsateTo,0,1);this.minBrightness=ap(this.minBrightness,0,1);this.maxBrightness=ap(this.maxBrightness,this.minBrightness,1);this.ctxt.textBaseline="top";this.lx=(this.lock+"").indexOf("x")+1;this.ly=(this.lock+"").indexOf("y")+1;this.frozen=this.dx=this.dy=this.fixedAnim=this.touched=0;this.fixedAlpha=1;this.source=j||aI;this.transform=P.Identity();this.startTime=this.time=E();this.Animate=this.dragControl?this.AnimateDrag:this.AnimatePosition;this.animTiming=(typeof x[this.animTiming]=="function"?x[this.animTiming]:x.Smooth);if(this.shadowBlur||this.shadowOffset[0]||this.shadowOffset[1]){this.ctxt.shadowColor=this.shadow;this.shadow=this.ctxt.shadowColor;this.shadowAlpha=ah()}else{delete this.shadow}this.Load();if(j&&this.hideTags){(function(i){if(x.loaded){i.HideTags()}else{Z("load",function(){i.HideTags()},window)}})(this)}this.yaw=this.initial?this.initial[0]*this.maxSpeed:0;this.pitch=this.initial?this.initial[1]*this.maxSpeed:0;if(this.tooltip){if(this.tooltip=="native"){this.Tooltip=this.TooltipNative}else{this.Tooltip=this.TooltipDiv;if(!this.ttdiv){this.ttdiv=B.createElement("div");this.ttdiv.className=this.tooltipClass;this.ttdiv.style.position="absolute";this.ttdiv.style.zIndex=aH.style.zIndex+1;Z("mouseover",function(i){i.target.style.display="none"},this.ttdiv);B.body.appendChild(this.ttdiv)}}}else{this.Tooltip=this.TooltipNone}if(!this.noMouse&&!a[aI]){Z("mousemove",ab,aH);Z("mouseout",A,aH);Z("mouseup",az,aH);Z("touchstart",R,aH);Z("touchend",p,aH);Z("touchcancel",p,aH);Z("touchmove",au,aH);if(this.dragControl){Z("mousedown",y,aH);Z("selectstart",av,aH)}if(this.wheelZoom){Z("mousewheel",ac,aH);Z("DOMMouseScroll",ac,aH)}a[aI]=1}if(!x.started){aG=window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;x.NextFrame=aG?x.NextFrameRAF:x.NextFrameTimeout;x.interval=this.interval;x.NextFrame(this.interval);x.started=1}}O=x.prototype;O.SourceElements=function(){if(B.querySelectorAll){return B.querySelectorAll("#"+this.source)}return[B.getElementById(this.source)]};O.HideTags=function(){var aC=this.SourceElements(),j;for(j=0;j<aC.length;++j){aC[j].style.display="none"}};O.GetTags=function(){var aG=this.SourceElements(),aF,aC=[],aE,aD;for(aE=0;aE<aG.length;++aE){aF=aG[aE].getElementsByTagName("a");for(aD=0;aD<aF.length;++aD){aC.push(aF[aD])}}return aC};O.CreateTag=function(aF,j){var aI=aF.getElementsByTagName("img"),aE,aJ,aH,aC,aG,aD;j=j||[0,0,0];if(aI.length){aE=new Image;aE.src=aI[0].src;aJ=new d(this,aE,aF,j,0,0);aq(aE,aI[0],aJ,this);return aJ}aH=new aw(aF);aJ=aH.Lines();aC=this.textFont||m(W(aF,"font-family"));if(this.splitWidth){aJ=aH.SplitWidth(this.splitWidth,this.ctxt,aC,this.textHeight)}aG=this.bgColour=="tag"?W(aF,"background-color"):this.bgColour;aD=this.bgOutline=="tag"?W(aF,"color"):this.bgOutline;return new d(this,aJ,aF,j,2,this.textHeight+2,this.textColour||W(aF,"color"),aG,this.bgRadius,aD,this.bgOutlineThickness,aC,this.padding,aH.original)};O.UpdateTag=function(aC,i){var aF=this.textColour||W(i,"color"),j=this.textFont||m(W(i,"font-family")),aE=this.bgColour=="tag"?W(i,"background-color"):this.bgColour,aD=this.bgOutline=="tag"?W(i,"color"):this.bgOutline;aC.a=i;aC.title=i.title;if(aC.colour!=aF||aC.textFont!=j||aC.bgColour!=aE||aC.bgOutline!=aD){aC.SetFont(j,aF,aE,aD)}};O.Weight=function(aI){var aE=aI.length,aG,aC,aJ,aF=[],j,aD=this.weightFrom?this.weightFrom.split(/[, ]/):[null],aH=aD.length;for(aC=0;aC<aE;++aC){aF[aC]=[];for(aJ=0;aJ<aH;++aJ){aG=s(aI[aC].a,aD[aJ],this.textHeight);if(!this.max_weight[aJ]||aG>this.max_weight[aJ]){this.max_weight[aJ]=aG}if(!this.min_weight[aJ]||aG<this.min_weight[aJ]){this.min_weight[aJ]=aG}aF[aC][aJ]=aG}}for(aJ=0;aJ<aH;++aJ){if(this.max_weight[aJ]>this.min_weight[aJ]){j=1}}if(j){for(aC=0;aC<aE;++aC){aI[aC].SetWeight(aF[aC])}}};O.Load=function(){var aL=this.GetTags(),aH=[],aK,aG,aD,aC,j,aE,aJ,aF=[],aI={sphere:o,vcylinder:ai,hcylinder:ao,vring:c,hring:l};if(aL.length){aF.length=aL.length;for(aJ=0;aJ<aL.length;++aJ){aF[aJ]=aJ}this.shuffleTags&&aj(aF);aD=100*this.radiusX;aC=100*this.radiusY;j=100*this.radiusZ;this.max_radius=q(aD,q(aC,j));if(this.shapeArgs){this.shapeArgs[0]=aL.length}else{aG=this.shape.toString().split(/[(),]/);aK=aG.shift();this.shape=aI[aK]||aI.sphere;this.shapeArgs=[aL.length,aD,aC,j].concat(aG)}aE=this.shape.apply(this,this.shapeArgs);this.listLength=aL.length;for(aJ=0;aJ<aL.length;++aJ){aH.push(this.CreateTag(aL[aF[aJ]],aE[aJ]))}this.weight&&this.Weight(aH,true)}this.taglist=aH};O.Update=function(){var aL=this.GetTags(),aK=[],aF=this.taglist,aM,aJ=[],aH=[],aD,aI,aC,aG,aE;if(!this.shapeArgs){return this.Load()}if(aL.length){aC=this.listLength=aL.length;aI=aF.length;for(aG=0;aG<aI;++aG){aK.push(aF[aG]);aH.push(aG)}for(aG=0;aG<aC;++aG){for(aE=0,aM=0;aE<aI;++aE){if(aF[aE].EqualTo(aL[aG])){this.UpdateTag(aK[aE],aL[aG]);aM=aH[aE]=-1}}if(!aM){aJ.push(aG)}}for(aG=0,aE=0;aG<aI;++aG){if(aH[aE]==-1){aH.splice(aE,1)}else{++aE}}if(aH.length){aj(aH);while(aH.length&&aJ.length){aG=aH.shift();aE=aJ.shift();aK[aG]=this.CreateTag(aL[aE])}aH.sort(function(j,i){return j-i});while(aH.length){aK.splice(aH.pop(),1)}}aE=aK.length/(aJ.length+1);aG=0;while(aJ.length){aK.splice(al(++aG*aE),0,this.CreateTag(aL[aJ.shift()]))}this.shapeArgs[0]=aC=aK.length;aD=this.shape.apply(this,this.shapeArgs);for(aG=0;aG<aC;++aG){aK[aG].position=new aa(aD[aG][0],aD[aG][1],aD[aG][2])}this.weight&&this.Weight(aK)}this.taglist=aK};O.SetShadow=function(i){i.shadowBlur=this.shadowBlur;i.shadowOffsetX=this.shadowOffset[0];i.shadowOffsetY=this.shadowOffset[1]};O.Draw=function(aM){if(this.paused){return}var aG=this.canvas,aE=aG.width,aL=aG.height,aO=0,aD=(aM-this.time)*x.interval/1000,aK=aE/2+this.offsetX,aJ=aL/2+this.offsetY,aS=this.ctxt,aI,aT,aQ,aC=-1,aF=this.taglist,aP=aF.length,j=this.frontSelect,aN=(this.centreFunc==av),aH;this.time=aM;if(this.frozen&&this.drawn){return this.Animate(aE,aL,aD)}aH=this.AnimateFixed();aS.setTransform(1,0,0,1,0,0);for(aQ=0;aQ<aP;++aQ){aF[aQ].Calc(this.transform,this.fixedAlpha)}aF=z(aF,function(aU,i){return i.z-aU.z});if(aH&&this.fixedAnim.active){aI=this.fixedAnim.tag.UpdateActive(aS,aK,aJ)}else{this.active=null;for(aQ=0;aQ<aP;++aQ){aT=this.mx>=0&&this.my>=0&&this.taglist[aQ].CheckActive(aS,aK,aJ);if(aT&&aT.sc>aO&&(!j||aT.z<=0)){aI=aT;aC=aQ;aI.tag=this.taglist[aQ];aO=aT.sc}}this.active=aI}this.txtOpt||(this.shadow&&this.SetShadow(aS));aS.clearRect(0,0,aE,aL);for(aQ=0;aQ<aP;++aQ){if(!aN&&aF[aQ].z<=0){try{this.centreFunc(aS,aE,aL,aK,aJ)}catch(aR){alert(aR);this.centreFunc=av}aN=true}if(!(aI&&aI.tag==aF[aQ]&&aI.PreDraw(aS,aF[aQ],aK,aJ))){aF[aQ].Draw(aS,aK,aJ)}aI&&aI.tag==aF[aQ]&&aI.PostDraw(aS)}if(this.freezeActive&&aI){this.Freeze()}else{this.UnFreeze();this.drawn=(aP==this.listLength)}if(this.fixedCallback){this.fixedCallback(this,this.fixedCallbackTag);this.fixedCallback=null}aH||this.Animate(aE,aL,aD);aI&&aI.LastDraw(aS);aG.style.cursor=aI?this.activeCursor:"";this.Tooltip(aI,this.taglist[aC])};O.TooltipNone=function(){};O.TooltipNative=function(j,i){this.canvas.title=j&&i&&i.title?i.title:""};O.TooltipDiv=function(aE,j){var i=this,aD=i.ttdiv.style,aF=i.canvas.id,aC="none";if(aE&&j&&j.title){if(j.title!=i.ttdiv.innerHTML){aD.display=aC}i.ttdiv.innerHTML=j.title;j.title=i.ttdiv.innerHTML;if(aD.display==aC&&!i.tttimer){i.tttimer=setTimeout(function(){var aG=Y(aF);aD.display="block";aD.left=aG.x+i.mx+"px";aD.top=aG.y+i.my+24+"px";i.tttimer=null},i.tooltipDelay)}}else{aD.display=aC}};O.Transform=function(aF,i,aH){if(i||aH){var j=ad(i),aG=v(i),aI=ad(aH),aE=v(aH),aC=new P([aE,0,aI,0,1,0,-aI,0,aE]),aD=new P([1,0,0,0,aG,-j,0,j,aG]);aF.transform=aF.transform.mul(aC.mul(aD))}};O.AnimateFixed=function(){var aC,j,aE,i,aD;if(this.fadeIn){j=E()-this.startTime;if(j>=this.fadeIn){this.fadeIn=0;this.fixedAlpha=1}else{this.fixedAlpha=j/this.fadeIn}}if(this.fixedAnim){if(!this.fixedAnim.transform){this.fixedAnim.transform=this.transform}aC=this.fixedAnim,j=E()-aC.t0,aE=aC.angle,i,aD=this.animTiming(aC.t,j);this.transform=aC.transform;if(j>=aC.t){this.fixedCallbackTag=aC.tag;this.fixedCallback=aC.cb;this.fixedAnim=this.yaw=this.pitch=0}else{aE*=aD}i=P.Rotation(aE,aC.axis);this.transform=this.transform.mul(i);return(this.fixedAnim!=0)}return false};O.AnimatePosition=function(aC,aF,aD){var j=this,i=j.mx,aH=j.my,aE,aG;if(!j.frozen&&i>=0&&aH>=0&&i<aC&&aH<aF){aE=j.maxSpeed,aG=j.reverse?-1:1;j.lx||(j.yaw=((i*2*aE/aC)-aE)*aG*aD);j.ly||(j.pitch=((aH*2*aE/aF)-aE)*-aG*aD);j.initial=null}else{if(!j.initial){if(j.frozen&&!j.freezeDecel){j.yaw=j.pitch=0}else{j.Decel(j)}}}this.Transform(j,j.pitch,j.yaw)};O.AnimateDrag=function(j,aE,aD){var i=this,aC=100*aD*i.maxSpeed/i.max_radius/i.zoom;if(i.dx||i.dy){i.lx||(i.yaw=i.dx*aC/i.stretchX);i.ly||(i.pitch=i.dy*-aC/i.stretchY);i.dx=i.dy=0;i.initial=null}else{if(!i.initial){i.Decel(i)}}this.Transform(i,i.pitch,i.yaw)};O.Freeze=function(){if(!this.frozen){this.preFreeze=[this.yaw,this.pitch];this.frozen=1;this.drawn=0}};O.UnFreeze=function(){if(this.frozen){this.yaw=this.preFreeze[0];this.pitch=this.preFreeze[1];this.frozen=0}};O.Decel=function(i){var aC=i.minSpeed,aD=J(i.yaw),j=J(i.pitch);if(!i.lx&&aD>aC){i.yaw=aD>i.z0?i.yaw*i.decel:0}if(!i.ly&&j>aC){i.pitch=j>i.z0?i.pitch*i.decel:0}};O.Zoom=function(i){this.z2=this.z1*(1/i);this.drawn=0};O.Clicked=function(aC){var i=this.active;try{if(i&&i.tag){if(this.clickToFront===false||this.clickToFront===null){i.tag.Clicked(aC)}else{this.TagToFront(i.tag,this.clickToFront,function(){i.tag.Clicked(aC)},true)}}}catch(j){}};O.Wheel=function(j){var aC=this.zoom+this.zoomStep*(j?1:-1);this.zoom=ay(this.zoomMax,q(this.zoomMin,aC));this.Zoom(this.zoom)};O.BeginDrag=function(i){this.down=Q(i,this.canvas);i.cancelBubble=true;i.returnValue=false;i.preventDefault&&i.preventDefault()};O.Drag=function(aE,aD){if(this.dragControl&&this.down){var aC=this.dragThreshold*this.dragThreshold,j=aD.x-this.down.x,i=aD.y-this.down.y;if(this.dragging||j*j+i*i>aC){this.dx=j;this.dy=i;this.dragging=1;this.down=aD}}};O.EndDrag=function(){var i=this.dragging;this.dragging=this.down=null;return i};O.Pause=function(){this.paused=true};O.Resume=function(){this.paused=false};O.SetSpeed=function(j){this.initial=j;this.yaw=j[0]*this.maxSpeed;this.pitch=j[1]*this.maxSpeed};O.FindTag=function(aC){if(!ae(aC)){return null}ae(aC.index)&&(aC=aC.index);if(!G(aC)){return this.taglist[aC]}var aD,aE,j;if(ae(aC.id)){aD="id",aE=aC.id}else{if(ae(aC.text)){aD="innerText",aE=aC.text}}for(j=0;j<this.taglist.length;++j){if(this.taglist[j].a[aD]==aE){return this.taglist[j]}}};O.RotateTag=function(aK,aD,aJ,i,aH,aC){var aI=aK.xformed,aF=new aa(aI.x,aI.y,aI.z),aE=af(aJ,aD),j=aF.angle(aE),aG=aF.cross(aE).unit();if(j==0){this.fixedCallbackTag=aK;this.fixedCallback=aH}else{this.fixedAnim={angle:-j,axis:aG,t:i,t0:E(),cb:aH,tag:aK,active:aC}}};O.TagToFront=function(i,aC,aD,j){this.RotateTag(i,0,0,aC,aD,j)};x.Start=function(aC,i,j){x.tc[aC]=new x(aC,i,j)};function at(i,j){x.tc[j]&&x.tc[j][i]()}x.Linear=function(i,j){return j/i};x.Smooth=function(i,j){return 0.5-v(j*Math.PI/i)/2};x.Pause=function(i){at("Pause",i)};x.Resume=function(i){at("Resume",i)};x.Reload=function(i){at("Load",i)};x.Update=function(i){at("Update",i)};x.SetSpeed=function(j,i){if(G(i)&&x.tc[j]&&!isNaN(i[0])&&!isNaN(i[1])){x.tc[j].SetSpeed(i);return true}return false};x.TagToFront=function(j,i){if(!G(i)){return false}i.lat=i.lng=0;return x.RotateTag(j,i)};x.RotateTag=function(aC,i){if(G(i)&&x.tc[aC]){if(isNaN(i.time)){i.time=500}var j=x.tc[aC].FindTag(i);if(j){x.tc[aC].RotateTag(j,i.lat,i.lng,i.time,i.callback,i.active);return true}}return false};x.Delete=function(i){delete a[i];delete x.tc[i]};x.NextFrameRAF=function(){requestAnimationFrame(D)};x.NextFrameTimeout=function(i){setTimeout(M,i)};x.tc={};x.options={z1:20000,z2:20000,z0:0.0002,freezeActive:false,freezeDecel:false,activeCursor:"pointer",pulsateTo:1,pulsateTime:3,reverse:false,depth:0.5,maxSpeed:0.05,minSpeed:0,decel:0.95,interval:20,minBrightness:0.1,maxBrightness:1,outlineColour:"#ffff99",outlineThickness:2,outlineOffset:5,outlineMethod:"outline",outlineRadius:0,textColour:"#ff99ff",textHeight:15,textFont:"Helvetica, Arial, sans-serif",shadow:"#000",shadowBlur:0,shadowOffset:[0,0],initial:null,hideTags:true,zoom:1,weight:false,weightMode:"size",weightFrom:null,weightSize:1,weightSizeMin:null,weightSizeMax:null,weightGradient:{0:"#f00",0.33:"#ff0",0.66:"#0f0",1:"#00f"},txtOpt:true,txtScale:2,frontSelect:false,wheelZoom:true,zoomMin:0.3,zoomMax:3,zoomStep:0.05,shape:"sphere",lock:null,tooltip:null,tooltipDelay:300,tooltipClass:"tctooltip",radiusX:1,radiusY:1,radiusZ:1,stretchX:1,stretchY:1,offsetX:0,offsetY:0,shuffleTags:false,noSelect:false,noMouse:false,imageScale:1,paused:false,dragControl:false,dragThreshold:4,centreFunc:av,splitWidth:0,animTiming:"Smooth",clickToFront:false,fadeIn:0,padding:0,bgColour:null,bgRadius:0,bgOutline:null,bgOutlineThickness:0,outlineIncrease:4};for(K in x.options){x[K]=x.options[K]}window.TagCanvas=x;jQuery.fn.tagcanvas=function(j,i){var aC={pause:function(){ak(this).each(function(){at("Pause",ak(this)[0].id)})},resume:function(){ak(this).each(function(){at("Resume",ak(this)[0].id)})},reload:function(){ak(this).each(function(){at("Load",ak(this)[0].id)})},update:function(){ak(this).each(function(){at("Update",ak(this)[0].id)})},tagtofront:function(){ak(this).each(function(){x.TagToFront(ak(this)[0].id,i)})},rotatetag:function(){ak(this).each(function(){x.RotateTag(ak(this)[0].id,i)})},"delete":function(){ak(this).each(function(){x.Delete(ak(this)[0].id)})},setspeed:function(){ak(this).each(function(){x.SetSpeed(ak(this)[0].id,i)})}};if(typeof j=="string"&&aC[j]){aC[j].apply(this);return this}else{x.jquery=1;ak(this).each(function(){x.Start(ak(this)[0].id,i,j)});return x.started}};Z("load",function(){x.loaded=1},window)})(jQuery);
Note: See TracBrowser for help on using the repository browser.