function html_entity_decode(str) {  
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&amp;lt;").replace(/>/g,"&amp;gt;");
  return ta.value;
}

function get_random(number)
{
    var ranNum= Math.floor(Math.random()*number);
    return ranNum;
}
function getRandowCityFromWorld()
{
	var quote=new Array(17)
	quote[0]="New York City, NY";
	quote[1]="Paris, France";
	quote[2]="London, England";
	quote[3]="Rome, Italy";
	quote[4]="San Francisco, CA";
	quote[5]="Venice, Italy";
	quote[6]="Florence, Italy";
	quote[7]="Miami, FL";
	quote[8]="Orlando, FL";
	quote[9]="Los Angeles, CA";
	quote[10]="Las Vegas, NV";
	quote[11]="Chicago, IL";
	quote[12]="Berlin, Germany"; 
	quote[13]="Madrid, Spain";
	quote[14]="Barcelona, Spain";
	quote[15]="Prague, Czech Republic";
	quote[16]="Lisbon, Portugal";
	
	cityFromWorld=get_random(quote.length); 

   	return quote[cityFromWorld];
}

//var bt_CompositeLocation = "CN_St. Martin/St. Maarten_null_null_null_null";
//alert("bt_CompositeLocation before:"+ window['bt_CompositeLocation'] );
city = "";
cityDisplayName = "";

if( window['bt_CompositeLocation'] != undefined && bt_CompositeLocation != null && bt_CompositeLocation != "")
{
   //alert("bt_CompositeLocation:"+bt_CompositeLocation);
   bt_CompositeLocation = html_entity_decode(bt_CompositeLocation);
   city = getCompositeCity(bt_CompositeLocation);
	
   /*if(city == null || city == "")
   {
   	city = getRandowCityFromWorld();
   }*/		
   
    if( city != null && city != "" && city != undefined )
    {
        city = city.toUpperCase();
        cityDisplayName = city.split(",")[0];
        rr_booking_module_version = "popups";
    }else{
        rr_booking_module_version = "tabbed";
    }
   
}else{

  rr_booking_module_version = "tabbed"; 		
  //city = getRandowCityFromWorld();	
  
}


function getCompositeCity(compositeLocation)
{
  var compositeCity = "";
  var locations = compositeLocation.split("#");
  
  var location =  locations[0];
  //alert("location"+location);
  
  var locationInfo = location.split("_");
  
  
  if(locationInfo.length == 6)  
  {
     
     if( locationInfo[3] != "null" && locationInfo[2] != "null" )
     {
     	compositeCity = locationInfo[3]+", "+locationInfo[2];
        return compositeCity;
     }
     if( locationInfo[3] != "null" && locationInfo[1] != "null" )
     {
     	compositeCity = locationInfo[3]+", "+locationInfo[1];
        return compositeCity;
     }
     if( locationInfo[2] != "null" && locationInfo[3] == "null" )
     {     
        cityFromState = getRandowCityFromState( locationInfo[2] );
        if( cityFromState != null)
        {
            compositeCity = getRandowCityFromState( locationInfo[2] )+", "+locationInfo[2];
            return compositeCity;
        }
     }
     if( locationInfo[1] != "null" && locationInfo[3] == "null" )
     {
        cityFromCountry =  getRandowCityFromCountry( locationInfo[1] );
        if( cityFromCountry != null)
        {
            compositeCity = getRandowCityFromCountry( locationInfo[1] )+", "+locationInfo[1];
            return compositeCity;
        }
     }     
     if( locationInfo[0] != "null" && locationInfo[1] == "null" && locationInfo[2] == "null" && locationInfo[3] == "null" )
     {
     	//compositeCity = getRandowCityFromContinent( locationInfo[0] );
        return "";
     }
  }
  
  return compositeCity;
	
}



