//jQuery img fx - 2011 - ivanradulovich@gmail.com
function _invertRBG(a){var b=255-a;if(b<0){b=b*-1}return b}function _rgbToHexa(a){var b=parseFloat(parseInt(a)).toString(16);if(a<16){b="0"+b}return b}function _hexaTransition(a,b,c){var d=a.split("#").join("");var e=parseFloat(parseInt(d.substring(0,2),16))||0;var f=parseFloat(parseInt(d.substring(2,4),16))||0;var g=parseFloat(parseInt(d.substring(4,6),16))||0;var h=b.split("#").join("");var i=parseFloat(parseInt(h.substring(0,2),16))||0;var j=parseFloat(parseInt(h.substring(2,4),16))||0;var k=parseFloat(parseInt(h.substring(4,6),16))||0;var l,m,n;l=(i-e)/c;m=(j-f)/c;n=(k-g)/c;var o=c-1;var p=new Array;p.push("#"+d);for(var q=0;q<o;q++){e+=l;f+=m;g+=n;p.push("#"+_rgbToHexa(e)+_rgbToHexa(f)+_rgbToHexa(g))}p.push("#"+h);return p}function _getTagName(a){return String(Number(jQuery.fn.jquery.substring(0,3))<1.6?a.attr("tagName"):a.prop("tagName")).toUpperCase()}function stopFadeColorIMG2(a){var b=a.data("timeoutId");if(!isNaN(b)){if(Boolean(this["fadeTintIMGid"+b])){clearTimeout(this["fadeTintIMGid"+b]);delete this["fadeTintIMGid"+b]}if(Boolean(this["fadeTintIMGdelayid"+b])){clearTimeout(this["fadeTintIMGdelayid"+b]);delete this["fadeTintIMGdelayid"+b]}a.data("fadecolor",false)}}function fadeTintIMGEvent(a){if(a.data("fadecolor")==true){var b=a.data("colors");var c=a.data("time");var d=a.data("timeoutId");var e=a.data("callback");var f=a.data("params");var g=a.data("i")+1;a.data("i",g);a.tintIMGcore(b[g],true);if(g<b.length-1){this["fadeTintIMGid"+d]=setTimeout(function(){fadeTintIMGEvent(a)},c)}else{a.data("fadecolor",false);if(Boolean(this["fadeTintIMGid"+d])){delete this["fadeTintIMGid"+d]}if(Boolean(this["fadeTintIMGdelayid"+d])){delete this["fadeTintIMGdelayid"+d]}if(Boolean(e)){e()}}}}function fadeTintIMGEventDelay(a,b,c){this["fadeTintIMGdelayid"+b]=setTimeout(function(){fadeTintIMGEvent(a)},c)}function stopFadeColorIMG(a){var b=$(a).data("timeoutId");if(!isNaN(b)){if(Boolean(this["fadeTintIMGid"+b])){clearTimeout(this["fadeTintIMGid"+b]);delete this["fadeTintIMGid"+b]}if(Boolean(this["fadeTintIMGdelayid"+b])){clearTimeout(this["fadeTintIMGdelayid"+b]);delete this["fadeTintIMGdelayid"+b]}$(a).data("fadecolor",false)}}function stopAllFadeColorIMG(){for(var a=0;a<=fadeTintIMGlevel;a++){if(Boolean(this["fadeTintIMGid"+a])){clearTimeout(this["fadeTintIMGid"+a]);delete this["fadeTintIMGid"+a]}if(Boolean(this["fadeTintIMGdelayid"+a])){clearTimeout(this["fadeTintIMGdelayid"+a]);delete this["fadeTintIMGdelayid"+a]}fadeTintIMGlevel=1}}function fadeTintIMG(a,b,c,d,e){$(a).fadeTintIMG(b,c,d,e)}function retintIMG(a,b){$(a).tintIMG(b,true)}function tintIMG(a,b,c){$(a).tintIMG(b,c)}function flipIMG(a,b,c){$(a).flipIMG(b,c)}function lightenIMG(a,b){$(a).lightenIMG(b)}function posterizeIMG(a,b){$(a).posterizeIMG(b)}function solarizeIMG(a){$(a).solarizeIMG()}function invertIMG(a){$(a).invertIMG()}function grayscaleAndTintIMG(a,b,c){$(a).grayscaleAndTintIMG(b,c)}function grayscaleIMG(a,b){$(a).grayscaleIMG(b)}function removeFxIMG(a){$(a).removeFxIMG()}var IMG_COLOR_FX_SETTINGS={removeOnloadAttr:true,removeImgBorder:true};jQuery.fn.removeFxIMG=function(){stopAllFadeColorIMG();var a;$(this).each(function(){if($(this).length>0){a=$(this).attr("defaultsrc");if(a==undefined){a=$(this).attr("src")}if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).removeAttr("grayscale");$(this).removeAttr("invertcolors");$(this).removeAttr("solarizefx");$(this).removeAttr("posterizefx");$(this).removeAttr("lightenfx");$(this).removeAttr("flipfx");$(this).removeAttr("tintcolor");$(this).removeAttr("tintsrc");$(this).removeAttr("defaultsrc");$(this).unbind("load");$(this).attr("src",a);$(this).flipIMG(false,false)}})};jQuery.fn.grayscaleIMG=function(a){$(this).each(function(){if($(this).length>0&&$(this).attr("grayscale")!="1"&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).attr("grayscale","1");var b=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",b)}var c=document.createElement("canvas");var d=c.getContext("2d");var e=new Image;e.src=b;c.width=e.width;c.height=e.height;d.drawImage(e,0,0);var f=d.getImageData(0,0,c.width,c.height);if(a){for(var g=0;g<f.height;g++){for(var h=0;h<f.width;h++){var i=g*4*f.width+h*4;var j=(f.data[i]+f.data[i+1]+f.data[i+2])/3;f.data[i]=j;f.data[i+1]=j;f.data[i+2]=j}}}else{for(var g=0;g<f.height;g++){for(var h=0;h<f.width;h++){var i=g*4*f.width+h*4;var j=f.data[i]=f.data[i+1]=f.data[i+2]=f.data[i]*.3+f.data[i+1]*.59+f.data[i+2]*.11;f.data[i]=j;f.data[i+1]=j;f.data[i+2]=j}}}d.putImageData(f,0,0,0,0,f.width,f.height);$(this).attr("src",c.toDataURL())}})};jQuery.fn.grayscaleAndTintIMG=function(a,b){$(this).each(function(){if(_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}var c=$(this).attr("tintcolor");var d=a.split("#").join("");if(c==d){$(this).attr("tintcolor",d)}else if(c==""||c==undefined||b){$(this).attr("grayscale","1");var e=parseFloat(parseInt(d.substring(0,2),16))-255||0;var f=parseFloat(parseInt(d.substring(2,4),16))-255||0;var g=parseFloat(parseInt(d.substring(4,6),16))-255||0;$(this).attr("tintcolor",d);var h=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",h)}if($(this).attr("tintsrc")==undefined){$(this).attr("tintsrc",h)}else{h=$(this).attr("tintsrc")}var i=document.createElement("canvas");var j=i.getContext("2d");var k=new Image;k.src=h;i.width=k.width;i.height=k.height;j.drawImage(k,0,0);var l=j.getImageData(0,0,i.width,i.height);var m,n,o;for(var p=0;p<l.height;p++){for(var q=0;q<l.width;q++){var r=p*4*l.width+q*4;var s=(l.data[r]+l.data[r+1]+l.data[r+2])/3;l.data[r]=s;l.data[r+1]=s;l.data[r+2]=s;if(e){if((m=l.data[r]+e)<0){l.data[r]=0}else if(m>255){l.data[r]=255}else{l.data[r]=m}}if(f){if((n=l.data[r+1]+f)<0){l.data[r+1]=0}else if(n>255){l.data[r+1]=255}else{l.data[r+1]=n}}if(g){if((o=l.data[r+2]+g)<0){l.data[r+2]=0}else if(o>255){l.data[r+2]=255}else{l.data[r+2]=o}}}}j.putImageData(l,0,0,0,0,l.width,l.height);$(this).attr("src",i.toDataURL())}}})};jQuery.fn.invertIMG=function(){$(this).each(function(){if($(this).length>0&&$(this).attr("invertcolors")!="1"&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).attr("invertcolors","1");var a=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",a)}var b=document.createElement("canvas");var c=b.getContext("2d");var d=new Image;d.src=a;b.width=d.width;b.height=d.height;c.drawImage(d,0,0);var e=c.getImageData(0,0,b.width,b.height);for(var f=0;f<e.height;f++){for(var g=0;g<e.width;g++){var h=f*4*e.width+g*4;e.data[h]=_invertRBG(e.data[h]);e.data[h+1]=_invertRBG(e.data[h+2]);e.data[h+2]=_invertRBG(e.data[h+2])}}c.putImageData(e,0,0,0,0,e.width,e.height);$(this).attr("src",b.toDataURL())}})};jQuery.fn.solarizeIMG=function(){$(this).each(function(){if($(this).length>0&&$(this).attr("solarizefx")!="1"&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).attr("solarizefx","1");var a=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",a)}var b=document.createElement("canvas");var c=b.getContext("2d");var d=new Image;d.src=a;b.width=d.width;b.height=d.height;c.drawImage(d,0,0);var e=c.getImageData(0,0,b.width,b.height);var f=e.width;var g=e.height;var h=f*4;var i=g;do{var j=(i-1)*h;var k=f;do{var l=j+(k-1)*4;var m=e.data[l];var n=e.data[l+1];var o=e.data[l+2];if(m>127)m=255-m;if(n>127)n=255-n;if(o>127)o=255-o;e.data[l]=m;e.data[l+1]=n;e.data[l+2]=o}while(--k)}while(--i);c.putImageData(e,0,0,0,0,e.width,e.height);$(this).attr("src",b.toDataURL())}})};jQuery.fn.posterizeIMG=function(a){$(this).each(function(){if($(this).length>0&&$(this).attr("posterizefx")!="1"&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).attr("posterizefx","1");var b=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",b)}var c=document.createElement("canvas");var d=c.getContext("2d");var e=new Image;e.src=b;c.width=e.width;c.height=e.height;d.drawImage(e,0,0);var f=d.getImageData(0,0,c.width,c.height);var g=256;if(a!=undefined&&a!=null){g=parseInt(a,10)||1}g=Math.max(2,Math.min(256,g));var h=256/g;var i=256/(g-1);var j=f.width;var k=f.height;var l=j*4;var m=k;do{var n=(m-1)*l;var o=j;do{var p=n+(o-1)*4;var q=i*(f.data[p]/h>>0);var r=i*(f.data[p+1]/h>>0);var s=i*(f.data[p+2]/h>>0);if(q>255)q=255;if(r>255)r=255;if(s>255)s=255;f.data[p]=q;f.data[p+1]=r;f.data[p+2]=s}while(--o)}while(--m);d.putImageData(f,0,0,0,0,f.width,f.height);$(this).attr("src",c.toDataURL())}})};jQuery.fn.lightenIMG=function(a){$(this).each(function(){if($(this).length>0&&$(this).attr("lightenfx")!="1"&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}$(this).attr("lightenfx","1");var b=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",b)}var c=document.createElement("canvas");var d=c.getContext("2d");var e=new Image;e.src=b;c.width=e.width;c.height=e.height;d.drawImage(e,0,0);var f=d.getImageData(0,0,c.width,c.height);var g=parseFloat(a)||0;g=Math.max(-1,Math.min(1,g));var h=g+1;var i=f.width*f.height;var j=i*4,k=j+1,l=j+2;var h=g+1;while(i--){if((f.data[j-=4]=f.data[j]*h)>255){f.data[j]=255}if((f.data[k-=4]=f.data[k]*h)>255){f.data[k]=255}if((f.data[l-=4]=f.data[l]*h)>255){f.data[l]=255}}d.putImageData(f,0,0,0,0,f.width,f.height);$(this).attr("src",c.toDataURL())}})};jQuery.fn.flipIMG=function(a,b){$(this).each(function(){if($(this).length>0){var c=Boolean(a)?-1:1;var d=Boolean(b)?-1:1;if(c!=0){$(this).css("filter","FlipH")}if(d!=0){$(this).css("filter","FlipV")}$(this).css("-o-transform","scale("+c+","+d+")").css("transform","scale("+c+","+d+")").css("-moz-transform","scale("+c+","+d+")").css("-webkit-transform","scale("+c+","+d+")");$(this).attr("flipfx",c+","+d)}})};jQuery.fn.tintIMG=function(a,b){$(this).each(function(){if(_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).tintIMGcore(a,b)}})};jQuery.fn.retintIMG=function(a){$(this).tintIMG(a,true)};jQuery.fn.fadeTintIMG=function(a,b,c,d){$(this).each(function(){if($(this).length>0&&_getTagName($(this))=="IMG"&&_canvasSupport>0){$(this).stopFadeColorIMG();var e=$(this).attr("tintcolor");if(e==""||e==undefined){e="#FFFFFF"}var f=Math.round(b);var g=_hexaTransition(e,a,f);$(this).data("colors",g);$(this).data("i",-1);$(this).data("time",10);$(this).data("fadecolor",true);$(this).data("timeoutId",fadeTintIMGlevel);$(this).data("callback",Boolean(d)?d:null);if(Number(c)<=0||c==undefined){fadeTintIMGEvent($(this))}else{fadeTintIMGEventDelay($(this),fadeTintIMGlevel,1e3)}fadeTintIMGlevel++}})};jQuery.fn.stopFadeColorIMG=function(){stopFadeColorIMG2($(this))};var fadeTintIMGlevel=0;jQuery.fn.tintIMGcore=function(a,b){$(this).unbind("load");if(IMG_COLOR_FX_SETTINGS.removeOnloadAttr){$(this).removeAttr("onload")}var c=$(this).attr("tintcolor");var d=a.split("#").join("");if(c==d){$(this).attr("tintcolor",d)}else if(c==""||c==undefined||b){var e=parseFloat(parseInt(d.substring(0,2),16))-255||0;var f=parseFloat(parseInt(d.substring(2,4),16))-255||0;var g=parseFloat(parseInt(d.substring(4,6),16))-255||0;$(this).attr("tintcolor",d);var h=$(this).attr("src");if($(this).attr("defaultsrc")==undefined){$(this).attr("defaultsrc",h)}if($(this).attr("tintsrc")==undefined){$(this).attr("tintsrc",h)}else{h=$(this).attr("tintsrc")}var i=document.createElement("canvas");var j=i.getContext("2d");var k=new Image;k.src=h;i.width=k.width;i.height=k.height;j.drawImage(k,0,0);var l=j.getImageData(0,0,i.width,i.height);var m,n,o;for(var p=0;p<l.height;p++){for(var q=0;q<l.width;q++){var r=p*4*l.width+q*4;if(e){if((m=l.data[r]+e)<0){l.data[r]=0}else if(m>255){l.data[r]=255}else{l.data[r]=m}}if(f){if((n=l.data[r+1]+f)<0){l.data[r+1]=0}else if(n>255){l.data[r+1]=255}else{l.data[r+1]=n}}if(g){if((o=l.data[r+2]+g)<0){l.data[r+2]=0}else if(o>255){l.data[r+2]=255}else{l.data[r+2]=o}}}}j.putImageData(l,0,0,0,0,l.width,l.height);$(this).attr("src",i.toDataURL())}};var _canvasSupport=function(){var a=document.createElement("canvas");if(!a.getContext)return 0;var b=a.getContext("2d");return typeof b.fillText=="function"?2:1}()
