function validateStepOne(){
	ClearError()
	if($('ReservationDate').get('value') == 'mm/dd/yyyy'){
		ShowError($('ReservationDate'), '<p>Please select a valid date.</p>');
	}else{
		if(new Date($('ReservationDate').get('value')) < new Date){
			ShowError($('ReservationDate'), '<p>The date you slected is in the past.</p>');
		}else{
			if(!isNaN($('ReservationForm').getElement('input[name=Passengers]').get('value').toInt())){
				if($('ReservationForm').getElement('input[name=Passengers]').get('value').toInt() > 14 || $('ReservationForm').getElement('input[name=Passengers]').get('value').toInt() < 1){
					//Error on Passengers Not a Valid Integer
					ShowError($('ReservationForm').getElement('input[name=Passengers]'), '<p>Please enter a valid integer.</p><p>The value must be between 1 and 14</p>');
				}else{
					if($('ReservationForm').getElement('input[name=Email]').get('value') == ''){
						//Error on Required Field
						ShowError($('ReservationForm').getElement('input[name=Email]'), '<p>This field is required.</p>');
					}else{
						var filter  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
						if (!filter.test($('ReservationForm').getElement('input[name=Email]').get('value'))) {
							ShowError($('ReservationForm').getElement('input[name=Email]'), '<p>Please provide a valid email address.</p>');
						}else{
							validateAirportDropOffService()
							if(!isError){
								validateAirportPickupService()
							}
						}
					}
				}
			}else{
				//Error on Passengers Not a Valid Integer
				ShowError($('ReservationForm').getElement('input[name=Passengers]'), '<p>Please enter a valid integer.</p><p>The value must be between 1 and 14</p>');
			}
		}
	}
}


function validateAirportDropOffService(){
	if(!$('ReservationForm').getElement('input[name=AirportDropOff]').get('checked') && !$('ReservationForm').getElement('input[name=AirportPickup]').get('checked')){
	//Error on both Checkboxes unchecked
	ShowError($('ReservationForm').getElement('input[name=AirportDropOff]'), '<p>Either Airport Drop-off Service or Airport Pickup Service must be checked.</p>');
	}else{
		if($('ReservationForm').getElement('input[name=AirportDropOff]').get('checked')){
			if($('ReservationForm').getElement('select[name=PickupCountry]').get('value') == 'Country'){
				//Error on Country Unchanged
				ShowError($('ReservationForm').getElement('select[name=PickupCountry]'), '<p>This field is required.</p>');
			}else{
				if($('ReservationForm').getElement('input[name=PickupLocation]').get('value') == 'City'){
					//Error on City Unchanged
					ShowError($('ReservationForm').getElement('input[name=PickupLocation]'), '<p>This field is required.</p>');
				}else{
					if($('ReservationForm').getElement('input[name=AirportDropOffCode]').get('value') == 'Select Your Airport...' || $('ReservationForm').getElement('input[name=AirportDropOffCode]').get('value') == ''){
						//Error on Airport Code Unchanged
						ShowError($('ReservationForm').getElement('input[name=AirportDropOffCode]'), '<p>This field is required.</p>');
					}
				}
			}
		}
	}
}
function validateStepTwo(){
	ClearError()
	var myFx = new Fx.Scroll(window);
	if($('ReservationForm').getElement('input[name=Name]').get('value') == ''){
		//Error on Required Field
		ShowError($('ReservationForm').getElement('input[name=Name]'), '<p>This field is required.</p>');
		myFx.toTop();
	}else{
		if($('ReservationForm').getElement('input[name=Email]').get('value') == ''){
			//Error on Required Field
			ShowError($('ReservationForm').getElement('input[name=Email]'), '<p>This field is required.</p>');
			myFx.toTop();
		}else{
			if($('ReservationForm').getElement('input[name=Email_Verification]').get('value') != $('ReservationForm').getElement('input[name=Email]').get('value')){
				//Error on Mismatched Email
				ShowError($('ReservationForm').getElement('input[name=Email_Verification]'), '<p>The value in this field does not match the one above.</p>');
				myFx.toTop();
			}else{
				if(!formIsEmail($('ReservationForm').getElement('input[name=Email]'))){
					ShowError($('ReservationForm').getElement('input[name=Email]'), '<p>Please provide a valid email.</p>');
					myFx.toTop();
				}else{
					if($('ReservationForm').getElement('input[name=Phone]').get('value') == ''){
						//Error on Required Field
						ShowError($('ReservationForm').getElement('input[name=Phone]'), '<p>This field is required.</p>');
						myFx.toTop();
					}else{
						if($('ReservationForm').getElement('select[name=OftenNumeric]').get('value') == ''){
							//Error on Required Field
							ShowError($('ReservationForm').getElement('select[name=OftenNumeric]'), '<p>This field is required.</p>');
						}else{
							if($('ReservationForm').getElement('select[name=OftenInterval]').get('value') == ''){
								//Error on Required Field
								ShowError($('ReservationForm').getElement('select[name=OftenInterval]'), '<p>This field is required.</p>');
							}else{
							
							}
						}
					}
				}
			}
		}
	}
}

