// GLOBAL VARIABLES
var flightToolbarCookie       = 'flightToolbarCookie3';
var flightToolbarCookieExpire = new Date(2012, 00, 01, 00, 00, 00);
var flightToolbarUrlScript    = 'http://content.usatoday.com/travel/flights/airportinfo.ashx?a=';
var flightToolbarDelayIcons   = 'http://i.usatoday.net/travel/flights/tools/toolbar/delays-';
var flightToolbarWeatherIcons = 'http://i.usatoday.net/weather/icons/home2/';
var flightToolbarAryWeather   = ['blizzard','bsnow','clearnit','cloudy','drizzle','dust','fairnite','fdrizzle','flurries','fog','frain','haze','hot','ice','mcldnit','mcloudy','na','pcloudy','psunny','ptcloud','rain','scatshn','scatshow','scatsno','scatts','showers','sleet','smoke','snow','snowrain','snowshow','snshnite','sunny','tstorm','windy','wintmix'];
var flightToolbarLastAirport  = '';

// USA-ONLY AIRPORTS
var flightToolbarHtmAirport   = '<select id="airport-menu" onChange="flightToolbarSaveAirport(this)"><option value="-1" selected="selected">Select an airport</option><option value="ALB">Albany, NY - ALB</option><option value="ABQ">Albuquerque, NM - ABQ</option><option value="AMA">Amarillo, TX - AMA</option><option value="ANC">Anchorage, AK - ANC</option><option value="ATL">Atlanta, GA - ATL</option><option value="AUS">Austin, TX - AUS</option><option value="BWI">Baltimore, MD - BWI</option><option value="BHM">Birmingham, AL - BHM</option><option value="BOI">Boise, ID - BOI</option><option value="BOS">Boston, MA - BOS</option><option value="BUF">Buffalo, NY - BUF</option><option value="BUR">Burbank, CA - BUR</option><option value="BTV">Burlington, VT - BTV</option><option value="CHS">Charleston, SC - CHS</option><option value="CLT">Charlotte, NC - CLT</option><option value="CID">Cedar Rapids, IA - CID</option><option value="MDW">Chicago/Midway, IL - MDW</option><option value="ORD">Chicago/O\'Hare, IL - ORD</option><option value="CVG">Cincinnati, OH - CVG</option><option value="CLE">Cleveland, OH - CLE</option><option value="COS">Colorado Springs, CO - COS</option><option value="CAE">Columbia, SC - CAE</option><option value="CMH">Columbus, OH - CMH</option><option value="CRP">Corpus Christi, TX - CRP</option><option value="DAL">Dallas/Love Field, TX - DAL</option><option value="DFW">Dallas/Ft. Worth, TX - DFW</option><option value="DAY">Dayton, OH - DAY</option><option value="DEN">Denver, CO - DEN</option><option value="DSM">Des Moines, IA - DSM</option><option value="DTW">Detroit, MI - DTW</option><option value="ELP">El Paso, TX - ELP</option><option value="FLL">Ft. Lauderdale, FL - FLL</option><option value="RSW">Ft. Myers, FL - RSW</option><option value="GRR">Grand Rapids, MI - GRR</option><option value="GSO">Greensboro, NC - GSO</option><option value="GSP">Greenville-Spartan., SC - GSP</option><option value="HRL">Harlingen/S Padre, TX - HRL</option><option value="BDL">Hartford, CT - BDL</option><option value="ITO">Hilo, HI - ITO</option><option value="HNL">Honolulu, HI - HNL</option><option value="IAH">Houston/Intercon., TX - IAH</option><option value="HOU">Houston/WP.Hobby, TX - HOU</option><option value="HSV">Huntsville, AL - HSV</option><option value="IND">Indianapolis, IN - IND</option><option value="ISP">Islip, NY - ISP</option><option value="JAN">Jackson, MS - JAN</option><option value="JAX">Jacksonville, FL - JAX</option><option value="OGG">Kahului, Maui, HI - OGG</option><option value="KOA">Kailua-Kona, HI - KOA</option><option value="MCI">Kansas City, MO - MCI</option><option value="YLW">Kelowna, BC - YLW</option><option value="TYS">Knoxville, TN - TYS</option><option value="TVL">Lake Tahoe, NV - TVL</option><option value="LAS">Las Vegas, NV - LAS</option><option value="LIH">Lihue, Kauai, HI - LIH</option><option value="LNK">Lincoln, NE - LNK</option><option value="LIT">Little Rock, AR - LIT</option><option value="LGB">Long Beach, CA - LGB</option><option value="LAX">Los Angeles, CA - LAX</option><option value="SDF">Louisville, KY - SDF</option><option value="LBB">Lubbock, TX - LBB</option><option value="MHT">Manchester, NH - MHT</option><option value="MEM">Memphis, TN - MEM</option><option value="MIA">Miami, FL - MIA</option><option value="MAF">Midland, TX - MAF</option><option value="MKE">Milwaukee, WI - MKE</option><option value="MSP">Minn./St. Paul, MN - MSP</option><option value="BNA">Nashville, TN - BNA</option><option value="MSY">New Orleans, LA - MSY</option><option value="JFK">New York/Kennedy, NY - JFK</option><option value="LGA">New York/LaGuardia, NY - LGA</option><option value="EWR">Newark, NJ - EWR</option><option value="ORF">Norfolk, VA - ORF</option><option value="OAK">Oakland, CA - OAK</option><option value="OKC">Oklahoma City, OK - OKC</option><option value="OMA">Omaha, NE - OMA</option><option value="SNA">Orange County, CA - SNA</option><option value="MCO">Orlando, FL - MCO</option><option value="PHL">Philadelphia, PA - PHL</option><option value="PHX">Phoenix, AZ - PHX</option><option value="PIT">Pittsburgh, PA - PIT</option><option value="PDX">Portland, OR - PDX</option><option value="PVD">Providence, RI - PVD</option><option value="RDU">Raleigh/Durham, NC - RDU</option><option value="RNO">Reno, NV - RNO</option><option value="RIC">Richmond, VA - RIC</option><option value="ROC">Rochester, NY - ROC</option><option value="SMF">Sacramento, CA - SMF</option><option value="SLC">Salt Lake City, UT - SLC</option><option value="SAT">San Antonio, TX - SAT</option><option value="SAN">San Diego, CA - SAN</option><option value="SFO">San Francisco, CA - SFO</option><option value="SJC">San Jose, CA - SJC</option><option value="SJU">San Juan, PR - SJU</option><option value="SRQ">Sarasota, FL - SRQ</option><option value="SAV">Savannah, GA - SAV</option><option value="SEA">Seattle/Tacoma, WA - SEA</option><option value="GEG">Spokane, WA - GEG</option><option value="STL">St Louis, MO - STL</option><option value="SUN">Sun Valley, ID - SUN</option><option value="SYR">Syracuse, NY - SYR</option><option value="TLH">Tallahassee, FL - TLH</option><option value="TPA">Tampa, FL - TPA</option><option value="TOL">Toledo Express, OH - TOL</option><option value="TRI">Tri City Airport - TRI</option><option value="TUS">Tucson, AZ - TUS</option><option value="TUL">Tulsa, OK - TUL</option><option value="IAD">Washington/Dulles, DC - IAD</option><option value="DCA">Washington/National, DC - DCA</option><option value="PBI">West Palm Beach, FL - PBI</option><option value="HPN">White Plains, NY - HPN</option><option value="ICT">Wichita, KS - ICT</option><option value="ORH">Worcester, MA - ORH</option></select>';
var flightToolbarAryAirport   = ['ALB=Albany, NY (ALB)','ABQ=Albuquerque, NM (ABQ)','AMA=Amarillo, TX (AMA)','ANC=Anchorage, AK (ANC)','ATL=Atlanta, GA (ATL)','AUS=Austin, TX (AUS)','BWI=Baltimore, MD (BWI)','BHM=Birmingham, AL (BHM)','BOI=Boise, ID (BOI)','BOS=Boston, MA (BOS)','BUF=Buffalo, NY (BUF)','BUR=Burbank, CA (BUR)','BTV=Burlington, VT (BTV)','CHS=Charleston, SC (CHS)','CLT=Charlotte, NC (CLT)','CID=Cedar Rapids, IA (CID)','MDW=Chicago/Midway, IL (MDW)','ORD=Chicago/O\'Hare, IL (ORD)','CVG=Cincinnati, OH (CVG)','CLE=Cleveland, OH (CLE)','COS=Colorado Springs, CO (COS)','CAE=Columbia, SC (CAE)','CMH=Columbus, OH (CMH)','CRP=Corpus Christi, TX (CRP)','DAL=Dallas/Love Field, TX (DAL)','DFW=Dallas/Ft. Worth, TX (DFW)','DAY=Dayton, OH (DAY)','DEN=Denver, CO (DEN)','DSM=Des Moines, IA (DSM)','DTW=Detroit, MI (DTW)','ELP=El Paso, TX (ELP)','FLL=Ft. Lauderdale, FL (FLL)','RSW=Ft. Myers, FL (RSW)','GRR=Grand Rapids, MI (GRR)','GSO=Greensboro, NC (GSO)','GSP=Greenville-Spartan., SC (GSP)','HRL=Harlingen/S Padre, TX (HRL)','BDL=Hartford, CT (BDL)','ITO=Hilo, HI (ITO)','HNL=Honolulu, HI (HNL)','IAH=Houston/Intercon., TX (IAH)','HOU=Houston/WP.Hobby, TX (HOU)','HSV=Huntsville, AL (HSV)','IND=Indianapolis, IN (IND)','ISP=Islip, NY (ISP)','JAN=Jackson, MS (JAN)','JAX=Jacksonville, FL (JAX)','OGG=Kahului, Maui, HI (OGG)','KOA=Kailua-Kona, HI (KOA)','MCI=Kansas City, MO (MCI)','YLW=Kelowna, BC (YLW)','TYS=Knoxville, TN (TYS)','TVL=Lake Tahoe, NV (TVL)','LAS=Las Vegas, NV (LAS)','LIH=Lihue, Kauai, HI (LIH)','LNK=Lincoln, NE (LNK)','LIT=Little Rock, AR (LIT)','LGB=Long Beach, CA (LGB)','LAX=Los Angeles, CA (LAX)','SDF=Louisville, KY (SDF)','LBB=Lubbock, TX (LBB)','MHT=Manchester, NH (MHT)','MEM=Memphis, TN (MEM)','MIA=Miami, FL (MIA)','MAF=Midland, TX (MAF)','MKE=Milwaukee, WI (MKE)','MSP=Minn./St. Paul, MN (MSP)','BNA=Nashville, TN (BNA)','MSY=New Orleans, LA (MSY)','JFK=New York/Kennedy, NY (JFK)','LGA=New York/LaGuardia, NY (LGA)','EWR=Newark, NJ (EWR)','ORF=Norfolk, VA (ORF)','OAK=Oakland, CA (OAK)','OKC=Oklahoma City, OK (OKC)','OMA=Omaha, NE (OMA)','SNA=Orange County, CA (SNA)','MCO=Orlando, FL (MCO)','PHL=Philadelphia, PA (PHL)','PHX=Phoenix, AZ (PHX)','PIT=Pittsburgh, PA (PIT)','PDX=Portland, OR (PDX)','PVD=Providence, RI (PVD)','RDU=Raleigh/Durham, NC (RDU)','RNO=Reno, NV (RNO)','RIC=Richmond, VA (RIC)','ROC=Rochester, NY (ROC)','SMF=Sacramento, CA (SMF)','SLC=Salt Lake City, UT (SLC)','SAT=San Antonio, TX (SAT)','SAN=San Diego, CA (SAN)','SFO=San Francisco, CA (SFO)','SJC=San Jose, CA (SJC)','SJU=San Juan, PR (SJU)','SRQ=Sarasota, FL (SRQ)','SAV=Savannah, GA (SAV)','SEA=Seattle/Tacoma, WA (SEA)','GEG=Spokane, WA (GEG)','STL=St Louis, MO (STL)','SUN=Sun Valley, ID (SUN)','SYR=Syracuse, NY (SYR)','TLH=Tallahassee, FL (TLH)','TPA=Tampa, FL (TPA)','TOL=Toledo Express, OH (TOL)','TRI=Tri City Airport (TRI)','TUS=Tucson, AZ (TUS)','TUL=Tulsa, OK (TUL)','IAD=Washington/Dulles, DC (IAD)','DCA=Washington/National, DC (DCA)','PBI=West Palm Beach, FL (PBI)','HPN=White Plains, NY (HPN)','ICT=Wichita, KS (ICT)','ORH=Worcester, MA (ORH)'];

