//################################//
//## スケジュール選択ボタン追加 ##//
//################################//
var insertCtrlSche = {
	'init' : function() {
		var main = document.getElementById("main");
		var sche = document.getElementById("schedule");
		
		var div = document.createElement("div");
		div.setAttribute("id", "ctrl");
		
		var h3 = document.createElement("h3");
		h3.innerHTML = "表示コントロール";
		
		var ul = document.createElement("ul");
		var hr = document.createElement("hr");
		
		var li_regular = document.createElement("li");
		li_regular.innerHTML = '<a href="#regular">Regular</a>';
		
		var li_web = document.createElement("li");
		li_web.innerHTML = '<a href="#web">Web</a>';
		
		var li_tv = document.createElement("li");
		li_tv.innerHTML = '<a href="#tv">TV</a>';
		
		var li_radio = document.createElement("li");
		li_radio.innerHTML = '<a href="#radio">Radio</a>';
		
		var li_magazine = document.createElement("li");
		li_magazine.innerHTML = '<a href="#magazine">Magazine</a>';
		
		var li_etc = document.createElement("li");
		li_etc.innerHTML = '<a href="#etc">etc</a>';
		
		var li_event = document.createElement("li");
		li_event.innerHTML = '<a href="#event">Live / Event</a>';
				
		var liTags = new Array(li_regular, li_web, li_tv, li_radio, li_magazine, li_etc, li_event);
		
		for(var i = 0; i < liTags.length; i++) {
			liTags[i].onmouseover = function () {
				if(YAHOO.env.ua.ie && YAHOO.env.ua.ie <= 5.5) {
					this.style.cursor = "hand";
				} else {
					this.style.cursor = "pointer";
				}
				this.style.backgroundImage = "url(../img/basic/back_ani_white.gif)";
			}
			liTags[i].onmouseout = function () {
				this.style.backgroundImage = "";
			}
		}
		
		if(document.getElementById('regular')) ul.appendChild(li_regular);
		if(document.getElementById('web')) ul.appendChild(li_web);
		if(document.getElementById('tv')) ul.appendChild(li_tv);
		if(document.getElementById('radio')) ul.appendChild(li_radio);
		if(document.getElementById('magazine')) ul.appendChild(li_magazine);
		if(document.getElementById('etc')) ul.appendChild(li_etc);
		if(document.getElementById('event')) ul.appendChild(li_event);
		
		div.appendChild(h3);
		
		if(ul.hasChildNodes) {
			div.appendChild(ul);
		}
		
		main.insertBefore(div, sche);
		main.insertBefore(hr, sche);
		
		FixedItem.init('ctrl');
		FineScroll.init();
	}
};

var FixedItem  = {
	'option' : {
		'adjuster' : 5,  //固定時のWindow 最上部からの余白
		'k': 0.3, // 運動係数
		'timeoutID' : setTimeout("", 500)
	},
	
	'init' : function(id) {
		var that = this;
		
		var target = document.getElementById(id);
		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);
				clearTimeout(target.intervalID);
				
				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);
				clearTimeout(target.intervalID);
				
				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.posY = GET.posY(obj);
		
		if(GET.scrollY() > obj.defaultPosY + obj.offsetHeight) {
		 	obj.footerHeight = document.getElementById("footer").offsetHeight;
		 	
			var start = obj.defaultTop + (GET.scrollY() - (obj.posY + obj.offsetHeight)) - 5;
		 	obj.style.top = start + "px";
		 	
		 	if(YAHOO.env.ua.ie) obj.style.removeAttribute('filter');
		 	obj.style.MozOpacity = 1; // Firefox
			obj.style.opacity = 1; // Safari
		 	
		 	obj.style.visibility = "visible";
		 	
		 	obj.intervalID = this.move(obj, GET.scrollY() + this.option.adjuster);
		} else {
			if(obj.defaultPosY != GET.posY(obj)) {
			 	obj.opacity = 0;
			 	
			 	obj.style.top = obj.defaultTop + "px";
		 		obj.style.visibility = "visible";
		 		
		 		obj.intervalID = this.fadeIn(obj);
			}
		 }
	},
	
	'move': function(obj, end) {
		var that = this;
		var speed;
		var tempPos;
		
		tempPos = parseInt(GET.style(obj, "top"));
		if(Math.abs(GET.posY(obj) - end) > 1) {
			if(end + obj.offsetHeight + obj.footerHeight < GET.pageSize()) {
				speed = (end - GET.posY(obj)) * this.option.k;
				speed > 0 ? speed = Math.ceil(speed) : speed = Math.floor(speed);
				
				obj.style.top = tempPos + speed + "px";
				
				return setTimeout(function() {
					obj.intervalID = that.move(obj, end);
				}, 20);
			} else {
				clearTimeout(obj.intervalID);
			}
		} else {
			clearTimeout(obj.intervalID);
		}
	},
	
	'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";
		}
	}
};

//############################//
//## スケジュールチェッカー ##//
//############################//
var ScheduleChecker = {
	'init': function() {
		var tdTags = document.getElementsByTagName("td");
		var max = tdTags.length;
		var re = new RegExp("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]");
		
		for(var i = 0; i < max; i++) {
			if(GET.className(tdTags[i]) == 'time') {
				if(re.exec(tdTags[i].innerHTML) != null) {
					var string = re.exec(tdTags[i].innerHTML);
					var dateValue = string[0].split("-");
					var targetDate = new Date(dateValue[0], dateValue[1]-1, dateValue[2]);
					var temp = serverTime - targetDate.getTime();
					if(0 < temp && temp < 1 * 24 * 60 * 60 * 1000) {
						tdTags[i].style.backgroundImage = 'url(../img/basic/back_ani_white.gif)';
						if(GET.className(tdTags[i + 1]) == "contents") {
							tdTags[i + 1].style.backgroundImage = 'url(../img/basic/back_ani_white.gif)';
						}
					}
				}
			}
		}
	}
};

//####################//
//## イニシャライズ ##//
//####################//
YAHOO.util.Event.onDOMReady(function() {
	insertCtrlSche.init();
	ScheduleChecker.init();
});
