/**
 * @author	Sven Kutzner
 * @copyright	2010 Sven Kutzner
 * @license	WoltLab Burning Board License <http://www.woltlab.com/products/burning_board/license.php>
 */
function TeamSpeakMenu() {
	this.servers = [];
	
	this.getServer = function(id) {
		return this.servers.find(function(item) { return (item.id == id); });
	}
	this.buttonClick = function(obj, id) {
		this.servers.each(function(item) {
			if(item.id == id) {
				item.button.className = "active";
				if(Element.hasClassName(item.content, 'hidden')) {
					Element.removeClassName(item.content, 'hidden');
				}
				document.getElementById('boxTeamSpeakLink').href = 'index.php?page=TeamSpeak&serverID='+id;
			} else {
				item.button.className = "";
				if(!Element.hasClassName(item.content, 'hidden')) {
					Element.addClassName(item.content, 'hidden');
				}
			}
		});
	}

	this.buttonDblClick = function(obj, id) {
		var server = this.getServer(id);
		var url = '';
		if(server == undefined) return;
		if(server.version == 2) {
			url = 'teamspeak://'+server.host+':'+server.port+'/nickname='+server.username;
			if(server.password != '') { url += '?password='+server.password; }
		} else if(server.version == 3) {
			url = 'ts3server://'+server.host+'?port='+server.port+'&nickname='+server.username;
			if(server.password != '') { url += '&password='+server.password; }
		}
		window.location = url;
	}
	
	this.add = function(id, version, host, port, password, username) {
		server = new Object();
		server['id'] = id;
		server['button'] = document.getElementById('teamSpeakServerButton-'+id);
		server['content'] = document.getElementById('teamSpeakServerList-'+id);
		server['version'] = version;
		server['host'] = host;
		server['port'] = port;
		server['password'] = password;
		server['username'] = username;
		this.servers[id] = server;
		this.servers = this.servers.compact();
		Event.observe(server.button, 'click', this.buttonClick.bindAsEventListener(this, id));
		Event.observe(server.button, 'dblclick', this.buttonDblClick.bindAsEventListener(this, id));
	}
}
