function calCallBackXML(calendar) {
    if (calendar.dateClicked) {
      // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
	  var y = calendar.date.getFullYear();
      var m = calendar.date.getMonth();     // integer, 0..11
      var d = calendar.date.getDate();      // integer, 1..31
	  calendar.params.inputYear.value = y;
	  calendar.params.inputMonth.selectedIndex = m;
	  calendar.params.inputDay.selectedIndex = d-1;
	  calendar.params.fulldatefld.value = calendar.date;
	  calendar.callCloseHandler();
    }
 }
 
function calCallBack(calendar) {
    if (calendar.dateClicked) {
      // OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
	  var y = calendar.date.getFullYear();
      var m = calendar.date.getMonth();     // integer, 0..11
      var d = calendar.date.getDate();      // integer, 1..31
	  calendar.params.inputYear.value = y;
	  calendar.params.inputMonth.selectedIndex = m;
	  calendar.params.inputDay.selectedIndex = d-1;
	  //calendar.params.fulldatefld.value = calendar.date;
	  calendar.callCloseHandler();
    }
 }

/*-----------------------------------------------------------
    Toggles element's display value
    Input: any number of element id's
    Output: none 
    ---------------------------------------------------------*/
function ToggleDisplay() {
    for (var i=0;i<arguments.length;i++){
        var d = $(arguments[i]);
        if (d.style.display == 'none')
            d.style.display = 'block';
        else
            d.style.display = 'none';
    }
}
/*-----------------------------------------------------------
    Toggles tabs - Closes any open tabs, and then opens current tab
    Input:     1.The number of the current tab
                    2.The number of tabs
                    3.(optional)The number of the tab to leave open
                    4.(optional)Pass in true or false whether or not to animate the open/close of the tabs
    Output: none 
    ---------------------------------------------------------*/
function ToggleTabs( num, numelems, opennum, animate )
{
	if ( $('tabContent'+num).style.display == 'none' )
	{
		for (var i=1;i<=numelems;i++){
			if ((opennum == null) || (opennum != i)){
				var temph = 'tabHeader'+i;
				var h = $(temph);
				if (!h){
			    var h = $('tabHeaderActive');
			    h.id = temph;
				}
				var tempc = 'tabContent'+i;
				var c = $(tempc);
				if(c.style.display != 'none'){
			    if (animate || typeof animate == 'undefined')
		        Effect.toggle(tempc,'apPear',{duration:0.3, queue:{scope:'menus', limit: 3}});
			    else
		        ToggleDisplay(tempc);
				}
			}
		}
		var h = $('tabHeader'+num);
		if (h)
	    h.id = 'tabHeaderActive';
		h.blur();
		var c = $('tabContent'+num);
		c.style.marginTop = '2px';
		if (animate || typeof animate == 'undefined')
	    Effect.toggle('tabContent'+num,'appear',{duration:0.3, queue:{scope:'menus', position:'end', limit: 3}});
		else
	    ToggleDisplay('tabContent'+num);
	}
}

