(function($){$.fn.extend({BlackAndWhite:function(options){var $container=this,defaults={hoverEffect:true,webworkerPath:false,responsive:true,invertHoverEffect:false,speed:500};options=$.extend(defaults,options);var hoverEffect=options.hoverEffect,webworkerPath=options.webworkerPath,invertHoverEffect=options.invertHoverEffect,responsive=options.responsive,fadeSpeedIn=$.isPlainObject(options.speed)?options.speed.fadeIn:options.speed,fadeSpeedOut=$.isPlainObject(options.speed)?options.speed.fadeOut: options.speed;var isIE7=document.all&&!window.opera&&window.XMLHttpRequest?true:false;var browserPrefixes=" -webkit- -moz- -o- -ms- ".split(" ");var cssPrefixString={};var cssPrefix=function(property){if(cssPrefixString[property]||cssPrefixString[property]==="")return cssPrefixString[property]+property;var e=document.createElement("div");var prefixes=["","Moz","Webkit","O","ms","Khtml"];for(var i in prefixes)if(typeof e.style[prefixes[i]+property]!=="undefined"){cssPrefixString[property]=prefixes[i]; return prefixes[i]+property}return property.toLowerCase()};var cssfilters=function(){var el=document.createElement("div");el.style.cssText=browserPrefixes.join("filter"+":blur(2px); ");return!!el.style.length&&(document.documentMode===undefined||document.documentMode>9)}();var supportsCanvas=!!document.createElement("canvas").getContext,$window=$(window),supportWebworker=function(){return typeof Worker!=="undefined"?true:false}(),cssFilter=cssPrefix("Filter"),imagesArray=[],BnWWorker=supportWebworker&& webworkerPath?new Worker(webworkerPath+"BnWWorker.js"):false;var _onMouseLeave=function(e){$(e.currentTarget).find(".BWfade").stop(true,true)[!invertHoverEffect?"fadeIn":"fadeOut"](fadeSpeedIn)};var _onMouseEnter=function(e){$(e.currentTarget).find(".BWfade").stop(true,true)[invertHoverEffect?"fadeIn":"fadeOut"](fadeSpeedIn)};var _webWorkerLoop=function(){if(!imagesArray.length)return;BnWWorker.postMessage(imagesArray[0].imageData);BnWWorker.onmessage=function(event){imagesArray[0].ctx.putImageData(event.data, 0,0);imagesArray.splice(0,1);_webWorkerLoop()}};var _manipulateImage=function(img,canvas,width,height){var ctx=canvas.getContext("2d"),currImg=img,i=0,grey;ctx.drawImage(img,0,0,width,height);var imageData=ctx.getImageData(0,0,width,height),px=imageData.data,length=px.length;if(BnWWorker)imagesArray.push({imageData:imageData,ctx:ctx});else{for(;i').prependTo($imageWrapper);var $canvas=$imageWrapper.find("canvas");$canvas.css(css);_manipulateImage(pic,$canvas[0],realWidth,realHeight)}else{css[cssPrefix("Filter")]= "grayscale(100%)";$(" ').prependTo($imageWrapper).css($.extend(css,{"filter":"progid:DXImageTransform.Microsoft.BasicImage(grayscale=1)"}))}};this.init=function(options){$container.each(function(index,tmpImageWrapper){var pic=new Image,$imageWrapper=$(tmpImageWrapper);pic.src=$imageWrapper.find("img").prop("src");if(!pic.width)$(pic).on("load",function(){_injectTags(pic,$imageWrapper)});else _injectTags(pic,$imageWrapper)}); if(BnWWorker)_webWorkerLoop();if(hoverEffect){$container.on("mouseleave",_onMouseLeave);$container.on("mouseenter",_onMouseEnter)}if(responsive)$window.on("resize orientationchange",$container.resizeImages)};this.resizeImages=function(){$container.each(function(index,currImageWrapper){var pic=$(currImageWrapper).find("img:not(.BWFilter)");var currWidth,currHeight;if(isIE7){currWidth=$(pic).prop("width");currHeight=$(pic).prop("height")}else{currWidth=$(pic).width();currHeight=$(pic).height()}$(this).find(".BWFilter, canvas").css({width:currWidth, height:currHeight})})};return this.init(options)}})})(jQuery);