/* jquery.lh.js
http://www.lhsalon.jp/sample/jquery/
Version : 1.0.11
Copyright LionHeart Co.,Ltd.
-------------------------------------------------------------------------- */
;(function($) {
var _me="mouseenter",_ml="mouseleave";
$.extend({
lh: function() {
alert("Powerd by LionHeart.");
}
});
$.fn.extend({
/* RollOver
-------------------------------------------------------------------------- */
rollOver:function(f) {
var tgt=$(this);
if(f && !$(this).find(f).length)
return $(this);
$(this).hover(rOver,rOut).each(preLoad);
function rOver() {
var tgt=changeTgt($(this));
tgt.each(function() {
if($(this).attr("src"))
$(this).attr("src",tgt.attr("src").replace("_off.","_on."));
});
}
function rOut() {
var tgt=changeTgt($(this));
tgt.each(function() {
if($(this).attr("src"))
$(this).attr("src",tgt.attr("src").replace("_on.","_off."));
});
}
function changeTgt(tgt) {
return (f)?tgt.find(f):tgt;
}
function preLoad() {
var tgt=changeTgt($(this));
tgt.each(function() {
if($(this).attr("src"))
$("").attr("src",$(this).attr("src").replace("_off.","_on."));
});
}
return $(this);
},
/* Alpha RollOver
-------------------------------------------------------------------------- */
alphaRo:function(opt) {
var _set={
from:1,
to:0.8,
fade:false,
speed:700,
group:true
};
if(opt) $.extend(_set,opt);
$(this).css({"opacity":_set.from}).bind(_me,{toNum:_set.to},toOpacity).bind(_ml,{toNum:_set.from},toOpacity);
if($(this).css("display")=="inline") $(this).css({display:"inline-block"});
function toOpacity(e) {
var tgt=$(this);
var rel=tgt.attr('rel');
if(rel && _set.group) {
tgt=$("*[rel='"+rel+"']");
}
(_set.fade)?tgt.stop(true,false).animate({"opacity":e.data.toNum},{duration:_set.speed}):tgt.css("opacity",e.data.toNum);
}
return $(this);
},
/* Smooth Scroll
-------------------------------------------------------------------------- */
smScroll:function(opt) {
var _set={
speed:700,
easing:'',
hash:true
};
if(opt) $.extend(_set,opt);
var _hash,_h,_inH,_flag=true;
var strUA=navigator.userAgent.toLowerCase();
var _scrTgt=$('html');
if(strUA.indexOf("safari") !=-1) _scrTgt=$('body');
$(this).click(function() {
var tgt=$(this).attr('href').substr(1);
_h=Math.max(document.body.clientHeight ,document.body.scrollHeight);
_h=Math.max(_h ,document.documentElement.scrollHeight);
_h=Math.max(_h ,document.documentElement.clientHeight);
_inH=getInnerHeight();
toPos(tgt);
return false;
});
if(_set.hash) {
setInterval(function() {
var sHash=getHash();
toPosBrowse(sHash);
},200);
}
function toPos(gHash) {
if(_flag) {
_hash=gHash;
_flag=false;
_scrTgt.animate({scrollTop:toGetPoint()},_set.speed,_set.easing,setHash);
}
}
function toPosBrowse(gHash) {
if(_hash && _hash !==gHash && _flag) {
_hash=gHash;
_scrTgt.stop(true,false).scrollTop(toGetPoint());
_flag=true;
}
}
function toGetPoint() {
var result=0;
if(_hash !='') {
var tgt = $("#"+_hash);
if(! tgt.length ) tgt = $("*[name='"+_hash+"']").eq(0);
if( tgt.length ) {
result = tgt.offset().top;
if(result+_inH>_h) result=_h-_inH;
}
}
return result;
}
function getTarget() {
var tgt = $("*[name='"+_hash+"']");
if(! tgt ) {
return $("#"+_hash);
}
}
function getHash() {
if (typeof window.location.hash !=='undefined') {
return window.location.hash.substr(1);
} else {
return location.hash.substr(1);
}
}
function setHash() {
if(_set.hash) {
if (typeof window.location.hash !=='undefined') {
if (window.location.hash !==_hash) {
window.location.hash=_hash;
}
} else if(location.hash !==_hash) {
location.hash=_hash;
}
}
_flag=true;
}
return $(this);
},
/* Popup Window
-------------------------------------------------------------------------- */
anotherWin:function(opt) {
var _set={
width:500,
height:false,
name:'subWindow',
scrollbars:'yes',
resizable:'yes',
menubar:'yes',
attr:false
};
if(opt) $.extend(_set,opt);
$(this).click(function() {
var url=$(this).attr('href');
if( _set.attr ) checkAttrSize( this );
var h=(_set.height)?_set.height:getInnerHeight();
var rule='width='+_set.width+',height='+h+',scrollbars='+_set.scrollbars+',resizable='+_set.resizable+',menubar='+_set.menubar;
window.open(url,_set.name,rule);
return false;
});
function checkAttrSize( tgt ) {
var size = $(tgt).data("size").split(",");
if( ~~size[0] > 0 )
_set.width = ~~size[0];
if( ~~size[1] > 0 )
_set.height = ~~size[1];
}
return $(this);
},
/* Set Same Height
-------------------------------------------------------------------------- */
setHeight:function(child,opt) {
var _set={
outer: false,
step : 0
};
if(opt) $.extend(_set,opt);
$(this).each(function() {
var sHeight=0;
if( _set.step === 0 ) {
$(this).find(child).each(function() {
$(this).css('height','auto');
var gH=_set.outer?$(this).outerHeight():$(this).height();
if(sHeight 0 )
return;
_tgt.css("cursor","pointer").hover(function() {
_tgt.addClass(_set.aclass);
var img=_tgt.find("img[src*='_off.']");
if(img.length>0)
img.attr("src",img.attr("src").replace("_off.","_on."));
if( $.isFunction( _set.over ) )
_set.over( _tgt );
},function() {
_tgt.removeClass(_set.aclass);
var img=_tgt.find("img[src*='_on.']");
if(img.length>0)
img.attr("src",img.attr("src").replace("_on.","_off."));
if( $.isFunction( _set.out ) )
_set.out( _tgt );
});
_tgt.click(function(evt) {
if(_set.force) {
if(_a.attr("target")=="_blank") {
window.open(_a.attr("href"));
} else {
window.location.href=_a.attr("href");
}
}
_a.trigger("click");
});
}).find("a").click(function(e) {
e.stopPropagation();
}).find("img[src*='_off.']").unbind(_me).unbind(_ml);
function getTarget(result) {
if(_set.not && $(this).filter(_set.not).length>0) {
return false;
} else {
return true;
}
}
return $(this);
},
/* Default Inputarea
-------------------------------------------------------------------------- */
inputDefault:function(opt) {
var _set={
form:"form",
toColor:"#999999",
fromColor:"#333333"
};
if(opt) $.extend(_set,opt);
var exList=$(this);
$(this).each(function() {
if($(this).val()=="") {
$(this).data("flag","false").val($(this).attr("title")).css("color",_set.toColor).focus(inpFocus).blur(inpBlur);
}
});
$(_set.form).submit(function() {
exList.each(function() {
if($(this).val()==$(this).attr("title") && $(this).data("flag")=="false" ) {
$(this).val("");
}
});
});
function inpFocus() {
$(this).css("color",_set.fromColor).val("").data("flag","true");
}
function inpBlur() {
if($(this).val()=="") {
$(this).val($(this).attr("title")).css("color",_set.toColor);
$(this).bind("focus",inpFocus).data("flag","false");
} else {
$(this).unbind("focus");
}
}
return $(this);
},
/* Stoker Menu
-------------------------------------------------------------------------- */
stokerMenu:function(opt) {
var _set={
child:".stokerMenu",
toPos:20,
delay:700,
speed:5
};
if(opt) $.extend(_set,opt);
var cBox=$(this);
var lBox=$(this).find(_set.child);
lBox.show();
var nowP=0;
var scrInterval,chkInterval;
cBox.css({"position":"relative","zoom":1});
lBox.css({"position":"absolute","top":0});
switch(_set.toPos) {
case "bottom":
$(window).bind("resize",function() {
_set.toPos=getInnerHeight()-lBox.outerHeight(true);
}).trigger("resize");
var h=getInnerHeight();
var lHeight=lBox.outerHeight(true);
var cHeight=cBox.outerHeight(true);
if(h>=cHeight)
nowP=h-lHeight;
else
nowP=cHeight-lHeight;
lBox.css({"top":nowP});
break;
}
var dTop=lBox.offset().top;
goMoving();
function chkMoving() {
chkInterval=setInterval(function() {
var sabun=getTargetPos()-nowP;
if(Math.abs(sabun)>5) {
clearInterval(chkInterval);
goMoving();
}
},_set.delay);
}
function goMoving() {
scrInterval=setInterval(function() {
var sabun=(getTargetPos()-nowP)/_set.speed;
nowP=nowP+sabun;
if(Math.abs(sabun)<0.5) {
clearInterval(scrInterval);
nowP=getTargetPos();
lBox.css('top',nowP);
chkMoving();
} else {
lBox.css('top',nowP);
}
},10);
}
function getTargetPos() {
var nHeight=lBox.outerHeight(true);
var cHeight=cBox.outerHeight(true);
var scr=getScrollPosition()+_set.toPos;
tgt = scr;
tgt=tgt<0?0:tgt;
if(tgt+nHeight>cHeight)
tgt=cHeight-nHeight;
return tgt;
}
return $(this);
},
/* Set ID or Class
-------------------------------------------------------------------------- */
setIdClass:function(str) {
if( str.match("/\./") ) {
$(this).addClass( str.replace(".", "") );
} else {
$(this).attr( "id", tmp.replace("#", "") );
}
return $(this);
}
});
function getScrollPosition() {
return (document.documentElement.scrollTop||document.body.scrollTop);
}
function getInnerHeight() {
return (window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight);
}
})(jQuery);