var win = (navigator.userAgent.indexOf("Windows") != -1) || false;
var mac = (navigator.userAgent.indexOf("PPC Mac") != -1 || navigator.userAgent.indexOf("PowerPC") != -1 ) || false;
var intelMac = (navigator.userAgent.indexOf("Intel Mac") != -1) || false;
var firefox = (navigator.userAgent.indexOf("Firefox") != -1) || false;
var opera9 = (navigator.userAgent.indexOf("Opera/9") != -1) || false;
var opera = (navigator.userAgent.indexOf("Opera") != -1 && !opera9) || false;
var ie = (document.all && win && !opera && !opera9) || false;
var ie7 = (navigator.userAgent.indexOf("MSIE 7") != -1) || false;
var ie5 = (!document.getElementByID && navigator.userAgent.indexOf("MSIE 5") != -1) || false;
var macIE = (navigator.userAgent.indexOf("MSIE") != -1 && mac) || false;
var safari = (navigator.userAgent.indexOf("Safari") != -1) || false;
var camino = (navigator.userAgent.indexOf("Camino") != -1) || false;
var omniweb = (navigator.userAgent.indexOf("OmniWeb") != -1) || false;
var netscape = (navigator.userAgent.indexOf("Netscape") != -1) || false;

//####################//
//## イニシャライズ ##//
//####################//

function initTop() {
    ddClose();
    initAnchor()
	//initLightbox();
    return;
}
function initProfile() {
	//initLightbox();
    initAnchor();
    return;
}

function initDisco(target) {
    if(target != null) {
	    fixedItem(target);
	}
    initAnchor();
    return;
}
function initRelease(target) {
	fixedItem(target);
    initAnchor();
    delMark();
    xpIE6();
    return;
}
function initSche(target) {
	if(target != null) {
	    fixedItem(target);
	}
    initAnchor();
    autoClick();
    return;
}
function initMail() {
    initAnchor();
    return;
}
function initSpRoad() {
	//addJumpButton();
	//flexFloat();
}
function initDemae() {
    initAnchor();
    return;
}
//##########################//
//## アンカーコントロール ##//
//##########################//
function initAnchor() {
    var imageTags = document.getElementsByTagName("IMG");
    var exp = new RegExp("icon_back", "i");
    
    for(var i = 0; i < imageTags.length; i++) {
        if(imageTags[i].src.search(exp) != -1) {
            imageTags[i].parentNode.onclick = function() {
                pageScroll();
                return false;
            }
        }
    }
}

//############################//
//## トピックスコントロール ##//
//############################//

function ddClose() {
if (document.getElementById){
    var topics = document.getElementById("topics");
    var ddTags = topics.getElementsByTagName("DD");
    
    for(var i = 0; i < ddTags.length; i ++) {
        if( ddTags[i].firstChild.nodeName == "EM") {
            var temp = ddTags[i];
            while (temp.nodeName != "DT") {
                temp = temp.previousSibling;
            }
            temp.style.fontWeight = "bold";
            temp.title= "タイトル左のアイコンをクリックすると情報の開閉ができます。";
            var imgTag = temp.firstChild;
            while (imgTag.nodeName != "IMG") {
                imgTag = imgTag.firstChild;
            }
            imgTag.alt = "詳細を閉じる（javascript使用）";
            imgTag.title = "詳細を閉じる（javascript使用）";
            imgTag.src = "./img/basic/icon_minus.gif";
            imgTag.parentNode.onclick = function() {
                openCloseDD(this);
                return false;
            }

            while (temp != null) {
                if (temp.nodeName == "DD") {
                    temp.style.display = "block";
                    i++;
                }
                temp = temp.nextSibling;
            }
            i--;
        } else if(ddTags[i].className != "date") {
            ddTags[i].style.display = "none";
            var  temp = ddTags[i];
            while (temp.nodeName != "DT") {
                temp = temp.previousSibling;
            }
            temp.style.fontWeight = "normal";
            temp.title="タイトル左のアイコンをクリックすると情報の開閉ができます。";
            
            var imgTag = temp.firstChild;
            while (imgTag.nodeName != "IMG") {
                imgTag = imgTag.firstChild;
            }
            imgTag.alt = "詳細を開く（javascript使用）";
            imgTag.title = "詳細を開く（javascript使用）";
            imgTag.src = "./img/basic/icon_plus.gif";
            imgTag.parentNode.onclick = function() {
                openCloseDD(this);
                return false;
            }

        }
    }
}
}

