// ----------- for splash
var _splashImages = [
	'../common/images/works/utsutsu/FH000001.jpg',
	'../common/images/works/utsutsu/FH000015.jpg',
	'../common/images/works/kz/113_1305.jpg',
	'../common/images/works/kz/111_1193.jpg',
	'../common/images/works/monuments/372_7282.jpg',
	'../common/images/works/monuments/369_6961.jpg',
	'../common/images/works/vibes/DSC_9998.jpg',
	'../common/images/works/vibes/DSC_9871.jpg'
];
var _splashCredits = [
	'<a href="#">U-Tsu-Tsu-Na-Re</a>, 2003',
	'<a href="#">U-Tsu-Tsu-Na-Re</a>, 2003', 
	'<a href="#">KZ</a>, 2005, photo by Toshihiro SHIMIZU', 
	'<a href="#">KZ</a>, 2005, photo by Toshihiro SHIMIZU', 
	'<a href="#">MONU/MENT(s) for Living</a>, 2007, photo by Toshihiro SHIMIZU', 
	'<a href="#">MONU/MENT(s) for Living</a>, 2007, photo by Toshihiro SHIMIZU', 
	'<a href="#">vibes</a>, 2007, photo by Yuya ITO', 
	'<a href="#">vibes</a>, 2007, photo by Yuya ITO'
];
// -----------


var _parsedAnchor;
var _checkUrlTimer;

var _currentAnchor;

var _splashManager;
var _indexSplash;


var _pageManager;
var _workPageManager;



function initIndexPage(){
	alphaFilter('h1 img');
	alphaFilter('#kakame_title');
	//initPage();
	_pageManager = new PageManager($('contents-container'));
	
	initLoader();
	initMenu();
	initWorkLinks();
	
	$('current').hide();
	$('works').hide();
	$('about').hide();
	
	$('selected').childElements().each(function(li){
		li.observe('mouseover', function(){
			li.addClassName('highlight')
		}.bindAsEventListener(li));
		li.observe('mouseout', function(){
			li.removeClassName('highlight')
		}.bindAsEventListener(li));
	});
	
	
	_splashManager = new SplashManager($('splash-container'));
	_indexSplash = new IndexSplash(_splashManager, _splashImages, _splashCredits);
	//_indexSplash.start();
	
	_checkUrlTimer = setInterval(checkUrl, 50);
}
function initWorksPage(){
	var url = location.pathname;
	var current = url.substring(url.lastIndexOf("/")+1, url.length);
	var dir = url.substring(0, url.lastIndexOf("/")+1);

	var formatted = formatWorksLinkToAnchor(current);

	var hash = location.hash;
	if(hash != null && hash != ""){
		formatted += "/"+parseAnchor(hash);
	}
	
	location.href = dir+formatted;
}

function checkUrl(){

	var anchor = location.hash;

	//check anchor, if it is not changed, nothing to do...
	if(_currentAnchor == anchor){
		return;
	}
	
	//anchor is changed.
	_currentAnchor = anchor;
	
	//tracking
	var a = _currentAnchor.substring(1, _currentAnchor.length);
	if(! a.startsWith("/")){
		a = "/"+a;
	}
	if(pageTracker){
		pageTracker._trackPageview(a);
	}


	//parse it
	var parsedAnchor = parseAnchor(anchor);

	if(parsedAnchor instanceof Array){
		//[0] = page category	(ex. work)
		//[1] = page id			(ex. utsutsunare)
		//[2] = sub page id		(ex. abstract)
		
		var page = $(parsedAnchor[1]);
		if(_pageManager.isChanged(page)){
			// -- stop splash
			_indexSplash.stop();
			// -- display loading
			showLoader({queue:{scope:'pages',position:'end'}});
			// -- hide page
			_pageManager.hideCurrent({
				afterFinish:function(){
					// -- clean up workPage
					if(_workPageManager != null){
						_workPageManager.unloadPage();
					}
					var url = parsedAnchor[0]+"_"+parsedAnchor[1]+".html";
					_workPageManager = new WorkPageManager(_pageManager, _splashManager);
					//get new page from Ajax
					_workPageManager.loadPage(url, parsedAnchor[2]);
				},
				queue:{scope:'pages',position:'end'}
			});
		}else{
			//page is not changed
			if(_workPageManager == null){
				return;
			}
			_workPageManager.changePage(parsedAnchor[2]);
		}
	}else{
		//pages inside
		if(_workPageManager != null){
			_workPageManager.hide();
		}

		var page = $(parsedAnchor);
		if(page == undefined){
			page = $("current");
		}
		_pageManager.change(page, {queue:{scope:'pages',position:'end'}});
		_indexSplash.start();
	}
	changeLanguageMenu(anchor);
}
function changeLanguageMenu(anchor){
	var lang = $('select-lang');
	var a = lang.select('p a')[0];
	var link = a.readAttribute('href');
	var index = -1;
	//alert(anchor);
	if((index = link.indexOf("#")) > 0){
		link = link.substring(0, index);
	}
	link += location.hash;
	a.writeAttribute('href', link);
}

function initMenu(){
	var menus = $$('ul#menu li a');

	menus.each(function(menu){
		menu.onclick = function(){
			var href = this.readAttribute("href");
			if(location.hash == href){
				return false;
			}
			return true;
		}.bindAsEventListener(menu);
	});
}
function initWorkLinks(){
	var linksLi = $$('#works ul#selected li').concat($$('#historical ul li'));
	linksLi.each(function(li){
		var link = li.down('a');
		if(link == undefined){
			return;
		}
		var href = link.readAttribute("href");
		href = href.substring(href.lastIndexOf("/"), href.length);
		if(href.startsWith("work")){
			var newLink = "#/work/";
			newLink += href.substring(href.indexOf("_")+1, href.lastIndexOf(".html"));
			link.writeAttribute("href", newLink);
			li.onclick = function(){
				location.hash = newLink;
			}
		}
	});
}
function formatWorksLinkToAnchor(href){
	href = href.substring(href.lastIndexOf("/"), href.length);
	if(href.startsWith("work")){
		var newLink = "#/work/";
		newLink += href.substring(href.indexOf("_")+1, href.lastIndexOf(".html"));
		return newLink;
	}
	return href;
}