var MONITOR_IMG_PATH = "images/monitor/";
var MONITOR_IMG_ID = "systemStateImage";
var NOT_WORKING_IMG = "n_works.gif";
var WORKING_IMG = "works.gif";
var WARNING_WORKING_IMG = "w_works.gif";


function getImageByState(isWorking)
{
    var result;

    if(isWorking==null)
    {
        result = NOT_WORKING_IMG;
    }
    else if((isWorking=='true')||(isWorking))
    {
        result = WORKING_IMG;
    }
    else
        result = WARNING_WORKING_IMG;


    return  MONITOR_IMG_PATH + result;
}

function parseServerState(serversXML)
{
    var servers = new Array();
    if(serversXML==null)
        return null;

    var elements = serversXML.getElementsByTagName('server');

    for (var i = 0 ; i < elements.length ; i++ ) {

        var isWorking = elements[i].getAttribute('isWorking');
        var name = elements[i].getAttribute('name');

        if(isWorking == 'true')
            isWorking = true;
        else if(isWorking == 'false')
            isWorking = false;
        
        servers[i] = new ServerState (name,  isWorking);
    }

    return  servers;
}


function setStateImages(servers)
{
    var img;
    var isWorking = null;
    img = document.getElementById(MONITOR_IMG_ID);

    if((servers != null)&& (servers.length>0))
    {
        isWorking = true;
        for(var i=0;i<servers.length; i++)
        {
            isWorking = isWorking & (servers[i]).isWorking;
        }
    }
    
    img.src = getImageByState(isWorking);
}




function refreshSystemState()
{
	var sendStr = "";
    var servers = null;
	var opt =
	{
		method: 'get',
        parameters: sendStr,
		requestHeaders: ['If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT'],

      // Handle successful response
      onSuccess: function( t )
	    {
			servers = parseServerState(t.responseXML );
            setStateImages(servers);
      },

      // Handle 404
      on404: function( t )
		{
		   alert( 'Error 404: location "' + t.statusText + '" was not found.' );
			window.close();
		},

      // Handle other errors
      onFailure: function(t)
		{
		   alert( 'Server returned the following error: ' + t.status + ' -- ' + t.statusText );
			window.close();
		}
	};

   new Ajax.Request( '/accma/TestServices', opt );
}