var travel_special_selected = "packages";
var travel_special_temp = "";

String.prototype.ucwords = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};

function addEvent(obj, evType, fn)
{ 
	if(obj.addEventListener)
	{ 
		obj.addEventListener(evType, fn, false); 
   		return true; 
 	}
	else if(obj.attachEvent)
	{ 
   		var r = obj.attachEvent("on"+evType, fn); 
   		return r; 
 	}
	else
	{ 
   		return false; 
	} 
}

function swapClass(id, cn)
{
	if(id)
		id.className = cn;
}

function showSpecialsType(type)
{
	var objDivShow = null;
	var objBtnShow = null;
	var objDivHide = null;
	var objBtnHide = null;
	
	if(type == "packages")
	{
		objDivShow = document.getElementById("travel_specials_packages_div");
		objBtnShow = document.getElementById("travel_specials_packages_btn");
		objDivHide = document.getElementById("travel_specials_hotels_div");
		objBtnHide = document.getElementById("travel_specials_hotels_btn");
		travel_special_selected = "packages";
	}
	else
	{
		objDivHide = document.getElementById("travel_specials_packages_div");
		objBtnHide = document.getElementById("travel_specials_packages_btn");
		objDivShow = document.getElementById("travel_specials_hotels_div");
		objBtnShow = document.getElementById("travel_specials_hotels_btn");
		travel_special_selected = "hotels";
	}
	
	objDivShow.className = "travel_specials_div_show";
	objBtnShow.className = "travel_specials_selected";
	objDivHide.className = "travel_specials_div_hide";
	objBtnHide.className = "travel_specials";
}

function pushURL(url, target)
{
	if(!target || target == "")
		target = "_blank";
		
	window.open(url, target, "");
}

// -----------------------------------------
// TRAVEL THE WORLD - METHODS AND PROCEDURES
// -----------------------------------------

function loadRegions(grouping)
{
	xmlHttp = getXmlHttpObject();
	
	if(xmlHttp == null)
	{
		alert("This browser does not support AJAX");
		return;
	}
	
	var actionURL = "/media/scripts/php/ajax.requests.php?cmd=regions&grouping="+grouping;
	xmlHttp.onreadystatechange = _loadRegions;
	xmlHttp.open("GET", actionURL, true);
	xmlHttp.send(null);
	
	selectionVisible(true);
	mapVisible(false);
}

function _loadRegions()
{
	if(xmlHttp.readyState == 4) // processing has been completed
	{
		var xmlDoc = xmlHttp.responseXML.documentElement;
		
		var objSelectRegions = document.getElementById("selectRegion");
		
		removeAllOptions(objSelectRegions);
		addOption(objSelectRegions, "« Choose »", "-", false);
		
		resetCanvas();
		
		for(i = 0; i < xmlDoc.getElementsByTagName("region").length; i++)
		{
			objRegions = xmlDoc.getElementsByTagName("region")[i];
			objId = objRegions.getElementsByTagName("id")[0];
			objName = objRegions.getElementsByTagName("name")[0];
			addOption(objSelectRegions, objName.childNodes[0].nodeValue, objId.childNodes[0].nodeValue, false);
		}
	}
}

function loadDestinations(region)
{
	if(region == "-"){return;}
	
	var ir = region.split(":");
	var omit = ir[1];
	
	region = ir[0];
	
	if(omit == "1") // omit second type region
	{
		removeAllOptions(document.getElementById("selectDestination"));
		addOption(document.getElementById("selectDestination"), "« Choose »", "-", false);
		disableObject(document.getElementById("selectDestination"));
		
		selectDestinationVisible(false);
		loadSites(region, "-");
	}
	else
	{
		xmlHttp = getXmlHttpObject();
	
		if(xmlHttp == null)
		{
			alert("This browser does not support AJAX");
			return;
		}
		
		selectDestinationVisible(true);
		
		var actionURL = "/media/scripts/php/ajax.requests.php?cmd=destinations&region="+region;
		xmlHttp.onreadystatechange = _loadDestinations;
		xmlHttp.open("GET", actionURL, true);
		xmlHttp.send(null);
	}
}

