/*
 HTML5 Image Enhancer
 Version: 1.0.5
 (c) 2011 DMXzone.com
 @build 08-09-2011 11:00:14
*/
(function(h){function s(b,a){this.target=b;this.init(a)}function v(b){for(var a in b)return!1;return!0}function l(){this.running=!1;this.actions=[]}function w(b){function a(a){d.lastIndex=0;return d.test(a)?'"'+a.replace(d,function(a){var b=e[a];return typeof b==="string"?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function c(b,d){var e,j,h,k=d[b];switch(typeof k){case "string":return a(k);case "number":return isFinite(k)?String(k):"null";case "boolean":case "null":return String(k);
case "object":if(!k)return"null";h=[];if(Object.prototype.toString.apply(k)==="[object Array]"){j=k.length;for(e=0;e<j;e+=1)h[e]=c(e,k)||"null";return j=h.length===0?"[]":"["+h.join(",")+"]"}for(e in k)Object.hasOwnProperty.call(k,e)&&(j=c(e,k))&&h.push(a(e)+":"+j);return j=h.length===0?"{}":"{"+h.join(",")+"}"}return""}var d=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,e={"\u0008":"\\b","\t":"\\t","\n":"\\n","\u000c":"\\f",
"\r":"\\r",'"':'\\"',"\\":"\\\\"};return c("",{"":b})}var x={border:{enabled:!1,outside:!1,position:"outer",width:1,color:"#000",gradient:{enabled:!1,type:"linear",startColor:"#000",endColor:"#333",hoverStartColor:"",hoverEndColor:"",startPos:"top",endPos:"bottom"},opacity:1,hoverColor:"",hoverOpacity:1,radius:[0,0,0,0]},description:{showAlways:!1,position:"bottom",bgColor:"#fff",bgOpacity:0.75,padding:5,align:"left",fontFamily:"sans-serif",fontStyle:"",fontSize:14,color:"#000",speed:400},filters:[],
hoverFilters:[],reflection:{enabled:!1,distance:0,height:0.33,opacity:0.33},shadow:{enabled:!1,offsetX:3,offsetY:3,blur:5,color:"#000",opacity:0.25,hoverColor:"",hoverOpacity:0.25},animate:!0,speed:400},u={aqua:"rgba(0,255,255,1)",black:"rgba(0,0,0,1)",blue:"rgba(0,0,255,1)",fuchsia:"rgba(255,0,255,1)",gray:"rgba(128,128,128,1)",green:"rgba(0,128,0,1)",lime:"rgba(0,255,0,1)",maroon:"rgba(128,0,0,1)",navy:"rgba(0,0,128,1)",olive:"rgba(128,128,0,1)",purple:"rgba(128,0,128,1)",red:"rgba(255,0,0,1)",
silver:"rgba(192,192,192,1)",teal:"rgba(0,128,128,1)",white:"rgba(255,255,255,1)",yellow:"rgba(255,255,0,1)",transparent:"rgba(0,0,0,0)"},y=0,t=!!document.createElement("canvas").getContext;s.filters={grayscale:function(b,a){for(var c=b.data,d=parseFloat(a)||1,e=0,f=c.length;e<f;e+=4){var g=Math.round(c[e]*0.299+c[e+1]*0.587+c[e+2]*0.114);c[e]=Math.min(255,Math.max(0,d*g+(1-d)*c[e]));c[e+1]=Math.min(255,Math.max(0,d*g+(1-d)*c[e+1]));c[e+2]=Math.min(255,Math.max(0,d*g+(1-d)*c[e+2]))}},invert:function(b){for(var b=
b.data,a=0,c=b.length;a<c;a+=4)b[a]=255-b[a],b[a+1]=255-b[a+1],b[a+2]=255-b[a+2]},sepia:function(b,a){for(var c,d,e,f=b.data,g=parseFloat(a)||1,i=0,j=f.length;i<j;i+=4)c=f[i],d=f[i+1],e=f[i+2],f[i]=Math.min(255,Math.max(0,g*(c*0.393+d*0.769+e*0.189)+(1-g)*c)),f[i+1]=Math.min(255,Math.max(0,g*(c*0.349+d*0.686+e*0.168)+(1-g)*d)),f[i+2]=Math.min(255,Math.max(0,g*(c*0.272+d*0.534+e*0.131)+(1-g)*e))},noise:function(b,a){for(var c=b.data,d=Math.max(parseInt(a)||30,0),e=0,f=c.length;e<f;e+=4){var g=Math.floor(d/
2-Math.random()*d);c[e]=Math.min(Math.max(c[e]+g,0),255);c[e+1]=Math.min(Math.max(c[e+1]+g,0),255);c[e+2]=Math.min(Math.max(c[e+2]+g,0),255)}},posterize:function(b,a){for(var c=b.data,d=Math.min(Math.max(parseInt(a)||5,2),255),e=256/d,d=255/(d-1),f=0,g=c.length;f<g;f+=4)c[f]=parseInt(d*parseInt(c[f]/e)),c[f+1]=parseInt(d*parseInt(c[f+1]/e)),c[f+2]=parseInt(d*parseInt(c[f+2]/e))},tint:function(b,a,c){/^#?[0-9A-Fa-f]{3}$|^#?[0-9A-Fa-f]{6}$/.test(a)||(a="ffffff");b=b.data;a=a.replace("#","")||"ffffff";
c=parseFloat(c)||0.3;a.length==3&&(a=a.replace(/(.)/g,"$1$1"));for(var a=parseInt(a,16),a={r:(a&16711680)>>16,g:(a&65280)>>8,b:a&255},d=0,e=b.length;d<e;d+=4)b[d]=Math.min(255,Math.max(0,c*a.r+(1-c)*b[d])),b[d+1]=Math.min(255,Math.max(0,c*a.g+(1-c)*b[d+1])),b[d+2]=Math.min(255,Math.max(0,c*a.b+(1-c)*b[d+2]))},blur:function(b,a){try{var c=b.width,d=c<<2,e=b.height,f=b.data,g=Math.max(parseFloat(a)||1,0),i;g<0&&(g=0);i=g>=2.5?0.98711*g-0.9633:g>=0.5?3.97156-4.14554*Math.sqrt(1-0.26891*g):2*g*(3.97156-
4.14554*Math.sqrt(0.865545));var g=i*i,j=g*i,h=1.57825+2.44413*i+1.4281*g+0.422205*j;i=(2.44413*i+2.85619*g+1.26661*j)/h;for(var g=-(1.4281*g+1.26661*j)/h,j=0.422205*j/h,h=1-(i+g+j),k=0;k<3;k++)for(var q=0;q<e;q++){for(var m=q*d+k,l=q*d+(c-1<<2)+k,n=f[m],o=n,p=o,r=p;m<=l;m+=4)n=h*f[m]+i*o+g*p+j*r,f[m]=n,r=p,p=o,o=n;m=q*d+(c-1<<2)+k;l=q*d+k;for(r=p=o=n=f[m];m>=l;m-=4)n=h*f[m]+i*o+g*p+j*r,f[m]=n,r=p,p=o,o=n}for(k=0;k<3;k++)for(q=0;q<c;q++){m=(q<<2)+k;l=(e-1)*d+(q<<2)+k;for(r=p=o=n=f[m];m<=l;m+=d)n=
h*f[m]+i*o+g*p+j*r,f[m]=n,r=p,p=o,o=n;m=(e-1)*d+(q<<2)+k;l=(q<<2)+k;for(r=p=o=n=f[m];m>=l;m-=d)n=h*f[m]+i*o+g*p+j*r,f[m]=n,r=p,p=o,o=n}}catch(s){}}};s.prototype={init:function(b){this.config=h.extend(!0,{},x,b);if(t||!this.isLoaded()){var a=this,b=/https?:\/\//.test(this.target.src)&&this.target.src.indexOf(window.location.host)==-1;if(t&&b)b=location.protocol==="https:",b=!this.target.src.indexOf("https:")||b?"https://img-to-json.appspot":"http://img-to-json.maxnov",b+=".com/?callback=?",h.ajax({url:b,
data:{url:escape(this.target.src)},dataType:"jsonp",timeout:3E3,success:function(b){var c=new Image;c.onload=function(){this.width=b.width;this.height=b.height;a.initCanvas(c);c=null};c.src=b.data},error:function(){var b=new Image;b.onload=function(){a.initCanvas(b);b=null};b.onerror=function(){console&&console.error&&console.error("Error loading image: ",this);b=null}}});else{var c=new Image;c.onload=function(){t?a.initCanvas(c):a.initFlash();c=null};c.src=this.target.src}}else this.initFlash()},
isLoaded:function(){if(!this.target.complete)return!1;if(typeof this.target.naturalWidth!="undefined"&&this.target.naturalWidth==0)return!1;return!0},generateId:function(){return"dmxHTML5ImageEnhancer"+ ++y},getSWFHTML:function(b,a){var c="";navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length?(c='<span><embed type="application/x-shockwave-flash" src="'+b+'dmxHTML5ImageEnhancer.swf" width="'+this.canvasWidth+'" height="'+this.canvasHeight+'"',this.target.id&&(c+=' id="'+a+'" name="'+
a+'" '),c+='wmode="transparent" flashvars="id='+a+"&src="+encodeURIComponent(this.target.src)+"&desc="+encodeURIComponent(this.target.alt)+"&width="+this.imageWidth+"&height="+this.imageHeight+"&config="+escape(this.getConfig())+'"',c+="/></span>"):(c='<span><object id="'+a+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+this.canvasWidth+'" height="'+this.canvasHeight+'">',c+='<param name="movie" value="'+b+'dmxHTML5ImageEnhancer.swf" />',c+='<param name="wmode" value="transparent" />',
c+='<param name="flashvars" value="id='+a+"&src="+encodeURIComponent(this.target.src)+"&desc="+encodeURIComponent(this.target.alt)+"&width="+this.imageWidth+"&height="+this.imageHeight+"&config="+escape(this.getConfig())+'" />',c+="</object></span>");return c},initFlash:function(){if(this.isLoaded()){this.imageWidth=this.width=h(this.target).attr("width");this.imageHeight=this.height=h(this.target).attr("height");var b=this.config.border.radius;this.useRadius=b[0]>0||b[1]>0||b[2]>0||b[3]>0;this.config.border.outside=
this.config.border.position!=="inner";this.config.border.width2=this.config.border.width<<1;this.config.border.enabled&&this.config.border.outside&&(this.width+=this.config.border.width2,this.height+=this.config.border.width2);this.canvasWidth=this.width;this.canvasHeight=this.height;this.config.reflection.enabled&&(this.canvasHeight+=this.height*this.config.reflection.height+this.config.reflection.distance);this.offsetY=this.offsetX=0;if(this.config.shadow.enabled){var a;a=this.config.shadow.blur;
this.offsetX=Math.max(0,a-this.config.shadow.offsetX);this.offsetY=Math.max(0,a-this.config.shadow.offsetY);b=this.config.shadow.offsetX+a;a=this.config.shadow.offsetY+a;this.canvasWidth+=this.offsetX+b;this.canvasHeight+=this.offsetY+a}b=h('script[src*="dmxHTML5ImageEnhancer.js"]');b.length==0&&(b=h('script[src*="dmxHTML5ImageEnhancer_src.js"]'));if(b.length>0&&(b=b.attr("src"),a=b.indexOf("dmxHTML5ImageEnhancer"),a!=-1)){var c=this.target.id||this.generateId();h(this.target).replaceWith(this.getSWFHTML(b.substr(0,
a),c));window[c]=h("#"+c)[0]}d=this;h.each(["click","mousedown","mouseup","mouseover","mouseout"],function(){h("#"+c).parent()[0]["on"+this.toString()]=d.target["on"+this.toString()]});h.each(["display","float","clear","vertical-align","margin-top","margin-right","margin-bottom","margin-left"],function(){h("#"+c).css(this.toString(),h(d.target).css(this.toString()))})}else{var d=this;window.setTimeout(function(){d.initFlash.call(d)},100)}},initCanvas:function(b){this.canvas=document.createElement("canvas");
this.width=this.target.width;this.height=this.target.height;this.imgWidth=this.width;this.imgHeight=this.height;var a=this;h.each(["click","mousedown","mouseup","mouseover","mouseout"],function(){h(a.canvas)[0]["on"+this.toString()]=a.target["on"+this.toString()]});h.each(["display","float","clear","vertical-align","margin-top","margin-right","margin-bottom","margin-left"],function(){h(a.canvas).css(this.toString(),h(a.target).css(this.toString()))});var c=this.config.border.radius;this.useRadius=
c[0]>0||c[1]>0||c[2]>0||c[3]>0;this.config.border.outside=this.config.border.position!=="inner";this.config.border.width2=this.config.border.width<<1;this.config.border.enabled&&this.config.border.outside&&(this.width+=this.config.border.width2,this.height+=this.config.border.width2);this.canvas.width=this.width;this.canvas.height=this.height;this.canvas.id=this.target.id||this.generateId();this.config.reflection.enabled&&(this.canvas.height+=this.height*this.config.reflection.height+this.config.reflection.distance);
this.offsetY=this.offsetX=0;if(this.config.shadow.enabled){var d;d=this.config.shadow.blur;this.offsetX=Math.max(0,d-this.config.shadow.offsetX);this.offsetY=Math.max(0,d-this.config.shadow.offsetY);c=this.config.shadow.offsetX+d;d=this.config.shadow.offsetY+d;this.canvas.width+=this.offsetX+c;this.canvas.height+=this.offsetY+d}this.context=this.canvas.getContext("2d");this.target.parentNode.replaceChild(this.canvas,this.target);h(this.canvas).data("ImageEnhancer",this);a=this;this.borderColor=this.config.border.color;
this.shadowColor=this.config.shadow.color;this.drawDescription=!1;this.requireUpdate=!0;this.startTime=(new Date).getTime();this.duration=this.config.speed;this.start=this.position=0;this.txtDuration=this.config.description.speed;this.destination=this.txtStart=this.txtPosition=0;h(this.canvas).hover(function(){if(!a.hoverImage&&(a.hoverImage=a.target,a.config.hoverFilters.length>0))try{var c=document.createElement("canvas");c.width=b.width;c.height=b.height;var d=c.getContext("2d");d.drawImage(b,
0,0,b.width,b.height);for(var e=d.getImageData(0,0,c.width,c.height),f=0;f<a.config.hoverFilters.length;++f){var g=a.config.hoverFilters[f].split("|");if(s.filters[g[0]]){var i=g[0];g[0]=e;s.filters[i].apply(null,g)}}d.putImageData(e,0,0);a.hoverImage=c}catch(h){}if(a.config.animate||!a.config.description.showAlways){if(a.drawDescription=!0,a.config.border.color=a.config.border.hoverColor!=""?a.config.border.hoverColor:a.config.border.color,a.config.shadow.color=a.config.shadow.hoverColor!=""?a.config.shadow.hoverColor:
a.config.shadow.color,a.requireUpdate=!0,a.startTime=(new Date).getTime(),a.start=a.position,a.destination=1,a.duration=(1-a.position)*a.config.speed,!a.config.description.showAlways)a.txtStart=a.txtPosition,a.txtDuration=(1-a.txtPosition)*a.config.description.speed}else a.position=1,a.draw.call(a)},function(){if(a.config.animate||!a.config.description.showAlways){if(a.drawDescription=!1,a.config.border.color=a.borderColor,a.config.shadow.color=a.shadowColor,a.requireUpdate=!0,a.startTime=(new Date).getTime(),
a.start=a.position,a.destination=0,a.duration=a.position*a.config.speed,!a.config.description.showAlways)a.txtStart=a.txtPosition,a.txtDuration=a.txtPosition*a.config.description.speed}else a.position=0,a.draw.call(a)});this.image=this.target;if(this.config.filters.length>0)try{var e=document.createElement("canvas");e.width=b.width;e.height=b.height;var f=e.getContext("2d");f.drawImage(b,0,0,b.width,b.height);for(var g=f.getImageData(0,0,e.width,e.height),c=0;c<this.config.filters.length;++c){var i=
this.config.filters[c].split("|");if(s.filters[i[0]]){var j=i[0];i[0]=g;s.filters[j].apply(null,i)}}f.putImageData(g,0,0);this.image=e}catch(z){}e=function(){if(this.position!=this.destination){var b=this.destination-a.start;this.position=this.start+Math.min(Math.max((Date.now()-this.startTime)/this.duration,0),1)*b;this.requireUpdate=!0}if(this.txtPosition!=this.destination)b=this.destination-this.txtStart,this.txtPosition=this.txtStart+Math.min(Math.max((Date.now()-this.startTime)/this.txtDuration,
0),1)*b,this.requireUpdate=!0;if(this.requireUpdate)this.draw.apply(a),this.requireUpdate=!1};this.config.animate||!this.config.description.showAlways?(l.addAction(e,this),l.start()):this.draw()},getConfig:function(){return w(this.config)},update:function(b){h.extend(!0,this.config,b);this.draw()},draw:function(){var b=this.config.border.radius;this.useRadius=b[0]>0||b[1]>0||b[2]>0||b[3]>0;this.context.clearRect(0,0,this.canvas.width,this.canvas.height);this.config.shadow.enabled&&this.drawShadow();
this.config.border.enabled&&this.drawBorder();this.drawImage();this.target.alt&&this.drawText(this.target.alt);this.config.reflection.enabled&&this.drawReflection()},drawBorder:function(){var b=this.context,a=this.config.border,c=this.config.border.radius;if(this.config.animate&&a.hoverColor!=""){var d=this.getRGBA(this.borderColor),e=this.getRGBA(a.hoverColor);if(this.position===0)a.color=d.toString();else if(this.position===1)a.color=e.toString();else{var f={r:Math.round(d.R+(e.R-d.R)*this.position),
g:Math.round(d.G+(e.G-d.G)*this.position),b:Math.round(d.B+(e.B-d.B)*this.position),a:d.A+(e.A-d.A)*this.position};a.color="rgba("+f.r+","+f.g+","+f.b+","+f.a+")"}}if(a.gradient.enabled){f=this.getCoord(a.gradient.startPos);d=this.getCoord(a.gradient.endPos);a.gradient.type==="radial"?(e=Math.abs(d.x-f.x),d=Math.abs(d.y-f.y),f=b.createRadialGradient(f.x,f.y,0,f.x,f.y,Math.sqrt(e*e+d*d))):f=b.createLinearGradient(f.x,f.y,d.x,d.y);if(this.position>0&&(a.gradient.hoverStartColor!=""||a.gradient.hoverEndColor!=
"")){var g=a.gradient;if(this.config.animate&&this.position<1){var d=this.getRGBA(g.startColor),i=this.getRGBA(g.hoverStartColor!=""?g.hoverStartColor:g.startColor),e=this.getRGBA(g.endColor),g=this.getRGBA(g.hoverEndColor!=""?g.hoverEndColor:g.endColor),d={r:Math.round(d.R+(i.R-d.R)*this.position),g:Math.round(d.G+(i.G-d.G)*this.position),b:Math.round(d.B+(i.B-d.B)*this.position),a:d.A+(i.A-d.A)*this.position},e={r:Math.round(e.R+(g.R-e.R)*this.position),g:Math.round(e.G+(g.G-e.G)*this.position),
b:Math.round(e.B+(g.B-e.B)*this.position),a:e.A+(g.A-e.A)*this.position};f.addColorStop(0,"rgba("+d.r+","+d.g+","+d.b+","+d.a+")");f.addColorStop(1,"rgba("+e.r+","+e.g+","+e.b+","+e.a+")")}else f.addColorStop(0,g.hoverStartColor!=""&&this.destination==1?g.hoverStartColor:g.startColor),f.addColorStop(1,g.hoverEndColor!=""&&this.destination==1?g.hoverEndColor:g.endColor)}else f.addColorStop(0,a.gradient.startColor),f.addColorStop(1,a.gradient.endColor);a.color=f}b.save();b.fillStyle=a.color;b.globalAlpha=
a.opacity;this.useRadius?this.roundedRect(this.offsetX,this.offsetY,this.width,this.height,c[0],c[1],c[2],c[3]):(this.context.beginPath(),this.context.rect(this.offsetX,this.offsetY,this.width,this.height),this.context.closePath());b.fill();b.globalCompositeOperation="destination-out";b.fillStyle="black";b.globalAlpha=1;this.useRadius?this.roundedRect(this.offsetX+a.width,this.offsetY+a.width,this.width-a.width2,this.height-a.width2,c[0]-a.width,c[1]-a.width,c[2]-a.width,c[3]-a.width):(b.beginPath(),
b.rect(this.offsetY+a.width,this.offsetY+a.width,this.width-a.width2,this.height-a.width2),b.closePath());b.fill();b.restore()},drawImage:function(){var b=this.context,a=this.config.border,c=this.offsetX,d=this.offsetY,e=this.width,f=this.height;b.save();this.useRadius&&this.setClipping();a.enabled&&a.outside&&(c+=a.width,d+=a.width,e=this.width-a.width2,f=this.height-a.width2);b.globalCompositeOperation="destination-over";a=this.image;if(this.config.animate&&this.position>0&&this.position<1){a=document.createElement("canvas");
a.width=e;a.height=f;var g=a.getContext("2d");g.drawImage(this.image,0,0,e,f);g.globalAlpha=this.position;g.drawImage(this.hoverImage,0,0,e,f)}else if(this.destination===1||this.position===1)a=this.hoverImage;b.drawImage(a,c,d,e,f);b.restore()},drawReflection:function(){var b=this.context,a=this.config.reflection,c=this.canvas.width,d=this.offsetY+this.height,e=d*2;d+=a.distance/2;b.save();b.translate(0,e+a.distance);b.scale(1,-1);b.drawImage(this.context.canvas,0,0,c,d,0,0,c,d);b.restore();b.save();
b.globalCompositeOperation="destination-out";e=b.createLinearGradient(0,d+a.distance,0,e+a.distance);e.addColorStop(0,"rgba(0, 0, 0, "+(1-a.opacity)+")");e.addColorStop(a.height,"rgba(0, 0, 0, 1)");e.addColorStop(1,"rgba(0, 0, 0, 1)");b.fillStyle=e;b.beginPath();b.rect(0,d,c,d);b.closePath();b.fill();b.restore()},drawShadow:function(){var b=this.context,a=this.config.border.radius,c=this.config.shadow,d=c.opacity;if(this.config.animate&&c.hoverColor!=""){var d=this.getRGBA(this.shadowColor),e=this.getRGBA(c.hoverColor);
this.position===0?(c.color=d.toString(),d=c.opacity):this.position===1?(c.color=e.toString(),d=c.hoverOpacity):(d={r:Math.round(d.R+(e.R-d.R)*this.position),g:Math.round(d.G+(e.G-d.G)*this.position),b:Math.round(d.B+(e.B-d.B)*this.position),a:d.A+(e.A-d.A)*this.position},c.color="rgba("+d.r+","+d.g+","+d.b+","+d.a+")",d=c.opacity+(c.hoverOpacity-c.opacity)*this.position)}e=this.getRGBA(c.color);if(c.blur>0){e.A/=c.blur;for(var f=c.blur;f>0;--f)b.save(),b.fillStyle=e.toString(),b.globalAlpha=d,this.roundedRect(this.offsetX+
c.offsetX-f,this.offsetY+c.offsetY-f,this.width+f*2,this.height+f*2,a[0]+f,a[1]+f,a[2]+f,a[3]+f),b.fill(),b.restore();b.save();b.globalCompositeOperation="destination-out";b.fillStyle="#000";this.useRadius?this.roundedRect(this.offsetX+c.offsetX,this.offsetY+c.offsetY,this.width,this.height,a[0],a[1],a[2],a[3]):(b.beginPath(),b.rect(this.offsetX+c.offsetX,this.offsetY+c.offsetY,this.width,this.height),b.closePath());b.fill();b.restore()}b.save();b.fillStyle=this.getRGBA(c.color).toString();b.globalAlpha=
d;this.useRadius?this.roundedRect(this.offsetX+c.offsetX,this.offsetY+c.offsetY,this.width,this.height,a[0],a[1],a[2],a[3]):(b.beginPath(),b.rect(this.offsetX+c.offsetX,this.offsetY+c.offsetY,this.width,this.height),b.closePath());b.fill();b.restore();b.save();b.globalCompositeOperation="destination-out";b.globalAlpha=1;b.fillStyle="#000";this.useRadius?this.roundedRect(this.offsetX,this.offsetY,this.width,this.height,a[0],a[1],a[2],a[3]):(b.beginPath(),b.rect(this.offsetX,this.offsetY,this.width,
this.height),b.closePath());b.fill();b.restore()},drawText:function(b){var a=this.context,c=this.config.description,d=c.padding,e=c.padding<<1,f=[],g=this.offsetX,i=this.offsetY,h=this.width,l=c.fontSize+e,k=this.width-e;this.config.border.enabled&&(h-=this.config.border.width2,k-=this.config.border.width2);this.useRadius&&(k-=c.position==="top"?this.config.border.radius[0]+this.config.border.radius[1]:this.config.border.radius[2]+this.config.border.radius[3]);a.save();this.config.border.enabled?
(f=this.config.border,this.useRadius?this.roundedRect(this.offsetX+f.width,this.offsetY+f.width,this.width-f.width2,this.height-f.width2,this.config.border.radius[0]-f.width,this.config.border.radius[1]-f.width,this.config.border.radius[2]-f.width,this.config.border.radius[3]-f.width):(a.beginPath(),a.rect(this.offsetX+f.width,this.offsetY+f.width,this.width-f.width2,this.height-f.width2),a.closePath())):this.useRadius?this.roundedRect(this.offsetX,this.offsetY,this.width,this.height,this.config.border.radius[0],
this.config.border.radius[1],this.config.border.radius[2],this.config.border.radius[3]):(a.beginPath(),a.rect(this.offsetX,this.offsetY,this.width,this.height),a.closePath());a.clip();c.fontStyle?c.fontStyle+=" ":c.fontStyle="";a.font=c.fontStyle+c.fontSize+"px "+c.fontFamily;a.textBaseline="top";f=this.getTextLines(b,k);l=c.fontSize*f.length+e;this.config.border.enabled&&(g+=this.config.border.width,i+=this.config.border.width);if(c.position==="bottom"){if(this.config.description.showAlways)this.txtPosition=
1;i+=this.height-l*this.txtPosition;this.config.border.enabled&&(i-=2*this.config.border.width)}else i-=l-l*this.txtPosition;a.globalAlpha=c.bgOpacity;a.fillStyle=c.bgColor;a.fillRect(g,i,h,l);a.globalAlpha=1;a.fillStyle=c.color;g+=d;i+=d;this.useRadius&&(b=c.position==="top"?this.config.border.radius[0]:this.config.border.radius[3],this.config.border.enabled&&(b-=this.config.border.width),b>d&&(g+=b-d));a.textAlign=c.align;a.textAlign==="right"?g+=k:a.textAlign==="center"&&(g+=k/2);for(d=0;d<f.length;++d)a.fillText(f[d],
g,i+d*c.fontSize);a.restore()},getTextLines:function(b,a){var c=this.context,d=[],e,f;e=c.measureText(b).width;if(e>a){for(;e>a;){for(f=e=Math.ceil(a/e*b.length);(b.charAt(--e)!=" "||c.measureText(b.substr(0,e)).width>a)&&e>0;);if(e>0)d.push(b.substr(0,e)),b=b.substr(e+1);else{for(e=f;b.charAt(++e)!=" "&&e<b.length-1;);if(e<b.length-1)d.push(b.substr(0,e)),b=b.substr(e+1);else break}e=c.measureText(b).width}d.push(b)}else d=[b];return d},getCoord:function(b){var a={x:this.offsetX+this.width/2,y:this.offsetY+
this.height/2};if(b.indexOf("left")>-1)a.x=this.offsetX;if(b.indexOf("right")>-1)a.x=this.offsetX+this.width;if(b.indexOf("top")>-1)a.y=this.offsetY;if(b.indexOf("bottom")>-1)a.y=this.offsetY+this.height;return a},getRGBA:function(b){var a={R:0,G:0,B:0,A:1,toString:function(){return"rgba("+this.R+","+this.G+","+this.B+","+this.A+")"}},b=b.replace(/\s*/,"");if(/^rgb/.test(b)){if(b=/^rgba?\(([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])\,([01]?\d\d?|2[0-4]\d|25[0-5])(?:\,([01](?:\.0+)?|0?\.\d*))?\)$/.exec(b))a.R=
parseInt(b[1],10)||0,a.G=parseInt(b[2],10)||0,a.B=parseInt(b[3],10)||0,a.A=parseFloat(b[4])||1}else if(/^#/.test(b))if(b=b.substr(1),b.length===6)a.R=parseInt(b.substr(0,2),16)||0,a.G=parseInt(b.substr(2,2),16)||0,a.B=parseInt(b.substr(4,2),16)||0;else{if(b.length===3)a.R=parseInt(b.substr(0,1)+b.substr(0,1),16)||0,a.G=parseInt(b.substr(1,1)+b.substr(1,1),16)||0,a.B=parseInt(b.substr(2,1)+b.substr(2,1),16)||0}else if(u[b.toLowerCase()])return this.getRGBA(u[b.toLowerCase()]);return a},setClipping:function(){var b=
this.config.border;b.outside?this.roundedRect(this.offsetX+b.width,this.offsetY+b.width,this.width-b.width2,this.height-b.width2,b.radius[0]-b.width,b.radius[1]-b.width,b.radius[2]-b.width,b.radius[3]-b.width):this.roundedRect(this.offsetX,this.offsetY,this.width,this.height,b.radius[0],b.radius[1],b.radius[2],b.radius[3]);this.context.clip()},roundedRect:function(b,a,c,d,e,f,g,h){var j=this.context;e<0&&(e=0);f<0&&(f=0);g<0&&(g=0);h<0&&(h=0);j.beginPath();j.moveTo(b,a+e);j.lineTo(b,a+d-h);j.quadraticCurveTo(b,
a+d,b+h,a+d);j.lineTo(b+c-g,a+d);j.quadraticCurveTo(b+c,a+d,b+c,a+d-g);j.lineTo(b+c,a+f);j.quadraticCurveTo(b+c,a,b+c-f,a);j.lineTo(b+e,a);j.quadraticCurveTo(b,a,b,a+e);j.closePath()}};h.fn.dmxHTML5ImageEnhancer=function(b){var a=Array.prototype.slice.call(arguments,1);if(typeof Spry!="undefined"&&Spry.Data&&Spry.Data.regionsArray)for(var c in v(Spry.Data.regionsArray)&&Spry.Data.initRegions(),Spry.Data.regionsArray)if(Spry.Data.regionsArray[c].currentState!="ready"){var d=this;window.setTimeout(function(){h(d.selector).dmxHTML5ImageEnhancer(b)},
100);return this}return this.each(function(){var c;c=h(this).data("ImageEnhancer")?h(this).data("ImageEnhancer"):new s(this,b);typeof b==="string"&&c[b]&&c[b].apply(c,a)})};l.instance=function(){if(!window.$animator)window.$animator=new l;return window.$animator};l.start=function(){l.instance().start()};l.stop=function(){l.instance().stop()};l.addAction=function(b,a,c){l.instance().addAction(b,a,c)};l.prototype={start:function(){if(!this.running)this.running=!0,this.tick()},stop:function(){this.running=
!1},addAction:function(b,a,c){this.actions.push({method:b,scope:a||this,args:c||[]})},tick:function(){if(this.running){for(var b=0,a=this.actions.length;b<a;++b){var c=this.actions[b];c.method.call(c.scope,c.args)}var d=this;setTimeout(function(){d.tick.call(d)},20)}}};window.dmxHTML5ImageEnhancerEvent=function(b,a){var c=h("#"+b).parent()[0];if(document.createEvent){var d=document.createEvent("HTMLEvents");d.initEvent(a,!0,!0);return!c.dispatchEvent(d)}else return a=="click"?(c.click(),!1):(d=document.createEventObject(),
c.fireEvent("on"+a,d))}})(jQuery);

