/* CONFIGURATION */



var server_bg_color = '#FFD6D6'; // default background color of servers that respond 'found'









/* ajax-blacklist.js -  draw ui, setup helpers */

var server_list = {};

var list_toggle = false;

var ip_found_count = 0;



/* helper functions */

var addScript = function(url)

{

  var script = document.createElement('script');

  script.src = url;

  scriptObj = document.body.appendChild(script);

}



var processLookup = function(resp)

{

  eval('var lookup_response = ' + resp.responseText);

}



var getServerList = function()

{



  $('loading_notice').show();

  var params = $H({'action':'server_list'

                  });

  new Ajax.Request('blacklist-servers.php',

                   {

                     method    :'post',

                     parameters: params,

                     onComplete: processServerList



                   });

}



var processServerList = function(resp)

{

  $('loading_notice').hide();

  eval('var list_response = ' + resp.responseText);



  if (list_response.status == 'success')

  {

    server_list = list_response.server_list;

  }

}

var showServerList = function()

{

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

    {

      drawServer(server_list[i]);

    }

}

var updateProgress = function(server_id,status)

{

  if (status == 'found')

  {

   $('server_'+server_id).style.backgroundColor = server_bg_color;

   ip_found_count ++;

  }



  $$('#server_'+server_id+' .status')[0].innerHTML = (status == 'not-found')?'Not Found':'Found';

  $$('#server_'+server_id+' .status')[0].style.color = (status == 'not-found')?'green':'red';

}



var lookupCompleted = function()

{

 // enable input button and show stats.

 $('lookup_button').disabled = false;

 $('server_results').show().innerHTML = 'Lookup completed. IP address was found on ' + ip_found_count + ' blacklist servers. see below for specific servers';

  $('loading_notice').hide();

}

var resetLoading = function()

{

  ip_found_count=0;

  $('loading_notice').show();

  $('lookup_button').disabled = true;

  $('server_list').show();

  $('server_results').hide().innerHTML = '';

  

  if (!list_toggle)

  { 

   list_toggle = true;

   showServerList();

  }



  $$('.status').each(function(i)

  {

    i.parentNode.style.backgroundColor ='#fff';

    i.innerHTML = '<img src="loading.gif">';

  });

 return true;

}

var drawServer = function(server)

{

  var elm = document.createElement('div');

      elm.setAttribute('id','server_'+server.id);

      elm.setAttribute('class','server_item');

      elm.innerHTML = '<span>'+server.name+'</span> <span class="status"></span>';

  $('server_list').appendChild(elm);



}



var drawUI = function()

{

 /* loop thru server list and display results */

 var elm = document.createElement('div'); // container

     elm.innerHTML = '<form action="server-lookup.php" method="post" onsubmit="return resetLoading();" target="bl_iframe">         \
                        <input type="text" name="ip" value="'+lookup_value+'"><input type="submit" value="lookup" id="lookup_button"> \
                        <span style="display:none;margin-left:20px;" id="loading_notice"><img src="sm_loading.gif"> loading...</span> \
                      </form>                                                   \
                      <iframe id="bl_iframe" name="bl_iframe" style="display:none;"></iframe>    \
                      <div style="display:none;" id="server_results"></div> \
                      <div id="server_list" style="display:none;"></div>                              \
                      ';



 $(blacklist_container).appendChild(elm);



}



var drawError = function()

{

 /* bad response from server list, show error */



}





/*------------------------------------------------------*/





  /* get the server list and draw UI */

  drawUI();

  getServerList();



  /* done, await user input */