function _loadDestinations()
{
	if(xmlHttp.readyState == 4) // processing has been completed
	{
		var xmlDoc = xmlHttp.responseXML.documentElement;
		
		var objSelectDestination = document.getElementById("selectDestination");
		
		enableObject(objSelectDestination);
		
		removeAllOptions(objSelectDestination);
		addOption(objSelectDestination, "« Choose »", "-", false);
		
		resetCanvas();
		
		for(i = 0; i < xmlDoc.getElementsByTagName("destination").length; i++)
		{
			objDestination = xmlDoc.getElementsByTagName("destination")[i];
			objId = objDestination.getElementsByTagName("id")[0];
			objName = objDestination.getElementsByTagName("name")[0];
			addOption(objSelectDestination, objName.childNodes[0].nodeValue, objId.childNodes[0].nodeValue, false);
		}
	}
}

function loadSites(region, destination)
{
	xmlHttp = getXmlHttpObject();
	
	var ir = region.split(":");
	region = ir[0];
	
	if(xmlHttp == null)
	{
		alert("This browser does not support AJAX");
		return;
	}
	
	var actionURL = "/media/scripts/php/ajax.requests.php?cmd=sites&region="+region+"&destination="+destination;
	xmlHttp.onreadystatechange = _loadSites;
	xmlHttp.open("GET", actionURL, true);
	xmlHttp.send(null);
}

