var oda = YAHOO.namespace("oda");
var windowGuide, windowSurvey, windowPrint, windowSurveyInstructions, windowReports;
var popupContact;
var sthref = "/?";

var Dom = YAHOO.util.Dom, 
	Event = YAHOO.util.Event,
	Connect = YAHOO.util.Connect,
	JSON = YAHOO.lang.JSON,
	Cookie = YAHOO.util.Cookie,
	Get = YAHOO.util.Get,
	Dump = YAHOO.lang.dump,
	isNull = YAHOO.lang.isNull;


function FrameBuster(){
	if (top !=self)
	top.location=self.location;
}

function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40').replace(/\./g, '%2E');
}

oda.Launch = function(o) {
	if (o.Address) {
		document.location.href="odamex://"+o.Address;
	}
};

YAHOO.widget.DataTable.MSG_EMPTY = ''; 

(function() { 
	// Setup constants

	// QUIRKS FLAG, FOR BOX MODEL
	var IE_QUIRKS = (YAHOO.env.ua.ie && document.compatMode == "BackCompat");
	// UNDERLAY/IFRAME SYNC REQUIRED
	var IE_SYNC = (YAHOO.env.ua.ie == 6 || (YAHOO.env.ua.ie == 7 && IE_QUIRKS));
	// PADDING USED FOR BODY ELEMENT (Hardcoded for example) 
	var PANEL_BODY_PADDING = (10*2) // 10px top/bottom padding applied to Panel body element. The top/bottom border width is 0 

	Dom.setStyle('table-serverlist','visibility','hidden');
	Dom.setStyle('serverlistbody','font-size','70%');
	Dom.setStyle('serverlistbody','color','#000000');

	Event.onDOMReady(function() {

		oda.serverlistDefs = [
			{key:"servername", label: "Server&nbsp;Name", sortable:true, resizeable:true, width: 280},
			{key:"address", label: "Address", sortable:true, resizeable: false },
			{key:"players", label: "Players", sortable:true, resizeable:false},
			{key:"gametype", label: "Game", sortable:true, resizeable:true },
			{key:"pwads", label: "WADs", sortable:true, resizeable:true, width: 90 },
			{key:"mapname", label: "Map", sortable:true, resizeable:false }
		];

		oda.staticListSource = new YAHOO.util.DataSource(Dom.get('table-serverlist'));
		oda.staticListSource.responseType = YAHOO.util.DataSource.TYPE_HTMLTABLE;
		oda.staticListSource.responseSchema = {
			fields: [
				{ key: "servername" },
				{ key: "address" },
				{ key: "players" },
				{ key: "gametype" },
				{ key: "pwads" },
				{ key: "mapname" }
			]
		};

		oda.serverList = new YAHOO.widget.DataTable("serverlistbody",
			oda.serverlistDefs, oda.staticListSource, {
				width:"802px",
				height: "500px",
			    scrollable:true, 
				sortedBy: {key: "servername", dir: YAHOO.widget.DataTable.CLASS_ASC},
				selectionMode: "single" 
		});

		// Subscribe to events for row selection 
	    oda.serverList.subscribe("rowMouseoverEvent", oda.serverList.onEventHighlightRow); 
	    oda.serverList.subscribe("rowMouseoutEvent", oda.serverList.onEventUnhighlightRow); 
	    oda.serverList.subscribe("rowClickEvent", oda.serverList.onEventSelectRow); 
		oda.serverList.subscribe("rowDblclickEvent", function(){
		
			var data = this.getRecordSet().getRecord(this.getSelectedRows()[0])._oData; 
			oda.Launch(data);
		});

		oda.serverList.subscribe("rowUnselectEvent", function(){
			//document.title = "Odamex Online Game Launcher";
		});

		oda.serverList.subscribe("rowSelectEvent", function(){
			
		});
	     
	    // Programmatically select the first row, set focus on the list
	    oda.serverList.selectRow(oda.serverList.getTrEl(0)); 
	    //oda.serverList.focus(); 
	});

})(); //--function()
