;(function($) {
	if(true) {
		$.fn.desaturate = function() {
			return this.addClass('semi-trans');
		};
		$.fn.resaturate = function() {
			return this.removeClass('semi-trans');
		};
		$.fn.clearSaturation = function() {
			return this;
		};
	} else if(typeof HTMLCanvasElement != 'undefined') {
		$.fn.desaturate = function() {
			return this.each(function(t, imgObj) {
				if($(imgObj).data('greyscale') != null) {
					$(imgObj).attr('src', $(imgObj).data('greyscale'));
					return;
				}
				var canvas = document.createElement('canvas');
				var canvasContext = canvas.getContext('2d');
				var imgW = imgObj.width;
				var imgH = imgObj.height;
				if(imgW*imgH == 0) {
					return;
				}
				canvas.width = imgW;
				canvas.height = imgH;
				canvasContext.drawImage(imgObj, 0, 0);
				var imgPixels = canvasContext.getImageData(0, 0, imgW, imgH);
				for(var y = 0; y < imgPixels.height; y++){
					 for(var x = 0; x < imgPixels.width; x++){
						  var i = (y * 4) * imgPixels.width + x * 4;
						  var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3;
						  //window.location.search == '?theme=autumn'
						if($(imgObj).data('colors') && $(imgObj).data('colors') != null && $(imgObj).data('colors') != undefined) {
						  function linearInterpolation(minV, maxV, scale) {
							  if(minV > maxV) {
								  return linearInterpolation(maxV, minV, 1 - scale);
							  }
							  return minV + ((maxV - minV) * scale);
						  }
						  var clr3 = $(imgObj).data('colors');
						  imgPixels.data[i] = linearInterpolation(clr3.r.min, clr3.r.max, avg / 255);
						  imgPixels.data[i + 1] = linearInterpolation(clr3.g.min, clr3.g.max,  avg / 255);
						  imgPixels.data[i + 2] = linearInterpolation(clr3.b.min, clr3.b.max,  avg / 255);
						  
/*						  imgPixels.data[i] = linearInterpolation(30, 206, avg / 255);
						  imgPixels.data[i + 1] = linearInterpolation(15, 176,  avg / 255);
						  imgPixels.data[i + 2] = linearInterpolation(0, 101,  avg / 255);*/
						} else {
						  imgPixels.data[i] = avg;
						  imgPixels.data[i + 1] = avg;
						  imgPixels.data[i + 2] = avg;
						}
					 }
				}
				canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height);
				var gs = canvas.toDataURL();
				$(imgObj).data('greyscale', gs)
				if($(imgObj).data('color') == null) {
					$(imgObj).data('color', $(imgObj).attr('src'));
				}
				$(imgObj).attr('src', gs);
			});
		};
		$.fn.resaturate = function() {
			return this.each(function(t, imgObj) {
				$(imgObj).attr('src', $(imgObj).data('color'));
			});
		};
		$.fn.clearSaturation = function() {
			return this.each(function(t, imgObj) {
				if($(imgObj).data('color') != null) {
					$(imgObj).attr('src', $(imgObj).data('color'));
				}
				$(imgObj).removeData('greyscale').removeData('color');
			});
		};
	} else {
		$.fn.desaturate = function() {
			/*return this.each(function(t, imgObj) {
				imgObj.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(grayScale=1)';
			});*/
			return this.addClass('greyScale');
		};
		$.fn.resaturate = function() {
			/*return this.each(function(t, imgObj) {
				imgObj.style.filter = '';
			});*/
			return this.removeClass('greyScale');
		};
		$.fn.clearSaturation = function() {
			return this.removeClass('greyScale');
		};
	}
	
$(function(){
	var container = $('.img-scroll').wrapInner('<div></div>').append('<span class="l1"></span><span class="l2"></span>').children('div');
	var imgs = $('img', container).addClass('colorhover');
	container.append('<span style="position:absolute; display:block; width:1px; height:1px; top:50%;"></span>');
	var ind = $('.indicator');
	function reposition() {
		var xpos = container.width() / 2;
		var xpad = 35;
		var allready = true;
		imgs.each(function() {
			if($(this).data('hascheck') != 'yes') {
				allready = false;
			}
			$(this).css('left', xpos + 'px');
			$(this).css('margin-top', '-' + ($(this).height() / 2) + 'px');
			xpos += $(this).width() + xpad;
			$('span', container).css('left', (xpos + container.width() / 2) + 'px');
		});
	}
	var timeoutcancel=-7;
	imgs.each(function(i, el) {
		$('<span class="indic"></span>').appendTo(ind).click(function(){
			reposition();
			if(timeoutcancel != -7) {
				clearTimeout(timeoutcancel);
			}
			var mn = imgs.first().css('left').replace(/px/, '') * 1 - 100;
			var mx = imgs.last().css('left').replace(/px/, '') * 1 + 100 + imgs.last().width() + 70 - container.width();
			var vl = mn + ((mx-mn) / imgs.length * i);
			container.animate({'left' : (-vl)+'px'});
			/*container.animate({'scrollLeft' : ($(el).css('left').replace(/px/, '') * 1) + ($(el).width() / 2) - 
																			 (container.width() / 2)}, 200);*/
			
			$(this).addClass('active').siblings().removeClass('active');
			$(el).addClass('active');/*.resaturate()*/
			imgs.not(el).removeClass('active');/*.desaturate()*/
			var allready = true;
			imgs.each(function() {
				if($(this).data('hascheck') != 'yes') {
					allready = false;
				}
			});
			if(allready) {
				imgs.show();
				timeoutcancel = setTimeout(function(){
					ind.children().eq((i + 1) % ind.children().length).click();
				}, 4000);
			}
		});
	});
	imgs.load(
		function() {
			if($(this).data('hascheck') != 'yes') {
				$(this).desaturate().data('hascheck', 'yes');
				reposition();
				ind.children().first().click();
			}
/*			imgs.desaturate();
			reposition();
			ind.children().first().click();*/
		}
	);
	ind.children().first().click();
	setTimeout(function(){ind.children().first().click();imgs.desaturate();}, 150);
	$('img.colorhover').hover(function() {
		$(this).resaturate();
	}, function() {
		$(this).desaturate();
	}).load(function(){
		if($(this).data('color') == null) {
			$(this).desaturate();
		}
	});
});
})(jQuery);