function validateAirportPickupService(){
	if($('ReservationForm').getElement('input[name=AirportPickup]').get('checked')){
		/*
		if($('ReservationForm').getElement('input[name=AirportPickupState]').get('value') == 'State' || $('ReservationForm').getElement('input[name=AirportPickupState]').get('value') == ''){
			//Error on State Unchanged
			ShowError($('ReservationForm').getElement('input[name=AirportPickupState]'), '<p>This field is required.</p>');
		}else{
		*/
			if($('ReservationForm').getElement('input[name=AirportPickupCode]').get('value') == 'Select Your Airport...' || $('ReservationForm').getElement('input[name=AirportPickupCode]').get('value') == ''){
				//Error on Airport Code Unchanged
				ShowError($('ReservationForm').getElement('input[name=AirportPickupCode]'), '<p>This field is required.</p>');
			}else{
				if($('ReservationForm').getElement('select[name=DropOffCountry]').get('value') == 'Country'){
					//Error on Country Unchanged
					ShowError($('ReservationForm').getElement('select[name=DropOffCountry]'), '<p>This field is required.</p>');
				}else{
					if($('ReservationForm').getElement('input[name=DropOffLocation]').get('value') == 'City'){
						//Error on City Unchanged
						ShowError($('ReservationForm').getElement('input[name=DropOffLocation]'), '<p>This field is required.</p>');
					}
				}	
			}
		//}
	}
}

function StepOne(){
	var myRequest = new Request({method: 'get', url: 'StepOne.asp' + window.location.search, onSuccess: function(){
		$$('input.DatePicker').each( function(el){
			new DatePicker(el);
		});
		$$('select.comboBoo').each( function(el){
			new mooCombo(el);
		});
		$$('.Location').each(function(el){
			el.addEvent('focus', function(){
				if(el.get('value') == 'City / State'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'City / State');
				}
			});
			//new Autocompleter.Request.HTML(el, 'query.asp', {'minLength': 1, 'indicatorClass': 'autocompleter-loading'});
			new Autocompleter.Request.JSON(el, 'Locations/Locations/Account/TransferCityAutoComplete.ashx', {'indicatorClass': 'autocompleter-loading'});
		});
		$$('.States').each(function(el){
			el.addEvent('focus', function(){
				if(el.get('value') == 'State'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'State');
				}
			});
			//new Autocompleter.Request.HTML(el, 'state.asp', {'minLength': 2, 'indicatorClass': 'autocompleter-loading', 'selectMode': 'type-ahead'});
		});
		$$('.Airports').each(function(el){
			if(el.get('name') == 'AirportDropOffCode') {
				elState = 'AirportDropOffState';
				elCountry = 'PickupCountry'
			}else{
				elState = 'AirportPickupState';
				elCountry = 'DropOffCountry'
			}
			el.addEvent('focus', function(){
				if(el.get('value') == 'Select an Airport'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'Select an Airport');
				}
			});
			new Autocompleter.Request.JSON(el, 'Locations/Locations/Account/AirportsAutoComplete.ashx', {'indicatorClass': 'autocompleter-loading'});
		});
		
		
		FancyForm.start( 0, {
			onSelect: function(chk){
				checkboxChangeState(chk.inputElement.getProperty('name'), true);
			},onDeselect: function(chk){
				checkboxChangeState(chk.inputElement.getProperty('name'), false);
			}
		});
		$('ReservationForm').getElement('input[name=Passengers]').addEvent('keypress', function(event){
			event = new Event(event);
            var validChars = '0123456789';
            if (event.key.length == 1 && !validChars.contains(event.key)){
                event.stop();
			}
		});
		if (Browser.Engine.trident) {
			$$('.formboxGetStarted').each(function(el){
				el.setStyle('top', '-1px');
			});
		}
		checkboxChangeState('AirportPickup', false);
		$('btnContinue').addEvent('click', function(){
			if(step == 1){
				validateStepOne();
			}else if(step == 2){
				validateStepTwo();
			}
		
			if(!isError){
				switch(step){
					case 2:
						var data = '';
						$('StepTwo').getElements('input').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						$('StepTwo').getElements('select').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						$('StepTwo').getElements('textarea').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
					break;
					case 3:
						var data = '';
						$('StepThree').getElements('input').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						$('StepThree').getElements('select').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						$('StepThree').getElements('textarea').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
					break;
					default:
						var data = '';
						$('StepOneA').getElements('input').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						$('StepOneA').getElements('select').each(function(itm){
							data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
						});
						
						if($('ReservationForm').getElement('input[name=AirportDropOff]').get('checked')){
							$('chkAirportDropOff').getElements('input').each(function(itm){
								data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
							});
							$('chkAirportDropOff').getElements('select').each(function(itm){
								data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
							});
						}
						if($('ReservationForm').getElement('input[name=AirportPickup]').get('checked')){
							$('chkAirportPickup').getElements('input').each(function(itm){
								data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
							});
							$('chkAirportPickup').getElements('select').each(function(itm){
								data = data + '&' + itm.get('name') + '=' + escape(itm.get('value'));
							});
						}
					break;
				}
				var req = new Request({method: 'post', url: 'saveForm.asp', data: 'step=' + step + data + '&ContactFormID=' + ContactFormID, onFailure: function(){
					DataError();
				}, evalResponse: true}).send();

			}
		});
		
	}, onComplete: function(responseText){
		$$('.forms')[0].set('html', responseText);
	}}).send();

	
	
	
}

