// **************************************************
// 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.

// 06/02/2009 - Removed YUI pop-up calendar functions, 
//              revised script to accommodate JQuery UI datepicker
// **************************************************
var buildDatePickersOnPageLoad=true;

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));

// 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;

var today = new Date();
var tomorrow = today.addDays(1); 

if (use_yui_script) {		
	function init() {  	
   
		if (use_widgets == true) {
	        prepHomepageWidgets();
	        setAccordion();
	        loadIt();  	
			  document.getElementById('outboundDate').value = new Date().toSWADateString();
			  document.getElementById('returnDate').value = tomorrow.toSWADateString();
           setHiddenDateFields(new Date(),'depart');
			  setHiddenDateFields(tomorrow,'return');              
	        BuildDropdowns();	      
	        setRadio();
			  applyDropdownCookies();
			if(document.getElementById("OneWay").checked == true) toggleReturnElements('None');          
		}	
      
		//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);
	}//end init()
     
  	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;
			}
		} else {
			if(document.getElementById("OneWay").checked == true) toggleReturnElements('None');
		}
	}	
	
	function toggleReturnElements(val)		{
			var srm = getObj('returnMonth');
			var srd = getObj('returnDay');
         var srdt = getObj('returnDate');
			var rdt = getObj('return_depart_time');
			
			switch(val)	{
				case('RoundTrip'):
				srm.disabled = false;
				srd.disabled = false;
            srdt.disabled = false;
				rdt.disabled = false;
            $("#returnBookingSelects IMG.ui-datepicker-trigger").css("visibility", "visible");				
            break;
				
				case('None'):
				srm.disabled = true;
				srd.disabled = true;
            srdt.disabled = true;
				rdt.disabled = true;
            $("#returnBookingSelects IMG.ui-datepicker-trigger").css("visibility", "hidden");        				
				break;
			}
		}

	YAHOO.util.Event.addListener(window, "load", init);	
}

function fnMsgShow(id) {
   document.getElementById(id+"Layer").style.visibility="visible";
   document.getElementById(id+"Layer").style.display="block";
}
function fnMsgHide(id) {
   document.getElementById(id+"Layer").style.display="none";
   document.getElementById(id+"Layer").style.visibility="hidden";
}

