/* 
	======================================================================
   	
	File        : 
	Description : 
	Version     : 
	Created     : 
	
	Copyright (c) 2010 | Design Squared | All Rights Reserved.
	
	======================================================================
*/

/*
	==================================================
	Initiate Site-Wide jQuery Functions
	==================================================
*/

$(document).ready(function () {
	
	/*==================================================
	  _blank XHTML Fix
	==================================================*/
	
	$('a[rel=external]').attr('target', '_blank');
	
	/*==================================================
	  Activate E-Postcard Pop-Up
	==================================================*/
	
	$('.ePostcard').click(function (e) {
		e.preventDefault();
		var postcardLink = $(this).attr('href');
		window.open(postcardLink, 'ePostcard', 'width=650, height=600');
	});
	
	/*==================================================
	  Internet Explorer Hacks
	==================================================*/
	
	if ($.browser.msie) {
		$('#jsddm li ul li a').css({
			'filter' : 'alpha(opacity=90)'														 
		});
	}
	
	/*==================================================
	  YouTube Video Page
	==================================================*/
	
	if ($('.video-watch').length){
		$('.video-watch').click(function(){
			$('.video-watch').removeClass('selected');
			$(this).addClass('selected');
			var videoId = $(this).attr('rel');
			$('#video-player').html('<iframe width="640" height="390" src="http://www.youtube.com/embed/'+$(this).attr('rel')+'?rel=0" frameborder="0" allowfullscreen></iframe>');
			return false;
		});
	}
	
	/*==================================================
	  Handle Flight + Hotel and Hotel Only Forms
	==================================================*/
	
	var quickBook = 
	{
		hotelDate: null,
		flightDate: null,
		/*==================================================
		  Initialize Forms
		==================================================*/
		init: function(){
			// Hotel Only //
			$('#hotelOnly_link').addClass('active').click(function(e){
				e.preventDefault();
				quickBook.rotate('hotelOnly');
			});
			$('#hotelOnly_form').submit(function(e) {
				e.preventDefault();
				quickBook.hotelOnly_validate();
			});
			
			// Flight + Hotel //
			$('#flightHotel_link').click(function(e){
				e.preventDefault();
				quickBook.rotate('flightHotel');
			});
			$('#flightHotel_country').change(function(){
				var active_country = $('#flightHotel_country').val();
				quickBook.flightHotel_origin(active_country);
			});
			$('#flightHotel_form').submit(function(e) {
				e.preventDefault();
				quickBook.flightHotel_validate();
			});
			
			// Load Form(s) //
			quickBook.load();
		},
		/*==================================================
		  Load Forms / Activate DatePicker Plugin
		==================================================*/
		load: function(){
			// Hotel Only //
			quickBook.hotelDate = new Date().addDays(1).asString();
			$('#hotelOnly_date')
				.datePicker(
					{
						clickInput : true,
						startDate : quickBook.hotelDate
					}
				).val(
					quickBook.hotelDate
				).trigger(
					'change'
				).bind(
					'dpClosed',
					function(e, selected){ 
						quickBook.hotelDate = new Date(selected[0]).asString();
					}
				);
			$('#hotelOnly_container').css('display', 'block');
			
			// Flight + Hotel //
			quickBook.flightDate = new Date().addDays(3).asString();
			$('#flightHotel_date')
				.datePicker(
					{
						clickInput : true,
						startDate : quickBook.flightDate
					}
				).val(
					quickBook.flightDate
				).trigger(
					'change'
				).bind(
					'dpClosed',
					function(e, selected){ 
						quickBook.flightDate = new Date(selected[0]).asString();
					}
				);
		},
		/*==================================================
		  Rotate Between Forms
		==================================================*/
		rotate: function(tab){
			// Hotel Only //
			if (tab == 'hotelOnly') {
				if ($('#flightHotel_container').css('display') != 'none'){
					$('#flightHotel_container').fadeOut('fast', function(){
						$('#flightHotel_link').removeClass('active');
						$('#hotelOnly_link').addClass('active');
						$('#hotelOnly_container').fadeIn('fast');
					});
				} else {
					// Do Nothing
				}
			} 
			// Flight + Hotel //
			if (tab == 'flightHotel') {
				if ($('#hotelOnly_container').css('display') != 'none'){
					$('#hotelOnly_container').fadeOut('fast', function(){
						$('#hotelOnly_link').removeClass('active');
						$('#flightHotel_link').addClass('active');
						$('#flightHotel_container').fadeIn('fast');
					});
				} else {
					// Do Nothing
				}
			}	
		},
		/*==================================================
		  Display City based on Country for Flight + Hotel
		==================================================*/
		flightHotel_origin: function(country){
			// USA Cities //
			var usaCity = [
				'ALBANY, NY','ALBUQUERQUE, NM','ALLENTOWN, PA','ATLANTA, GA','AUSTIN, TX',
				'BALTIMORE, MD','BIRMINGHAM, AL','BOSTON, MA','BUFFALO, NY','BURLINGTON, VT',
				'CHARLESTON, SC','CHARLOTTE, NC','CHICAGO-O\'HARE, IL','CINCINNATI, OH','CLEVELAND, OH','COLUMBUS, OH',
				'DALLAS-FT. WORTH, TX','DENVER, CO','DETROIT-WAYNE COUNTY-APO, MI',
				'FT LAUDERDALE, FL',
				'HARRISBURG, PA','HARTFORD/SPRNGFIELD, CT','HOUSTON - INTERCONT, TX',
				'INDIANAPOLIS, IN',
				'JACKSONVILLE, FL',
				'KANSAS CITY, MO',
				'LAS VEGAS, NV','LOS ANGELES, CA',
				'MANCHESTER, NH','MEMPHIS, TN','MIAMI, FL','MILWAUKEE, WI','MINNEAPOLIS-ST. PAUL, MN','MOBILE, AL',
				'NASHVILLE, TN','NEW ORLEANS, LA','NEW YORK CITY (ALL AIRPORTS), NY','NEW YORK KENNEDY APO, NY','NEW YORK, NEWARK,NJ, NJ','NEW YORK,LAGUARDIA, NY','NORFOLK, VI',
				'OAKLAND, CA','OKLAHOMA CITY, OK','OMAHA, NE','ORLANDO, FL',
				'PHILADELPHIA, PA','PHOENIX, AZ','PITTSBURGH, PA','PORTLAND, OR','PORTLAND, ME','PROVIDENCE, RI',
				'RALEIGH DURHAM, NC','ROCHESTER, MN',
				'SACRAMENTO, CA','SAN ANTONIO, TX','SAN DIEGO, CA','SAN FRANCISCO, CA','SCRANTON, PA','SEATTLE TACOMA, WA','ST LOUIS, MO','SYRACUSE, NY',
				'TALLAHASSEE, FL','TAMPA, FL','TRI-CITY AIRPORT, TN','TULSA, OK','TUSCON, AZ',
				'WASHINGTON- DULLES APO, DC','WASHINGTON-NATIONAL, DC'
			];
			var usaAirport = [
				'ALB','ABQ','ABE','ATL','AUS',
				'BWI','BHM','BOS','BUF','BTV',
				'CHS','CLT','ORD','CVG','CLE','CMH',
				'DFW','DEN','DTW',
				'FLL',
				'HAR','BDL','IAH',
				'IND',
				'JAX',
				'MCI',
				'LAS','LAX',
				'MHT','MEM','MIA','MKE','MSP','MOB',
				'BNA','MSY','NYC','JFK','EWR','LGA','ORF',
				'OAK','OKC','OMA','MCO',
				'PHL','PHX','PIT','PDX','PWM','PVD',
				'RDU','RST',
				'SAC','SAT','SAN','SFO','SCR','SEA','STL','SYR',
				'TLH','TPA','TRI','TUL','TUS',
				'IAD','DCA'
			];
			
			// Canada Cities //
			var cndCity = ['CALGARY, CA','EDMONTON, CA','HALIFAX, CA','MONTREAL-DORVAL APO, PQ','OTTAWA, CA','QUEBEC CITY, CA','REGINA, CA','SASKATOON, CA','TORONTO, ON','VANCOUVER, CA','WINNIPEG, CA'];
			var cndAirport = ['YYC','YEG','YHZ','YUL','YOW','YQB','YQR','YXE','YYZ','YVR','YWG'];
			
			// Mexico Cities //
			var mexCity = ['ACAPULCO, MX','CIUDAD JUAREZ, MX','GUADALAJARA, MX','HERMOSILLO, MX','IXTAPA, MX','MERIDA, MX','MEXICO CITY, MX','MONTERREY, MX','PUEBLA, MX','PUERTO ESCONDIDO, MX','PUERTO VALLARTA, MX','TIJUANA, MX','TUXTLA GUTIERREZ, MX','VERACRUZ, MX','VILLA HERMOSA, MX'];
			var mexAirport = ['ACA','CJS','GDL','HMO','ZIH','MID','MEX','MTY','PBC','PXM','PVR','TIJ','TGZ','VER','VSA'];
			
			// Build Select Object Based on Country Function //
			function build_select(city,airport){
				var options = '';
				for (var i = 0; i < city.length; i++) {
        			options += '<option value="' + airport[i] + '">' + city[i] + '</option>';
      			}
      			$("#flightHotel_city").html(options);
			}
			
			// Update City List //
			if (country == 'canada'){
				build_select(cndCity,cndAirport);
			} 
			else if (country == 'mexico'){
				build_select(mexCity,mexAirport);
			}
			else if (country == 'usa'){
				build_select(usaCity,usaAirport);
			}
			else {
				options = '<option value="" selected="selected">Select Departure City</option>';
				$("#flightHotel_city").html(options);
			}
		},
		/*==================================================
		  Validate Hotel Only Form
		==================================================*/
		hotelOnly_validate: function(){
			if ($('#hotelOnly_date').val() == ''){
				alert('Please Complete All Booking Form Fields');
			}
			else {
				quickBook.hotelOnly_submit();
			}
		},
		/*==================================================
		  Submit Hotel Only Form
		==================================================*/
		hotelOnly_submit: function(){
		
			// Default Month Arrays //
			var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
			var monthNumbers = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
			
			// Format Start Date //
			var startDate = $('#hotelOnly_date').val();
			var startDay = startDate.substr(0,2);
			var startMonth = startDate.substr(3,3);
			var startYear = startDate.substr(7,4);
			
			for (var i=0; i<monthNames.length; i++) {
				if (startMonth == monthNames[i]) {
					startMonth = monthNumbers[i];
					break;
				} else {
					// Do Nothing
				}
			}
			startDate = startMonth+'/'+startDay+'/'+startYear;
			
			// Format End Date //
			var n = $('#hotelOnly_nights').val();
			var nights = parseInt(n);
			var endDate = new Date(quickBook.hotelDate).addDays(nights).asString();
			var endDay = endDate.substr(0,2);
			var endMonth = endDate.substr(3,3);
			var endYear = endDate.substr(7,4);
			
			for (var i=0; i<monthNames.length; i++) {
				if (endMonth == monthNames[i]) {
					endMonth = monthNumbers[i];
					break;
				}
			}
			endDate = endMonth+'/'+endDay+'/'+endYear;
			
			// Update Form Variables //
			$('#checkin').val(startDate);
			$('#checkout').val(endDate);
			$('#nights').val($('#hotelOnly_nights').val());
			$('#adults').val($('#hotelOnly_adults').val());
			$('#children').val($('#hotelOnly_children').val());
			$('#rooms').val($('#hotelOnly_rooms').val());
			
			// Submit Form to Reservation Page //
			$('#hotelOnly_submitForm').submit();
		},
		/*==================================================
		  Validate Flight + Hotel Form
		==================================================*/
		flightHotel_validate: function(){
			if ($('#flightHotel_date').val() == '' || $('#flightHotel_city').val() == ''){
				alert('Please Complete All Booking Form Fields');
			}
			else {
				quickBook.flightHotel_submit();
			}
		},
		/*==================================================
		  Submit Flight + Hotel Form
		==================================================*/
		flightHotel_submit: function(){
			
			// Default Month Arrays //
			var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
			var monthNumbers = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];
			
			// Start Dates //
			var startDate = $('#flightHotel_date').val();
			var startDay = startDate.substr(0,2);
			var startMonth = startDate.substr(3,3);
			var startYear = startDate.substr(7,4);
			
			for (var i=0; i<monthNames.length; i++) {
				if (startMonth == monthNames[i]) {
					startMonth = monthNumbers[i];
					break;
				}
			}
			startDate = startMonth+'/'+startDay+'/'+startYear;
			
			// Format End Date //
			var n = $('#flightHotel_nights').val();
			var nights = parseInt(n);
			var endDate = new Date(quickBook.flightDate).addDays(nights).asString();
			var endDay = endDate.substr(0,2);
			var endMonth = endDate.substr(3,3);
			var endYear = endDate.substr(7,4);
			
			for (var i=0; i<monthNames.length; i++) {
				if (endMonth == monthNames[i]) {
					endMonth = monthNumbers[i];
					break;
				}
			}
			endDate = endMonth+'/'+endDay+'/'+endYear;
			
			
			// Add Form Variables //
			var url = 'http://vacations.travelressystems.com/sc/ws/pricer.cfm';
			url += '?H_HID=338';
			url += '&VNUM=338';
			url += '&I_ID=PLS';
			//url += '&Form.NOROOMS=1';
			url += '&Form.NOROOMS='+$('#flightHotel_rooms').val();
			url += '&QUOTETYPE=AirHotel';
			
			url += '&ORIG='+$('#flightHotel_city').val();
			url += '&TRAVELDATE1='+startDate;
			url += '&TRAVELDATE2='+endDate;
			url += '&ROOM1ADULTS='+$('#flightHotel_adults').val();
			url += '&ROOM1CHNO='+$('#flightHotel_children').val();
			url += '&CH1AGE1=12';
			url += '&CH1AGE2=12';
			
			// Open Flight + Hotel Reservation Window //
			/* alert(url); */
			window.open(url, '_self');
		}
	}
	
	// Initiate Quick Book Form(s) //
	if ($('#quickBook_wrapper').length){
		quickBook.init();
	}
	
});
