/*************************************************


	Site Name   
	File Name   common.js

	Create Date 2010/07/01
	Update Date 2010/07/01


*************************************************/

/**
 * Common Function
 */

(function($){

	$(function(){
		//$.commonFunc.rollover();
		$.commonFunc.fade();
		//$.commonFunc.externallink();
		//$.commonFunc.smoothscroll();
	});

	$.commonFunc = {

		/**
		 * rollover
		 */
		rollover : function(options){
			var setting = $.extend({
				selector : '.js_rollover',
				postfix : '_on'
			}, options);
			var image_cache = new Object();
			$(setting.selector).each(function(){
				var imgsrc = this.src;
				var dot = this.src.lastIndexOf('.');
				var imgsrc_on = this.src.substr(0, dot) + setting.postfix + this.src.substr(dot, 4);
				image_cache[this.src] = new Image();
				image_cache[this.src].src = imgsrc_on;
				$(this).hover(
					function(){this.src = imgsrc_on;},
					function(){this.src = imgsrc;}
				);
			});
		},

		/**
		 * fade
		 */
		fade : function(options){
			var setting = $.extend({
				selector : '.js_fade',
				opacity : '50'
			}, options);
			$(setting.selector).hover(
				function(){
					$(this).dequeue().fadeTo(200, setting.opacity/100);
				},
				function(){
					$(this).dequeue().fadeTo(200, 1);
				}
			);
		},

		/**
		 * open new window for external link
		 */
		externallink : function(options){
			var setting = $.extend({
				selector : '.js_externallink'
			}, options);
			var popupEvent = function(e){
				window.open(this.href);
				e.preventDefault();
				e.stopPropagation();
			}
			$(setting.selector).each(function(){
				$(this).click(popupEvent);
				$(this).keypress(popupEvent);
			});
		},

		/**
		 * smooth scroll
		 */
		smoothscroll : function(options){
			var self = this;
			var setting = $.extend({
				selector : '.js_pagelink',
				sclpos : 0,
				scldurat : 1,
				easing : 'easeOutExpo'
			}, options);
			$(setting.selector).click(function(){
				var target = $(this.hash);
				if(target.length){
					var targetOffset = target.offset().top - setting.sclpos;
					var bodyHeight = $('body').height();
					var windowHeight = $(window).height();
					if(bodyHeight - targetOffset < windowHeight){
						$('html, body').stop().animate(
							{scrollTop : bodyHeight - windowHeight},
							{duration : setting.scldurat * 1000, easing : setting.easing}
						);
					}else{
						$('html, body').stop().animate(
							{scrollTop : targetOffset},
							{duration : setting.scldurat * 1000, easing : setting.easing}
						);
					};
					return false;
				};
			});
		}

	};

})(jQuery);
