var intervalId;

function initArticles() {
	// initialize news articles
	var types = ['news', 'all', 'events', 'patch'];
	for (var type in types) {
		var i = 5;
		var article = document.getElementById(types[type] + '_content_' + i);
		while (article != null) {
			article.style.display = 'none';
			var toggler = document.getElementById(types[type] + '_collapse_' + i);
			if (toggler.className == 'p_dark_news_minus') { 
				toggler.className = 'p_dark_news_add';
			} else {
				toggler.className = 'p_light_news_add';
			}
			i++;
			article = document.getElementById(types[type] + '_content_' + i);
		}
	}
}

function toggleArticle(toggler) {
	var re = /\d+/;
	var articleNo = re.exec(toggler.id);
	
	re = /(\w+)_topic/;
	var type = re.exec(toggler.id);
	type = type[1];
	var article = document.getElementById(type + '_content_' + articleNo);
	var symbol = document.getElementById(type + '_collapse_' + articleNo);
	if (article.style.display == 'block' || article.style.display == '') {
		article.style.display = 'none';
		if (symbol.className == 'p_dark_news_minus') { 
			symbol.className = 'p_dark_news_add';
		} else {
			symbol.className = 'p_light_news_add';
		}
	} else {
		article.style.display = 'block';
		if (symbol.className == 'p_dark_news_add') { 
			symbol.className = 'p_dark_news_minus';
		} else {
			symbol.className = 'p_light_news_minus';
		}
	}
}

function switchTab(selectedTab) {
	var tabs = document.getElementById('newsTabs').getElementsByTagName('td');
	for (var i in tabs) {
		tabs[i].id = 'p_dark_news_off';
	}
	selectedTab.id = 'p_dark_news_on';
	var re = /\>(.*)\</;
	var newsType = re.exec(selectedTab.innerHTML);
	newsType = newsType[1];
	switch (newsType) {
	case 'All':
		document.getElementById('all_tab').style.display = 'block';
		document.getElementById('news_tab').style.display = 'none';
		document.getElementById('events_tab').style.display = 'none';
		document.getElementById('patch_tab').style.display = 'none';
		break;
	case 'News':
		document.getElementById('all_tab').style.display = 'none';
		document.getElementById('news_tab').style.display = 'block';
		document.getElementById('events_tab').style.display = 'none';
		document.getElementById('patch_tab').style.display = 'none';
		break;
	case 'Events':
		document.getElementById('all_tab').style.display = 'none';
		document.getElementById('news_tab').style.display = 'none';
		document.getElementById('events_tab').style.display = 'block';
		document.getElementById('patch_tab').style.display = 'none';
		break;
	case 'Patch Info':
		document.getElementById('all_tab').style.display = 'none';
		document.getElementById('news_tab').style.display = 'none';
		document.getElementById('events_tab').style.display = 'none';
		document.getElementById('patch_tab').style.display = 'block';
		break;
	}
}

/**
 * Switch spotlight image.
 */