// CLASS EXTENSIONS
Array.prototype.valueOf=function (){ var term=arguments[0]; if((term!='')&&(term!=0)&&(term!=false)&&(term!=null)){ var text=name=valu=''; for(var x=0; x<this.length; x++){ text=this[x]+''; if(text.indexOf('=')>-1){ text=text.split('='); name=text[0]; valu=text[1]; } else name=valu=text; if(name==term) return(valu); }; }; return(false); };

// FUNCTIONS
function flightToolbarLoad(){
  usatAj.ajax(flightToolbarUrlScript+(flightToolbarLoadCookie()),flightToolbarShow,flightToolbarShow,10000);
};

function flightToolbarShow(){
  var a=(typeof(arguments[0])=='string');
  var i='na';
  var t=false;
  var d=-1;
  var c=flightToolbarLastAirport=flightToolbarLoadCookie();
  if(a){
    a=arguments[0].split('|');
    i=a.valueOf('icon');
    t=a.valueOf('temp');
    d=a.valueOf('index');
  }
  flightToolbarLoadAirport(c);
  flightToolbarLoadWeather(t,i);
  flightToolbarLoadDelay(d);
  flightToolbarLoadKayak(c);
};

function flightToolbarLoadCookie(){
  var c=usat.cookie.get(flightToolbarCookie);
  if(c==null){ c='IAD'; usat.cookie.set(flightToolbarCookie,c,flightToolbarCookieExpire,"/",".usatoday.com",false); };
  return(c);
};

