');
77 | gsWrapper = $(this).parent();
78 | gsWrapper.css({
79 | 'position' : 'relative',
80 | 'display' : 'inline-block'
81 | });
82 | if (window.location.hostname !== this.src.split('/')[2]) {
83 | // If the image is on a different domain proxy the request
84 | $.getImageData({
85 | url: $(this).attr('src'),
86 | success: $.proxy(function(image) {
87 | can = greyScale(image, image.width, image.height);
88 | if ($options.reverse) { can.appendTo(gsWrapper).css({"display" : "block", "opacity" : "0"}); }
89 | else { can.appendTo(gsWrapper).fadeIn($options.fadeTime); }
90 | }, gsWrapper),
91 | error: function(xhr, text_status){
92 | // silently fail on error
93 | }
94 | });
95 | } else { // If the image is on the same domain don't proxy the request
96 | can = greyScale($(this)[0], $(this).width(), $(this).height());
97 | if ($options.reverse) { can.appendTo(gsWrapper).css({"display" : "block", "opacity" : "0"}); }
98 | else { can.appendTo(gsWrapper).fadeIn($options.fadeTime); }
99 | }
100 | });
101 |
102 | $(this).parent().delegate('.gsCanvas', 'mouseover mouseout', function(event) {
103 | over = $options.reverse ? 1 : 0;
104 | out = $options.reverse ? 0 : 1;
105 | (event.type == 'mouseover') && $(this).stop().animate({'opacity': over}, $options.fadeTime);
106 | (event.type == 'mouseout') && $(this).stop().animate({'opacity': out}, $options.fadeTime);
107 | });
108 | }
109 | };
110 | })( jQuery );
111 |
112 | /*
113 | *
114 | * jQuery $.getImageData Plugin 0.3
115 | * http://www.maxnov.com/getimagedata
116 | *
117 | * Written by Max Novakovic (http://www.maxnov.com/)
118 | * Date: Thu Jan 13 2011
119 | *
120 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
121 | *
122 | * Includes jQuery JSONP Core Plugin 2.1.4
123 | * http://code.google.com/p/jquery-jsonp/
124 | * Copyright 2010, Julian Aubourg
125 | * Released under the MIT License.
126 | *
127 | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
128 | *
129 | * Copyright 2011, Max Novakovic
130 | * Dual licensed under the MIT or GPL Version 2 licenses.
131 | * http://www.maxnov.com/getimagedata/#license
132 | *
133 | */
134 | (function(c,g){function n(){}function o(a){s=[a]}function e(a,j,k){return a&&a.apply(j.context||j,k)}function h(a){function j(b){!l++&&g(function(){p();q&&(t[d]={s:[b]});z&&(b=z.apply(a,[b]));e(a.success,a,[b,A]);e(B,a,[a,A])},0)}function k(b){!l++&&g(function(){p();q&&b!=C&&(t[d]=b);e(a.error,a,[a,b]);e(B,a,[a,b])},0)}a=c.extend({},D,a);var B=a.complete,z=a.dataFilter,E=a.callbackParameter,F=a.callback,R=a.cache,q=a.pageCache,G=a.charset,d=a.url,f=a.data,H=a.timeout,r,l=0,p=n;a.abort=function(){!l++&&
135 | p()};if(e(a.beforeSend,a,[a])===false||l)return a;d=d||u;f=f?typeof f=="string"?f:c.param(f,a.traditional):u;d+=f?(/\?/.test(d)?"&":"?")+f:u;E&&(d+=(/\?/.test(d)?"&":"?")+encodeURIComponent(E)+"=?");!R&&!q&&(d+=(/\?/.test(d)?"&":"?")+"_"+(new Date).getTime()+"=");d=d.replace(/=\?(&|$)/,"="+F+"$1");q&&(r=t[d])?r.s?j(r.s[0]):k(r):g(function(b,m,v){if(!l){v=H>0&&g(function(){k(C)},H);p=function(){v&&clearTimeout(v);b[I]=b[w]=b[J]=b[x]=null;i[K](b);m&&i[K](m)};window[F]=o;b=c(L)[0];b.id=M+S++;if(G)b[T]=
136 | G;var O=function(y){(b[w]||n)();y=s;s=undefined;y?j(y[0]):k(N)};if(P.msie){b.event=w;b.htmlFor=b.id;b[I]=function(){/loaded|complete/.test(b.readyState)&&O()}}else{b[x]=b[J]=O;P.opera?(m=c(L)[0]).text="jQuery('#"+b.id+"')[0]."+x+"()":b[Q]=Q}b.src=d;i.insertBefore(b,i.firstChild);m&&i.insertBefore(m,i.firstChild)}},0);return a}var Q="async",T="charset",u="",N="error",M="_jqjsp",w="onclick",x="on"+N,J="onload",I="onreadystatechange",K="removeChild",L="",A="success",C="timeout",P=c.browser,
137 | i=c("head")[0]||document.documentElement,t={},S=0,s,D={callback:M,url:location.href};h.setup=function(a){c.extend(D,a)};c.jsonp=h})(jQuery,setTimeout);
138 | (function(c){c.getImageData=function(a){var f=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;if(a.url){var g=location.protocol==="https:",e="";e=a.server&&f.test(a.server)&&a.server.indexOf("https:")&&(g||a.url.indexOf("https:"))?a.server:"//img-to-json.appspot.com/?callback=?";c.jsonp({url:e,data:{url:escape(a.url)},dataType:"jsonp",timeout:1E4,success:function(b){var d=new Image;c(d).load(function(){this.width=b.width;this.height=b.height;typeof a.success==typeof Function&& a.success(this)}).attr("src",b.data)},error:function(b,d){typeof a.error==typeof Function&&a.error(b,d)}})}else typeof a.error==typeof Function&&a.error(null,"no_url")}})(jQuery);
139 |
--------------------------------------------------------------------------------
/greyScale.min.js:
--------------------------------------------------------------------------------
1 | (function(a){a.fn.greyScale=function(c){$options=a.extend({fadeTime:a.fx.speeds._default,reverse:false},c);function b(f,e,d){can=a("