window.addEvent('domready', function()
	{
		
		console.log('initializing bang bang class')
		bangbang.bgPreloader();
		$('nav_bar').getElements('a').addEvent('click', function(){bangbang.pageChange(this)});
		
		var gotopage = $get('#');
		console.log('goto page: ' + gotopage);
		
		if(gotopage != '')
			bangbang.pageSet = gotopage;
		else
			bangbang.pageSet = 'home';
		
		//bangbang.fetchPage(bangbang.pageSet);
		bangbang.pageChange(bangbang.pageSet);
	}	
);



var bangbang = {};
pageContentArray = {};

bangbang.openPage = function(url)
{
	window.open(url) 
}

bangbang.pageChange = function(el)
{
	console.log('page change');
	console.log(el);
	var page;
	if(typeof(el) == 'string')
	{
		page = el;		
	}
	else
	{
		page = new String(el.getProperty('href'));
		page  = page.replace('#','');
	}
	console.log('to page ' + page)
	
	bangbang.pageSet = page;
	
	var tmp;
	$('nav_bar').getElements('a').each(function(el)
	{
		el.setStyle('color','#FFFFFF');
		tmp = new String(el.getProperty('href'));
		tmp  = tmp.replace('#','');
		if(tmp == page)
			el.setStyle('color','#990000');
	}
	
	);
	
	var container = $('pageContent');
	exampleFx = new Fx.Tween(container, {
	property: 'opacity',
	duration: 500,
	transition: Fx.Transitions.Quart.easeInOut,
	onComplete: function(){console.log('completing fading away');
				bangbang.fetchPage(page);
	},
	});
	
	exampleFx.start.pass([1,0], exampleFx).delay(0);
	
}

bangbang.bgPreloader = function()
{
	preload_image_object = new Image();
	image_url = new Array();
    image_url[0] = "img/pages/home.png";
    image_url[1] = "img/pages/screening.png";
    image_url[2] = "img/pages/about.png";

     var i = 0;
     for(i=0; i<=3; i++) 
       preload_image_object.src = image_url[i];
}

function loadScript(url, callback){

    var script = document.createElement("script")
    script.type = "text/javascript";

    if (script.readyState){  //IE
        script.onreadystatechange = function(){
            if (script.readyState == "loaded" ||
                    script.readyState == "complete"){
                script.onreadystatechange = null;
                callback();
            }
        };
    } else {  //Others
        script.onload = function(){
            callback();
        };
    }

    script.src = url;
    document.getElementsByTagName("head")[0].appendChild(script);
}

bangbang.fetchPage = function(page)
{
	var myElement = document.id('pageContent');
	for(var key in pageContentArray)
	{
		if(key == page)
		{
			console.log('loading for cache');
			myElement.set('html', pageContentArray[key]);
			bangbang.transitionToPage(page);
			
			if(page == 'home')
				bangbang.loadVideoPlayer();
			
			return;
		}
	}
	
	var myRequest = new Request.HTML({
	    url: 'home.php',
	    method: 'get',
	    evalScripts: true,
	    onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript)
	    {
			pageContentArray[page] = responseHTML;
			myElement.set('html', responseHTML);
			bangbang.transitionToPage(page);
			
			Shadowbox.init({ skipSetup: true }); Shadowbox.setup(); 
			
			if(page=='home')
				bangbang.loadVideoPlayer();	
	    },
	    onFailure: function(){
	        myElement.set('text', 'Sorry, your request failed :(');
	    }
	});
	
	
	switch (page)
	{
		case 'home':
			console.log('switching to home page');
			myRequest.send({url:page+'.php'});
		break;
		case 'about':
			console.log('switching to home page');
			myRequest.send({url:page+'.php'});
		break;
		case 'media':
			console.log('switching to media page');
			myRequest.send({url:page+'.php'});
		break;
		case 'screening':
			console.log('switching to screening page');
			myRequest.send({url:page+'.php'});
		break;
		case 'screening-past':
			console.log('switching to past screening page');
			myRequest.send({url:page+'.php'});
		break;
		case 'press':
			console.log('switching to press page');
			myRequest.send({url:page+'.php'});
		break;
		case 'contact':
			console.log('switching to contact page');
			myRequest.send({url:page+'.php'});
		break;
		case 'shop':
			console.log('switching to shop page');
			myRequest.send({url:page+'.php'});
		break;
		default:
			console.log('should never get here');
			console.log('switching to home page');
			myRequest.send({url:'home.php'});
			bangbang.loadVideoPlayer();
	}
}

bangbang.transitionToPage = function(page)
{
	console.log('transitioning to page ' + page)
	var container = $('pageContent');
	container.setStyle('opacity',0);
	container.setStyle('background-image', 'url(img/pages/'+page+'.png)');

	exampleFx = new Fx.Tween(container, {
	property: 'opacity',
	duration: 1500, 
	transition: Fx.Transitions.Quart.easeInOut
	});
	
	exampleFx.start.pass([0,1], exampleFx).delay(0);
	
	if(page == 'screening') {
		$('screening-links').getElements('a').addEvent('click', function(){bangbang.pageChange(this)})
	}
	if(page == 'screening-past') {
		$('screening-links').getElements('a').addEvent('click', function(){bangbang.pageChange(this)})
	}
}

bangbang.loadVideoPlayer = function()
{
	loadScript('js/swfobject.js',function()
	{
		var s1 = new SWFObject("js/player.swf","ply","484","256","9","#0000000");
		s1.addParam("allowfullscreen","true");
		s1.addParam("allowscriptaccess","always");
		s1.addParam("flashvars","file=../vids/trailer1920_12_21_10_web.mov&duration=101&bufferlength=10&autostart=false&controlbar=over&backcolor=#000000&frontcolor=#990000&skin=js/bekle.swf");
		s1.write("container");

		$('container').setStyle('opacity',1);

	});
	
	var player;
	function playerReady(obj) {
		player = document.getElementById(obj['id']);
		(function(){player.sendEvent("PLAY","true");}).delay(10000);
	};

}

function $get(key,url){
	if(arguments.length < 2) url =location.href;
	if(arguments.length > 0 && key != ""){
		if(key == "#"){
			var regex = new RegExp("[#]([^$]*)");
		} else if(key == "?"){
			var regex = new RegExp("[?]([^#$]*)");
		} else {
			var regex = new RegExp("[?&]"+key+"=([^&#]*)");
		}
		var results = regex.exec(url);
		return (results == null )? "" : results[1];
	} else {
		url = url.split("?");
		var results = {};
			if(url.length > 1){
				url = url[1].split("#");
				if(url.length > 1) results["hash"] = url[1];
				url[0].split("&").each(function(item,index){
					item = item.split("=");
					results[item[0]] = item[1];
				});
			}
		return results;
	}
}


