(function($) {
	
	$.fn.rollOver = function() {
		$(this).each(function() {
			var self = $(this);
			var src = self.attr('src');
			var body = src.substr(0, src.lastIndexOf('.'));
			
			if (!body.match(/\_on$/)) {
				// Preload
				var over = src.replace(/(\.gif|\.jpg|\.png)/, '_on$1');
				var img = new Image();
				img.src = over;
				
				img.onload = function() {
					self.hover(function() {
						self.attr('src', over);
					}, function() {
						self.attr('src', src);
					});
				}
			}
		});
	};
	
	$.fn.adjustHeight = function() {
		$(this).each(function() {
			var self = $(this);
			var max = 0;
			
			$(this).children('li').each(function(i, obj) {
				if ($(obj).innerHeight() > max) max = $(obj).innerHeight();
			});
			$(this).children('li').css('height', max);
		});
	};
	
	$.fn.verticalCenter = function() {
		$(this).each(function() {
			$(this).css('margin-top', (($(this).parent().height() / 2) - ($(this).outerHeight() / 2)) + 'px');
		});
	};
	
	$(document).ready(function() {
		// グローバルメニューのOn判定
		var target = $('#gm_'+$('body').attr('class')).find('img');
		if (target.length > 0) {
			var src = target.attr('src').replace(/(\.gif|\.jpg|\.png)/, '_on$1');
			target.attr('src', src).removeClass('rollOver');
		}
		
		$('.rollOver').rollOver();
		$('.adjust').adjustHeight();
		$('.vCenter').verticalCenter();
		
	});
})(jQuery);