/* If we change the Month and it's a month that has passed, lets assume that they want next year */
function changeFromMonth(obj, tab) {
	var d = new Date();
	
	switch(tab) {
		case 'hotel':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('arrivalyear').value = d.getFullYear() + 1;
				document.getElementById('doa_yy').value = d.getFullYear() + 1;
				document.getElementById('departureyear').value = d.getFullYear() + 1;
				document.getElementById('dod_yy').value = d.getFullYear() + 1;
			} else {
				document.getElementById('arrivalyear').value = d.getFullYear();
				document.getElementById('doa_yy').value = d.getFullYear();
				
				/* If the departure month is this month or later, set the year back to this year
					Otherwise just leave it alone... */
				if (document.getElementById('dod_mm').value >= (d.getMonth() + 1)) {
					document.getElementById('departureyear').value = d.getFullYear();
					document.getElementById('dod_yy').value = d.getFullYear();
				}
			}
			break;
		case 'airHotel':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('dateLeavingYear').value = d.getFullYear() + 1;
				document.getElementById('dateReturningYear').value = d.getFullYear() + 1;
			} else {
				document.getElementById('dateLeavingyear').value = d.getFullYear();
				
				/* If the departure month is this month or later, set the year back to this year
					Otherwise just leave it alone... */
				if (document.getElementById('dateReturningMonth').value >= (d.getMonth() + 1)) {
					document.getElementById('dateReturningYear').value = d.getFullYear();
				}
			}
			break;
		case 'activities':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('from_yy').value = d.getFullYear() + 1;
				document.getElementById('to_yy').value = d.getFullYear() + 1;
			} else {
				document.getElementById('from_yy').value = d.getFullYear();
				
				/* If the departure month is this month or later, set the year back to this year
					Otherwise just leave it alone... */
				if (document.getElementById('to_mm').value >= (d.getMonth() + 1)) {
					document.getElementById('to_yy').value = d.getFullYear();
				}
			}
			break;
	}
}
function changeToMonth(obj, tab) {
	var d = new Date();
	
	switch(tab) {
		case 'hotel':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('departureyear').value = d.getFullYear() + 1;
				document.getElementById('dod_yy').value = d.getFullYear() + 1;
			} else {
				document.getElementById('departureyear').value = d.getFullYear();
				document.getElementById('dod_yy').value = d.getFullYear();
			}
			break;
		case 'airHotel':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('dateReturningYear').value = d.getFullYear() + 1;
			} else {
				document.getElementById('dateReturningYear').value = d.getFullYear();
			}
			break;
		case 'activities':
			if (obj.value < (d.getMonth() + 1)) {
				document.getElementById('to_yy').value = d.getFullYear() + 1;
			} else {
				document.getElementById('to_yy').value = d.getFullYear();
			}
			break;
	}
}

function validateWCTForm(obj) {
	var errMsg = '', fmtMsg = '', reqMsg = '', sDate = new Date(), eDate = new Date();
	with(obj) {
		switch(obj.name) {
			case 'hotelForm':
				sDate.setFullYear(doa_yy.value);
				sDate.setMonth(doa_mm.value - 1, doa_dd.value);
				eDate.setFullYear(dod_yy.value);
				eDate.setMonth(dod_mm.value - 1, dod_dd.value);
				
				if (sDate >= eDate) {
					errMsg += '    Check In Date must be before the Check Out Date\n';
				}
				break;
			case 'airHotelForm':
				sDate.setFullYear(dateLeavingYear.value);
				sDate.setMonth(dateLeavingMonth.value - 1, dateLeavingDay.value);
				eDate.setFullYear(dateReturningYear.value);
				eDate.setMonth(dateReturningMonth.value - 1, dateReturningDay.value);
				
				if (leavingFrom.value.length == 0) {
					reqMsg += '    You must specify a From City or Airport\n';
				}
				if (sDate >= eDate) {
					errMsg += '    Depart Date must be before the Return Date\n';
				}
				break;
			case 'activityForm':
				sDate.setFullYear(from_yy.value);
				sDate.setMonth(from_mm.value - 1, from_dd.value);
				sDate.setFullYear(to_yy.value);
				eDate.setMonth(to_mm.value - 1, to_dd.value);
				
				if (sDate >= eDate) {
					errMsg += '    Begin Date must be before the End Date\n';
				}
				break;
		}
	}
	if ((reqMsg.length + fmtMsg.length) != 0) {
		errMsg = 'This search cannot be submitted at this time!\n\n';
		if (reqMsg.length > 0)
			errMsg += 'The following fields are required!\n' + reqMsg + '\n';
		
		if (fmtMsg.length > 0)
			errMsg += 'The following information is invalid!\n' + fmtMsg + '\n';
		
		alert(errMsg);
		return false;
	}
	return true;
}
