function initAjaxRelatedTours()
{
	var relatedButtonArray = new Array();
	var buttonNodes = new Array();
	var XMLBrowseSearch;
	
	//flip to change first related listing
	if(document.getElementById('relatedLocationsButton')){ relatedButtonArray.push('relatedLocationsButton'); }
	if(document.getElementById('relatedActivitiesButton')){ relatedButtonArray.push('relatedActivitiesButton'); }
	
	for(var a = 0; a < relatedButtonArray.length; a++){
		
		var relatedButtonRoot = document.getElementById(relatedButtonArray[a]);
		//prevent href from beeing executed on root button
		relatedButtonRoot.onclick = function(){ return false };
		//attach ajax function to children
		buttonNodes[a] = relatedButtonRoot.parentNode.getElementsByTagName('UL')[0].getElementsByTagName('A');
		for(var i = 0; i < buttonNodes[a].length; i++){
			buttonNodes[a][i].onclick = ajaxRelatedTours;
			buttonNodes[a][i].rootButton = relatedButtonRoot;
			
			//load XMLBrowse with all related tours
			//all related tours are the last button in related tours drop down
		}
	}
	//retrieves button to pull search string from
	if(relatedButtonArray.length > 0){
		XMLBrowseSearch = relatedButtonArray.pop();
		relatedButtonArray.push(XMLBrowseSearch);
		XMLBrowseSearch = document.getElementById(XMLBrowseSearch).search;		
		//load first related tours
	}else{
		XMLBrowseSearch = location.search;
	}
	initXMLBrowse(XMLBrowseSearch);

	//relatedButton hold info about related buttons on and off stages
	relatedButton = new Array();
	if(relatedButtonArray.length > 0){
		//one or more related buttons exist
		if(relatedButtonArray.length == 2){
			relatedButton['inactive'] = document.getElementById(relatedButtonArray[0]);
			relatedButton['active'] = document.getElementById(relatedButtonArray[1]);
			
		}else if(relatedButtonArray.length = 1){
			relatedButton['inactive'] = null;
			relatedButton['active'] = document.getElementById(relatedButtonArray[0]);
		}
		relatedButton['class'] = relatedButton['active'].className;
		relatedButton['active'].className = relatedButton['class'] + "Active";
	}else{
		//no related buttons/tours exist - hide related container
		document.getElementById('relatedToursContainer').style.display = "none";
	
	}
	ajaxRelatedTours(XMLBrowseSearch);		
}

function ajaxRelatedTours(searchString)
{
	//only use button search string, if none was delivered to this function
	if(typeof searchString != 'string'){
		//hide dropDowns
		var divNodes = document.getElementById('relatedToursContainer').getElementsByTagName('DIV');
		for(var i = 0; i < divNodes.length; i++){
			var pattern = new RegExp("(^| )dropDown( |$)");
			if(pattern.test(divNodes[i].className)){
				dropDownOff(divNodes[i]);
			}
		}
		//switch related buttons on and off
		relatedButton['inactive'] = relatedButton['active'];
		relatedButton['active'] = this.rootButton;
		relatedButton['inactive'].className = relatedButton['class'];
		relatedButton['active'].className = relatedButton['class'] + "Active";
	
		searchString = this.search;
	}
	
	var listContainer = document.getElementById('moreTabData');
	listContainer.innerHTML = "<h3 class='highlight padded center'>loading...</h3>";
	
	
	var xhr;
	try {
		xhr = new XMLHttpRequest();
	} catch (error) {
		try {
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (error) {
			xhr = null;
		}
	}
	
	if (xhr != null) {
		
		xhr.open('GET', '../framework/browse.xml.php' + searchString, true);

		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4){
				if(xhr.status == 200 || xhr.status == 304){
					//fill with tour list
					XMLBrowse = xhr.responseXML;
					//create browse html output

					var selectedTour = XMLBrowse.documentElement.getElementsByTagName("selected")[0].getElementsByTagName("tour");
					var relatedTours = XMLBrowse.documentElement.getElementsByTagName("related")[0].getElementsByTagName("tour");
					var output = "";
					
					for (var i = 0; i < relatedTours.length; i++) {
						var vtLink = relatedTours[i].getAttribute("vtLinkSmall");
						output += "<div class='listIconSmall padded'>\n";
						output += vtLink;
						output += "</div>\n";
					}

					listContainer.innerHTML = output;
					
					//load map after xml init
					GLoad('mapTabData');

					//create and remove map markers if loaded
					if(mapLoaded){
						//remove all markers
						for ( var id in marker )
						{
							map.removeOverlay(marker[id]);
						}
						//create new markers
						createMarker(selectedTour);
						createMarker(relatedTours);
					}
					
				}else{
					listContainer.innerHTML = "<h3 class='highlight padded center'>Loading error! Please try again.</h3>";
				}
			}
		};
		
		xhr.send(null);
		
		//prevents href from beeing executed
		return false;
	}
	return true;
}

