// Copyright 2009 by DISTINCT Corp
(function($){$.fn.spritemenu = function(settings) {var settings = $.extend({}, $.fn.spritemenu.defaults, settings);return this.each(function() {var aniParamsOrig = {}; var aniParamsBack = {}; $(this).children(settings.buttonselector).each(function(index) {var $mainlink = $(this).children('a');$mainlink.parent().children('ul').css('opacity',0).hide();$mainlink.css('display','block') .css('position','relative') .css('width',settings.buttonwidth) .css('height',settings.buttonheight) .css('background-image','url('+settings.grid+')') .css('background-repeat','no-repeat') .css('background-position',((0-index) * settings.buttonwidth)+'px 0px') .css('z-index',settings.zindex).append('<span></span>').children('span').css('display','block') .css('position','absolute') .css('top',0) .css('left',0) .css('width',settings.buttonwidth) .css('height',settings.buttonheight) .css('background-image','url('+settings.grid+')') .css('background-repeat','no-repeat') .css('background-position',((0-index) * settings.buttonwidth)+'px ' + (-1*settings.buttonheight) + 'px') .css('z-index',(settings.zindex+1)); aniParamsOrig[settings.animate] = $mainlink.children('span').css(settings.animate); aniParamsBack[settings.animate] = 0; $mainlink.children('span').css(settings.animate,0).hide(); }).hover(function () {$(this).children('a').children('span').stop().show().animate(aniParamsOrig, {queue: true, duration: settings.speed, easing: settings.easing, complete: function() {$(this).parent().parent().children('ul').stop().show().animate({opacity: 1}, {queue: true, duration: 'slow'});}}); },function () {$(this).children('a').children('span').stop().animate(aniParamsBack, {queue: true, duration: settings.speed, easing: settings.easing, complete: function() {$(this).hide().parent().parent().children('ul').stop().animate({opacity: 0}, {queue: true, duration: 'slow'}).hide();}});});});}
$.fn.spritemenu.defaults = { grid: 'menugrid.png', buttonwidth: 100, buttonheight: 100, buttonselector: 'li', zindex: 10, speed: 'normal', easing: 'swing', animate: 'opacity'};function abort() { arguments[0] = 'spritemenu: ' + arguments[0]; throw format.apply(null, arguments);}
function format(str) { for (var i = 1; i < arguments.length; i++) str = str.replace(new RegExp('\\{' + (i-1) + '}', 'g'), arguments[i]);return str;}})(jQuery);
$(document).ready(function(){
$('#main-menu').spritemenu({grid:"img/menu-main.jpg",buttonwidth: 280,buttonheight: 45});
$('#sub-menu').spritemenu({grid:"img/menu-sub.jpg",buttonwidth: 165,buttonheight: 35});
$('#menu').spritemenu({grid:"../img/menu-contents.jpg",buttonwidth: 150,buttonheight: 35});});

/*
 * yuga.js 0.5.1 - 優雅なWeb制作のためのJS
 * Copyright (c) 2007 Kyosuke Nakamura (kyosuke.jp)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * Since:     2006-10-30
 * Modified:  2008-02-26
 */