function _loadSites()
{
	if(xmlHttp.readyState == 4) // processing has been completed
	{
		var xmlDoc = xmlHttp.responseXML.documentElement;
		
		var objTravelGuideCanvas = document.getElementById("travel_guides_canvas");
		var objPriceVacationCanvas = document.getElementById("price_vacation_canvas");
		
		// clear all the cities cells
		resetCanvas();
		
		// initialze the buffers
		var strTravelGuides = "<TABLE WIDTH='100%' CELLPADDING='1' CELLSPACING='1'><TR>";
		var strPriceVacations= "<TABLE WIDTH='100%' CELLPADDING='1' CELLSPACING='1'><TR>";
		
		// initialize the countes
		var currentTravelGuides = 0;
		var currentPriceVacations = 0;
		
		// loop through xmlDoc and load all the coresponding regions
		for(i = 0; i < xmlDoc.getElementsByTagName("site").length; i++)
		{
			objSite = xmlDoc.getElementsByTagName("site")[i];
			objDestination = objSite.getElementsByTagName("destination")[0];
			objRegion = objSite.getElementsByTagName("region")[0];
			objId = objSite.getElementsByTagName("id")[0];
			objURI = objSite.getElementsByTagName("uri")[0];
			objName = objSite.getElementsByTagName("name")[0];
			objMapto = objSite.getElementsByTagName("mapto")[0];
			objGuide = objSite.getElementsByTagName("guide")[0];
			objTheFourth = objSite.getElementsByTagName("thefourth")[0];
			
			if(objGuide.childNodes[0].nodeValue == '0')
			{
				if(currentPriceVacations % 2 == 0)
					strPriceVacations += "</TR><TR>";
					
				var out, inn;
					
				out = 45;
				inn = 52;

				var date1 = new Date();
				date1.setDate(date1.getDate() + out);
					
				year = ((navigator.appName == "Netscape")?(date1.getYear() + 1900):(date1.getYear())).toString(); 
				var date1s = (date1.getMonth() + 1) + "/" + date1.getDate() + "/" + year;
					
				var date2 = new Date();
				date2.setDate(date2.getDate() + inn);
					
				year = ((navigator.appName == "Netscape")?(date2.getYear() + 1900):(date2.getYear())).toString(); 
				var date2s = (date2.getMonth() + 1) + "/" + date2.getDate() + "/" + year;
					
				var air = "true";
				var room = "true";
				var car = "false";
					
				if(objDestination.childNodes[0].nodeValue == "arizona")
					air = "false";
					
				if(objTheFourth.childNodes[0].nodeValue == '1')
				{
					strPriceVacations += "<TD WIDTH='33%' VALIGN='top' ALIGN='ceter'><A CLASS='ttwlink' HREF='#' onClick='displayMessage(\""+base_dir+"thefourth.php?id="+objId.childNodes[0].nodeValue+"&name="+objName.childNodes[0].nodeValue+"&date1="+date1s+"&date2="+date2s+"&air="+air+"&room="+room+"&car="+car+"\"); return false;'>" + objName.childNodes[0].nodeValue + "</A></TD>";
				}
				else
				{
					var area2 = "";
						
					area2 = objName.childNodes[0].nodeValue;
					
					if(air == "false")
					{
						var searchurl = "http://www.expedia.com/pubspec/scripts/eap.asp?GOTO=HOTSEARCH&eapid=40424-1&rfrr=-34980&PackageType=&mdpcid=4021-1.0.1&CityName="+area2+"&NumAdult=2&InDate="+date1s+"&OutDate="+date2s;
					}
					else
					{
						var searchurl = "http://www.expedia.com/pubspec/scripts/eap.asp?GOTO=PKGLAUNCH&eapid=40424-1&rfrr=-34980&PackageType=&mdpcid=4021-1.0.1&FrAirport=PHX&DestName="+area2+"&NumAdult=2&FromDate="+date1s+"&ToDate="+date2s;
					}
					
					strPriceVacations += "<TD WIDTH='50%' VALIGN='top' ALIGN='ceter'><A CLASS='travel_the_world' HREF='"+searchurl+"' target='_blank'>" + objName.childNodes[0].nodeValue + "</A></TD>";
				}
				
				currentPriceVacations++;
			}
			else
			{
				if(currentTravelGuides % 2 == 0)
					strTravelGuides += "</TR><TR>";
					
				if(objDestination.childNodes[0].nodeValue == '-')
				{
					toplevel = objRegion.childNodes[0].nodeValue;
				}
				else
				{
					toplevel = objDestination.childNodes[0].nodeValue;
				}
					
				if(objURI.childNodes[0])
				{
					var uri = (objURI.childNodes[0].nodeValue).split("_");
						
					strTravelGuides += "<TD WIDTH='50%' VALIGN='top' ALIGN='ceter'><A CLASS='travel_the_world' HREF='/"+uri[0]+"/"+uri[1]+"/index.php'>" + objName.childNodes[0].nodeValue + "</A></TD>";
				}	
				else
				{
					strTravelGuides += "<TD WIDTH='50%' VALIGN='top' ALIGN='ceter'><A CLASS='travel_the_world' HREF='/"+toplevel+"/"+objId.childNodes[0].nodeValue+"/index.php'>" + objName.childNodes[0].nodeValue + "</A></TD>";
				}
				
				currentTravelGuides++;
			}	
		}
		
		// add last parts to each of the buffers
		strPriceVacations += "</TR></TABLE>";
		strTravelGuides += "</TR></TABLE>";
		
		// apply the buffers to each of the html elements
		objTravelGuideCanvas.innerHTML =  strTravelGuides;
		objPriceVacationCanvas.innerHTML = strPriceVacations;
	
		document.getElementById("travel_guides").className = ((currentTravelGuides == 0)?("layer_hide"):("layer_show"));
		document.getElementById("price_vacation").className = ((currentPriceVacations == 0)?("layer_hide"):("layer_show"));
	}
}

function disableObject(obj)
{
	obj.disabled = true;
}

function enableObject(obj)
{
	obj.disabled = false;
}

function resetCanvas()
{
	document.getElementById("travel_guides_canvas").innerHTML = "";
	document.getElementById("price_vacation_canvas").innerHTML = "";
	
	document.getElementById("travel_guides").className = "layer_hide";
	document.getElementById("price_vacation").className = "layer_hide";
}

function startOver()
{
	mapVisible(true);
	selectionVisible(false);
	selectDestinationVisible(false);
	resetCanvas();
}

