//####################//
//## ジャケット固定 ##//
//####################//
var FixedJacket = {
	'option' : {
		'adjuster' : 5,  //固定時のWindow 最上部からの余白
		'k': 0.3, // 運動係数
		'timeoutID' : setTimeout("", 500)
	},
	
	'init' : function() {
		if(GET.className(document.getElementById("main")) == "catalog") {
			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) {
		DD_belatedPNG.fix('#main');
		DD_belatedPNG.fix('#more-info');
	}
	
	if(YAHOO.env.ua.ie && YAHOO.env.ua.ie < 7) CtrlMainWidth.force();
	if(!YAHOO.env.ua.webkit) Shadowbox.init();
	FixedJacket.init();
});