function openCloseDD(obj) {
if (document.getElementById){
    while (obj.nodeName != "IMG") {
        obj = obj.firstChild;
    }
    var target = obj.parentNode;
    while (target.nodeName != "DT") {
        target = target.parentNode;
    }
    
    while(target != null) {
        if (target.nodeName == "DT") {
            var s1 = target.style.fontWeight;
            if (opera || opera9) {
                if (s1 != 700) {
                    target.style.fontWeight = "bold";
                } else {
                    target.style.fontWeight = "normal";
                }
            } else {
                if (s1 != "bold") {
                    target.style.fontWeight = "bold";
                } else {
                    target.style.fontWeight = "normal";
                }
            }
        } 
        if (target.nodeName == "DD" && target.className != "date") {
            var s2 = target.style.display;
            if (s2 != "block") {
                target.style.display = "block";
                obj.alt = "詳細を閉じる（javascript使用）";
                obj.title = "詳細を閉じる（javascript使用）";
                obj.src = "./img/basic/icon_minus.gif";
            } else {
                target.style.display = "none";
                obj.alt = "詳細を開く（javascript使用）";
                obj.title = "詳細を開く（javascript使用）";
                obj.src = "./img/basic/icon_plus.gif";
            }
            target = target.nextSibling;
        } else {
            target = target.nextSibling;
        }
    }
}
}

//########################//
//## トピックス注意書き ##//
//########################//

function drawTopicsInfo() {
if (document.getElementById){
        document.write('<p class="note">各トピックタイトル左のアイコンをクリックすると情報の開閉ができます。</p>');
}
}

//####################################//
//## ディスコグラフィーアイテム選択 ##//
//####################################//

function openCloseDiscography(target) {
if (document.getElementById){
    var dl = document.getElementsByTagName("DL");
    var re = new RegExp(target, "i");
    var temp = 0;
        
    while(dl.item(temp) !== null) {
        if(dl.item(temp).className.search(re) != -1 || target == "all") {
            dl.item(temp).style.display = "block";
        } else {
            dl.item(temp).style.display = "none"
        }
        temp++;
    }
    setTimeout(fixedObj('ctrl',getMarginTop('ctrl'), 5, 'icon-info'), 1);
}
}

//##############################//
//## スケジュールアイテム選択 ##//
//##############################//

function openCloseTABLE(target) {
if (document.getElementById){
	var schedule = document.getElementById("schedule");
    var table = schedule.getElementsByTagName("TABLE");
    var temp = 0;
    
    while(table.item(temp) !== null) {
        
        if(table.item(temp).id == target || target == "all") {
            table.item(temp).style.display = "block";
        } else {
            table.item(temp).style.display = "none"
        }
        temp++;
    }
    setTimeout(fixedObj('ctrl',getMarginTop('ctrl'), 5, 'memo'), 1);
}
}
//####################################################################//
//## IE6 XP 用 メイリオ適用 XHTML1.1 こっそりlang属性付加します関数 ##//
//####################################################################//
function xpIE6() {
if (document.getElementById){
	if(ie) {
		var temp;
		
		if(temp = document.getElementById("topicpath")) {
			temp.setAttribute("lang", "ja");
		}
		if(temp = document.getElementById("release-info")) {
			temp.setAttribute("lang", "ja");
		}
		if(temp = document.getElementById("icon-info")) {
			temp.setAttribute("lang", "ja");
		}
		if(temp = document.getElementById("notice")) {
			temp.setAttribute("lang", "ja");
		}
		if(temp = document.getElementById("menu")) {
			temp.setAttribute("lang", "ja");
		}
		return;
	} else {
		return;
	}
}
}

//########################################//
//## 指定したアイテムをウインドウに固定 ##//
//########################################//

function fixedItem() {
if (document.getElementById){
	
	for(var i = 0; i < arguments.length; i++) {
		var obj = arguments[i].split("/");
		
		if(obj.length == 2) {
			var target = obj[0];
			var end = obj[1];
		} else if(obj.length > 3) {
			var target = obj[0];
			var end = null;
		} else {
			var target = obj;
			var end = null;
		}
		var marginTop = getMarginTop(target);
		
		setTimeout(fixedObj(target, marginTop, 5, end), 1);
		
		if(!macIE) {
			if(!ie && !ie7) {
				window.addEventListener('scroll', fixedObj(target, marginTop, 5, end), false);
			} else {
				window.attachEvent('onscroll',  fixedObj(target, marginTop, 5, end));
			}
		}
	}
}
}

