function initAjax()
{
	if (window.XMLHttpRequest)
	{
		try { httpRequest = new XMLHttpRequest();	}
		catch(e) { httpRequest = false; }
	}
	else if (window.ActiveXObject)
	{
		try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e)
		{
			try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e) {	httpRequest = false; }
		}
	}
	else
		httpRequest = false;

	return httpRequest;
}


function tripPlanner(p_id, p_type, p_action, p_trigger)
{
	httpRequest = initAjax();
	if (httpRequest)
	{
		var postString="location_id="+p_id+"&location_type="+p_type+"&location_action="+p_action;
		var url = '/ajax/trip-planner-controller.php';
		httpRequest.open("POST", url, true);
		httpRequest.onreadystatechange = function()
		{
			if ((httpRequest.readyState == 4) && (httpRequest.status == 200))
			{
				tripPlanner_callback(p_id, p_type, p_action, p_trigger, httpRequest.responseText);
			}
		}
		httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpRequest.setRequestHeader("Content-length", postString.length);
		httpRequest.setRequestHeader("Connection", "close");
		httpRequest.send(postString);
	}
	return false;
}

function tripPlanner_callback(p_id, p_type, p_action, p_trigger, p_responseText)
{
	var responsePart = p_responseText.split('^');

	if (responsePart[0] == 'success')
	{
		switch(p_trigger.tagName.toUpperCase())
		{
			case 'IMG':

				if (p_action == 'add')
				{
					p_trigger.onclick= function() { tripPlanner(p_id,p_type,'remove',p_trigger) };
					p_trigger.src = '/images/remove-from-trip-planner.gif';
					p_trigger.alt = 'Remove from Trip Planner';
				}
				else
				{
					p_trigger.onclick= function() { tripPlanner(p_id,p_type,'add',p_trigger) };
					p_trigger.src = '/images/add-to-trip-planner.gif';
					p_trigger.alt = 'Add to Trip Planner';
				}
				break;

			case 'A':

				if (p_action == 'add')
				{
					p_trigger.onclick= function() { tripPlanner(p_id,p_type,'remove',p_trigger) };
					p_trigger.innerHTML = 'Remove from Trip Planner';
				}
				else
				{
					p_trigger.onclick= function() { tripPlanner(p_id,p_type,'add',p_trigger) };
					p_trigger.innerHTML = 'Add to Trip Planner';
				}
				break;
		}
	}
	else
	{
		alert(responsePart[1]);
	}
	return false;

}