$(document).ready( function (){
	initSelectedClass();
});

$(window).load(function(){
	sampleSmoothHover();
})

function initSelectedClass(){
	var windowUrl = decodeURI(window.location.href);
	$('div.menu li').each(function(){
		var holder = $(this);
		var link = holder.find('>a');
		var href = link.attr('href');
		var index = windowUrl.indexOf(href);
		if (index != -1) {
			if (windowUrl.charAt(index+href.length) == '/' || windowUrl.charAt(index+href.length) == '') {
				holder.addClass('selected');
			}
		}
	});
}

function sampleSmoothHover(){
	var items = $('div.gallery ul a');
	items.each(function(){
		var link = $(this);
		var colored = $('img',link);
		var desc= $('span', link);
		var grayed = colored.clone();
		link.append(grayed);
		grayed.grayscale()
		desc = desc.add(colored.addClass('fly'));
		desc.css({opacity:0,display:'none'});
		link.bind('mouseenter', function(){
			desc.stop().css({display:'block'}).animate({opacity: 1}, 350);
		});
		link.bind('mouseleave', function(){
			desc.stop().animate({opacity: 0}, 350,function(){
				desc.css({display:'none'});
			});
		});
	});
}

// grayscale plugin
;(function($){
	function grayscale(image, bPlaceImage) {
		var myCanvas=document.createElement("canvas");
		var myCanvasContext=myCanvas.getContext("2d");
		var imgWidth=image.width;
		var imgHeight=image.height;
		myCanvas.width= imgWidth;
		myCanvas.height=imgHeight;
		myCanvasContext.drawImage(image,0,0);
		var imageData=myCanvasContext.getImageData(0,0, imgWidth, imgHeight);
		for (i=0; i<imageData.height; i++) {
			for (j=0; j<imageData.width; j++) {
				var index=(i*4)*imageData.width+(j*4);
				var red=imageData.data[index];
				var green=imageData.data[index+1];
				var blue=imageData.data[index+2];
				var alpha=imageData.data[index+3];
				var average=(red+green+blue)/3;
				imageData.data[index]=average;
				imageData.data[index+1]=average;
				imageData.data[index+2]=average;
				imageData.data[index+3]=alpha;
			}
		}
		myCanvasContext.putImageData(imageData,0,0,0,0, imageData.width, imageData.height);

		if (bPlaceImage) {
			var myDiv=document.createElement("div");
			myDiv.appendChild(myCanvas);
			image.parentNode.appendChild(myCanvas);//, image);
		}
		return myCanvas.toDataURL();
	}

	jQuery.fn.grayscale = function(_options){
		var _options = jQuery.extend({
			temp:1
		},_options);
		return this.each(function(){
			// options
			var image = this;
			var _temp = _options.temp;
			if($.browser.msie && $.browser.version < 9) {
				image.style.filter = 'gray'
			} else {
				image.src = grayscale(image);
			}
		});
	}
})(jQuery);