(function($) {
$(function() {
  $.yuga.selflink({
	  hoverClass:'roll'  //除去するロールオーバーのクラス名
  });
  $.yuga.rollover({
	  hoverClass: '.roll',		//イメージにつけるロールオーバーのクラスセレクタ
	  groupClass: '.rollgroup',//グループ化したロールオーバーのクラスセレクタ
	  postfix: '_on'			//ファイル名の末尾につける文字列
  });
  $.yuga.externalLink({
	  windowOpen: true,				//外部リンクは別ウインドウで開く
	  externalClass: 'externalLink'	//外部リンクにつけるクラス名
  });
  $.yuga.thickbox();$.yuga.stripe({
	  oddClass:'odd',		//奇数行につくクラス
	  evenClass:'even'	//偶数行につくクラス
  });
  $.yuga.css3class();$('a[href^=#], area[href^=#]').setYugaScroll();});
//---------------------------------------------------------------------
$.yuga = {
  Uri: function(s){this.originalPath = s;this.getAbsolutePath = function(path){if (!path.match(/^(mailto:)|(javascript:)/)) {var img = new Image();img.src = path;path = img.src;img.src = '#';}return path;};this.absolutePath = this.getAbsolutePath(s);
	  //同じ文書にリンクしているかどうか
	  this.isSelfLink = (this.absolutePath == location.href);
	  //絶対パスを分解
	  var fields = {'schema' : 2, 'username' : 5, 'password' : 6, 'host' : 7, 'path' : 9, 'query' : 10, 'fragment' : 11};
	  var r = /^((\w+):)?(\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/.exec(this.absolutePath);
	  for (var field in fields) {this[field] = r[fields[field]]; }},
  //現在のページへのリンク
  selflink: function (options) {
	  var c = $.extend({hoverClass:'roll'}, options);
	  $('a[href]').each(function(){var href = new $.yuga.Uri(this.getAttribute('href'));
		  if (href.isSelfLink && !href.fragment) {$(this).addClass('current');
			  //img要素が含まれていたら現在用画像（_cr）に設定
			  $(this).find('img').each(function(){
				//ロールオーバークラスが設定されていたら削除
				$(this).removeClass(c.hoverClass);this.originalSrc = $(this).attr('src');this.currentSrc = this.getAttribute('src').replace(/(\.gif|\.jpg|\.png)/, "_cr$1");$(this).attr('src',this.currentSrc);});}});},
  //ロールオーバー
  rollover: function(options) {var c = $.extend({hoverClass: '.roll',groupClass: '.rollgroup',postfix: '_on'}, options);
	  //ロールオーバーするノードの初期化
	  $(c.hoverClass).each(function(){this.originalSrc = $(this).attr('src');this.rolloverSrc = this.originalSrc.replace(/(\.gif|\.jpg|\.png)$/, c.postfix+"$1");this.rolloverImg = new Image;this.rolloverImg.src = this.rolloverSrc;});
	  //通常ロールオーバー
	  $(c.hoverClass).not($(c.groupClass+' '+c.hoverClass)).hover(function(){$(this).attr('src',this.rolloverSrc);},function(){$(this).attr('src',this.originalSrc);});
	  //グループ化されたロールオーバー
	  $(c.groupClass).hover(function(){$(this).find(c.hoverClass).each(function(){$(this).attr('src',this.rolloverSrc);});},function(){$(this).find(c.hoverClass).each(function(){$(this).attr('src',this.originalSrc);});});},
  //外部リンクは別ウインドウを設定
  externalLink: function(options) {var c = $.extend({windowOpen:true,externalClass: 'externalLink'}, options);var e = $('a[href^="http://"]');if (c.windowOpen) {e.click(function(){window.open(this.href, '_blank');return false;});}e.addClass(c.externalClass);},
  //ドキュメントのスクロールを制御するオブジェクト
  scroll: (function() {var c;var TimerId;var stepCount = 0;var lastY = -1;
	  //スクロール中に実行されるfunction
	  function move() {var currentX = getCurrentX();var currentY = getCurrentY();if (stepCount >= c.step) {
			  //スクロール終了時
			  window.scrollTo(currentX, c.endY);stepCount = 0;} else if (lastY != currentY) {
			  //スクロール操作時
			  stepCount = 0;} else {
			  //通常スクロール時
			  stepCount++;window.scrollTo(currentX, getEasingY());lastY = getEasingY();TimerId = setTimeout(move, Math.floor(1000/c.fps)); }};
	  function getCurrentY() {return document.body.scrollTop  || document.documentElement.scrollTop;}
	  function getCurrentX() {return document.body.scrollLeft  || document.documentElement.scrollLeft;}
	  function getEasingY() {return Math.floor(getEasing(c.startY, c.endY, stepCount, c.step, c.easing));}
	  function getEasing(start, end, stepCount, step, easing) {var s = stepCount/step;return (end-start)*(s+easing/(100*Math.PI)*Math.sin(Math.PI*s))+start;}return {set: function(options) {c = $.extend({startY:getCurrentY(),endY:0,easing:100,step:30,fps:60}, options);lastY = c.startY;TimerId = setTimeout(move, Math.floor(1000/c.fps));}};})(),
  //画像へ直リンクするとthickboxで表示(thickbox.js利用)
  thickbox: function() {
	  try {tb_init('a[@href$=".jpg"], a[@href$=".gif"], a[@href$=".png"]');} catch(e) {}	},
  //奇数、偶数を自動追加
  stripe: function(options) {var c = $.extend({oddClass:'odd',evenClass:'even'}, options);
	  $('ul, ol').each(function(){$(this).children('li:odd').addClass(c.evenClass);$(this).children('li:even').addClass(c.oddClass);
	  });
	  $('table').each(function(){$(this).children('tr:odd').addClass(c.evenClass);$(this).children('tr:even').addClass(c.oddClass);
		});
	  },
  //css3のクラスを追加
  css3class: function() {
	  //:first-child, :last-childをクラスとして追加
	  $('body :first-child').addClass('firstChild');
	  $('body :last-child').addClass('lastChild');
	  //css3の:emptyをクラスとして追加
	  //$('body :empty').addClass('empty');
		}};
$.fn.setYugaScroll = function() {return this.each(function(){$(this).each(function(){this.hrefdata = new $.yuga.Uri(this.getAttribute('href'));}).click(function(){var target = $('#'+this.hrefdata.fragment);if (target.length) {$.yuga.scroll.set({endY: target.offset().top});return false;}});});};
})(jQuery);