forked from enyo/opentip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopentip-jquery-excanvas.js
6 lines (6 loc) · 42.2 KB
/
opentip-jquery-excanvas.js
1
2
3
4
5
6
// Opentip v2.2.2
// Copyright (c) 2009-2012
// www.opentip.org
// MIT Licensed
var Opentip,firstAdapter,i,position,vendors,_i,_len,_ref,__slice=[].slice,__indexOf=[].indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(e in this&&this[e]===t)return e;return-1},__hasProp={}.hasOwnProperty;for(Opentip=function(){function t(e,i,o,s){var n,r,a,h,p,l,d,u,c,g,f=this;if(this.id=++t.lastId,this.debug("Creating Opentip."),t.tips.push(this),this.adapter=t.adapter,n=this.adapter.data(e,"opentips")||[],n.push(this),this.adapter.data(e,"opentips",n),this.triggerElement=this.adapter.wrap(e),this.triggerElement.length>1)throw Error("You can't call Opentip on multiple elements.");if(1>this.triggerElement.length)throw Error("Invalid element.");this.loaded=!1,this.loading=!1,this.visible=!1,this.waitingToShow=!1,this.waitingToHide=!1,this.currentPosition={left:0,top:0},this.dimensions={width:100,height:50},this.content="",this.redraw=!0,this.currentObservers={showing:!1,visible:!1,hiding:!1,hidden:!1},s=this.adapter.clone(s),typeof i=="object"?(s=i,i=o=void 0):typeof o=="object"&&(s=o,o=void 0),o!=null&&(s.title=o),i!=null&&this.setContent(i),s["extends"]==null&&(s["extends"]=s.style!=null?s.style:t.defaultStyle),a=[s],g=s;while(g["extends"]){if(p=g["extends"],g=t.styles[p],g==null)throw Error("Invalid style: "+p);a.unshift(g),g["extends"]==null&&p!=="standard"&&(g["extends"]="standard")}for(s=(u=this.adapter).extend.apply(u,[{}].concat(__slice.call(a))),s.hideTriggers=function(){var t,e,i,o;for(i=s.hideTriggers,o=[],t=0,e=i.length;e>t;t++)r=i[t],o.push(r);return o}(),s.hideTrigger&&s.hideTriggers.length===0&&s.hideTriggers.push(s.hideTrigger),c=["tipJoint","targetJoint","stem"],l=0,d=c.length;d>l;l++)h=c[l],s[h]&&typeof s[h]=="string"&&(s[h]=new t.Joint(s[h]));!s.ajax||s.ajax!==!0&&s.ajax||(s.ajax=this.adapter.tagName(this.triggerElement)==="A"?this.adapter.attr(this.triggerElement,"href"):!1),s.showOn==="click"&&this.adapter.tagName(this.triggerElement)==="A"&&this.adapter.observe(this.triggerElement,"click",function(t){return t.preventDefault(),t.stopPropagation(),t.stopped=!0}),s.target&&(s.fixed=!0),s.stem===!0&&(s.stem=new t.Joint(s.tipJoint)),s.target===!0?s.target=this.triggerElement:s.target&&(s.target=this.adapter.wrap(s.target)),this.currentStem=s.stem,s.delay==null&&(s.delay=s.showOn==="mouseover"?.2:0),s.targetJoint==null&&(s.targetJoint=new t.Joint(s.tipJoint).flip()),this.showTriggers=[],this.showTriggersWhenVisible=[],this.hideTriggers=[],s.showOn&&s.showOn!=="creation"&&this.showTriggers.push({element:this.triggerElement,event:s.showOn}),this.options=s,this.adapter.domReady(function(){return f._init()})}return t.prototype.STICKS_OUT_TOP=1,t.prototype.STICKS_OUT_BOTTOM=2,t.prototype.STICKS_OUT_LEFT=1,t.prototype.STICKS_OUT_RIGHT=2,t.prototype["class"]={container:"opentip-container",opentip:"opentip",content:"content",loadingIndicator:"loading-indicator",close:"close",goingToHide:"going-to-hide",hidden:"hidden",hiding:"hiding",goingToShow:"going-to-show",showing:"showing",visible:"visible",loading:"loading",ajaxError:"ajax-error",fixed:"fixed",showEffectPrefix:"show-effect-",hideEffectPrefix:"hide-effect-",stylePrefix:"style-"},t.prototype._init=function(){var t,e,i,o,s,n,r,a,h,p,l,d,u,c,g=this;for(this._buildContainer(),d=this.options.hideTriggers,o=n=0,h=d.length;h>n;o=++n){if(e=d[o],i=null,t=this.options.hideOn instanceof Array?this.options.hideOn[o]:this.options.hideOn,typeof e=="string")switch(e){case"trigger":t=t||"mouseout",i=this.triggerElement;break;case"tip":t=t||"mouseover",i=this.container;break;case"target":t=t||"mouseover",i=this.options.target;break;case"closeButton":break;default:throw Error("Unknown hide trigger: "+e+".")}else t=t||"mouseover",i=this.adapter.wrap(e);i&&this.hideTriggers.push({element:i,event:t,original:e})}for(u=this.hideTriggers,r=0,p=u.length;p>r;r++)e=u[r],this.showTriggersWhenVisible.push({element:e.element,event:"mouseover"});for(this.bound={},c=["prepareToShow","prepareToHide","show","hide","reposition"],a=0,l=c.length;l>a;a++)s=c[a],this.bound[s]=function(t){return function(){return g[t].apply(g,arguments)}}(s);return this.activate(),this.options.showOn==="creation"?this.prepareToShow():void 0},t.prototype._buildContainer=function(){return this.container=this.adapter.create('<div id="opentip-'+this.id+'" class="'+this["class"].container+" "+this["class"].hidden+" "+this["class"].stylePrefix+this.options.className+'"></div>'),this.adapter.css(this.container,{position:"absolute"}),this.options.ajax&&this.adapter.addClass(this.container,this["class"].loading),this.options.fixed&&this.adapter.addClass(this.container,this["class"].fixed),this.options.showEffect&&this.adapter.addClass(this.container,""+this["class"].showEffectPrefix+this.options.showEffect),this.options.hideEffect?this.adapter.addClass(this.container,""+this["class"].hideEffectPrefix+this.options.hideEffect):void 0},t.prototype._buildElements=function(){var t,e;return this.tooltipElement=this.adapter.create('<div class="'+this["class"].opentip+'"><div class="header"></div><div class="'+this["class"].content+'"></div></div>'),this.backgroundCanvas=this.adapter.wrap(document.createElement("canvas")),this.adapter.css(this.backgroundCanvas,{position:"absolute"}),typeof G_vmlCanvasManager!="undefined"&&G_vmlCanvasManager!==null&&G_vmlCanvasManager.initElement(this.adapter.unwrap(this.backgroundCanvas)),t=this.adapter.find(this.tooltipElement,".header"),this.options.title&&(e=this.adapter.create("<h1></h1>"),this.adapter.update(e,this.options.title,this.options.escapeTitle),this.adapter.append(t,e)),this.options.ajax&&this.adapter.append(this.tooltipElement,this.adapter.create('<div class="'+this["class"].loadingIndicator+'"><span>Loading...</span></div>')),0>__indexOf.call(this.options.hideTriggers,"closeButton")||(this.closeButtonElement=this.adapter.create('<a href="javascript:undefined;" class="'+this["class"].close+'"><span>Close</span></a>'),this.adapter.append(t,this.closeButtonElement)),this.adapter.append(this.container,this.backgroundCanvas),this.adapter.append(this.container,this.tooltipElement),this.adapter.append(document.body,this.container)},t.prototype.setContent=function(t){return this.content=t,this.visible?this._updateElementContent():void 0},t.prototype._updateElementContent=function(){var t;return t=this.adapter.find(this.container,".content"),t!=null&&(typeof this.content=="function"&&(this.debug("Executing content function."),this.content=this.content(this)),this.adapter.update(t,this.content,this.options.escapeContent)),this._storeAndLockDimensions(),this.reposition()},t.prototype._storeAndLockDimensions=function(){var t;return t=this.dimensions,this.adapter.css(this.container,{width:"auto",left:"0px",top:"0px"}),this.dimensions=this.adapter.dimensions(this.container),this.dimensions.width+=1,this.adapter.css(this.container,{width:""+this.dimensions.width+"px",top:""+this.currentPosition.top+"px",left:""+this.currentPosition.left+"px"}),this._dimensionsEqual(this.dimensions,t)?void 0:(this.redraw=!0,this._draw())},t.prototype.activate=function(){return this._setupObservers("-showing","-visible","hidden","hiding")},t.prototype.deactivate=function(){return this.debug("Deactivating tooltip."),this.hide()},t.prototype._setupObservers=function(){var t,e,i,o,s,n,r,a,h,p,l,d,u,c,g,f,m=this;for(o=1>arguments.length?[]:__slice.call(arguments,0),n=0,p=o.length;p>n;n++)if(i=o[n],e=!1,i.charAt(0)==="-"&&(e=!0,i=i.substr(1)),this.currentObservers[i]!==!e)switch(this.currentObservers[i]=!e,t=function(){var t,i,o;return t=1>arguments.length?[]:__slice.call(arguments,0),e?(i=m.adapter).stopObserving.apply(i,t):(o=m.adapter).observe.apply(o,t)},i){case"showing":for(c=this.hideTriggers,r=0,l=c.length;l>r;r++)s=c[r],t(s.element,s.event,this.bound.prepareToHide);t(document.onresize!=null?document:window,"resize",this.bound.reposition),t(window,"scroll",this.bound.reposition);break;case"visible":for(g=this.showTriggersWhenVisible,a=0,d=g.length;d>a;a++)s=g[a],t(s.element,s.event,this.bound.prepareToShow);break;case"hiding":for(f=this.showTriggers,h=0,u=f.length;u>h;h++)s=f[h],t(s.element,s.event,this.bound.prepareToShow);break;case"hidden":break;default:throw Error("Unknown state: "+i)}return null},t.prototype.prepareToShow=function(){return this._abortHiding(),this._abortShowing(),this.visible?void 0:(this.debug("Showing in "+this.options.delay+"s."),this.options.group&&t._abortShowingGroup(this.options.group,this),this.preparingToShow=!0,this._setupObservers("-hidden","-hiding","showing"),this._followMousePosition(),this.reposition(),this._showTimeoutId=this.setTimeout(this.bound.show,this.options.delay||0))},t.prototype.show=function(){var e=this;return this._abortHiding(),this._clearTimeouts(),this.visible?void 0:this._triggerElementExists()?(this.debug("Showing now."),this.options.group&&t._hideGroup(this.options.group,this),this.visible=!0,this.preparingToShow=!1,this.tooltipElement==null&&this._buildElements(),this._updateElementContent(),!this.options.ajax||this.loaded&&this.options.ajaxCache||this._loadAjax(),this._searchAndActivateCloseButtons(),this._startEnsureTriggerElement(),this.adapter.css(this.container,{zIndex:t.lastZIndex++}),this._setupObservers("-hidden","-hiding","-showing","-visible","showing","visible"),this.reposition(),this.adapter.removeClass(this.container,this["class"].hiding),this.adapter.removeClass(this.container,this["class"].hidden),this.adapter.addClass(this.container,this["class"].goingToShow),this.setCss3Style(this.container,{transitionDuration:"0s"}),this.defer(function(){var t;return e.adapter.removeClass(e.container,e["class"].goingToShow),e.adapter.addClass(e.container,e["class"].showing),t=0,e.options.showEffect&&e.options.showEffectDuration&&(t=e.options.showEffectDuration),e.setCss3Style(e.container,{transitionDuration:""+t+"s"}),e._visibilityStateTimeoutId=e.setTimeout(function(){return e.adapter.removeClass(e.container,e["class"].showing),e.adapter.addClass(e.container,e["class"].visible)},t),e._activateFirstInput()}),this._draw()):this.deactivate()},t.prototype._abortShowing=function(){return this.preparingToShow?(this.debug("Aborting showing."),this._clearTimeouts(),this._stopFollowingMousePosition(),this.preparingToShow=!1,this._setupObservers("-showing","-visible","hiding","hidden")):void 0},t.prototype.prepareToHide=function(){return this._abortShowing(),this._abortHiding(),this.visible?(this.debug("Hiding in "+this.options.hideDelay+"s"),this.preparingToHide=!0,this._setupObservers("-showing","visible","-hidden","hiding"),this._hideTimeoutId=this.setTimeout(this.bound.hide,this.options.hideDelay)):void 0},t.prototype.hide=function(){var t=this;return this._abortShowing(),this._clearTimeouts(),this.visible?(this.debug("Hiding!"),this.visible=!1,this.preparingToHide=!1,this._stopEnsureTriggerElement(),this._setupObservers("-showing","-visible","-hiding","-hidden","hiding","hidden"),this.options.fixed||this._stopFollowingMousePosition(),this.adapter.removeClass(this.container,this["class"].visible),this.adapter.removeClass(this.container,this["class"].showing),this.adapter.addClass(this.container,this["class"].goingToHide),this.setCss3Style(this.container,{transitionDuration:"0s"}),this.defer(function(){var e;return t.adapter.removeClass(t.container,t["class"].goingToHide),t.adapter.addClass(t.container,t["class"].hiding),e=0,t.options.hideEffect&&t.options.hideEffectDuration&&(e=t.options.hideEffectDuration),t.setCss3Style(t.container,{transitionDuration:""+e+"s"}),t._visibilityStateTimeoutId=t.setTimeout(function(){return t.adapter.removeClass(t.container,t["class"].hiding),t.adapter.addClass(t.container,t["class"].hidden),t.setCss3Style(t.container,{transitionDuration:"0s"})},e)})):void 0},t.prototype._abortHiding=function(){return this.preparingToHide?(this.debug("Aborting hiding."),this._clearTimeouts(),this.preparingToHide=!1,this._setupObservers("-hiding","showing","visible")):void 0},t.prototype.reposition=function(t){var e,i,o,s=this;return t==null&&(t=this.lastEvent),e=this.getPosition(t),e==null||(i=this.options.stem,this.options.containInViewport&&(o=this._ensureViewportContainment(t,e),e=o.position,i=o.stem),this._positionsEqual(e,this.currentPosition))?void 0:(this.options.stem&&!i.eql(this.currentStem)&&(this.redraw=!0),this.currentPosition=e,this.currentStem=i,this._draw(),this.adapter.css(this.container,{left:""+e.left+"px",top:""+e.top+"px"}),this.defer(function(){var t,e;return t=s.adapter.unwrap(s.container),t.style.visibility="hidden",e=t.offsetHeight,t.style.visibility="visible"}))},t.prototype.getPosition=function(t,e,i,o){var s,n,r,a,h,p,l,d,u,c;if(e==null&&(e=this.options.tipJoint),i==null&&(i=this.options.targetJoint),h={},this.options.target)d=this.adapter.offset(this.options.target),l=this.adapter.dimensions(this.options.target),h=d,i.right?(u=this.adapter.unwrap(this.options.target),u.getBoundingClientRect!=null?h.left=u.getBoundingClientRect().right+((c=window.pageXOffset)!=null?c:document.body.scrollLeft):h.left+=l.width):i.center&&(h.left+=Math.round(l.width/2)),i.bottom?h.top+=l.height:i.middle&&(h.top+=Math.round(l.height/2)),this.options.borderWidth&&(this.options.tipJoint.left&&(h.left+=this.options.borderWidth),this.options.tipJoint.right&&(h.left-=this.options.borderWidth),this.options.tipJoint.top?h.top+=this.options.borderWidth:this.options.tipJoint.bottom&&(h.top-=this.options.borderWidth));else{if(t!=null&&(this.lastEvent=t),r=this.adapter.mousePosition(t),r==null)return;h={top:r.y,left:r.x}}return this.options.autoOffset&&(p=this.options.stem?this.options.stemLength:0,a=p&&this.options.fixed?2:10,s=e.middle&&!this.options.fixed?15:0,n=e.center&&!this.options.fixed?15:0,e.right?h.left-=a+s:e.left&&(h.left+=a+s),e.bottom?h.top-=a+n:e.top&&(h.top+=a+n),p&&(o==null&&(o=this.options.stem),o.right?h.left-=p:o.left&&(h.left+=p),o.bottom?h.top-=p:o.top&&(h.top+=p))),h.left+=this.options.offset[0],h.top+=this.options.offset[1],e.right?h.left-=this.dimensions.width:e.center&&(h.left-=Math.round(this.dimensions.width/2)),e.bottom?h.top-=this.dimensions.height:e.middle&&(h.top-=Math.round(this.dimensions.height/2)),h},t.prototype._ensureViewportContainment=function(e,i){var o,s,n,r,a,h,p,l,d,u,c,g;if(p=this.options.stem,n={position:i,stem:p},!this.visible||!i)return n;if(l=this._sticksOut(i),!l[0]&&!l[1])return n;if(u=new t.Joint(this.options.tipJoint),this.options.targetJoint&&(d=new t.Joint(this.options.targetJoint)),h=this.adapter.scrollOffset(),c=this.adapter.viewportDimensions(),g=[i.left-h[0],i.top-h[1]],o=!1,c.width>=this.dimensions.width&&l[0])switch(o=!0,l[0]){case this.STICKS_OUT_LEFT:u.setHorizontal("left"),this.options.targetJoint&&d.setHorizontal("right");break;case this.STICKS_OUT_RIGHT:u.setHorizontal("right"),this.options.targetJoint&&d.setHorizontal("left")}if(c.height>=this.dimensions.height&&l[1])switch(o=!0,l[1]){case this.STICKS_OUT_TOP:u.setVertical("top"),this.options.targetJoint&&d.setVertical("bottom");break;case this.STICKS_OUT_BOTTOM:u.setVertical("bottom"),this.options.targetJoint&&d.setVertical("top")}return o?(this.options.stem&&(p=u),i=this.getPosition(e,u,d,p),s=this._sticksOut(i),r=!1,a=!1,s[0]&&s[0]!==l[0]&&(r=!0,u.setHorizontal(this.options.tipJoint.horizontal),this.options.targetJoint&&d.setHorizontal(this.options.targetJoint.horizontal)),s[1]&&s[1]!==l[1]&&(a=!0,u.setVertical(this.options.tipJoint.vertical),this.options.targetJoint&&d.setVertical(this.options.targetJoint.vertical)),r&&a?n:((r||a)&&(this.options.stem&&(p=u),i=this.getPosition(e,u,d,p)),{position:i,stem:p})):n},t.prototype._sticksOut=function(t){var e,i,o,s;return i=this.adapter.scrollOffset(),s=this.adapter.viewportDimensions(),e=[t.left-i[0],t.top-i[1]],o=[!1,!1],0>e[0]?o[0]=this.STICKS_OUT_LEFT:e[0]+this.dimensions.width>s.width&&(o[0]=this.STICKS_OUT_RIGHT),0>e[1]?o[1]=this.STICKS_OUT_TOP:e[1]+this.dimensions.height>s.height&&(o[1]=this.STICKS_OUT_BOTTOM),o},t.prototype._draw=function(){var e,i,o,s,n,r,a,h,p,l,d,u,c,g,f,m,v,_,w,b=this;if(this.backgroundCanvas&&this.redraw){if(this.debug("Drawing background."),this.redraw=!1,this.currentStem){for(v=["top","right","bottom","left"],f=0,m=v.length;m>f;f++)u=v[f],this.adapter.removeClass(this.container,"stem-"+u);this.adapter.addClass(this.container,"stem-"+this.currentStem.horizontal),this.adapter.addClass(this.container,"stem-"+this.currentStem.vertical)}return r=[0,0],a=[0,0],0>__indexOf.call(this.options.hideTriggers,"closeButton")||(n=new t.Joint(((_=this.currentStem)!=null?_+"":void 0)==="top right"?"top left":"top right"),r=[this.options.closeButtonRadius+this.options.closeButtonOffset[0],this.options.closeButtonRadius+this.options.closeButtonOffset[1]],a=[this.options.closeButtonRadius-this.options.closeButtonOffset[0],this.options.closeButtonRadius-this.options.closeButtonOffset[1]]),o=this.adapter.clone(this.dimensions),s=[0,0],this.options.borderWidth&&(o.width+=this.options.borderWidth*2,o.height+=this.options.borderWidth*2,s[0]-=this.options.borderWidth,s[1]-=this.options.borderWidth),this.options.shadow&&(o.width+=this.options.shadowBlur*2,o.width+=Math.max(0,this.options.shadowOffset[0]-this.options.shadowBlur*2),o.height+=this.options.shadowBlur*2,o.height+=Math.max(0,this.options.shadowOffset[1]-this.options.shadowBlur*2),s[0]-=Math.max(0,this.options.shadowBlur-this.options.shadowOffset[0]),s[1]-=Math.max(0,this.options.shadowBlur-this.options.shadowOffset[1])),i={left:0,right:0,top:0,bottom:0},this.currentStem&&(this.currentStem.left?i.left=this.options.stemLength:this.currentStem.right&&(i.right=this.options.stemLength),this.currentStem.top?i.top=this.options.stemLength:this.currentStem.bottom&&(i.bottom=this.options.stemLength)),n&&(n.left?i.left=Math.max(i.left,a[0]):n.right&&(i.right=Math.max(i.right,a[0])),n.top?i.top=Math.max(i.top,a[1]):n.bottom&&(i.bottom=Math.max(i.bottom,a[1]))),o.width+=i.left+i.right,o.height+=i.top+i.bottom,s[0]-=i.left,s[1]-=i.top,this.currentStem&&this.options.borderWidth&&(w=this._getPathStemMeasures(this.options.stemBase,this.options.stemLength,this.options.borderWidth),g=w.stemLength,c=w.stemBase),e=this.adapter.unwrap(this.backgroundCanvas),e.width=o.width,e.height=o.height,this.adapter.css(this.backgroundCanvas,{width:""+e.width+"px",height:""+e.height+"px",left:""+s[0]+"px",top:""+s[1]+"px"}),h=e.getContext("2d"),h.setTransform(1,0,0,1,0,0),h.clearRect(0,0,e.width,e.height),h.beginPath(),h.fillStyle=this._getColor(h,this.dimensions,this.options.background,this.options.backgroundGradientHorizontal),h.lineJoin="miter",h.miterLimit=500,d=this.options.borderWidth/2,this.options.borderWidth?(h.strokeStyle=this.options.borderColor,h.lineWidth=this.options.borderWidth):(g=this.options.stemLength,c=this.options.stemBase),c==null&&(c=0),l=function(t,e,i){return i&&h.moveTo(Math.max(c,b.options.borderRadius,r[0])+1-d,-d),e?(h.lineTo(t/2-c/2,-d),h.lineTo(t/2,-g-d),h.lineTo(t/2+c/2,-d)):void 0},p=function(t,e,i){var o,s,n,a;return t?(h.lineTo(-c+d,0-d),h.lineTo(g+d,-g-d),h.lineTo(d,c-d)):e?(a=b.options.closeButtonOffset,n=r[0],i%2!==0&&(a=[a[1],a[0]],n=r[1]),o=Math.acos(a[1]/b.options.closeButtonRadius),s=Math.acos(a[0]/b.options.closeButtonRadius),h.lineTo(-n+d,-d),h.arc(d-a[0],-d+a[1],b.options.closeButtonRadius,-(Math.PI/2+o),s,!1)):(h.lineTo(-b.options.borderRadius+d,-d),h.quadraticCurveTo(d,-d,d,b.options.borderRadius-d))},h.translate(-s[0],-s[1]),h.save(),function(){var e,i,o,s,r,a,d,u,c,g,f;for(f=[],i=c=0,g=t.positions.length/2;0>g?c>g:g>c;i=0>g?--c:++c)r=i*2,a=i===0||i===3?0:b.dimensions.width,d=2>i?0:b.dimensions.height,u=Math.PI/2*i,o=i%2===0?b.dimensions.width:b.dimensions.height,s=new t.Joint(t.positions[r]),e=new t.Joint(t.positions[r+1]),h.save(),h.translate(a,d),h.rotate(u),l(o,s.eql(b.currentStem),i===0),h.translate(o,0),p(e.eql(b.currentStem),e.eql(n),i),f.push(h.restore());return f}(),h.closePath(),h.save(),this.options.shadow&&(h.shadowColor=this.options.shadowColor,h.shadowBlur=this.options.shadowBlur,h.shadowOffsetX=this.options.shadowOffset[0],h.shadowOffsetY=this.options.shadowOffset[1]),h.fill(),h.restore(),this.options.borderWidth&&h.stroke(),h.restore(),n?function(){var t,e,i,o,s;return i=e=b.options.closeButtonRadius*2,n+""=="top right"?(s=[b.dimensions.width-b.options.closeButtonOffset[0],b.options.closeButtonOffset[1]],t=[s[0]+d,s[1]-d]):(s=[b.options.closeButtonOffset[0],b.options.closeButtonOffset[1]],t=[s[0]-d,s[1]-d]),h.translate(t[0],t[1]),o=b.options.closeButtonCrossSize/2,h.save(),h.beginPath(),h.strokeStyle=b.options.closeButtonCrossColor,h.lineWidth=b.options.closeButtonCrossLineWidth,h.lineCap="round",h.moveTo(-o,-o),h.lineTo(o,o),h.stroke(),h.beginPath(),h.moveTo(o,-o),h.lineTo(-o,o),h.stroke(),h.restore(),b.adapter.css(b.closeButtonElement,{left:""+(s[0]-o-b.options.closeButtonLinkOverscan)+"px",top:""+(s[1]-o-b.options.closeButtonLinkOverscan)+"px",width:""+(b.options.closeButtonCrossSize+b.options.closeButtonLinkOverscan*2)+"px",height:""+(b.options.closeButtonCrossSize+b.options.closeButtonLinkOverscan*2)+"px"})}():void 0}},t.prototype._getPathStemMeasures=function(t,e,i){var o,s,n,r,a,h,p;if(r=i/2,n=Math.atan(t/2/e),o=n*2,a=r/Math.sin(o),s=2*a*Math.cos(n),p=r+e-s,0>p)throw Error("Sorry but your stemLength / stemBase ratio is strange.");return h=Math.tan(n)*p*2,{stemLength:p,stemBase:h}},t.prototype._getColor=function(t,e,i,o){var s,n,r,a,h;if(o==null&&(o=!1),typeof i=="string")return i;for(n=o?t.createLinearGradient(0,0,e.width,0):t.createLinearGradient(0,0,0,e.height),r=a=0,h=i.length;h>a;r=++a)s=i[r],n.addColorStop(s[0],s[1]);return n},t.prototype._searchAndActivateCloseButtons=function(){var t,e,i,o;for(o=this.adapter.findAll(this.container,"."+this["class"].close),e=0,i=o.length;i>e;e++)t=o[e],this.hideTriggers.push({element:this.adapter.wrap(t),event:"click"});return this.currentObservers.showing&&this._setupObservers("-showing","showing"),this.currentObservers.visible?this._setupObservers("-visible","visible"):void 0},t.prototype._activateFirstInput=function(){var t;return t=this.adapter.unwrap(this.adapter.find(this.container,"input, textarea")),t!=null?typeof t.focus=="function"?t.focus():void 0:void 0},t.prototype._followMousePosition=function(){return this.options.fixed?void 0:this.adapter.observe(document.body,"mousemove",this.bound.reposition)},t.prototype._stopFollowingMousePosition=function(){return this.options.fixed?void 0:this.adapter.stopObserving(document.body,"mousemove",this.bound.reposition)},t.prototype._clearShowTimeout=function(){return clearTimeout(this._showTimeoutId)},t.prototype._clearHideTimeout=function(){return clearTimeout(this._hideTimeoutId)},t.prototype._clearTimeouts=function(){return clearTimeout(this._visibilityStateTimeoutId),this._clearShowTimeout(),this._clearHideTimeout()},t.prototype._triggerElementExists=function(){var t;t=this.adapter.unwrap(this.triggerElement);while(t.parentNode){if(t.parentNode.tagName==="BODY")return!0;t=t.parentNode}return!1},t.prototype._loadAjax=function(){var t=this;if(!this.loading)return this.loaded=!1,this.loading=!0,this.adapter.addClass(this.container,this["class"].loading),this.debug("Loading content from "+this.options.ajax),this.adapter.ajax({url:this.options.ajax,method:this.options.ajaxMethod,onSuccess:function(e){return t.debug("Loading successful."),t.adapter.removeClass(t.container,t["class"].loading),t.setContent(e)},onError:function(e){var i;return i="There was a problem downloading the content.",t.debug(i,e),t.setContent(i),t.adapter.addClass(t.container,t["class"].ajaxError)},onComplete:function(){return t.adapter.removeClass(t.container,t["class"].loading),t.loading=!1,t.loaded=!0,t._searchAndActivateCloseButtons(),t._activateFirstInput(),t.reposition()}})},t.prototype._ensureTriggerElement=function(){return this._triggerElementExists()?void 0:(this.deactivate(),this._stopEnsureTriggerElement())},t.prototype._ensureTriggerElementInterval=1e3,t.prototype._startEnsureTriggerElement=function(){var t=this;return this._ensureTriggerElementTimeoutId=setInterval(function(){return t._ensureTriggerElement()},this._ensureTriggerElementInterval)},t.prototype._stopEnsureTriggerElement=function(){return clearInterval(this._ensureTriggerElementTimeoutId)},t}(),vendors=["khtml","ms","o","moz","webkit"],Opentip.prototype.setCss3Style=function(t,e){var i,o,s,n,r;t=this.adapter.unwrap(t),r=[];for(i in e)__hasProp.call(e,i)&&(o=e[i],t.style[i]!=null?r.push(t.style[i]=o):r.push(function(){var e,r,a;for(a=[],e=0,r=vendors.length;r>e;e++)s=vendors[e],n=""+this.ucfirst(s)+this.ucfirst(i),t.style[n]!=null?a.push(t.style[n]=o):a.push(void 0);return a}.call(this)));return r},Opentip.prototype.defer=function(t){return setTimeout(t,0)},Opentip.prototype.setTimeout=function(t,e){return setTimeout(t,e?e*1e3:0)},Opentip.prototype.ucfirst=function(t){return t==null?"":t.charAt(0).toUpperCase()+t.slice(1)},Opentip.prototype.dasherize=function(t){return t.replace(/([A-Z])/g,function(t,e){return"-"+e.toLowerCase()})},Opentip.Joint=function(){function t(t){t!=null&&(t instanceof Opentip.Joint&&(t+=""),this.set(t))}return t.prototype.set=function(t){return t=t.toLowerCase(),this.setHorizontal(t),this.setVertical(t),this},t.prototype.setHorizontal=function(t){var e,i,o,s,n,r,a;for(i=["left","center","right"],o=0,n=i.length;n>o;o++)e=i[o],~t.indexOf(e)&&(this.horizontal=e.toLowerCase());for(this.horizontal==null&&(this.horizontal="center"),a=[],s=0,r=i.length;r>s;s++)e=i[s],a.push(this[e]=this.horizontal===e?e:void 0);return a},t.prototype.setVertical=function(t){var e,i,o,s,n,r,a;for(i=["top","middle","bottom"],o=0,n=i.length;n>o;o++)e=i[o],~t.indexOf(e)&&(this.vertical=e.toLowerCase());for(this.vertical==null&&(this.vertical="middle"),a=[],s=0,r=i.length;r>s;s++)e=i[s],a.push(this[e]=this.vertical===e?e:void 0);return a},t.prototype.eql=function(t){return t!=null&&this.horizontal===t.horizontal&&this.vertical===t.vertical},t.prototype.flip=function(){var t,e;return e=Opentip.position[this.toString(!0)],t=(e+4)%8,this.set(Opentip.positions[t]),this},t.prototype.toString=function(t){var e,i;return t==null&&(t=!1),i=this.vertical==="middle"?"":this.vertical,e=this.horizontal==="center"?"":this.horizontal,i&&e&&(e=t?Opentip.prototype.ucfirst(e):" "+e),""+i+e},t}(),Opentip.prototype._positionsEqual=function(t,e){return t!=null&&e!=null&&t.left===e.left&&t.top===e.top},Opentip.prototype._dimensionsEqual=function(t,e){return t!=null&&e!=null&&t.width===e.width&&t.height===e.height},Opentip.prototype.debug=function(){var t;return t=1>arguments.length?[]:__slice.call(arguments,0),Opentip.debug&&(typeof console!="undefined"&&console!==null?console.debug:void 0)!=null?(t.unshift("#"+this.id+" |"),console.debug.apply(console,t)):void 0},Opentip.findElements=function(){var t,e,i,o,s,n,r,a,h,p;for(t=Opentip.adapter,h=t.findAll(document.body,"[data-ot]"),p=[],r=0,a=h.length;a>r;r++){i=h[r],n={},e=t.data(i,"ot"),(e===""||e==="true"||e==="yes")&&(e=t.attr(i,"title"),t.attr(i,"title","")),e=e||"";for(o in Opentip.styles.standard)s=t.data(i,"ot"+Opentip.prototype.ucfirst(o)),s!=null&&(s==="yes"||s==="true"||s==="on"?s=!0:(s==="no"||s==="false"||s==="off")&&(s=!1),n[o]=s);p.push(new Opentip(i,e,n))}return p},Opentip.version="2.2.2",Opentip.debug=!1,Opentip.lastId=0,Opentip.lastZIndex=100,Opentip.tips=[],Opentip._abortShowingGroup=function(t,e){var i,o,s,n,r;for(n=Opentip.tips,r=[],o=0,s=n.length;s>o;o++)i=n[o],i!==e&&i.options.group===t?r.push(i._abortShowing()):r.push(void 0);return r},Opentip._hideGroup=function(t,e){var i,o,s,n,r;for(n=Opentip.tips,r=[],o=0,s=n.length;s>o;o++)i=n[o],i!==e&&i.options.group===t?r.push(i.hide()):r.push(void 0);return r},Opentip.adapters={},Opentip.adapter=null,firstAdapter=!0,Opentip.addAdapter=function(t){return Opentip.adapters[t.name]=t,firstAdapter?(Opentip.adapter=t,t.domReady(Opentip.findElements),firstAdapter=!1):void 0},Opentip.positions=["top","topRight","right","bottomRight","bottom","bottomLeft","left","topLeft"],Opentip.position={},_ref=Opentip.positions,i=_i=0,_len=_ref.length;_len>_i;i=++_i)position=_ref[i],Opentip.position[position]=i;Opentip.styles={standard:{"extends":null,title:void 0,escapeTitle:!0,escapeContent:!1,className:"standard",stem:!0,delay:null,hideDelay:.1,fixed:!1,showOn:"mouseover",hideTrigger:"trigger",hideTriggers:[],hideOn:null,offset:[0,0],containInViewport:!0,autoOffset:!0,showEffect:"appear",hideEffect:"fade",showEffectDuration:.3,hideEffectDuration:.2,stemLength:5,stemBase:8,tipJoint:"top left",target:null,targetJoint:null,ajax:!1,ajaxMethod:"GET",ajaxCache:!0,group:null,style:null,background:"#fff18f",backgroundGradientHorizontal:!1,closeButtonOffset:[5,5],closeButtonRadius:7,closeButtonCrossSize:4,closeButtonCrossColor:"#d2c35b",closeButtonCrossLineWidth:1.5,closeButtonLinkOverscan:6,borderRadius:5,borderWidth:1,borderColor:"#f2e37b",shadow:!0,shadowBlur:10,shadowOffset:[3,3],shadowColor:"rgba(0, 0, 0, 0.1)"},glass:{"extends":"standard",className:"glass",background:[[0,"rgba(252, 252, 252, 0.8)"],[.5,"rgba(255, 255, 255, 0.8)"],[.5,"rgba(250, 250, 250, 0.9)"],[1,"rgba(245, 245, 245, 0.9)"]],borderColor:"#eee",closeButtonCrossColor:"rgba(0, 0, 0, 0.2)",borderRadius:15,closeButtonRadius:10,closeButtonOffset:[8,8]},dark:{"extends":"standard",className:"dark",borderRadius:13,borderColor:"#444",closeButtonCrossColor:"rgba(240, 240, 240, 1)",shadowColor:"rgba(0, 0, 0, 0.3)",shadowOffset:[2,2],background:[[0,"rgba(30, 30, 30, 0.7)"],[.5,"rgba(30, 30, 30, 0.8)"],[.5,"rgba(10, 10, 10, 0.8)"],[1,"rgba(10, 10, 10, 0.9)"]]},alert:{"extends":"standard",className:"alert",borderRadius:1,borderColor:"#AE0D11",closeButtonCrossColor:"rgba(255, 255, 255, 1)",shadowColor:"rgba(0, 0, 0, 0.3)",shadowOffset:[2,2],background:[[0,"rgba(203, 15, 19, 0.7)"],[.5,"rgba(203, 15, 19, 0.8)"],[.5,"rgba(189, 14, 18, 0.8)"],[1,"rgba(179, 14, 17, 0.9)"]]}},Opentip.defaultStyle="standard",typeof module!="undefined"&&module!==null?module.exports=Opentip:window.Opentip=Opentip;var __slice=[].slice;(function(t){var e;return t.fn.opentip=function(t,e,i){return new Opentip(this,t,e,i)},e=function(){function e(){}return e.prototype.name="jquery",e.prototype.domReady=function(e){return t(e)},e.prototype.create=function(e){return t(e)},e.prototype.wrap=function(e){if(e=t(e),e.length>1)throw Error("Multiple elements provided.");return e},e.prototype.unwrap=function(e){return t(e)[0]},e.prototype.tagName=function(t){return this.unwrap(t).tagName},e.prototype.attr=function(){var e,i,o;return i=arguments[0],e=2>arguments.length?[]:__slice.call(arguments,1),(o=t(i)).attr.apply(o,e)},e.prototype.data=function(){var e,i,o;return i=arguments[0],e=2>arguments.length?[]:__slice.call(arguments,1),(o=t(i)).data.apply(o,e)},e.prototype.find=function(e,i){return t(e).find(i)},e.prototype.findAll=function(){return this.find.apply(this,arguments)},e.prototype.update=function(e,i,o){return e=t(e),o?e.text(i):e.html(i)},e.prototype.append=function(e,i){return t(e).append(i)},e.prototype.addClass=function(e,i){return t(e).addClass(i)},e.prototype.removeClass=function(e,i){return t(e).removeClass(i)},e.prototype.css=function(e,i){return t(e).css(i)},e.prototype.dimensions=function(e){return{width:t(e).outerWidth(),height:t(e).outerHeight()}},e.prototype.scrollOffset=function(){return[window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop]},e.prototype.viewportDimensions=function(){return{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}},e.prototype.mousePosition=function(t){return t==null?null:{x:t.pageX,y:t.pageY}},e.prototype.offset=function(e){var i;return i=t(e).offset(),{left:i.left,top:i.top}},e.prototype.observe=function(e,i,o){return t(e).bind(i,o)},e.prototype.stopObserving=function(e,i,o){return t(e).unbind(i,o)},e.prototype.ajax=function(e){var i,o;if(e.url==null)throw Error("No url provided");return t.ajax({url:e.url,type:(i=(o=e.method)!=null?o.toUpperCase():void 0)!=null?i:"GET"}).done(function(t){return typeof e.onSuccess=="function"?e.onSuccess(t):void 0
}).fail(function(t){return typeof e.onError=="function"?e.onError("Server responded with status "+t.status):void 0}).always(function(){return typeof e.onComplete=="function"?e.onComplete():void 0})},e.prototype.clone=function(e){return t.extend({},e)},e.prototype.extend=function(){var e,i;return i=arguments[0],e=2>arguments.length?[]:__slice.call(arguments,1),t.extend.apply(t,[i].concat(__slice.call(e)))},e}(),Opentip.addAdapter(new e)})(jQuery),document.createElement("canvas").getContext||function(){function t(){return this.context_||(this.context_=new p(this))}function e(t,e){var i=x.call(arguments,2);return function(){return t.apply(e,i.concat(x.call(arguments)))}}function i(t){var e=t.srcElement;switch(t.propertyName){case"width":e.style.width=e.attributes.width.nodeValue+"px",e.getContext().clearRect();break;case"height":e.style.height=e.attributes.height.nodeValue+"px",e.getContext().clearRect()}}function o(t){var e=t.srcElement;e.firstChild&&(e.firstChild.style.width=e.clientWidth+"px",e.firstChild.style.height=e.clientHeight+"px")}function s(){return[[1,0,0],[0,1,0],[0,0,1]]}function n(t,e){for(var i=s(),o=0;3>o;o++)for(var n=0;3>n;n++){for(var r=0,a=0;3>a;a++)r+=t[o][a]*e[a][n];i[o][n]=r}return i}function r(t,e){e.fillStyle=t.fillStyle,e.lineCap=t.lineCap,e.lineJoin=t.lineJoin,e.lineWidth=t.lineWidth,e.miterLimit=t.miterLimit,e.shadowBlur=t.shadowBlur,e.shadowColor=t.shadowColor,e.shadowOffsetX=t.shadowOffsetX,e.shadowOffsetY=t.shadowOffsetY,e.strokeStyle=t.strokeStyle,e.globalAlpha=t.globalAlpha,e.arcScaleX_=t.arcScaleX_,e.arcScaleY_=t.arcScaleY_,e.lineScale_=t.lineScale_}function a(t){var e,i=1;if(t+="",t.substring(0,3)=="rgb"){var o=t.indexOf("(",3),s=t.indexOf(")",o+1),n=t.substring(o+1,s).split(",");e="#";for(var r=0;3>r;r++)e+=C[Number(n[r])];n.length==4&&t.substr(3,1)=="a"&&(i=n[3])}else e=t;return{color:e,alpha:i}}function h(t){switch(t){case"butt":return"flat";case"round":return"round";case"square":default:return"square"}}function p(t){this.m_=s(),this.mStack_=[],this.aStack_=[],this.currentPath_=[],this.strokeStyle="#000",this.fillStyle="#000",this.lineWidth=1,this.lineJoin="miter",this.lineCap="butt",this.miterLimit=y*1,this.globalAlpha=1,this.canvas=t;var e=t.ownerDocument.createElement("div");e.style.width=t.clientWidth+"px",e.style.height=t.clientHeight+"px",e.style.position="absolute",t.appendChild(e),this.element_=e,this.arcScaleX_=1,this.arcScaleY_=1,this.lineScale_=1}function l(t,e,i,o){t.currentPath_.push({type:"bezierCurveTo",cp1x:e.x,cp1y:e.y,cp2x:i.x,cp2y:i.y,x:o.x,y:o.y}),t.currentX_=o.x,t.currentY_=o.y}function d(t){for(var e=0;3>e;e++)for(var i=0;2>i;i++)if(!isFinite(t[e][i])||isNaN(t[e][i]))return!1;return!0}function u(t,e,i){if(d(e)&&(t.m_=e,i)){var o=e[0][0]*e[1][1]-e[0][1]*e[1][0];t.lineScale_=b(w(o))}}function c(t){this.type_=t,this.x0_=0,this.y0_=0,this.r0_=0,this.x1_=0,this.y1_=0,this.r1_=0,this.colors_=[]}function g(){}var f=Math,m=f.round,v=f.sin,_=f.cos,w=f.abs,b=f.sqrt,y=10,T=y/2,x=Array.prototype.slice,O={init:function(t){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var i=t||document;i.createElement("canvas"),i.attachEvent("onreadystatechange",e(this.init_,this,i))}},init_:function(t){if(t.namespaces.g_vml_||t.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML"),t.namespaces.g_o_||t.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML"),!t.styleSheets.ex_canvas_){var e=t.createStyleSheet();e.owningElement.id="ex_canvas_",e.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}for(var i=t.getElementsByTagName("canvas"),o=0;i.length>o;o++)this.initElement(i[o])},initElement:function(e){if(!e.getContext){e.getContext=t,e.innerHTML="",e.attachEvent("onpropertychange",i),e.attachEvent("onresize",o);var s=e.attributes;s.width&&s.width.specified?e.style.width=s.width.nodeValue+"px":e.width=e.clientWidth,s.height&&s.height.specified?e.style.height=s.height.nodeValue+"px":e.height=e.clientHeight}return e}};O.init();for(var C=[],S=0;16>S;S++)for(var E=0;16>E;E++)C[S*16+E]=S.toString(16)+E.toString(16);var B=p.prototype;B.clearRect=function(){this.element_.innerHTML=""},B.beginPath=function(){this.currentPath_=[]},B.moveTo=function(t,e){var i=this.getCoords_(t,e);this.currentPath_.push({type:"moveTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},B.lineTo=function(t,e){var i=this.getCoords_(t,e);this.currentPath_.push({type:"lineTo",x:i.x,y:i.y}),this.currentX_=i.x,this.currentY_=i.y},B.bezierCurveTo=function(t,e,i,o,s,n){var r=this.getCoords_(s,n),a=this.getCoords_(t,e),h=this.getCoords_(i,o);l(this,a,h,r)},B.quadraticCurveTo=function(t,e,i,o){var s=this.getCoords_(t,e),n=this.getCoords_(i,o),r={x:this.currentX_+2/3*(s.x-this.currentX_),y:this.currentY_+2/3*(s.y-this.currentY_)},a={x:r.x+(n.x-this.currentX_)/3,y:r.y+(n.y-this.currentY_)/3};l(this,r,a,n)},B.arc=function(t,e,i,o,s,n){i*=y;var r=n?"at":"wa",a=t+_(o)*i-T,h=e+v(o)*i-T,p=t+_(s)*i-T,l=e+v(s)*i-T;a!=p||n||(a+=.125);var d=this.getCoords_(t,e),u=this.getCoords_(a,h),c=this.getCoords_(p,l);this.currentPath_.push({type:r,x:d.x,y:d.y,radius:i,xStart:u.x,yStart:u.y,xEnd:c.x,yEnd:c.y})},B.rect=function(t,e,i,o){this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+o),this.lineTo(t,e+o),this.closePath()},B.strokeRect=function(t,e,i,o){var s=this.currentPath_;this.beginPath(),this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+o),this.lineTo(t,e+o),this.closePath(),this.stroke(),this.currentPath_=s},B.fillRect=function(t,e,i,o){var s=this.currentPath_;this.beginPath(),this.moveTo(t,e),this.lineTo(t+i,e),this.lineTo(t+i,e+o),this.lineTo(t,e+o),this.closePath(),this.fill(),this.currentPath_=s},B.createLinearGradient=function(t,e,i,o){var s=new c("gradient");return s.x0_=t,s.y0_=e,s.x1_=i,s.y1_=o,s},B.createRadialGradient=function(t,e,i,o,s,n){var r=new c("gradientradial");return r.x0_=t,r.y0_=e,r.r0_=i,r.x1_=o,r.y1_=s,r.r1_=n,r},B.drawImage=function(t){var e,i,o,s,n,r,a,h,p=t.runtimeStyle.width,l=t.runtimeStyle.height;t.runtimeStyle.width="auto",t.runtimeStyle.height="auto";var d=t.width,u=t.height;if(t.runtimeStyle.width=p,t.runtimeStyle.height=l,arguments.length==3)e=arguments[1],i=arguments[2],n=r=0,a=o=d,h=s=u;else if(arguments.length==5)e=arguments[1],i=arguments[2],o=arguments[3],s=arguments[4],n=r=0,a=d,h=u;else{if(arguments.length!=9)throw Error("Invalid number of arguments");n=arguments[1],r=arguments[2],a=arguments[3],h=arguments[4],e=arguments[5],i=arguments[6],o=arguments[7],s=arguments[8]}var c=this.getCoords_(e,i),g=[],v=10,_=10;if(g.push(" <g_vml_:group",' coordsize="',y*v,",",y*_,'"',' coordorigin="0,0"',' style="width:',v,"px;height:",_,"px;position:absolute;"),this.m_[0][0]!=1||this.m_[0][1]){var w=[];w.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",m(c.x/y),",","Dy=",m(c.y/y),"");var b=c,T=this.getCoords_(e+o,i),x=this.getCoords_(e,i+s),O=this.getCoords_(e+o,i+s);b.x=f.max(b.x,T.x,x.x,O.x),b.y=f.max(b.y,T.y,x.y,O.y),g.push("padding:0 ",m(b.x/y),"px ",m(b.y/y),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",w.join(""),", sizingmethod='clip');")}else g.push("top:",m(c.y/y),"px;left:",m(c.x/y),"px;");g.push(' ">','<g_vml_:image src="',t.src,'"',' style="width:',y*o,"px;"," height:",y*s,'px;"',' cropleft="',n/d,'"',' croptop="',r/u,'"',' cropright="',(d-n-a)/d,'"',' cropbottom="',(u-r-h)/u,'"'," />","</g_vml_:group>"),this.element_.insertAdjacentHTML("BeforeEnd",g.join(""))},B.stroke=function(t){var e=[],i=a(t?this.fillStyle:this.strokeStyle),o=i.color,s=i.alpha*this.globalAlpha,n=10,r=10;e.push("<g_vml_:shape",' filled="',!!t,'"',' style="position:absolute;width:',n,"px;height:",r,'px;"',' coordorigin="0 0" coordsize="',y*n," ",y*r,'"',' stroked="',!t,'"',' path="');for(var p={x:null,y:null},l={x:null,y:null},d=0;this.currentPath_.length>d;d++){var u,c=this.currentPath_[d];switch(c.type){case"moveTo":u=c,e.push(" m ",m(c.x),",",m(c.y));break;case"lineTo":e.push(" l ",m(c.x),",",m(c.y));break;case"close":e.push(" x "),c=null;break;case"bezierCurveTo":e.push(" c ",m(c.cp1x),",",m(c.cp1y),",",m(c.cp2x),",",m(c.cp2y),",",m(c.x),",",m(c.y));break;case"at":case"wa":e.push(" ",c.type," ",m(c.x-this.arcScaleX_*c.radius),",",m(c.y-this.arcScaleY_*c.radius)," ",m(c.x+this.arcScaleX_*c.radius),",",m(c.y+this.arcScaleY_*c.radius)," ",m(c.xStart),",",m(c.yStart)," ",m(c.xEnd),",",m(c.yEnd))}c&&((p.x==null||p.x>c.x)&&(p.x=c.x),(l.x==null||c.x>l.x)&&(l.x=c.x),(p.y==null||p.y>c.y)&&(p.y=c.y),(l.y==null||c.y>l.y)&&(l.y=c.y))}if(e.push(' ">'),t)if(typeof this.fillStyle=="object"){var g=this.fillStyle,v=0,_={x:0,y:0},w=0,b=1;if(g.type_=="gradient"){var T=g.x0_/this.arcScaleX_,x=g.y0_/this.arcScaleY_,O=g.x1_/this.arcScaleX_,C=g.y1_/this.arcScaleY_,S=this.getCoords_(T,x),E=this.getCoords_(O,C),B=E.x-S.x,k=E.y-S.y;v=Math.atan2(B,k)*180/Math.PI,0>v&&(v+=360),1e-6>v&&(v=0)}else{var S=this.getCoords_(g.x0_,g.y0_),P=l.x-p.x,I=l.y-p.y;_={x:(S.x-p.x)/P,y:(S.y-p.y)/I},P/=this.arcScaleX_*y,I/=this.arcScaleY_*y;var M=f.max(P,I);w=2*g.r0_/M,b=2*g.r1_/M-w}var L=g.colors_;L.sort(function(t,e){return t.offset-e.offset});for(var J=L.length,H=L[0].color,z=L[J-1].color,A=L[0].alpha*this.globalAlpha,R=L[J-1].alpha*this.globalAlpha,j=[],d=0;J>d;d++){var W=L[d];j.push(W.offset*b+w+" "+W.color)}e.push('<g_vml_:fill type="',g.type_,'"',' method="none" focus="100%"',' color="',H,'"',' color2="',z,'"',' colors="',j.join(","),'"',' opacity="',R,'"',' g_o_:opacity2="',A,'"',' angle="',v,'"',' focusposition="',_.x,",",_.y,'" />')}else e.push('<g_vml_:fill color="',o,'" opacity="',s,'" />');else{var D=this.lineScale_*this.lineWidth;1>D&&(s*=D),e.push("<g_vml_:stroke",' opacity="',s,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',h(this.lineCap),'"',' weight="',D,'px"',' color="',o,'" />')}e.push("</g_vml_:shape>"),this.element_.insertAdjacentHTML("beforeEnd",e.join(""))},B.fill=function(){this.stroke(!0)},B.closePath=function(){this.currentPath_.push({type:"close"})},B.getCoords_=function(t,e){var i=this.m_;return{x:y*(t*i[0][0]+e*i[1][0]+i[2][0])-T,y:y*(t*i[0][1]+e*i[1][1]+i[2][1])-T}},B.save=function(){var t={};r(this,t),this.aStack_.push(t),this.mStack_.push(this.m_),this.m_=n(s(),this.m_)},B.restore=function(){r(this.aStack_.pop(),this),this.m_=this.mStack_.pop()},B.translate=function(t,e){var i=[[1,0,0],[0,1,0],[t,e,1]];u(this,n(i,this.m_),!1)},B.rotate=function(t){var e=_(t),i=v(t),o=[[e,i,0],[-i,e,0],[0,0,1]];u(this,n(o,this.m_),!1)},B.scale=function(t,e){this.arcScaleX_*=t,this.arcScaleY_*=e;var i=[[t,0,0],[0,e,0],[0,0,1]];u(this,n(i,this.m_),!0)},B.transform=function(t,e,i,o,s,r){var a=[[t,e,0],[i,o,0],[s,r,1]];u(this,n(a,this.m_),!0)},B.setTransform=function(t,e,i,o,s,n){var r=[[t,e,0],[i,o,0],[s,n,1]];u(this,r,!0)},B.clip=function(){},B.arcTo=function(){},B.createPattern=function(){return new g},c.prototype.addColorStop=function(t,e){e=a(e),this.colors_.push({offset:t,color:e.color,alpha:e.alpha})},G_vmlCanvasManager=O,CanvasRenderingContext2D=p,CanvasGradient=c,CanvasPattern=g}()