function setSelectValue(obj, value)
{
	var i = 0
	foundText = false
	
	for (i = 0; i < obj.options.length; i++)
	{
		if (Text.trim(obj.options[i].value) == Text.trim(value))
		{
			obj.selectedIndex = i
			foundText = true
			break
		}
	}
	
	if (!foundText)
		obj.options[0].selected
	
}
	
function setSelectText(obj, value)
{
	var i = 0
	foundText = false

	for (i = 0; i < obj.options.length; i++)
	{
		
		if (Text.trim(obj.options[i].text) == Text.trim(value))
		{
			obj.options[i].selected = true
			foundText = true
			break
		}
	}
	
	if (!foundText)
	{
		obj.options[0].selected
	}
}

var prevSection = 0
var currSection = 0
var tabClicks = 0
var nightlyTabClicks = 0
var weeklyTabClicks = 0
var packageTabClicks = 0
var theCurrentCityState = ""
var theCurrentRegionId = ""

function selectTab(id)
{
	// clear tabs
	objTab0 = document.getElementById("tab0Left")
	objTab1 = document.getElementById("tab1Left")
	objTab3 = document.getElementById("tab2Right")

	
	objTab0.src = "../inventory/packages/tabLeftOff.gif"
	objTab1.src = "../inventory/packages/tabMiddleOffOff.gif"
	objTab3.src = "../inventory/packages/tabRightOff.gif"
	
	// select tab logic
	if (id == 0)
	{
		objLeft = document.getElementById("tab0Left")
		objRight = document.getElementById("tab1Left")
		
		objLeft.src = "../inventory/packages/tabLeftOn.gif"
		objRight.src = "../inventory/packages/tabMiddleOnOff.gif"
	}
	
	if (id == 1)
	{
		objLeft = document.getElementById("tab1Left")
		objRight = document.getElementById("tab2Left")
		
		objLeft.src = "../inventory/packages/tabMiddleOffOn.gif"
		objRight.src = "../inventory/packages/tabMiddleOnOff.gif"
	}
	
	if (id == 2)
	{
		objLeft = document.getElementById("tab1Left")
		objRight = document.getElementById("tab2Right")
		
		objLeft.src = "../inventory/packages/tabMiddleOffOn.gif"
		objRight.src = "../inventory/packages/tabRightOn.gif"
	}
	
}

function getTabDivName(tabID)
{
	strDivName = ""
	
	if (tabID == 0)
		strDivName = "divSearchResults"
		else if (tabID == 1)
			strDivName = "divSearchWeekly"
			else if (tabID == 2)
				strDivName = "divSearchPackages"
				else
					strDivName = "divSearchResults"
	
	return strDivName
}

function setCalendarDates(tabID)
{
	var CalendarArrival
	var dateIncrement
	
	if (tabID == 0 || tabID == 2)
		dateIncrement = 3
	else
		dateIncrement = 7
	
			
	CalendarArrival = document.getElementById("ucSearch_imgCalendarStart")
	CalendarArrival.onclick = function()
	{ 
		show_calendar('fineavail.ucSearch_txtStartDate',null,null,'MM/DD/YYYY', null, null, 'fineavail.ucSearch_txtEndDate', dateIncrement);
		return false;
	}
}

function selectTabSection(tabID)
{
	tabClicks++
	
	if(tabID == 0)
	{
        if  (nightlyTabClicks == 0)
        {
	        LoadNightlyResults();
	    }
	    nightlyTabClicks++;
	}
	
	else if (tabID == 1)
	{
	    if (weeklyTabClicks == 0)
	    {
	        LoadWeeklyResults();
	    }
	    weeklyTabClicks++;
	}
	
	else if (tabID == 2)
	{
	    if (packageTabClicks == 0)
	    {
	        LoadPackageResults();
	    }
	    packageTabClicks++;        
	}
	
	selectSection(tabID)
	setSearchControl(tabID)
}

