var ie = (document.all && document.getElementById);
var ns = (!document.all && document.getElementById); 
var sf =  navigator.userAgent && ( navigator.userAgent.indexOf( 'AppleWebKit' ) != -1 || navigator.userAgent.indexOf( 'Opera' ) != -1 || navigator.userAgent.indexOf( 'KHTML' ) != -1 );

var requestServer = null;
var requestStats = null;

var topBarReady = true;

var Cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    return (document.cookie = escape(name) + '=' + escape(value || '') + expire + '; path=/');
  },
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  erase: function(name) {
    var cookie = Cookie.get(name) || true;
    Cookie.set(name, '', -1);
    return cookie;
  },
  accept: function() {
    if (typeof navigator.cookieEnabled == 'boolean') {
      return navigator.cookieEnabled;
    }
    Cookie.set('_test', '1');
    return (Cookie.erase('_test') ===  '1');
  }
};


function getRequest() {
	var temp;
	try {
		// Firefox, Opera 8.0+, Safari
		temp = new XMLHttpRequest();
		return temp;	
	}
	catch (e) {
		// Internet Explorer
		try {
			temp = new ActiveXObject("Msxml2.XMLHTTP");
			return temp;
		}
		catch (e) {
			try {
				temp = new ActiveXObject("Microsoft.XMLHTTP");
				return temp;
			}
			catch (e) {
				return false;
			}
		}
	}
}

var closingTimer = null;
var closeStats = false;
var innerStatsContainer = null;

function showStats() {
	if ( innerStatsContainer != null && innerStatsContainer.innerHTML == '' ) {
		requestStats = getRequest();
		requestStats.onreadystatechange = loadServerInfos;
	
		requestStats.open( 'GET', '/gameservers/stats.html', true );
		requestStats.send( null );	
	}
	var container = document.getElementById( 'statsContainer' );
	container.style.display = 'block';
	closeStats = false;
}

function hideStats() {
	var container = document.getElementById( 'statsContainer' );
	container.style.display = 'none';
	closeStats = false;
}

function hideStatsTimer() {
	if ( closeStats == true ) {
		hideStats();
	}
}

function hidingTimer() {
	closeStats = true;
	closingTimer = setTimeout( "hideStatsTimer()", 2000 );
}

function blockTimer() {
	if ( closingTimer != null ) {
		clearTimeout( closingTimer );
	}
	closeStats = false;
}

function initTopBar() {
	
	innerStatsContainer = document.getElementById( 'innerStatsContainer' );

	requestServer = getRequest();
	
	requestServer.onreadystatechange = loadServerStats;

	requestServer.open( 'GET', '/gameservers/total.html', true );
	requestServer.send( null );
	
}

function loadServerStats() {
	if ( requestServer.readyState == 4 ) {
		document.getElementById( 'gamersOnServers' ).innerHTML = requestServer.responseText;
	}
}

function loadServerInfos() {
	if ( requestStats.readyState == 4 ) {
		innerStatsContainer.innerHTML = requestStats.responseText;
	}
}

function goTo( url ) {
	window.location.href = url;
}