function StepTwo(){
	var d = new Date();
	var t = d.getTime();
	var myRequest = new Request({method: 'get', url: 'StepTwo.asp', onSuccess: function(){
			
		$$('select.comboBoo').each( function(el){
			new mooCombo(el);
		});
		$$('.Country').each(function(el){
			el.addEvent('focus', function(){
				if(el.get('value') == 'Country'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'Country');
				}
			});
			new Autocompleter.Request.HTML(el, 'country.asp', {'minLength': 1, 'indicatorClass': 'autocompleter-loading', 'selectMode': 'type-ahead'});
		});
		$$('.States').each(function(el){
			el.addEvent('focus', function(){
				if(el.get('value') == 'State'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'State');
				}
			});
			new Autocompleter.Request.HTML(el, 'state.asp', {'minLength': 2, 'indicatorClass': 'autocompleter-loading', 'selectMode': 'type-ahead'});
		});
		
		$$('.Location').each(function(el){
			el.addEvent('focus', function(){
				if(el.get('value') == 'City'){
					el.set('value', '');
				}
			});
			el.addEvent('blur', function(){
				if(el.get('value') == ''){
					el.set('value', 'City');
				}
			});
			new Autocompleter.Request.HTML(el, 'query.asp', {'minLength': 1, 'indicatorClass': 'autocompleter-loading', 'selectMode': 'type-ahead'});
		});
		$('ReservationForm').getElement('input[name=Address]').addEvent('focus', function(){
			if($('ReservationForm').getElement('input[name=Address]').get('value') == 'Street'){
				$('ReservationForm').getElement('input[name=Address]').set('value', '');
			}
		});
		$('ReservationForm').getElement('input[name=Address]').addEvent('blur', function(){
			if($('ReservationForm').getElement('input[name=Address]').get('value') == ''){
				$('ReservationForm').getElement('input[name=Address]').set('value', 'Street');
			}
		});
		$('ReservationForm').getElement('input[name=Apt]').addEvent('focus', function(){
			if($('ReservationForm').getElement('input[name=Apt]').get('value') == 'Apt.'){
				$('ReservationForm').getElement('input[name=Apt]').set('value', '');
			}
		});
		$('ReservationForm').getElement('input[name=Apt]').addEvent('blur', function(){
			if($('ReservationForm').getElement('input[name=Apt]').get('value') == ''){
				$('ReservationForm').getElement('input[name=Apt]').set('value', 'Apt.');
			}
		});
		$('ReservationForm').getElement('input[name=Zip]').addEvent('focus', function(){
			if($('ReservationForm').getElement('input[name=Zip]').get('value') == 'Postal Code'){
				$('ReservationForm').getElement('input[name=Zip]').set('value', '');
			}
		});
		$('ReservationForm').getElement('input[name=Zip]').addEvent('blur', function(){
			if($('ReservationForm').getElement('input[name=Zip]').get('value') == ''){
				$('ReservationForm').getElement('input[name=Zip]').set('value', 'Postal Code');
			}
		});
		$('ReservationForm').getElement('input[name=Email]').set('value', Email);
		$('ReservationForm').getElement('input[name=Phone]').addEvent('keypress', function(event){
			event = new Event(event);
            var validChars = '0123456789-()+. ';
            if (event.key.length == 1 && !validChars.contains(event.key)){
                event.stop();
			}
		});
		$('imgStepOne').set('src', 'images/home/b-1.gif');
		$('imgStepTwo').set('src', 'images/home/bb-2.gif');
		$('imgStepThree').set('src', 'images/home/b-3.gif');
		
		$('btnContinue').set('src', 'images/home/btn_submit.gif');

		$('StepOneText').set('class', 'inactive');
		$('StepTwoText').set('class', 'active');
		$('StepThreeText').set('class', 'inactive');
	
		step = 2;
		
	}, onComplete: function(responseText){
		$$('.forms')[0].set('html', responseText);
	}}).send('d=' + t);
	
}