function selectTabSection_NonLoad(tabID)
{
	tabClicks++
	
	if(tabID == 0)
	{
	    nightlyTabClicks++;
	}
	
	else if (tabID == 1)
	{
	    weeklyTabClicks++;
	}
	
	else if (tabID == 2)
	{
	    packageTabClicks++;        
	}
	
	selectSection(tabID)
	setSearchControl(tabID)
}

function setSearchControl(tabID)
{
	setCalendarDates(tabID)
	
	var departMinDays = 3
	
	var currentCityState = ""
	var arrStateCity = ""
	var currentCityZip = ""
	
	prevSearchMode = document.getElementById("searchMode").value
	
	if (prevSearchMode != "weekly")
	{
	    oCityZip = document.getElementById("ucSearch_cityZip")
    	
	    currentCityState = oCityZip.options[oCityZip.selectedIndex].value
        currentCityZip = oCityZip.options[oCityZip.selectedIndex].value
    	
	    arrCityZip = currentCityZip.split("--")	
	    currentCity = arrCityZip[0]
    	
	    if (arrCityZip.length > 1)
		    currentZip = arrCityZip[1]
    	
	    var currentZip = ""
    	
	    if (tabClicks <=2)
		    theCurrentCityState = currentCityState
    }
    
	// nightly
	if (tabID == 0)
	{
		// departure date default is 3 days from arrival
		departMinDays = 3
		
		// set the search mode
		document.forms.fineavail.searchMode.value = "nightly"
		document.forms.fineavail.hdnCurrentSearchMode.value = "nightly"
		
		
		// update the city label and help link
		updateCityLabelText()
		
		alertDebug("ac:" +autoComplete)
		if (autoComplete == 1)
			displayRegionFields(false)
		else
			displayRegionFields(false)
		
		displayPackageAdditionalFields(false)
					
		if (tabClicks >1)
		{
			
			// load all cities if previous section is weekly
			if (prevSection == 1)
			{
		        resortime.searchControlRegion.GetAllCities(LoadCitiesTop_CallBack);
		    }
		
		}
		
		document.getElementById("SearchAvailabilityTab").src = "../reservations/images/nightly_rentals_but.gif"
		document.getElementById("ucSearch_hidSearchMode").value = "nightly"
		
		// hide region
		document.getElementById("ucSearch_Table_Region").style.display="none"
		
				
		// hide guests
		document.getElementById("ucSearch_tdSearchInput_OccupantsText").style.display = "none"
		document.getElementById("ucSearch_tdSearchInput_OccupantsControl").style.display = "none"		
	}
	
	// weekly
	if (tabID == 1)
	{
		// set the search mode
		document.forms.fineavail.searchMode.value = "weekly"
		document.forms.fineavail.hdnCurrentSearchMode.value = "weekly"
		
		// departure date default is 7 days from arrival
		departMinDays = 3
			
		// update the city label and help link
		updateCityLabelText()
		
		alertDebug("ac:" +autoComplete)
		if (autoComplete == 1)
			displayRegionFields(false)
		else
			displayRegionFields(true)
		
		displayPackageAdditionalFields(false)
			
		// get the region code related with the city
		// get the current RegionId
		objRegion = document.getElementById("ucSearch_region")
		
		if (objRegion.selectedIndex > 0)
		{
			currentRegionId = objRegion.options[objRegion.selectedIndex].value
			if (currentRegionId == 0)
				currentRegionId = -1
		}
		else
			currentRegionId = -1
				
		document.getElementById("SearchAvailabilityTab").src = "../reservations/images/weekly_rentals_but.gif"		
		document.getElementById("ucSearch_hidSearchMode").value = "weekly"
		
		// populate cityZip drop-down
		if (tabClicks >1 && currSection != prevSection && currentRegionId >= 0)
		{
		    alert( "this feature has been removed" );
		    return;
		}
		
		// if no region found, empty the city drop-down
		if (currentRegionId < 0)
		{
			document.getElementById("ucSearch_cityZip").options.length = 0
			document.getElementById("ucSearch_region").selectedIndex = 0
		}
		
		// only channel 1 available
		currentChannelId = 1
		
		
		// hide guests
		document.getElementById("ucSearch_tdSearchInput_OccupantsText").style.display = "none"
		document.getElementById("ucSearch_tdSearchInput_OccupantsControl").style.display = "none"
		
	}
	
	// packages
	if (tabID == 2)
	{
		// set the search mode
		document.forms.fineavail.searchMode.value = "packages"
		document.forms.fineavail.hdnCurrentSearchMode.value = "packages"
		
		// departure date default is 3 days from arrival
		departMinDays = 3
			
		// update the city label and help link
		updateCityLabelText()
		
		alertDebug("ac:" +autoComplete)
		if (autoComplete == 1)
			displayRegionFields(false)
		else
			displayRegionFields(false)
		
		displayPackageAdditionalFields(true)
			
		if (tabClicks > 1)		
		{
			// load all cities if previousSection is weekly
			if (prevSection == 1)
			{
		        resortime.searchControlRegion.GetAllCities(LoadCitiesTop_CallBack);
		    }
		}
		
		document.getElementById("SearchAvailabilityTab").src = "../reservations/images/packages_but.gif"
		document.getElementById("ucSearch_hidSearchMode").value = "packages"
		
		// hide region
		document.getElementById("ucSearch_Table_Region").style.display = "none"
		
		
		// show guests
		document.getElementById("ucSearch_tdSearchInput_OccupantsText").style.display = "inline"
		document.getElementById("ucSearch_tdSearchInput_OccupantsControl").style.display = "inline"
		
	}
	
	// set the calendar 
	var CalendarArrival;
		
	CalendarArrival = document.getElementById("ucSearch_imgCalendarStart");
	CalendarArrival.onclick = function()
	{ 
		show_calendar('fineavail.ucSearch_txtStartDate',null,null,'MM/DD/YYYY', null, null, 'fineavail.ucSearch_txtEndDate', departMinDays);
		return false;
	}
	
	// set the arrival and departure dates
	
	with (document.forms.fineavail)
	{
		var startdate = new Date(document.getElementById("ucSearch_txtStartDate").value);
		var today = new Date();
		
		// Format the dates for presentation
		var ad = new Date(document.getElementById("ucSearch_txtStartDate").value);
		ucSearch_txtStartDate.value = ad.formatDate("m/d/Y");
		
		var dd = new Date(document.getElementById("ucSearch_txtEndDate").value);
		ucSearch_txtEndDate.value = dd.formatDate("m/d/Y");
		
	}
	
}

