var page_list = ['index', 'game', 'gallery', 'movies', 'extras', 'comp', 'war_room', 'reviews'];

var curr_page = -1;
var gallery_thumbs;
var thumbs = [];
var thumb_divs;
var pics;
var img_arr;
var num_pages_loaded = 0;
var imgs_loaded = false;
var build_gallery_after_preload = false;
var requested_page = -1;
var num_imgs = 0;

var user_valid = false;
var uid = 0;
var login_box_mv;

var curr_news = -1;

//comp stuff
var comp_inner = null;

window.addEvent('domready', function(){
	if($('valid').value == 1)
	{
		user_valid = true;
		uid = $('uid').value;
	}
	else
	{
		login_box_mv = new Fx.Style('login_div', 'left', {
			duration: 500, 
			transition: Fx.Transitions.Elastic.easeOut
		});
	}
	
	preloadPages();
	
	changePage(change_page);
});

function changePage(new_page)
{
	//alert("change page -> " + new_page);
	
	switchMainDiv(1);
	
	if(new_page == curr_page)
	{
		return;
	}
	
	//stop movie on front page
	if(curr_page == 0)
	{
		stopMovie(true);
	}
	
	requested_page = new_page;
	
	switch(new_page)
	{
		case 0:
		writeHeading('Base');
		build_gallery_after_preload = false;
		
		if(curr_page != -1)
		{
			stopMovie(false);
		}
		
		break;
		
		case 1:
		writeHeading('Game');
		build_gallery_after_preload = false;
		break;
		
		case 2:
		writeHeading('Gallery');
		build_gallery_after_preload = true;
		break;
		
		case 3:
		writeHeading('Movies');
		build_gallery_after_preload = false;
		break;
		
		case 4:
		writeHeading('Extras');
		build_gallery_after_preload = false;
		break;
		
		case 5:
		writeHeading('Competition');
		getCompInner();
		build_gallery_after_preload = false;
		break;
		
		case 6:
		writeHeading('War Room');
		build_gallery_after_preload = false;
		break;
		
		case 7:
		writeHeading('Reviews');
		build_gallery_after_preload = false;
		break;
		
		default:
		writeHeading('Base');
		build_gallery_after_preload = false;
		break;
	}
	
	showPage();
}

function writeHeading(heading)
{
	$('heading').innerHTML = '<img src="./includes/get_title_img.php?title=' + heading + '&fsize=20&no_shadow=true" alt="' + heading + '" />';
}

function switchMainDiv(switch_main)
{
	if(switch_main == 1)
	{
		document.getElementById("main_div").style.display = "block";
		document.getElementById("loading_div").style.display = "none";
	}
	else
	{
		document.getElementById("main_div").style.display = "none";
		document.getElementById("loading_div").style.display = "block";
	}
}

function switchImgBrowser(switch_browser)
{
	if(switch_browser == 1)
	{
		document.getElementById("gallery_browser").style.display = "block";
		document.getElementById("thumb_gallery").style.display = "none";
	}
	else
	{
		document.getElementById("gallery_browser").style.display = "none";
		document.getElementById("thumb_gallery").style.display = "block";
	}
}

var PageAjax = Ajax.extend({
	initialize: function(index, url, options){
		this.index = index;
		//this.setOptions(options);
		this.parent(url, options);
	}
});

function preloadPages()
{
	for(var i = 0; i < page_list.length; i++)
	{
		new PageAjax(i, './includes/htm/' + page_list[i] + '.php?user_valid=' + user_valid + "&uid=" + uid, {
			method: 'get',
			onComplete: function()
			{
				//alert('index: ' + this.index);
				
				//new Element('div', {id: page_list[i]}).injectInside('main_div');
				
				new Element('div', {
					id : 'page_' + this.index,
					styles : {
						'display' : 'none'
					}
				}).injectInside('main_div');
				
				$('page_' + this.index).setHTML(this.response.text);
				
				chkPageRequest(this.index);
			}
		}).request();
	}
}

function chkPageRequest(loaded_page)
{
	if(loaded_page == requested_page)
	{
		//hide loading page
		
		//show requested page
		showPage();
	}
	
	num_pages_loaded++;
	
	//when all pages loaded preload gallery
	if(num_pages_loaded == page_list.length)
	{
		showNews(0);
		preload_imgs.request();
	}
}

function showPage()
{
	//alert('showPage(): ' + requested_page);
	
	if(curr_page != -1)
	{
		$('page_' + curr_page).setStyle('display', 'none');
	}
	
	if(req_element = $('page_' + requested_page))
	{
		$('loading_div').setStyle('display', 'none');
		
		$('page_' + requested_page).setStyle('display', 'block');
		
		curr_page = requested_page;
	}
	else
	{
		$('loading_div').setStyle('display', 'block');
	}
	
	if(build_gallery_after_preload)
	{
		buildGallery(0);
	}
}

//ajax image stuff