function StepThree(){
	var d = new Date();
	var t = d.getTime();
	var myRequest = new Request({method: 'get', url: 'StepThree.asp', onSuccess: function(){
		$$('select.comboBoo').each( function(el){
			new mooCombo(el);
		});
	
		$('imgStepOne').set('src', 'images/home/b-1.gif');
		$('imgStepTwo').set('src', 'images/home/b-2.gif');
		$('imgStepThree').set('src', 'images/home/bb-3.gif');
	
		$('btnContinue').set('src', 'images/home/btn_submit.gif');
	
		$('StepOneText').set('class', 'inactive');
		$('StepTwoText').set('class', 'inactive');
		$('StepThreeText').set('class', 'active');
	
		step = 3;
		
	}, onComplete: function(responseText){
		$$('.forms')[0].set('html', responseText);
	}}).send('d=' + t);

}
function Done(){
	$('specialTD').addClass('thankYou');
	$$('.forms')[0].set('html', '');
	$$('.comboBoo-label').each(function(itm){
		itm.destroy();
	});
	$$('.comboBoo-list').each(function(itm){
		itm.destroy();
	});
	$('ContactForm').setStyle('display', 'none');
	$('ThankYou').setStyle('display', 'block');
	
		
	
		$('imgStepOne').set('src', 'images/home/b-1.gif');
		$('imgStepTwo').set('src', 'images/home/b-2.gif');
		$('imgStepThree').set('src', 'images/home/bb-3.gif');
	
		$('btnContinue').set('src', 'images/home/btn_submit.gif');
	
		$('StepOneText').set('class', 'inactive');
		$('StepTwoText').set('class', 'inactive');
		$('StepThreeText').set('class', 'active');
	step = '';
	var myFx = new Fx.Scroll(window).toTop();
}
function DataError(){
	alert('An data connection error has occurred! Please try again later.');
}

function ShowError(el, error){
	if(el.getCoordinates().width < 33){
		var pos = el.getCoordinates().width + 33;	
	}else{
		var pos = el.getCoordinates().width;	
	}
	$$('.err')[0].set('html', error);
	$('divError').setStyles({'top': el.getCoordinates().top - $('divError').getCoordinates().height, 'left': el.getCoordinates().right - pos, 'visibility': 'visible', 'opacity': 1, 'z-index': 900});
	el.addEvent('blur', function(){
		ClearError()
	});
	isError = true;
}
function ClearError(){
	$$('.err')[0].set('html', '');
	$('divError').setStyles({'top': 0, 'left': 0, 'opacity': 0, 'z-index': 900});
	isError = false;
}
function formIsEmail(elem) {
	var field = elem.value;
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return regex.test(field);
}