function fixedObj(targetID, marginTopFromBody, space, endID) {
	return function() {
		//限界縦画面サイズ（これより小さいとスクロールさせない）
		if(targetID == "jacket") {
			if(endID != null) {
				var jacket = document.getElementById(targetID);
				var imgs = jacket.getElementsByTagName("IMG");
				var imgsHeight = 12; //リミットオブジェクトに対する上部余白
				for(var i = 0; i < imgs.length; i++) {
					imgsHeight += imgs[i].height;
					imgsHeight += 4;
				}
				var limit = imgsHeight;
			} else {
				return;
			}
		} else {
			var limit = document.getElementById(targetID).offsetHeight + 20;
		}
		var winHeight = getHeight();
		
		if(winHeight > limit) {
			var obj = document.getElementById(targetID);
			var scrY = getScroll();
			
			if(targetID == "jacket") {
				if(endID != null) {
					if(endID != "more-info") {
						var limitHeight = getMarginTop(endID);
					} else {
						var temp = document.getElementById(endID);
						var h3Tags = temp.getElementsByTagName("H3");
						h3Tags[0].id = "temp";
						var limitHeight = getMarginTop("temp");
					}
					if(scrY - (marginTopFromBody - space) > 0) {
						if(scrY + imgsHeight  < limitHeight) {
							obj.style.marginTop = scrY - (marginTopFromBody - space) + "px";
						} else {
							obj.style.marginTop = limitHeight - imgsHeight - (marginTopFromBody - space) + "px";
						}
					} else {
						obj.style.marginTop = 0 + "px";
					}
				}
			} else {
				var limitHeight = getMarginTop(endID);

				if(scrY - (marginTopFromBody - space) > 0) {
					if(scrY + limit  < limitHeight) {
						obj.style.top = scrY - (marginTopFromBody - space) + "px";
					} else {
						obj.style.top = limitHeight - limit - (marginTopFromBody - space) + "px";
					}
				} else {
					obj.style.top = 0 + "px";
				}
			}
		}
	}
}

//##########################################################//
//## 対象オブジェクトの BODYからの トップマージン取得関数 ##//
//##########################################################//
function getMarginTop(id) {
	
	var obj = document.getElementById(id);
	var marginTop = obj.offsetTop;
	if(!ie7) {
		while(obj.offsetParent.nodeName != "BODY") {
			obj = obj.offsetParent;
			marginTop += obj.offsetTop;
		}
	} else {
		while(obj.offsetParent.nodeName != "HTML") {
			obj = obj.offsetParent;
			marginTop += obj.offsetTop;
		}
	}
	obj = obj.offsetParent;
	marginTop += obj.offsetTop;

	return marginTop;
}

//##########################################//
//## ブラウザの縦の表示領域サイズ取得関数 ##//
//##########################################//
function getHeight() {
    if(ie7 || firefox) {
        return document.documentElement.clientHeight;
    } else if(ie || opera || opera9) {
        return document.body.clientHeight;
    } else if(safari) {
        return window.innerHeight;
    } else {
        return 0;
    }
}

//##########################//
//## スクロール幅取得関数 ##//
//##########################//
function getScroll() {
    if(ie7) {
        return document.documentElement.scrollTop;
    } else if(ie || macIE || netscape) {
        return document.body.scrollTop;
    } else if(safari || firefox || omniweb || opera || opera9) {
        return window.pageYOffset;
    } else {
        return 0;
    }
}

//##########################//
//## ウインドウスクロール ##//
//##########################//

function pageScroll() {
    var scroll = 1;
    var scrY = getScroll();
    if(scroll < 50 && scrY && scrY != null) {
        scrY = (scrY > 3) ? Math.ceil(scrY * 0.2) : 1;
        scroll++;
        scrollBy(0, -scrY);
        setTimeout("pageScroll()", 20);
    } else {
        scrollTo(0, 0);
        scroll = 1;
    }
}

//##############################################//
//## ディスコグラフィーのコントローラ表示関数 ##//
//##############################################//