function mapVisible(yesno)
{
	var css = "";
	
	if(yesno)
		css = "layer_show";
	else
		css = "layer_hide";
		
	document.getElementById("travel_the_world_map").className = css;
	document.getElementById("travel_the_world_intro").className = css;
}

function selectionVisible(yesno)
{
	var css = "";
	
	if(yesno)
		css = "layer_show";
	else
		css = "layer_hide";
		
	document.getElementById("destination_selection").className = css;
}

function selectDestinationVisible(yesno)
{
	var css = "";
	
	if(yesno)
		css = "layer_show";
	else
		css = "layer_hide";
		
	document.getElementById("select_destination").className = css;
}

// ######################## TTW V2 ############################### //

function getGuides(region)
{
	xmlHttp = getXmlHttpObject();
	
	if(xmlHttp == null)
	{
		alert("This browser does not support AJAX");
		return;
	}
	
	if(region == "australia south pacific")
	{
		region_string = "Explore Australia and the South Pacific";
	}
	else if(region == "united states:hawaii")
	{
		region_string = "Explore the Hawaiian Islands";
	}
	else
	{
		region_string = "Explore "+((region == "united states" || region == "middle east" || region == "united kingdom"|| region == "caribbean")?( "the "):(""))+region.ucwords();
	}
	
	document.getElementById("region_name").innerHTML = region_string;
	
	var actionURL = "/media/scripts/php/ajax.requests.php?cmd=guides&region="+region.replace(/\s+/g, "");
	//alert(actionURL);
	xmlHttp.onreadystatechange = _getGuides;
	xmlHttp.open("GET", actionURL, true);
	xmlHttp.send(null);
}

function _getGuides()
{
	if(xmlHttp.readyState == 4) // processing has been completed
	{
		var xmlDoc = xmlHttp.responseXML.documentElement;
		
		var buffer = "<TABLE WIDTH='100%' CELLPADDING='1' CELLSPACING='1'><TR>";
		
		// loop through xmlDoc and load all the coresponding regions
		for(i = 0; i < xmlDoc.getElementsByTagName("site").length; i++)
		{
			objSite = xmlDoc.getElementsByTagName("site")[i];
			objDestination = objSite.getElementsByTagName("destination")[0];
			objRegion = objSite.getElementsByTagName("region")[0];
			objId = objSite.getElementsByTagName("id")[0];
			objURI = objSite.getElementsByTagName("uri")[0];
			objName = objSite.getElementsByTagName("name")[0];
			objMapto = objSite.getElementsByTagName("mapto")[0];
			objGuide = objSite.getElementsByTagName("guide")[0];
			objTheFourth = objSite.getElementsByTagName("thefourth")[0];
			
			if(i % 2 == 0)
				buffer += "</TR><TR>";
			
			toplevel = ((objDestination.childNodes[0].nodeValue == '-')?(objRegion.childNodes[0].nodeValue):(objDestination.childNodes[0].nodeValue));
			
			if(objURI.childNodes[0])
			{
				var uri = (objURI.childNodes[0].nodeValue).split("_");
						
				buffer += "<TD WIDTH='50%' VALIGN='top' ALIGN='ceter' class='ttwbul'>&bull;  <A CLASS='ttwv2_link' HREF='/"+uri[0]+"/"+uri[1]+"/index.php'>" + objName.childNodes[0].nodeValue + "</A></TD>";
			}	
			else
			{
				buffer += "<TD WIDTH='50%' VALIGN='top' ALIGN='ceter' class='ttwbul'>&bull; <A CLASS='ttwv2_link' HREF='/"+toplevel+"/"+objId.childNodes[0].nodeValue+"/index.php'>" + objName.childNodes[0].nodeValue + "</A></TD>";
			}
			
		}
		buffer += "</TR></TABLE>";
		
		document.getElementById("regions_listed").innerHTML = buffer;
		document.getElementById("destination_guide").className = "dg_show";
	}
}