// **************************************************
// Please record all modification
// 
// Author/Date: sfleming & btaylor 02/21/07
// Reason: Added Cookies to remember widget state and form state for Book a Flight and Check Flight Status.
//         Disabled return date and time for One Way selection. 
//         Updated Calendar functionality to display selected date and populate return date to one day after depart date.
//
// **************************************************
function extractNumbers(str) {
	var decimalFound = false;
	var numStr = "";
	for (var i=0; i<str.length; i++) {
		if (((!decimalFound) && (str.charCodeAt(i) == 46)) || ((str.charCodeAt(i) >= 48) && (str.charCodeAt(i) <= 57))) {
			if (str.charCodeAt(i) == 46) decimalFound = true;
			numStr += str.charAt(i);
		}
		else if (numStr != "") return numStr;
	}
	return numStr;
}

var detect_browser  = navigator.appName.toLowerCase();
var detect_uaString = navigator.userAgent.toLowerCase();

var detect_settings = new Array();

if (detect_uaString.indexOf("windows") >= 0) detect_settings["platform"] = "win";
else if (detect_uaString.indexOf("mac") >= 0) detect_settings["platform"] = "mac";
else detect_settings["platform"] = "?";

if (detect_settings["platform"] == "win") {
	if (detect_uaString.indexOf("opera") >= 0) detect_settings["browser"] = "opera";
	else if (detect_uaString.indexOf("firefox") >= 0) detect_settings["browser"] = "firefox";
	else if (detect_uaString.indexOf("netscape") >= 0) detect_settings["browser"] = "netscape";
	else if (detect_browser.indexOf("internet explorer") >= 0) detect_settings["browser"] = "msie";
	else detect_settings["browser"] = "?";	
}
else if (detect_settings["platform"] == "mac") {
	if (detect_uaString.indexOf("opera") >= 0) detect_settings["browser"] = "opera";
	else if (detect_uaString.indexOf("firefox") >= 0) detect_settings["browser"] = "firefox";
	else if (detect_uaString.indexOf("netscape") >= 0) detect_settings["browser"] = "netscape";
	else if (detect_browser.indexOf("internet explorer") >= 0) detect_settings["browser"] = "safari";
	else detect_settings["browser"] = "?";	
}
else {
	if (detect_uaString.indexOf("opera") >= 0) detect_settings["browser"] = "opera";
	else if (detect_uaString.indexOf("firefox") >= 0) detect_settings["browser"] = "firefox";
	else detect_settings["browser"] = "?";	
}

if (detect_settings["browser"] != "?") {
	var idx = detect_uaString.indexOf(detect_settings["browser"]) + detect_settings["browser"].length + 1;
	var verStr = detect_uaString.slice(idx,idx+5);
	var ver = extractNumbers(verStr);
	if (ver != "") var verFloat = parseFloat(ver);
	else var verFloat = 0.0;
	if (verFloat >= 0.0) detect_settings["version"] = verFloat;
	else detect_settings["version"] = 0;
}
else detect_settings["version"] = 0;

var use_yui_script = !((detect_settings["platform"] == "win") && (detect_settings["browser"] == "msie") && (detect_settings["version"] < 5.5));
var use_popup_calendar = true;
if ((detect_settings["platform"] == "win") && (detect_settings["browser"] == "netscape") && (detect_settings["version"] < 7.2)) use_popup_calendar = false;
if ((detect_settings["browser"] == "opera") && (detect_settings["version"] < 9)) use_popup_calendar = false;
if ((detect_settings["browser"] == "firefox") && (detect_settings["version"] < 1.5)) use_popup_calendar = false;
if ((detect_settings["browser"] == "netscape") && (detect_settings["version"] < 8)) use_popup_calendar = false;
if ((detect_settings["platform"] == "win") && (detect_settings["browser"] == "msie") && (detect_settings["version"] < 6)) use_popup_calendar = false;

// Shut the widgets off for misbehaving browsers 
var use_widgets = true;
if ((detect_settings["browser"] == "opera") && (detect_settings["version"] < 9)) use_widgets = false;
if ((detect_settings["browser"] == "firefox") && (detect_settings["version"] < 1.5)) use_widgets = false;
if ((detect_settings["browser"] == "netscape") && (detect_settings["version"] < 8)) use_widgets = false;
if ((detect_settings["platform"] == "win") && (detect_settings["browser"] == "msie") && (detect_settings["version"] < 6)) use_widgets = false;