function initXMLBrowse(searchString)
{
	if(typeof searchString == 'undefined'){
		//if no search string is submitted address search string is used to submit to browse.xml.php
		searchString = location.search;
	}

	var xhr;
	try {
		xhr = new XMLHttpRequest();
	} catch (error) {
		try {
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (error) {
			xhr = null;
		}
	}
	
	if (xhr != null) {
		
		xhr.open('GET', '../framework/browse.xml.php' + searchString, true);

		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4){
				if(xhr.status == 200 || xhr.status == 304){
					//fill with tour list
					XMLBrowse = xhr.responseXML;
				}else{
					//map will not work
				}
			}
		};
		
		xhr.send(null);
		
		//prevents href from beeing executed
		return false;
	}
	return true;
}
// Newsletter functions
//--------------------------------------------------
function initNewsletter()
{
	//show newsletter note
	ajaxPopupChecker('connectWithUs', null, document.getElementById('connectContainer') );
	
	//show newsletter popup
	document.getElementById('getOurNewsletter').onclick = function()
	{
		popupOn( document.getElementById('newsletterPopup').parentNode );
		return false;
	}
	//send newsletter function
	document.newsletterForm.onsubmit = ajaxNewsletterSend;
	
}

function getNewsletterFormData()
{
	var get = "?popupSend=1&";
	get+= "name=" + escape(document.getElementById('newsletterName').value);
	get+= "&email=" + escape(document.getElementById('newsletterEmail').value);
	
	if(document.getElementById('newsletterVisitor').checked == true){
		get+= "&visitor=1";
	}else{
		get+= "&visitor=0";
	}
	if(document.getElementById('newsletterBusiness').checked == true){
		get+= "&business=1";
	}else{
		get+= "&business=0";
	}
	return get;
}

function ajaxNewsletterSend()
{
	var getData = getNewsletterFormData();
	var listContainer = document.getElementById('newsletterAJAX');
	listContainer.innerHTML = "<h3 class='highlight padded center'>Sending, please wait...</h3>";
	
	
	var xhr;
	try {
		xhr = new XMLHttpRequest();
	} catch (error) {
		try {
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (error) {
			xhr = null;
		}
	}
	
	if (xhr != null) {
		
		
		xhr.open('GET', '../newsletter/signup.php' + getData, true);

		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4){
				if(xhr.status == 200 || xhr.status == 304){
					//fill with tour list
					listContainer.innerHTML = xhr.responseText;
					//re-initialize the submit function
					document.newsletterForm.onsubmit = ajaxNewsletterSend;

				}else{
					listContainer.innerHTML = "<h3 class='highlight padded center'>Loading error! Please try again.</h3>";
				}
			}
		};
		
		xhr.send(null);
		
		//prevents href from beeing executed
		return false;
	}
	return false;
}
// AJAX no return functions
//--------------------------------------------------
function ajaxPopupChecker(popup, status, popupElement)
{
	var url = "../framework/popupSetter.inc.php?";
	
	var request = "popup=" + popup;

	if(typeof status == 'number'){
		request+= "&status=" + status;  
	}
	var xhr;
	try {
		xhr = new XMLHttpRequest();
	} catch (error) {
		try {
			xhr = new ActiveXObject('Microsoft.XMLHTTP');
		} catch (error) {
			xhr = null;
		}
	}
	
	if (xhr != null) {
		
		xhr.open('GET', url + request, true);

		xhr.onreadystatechange = function()
		{
			if(xhr.readyState == 4){
				if(xhr.status == 200 || xhr.status == 304){
					//returns status
					if( xhr.responseText == 1){
						if(typeof popupElement == 'object'){
							popupOn(popupElement, popup);
						}
					}
				
				}else{
					//loading error
				}
			}
		};
		
		xhr.send(null);
	}
}