function switchSpotlight(selected) {
	// find the current spotlight
	var curSpotlight;
	var buttons = document.getElementById('p_dark_banner_btn').getElementsByTagName('img');
	re = /.*news_banner_(\d)\w\.gif/;
	for (var i in buttons) {
		var matches = re.exec(buttons[i].src);
		if (matches != null) {
			var curImgNum = matches[1];
			curSpotlight = document.getElementById('spotlight_img_' + curImgNum);
		}
	}
		
	// what are we switching to?
	var switchTo;
	if (!selected || selected.id.match('right')) {
		if (curImgNum == 6) {
			switchTo = 1;
		} else {
			switchTo = parseInt(curImgNum) + 1;
		}
		selected = document.getElementById('spotlight_' + switchTo);
	} else if (selected.id.match('left')) {
		if (curImgNum == 1) {
			switchTo = 6;
		} else {
			switchTo = parseInt(curImgNum) - 1;
		}
		selected = document.getElementById('spotlight_' + switchTo);
	} else {
		switchTo = selected.id.substring(selected.id.length - 1, selected.id.length);
	}
	if (curImgNum == switchTo) {
		return;
	}
	
	// un-highlight the currently selected number
	var oldNum = document.getElementById('spotlight_' + curImgNum);
	re = /(.*news_banner_\d)(\w)(\.gif)/;
	var matches = re.exec(oldNum.src);
	oldNum.src = matches[1] + matches[3];
	
	// highlight the selected number
	re = /(.*news_banner_\d)(\.gif)/;
	matches = re.exec(selected.src);
	selected.src = matches[1] + 'a' + matches[2];
	
	// swap out the spotlight image
	$('spotlight_img_' + switchTo).setOpacity(0);
	$('spotlight_img_' + switchTo).style.display = 'block';
	$('spotlight_img_' + switchTo).fade({ duration: 0.5, from: 0, to: 1 });
	$('spotlight_link_' + switchTo).style.display = 'inline';
	$(curSpotlight.id).fade({ duration: 0.5, from: 1, to: 0 });
	$(curSpotlight.id).setOpacity(0);
	$(curSpotlight.id).style.display = 'none';
	clearInterval(intervalId);
	intervalId = setInterval('switchSpotlight()', 4000);
}
 
var screenshots = {
	screenshotNums: [],
	screenshotIntervalId: null,
	
	init: function() {
		this.resetInterval();
		
		// Get the screenshot numbers.
		var screenshots = document.getElementById('screenshots').getElementsByTagName('img');
		var re = /(\d+)\.jpg/;
		for (i in screenshots) {
			if (typeof screenshots[i].src != 'undefined') {
				var match = re.exec(screenshots[i].src);
				// pad the number
//				if (match[1].length == 1) {
//					match[1] = '0' + match[1];
//				}
				this.screenshotNums.push(match[1]);
			}
		}
	},

	/**
	 * Rotate screenshots every 4 seconds.
	 */
	rotateScreenshot: function() {
		// determine the current screenshot img number
		var re = /(\d+)\_1024x768.jpg/;
		var screenshot = document.getElementById('screenshot');
		var currentNum = re.exec(screenshot.src)[1];
		var nextNum;
 		for (i in this.screenshotNums) {
			if (currentNum == this.screenshotNums[i]) {
				if (i == this.screenshotNums.length - 1) {
					nextNum = this.screenshotNums[0];
				} else {
					i++;
					nextNum = this.screenshotNums[i];
				}
				break;
			}
		}
		re = /(.+_)\d+(\_1024x768.jpg)/;
		screenshot.src = screenshot.src.replace(re, "$1" + nextNum + "$2");
		
		var link = document.getElementById('screenshot_link');
		link.href = link.href.replace(re, "$1" + nextNum + "$2");
	},

	/**
	 * Switch screenshots.
	 */
	displayScreenshot: function(selected) {
		var re = /btn_screen(\d+)/;
		var screenshotNum = re.exec(selected.src)[1];
		re = /(.*)(screenshot_)(\d)(\_1024x768.\w{3})/;
		var screenshot = document.getElementById('screenshot');
		var matches = re.exec(screenshot.src);
		screenshot.src = matches[1] + matches[2] + screenshotNum + matches[4];
		var link = document.getElementById('screenshot_link');
		link.href = matches[1] + matches[2] + screenshotNum + matches[4];
		
		this.resetInterval();
	},
	
	/**
	 * Reset the rotation interval
	 */
	resetInterval: function() {
		clearInterval(this.screenshotIntervalId);
		this.screenshotIntervalId = setInterval('screenshots.rotateScreenshot()', 4000);
	}
}

function displayLvl() {
	document.getElementById('lvlTbl').style.display = 'block';
	document.getElementById('pvpTbl').style.display = 'none';
}
function displayPvp() {
	document.getElementById('lvlTbl').style.display = 'none';
	document.getElementById('pvpTbl').style.display = 'block';
}