// ___ globals

var debug = true;

var kc;			// keyboard control
var gp;			// gallery pager

var jsReady = false;
var backgroundFx = null;

// ___ init

window.addEvent('domready', init);
//window.addEvent('focus', (function(e) { alert(e); }) );

function init() {

	// enable keyboard control
	if ("blKeyControl" in window)
		kc = new blKeyControl({});

	// gallery browser
	if ("blGalleryBrowser" in window)
		gp = new blGalleryBrowser({
			scrollElement: document.body,
			smoothScroll: false
		});

	// make checkboxes clickable
	$('sidebar').getElements('a.checkbox').each(function(el){
		
		el.store('tag', el.title);
		el.title = "";		
		el.addEvent('click', function() {setTagFilter(this);});
		
	});

	// video
	//backgroundFx = new Fx.Morph($(document.body), {duration: 1000, transition: Fx.Transitions.Sine.easeOut});
	backgroundFx = new Fx.Morph('cinemaLayer', {duration: 1000, transition: Fx.Transitions.Sine.easeOut});

	jsReady = true;
	//focusFix();
}


// ___ results

function setTagFilter(el) {
	
	if (el.hasClass('checked'))
		el.removeClass('checked');
	else
		el.addClass('checked');
		
	var tag = el.retrieve('tag');
	alert(tag);
	
}



// ___ navigation

function setupKeyboardNavigation() {
	
	// hide scrollbars
	
/*
	// project nav
	new KeyTrigger({title: 'volgende', type:'element', selector:'project', code: 39, action: browseProjects, arguments: 'next' });
	new KeyTrigger({title: 'vorige', type:'element', selector:'project', code: 37, action: browseProjects, arguments: 'previous' });
	new KeyTrigger({title: 'omlaag', type:'element', selector:'project', code: 40, action: browseLevel, arguments: '1' });
	
	// attachment nav
	new KeyTrigger({title: 'volgende', type:'element', selector:'attachments', code: 39, action: browseAttachments, arguments: 'next' });
	new KeyTrigger({title: 'vorige', type:'element', selector:'attachments', code: 37, action: browseAttachments, arguments: 'previous' });
	new KeyTrigger({title: 'omhoog', type:'element', selector:'attachments', code: 38, action: browseLevel, arguments: '-1' });
*/
}

var runTest = function(x){alert('x: ' + x);};



// ___ output to console

var defaultAlert = alert;

var alert = function(msg) {

	if (!debug)
		return;

	if (typeof(console) != "undefined" && typeOf(msg) == 'string')
		return console.log(msg);
	
	if (typeof(console) != "undefined")
		return console.log(msg);

	//defaultAlert('msg: ' + msg);
	return ;
	
}


// ____ video


function isReady() {
	return jsReady;
}

function loadingPlayer() {
	cinemaMode();
}

function startPlayer() {
	alert('startPlayer');
	try {
		$('player').startPlayer(null);
		cinemaMode();
	} catch (e){
		alert('ERROR startPlayer: ', e);
	}
}

function initPlayer() {
	alert('flash initPlayer');
	cinemaMode();
}

function playerFocus() {
	cinemaMode();
}

function playerBlur() {
	try {
		$('player').exitPlayer();
	} catch (e){
		alert('ERROR playerBlur: ', e);
	}
}

function enterFullscreen() {
	alert('enterFullscreen');
}

function exitFullscreen() {
	alert('exitFullscreen');
	//$('player').focus();
}

function exitPlayer() {
	//console.log('exitPlayer');
	websiteMode();	
}

var cm = false;
function cinemaMode() {

	if (cm) return;

	var c = $('cinemaLayer');
	if (c.getStyle('display') == 'none') {
		$('cinemaLayer').fade('hide');
		$('cinemaLayer').setStyle('display', 'block');
	}
	$('cinemaLayer').fade('in');

	// focus on flash
	$('player').focus();
	kc.resetShortcuts();

	$('cinemaLayer').addEvent('click', playerBlur);

	cm = true;
}

function websiteMode() {

	if (!cm) return;


	$('cinemaLayer').fade('out').get('tween').chain(function() {
		$('cinemaLayer').setStyle('display', 'none')
	});

	// focus on website
	$('player').blur();
	var l = $('player').getParent('.level');
	gp.setFocus();
	l.focus();

	$('cinemaLayer').removeEvent('click', playerBlur);

	cm = false;
}
