/*
*yuga.js0.7.1-優雅なWeb制作のためのJS
*Copyright(c)2009KyosukeNakamura(kyosuke.jp)
*LicensedundertheMITLicense:
*http://www.opensource.org/licenses/mit-license.php
*Since:2006-10-30
*Modified:2009-01-27
*/
(function($){
$(function(){
$.yuga.rollover();
$.yuga.scroll();
$.yuga.thickbox();
});
$.yuga={Uri:function(path){var self=this;this.originalPath=path;this.absolutePath=(function(){var e=document.createElement('span');e.innerHTML='<a href="'+path+'" />';return e.firstChild.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]];}this.querys={};if(this.query){$.each(self.query.split('&'),function(){var a=this.split('=');if(a.length==2) self.querys[a[0]]=a[1];});}},
//画像へ直リンクするとthickboxで表示(thickbox.js利用)
thickbox: function() {
try {
tb_init('a[href$=".jpg"]:not(.thickbox, a[href*="?"]), a[href$=".gif"][href!="?"]:not(.thickbox, a[href*="?"]), a[href$=".png"][href!="?"]:not(.thickbox, a[href*="?"])');
} catch(e) {}},
//ロールオーバー
rollover:function(options){var c=$.extend({hoverSelector:'.btn,.allbtn img',groupSelector:'.btngroup',postfix:'_on'},options);var rolloverImgs=$(c.hoverSelector).filter(isNotCurrent);rolloverImgs.each(function(){this.originalSrc=$(this).attr('src');this.rolloverSrc=this.originalSrc.replace(new RegExp('('+c.postfix+')?(\.gif|\.jpg|\.png)$'),c.postfix+"$2");this.rolloverImg=new Image;this.rolloverImg.src=this.rolloverSrc;});var groupingImgs=$(c.groupSelector).find('img').filter(isRolloverImg);rolloverImgs.not(groupingImgs).hover(function(){$(this).attr('src',this.rolloverSrc);},function(){$(this).attr('src',this.originalSrc);});$(c.groupSelector).hover(function(){$(this).find('img').filter(isRolloverImg).each(function(){$(this).attr('src',this.rolloverSrc);});},function(){$(this).find('img').filter(isRolloverImg).each(function(){$(this).attr('src',this.originalSrc);});});function isNotCurrent(i){return Boolean(!this.currentSrc);}function isRolloverImg(i){return Boolean(this.rolloverSrc);}},
//するするスクロール
scroll:function(options){var scroller=(function(){var c=$.extend({easing:100,step:30,fps:60,fragment:''},options);c.ms=Math.floor(1000/c.fps);var timerId;var param={stepCount:0,startY:0,endY:0,lastY:0};function move(){if(param.stepCount==c.step){setFragment(param.hrefdata.absolutePath);window.scrollTo(getCurrentX(),param.endY);}else if(param.lastY==getCurrentY()){param.stepCount++;window.scrollTo(getCurrentX(),getEasingY());param.lastY=getEasingY();timerId=setTimeout(move,c.ms);}else{if(getCurrentY()+getViewportHeight()==getDocumentHeight()){setFragment(param.hrefdata.absolutePath);}}}function setFragment(path){location.href=path}function getCurrentY(){return document.body.scrollTop||document.documentElement.scrollTop;}function getCurrentX(){return document.body.scrollLeft||document.documentElement.scrollLeft;}function getDocumentHeight(){return document.documentElement.scrollHeight||document.body.scrollHeight;}function getViewportHeight(){return (!$.browser.safari&&!$.browser.opera) ? document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight:window.innerHeight;}function getEasingY(){return Math.floor(getEasing(param.startY,param.endY,param.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){this.stop();if(options.startY==undefined) options.startY=getCurrentY();param=$.extend(param,options);param.lastY=param.startY;timerId=setTimeout(move,c.ms);},stop:function(){clearTimeout(timerId);param.stepCount=0;}};})();$('a[href^=#],area[href^=#]').not('a[href=#],area[href=#]').each(function(){this.hrefdata=new $.yuga.Uri(this.getAttribute('href'));}).click(function(){var target=$('#'+this.hrefdata.fragment);if(target.length==0) target=$('a[name='+this.hrefdata.fragment+']');if(target.length){scroller.set({endY:target.offset().top,hrefdata:this.hrefdata});return false;}});}
};})(jQuery);



