/**
	Common.js
*/

var preLoadImages = new Array();

// ----------------------------------------------------------------

/*
	Get elements by class name
*/
function getElementsByClassName(className, tagName, elementNode){
	var tagName = tagName || "*";
	var elementNode = elementNode || document;
	var elements = elementNode.getElementsByTagName(tagName);
	var result = new Array();
	var regClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var num = elements.length;
	for (var i = 0; i < num; i++){
		if (regClass.test(elements[i].className)){
			result.push(elements[i]);
		}
	}
	return result;
}

// ----------------------------------------------------------------

/*
	Pre load Image
*/
function loadImage(src) {
	var i = preLoadImages.length;
	preLoadImages[i] = new Image();
	preLoadImages[i].src = src;
}

// ----------------------------------------------------------------

/*
	Rollover
	
	クラス名がrolloverのIMG要素にロールオーバーイベントを設定する
	ロールオーバー用画像ファイルの接尾辞は_ov
*/
function rollover() {
	var CLASS_NAME = "rollover";
	var IMAGE_SUFFIX = "_ov";
	var elements = getElementsByClassName(CLASS_NAME, "*", document);
	var elementsNum = elements.length;
	for (var i = 0; i < elementsNum; i++) {
		var srcOriginal = elements[i].getAttribute("src");
		var srcRollover = srcOriginal.replace(/(\.gif|\.jpg|\.png)/, IMAGE_SUFFIX + "$1");
		
		elements[i].srcOriginal = srcOriginal;
		elements[i].srcRollover = srcRollover;
		/* マウスオーバー */
		elements[i].onmouseover = function() {
			this.setAttribute("src", this.srcRollover);
		}
		/* マウスアウト */
		elements[i].onmouseout = function() {
			this.setAttribute("src", this.srcOriginal);
		}
		/* プリロード */
		loadImage(elements[i].srcRollover);
	}
}

// ----------------------------------------------------------------

/*
	thisMonthScheduleクラスが指定されたA要素のhref属性を
	今月のイベントスケジュールのアドレスに設定する
*/
function setThisMonthSchedules() {
	var CLASS_NAME = "thisMonthSchedule";
	var elements = getElementsByClassName(CLASS_NAME, "a", document);
	var elementsNum = elements.length;
	var d = new Date();
	var url = "/event/" + d.getFullYear() + "/" + ("0" + (d.getMonth() + 1)).slice(-2) + "/";
	for (var i = 0; i < elementsNum; i++) {
		elements[i].href = url;
	}
}

// ----------------------------------------------------------------

function pageTop() {
	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = 0;
	if (document.documentElement) {
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}
	if (document.body) {
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}
	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3));
	window.scrollTo(Math.floor(x / 1.4), Math.floor(y / 1.4));
	if (x > 0 || y > 0) {
		window.setTimeout("pageTop()", 10);
	}
}

// ----------------------------------------------------------------

/*
	地図の広域と拡大を入れ替える
*/
function changeMap(id) {
	var IMAGE_ID = "accessMap";
	var img = document.getElementById(IMAGE_ID);
	img.src = img.src.replace(/\d(\.gif)/, id + "$1");
}

// ----------------------------------------------------------------

/*
	IEで画像リンクにフォーカスした時に出るドットラインを消す
*/
function disableLinksOutline() {
	var blurFocus = function() { this.blur(); }
	if (document.links) {
		for (var i = 0; i < document.links.length; i++) {
			document.links[i].onfocus = blurFocus;
		}
	}
}

// ----------------------------------------------------------------

/* Add Event Listener */
if (window.addEventListener) {
	window.addEventListener("load", rollover, false);
	window.addEventListener("load", setThisMonthSchedules, false);
	window.addEventListener("load", disableLinksOutline, false);
} else if (window.attachEvent) {
	window.attachEvent("onload", rollover);
	window.attachEvent("onload", setThisMonthSchedules);
	window.attachEvent("onload", disableLinksOutline);
}

// ----------------------------------------------------------------

function openEvent(url){
	subWidth = 510;
	subHeight = 600;
	subWin=window.open(url,"event","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openArtist(url){
	subWidth = 510;
	subHeight = 600;
	subWin=window.open(url,"artist","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openPickup(url){
	subWidth = 510;
	subHeight = 600;
	subWin=window.open(url,"pickup","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openCaravan(){
	url = "https://ssl.iqi.co.jp/smash/caravan07/caravan.html";
	//url = "caravan.html";
	subWidth = 500;
	subHeight = 600;
	subWin=window.open(url,"artist","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openPresent(pass){
	url = "https://ssl.iqi.co.jp/smash/frfpresent07/" + pass;
	subWidth = 500;
	subHeight = 600;
	subWin=window.open(url,"artist","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openStage(url,wname){
	subWidth = 500;
	subHeight = 600;
	subWin=window.open(url,wname,"menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openMailMagazine(){
	url = "https://ssl.entermedia.co.jp/smash/mm.asp";
	//url = "mm.html";
	subWidth = 500;
	subHeight = 350;
	subWin=window.open(url,"mm","menubar=0,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + subWidth + ",height=" + subHeight);
	subWin.focus();
}

function openWindow(url,winname,x,y){
	window.open(url,winname,"menubar=1,scrollbars=1,toolbar=0,resizable=1,status=1,width=" + x + ",height=" + y + "'");
	subWin.focus();
}