function dateAddDays(indt, days) 
{
	var d = new Date(indt);
	var dv = d.valueOf();
	var ndv;

	ndv = dv + (days*(1000*60*60*24));
	
	var nd = new Date(ndv);
	return ((nd.getMonth() + 1) + "/" + nd.getDate() + "/" + nd.getFullYear());
}


function RegionUpdate_CallBack(response)
{
	//if the server side code threw an exception
	if (response.error != null)
	{    
		alert("Error:" +response.error); //we should probably do better than this
		return;
	}  
	
	var regions = response.value;  
	//if the response wasn't what we expected  
	if (regions == null || typeof(regions) != "object")
	{
		return;  
	}
	
	cityZip = document.getElementById("ucSearch_cityZip")
	
	// this code is disabled (and eventually removed)
	if (cityZip.selectedIndex >= 0 && 1 == 2)
	{
		var currentCityState = cityZip.options[cityZip.selectedIndex].text
		var currentCityZip = cityZip.options[cityZip.selectedIndex].value
	
		if (!isNaN(parseInt(regions.length)))
		{
			theRegionId = regions[0].regionId
		}
		else
		{
			theRegionId = regions.Rows[0].regionId
		}
		
	}
	
}

function LoadCitiesTop_CallBack(response)
{   
	//if the server side code threw an exception
	if (response.error != null)
	{    
		alert("Error:" +response.error); //we should probably do better than this
		return;
	}  
	
	var citiesList = document.getElementById("ucSearch_cityZip");
	var searchMode = document.getElementById("ucSearch_hidSearchMode").value
	
	//if we couldn't find the states drop down
	if (citiesList == null)
	{
		return; //couldn't find the cities dropdown...
	}
	
	var cities = response.value;  
	//if the response wasn't what we expected  
	if (cities == null || typeof(cities) != "object")
	{
		return;  
	}
	
	var currentCityState = ""
	var currentCityZip = ""

	currentCity = ""
	arrCityState = theCurrentCityState.split(" -- ")
	currentState = arrCityState[0]
	
	if (arrCityState.length >1)
		currentCity = arrCityState[1]
	
	currentZip = ""
	arrCityZip = currentCityZip.split("--")
	currentCity = arrCityZip[0]
	
	if (arrCityZip.length > 1)
		currentZip = arrCityZip[1]
	
	citiesList.options.length = 0; //reset the states dropdown
	
    currentZip = queryString("zip");
    currentCity = queryString("city");
	
	if (!isNaN(parseInt(cities.length)))
	{
		for (var i = 0; i < cities.length; ++i)
		{
			citiesList.options[citiesList.options.length] = new Option(Text.trim(cities[i].state) +" -- " + Text.trim(cities[i].city), Text.trim(cities[i].city) +"--" +Text.trim(cities[i].zip));       
			
			if (currentZip == cities[i].zip && currentCity == cities[i].city)
			{
				citiesList.options[i].selected = true
			}
		}
	}
	else
	{
		for (var i = 0; i < cities.Rows.length; ++i)
		{
			citiesList.options[citiesList.options.length] = new Option(Text.trim(cities.Rows[i].state) +" -- " + Text.trim(cities.Rows[i].city), Text.trim(cities.Rows[i].city) +"--" +Text.trim(cities.Rows[i].zip));       
			
			if (currentZip == cities.Rows[i].zip && currentCity == cities.Rows[i].city)
			{
				citiesList.options[i].selected = true
			}
		}
	}
	
	setSelectText(citiesList, theCurrentCityState)
	theCurrentCityState = citiesList.options[citiesList.selectedIndex].text
}

