//####################//
//## ジャケット固定 ##//
//####################//
var FixedJacket = {
	'option' : {
		'adjuster' : 5,  //固定時のWindow 最上部からの余白
		'k': 0.3, // 運動係数
		'timeoutID' : setTimeout("", 500)
	},
	
	'init' : function() {
		var that = this;
		
		var target = document.getElementById("jacket");
		target.posY = 0;
		target.defaultPosY = GET.posY(target);
		target.defaultTop = parseInt(GET.style(target, "top"));
		target.intervalID = setTimeout("", 20);
		
		if(typeof window.addEventListener == 'function') {
			window.addEventListener('scroll', function() {
				clearTimeout(that.option.timeoutID);
				
				that.chkPos(target);
				that.option.timeoutID = setTimeout(function() {
					that.fixed(target);
				}, 500);
			}, false);
		} else if(typeof window.attachEvent == 'object'){
			window.attachEvent('onscroll', function() {
				clearTimeout(that.option.timeoutID);
				
				if(YAHOO.env.ua.ie) target.style.removeAttribute('filter');
				
				that.chkPos(target);
				that.option.timeoutID = setTimeout(function() {
					that.fixed(target);
				}, 500);
			});
		}
		
		this.fixed(target);
	},
	
	'fixed' : function(obj) {
		obj.limitPosY = 0;
		if(document.getElementById("more-info")) {
			obj.limitPosY = GET.posY(document.getElementById("more-info"));
		} else {
			obj.limitPosY = GET.posY(document.getElementById("icon-info"));
		}
		
		if(obj.defaultPosY + obj.offsetHeight < GET.scrollY()) {
			if(obj.offsetHeight < GET.browserHeight()) {
				if(GET.scrollY() < obj.limitPosY - obj.offsetHeight - this.option.adjuster) {
					obj.opacity = 0;
					obj.style.visibility = "visible";
				 	obj.style.top = obj.defaultTop + (GET.scrollY() - obj.defaultPosY) + this.option.adjuster + "px";
				 	obj.intervalID = this.fadeIn(obj);
				}
			}
		} else {
			obj.opacity = 0;
			obj.style.visibility = "visible";
			if(obj.defaultPosY != GET.posY(obj)) {
				obj.style.top = obj.defaultTop + "px";
				obj.intervalID = this.fadeIn(obj);
			}
		}
	},
	
	'fadeIn': function(obj) {
		var that = this;
		
		if(obj.opacity <= 10) {
			obj.style.filter = 'alpha(opacity=' + obj.opacity * 10 + ')'; // IE
			obj.style.MozOpacity = obj.opacity / 10; // Firefox
			obj.style.opacity = obj.opacity / 10; // Safari
			obj.opacity += 1;
			
			return setTimeout(function() {
				obj.intervalID = that.fadeIn(obj);
			}, 20);
		} else {
			clearTimeout(obj.intervalID);
			if(YAHOO.env.ua.ie) obj.style.removeAttribute('filter');
		}
	},
	
	'chkPos' : function(obj) {
		if(obj.defaultPosY != GET.posY(obj)) {
			obj.style.visibility = "hidden";
		}
	}
};

//####################//
//## イニシャライズ ##//
//####################//
YAHOO.util.Event.onDOMReady(function() {
	if(YAHOO.env.ua.ie && YAHOO.env.ua.ie < 7) CtrlMainWidth.force();
	if(!YAHOO.env.ua.webkit) Shadowbox.init();
	FixedJacket.init();
});
