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