function selectSection(tabID)
{
	strSectionToHide = getTabDivName(currSection)
	strSectionToDisplay = getTabDivName(tabID)
	
	strLinkUnSelected = "linkSection" +currSection
	strLinkSelected = "linkSection" +tabID
	
	objHide = document.getElementById(strSectionToHide)
	objDisplay = document.getElementById(strSectionToDisplay)
	
	objHide.style.display = "none"
	objDisplay.style.display = "block"
	
	objLinkHide = document.getElementById(strLinkUnSelected)
	objLinkDisplay = document.getElementById(strLinkSelected)
	
	objLinkHide.className = "unSelectedSection"
	objLinkDisplay.className = "selectedSection"
	
	selectTab(tabID)
	
	strTabTextSelected = "tab" +tabID + "Text"
	strTabTextUnSelected = "tab" +currSection + "Text"
	
	objTextUnSelected = document.getElementById(strTabTextUnSelected)
	objTextSelected = document.getElementById(strTabTextSelected)
	
	objTextUnSelected.style.backgroundImage = "url(../inventory/packages/tabBgOff.gif)" 
	objTextSelected.style.backgroundImage = "url(../inventory/packages/tabBgOn.gif)" 

	prevSection = currSection
	currSection = tabID
}

function updateTabText(objName, value)
{
	obj = document.getElementById(objName)
	obj.innerHTML = value
}