function flightToolbarLoadAirport(){
  var l=document.getElementById('airport-link');
  var d=document.getElementById('airport-data');
  var v=flightToolbarAryAirport.valueOf(arguments[0]);
  if(l!=null&&d!=null&&v){
    l.innerHTML='Your favorite airport <a href="javascript:flightToolbarMenuAirport()">Change</a>';
    d.innerHTML=v;
  };
};

function flightToolbarLoadWeather(){
  var d=document.getElementById('weather-data');
  var v=arguments[0]?arguments[0]+'<span class="degrees">&deg;F</span>':'&nbsp;';
  var i=arguments[1]?arguments[1]:'na';
  if(d!=null){ 
    d.style.backgroundImage='url('+flightToolbarWeatherIcons+i+'.gif)';
    d.style.backgroundPosition=((arguments[0])?('left -7px'):('center -7px'));
    d.innerHTML=v;
  };
};

function flightToolbarLoadDelay(){
  var d=document.getElementById('delay-data');
  var v=parseFloat(arguments[0]+0);
  var i='na',x='&nbsp;';
  if(d!=null){
    d.style.visibility='hidden';
    if     (v>=3.5){ i='red';    x='Major';    }
    else if(v>=2.0){ i='yellow'; x='Moderate'; }
    else if(v>=0)  { i='green';  x='On Time';  }
    d.style.backgroundImage='url('+flightToolbarDelayIcons+i+'.gif)';
    d.style.backgroundPosition=((x!='&nbsp;')?('left top'):('center top'));
    d.innerHTML=x;
    d.style.visibility='visible';
  };
};

function flightToolbarLoadKayak(){
  var d=document.getElementById('ft_l1_a');
  if(d!=null){
    d.focus();
    d.value=arguments[0];
    d.blur();
  };
};

function flightToolbarMenuAirport(){
  var l=document.getElementById('airport-link');
  var d=document.getElementById('airport-data');
  if(l!=null&&d!=null){
    l.innerHTML='Your favorite airport <a href="javascript:flightToolbarSaveAirport(0)">Cancel</a>';
    d.innerHTML=flightToolbarHtmAirport;
  };
};

function flightToolbarSaveAirport(){
  var a=arguments[0];
  a=a?a.options[a.selectedIndex].value:flightToolbarLastAirport;
  usat.cookie.set(flightToolbarCookie,a,flightToolbarCookieExpire,"/",".usatoday.com",false);
  flightToolbarLoadAirport(a);
  flightToolbarLoad();
  if(arguments[0]!=0){
    uoTrack('flightToolbarFavoriteAirport='+a);
  };
};
