/* Configuration variables */

var ticker_char_timeout = 200;
var ticker_item_timeout = 5000;
var ticker_separator	= "Latest Vacancies: ";

/* Initialise variables */

var ticker_item		= -1;
var ticker_length	= 0;
var ticker_itemcount	= 0;
var rss_title  		= new Array();
var rss_link   		= new Array();
var rss_source 		= new Array();
var rss_location 	= new Array();
var rss_hours 		= new Array();
var rss_date 		  = new Array();
var rss_distance 	= new Array();

function rsstickerTick()
{
	if(ticker_length == 0)
	{
		ticker_item++;
		ticker_item     = ticker_item % ticker_itemcount;
		if( ticker_item < rss_link.length )
		{
			ticker.href  = rss_link[ticker_item];
		}
		else
		{
			ticker.href  = "#";
		}
	}

	ticker.innerHTML  = "";
	
	if( ticker_item < rss_source.length )
	{
		ticker.innerHTML  += '<span id="source">' + rss_source[ticker_item] + '</span>';
	}

	if( ticker_separator.length > 0 )
	{
		ticker.innerHTML += '<span id="separator">' + ticker_separator + '</span>' ;
	}
	
	ticker.innerHTML += rss_title[ticker_item].replace(/&quot;/g,'"').substring(0,ticker_length);
	
	if(ticker_length != rss_title[ticker_item].replace(/&quot;/g,'"').length)
	{
		ticker_length++;
		setTimeout("rsstickerTick()", ticker_char_timeout);
	}
	else
	{
		ticker_length = 0;
		setTimeout("rsstickerTick()", ticker_item_timeout);
	}
}

function rsstickerStart() {
	
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	  xmlhttp = new XMLHttpRequest();
	}

	xmlhttp.open("GET", feed ,true);

	xmlhttp.onreadystatechange=function() 
	{
		if (xmlhttp.readyState==4) 
		{
	   		if (xmlhttp.status==200) 
	   		{
        	xml  = xmlhttp.responseXML.documentElement;

					ticker_itemcount   = xml.getElementsByTagName('item').length;
				    
					for(var i=0; i<ticker_itemcount; i++) 
					{
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
						{
							rss_title[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('title')[0].firstChild.data;
						}
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('link').length==1)
						{
							rss_link[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('link')[0].firstChild.data;
						}
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('source').length==1)
						{
							rss_source[i]   = xml.getElementsByTagName('item')[i].getElementsByTagName('source')[0].firstChild.data;
						}
					}

	        rsstickerTick();
			}
		}
	}
	
	xmlhttp.send(null);
}

function populateVacancyBlock()
{
	vacancyblock.innerHTML  = "";
	
	if(ticker_itemcount > 0)
	{
		for(i=0;i<ticker_itemcount;i++)
		{
			vacancyblock.innerHTML  += '<div class="vacancy' + i + '">';
			vacancyblock.innerHTML  += '<h4><a href="' + rss_link[i] + '">' + rss_location[i] + '</a></h4>';
			vacancyblock.innerHTML  += '<p>' + rss_date[i] + ' - ' + rss_hours[i] + '</p>';
			vacancyblock.innerHTML  += '</div>';
		}
	}
	else
	{
			vacancyblock.innerHTML  += '<div class="novacancies">';
			vacancyblock.innerHTML  += '<h4>Have you considered working away from home?</h4>';
			vacancyblock.innerHTML  += '<p>We do not currently have any vacancies in your desired area.</p>';
			vacancyblock.innerHTML  += '<p>Why not try entering another postcode above, we are always looking for pharmacists to work away from home and we can even help you arrange transport and find accomodation.</p>';
			vacancyblock.innerHTML  += '</div>';
	}
}

function getVacancyData(theFeed) {
	
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	  xmlhttp = new XMLHttpRequest();
	}
	
	xmlhttp.open("GET", theFeed ,true);

	xmlhttp.onreadystatechange=function() 
	{
		if (xmlhttp.readyState==4) 
		{
   		if (xmlhttp.status==200) 
   		{
	      xml  = xmlhttp.responseXML.documentElement;

				ticker_itemcount   = xml.getElementsByTagName('item').length;
			  if( ticker_itemcount > 0)
			  {
					for(var i=0; i<ticker_itemcount; i++) 
					{
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
						{
							rss_title[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('title')[0].firstChild.data;
						}
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('link').length==1)
						{
							rss_link[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('link')[0].firstChild.data;
						}
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('source').length==1)
						{
							rss_source[i]   = xml.getElementsByTagName('item')[i].getElementsByTagName('source')[0].firstChild.data;
						}
						if(xml.getElementsByTagName('item')[i].getElementsByTagName('ppls').length==1)
						{
							if(xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('location').length==1)
							{
								rss_location[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('location')[0].firstChild.data;
							}
							if(xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('date').length==1)
							{
								rss_date[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('date')[0].firstChild.data;
							}
							if(xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('hours').length==1)
							{
								rss_hours[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('hours')[0].firstChild.data;
							}
							if(xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('distance').length==1)
							{
								rss_distance[i]	= xml.getElementsByTagName('item')[i].getElementsByTagName('ppls')[0].getElementsByTagName('distance')[0].firstChild.data;
							}
						}					
					}
				}
				populateVacancyBlock();
			}
		}
	}
	
	xmlhttp.send(null);
}