function getRandowCityFromContinent(continent)
{
	
	//alert("continent"+continent);
	var cityFromContinent = "";
	
	var USAC=new Array(10);    
	USAC[0]="New York City, NY";
	USAC[1]="San Francisco, CA";
	USAC[2]="Miami, FL";
	USAC[3]="Los Angeles, CA";
	USAC[4]="Chicago, IL";
	USAC[5]="Seattle, WA"; 
	USAC[6]="Boston, MA";
	USAC[7]="Washington DC, D.C";
	USAC[8]="Montreal, QC";
	USAC[9]="Vancouver, BC";
	
	var EU=new Array(11);  
	EU[0]="Paris, France";
	EU[1]="London, England";
	EU[2]="Rome, Italy";
	EU[3]="Venice, Italy";
	EU[4]="Florence, Italy";
	EU[5]="Madrid, Spain";
	EU[6]="Barcelona, Spain";
	EU[7]="Berlin, Germany";
	EU[8]="Prague, Czech Republic";
	EU[9]="Vienna, Austria";
	EU[10]="Dublin, Ireland";
	
	var CN=new Array(9);  
	CN[0]="Dominican Republic";
	CN[1]="Jamaica";
	CN[2]="Puerto Rico";
	CN[3]="Aruba, Aruba";
	CN[4]="Bahamas";
	CN[5]="Bermuda";
	CN[6]="St. Lucia, St Lucia";
	CN[7]="St. Martin/St. Maarten";
	CN[8]="U.S. Virgin Islands";
	
	var MCA=new Array(8);
	MCA[0]="Mexico City, Mexico";
	MCA[1]="Oaxaca, Mexico";
	MCA[2]="Cancun, Mexico";
	MCA[3]="Riviera Maya, Mexico";
	MCA[4]="Acapulco, Mexico";
	MCA[5]="Puerto Vallarta, Mexico";
	MCA[6]="Nicoya Peninsula, Costa Rica";
	MCA[7]="Guatemala City, Guatemala";	
	
	var SA=new Array(8);  
	SA[0]="Rio de Janeiro, Brazil";
	SA[1]="Buenos Aires, Argentina";
	SA[2]="Santiago, Chile";
	SA[3]="Quito, Ecuador";
	SA[4]="Galapagos Islands, Ecuador";
	SA[5]="Caracas, Venezuela";
	SA[6]="Machu Picchu, Peru";
	SA[7]="Bogota, Colombia";	
	
	var AS=new Array(10);  
	AS[0]="Beijing, China";
	AS[1]="Shanghai, China";
	AS[2]="Bali, Indonesia";
	AS[3]="Mumbai, India";
	AS[4]="New Delhi, India";
	AS[5]="Tokyo, Japan";
	AS[6]="Kuala Lumpur";
	AS[7]="Ho Chi Minh City, Vietnam";
	AS[8]="Bangkok, Thailand";
	AS[9]="Siem Reap, Cambodia";
	
	var AF=new Array(4);
	AF[0]="Johannesburg, South Africa";
	AF[1]="Cape Town, South Africa";
	AF[2]="Cairo, Egypt";
	AF[3]="Marrakech, Morocco";
	
	var ANZSP=new Array(4);
	ANZSP[0]="Sydney, Australia";
	ANZSP[1]="Melbourne, Australia";
	ANZSP[2]="Aukland, New Zealand";
	ANZSP[3]="Fiji, Fiji";	

     if(continent == "USAC")
     {
     	cityFromContinentNo = get_random(USAC.length);
     	cityFromContinent =  USAC[cityFromContinentNo];   
     }
     else if(continent == "EU")
     {
     	cityFromContinentNo = get_random(EU.length);
     	cityFromContinent =  EU[cityFromContinentNo];  
     }
     else if(continent == "CN")
     {
     	cityFromContinentNo = get_random(CN.length);
     	cityFromContinent =  CN[cityFromContinentNo];  
     }
     else if(continent == "MCA")
     {
     	cityFromContinentNo = get_random(MCA.length);
     	cityFromContinent =  MCA[cityFromContinentNo];  
     }
     else if(continent == "SA")
     {
     	cityFromContinentNo = get_random(SA.length);
     	cityFromContinent =  SA[cityFromContinentNo];  
     }
     else if(continent == "AS")
     {
     	cityFromContinentNo = get_random(AS.length);
     	cityFromContinent =  AS[cityFromContinentNo];  
     }   
     else if(continent == "AF")
     {
     	cityFromContinentNo = get_random(AF.length);
     	cityFromContinent =  AF[cityFromContinentNo];  
     }
     else if(continent == "ME")
     {
     	cityFromContinentNo = get_random(ME.length);
     	cityFromContinent =  ME[cityFromContinentNo];  
     } 
     else if(continent == "ANZSP")
     {
     	cityFromContinentNo = get_random(ANZSP.length);
     	cityFromContinent =  ANZSP[cityFromContinentNo];  
     }      
  
   return cityFromContinent;
}