if (use_yui_script) {
	YAHOO.namespace("swa.calendar");
	
	function init() {

				
		/*if (use_popup_calendar) {
			var dCal = document.getElementById("departCal");
			dCal.style.display = "inline";
			var rCal = document.getElementById("returnCal");
			rCal.style.display = "inline";
		
		
         // ******* START *******
         var d=new Date()
         var today = (d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear()
         // ******* END *******
			YAHOO.swa.calendar.departCal = new YAHOO.widget.CalendarGroup('departCal','departCalContainer', { pages:1, close:false, NAV_ARROW_LEFT:"/content/images/home_page/callt.gif", NAV_ARROW_RIGHT:"content/images/home_page/calrt.gif", mindate:today.toString(), maxdate:"8/24/2007" } )
			YAHOO.swa.calendar.departCal.render();
			// Listener to show the Depart Calendar when the icon is clicked
			YAHOO.util.Event.addListener("departCal", "click", YAHOO.swa.calendar.departCal.show, YAHOO.swa.calendar.departCal, true);
			YAHOO.util.Event.addListener("departCal","click", HideReturnCal);

			YAHOO.swa.calendar.returnCal = new YAHOO.widget.CalendarGroup("returnCal","returnCalContainer", { pages:1, close:false, NAV_ARROW_LEFT:"/content/images/home_page/callt.gif", NAV_ARROW_RIGHT:"content/images/home_page/calrt.gif", mindate:today.toString(), maxdate:"8/24/2007"} );
			YAHOO.swa.calendar.returnCal.render();
			// Listener to show the Return Calendar when the icon is clicked
			YAHOO.util.Event.addListener("returnCal", "click", YAHOO.swa.calendar.returnCal.show, YAHOO.swa.calendar.returnCal, true);
			YAHOO.util.Event.addListener("returnCal","click", HideDepartCal);
			
			YAHOO.swa.calendar.departCal.selectEvent.subscribe(handleDepartSelect, YAHOO.swa.calendar.departCal, true);
			YAHOO.swa.calendar.returnCal.selectEvent.subscribe(handleReturnSelect, YAHOO.swa.calendar.returnCal, true);
			
			YAHOO.util.Event.addListener(["outbound_depart_month","outbound_depart_day","selDepartYear"], "change", updateDepartCal);
			YAHOO.util.Event.addListener(["return_depart_month","return_depart_day","selReturnYear"], "change", updateReturnCal);
		
			var departCalDiv = document.getElementById("departCalContainer");
			var closeDiv1 = document.createElement("div");
			YAHOO.util.Dom.addClass(closeDiv1, "calendarCloseButton");
			var closeATag1 = document.createElement("a");
			closeATag1.href="#content-top";
			var closeIcon1 = document.createElement("img");
			closeIcon1.src = "/content/images/home_page/cal-close.gif";
			closeIcon1.border = "0";
			closeIcon1.alt = "X";
			//closeIcon1.title = "Close Calendar";
			closeATag1.appendChild(closeIcon1);
			closeATag1.appendChild(document.createTextNode(" Close"));
			YAHOO.util.Event.addListener(closeATag1,"click",HideBothCalendars);
			closeDiv1.appendChild(closeATag1);
			departCalDiv.appendChild(closeDiv1);
		
			var returnCalDiv = document.getElementById("returnCalContainer");
			var closeDiv2 = document.createElement("div");
			YAHOO.util.Dom.addClass(closeDiv2, "calendarCloseButton");
			var closeATag2 = document.createElement("a");
			closeATag2.href="#content-top";
			var closeIcon2 = document.createElement("img");
			closeIcon2.src = "/content/images/home_page/cal-close.gif";
			closeIcon2.border = "0";
			closeIcon2.alt = "X";
			//closeIcon2.title = "Close Calendar";
			closeATag2.appendChild(closeIcon2);
			closeATag2.appendChild(document.createTextNode(" Close"));
			YAHOO.util.Event.addListener(closeATag2,"click",HideBothCalendars);
			closeDiv2.appendChild(closeATag2);
			returnCalDiv.appendChild(closeDiv2);
		}
		*/
		if (use_widgets == true) {
			prepHomepageWidgets();
			setAccordion();
			//BuildDropdowns();
           // setRadio();
			//applyDropdownCookies();
		}
		
	function concludeSave()
		{
			//saveSelections(document.bookNowForm);
			//saveSelections(document.flightStatusForm);
		}
        
    function setRadio()
	{
		var RT = getObj('RoundTrip');
		var OW = getObj('OneWay');
		var c = getCookie('bookNowForm');
		if(c)
		{
            var cVal = c.split('^');
            var t = cVal[7].toString();
			switch(t)
			{
				case('0'):
				RT.checked = true;
				OW.checked = false;
                toggleReturnElements('RoundTrip');
				break;
				
				case('1'):
				RT.checked = false;
				OW.checked = true;
                toggleReturnElements('None'); //one way
				break;
			}
		}
	}
	
	//Opera and Safari don't support the unload event well, but the form data will also be saved in the cookie
	//when the user clicks the submit button for Book A Flight and Check In Online
	YAHOO.util.Event.addListener(window, "unload", concludeSave);
	
	YAHOO.util.Event.addListener("submitBookFlights", "click", concludeSave);
	YAHOO.util.Event.addListener("submitCheckIn", "click", concludeSave);
	}
	
	function toggleReturnElements(val)
		{
			var srm = getObj('return_depart_month');
			var srd = getObj('return_depart_day');
			var rdt = getObj('return_depart_time');
			var calImg = getObj('returnCalImg');
			
			switch(val)
			{
				case('RoundTrip'):
				srm.disabled = false;
				srd.disabled = false;
				rdt.disabled = false;
				calImg.src = '/content/images/home_page/icn_cal.gif';
				calImg.style.cursor = 'pointer';
				YAHOO.util.Event.addListener("returnCal", "click", YAHOO.swa.calendar.returnCal.show, YAHOO.swa.calendar.returnCal, true);
				break;
				
				case('None'):
				srm.disabled = true;
				srd.disabled = true;
				rdt.disabled = true;
				srm.value = 0;
				srd.value = 0;
				rdt.value = 'Anytime';
				calImg.src = '/content/images/home_page/icn_cal_disabled.gif';
				calImg.style.cursor = 'default';
				YAHOO.util.Event.removeListener("returnCal", "click", YAHOO.swa.calendar.returnCal.show);
				break;
			}
		}
		
	YAHOO.util.Event.addListener(window, "load", init);
}