/*
 * ss for SERVER STATUS
 * 
 */

var SERVER_STATUS;
var SS_REFRESH_TIME;
var SERVER_STATUS_URL;

// CALL PARAMS
var SS_AFTER_TIME;
var SS_BEFORE_TIME;
var SS_RAW_DATA_SIZE;
var SS_LATENCY;
var SS_BLOCK;


function ss_init(){
	
	SERVER_STATUS = null;
	SS_REFRESH_TIME = 2000;
		
	SERVER_STATUS_URL = "status"; //http://beta.babelomics.tomcat:8080/babelomics-web/

	// CALL PARAMS
	SS_AFTER_TIME = 0;
	SS_BEFORE_TIME = 0;
	SS_RAW_DATA_SIZE = 0;
	SS_LATENCY = 0;
	SS_BLOCK = false;
	
	setInterval("ss_loadServerStatus()", SS_REFRESH_TIME);
	ss_loadServerStatus(false);
}

function ss_loadServerStatus(isasync){
	if(!SS_BLOCK){
		var success = function(data){			
			SS_AFTER_TIME = new Date().getTime();
			SS_LATENCY = SS_AFTER_TIME - SS_BEFORE_TIME;
			SERVER_STATUS = eval ("(" + data + ")");
			SS_RAW_DATA_SIZE = data.length;			
			SS_BLOCK = false;
			SS_UPDATED = true;			
		};
		var error = function(data){			
			SS_RAW_DATA_SIZE = 0;
			SS_AFTER_TIME = new Date().getTime();
			SS_LATENCY = SS_AFTER_TIME - SS_BEFORE_TIME;
			SS_BLOCK = false;
		};
		// blocking
		SS_BLOCK = true;
		SS_BEFORE_TIME = new Date().getTime();	
		// go to server
		var async = true;
		if(isasync) {
			async = isasync;
		} else {
			if(SERVER_STATUS==null) async = false;
		}		
//		callSyncServer(SERVER_STATUS_URL,"a=1", success, error, async);		
		callGetServer(SERVER_STATUS_URL, success, error);
	}
}

function ss_getMessages(){
	
	var messages = {};
	
	var userMessages = wc_getMessages();	
		
	// info
	messages.info = [];
	
	if(SERVER_STATUS && SERVER_STATUS.infoMessages) messages.info = SERVER_STATUS.infoMessages;
	if(userMessages && userMessages.info) messages.info = messages.info.concat(userMessages.info);
	// warning
	messages.warning = [];
	if(SERVER_STATUS && SERVER_STATUS.warningMessages) messages.warning = SERVER_STATUS.warningMessages;
	if(userMessages && userMessages.warning) messages.warning = messages.warning.concat(userMessages.warning);
	// error
	messages.error = [];
	if(SERVER_STATUS && SERVER_STATUS.errorMessages) messages.error = SERVER_STATUS.errorMessages;
	if(userMessages && userMessages.error) messages.error = messages.error.concat(userMessages.error);
	
	return messages;
	
}

function ss_getServerStatus(){
	return SERVER_STATUS;
}

