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, "");
}

function validEmail(str) {
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);

	if (str.indexOf(at)==-1) { return false; }
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) { return false; }
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) { return false; }
	if (str.indexOf(at,(lat+1))!=-1) { return false; }
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) { return false; }
	if (str.indexOf(dot,(lat+2))==-1) { return false; }
	if (str.indexOf(" ")!=-1) { return false; }

	 return true					
}

function validUSAZip(field) {
	var valid = "0123456789-";
	var hyphencount = 0;
	
	// Zip code is neither of the form '00000' or '00000-0000'
	if (field.length!=5 && field.length!=10) {
		return false;
	}
	
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		
		if (temp == "-") hyphencount++;
		
		// found an invalid character
		if (valid.indexOf(temp) == "-1") {
			return false;
		}
		
		// More than one hyphen OR improperly formatted zip
		if ((hyphencount > 1) || ((field.length==10) && "" + field.charAt(5)!="-" )) {
			return false;
	    }
	}
	return true;
}

function getCalendarDate()
{
   var months = new Array(13);
   months[0]  = "January";
   months[1]  = "February";
   months[2]  = "March";
   months[3]  = "April";
   months[4]  = "May";
   months[5]  = "June";
   months[6]  = "July";
   months[7]  = "August";
   months[8]  = "September";
   months[9]  = "October";
   months[10] = "November";
   months[11] = "December";
   var now         = new Date();
   var monthnumber = now.getMonth();
   var monthname   = months[monthnumber];
   var monthday    = now.getDate();
   var year        = now.getYear();
   if(year < 2000) { year = year + 1900; }
   var dateString = monthname +
                    ' ' +
                    monthday +
                    ', ' +
                    year;
   return dateString;
} // function getCalendarDate()

function getClockTime()
{
   var now    = new Date();
   var hour   = now.getHours();
   var minute = now.getMinutes();
   var ap = "AM";
   if (hour   > 11) { ap = "PM";             }
   if (hour   > 12) { hour = hour - 12;      }
   if (hour   == 0) { hour = 12;             }
   if (hour   < 10) { hour   = "0" + hour;   }
   if (minute < 10) { minute = "0" + minute; }
   var timeString = hour +
                    ':' +
                    minute +
                    " " +
                    ap;
   return timeString;
} // function getClockTime()


function doDateTime() {
	var todaysDate = getCalendarDate();
	var curTime = getClockTime();
	var dateTimeObj = document.getElementById("navdate");
	var dtString = todaysDate + " " + curTime;
	dateTimeObj.innerHTML = dtString;
}

function showHideFD(yesno) {
	if (yesno == 'Y')
	{
		document.getElementById("topNavLeft").className = 'fdDropBg';
		document.getElementById("featDestDrop").style.visibility = 'visible';
	} 
	
	if (yesno == 'N')
	{
		document.getElementById("topNavLeft").className = '';
		document.getElementById("featDestDrop").style.visibility = 'hidden';
	}
}


// -----------------------------------------
// 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, "");

	xmlHttp.open("GET", actionURL, true);
	xmlHttp.onreadystatechange = _getGuides;
	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";
	}
}

function change_food_type(changeto, otheroptions)
{
	var dohide = otheroptions.split("|");
	var doshow = "restaurant_"+changeto;
	
	for(i = 0; i < dohide.length; i++)
	{
		var divid = "restaurant_"+dohide[i];
		document.getElementById(divid).className = "hideDIV";
	}
	
	if(changeto != '0')
		document.getElementById(doshow).className = "showDIV";
}