function getRandowCityFromState(state)
{
    var USCityListStr = "AL_Birmingham#AK_Anchorage:Juneau#AZ_Phoenix#AR_Little Rock#CA_San Francisco:L.A.:San Diego#CO_Denver#CT_Hartford#DE_Dover#DC_DC#FL_Miami:Orlando#GA_Atlanta#HI_Honolulu#ID_Boise#IL_Chicago#IN_Indianapolis#IA_Des Moines#KS_Wichita#KY_Louisville#LA_New Orleans#ME_Portland#MD_Baltimore#MA_Boston#MI_Detroit#MN_Minneapolis#MS_Jackson#MO_Kansas City:St. Louis#MT_Helena#NE_Lincoln#NV_Las Vegas#NH_Manchester#NJ_Newark#NM_Santa Fe:Albuquerque#NY_New York City#NC_Raleigh#ND_Bismarck#OH_Cleveland#OK_Oklahoma City#OR_Portland#PA_Philadelphia:Pittsburgh#RI_Providence#SC_Charleston#SD_Pierre#TN_Nashville#TX_Dallas:Houston:San Antonio#UT_Salt Lake City#VT_Burlington#VA_Richmond#WA_Seattle#WV_Charleston#WI_Milwaukee#WY_Cheyenne";
    var CanadaCityListStr = "AB_Calgary:Edmonton#BC_Vancouver#MB_Winnipeg#NB_Fredericton#NF_St. John#NT_Yellowknife#NS_Halifax#NU_Iqaluit#ON_Toronto#PE_Charlottetown#QC_Montreal:Quebec City#SK_Regina:Saskatoon#YT_Whitehorse";
    var stateCityListStr = USCityListStr+"#"+CanadaCityListStr;

    return getCityFromStateOrCountryStr(stateCityListStr, state);
}

function getRandowCityFromCountry(country)
{
 
    var EUCountryCityListStr = "Portugal_Lisbon#Spain_Barcelona:Madrid#France_Paris#Italy_Rome:Florence:Venice#England_London#Scotland_Glasgow#Ireland_Dublin#Belgium_Brussels#Netherlands_Amsterdam#Germany_Berlin#Switzerland_Zurich:Geneva#Czech Republic_Prague#Poland_Warsaw#Hungary_Budapest#Austria_Vienna#Slovenia_Ljubljana#Croatia_Zagreb#Serbia_Belgrade#Romania_Bucharest#Ukraine_Kiev#Denmark_Copenhagen#Sweden_Stockholm#Norway_Oslo#Iceland_Reykjavik#Finland_Helsinki#Russia_Moscow:St. Petersburg#Turkey_Istanbul";
    var ASCountryCityListStr = "Mongolia_Ulan Bator#China_Hong Kong:Beijing:Shanghai#Kazakhstan_Astana#Uzbekistan_Tashkent#Kyrgyzstan_Bishkek#Tajikistan_Dushambe#Turkmenistan_Ashkhabad#India_Delhi:Mumbai#Sri Lanka_Colombo#Nepal_Kathmandu#Bhutan_Thimphu#Bangladesh_Dhaka#Myanmar_Yangon#Laos_Vientiane#Thailand_Bangkok#Cambodia_Siem Reap:Phnom Penh#Vietnam_Ho Chi Minh City#Malaysia_Kuala Lumpur#Singapore_Singapore#Philippines_Manila#Taiwan_Taipei#Japan_Tokyo#North Korea_Pyongyang#South Korea_Seoul#Indonesia_Jakarta:Borneo:Sumatra#Papua New Guinea_Port Moresby#East Timor_Dili";
    var MCACountryCityListStr = "Mexico_Mexico City:Puerto Vallarta:Acapulco:Cancun:Mazatlan#Guatemala_Guatemala City:Antigua#Belize_Belize City#Honduras_Tegucigalpa #El Salvador_San Salvador#Costa Rica_San Jose#Nicaragua_Managua:Granada#Panama_Panama City";
    var CNCountryCityListStr = "Antigua_St. John's#Anguilla_The Valley#Aruba_Oranjestad#Bahamas_Nassau:Freeport#Barbados_Bridgetown#Bermuda_Hamilton#Bonaire_Kralendijk#Cayman Islands_George Town#Curacao_Willemstad#Cuba_Havana#Dominican Republic_Santo Domingo#Grenada_St. George's#Guadeloupe_Basse-Terre#Haiti_Port-Au-Prince#Jamaica_Kingston:Montego Bay#Puerto Rico_San Juan:Ponce#St. Kitts_Basseterre#St. Lucia_Castries#St. Martin/St. Maarten_Philipsburg:Marigot#St. Vincent and the Grenadines_Kingstown#Trinidad & Tobago_Port of Spain#Turks & Caicos_Providenciales#U.S. Virgin Islands_Charlotte Amalie#Dominica_Roseau#Martinique_Fort-de-France";
    var SACountryCityListStr = "Colombia_Bogotá:Cartagena#Venezuela_Caracas#Guyana_Georgetown#Suriname_Paramaribo#French Guinea_Cayenne#Ecuador_Quito#Peru_Lima#Brazil_Rio de Janeiro#Bolivia_La Paz:Sucre#Chile_Santiago#Argentina_Buenos Aires#Paraguay_Asunción#Uruguay_Montevideo";
    var AFCountryCityListStr = "Morocco_Marrakesh:Casablanca#Algeria_Algiers#Tunisia_Tunis#Libya_Tripoli#Egypt_Cairo#Sudan_Khartoum#Chad_N'Djamena#Niger_Nramey#Mali_Bamako#Mauritania_Nouakchott#Western Sahara_El Aaiún#Senegal_Dakar#Gambia_Banjul#Guinea-Bissau_Bissau#Guinea_Conakry#Sierra Leone_Freetown#Liberia_Monrovia#Ivory Coast_Abidjan#Ghana_Accra#Burkina Faso_Ouagadougou#Togo_Lomé#Benin_Cotonou:Porto-Novo#Nigeria_Abuja#Cameroon_Yaoundé#Equatorial Guinea_Malabo#Central African Republic_Bangui#Sudan_Khartoum#Eritrea_Asmara#Ethiopia_Addis Ababa#Djibouti_Djibouti#Somalia_Mogadishu#Uganda_Kampala#Gabon_Libreville#São Tomé and Príncipe_São Tomé#Republic of Congo_Brazzaville#Democratic Republic of the Congo_Kinshasa #Rwanda_Kigali#Kenya_Nairobi#Burundi_Bujumbura#Tanzania_Dar es Salaam#Malawi_Lilongwe#Zambia_Lusaka#Angola_Luanda#Namibia_Windhoek#Botswana_Gaborone#Zimbabwe_Harare#Mozambique_Maputo#South Africa_Cape Town:Johannesburg#Lesotho_Maseru#Swaziland_Pretoria Mbabane#Madagascar_Antananarivo";
    var ANZSPCountryCityListStr = "Australia_Sydney:Melbourne#New Zealand_Wellington:Christchurch#New Caledonia_Noumea#Vanuatu_Port-Vila#Fiji_Suva#Tonga_Tongatapu#Wallis and Futana_Uvea#Samoa_Pago Pago";
    var countryCityListStr = EUCountryCityListStr+"#"+ASCountryCityListStr+"#"+MCACountryCityListStr+"#"+CNCountryCityListStr+"#"+SACountryCityListStr+"#"+AFCountryCityListStr+"#"+ANZSPCountryCityListStr;
    return getCityFromStateOrCountryStr(countryCityListStr, country);
}

