
function initShortlist()
{
	refreshShortlist();
}

function addToShortlist(id)
{
	var url = "/shortlist.html?act=ADD&format=XML&vacancy_id=" + id;
	var ajax = new Ajax(refreshShortlistHandler);
	ajax.get(url);
}


function removeFromShortlist(id)
{
	var url = "/shortlist.html?act=DELETE&format=XML&vacancy_id=" + id;
	var ajax = new Ajax(refreshShortlistHandler);
	ajax.get(url);
}

/**
 * Loads/refreshes the shortlist
 *
 */
function refreshShortlist()
{
	var url = "/shortlist.html?act=SHOW&format=XML";
	var ajax = new Ajax(refreshShortlistHandler);
	ajax.get(url);
}

function refreshShortlistHandler(response)
{
	var nodes = document.getElementsByTagName("div");
	// find the shortlist container
	for (var i = 0; i < nodes.length; i++)
	{
		if (nodes.item(i).className == "tx-recruitengine-pi5")
		{
			container = nodes.item(i);
			break;
		}
	}
	// remove all child nodes
	var nodes = container.childNodes;
	for (var i = (nodes.length); i > 0; i--)
	{
		if (nodes[i - 1].nodeName.toUpperCase() != "SCRIPT")
		{
			container.removeChild(nodes[i - 1]);
		}
	}
	container.innerHTML = response.responseText;
	// iterate over the nodes in the search results
	// make them all visibile then make shortlisted ones invisible.
	refreshSearchResults();
}


function refreshSearchResults()
{
	// extract the shortlisted IDs from the shortlist table
	var div = document.getElementById("shortlist");
	var links = div.getElementsByTagName("a");
	var shortlist = new Object();
	var sh = new Array();
	for (var i = 0; i < links.length; i++)
	{
		var link = links.item(i);
		if (link.href.match(/vacancyId/))
		{
			var id = link.href.replace(/[a-zA-Z:\.\/-]/g, "");
			shortlist[id] = id;
			sh[sh.length] = 1;
		}
	}
	
	// get the division containing the search results
	var divs = getElementsWithClassName("div", "tx-recruitengine-pi2");
	div = divs[0];
	//var div = document.getElementById("tx-recruitengine-pi2");
	// find a list of links in the division
	var links = div.getElementsByTagName("a");
	for (var i = 0; i < links.length; i++)
	{
		var link = links.item(i);
		var container;
		if (!(container = findParentElement(link, "tr")))
		{
			// try to get a parent div tag
			container = findParentElement(link, "div");
		}
		container.className = container.className.replace("shortlisted", "");
		if (link.href.match(/vacancyId/))
		{
			// we have a link to a vacancy, check if the vacancy is in the shortlist or not
			var id = link.href.replace(/[a-zA-Z:\.\/-]/g, "");
			if (shortlist[id] == id)
			{
				//container.className += " shortlisted";
				container.style.display = "none";
			}
			else
			{
				container.style.display = "block";
			}
		}
	}
}


function findParentElement(node, nodeName)
{
	if (node.nodeName.toLowerCase() == nodeName.toLowerCase())
	{
		return node;
	}
	if (node.nodeName.toLowerCase() == "body")
	{
		return false;
	}
	return findParentElement(node.parentNode, nodeName);
}


function getElementsWithClassName(nodeName, className)
{
	var elements = new Array();
	var nodes = document.getElementsByTagName(nodeName);
	for (var i = 0; i < nodes.length; i++)
	{
		if (nodes.item(i).className == className)
		{
			elements[elements.length] = nodes.item(i);
		}
	}
	return elements;
}