var preload_imgs = new Ajax('./includes/htm/images_xml.php', {
	method: 'get',
	onComplete : function()
	{
		var result = this.response.xml;
			
		if(!result.documentElement && this.transport.responseStream)
		{
			result.load(this.transport.responseStream);
		}
		
		var imgcol = result.getElementsByTagName('image');
		
		//alert("-> " + imgcol[0].firstChild.nodeValue);
		//alert('imgcol.length: ' + imgcol.length);
		
		img_arr = new Array();
		pic_arr = new Array();
		
		for(var i = 0; i < imgcol.length; i++)
		{
			img_arr[i] = './img/screens/thumbs/' + imgcol[i].firstChild.nodeValue;
			pic_arr[i] = './img/screens/' + imgcol[i].firstChild.nodeValue;
		}
		
		//alert('img_arr.length: ' + img_arr.length);
		
		thumbs = new Asset.images(img_arr, {
			onComplete: function() {
				//$('notify').setStyle('display', 'block');
				imgs_loaded = true;
				//alert(thumbs.length);
				if(build_gallery_after_preload)
				{
					buildGallery(0);
				}
			}
		});
		
		pics = new Asset.images(pic_arr);
	}
});

function displayImage(img)
{
	//set image
	curr_img = img;
	
	setMainPic();
	
	switchImgBrowser(1);
}

function nextImg()
{
	curr_img++;
	
	if(curr_img >= pics.length)
	{
		curr_img = 0;
	}
	
	setMainPic();
}

function prevImg()
{
	curr_img--;
	
	if(curr_img < 0)
	{
		curr_img = pics.length - 1;
	}
	
	setMainPic();
}

function setMainPic()
{
	document.getElementById("gallery_browser_pic").src = pics[curr_img].src;
}

function buildGallery(start_image)
{
	//alert("buildGallery(" + start_image + ")");
	
	var this_img = start_image;
	
	switchImgBrowser(0);
	
	num_imgs = document.getElementById("num_imgs").value;
	
	//alert('img_loaded:' + imgs_loaded + ' | thumbs.length: ' + thumbs.length);
	
	for(var i = 0; i < num_imgs; i++)
	{
		if(this_img < thumbs.length)
		{
			thumb = createThumbnail(this_img);
			
			//alert("thumb = " + thumb.innerHTML);
			
			document.getElementById("img_" + i).innerHTML = "";
			document.getElementById("img_" + i).appendChild(thumb);
		}
		else
		{
			document.getElementById("img_" + i).innerHTML = "";
		}
		
		this_img++;
	}
	
	prev_val = 0;
	
	prev_val = parseInt(start_image - num_imgs);
	
	if(prev_val < 0)
	{
		prev_val = 0;	
	}
	
	//alert("PREV BUTT: " + prev_val);
	
	if(prev_val <= 0 && start_image == 0)
	{
		document.getElementById("prev_butt").style.display = "none";
	}
	else
	{
		document.getElementById("prev_butt").style.display = "inline";
		
		document.getElementById("prev_butt").onclick = function()
		{
			buildGallery(prev_val);
		}
	}
	
	next_val = 0;
	
	next_val = parseInt(start_image) + parseInt(num_imgs);
	
	//alert("NEXT BUTT: " + next_val);
	
	if(next_val >= thumbs.length)
	{
		document.getElementById("next_butt").style.display = "none";
	}
	else
	{
		document.getElementById("next_butt").style.display = "inline";
		
		document.getElementById("next_butt").onclick = function()
		{
			buildGallery(next_val);
		}
	}
	
	switchMainDiv(1);
}

function createThumbnail(img_num)
{
	
	thumb = document.createElement('a');
	thumb.setAttribute('href', '#');
	thumb.setAttribute('id', img_num);
	
	// create thumbnails
	var img = document.createElement('img');
	img.setAttribute('src', thumbs[img_num].src);
	img.setAttribute('alt', 'Click to enlarge');
	img.setAttribute('title', 'Click to enlarge');
	
	thumb.appendChild(img);
	
	// assign 'onclick' event handler to <a> elements
	thumb.onclick = function()
	{
		displayImage(this.id);
	}
	
	return(thumb);
}

function showLoginDiv(show)
{
	if(show)
	{
		//$('login_div').setStyle('display', 'block');
		login_box_mv.start(250);
	}
	else
	{
		//$('login_div').setStyle('display', 'none');
		login_box_mv.start(-260);
	}
}

function showNews(news_title)
{
	var url = './includes/exe/get_news_exe.php';
	
	var news_id = $('news_title_' + news_title).value;
	
	new Ajax(url, {
		method: 'post',
		data: 'news_id=' + news_id,
		update: $('news_txt')
	}).request();
	
	if(curr_news != -1)
	{
		$('news_' + curr_news).innerHTML = $('news_' + curr_news).innerHTML.substr(5);
	}
	
	$('news_' + news_title).innerHTML = '< ' + $('news_' + news_title).innerHTML;
	
	curr_news = news_title;
}

function getCompInner()
{
	comp_ajax = new Ajax('./includes/htm/comp_inner.php', {
		method: 'post',
		update: 'comp_inner'});
	
	comp_ajax.request('uid=' + uid);
}

//flash control
//must stop movie playing when navigate away from homepage
//otherwise it keeps playing in bg in IE
function stopMovie(stop_movie)
{
	if(navigator.appName.indexOf('Microsoft') != -1)
	{
		if(stop_movie)
		{
			if(window.tv_ad_player_frontpage)
			{
				window.document["tv_ad_player_frontpage"].GotoFrame(5);
			}
			else if(document.tv_ad_player_frontpage)
			{
				document.tv_ad_player_frontpage.GotoFrame(5);
			}
		}
		else
		{
			if(window.tv_ad_player_frontpage)
			{
				window.document["tv_ad_player_frontpage"].GotoFrame(1);
			}
			else if(document.tv_ad_player_frontpage)
			{
				document.tv_ad_player_frontpage.GotoFrame(1);
			}
		}
	}
}