function getCityFromStateOrCountryStr(stateCityListStr, stateOrCountryStr)
{
   cityfromStOrCountry = null;
   var stateCityList = stateCityListStr.split("#");
   //alert("No of states in US ::"+stateCityList.length+"::State"+stateOrCountryStr);
   
   
   for(i = 0; i < stateCityList.length; i++)
   {
   	
      //alert("State Info ::"+stateCityList[i]);
      if( stateCityList[i].indexOf(stateOrCountryStr) == 0 )
      {
      		
      	 var stateOrCountryInfo =  stateCityList[i].split("_");
      	 var cities = stateOrCountryInfo[1].split(":");	
      	 //alert("Cities Info ::"+cities[0]);
      		
      	  if(cities.length > 1)
      	  {
      	     cityfromStOrCountry = cities[get_random(cities.length)];
      	  }
      	  else{
      	     cityfromStOrCountry = cities[0];
      	  }
      	  //alert("Final city::"+cityfromStOrCountry);
      	  return cityfromStOrCountry;
      }
   
   }
   return cityfromStOrCountry;
}



  $(document).ready(function(){

    function countChecked(activeTab) {
      var hotelChk = $("#frm_bookHotels :input:checked").size();
      var flightsChk = $("#frm_bookFlights :input:checked").size();
      var carsChk = $("#frm_bookCars :input:checked").size();
      var cruisesChk = $("#frm_bookCruises :input:checked").size();

      if( activeTab == "hotels" ){
      	$("#hotelsVendorCount").html("<span>"+hotelChk+"</span>" + (hotelChk == 1 ? " partner" : " partners") + " checked");
        if(hotelChk == 0){
            $("#hotelsPopupBlkMsg").text("Please check at least one partner");
            $("#hotelsPopupBlkMsg").addClass("attention");
        }else{
            $("#hotelsPopupBlkMsg").text("Please turn off pop-up blockers");
            $("#hotelsPopupBlkMsg").removeClass("attention");
        }
      }else if( activeTab == "flights" ){
      	$("#flightsVendorCount").html("<span>"+flightsChk+"</span>" + (flightsChk == 1 ? " partner" : " partners") + " checked");
        if(flightsChk == 0){
            $("#flightsPopupBlkMsg").text("Please check at least one partner");
            $("#flightsPopupBlkMsg").addClass("attention");
        }else{
            $("#flightsPopupBlkMsg").text("Please turn off pop-up blockers");
            $("#flightsPopupBlkMsg").removeClass("attention");
        }
      }else if( activeTab == "cars" ){
      	$("#carsVendorCount").html("<span>"+carsChk+"</span>" + (carsChk == 1 ? " partner" : " partners") + " checked");
        if(carsChk == 0){
            $("#carsPopupBlkMsg").text("Please check at least one partner");
            $("#carsPopupBlkMsg").addClass("attention");
        }else{
            $("#carsPopupBlkMsg").text("Please turn off pop-up blockers");
            $("#carsPopupBlkMsg").removeClass("attention");
        }
      }else if( activeTab == "cruises" ){
      	$("#cruisesVendorCount").html("<span>"+cruisesChk+"</span>" + (cruisesChk == 1 ? " partner" : " partners") + " checked");
        if(cruisesChk == 0){
            $("#cruisesPopupBlkMsg").text("Please check at least one partner");
            $("#cruisesPopupBlkMsg").addClass("attention");
        }else{
            $("#cruisesPopupBlkMsg").text("Please turn off pop-up blockers");
            $("#cruisesPopupBlkMsg").removeClass("attention");
        }
      }

    }
    countChecked("hotels");
    countChecked("flights");
    countChecked("cars");
    countChecked("cruises");

    $("#frm_bookHotels input:checkbox").bind("click", function(e){
	countChecked("hotels");
    });
    
    $("#frm_bookFlights input:checkbox").bind("click", function(e){
	countChecked("flights");
    });  
    
    $("#frm_bookCars input:checkbox").bind("click", function(e){
	countChecked("cars");
    }); 
    
    $("#frm_bookCruises input:checkbox").bind("click", function(e){
	countChecked("cruises");
    });    

  });



    var btvl_distance = 200;	
    var btvl_gatewayCity = "btvl_gatewayCity";
    $(document).ready(function(){

        var gatewayCookie = get_btCookie(btvl_gatewayCity);
        if( gatewayCookie == "" || gatewayCookie == null )
        {
            var googleClientLocation = google.loader.ClientLocation;
            if (googleClientLocation != null &&
                googleClientLocation.address.country_code == "US" ) {
                var latitude = googleClientLocation.latitude;
                var longitude = googleClientLocation.longitude;
                //alert("Latitude::"+latitude);
                //alert("Longitude "+longitude);
                $.getJSON("http://www.budgettravel.com/bt-dynsrch/realdeals/getNearestCityByGeocode.do?latitude="+latitude+"&longitude="+longitude+"&distance="+btvl_distance+"&callback=?",
                function(json){
                    if( json.cityGeocode.cityName != undefined && json.cityGeocode.state != undefined){
                        var dynGatewayCity = json.cityGeocode.cityName+", "+ json.cityGeocode.state;
                        dynGatewayCity = dynGatewayCity.toUpperCase();
                        $('#DepCity').val(dynGatewayCity);
                        set_btCookie(btvl_gatewayCity,dynGatewayCity,1);
                    }else{
                        set_btCookie(btvl_gatewayCity,"noGatewayCity",1);
                    }
                }
            );
            }else{
                set_btCookie(btvl_gatewayCity,"noLatLong",1);
            }
        }else if( gatewayCookie != "noLatLong" && gatewayCookie != "noGatewayCity" ){
            $('#DepCity').val(gatewayCookie);
        }
    });

function set_btCookie(c_name,value,expiredays)
{
 //alert("set btCookie::name::"+c_name+":value::"+value+"::expiredays::"+expiredays);
 var today = new Date();
 var expire = new Date();
 //alert("expire date"+expire.toGMTString());
 expire.setTime(today.getTime() + 3600000*24*expiredays);
 //alert("expire date after"+expire.toGMTString());
 document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+expire.toGMTString()) + "; path=/";
}

function get_btCookie(c_name)
{
if (document.cookie.length>0)
{
    c_start=document.cookie.indexOf(c_name + "=");
    if (c_start!=-1)
    {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
    }
}
return "";
}