function drawCtrl(page) {
	if(page == 'discography') {
		document.write('<div id="ctrl">');
		document.write('<h2>表示コントロール</h2>');
		document.write('<ul>');
		document.write('<li class="all"><a href="#all" onkeypress="document.focus(); openCloseDiscography(\'all\'); return false;" onclick="openCloseDiscography(\'all\'); return false;">ALL</a></li>');
		document.write('<li><a href="#album" onkeypress="document.focus(); openCloseDiscography(\'album\'); return false;" onclick="openCloseDiscography(\'album\'); return false;">Album</a></li>');
		document.write('<li><a href="#single" onkeypress="document.focus(); openCloseDiscography(\'single\'); return false;" onclick="openCloseDiscography(\'single\'); return false;">Single</a></li>');
		document.write('</ul>');
		document.write('</div>');
		document.write('<hr />');
	} else if(page == 'schedule'){
		document.write('<div id="ctrl">');
		document.write('<h2>表示コントロール</h2>');
		document.write('<ul>');
		document.write('<li class="all"><a href="#all" onkeypress="document.focus(); openCloseTABLE(\'all\'); return false;" onclick="openCloseTABLE(\'all\'); return false;">ALL</a></li>');
		document.write('<li><a href="#regular" onkeypress="document.focus(); openCloseTABLE(\'regular\'); return false;" onclick="openCloseTABLE(\'regular\'); return false;">Regular</a></li>');
		document.write('<li><a href="#web" onkeypress="document.focus(); openCloseTABLE(\'web\'); return false;" onclick="openCloseTABLE(\'web\'); return false;">Web</a></li>');
		document.write('<li><a href="#tv" onkeypress="document.focus(); openCloseTABLE(\'tv\'); return false;" onclick="openCloseTABLE(\'tv\'); return false;">TV</a></li>');
		document.write('<li><a href="#radio" onkeypress="document.focus(); openCloseTABLE(\'radio\'); return false;" onclick="openCloseTABLE(\'radio\'); return false;">Radio</a></li>');
		document.write('<li><a href="#magazine" onkeypress="document.focus(); openCloseTABLE(\'magazine\'); return false;" onclick="openCloseTABLE(\'magazine\'); return false;">Magazine</a></li>');
		document.write('<li><a href="#etc" onkeypress="document.focus(); openCloseTABLE(\'etc\'); return false;" onclick="openCloseTABLE(\'etc\'); return false;">etc</a></li>');
		document.write('<li><a href="#event" onkeypress="document.focus(); openCloseTABLE(\'event\'); return false;" onclick="openCloseTABLE(\'event\'); return false;">Live / Event</a></li>');
		document.write('</ul>');
		document.write('</div>');
		document.write('<hr />');
	}
}

//####################################//
//## macIE テーブルボーダーバグ回避 ##//
//####################################//
function autoClick() {
	if(macIE) {
		openCloseTABLE('all');
	}
}

//###################################//
//## Opera9 表示バグ対応スクリプト ##//
//###################################//
function delMark() {
    if(opera9) {
        window.onscroll = function(e) {
            var list = document.getElementById("list");
            changeWidth(list, 564);
            setTimeout("changeWidth(list, 565)", 1);
        }
    }
}
function changeWidth(obj, width) {
    obj.style.width = width + "px";
}

//########################//
//## メールアドレス描画 ##//
//########################//

function drawMail() {
	var emailriddlerarray=[109,97,109,111,114,105,116,97,105,109,111,110,111,64,116,101,105,99,104,105,107,117,46,99,111,46,106,112];
	var encryptedemail_id30 = '';
	
	for (var i = 0; i < emailriddlerarray.length; i++) {
		encryptedemail_id30 += String.fromCharCode(emailriddlerarray[i]);
	}
	document.write('<p class="mail"><a href="mailto:' + encryptedemail_id30 + '">' + encryptedemail_id30 + '</a></p>' + "\n");
}

//#################################################//
//## smoothbox 用 liタグ全体をクリック範囲にする ##//
//#################################################//
function addClick() {
	var div = document.getElementById("photo");
	var liTags = div.getElementsByTagName("LI");
	var liTagsLength = liTags.length;
	
	
	for(var i = 0; i < liTagsLength; i++) {
		var ATags = liTags[i].getElementsByTagName("A");
		liTags[i].href = ATags[0].href;
		liTags[i].title = ATags[0].title;
		liTags[i].className = "smoothbox";
		liTags[i].rel = "photo";
		ATags[0].style.textDecoration = "none";
		if(!ie5) {
			liTags[i].style.cursor = "pointer";
		}
		/*
		liTags[i].onmouseover = function () {
			this.style.backgroundImage = "url(http://www.teichiku.co.jp/artist/nagayama/special/road/img/basic/back_animation.gif)";
		}
		liTags[i].onmouseout = function () {
			this.style.backgroundImage = "url(http://www.teichiku.co.jp/artist/nagayama/special/road/img/basic/back_photo_li.png)";
		}
		*/
	}
}

//########################//
//## メールアドレス描画 ##//
//########################//

function drawMail() {
	var emailriddlerarray = [110,97,103,97,121,97,109,97,95,100,101,109,97,101,64,116,101,105,99,104,105,107,117,46,99,111,46,106,112];
	var encryptedemail_id38 = '';
	
	for (var i = 0; i < emailriddlerarray.length; i++) {
		encryptedemail_id38 += String.fromCharCode(emailriddlerarray[i]);
	}
	document.write('<p class="mail"><a href="mailto:' + encryptedemail_id38 + '?subject=%89i%8eR%8f%ae%91%be%20%8fo%91O%83%89%83C%83u%88%cb%97%8a">' + encryptedemail_id38 + '</a></p>' + "\n");
}