// JavaScript Document
var contArr = new Array('newsArea','worksArea','edWorksArea','aboutArea','contactArea','publicationArea');
var conTX = new Array();

function cssIE(){
	document.write("<style>.photoGlass{background-image:url('"+langDir+"img/glass.gif');}</style>");
	document.write("<style>.pjBt{background-image:url("+langDir+"img/blank.gif);}</style>");
	document.write("<style>#dragCover{background-image:url("+langDir+"img/blank.gif);}</style>");
}

function addHash(reqTitle,reqHash){
	if(reqHash) location.hash = reqHash;
	else location.hash = "";
	if(reqTitle) document.title = "ARCHITECTS TEEHOUSE | "+reqTitle;
	else document.title = "ARCHITECTS TEEHOUSE";
}

function callLink(str){
	alert('Direct link:\n'+document.location.toString().replace(/#.*/gi,'')+'#/'+str+'/');
}

function loadedFunc(){
	document.body.dragFlag = true;
	returnOBJ('contentsArea').style.display = "block";
	returnOBJ('header').style.display = "block";
	var hH = (Math.ceil(returnOBJ('header').offsetHeight/12)) * 12;
	returnOBJ('header').style.paddingBottom = hH - returnOBJ('header').offsetHeight + 24;
//	returnOBJ('header').nowAlpha = 0;
//	ch_alpha(returnOBJ('header'), 0);
	
	returnOBJ('publicationContainer').style.height = Math.ceil(returnOBJ('publicationContainer').offsetHeight / 12) * 12;
	returnOBJ('aboutContainer').style.height = (Math.ceil(returnOBJ('aboutContainer').offsetHeight / 12) - 3) * 12;
	returnOBJ('contactContainer').style.height = (Math.ceil(returnOBJ('contactContainer').offsetHeight / 12) - 3) * 12;
	returnOBJ('contentsArea').style.height = returnOBJ('contentsArea').offsetHeight;
	var stageW = 0;
	for(i = 0; i < contArr.length; i++){
		var tX = (i != 0)? returnOBJ(contArr[i - 1]).offsetWidth + conTX[i - 1] + 72 : 24;
		if(contArr[i] !== 'contactArea'){
//			stageW += returnOBJ(contArr[i]).offsetWidth + 3*24;
			returnOBJ(contArr[i]).nowAlpha = 0;
			ch_alpha(returnOBJ(contArr[i]), 0);
			returnOBJ(contArr[i]).style.visibility = "hidden";
		}
		else{
			tX = conTX[i - 1] ;
		}
/*		if(i == 3) tX += 0;
		if(i == 2) tX += 0;
		if(i == 1) tX += 12;
		if(i == 0) tX += 12;*/
		conTX.push(tX);
	}
	conTX[0] = 0;
//	if(fpng) stageW+=48;
//	returnOBJ('contentsArea').style.width = stageW;
//	returnOBJ('header').style.width = stageW;
	returnOBJ('footer').style.height = returnOBJ('footer').childNodes[1].offsetHeight;
	var statCover = returnOBJ('statCover');
	statCover.innerHTML = "";
	timerObjIntit(statCover);
	statCover.nowAlpha = 100;
	statCover.timerFunc = chWHA;
	statCover.endFunc = statFunc;
	statCover.tA = 0;
	if(ie) statCover.f = .6;
	else statCover.f = .3;
	setTimerObj(statCover);
}

statedNum = 5;
function statFunc(obj){
	if(obj) timerEndObj(obj);
	if(statedNum == 5) obj.parentNode.removeChild(obj);
//	if(statedNum == -1) endStat();
//	else{
	while(statedNum > -1){
		if(contArr[statedNum] != "contactArea"){
			var statObj = returnOBJ(contArr[statedNum]);
			statObj.style.position = "absolute";
			statObj.style.left = -504;
			statObj.style.visibility = "visible";
			timerObjIntit(statObj);
			statObj.tX = conTX[statedNum];
			statObj.timerFunc = chWHA;
			statObj.endFunc = statFunc2;
			statObj.tA = 100;
			if(ie) statObj.f = .6;
			else statObj.f = .3;
			statedNum--;
			setTimerObj(statObj);
		}
		else{
			statedNum--;
			//statFunc();
		}
	}
}

var statedEndNum = 0;
function statFunc2(obj){
	if(obj) timerEndObj(obj);
	statedEndNum++;
	if(statedEndNum == 4){
		endStat();
	}
}

function endStat(obj){
	var stW = returnOBJ(contArr[contArr.length - 1]).offsetLeft + returnOBJ(contArr[contArr.length - 1]).offsetWidth + 84;
	returnOBJ('contentsArea').style.width = stW;
	for(i = 0; i < contArr.length; i++){
		returnOBJ(contArr[i]).style.position = "static";
	}
	var winWH = returnWinSize();
	returnOBJ('message').style.top = (winWH[1] - 50)/2 + document.body.scrollTop;
	returnOBJ('message').style.left = (winWH[0] - 200)/2 + document.body.scrollLeft;
	returnOBJ('message').style.display = "block";
	
	returnOBJ('contentsArea').style.height = "auto";
	returnOBJ('lBt').style.visibility = "visible";
	returnOBJ('rBt').style.visibility = "visible";
	returnOBJ('tBt').style.visibility = "visible";
	returnOBJ('bBt').style.visibility = "visible";
	chHashJump();
	var banner = returnOBJ('banner');
	banner.timerSwitch = true;
	var selector = returnOBJ('bannerSelector');
//	selector.className = "absolute";
	selector.style.textAlign = "center";
//	selector.style.fontSize = "0.8em";
	selector.style.color = "silver";
	selector.style.width = banner.offsetWidth;
	for(i = 1; i < banner.links.length; i++){
		selector.innerHTML += "<span onclick=\"chRemoteBanner("+i+");\" style = \"margin:0 2; cursor:pointer;\">●</span>";
	}
	banner.selector = selector;
	banner.selector.childNodes[banner.nowNum].style.color = "black";
	chBanner();
	
	statTimer = setTimeout('endLoaded()',1000);
}

function endLoaded(){
	footerOut();
	messageOut();
}

function messageOut(){
	var obj = returnOBJ('message');
	timerObjIntit(obj);
	if(ie) obj.f = .5;
	else obj.f = .2;
	obj.nowAlpha = 100;
	obj.timerFunc = chWHA;
	obj.tA = 0;
	obj.endFunc = messageEnd;
	setTimerObj(obj);
}

function messageEnd(obj){
	timerEndObj(obj);	
	obj.parentNode.removeChild(obj);
}

function chHashJump(){
	if(location.hash && preHash !== location.hash){
		var reqF = location.hash.split("/");
		location.hash = "/";
		if(reqF[2]){
			pjDataReq(reqF[2],reqF[1]);
			jump(returnOBJ(reqF[2]).offsetTop - 48, returnOBJ(reqF[2]).offsetLeft - 48);
		}
		else{
			jumpToArea(reqF[1]);
		}
	}
}

function openTWorks(reqType,reqNum){
	pjDataReq(reqNum,reqType);
	jump(returnOBJ(reqNum).offsetTop - 48, returnOBJ(reqNum).offsetLeft - 48);
}

function footerOver(){
	var obj = returnOBJ('footer').childNodes[1];
	returnOBJ('footer').style.height = returnOBJ('footer').childNodes[1].offsetHeight;
	returnOBJ('bBt').style.zIndex = 1900;
	
	timerObjIntit(obj);
	if(ie) obj.f = .5;
	else obj.f = .2;
	obj.timerFunc = chWHA;
	obj.tY = 0;
	
	setTimerObj(obj);
}

footerOutTimer = null;
function footerOutStat(){
	if(footerOutTimer) clearTimeout(footerOutTimer);
	footerOutTimer = setTimeout("footerOut()", 1000);
}

function footerOut(){
	var obj = returnOBJ('footer').childNodes[1];
	returnOBJ('footer').style.height = returnOBJ('footer').childNodes[1].offsetHeight;
	
	timerObjIntit(obj);
	if(ie) obj.f = .5;
	else obj.f = .2;
	obj.timerFunc = chWHA;
	obj.tY = obj.childNodes[2].offsetHeight;
	obj.endFunc = footerEnd;
	setTimerObj(obj);
}

function footerEnd(obj){
	timerEndObj(obj);
	returnOBJ('bBt').style.zIndex = 2100;
}

function statLoaded(){
	var footerOBJ = returnOBJ('footer');
	footerOBJ.childNodes[1].style.visibility = 'hidden';
	footerOBJ.childNodes[0].style.visibility = 'visible';
}

function footerHide(){
	if(footerTimer) clearInterval(footerTimer);
	footerTimer = setInterval("chAlphaMov('footer',0,0.2,footerTimer)",1);
}

nowfocusNum = 0;
function jumpX(flag){
	if(flag) var tX = document.body.scrollLeft + document.body.clientWidth/2;
	else  var tX = document.body.scrollLeft - document.body.clientWidth/2;
	if(tX < 0)  tX = 0;
//	if(tX > document.body.offsetWidth) tX = document.body.offsetWidth;
	var tY = document.body.scrollTop;
	jump(tY, tX);
}

function jumpY(flag){
	if(flag) var tY = document.body.scrollTop + document.body.clientHeight/2;
	else  var tY = document.body.scrollTop - document.body.clientHeight/2;
	if(tY < 0)  tY = 0;
//	if(tY > document.body.offsetHeight) tX = document.body.offsetHeight;
	var tX = document.body.scrollLeft;
	jump(tY, tX);
}

function jumpToArea(nowfocusNum){
	jump(gettTop(returnOBJ(contArr[nowfocusNum])) - 48, gettLeft(returnOBJ(contArr[nowfocusNum])) - 36);
}

function ch_form(){
	if(document.contactForm.name.value==""){alert('お名前が未記入です\nName not specified');}
	else if(document.contactForm.mail.value==""){alert('e-mailが未記入です\nemail not specified.');}
	else if(document.contactForm.subject.value==""){alert('お問い合せ内容が未記入です\nMessage is empty');}
	else{
		var data = "name="+document.contactForm.name.value+"&&mail="+document.contactForm.mail.value+"&&subject="+document.contactForm.subject.value;
		sendRequest(sendedMail, data, "POST","contact.php?",true,false);
	}
}

function sendedMail(oj){
	if(decodeURIComponent(oj.responseText) == "sended"){
		alert("送信しました．\nSend");
		document.contactForm.name.value = document.contactForm.mail.value = document.contactForm.subject.value = "";
	}
}

function sortFunc(pjNum,type, reqNum){
	var obj = "";
	var j = 0;
	if(type == "cate"){
		returnOBJ(pjNum+"_sortCate").style.color = "gray";
		returnOBJ(pjNum+"_sortYear").style.color = "black";
	}
	else if(type == "year"){
		returnOBJ(pjNum+"_sortYear").style.color = "gray";
		returnOBJ(pjNum+"_sortCate").style.color = "black";
	}
	
	if(type == "cate"){
		var cateArr = new Array();
		var zero = "";
		var sliceNum = (""+ pjID[pjNum].length).length;
		//---sort()が文字コード配列で並び替えるので「i」の桁揃えのための「0」の数を設定
		for(i = 0; i < sliceNum; i++){
			zero += ""+0;
		}
		
		//---Category Array---//
		for(i = 0; i < pjID[pjNum].length; i++){
			var num = zero + ("" +  i);
			var cateArrArr = new Array(returnOBJ(pjID[pjNum][i]).cateNum, num.substr(num.length - sliceNum, sliceNum), i);
			cateArr.push(cateArrArr);
		}
		cateArr.sort();
		//---END---//
		var preNum = null;
		var jumpId = null;
		for(i = 0; i < cateArr.length ; i++){
			var obj = returnOBJ(pjID[pjNum][cateArr[i][2]]).parentNode;
			var pObj = obj.parentNode;
			pObj.removeChild(obj);
			pObj.appendChild(obj);
			if(reqNum || reqNum != 0){
				if(preNum != obj.childNodes[0].cateNum){
					if(reqNum == obj.childNodes[0].cateNum) jumpId = obj.childNodes[0].id;
				}
			}
			preNum = obj.childNodes[0].cateNum;
		}
		if(jumpId){
			var tTop = gettTop(returnOBJ(jumpId).parentNode) - 48;
			jump(tTop, '');
		}
	}
	
	else if(type == "year"){
		for(i = 0; i < pjID[pjNum].length; i++){
			var obj = returnOBJ(pjID[pjNum][i]).parentNode;
			var pObj = obj.parentNode;
			pObj.removeChild(obj);
			pObj.appendChild(obj);
		}
	}
}

selectorTimer = "";
function cateConSwitch(flag, id){
	var selector = returnOBJ(id); 
	if(flag){
		selector.style.display = 'block';
		if(selectorTimer) clearTimeout(selectorTimer);
	}
	else{
		selectorTimer = setTimeout("hideCateSelector('"+selector.id+"')",500);
	}
}

function hideCateSelector(id){
	returnOBJ(id).style.display = 'none';
}

function showSumnail(flag, obj){
	var sumnail = obj.parentNode.parentNode.parentNode.parentNode.lastChild;
	if(flag){
		sumnail.style.display = "block";
		timerObjIntit(sumnail);
		sumnail.nowAlpha = 0;
		sumnail.timerFunc = chWHA;
		sumnail.tA = 100;
		if(ie) obj.f = .5;
		else obj.f = .1;
		setTimerObj(sumnail);
	}
	else{
		timerObjIntit(sumnail);
		sumnail.timerFunc = chWHA;
		sumnail.tA = 0;
		if(ie) obj.f = .5;
		else obj.f = .2;
		sumnail.endFunc = hideSumnail;
		setTimerObj(sumnail);
	}
}

function hideSumnail(obj){
	obj.style.display = "none";
	timerEndObj(obj);
}

function sumnailMove(event, obj){
	if (!event) { event = window.event; }
	var hx, hy;
	if (document.all){ // for IE
			hx = event.offsetX;
			hy = event.offsetY;
	} else {
			hx = event.layerX;
			hy = event.layerY;
	}

	var sumnail = obj.parentNode.parentNode.parentNode.parentNode.lastChild;
	var dX = hx + gettLeft(sumnail.parentNode) + 50;
	var dY = hy + sumnail.parentNode.offsetTop;

	sumnail.style.left = dX;
	sumnail.style.top = dY;
}

function printPage(type,fnum){
	window.open(langDir+"printWin.php?type="+type+"&&fnum="+fnum+"&&cate="+returnOBJ(fnum).cateNum+"&&pjDate="+returnOBJ(fnum).yearNum+"&&lang="+lang,"_blank");
}

function dragableOff(){
	document.body.dragFlag = false;
	returnOBJ('dragCover').style.display = 'none';
}

function dragableOn(){
	document.body.dragFlag = true;
}

preHash = "";
function chHash(){
	if(location.hash) preHash = location.hash;
	hashTimer = setTimeout("chHashJump()", 1);
}

/*BANNER*/
bannerTimer = null;
function chBanner(){
	if(bannerTimer) clearTimeout(bannerTimer);
	var obj = returnOBJ('banner');
	ch_alpha(obj, 100);
	if(obj.links[obj.nowNum][1]) obj.parentNode.style.cursor = "pointer";
	else obj.parentNode.style.cursor = "auto";
	obj.parentNode.style.height = obj.parentNode.offsetHeight;
	obj.preAction = obj.links[obj.nowNum][1];
	obj.preNum  = obj.nowNum;
	obj.nowNum ++;
	if(obj.nowNum == obj.links.length) obj.nowNum = 0;
	var loader = document.createElement('div');
	loader.id = 'bannerPreLoader';
	loader.innerHTML = "<img src = \""+langDir+"dat/banner/"+obj.links[obj.nowNum][0]+".jpeg?"+time+"\" onload = \"bannerTimer = setTimeout('statChBanner()', 8000)\">";
	obj.parentNode.appendChild(loader);
}

function statChBanner(){
	var obj = returnOBJ('banner');
	if(obj.timerSwitch){
		stopSelect(obj);
		timerObjIntit(obj);
		obj.nowAlpha = 100;
		obj.timerFunc = chWHA;
		obj.endFunc = chBannerMov;
		obj.tA = 0;
		if(ie) obj.f = .5;
		else obj.f = .2;
		setTimerObj(obj);
	}
}

function stopBanner(){
	var obj = returnOBJ('banner');
	obj.timerSwitch = false;
}

function restatBanner(){
	var obj = returnOBJ('banner');
	obj.timerSwitch = true;
	if(returnOBJ('bannerPreLoader')) bannerTimer = setTimeout('statChBanner()', 8000);
	else chBanner();
}

function chBannerMov(obj){
	timerEndObj(obj);

	var tH = returnOBJ('bannerPreLoader').childNodes[0].offsetHeight;
	obj.src = returnOBJ('bannerPreLoader').childNodes[0].src;
	obj.parentNode.removeChild(returnOBJ('bannerPreLoader'));

	obj.selector.childNodes[obj.nowNum].style.color = "black";

	timerObjIntit(obj.parentNode);
	obj.parentNode.timerFunc = chWHA;
	obj.parentNode.endFunc = chBannerEnd;
	obj.parentNode.tH = tH;
	if(ie) obj.parentNode.f = .5;
	else obj.parentNode.f = .2;
	setTimerObj(obj.parentNode);
}

function chBannerEnd(obj){
	timerEndObj(obj);
	var obj = returnOBJ('banner');
	timerObjIntit(obj);
	obj.nowAlpha = 0;
	obj.timerFunc = chWHA;
	obj.endFunc = chBannerReStat;
	obj.tA = 100;
		if(ie) obj.f = .5;
		else obj.f = .2;
	setTimerObj(obj);
}

function chBannerReStat(obj){
	timerEndObj(obj);
	if(obj.links[obj.nowNum][1]) obj.parentNode.style.cursor = "pointer";
	else obj.parentNode.style.cursor = "auto";
	statSelector(obj);
	chBanner();
}

function bannerEve(){
	var obj = returnOBJ('banner');
	if(obj.links[obj.preNum][1]) eval(obj.links[obj.preNum][1]);
}

function chRemoteBanner(num){
	if(bannerTimer) clearTimeout(bannerTimer);
	var obj = returnOBJ('banner');
	ch_alpha(obj, 100);
	if(obj.links[obj.nowNum][1]) obj.parentNode.style.cursor = "pointer";
	else obj.parentNode.style.cursor = "auto";
	obj.parentNode.style.height = obj.parentNode.offsetHeight;
	obj.preAction = obj.links[obj.nowNum][1];
	obj.preNum  = obj.nowNum;
	obj.nowNum = num;
	if(returnOBJ('bannerPreLoader')) returnOBJ('bannerPreLoader').parentNode.removeChild(returnOBJ('bannerPreLoader'));
	var loader = document.createElement('div');
	loader.id = 'bannerPreLoader';
	loader.innerHTML = "<img src = \""+langDir+"dat/banner/"+obj.links[num][0]+".jpeg?"+time+"\" onload = \"statChBanner();\">";
	obj.parentNode.appendChild(loader);
}

function stopSelect(obj){
	for(i = 0; i < obj.selector.childNodes.length; i++){
		obj.selector.childNodes[i].style.color = "silver";
	}
	var cover = document.createElement('div');
	cover.className = "absolute";
	cover.style.top = obj.selector.offsetTop;
	cover.style.width = obj.selector.offsetWidth;
	cover.style.height = obj.selector.offsetHeight;
	obj.selector.appendChild(cover);
	ch_alpha(obj.selector,50);
}

function statSelector(obj){
	obj.selector.removeChild(obj.selector.lastChild);
	ch_alpha(obj.selector,100);
}

function pjBtCh(flag, obj, f){
	timerObjIntit(obj);
	obj.timerFunc = chBgColor;
	if(! f){
		obj.f = .1;
		if(ie) obj.f = .7;
	}
	else{
		obj.f = f;
	}
	if(fpng) obj.f = 1;
	
	if(flag){
		obj.tColor = new Array(70,70,70);
		obj.nowColor = new Array(255,150,200);
		obj.childNodes[0].childNodes[0].childNodes[1].childNodes[2].childNodes[1].style.color = "rgb(210,210,210)";
		obj.childNodes[0].childNodes[0].childNodes[1].childNodes[3].childNodes[0].style.color = "rgb(200,200,200)";
	}
	else{
		obj.tColor = new Array(255,255,255);
		obj.childNodes[0].childNodes[0].childNodes[1].childNodes[2].childNodes[1].style.color = "black";
		obj.childNodes[0].childNodes[0].childNodes[1].childNodes[3].childNodes[0].style.color = "black";
	}
	setTimerObj(obj);
}

function chBgColor(obj){
	chFlag = true;
	obj.nowColor[0]  = (obj.tColor[0] - obj.nowColor[0]) * obj.f + obj.nowColor[0];
	if(Math.abs(obj.tColor[0] - obj.nowColor[0]) > 1) chFlag = false;
	obj.nowColor[1] = (obj.tColor[1] - obj.nowColor[1]) * obj.f + obj.nowColor[1];
	if(Math.abs(obj.tColor[1] - obj.nowColor[1]) > 1) chFlag = false;
	obj.nowColor[2] = (obj.tColor[2] - obj.nowColor[2]) * obj.f + obj.nowColor[2];
	if(Math.abs(obj.tColor[2] - obj.nowColor[2]) > 1) chFlag = false;
	
	obj.style.backgroundColor = "rgb("+Math.floor(obj.nowColor[0])+","+Math.floor(obj.nowColor[1])+","+Math.floor(obj.nowColor[2])+")";
	
	if(chFlag){
		obj.style.backgroundColor = "rgb("+obj.tColor[0]+","+obj.tColor[1]+","+obj.tColor[2]+")";
		timerEndObj(obj);
	}
}

function lBtCh(obj, flag){
	if(! fpng){
		if(flag) obj.style.backgroundPosition = '0 0';
		else obj.style.backgroundPosition = '0 20';
	}
}

function rBtCh(obj, flag){
	if(! fpng){
		if(flag) obj.style.backgroundPosition = '20 0';
		else obj.style.backgroundPosition = '20 20';
	}
}
