jQuery(function($){

	completed = false;

	total_radios = 1;

	$('#travel-form').submit(function() {
		return completed;
	});

	/**************** First Step ****************/
	$('#step-one-button').click(function() {
		if (($('input[name="ship_name"]').val() != '') && ($('input[name="sail_date"]').val() != '') && ($('input[name="group_name"]').val() != '') ) {
			if ((!isNaN(parseFloat($('input[name="male_quad"]').val())) && isFinite($('input[name="male_quad"]').val())) ||
				(!isNaN(parseFloat($('input[name="male_triple"]').val())) && isFinite($('input[name="male_triple"]').val())) ||
				(!isNaN(parseFloat($('input[name="male_double"]').val())) && isFinite($('input[name="male_double"]').val())) ||
				(!isNaN(parseFloat($('input[name="male_single"]').val())) && isFinite($('input[name="male_single"]').val())) ||
				(!isNaN(parseFloat($('input[name="female_quad"]').val())) && isFinite($('input[name="female_quad"]').val())) ||
				(!isNaN(parseFloat($('input[name="female_triple"]').val())) && isFinite($('input[name="female_triple"]').val())) ||
				(!isNaN(parseFloat($('input[name="female_double"]').val())) && isFinite($('input[name="female_double"]').val())) ||
				(!isNaN(parseFloat($('input[name="female_single"]').val())) && isFinite($('input[name="female_single"]').val()))) {
					$('.form-error').css('display', 'none');

					first_step_values = new Array();
					first_step_values['ship_name'] = $('input[name="ship_name"]').val();
					first_step_values['sail_date'] = $('input[name="sail_date"]').val();
					first_step_values['group_name'] = $('input[name="group_name"]').val();
					first_step_values['male_quad'] = $('input[name="male_quad"]').val();
					first_step_values['male_triple'] = $('input[name="male_triple"]').val();
					first_step_values['male_double'] = $('input[name="male_double"]').val();
					first_step_values['male_single'] = $('input[name="male_single"]').val();
					first_step_values['female_quad'] = $('input[name="female_quad"]').val();
					first_step_values['female_triple'] = $('input[name="female_triple"]').val();
					first_step_values['female_double'] = $('input[name="female_double"]').val();
					first_step_values['female_single'] = $('input[name="female_single"]').val();

					male_cabins_booked = false;
					female_cabins_booked = false;

					if ((first_step_values['male_quad'] > 0) || (first_step_values['male_triple'] > 0) || (first_step_values['male_double'] > 0) || (first_step_values['male_single'] > 0)) {
						male_cabins_booked = true;
					}
					if ((first_step_values['female_quad'] > 0) || (first_step_values['female_triple'] > 0) || (first_step_values['female_double'] > 0) || (first_step_values['female_single'] > 0)) {
						female_cabins_booked = true;
					}

					$('#form-section-one').hide();

					$('#second-step').html($('#second-step').html() + '<table id="form-section-two" border="0" cellspacing="5" width="100%"><tr><td colspan="6">&nbsp;</td></tr>');

					section_titles = '<tr><td class="tab1">Person</td><td class="tab1">Title</td><td class="tab1">First Name</td>' +
									 '<td class="tab1">Last Name</td><td class="tab1">Birthday</td><td class="tab1">Chaperone</td></tr>';

					/**************** Male Cabins ****************/
					if (($('input[name="male_quad"]').val() > 0) || ($('input[name="male_triple"]').val() > 0) || ($('input[name="male_double"]').val() > 0) ||
						($('input[name="male_single"]').val() > 0)) {
							$('#form-section-two').html($('#form-section-two').html() + '<tr><td colspan="6" class="tab1" align="center">Male:</td></tr>');

							/**************** Male Quad Cabins ****************/
							if ($('input[name="male_quad"]').val() > 0) {
								print_cabins($('input[name="male_quad"]').val(), 4, 'quad', 'male');
							}

							/**************** Male Triple Cabins ****************/
							if ($('input[name="male_triple"]').val() > 0) {
								print_cabins($('input[name="male_triple"]').val(), 3, 'triple', 'male'); 
							}

							/**************** Male Double Cabins ****************/
							if ($('input[name="male_double"]').val() > 0) {
								print_cabins($('input[name="male_double"]').val(), 2, 'double', 'male');
							}

							/**************** Male Single Cabins ****************/
							if ($('input[name="male_single"]').val() > 0) {
								print_cabins($('input[name="male_single"]').val(), 1, 'single', 'male');
							}							
					}

					/**************** Female Cabins ****************/
					if (($('input[name="female_quad"]').val() > 0) || ($('input[name="female_triple"]').val() > 0) || ($('input[name="female_double"]').val() > 0) ||
						($('input[name="female_single"]').val() > 0)) {
							$('#form-section-two').html($('#form-section-two').html() + '<tr><td colspan="6" class="tab1 second-group" align="center">Female:</td></tr>');

							/**************** Female Quad Cabins ****************/
							if ($('input[name="female_quad"]').val() > 0) {
								print_cabins($('input[name="female_quad"]').val(), 4, 'quad', 'female');
							}

							/**************** Female Triple Cabins ****************/
							if ($('input[name="female_triple"]').val() > 0) {
								print_cabins($('input[name="female_triple"]').val(), 3, 'triple', 'female'); 
							}

							/**************** Female Double Cabins ****************/
							if ($('input[name="female_double"]').val() > 0) {
								print_cabins($('input[name="female_double"]').val(), 2, 'double', 'female');
							}

							/**************** Female Single Cabins ****************/
							if ($('input[name="female_single"]').val() > 0) {
								print_cabins($('input[name="female_single"]').val(), 1, 'single', 'female');
							}							
					}

					$('#second-step').html($('#second-step').html() + '<tr class="form-end"><td colspan="6"><input type="hidden" name="type" value="1">');
					$('#second-step').html($('#second-step').html() + '<input id="step-two-button" type="Image" src="'+window.sdir+'/images/nextstep_button.gif" hspace="5" border="0">');
                    $('#second-step').html($('#second-step').html() + '</td></tr></table>');
      
			}
		} else {
			$('.form-error').css('display', 'block');
			$('.form-error').html('You must enter Group Name, Ship Name and Sail Date.<br /> You must enter at least one cabin type for male or female.');
		}

		$("#form-section-two input").keypress(function(e) {    
			var code = (e.keyCode ? e.keyCode : e.which);
			 if(code == 13) { //Enter keycode
			   return false;
			 }
		});

		return false;
	});

	/**************** Second Step ****************/
	$('#step-two-button').live("click", function() {
		move_on = true;
		$('#form-section-two input:text').each(function() {	
			if ($(this).val() == '') {
				$('.form-error').css('display', 'block');
				$('.form-error').html('You must fill all personal data.');
				move_on = false;
			}
		});

		if (move_on == true) {
			views = new Object();
			male_quad = new Object();
			male_triple = new Object();
			male_double = new Object();
			male_single = new Object();
			female_quad = new Object();
			female_triple = new Object();
			female_double = new Object();
			female_single = new Object();

			$('input[name^=view_]:checked').each(function() {
				views[$(this).attr('name')] = $(this).val();
			});

			$('input[name^=male_cabin-quad_]').each(function() {
				male_quad[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=male_cabin-triple]').each(function() {
				male_triple[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=male_cabin-double_]').each(function() {
				male_double[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=male_cabin-single_]').each(function() {
				male_single[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=female_cabin-quad_]').each(function() {
				female_quad[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=female_cabin-triple]').each(function() {
				female_triple[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=female_cabin-double_]').each(function() {
				female_double[$(this).attr('name')] = $(this).val();
			});
			$('input[name^=female_cabin-single_]').each(function() {
				female_single[$(this).attr('name')] = $(this).val();
			});

			$('input[name$=chaperone]').each(function() {
				if (!$(this).is(':checked')) {
					if ($(this).attr('name').indexOf('female_cabin-quad') != -1) {
						female_quad[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('female_cabin-triple') != -1) {
						female_triple[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('female_cabin-double') != -1) {
						female_double[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('female_cabin-single') != -1) {
						female_single[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('male_cabin-quad') != -1) {
						male_quad[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('male_cabin-triple') != -1) {
						male_triple[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('male_cabin-double') != -1) {
						male_double[$(this).attr('name')] = "No";
					} else if ($(this).attr('name').indexOf('male_cabin-single') != -1) {
						male_single[$(this).attr('name')] = "No";
					}
				}
			});

			$('#second-step').remove();
			$('#form-section-one').remove();
			$('.form-error').css('display', 'none');

			email_select = '<table id="form-section-three" width="100%" cellspacing="5" border="0"><tr><td colspan="4">&nbsp;</td></tr><tr><td class="tab1" colspan="4">Send this info by e-mail:</td></tr>' +
						   '<tr><td class="tab1" align="right">Email&nbsp;(1):</td><td colspan="3"><select name="email1">';

			for (i=0; i<window.recipients.length; i++) {
				email_select = email_select + '<option value="'+window.recipients[i]+'">'+window.recipients[i]+'</option>';
			}

			email_select = email_select + '</select></td></tr>' + '<tr><td class="tab1" align="right">Email&nbsp;(2):</td><td colspan="3"><input type="text" name="email2"></td></tr>' +
						   '<tr><td class="tab1" align="right">Email&nbsp;(3):</td><td colspan="3"><input type="text" name="email3"></td></tr>' +
						   '<tr><td>&nbsp;</td></tr><tr><td colspan="4" align="center"><input type="hidden" name="type" value="1">' +
						   '</td></tr><tr><td><input id="step-three-button" type="Image" src="'+window.sdir+'/images/send_button.gif" hspace="5" border="0"></td></tr></table>';

			$('#third-step').html($('#third-step').html() + email_select);

			generated_html = '<tr><td class="tab1" colspan="4">Your choices:</td></tr>';

			if (male_cabins_booked == true) {
				generated_html = generated_html + '<tr><td class="tab1" align="center" colspan="5">Male:</td></tr>';
				generated_html = generated_html + print_values(4, 'male_cabin-quad_', male_quad, 'Quad');
				generated_html = generated_html + print_values(3, 'male_cabin-triple_', male_triple, 'Triple');
				generated_html = generated_html + print_values(2, 'male_cabin-double_', male_double, 'Double');
				generated_html = generated_html + print_values(1, 'male_cabin-single_', male_single, 'Single');
			}
			if (female_cabins_booked == true) {
				generated_html = generated_html + '<tr><td class="tab1" align="center" colspan="5"><br />Female:</td></tr>';
				generated_html = generated_html + print_values(4, 'female_cabin-quad_', female_quad, 'Quad');
				generated_html = generated_html + print_values(3, 'female_cabin-triple_', female_triple, 'Triple');
				generated_html = generated_html + print_values(2, 'female_cabin-double_', female_double, 'Double');
				generated_html = generated_html + print_values(1, 'female_cabin-single_', female_single, 'Single');
			}
			$('#form-section-three').prepend(generated_html);
			$('#form-section-three').before('<input type="hidden" name="ship_name" value="' + first_step_values['ship_name'] + '" size="15">'+
											'<input type="hidden" name="sail_date" value="' + first_step_values['sail_date'] + '" size="15">' + 
											'<input type="hidden" name="group_name" value="' + first_step_values['group_name'] + '" size="15">');

			male_singles = $('input[name^=male_cabin-single_]').length/5;
			if (!(male_singles > 0)) { male_singles = 0; }
			male_doubles = $('input[name^=male_cabin-double_]').length/10;
			if (!(male_doubles > 0)) { male_doubles = 0; }
			male_triples = $('input[name^=male_cabin-triple_]').length/15;
			if (!(male_triples > 0)) { male_triples = 0; }
			male_quads = $('input[name^=male_cabin-quad_]').length/20;
			if (!(male_quads > 0)) { male_quads = 0; }

			female_singles = $('input[name^=female_cabin-single_]').length/5;
			if (!(female_singles > 0)) { female_singles = 0; }
			female_doubles = $('input[name^=female_cabin-double_]').length/10;
			if (!(female_doubles > 0)) { female_doubles = 0; }
			female_triples = $('input[name^=female_cabin-triple_]').length/15;
			if (!(female_triples > 0)) { female_triples = 0; }
			female_quads = $('input[name^=female_cabin-quad_]').length/20;
			if (!(female_quads > 0)) { female_quads = 0; }

			add_hidden_count_field('male_singles', male_singles);
			add_hidden_count_field('male_doubles', male_doubles);
			add_hidden_count_field('male_triples', male_triples);
			add_hidden_count_field('male_quads', male_quads);

			add_hidden_count_field('female_singles', female_singles);
			add_hidden_count_field('female_doubles', female_doubles);
			add_hidden_count_field('female_triples', female_triples);
			add_hidden_count_field('female_quads', female_quads);
			add_hidden_views();

			$('#form-section-three').append('<input type="hidden" name="submitted" value="submitted" size="15">');

			completed = true;

		}
	});

	function ucfirst(string) {
		return string.charAt(0).toUpperCase() + string.substring(1);
	}
	function print_cabins(number_of_cabins, cabin_size, field_prefix, gender) {

		for (i = 1; i <= number_of_cabins; i++) {
			$('#form-section-two').html($('#form-section-two').html() + '<tr><td class="tab1" colspan="3">Cabin&nbsp;('+ucfirst(field_prefix)+')&nbsp;#'+i+'</td>'+
										'<td colspan="3"><input style="margin-left: -3px;" type="radio" value="Interior" name="view_'+total_radios+'">Interior <input type="radio" value="Ocean View" name="view_'+total_radios+'">Ocean View</td></tr>');
			$('#form-section-two').html($('#form-section-two').html() + section_titles);
			total_radios++;
			for (j = 1; j <= cabin_size; j++) {
				person = '<tr><td class="tab1">('+j+')</td><td><input type="text" name="' + gender + '_cabin-'+field_prefix+'_'+i+'_person_'+j+'_title" value="" size="10"></td>' +
						 '<td><input type="text" name="' + gender + '_cabin-'+field_prefix+'_'+i+'_person_'+j+'_firstname" value="" size="10"></td>' +
						 '<td><input type="text" name="' + gender + '_cabin-'+field_prefix+'_'+i+'_person_'+j+'_lastname" value="" size="10"></td>' +
						 '<td><input type="text" name="' + gender + '_cabin-'+field_prefix+'_'+i+'_person_'+j+'_birthday" value="" size="10"></td>' +
						 '<td><input type="checkbox" value="Yes" name="' + gender + '_cabin-'+field_prefix+'_'+i+'_person_'+j+'_chaperone"></td></tr>'
				$('#form-section-two').html($('#form-section-two').html() + person);
			}
		}
	}

	function print_values(cabin_size, field_prefix, values_array, section_title) {
		total = 0;
		temp_html='';

		for ( keyVar in values_array ) {
			total++;
		}
		total = total/(cabin_size*5);
		for (current=1; current<=total; current++) {
			temp_html = temp_html + '<tr><td class="tab1" colspan="5">Cabin&nbsp;(' + section_title + ')&nbsp;#' + current + '</td></tr>';
			temp_html = temp_html + '<tr><td class="tab1">Person</td><td class="tab1">Title</td><td class="tab1">First Name</td><td class="tab1">Last Name</td>'+
			'<td class="tab1">Birthday</td><td class="tab1">Chaperone</td></tr>';
			for ( keyVar in values_array ) {
				for (person = 1; person <= cabin_size; person++) {
					if (keyVar == (field_prefix + current + '_person_'+person+'_title')) {
						temp_html = temp_html  + '<tr><td width="20%" class="tab1">(' + person + ')</td><td width="20%" class="tab1">' + values_array[keyVar];
						temp_html = temp_html  + '<input type="hidden" size="15" value="' + values_array[keyVar] + '" name="' + keyVar + '">';
						temp_html = temp_html  + '</td>';
					}
					if (keyVar == (field_prefix + current + '_person_'+person+'_firstname')) {
						temp_html = temp_html  + '<td width="20%" class="tab1">' + values_array[keyVar];
						temp_html = temp_html  + '<input type="hidden" size="15" value="' + values_array[keyVar] + '" name="' + keyVar + '">';
						temp_html = temp_html  + '</td>';
					}
					if (keyVar == (field_prefix+current + '_person_'+person+'_lastname')) {
						temp_html = temp_html  + '<td width="20%" class="tab1">' + values_array[keyVar];
						temp_html = temp_html  + '<input type="hidden" size="15" value="' + values_array[keyVar] + '" name="' + keyVar + '">';
						temp_html = temp_html  + '</td>';
					}
					if (keyVar == (field_prefix+current + '_person_'+person+'_birthday')) {
						temp_html = temp_html  + '<td width="20%" class="tab1">' + values_array[keyVar];
						temp_html = temp_html  + '<input type="hidden" size="15" value="' + values_array[keyVar] + '" name="' + keyVar + '">';
						temp_html = temp_html  + '</td>';
					}
					if (keyVar == (field_prefix+current + '_person_'+person+'_chaperone')) {
						temp_html = temp_html  + '<td width="20%" class="tab1">' + values_array[keyVar];
						temp_html = temp_html  + '<input type="hidden" size="15" value="' + values_array[keyVar] + '" name="' + keyVar + '">';
						temp_html = temp_html  + '</td></tr>';
					}
				}			
			}
			temp_html = temp_html + '</tr>';
		}
		return temp_html;
	}

	function add_hidden_count_field(field_name, field_value) {
		$('#form-section-three').append('<input type="hidden" name="' + field_name + '" value="' + field_value + '" size="15">');
	}

	$('#step-three-button').live('click', function() {
		$('#travel-form').submit();
	});

	function add_hidden_views() {
		for ( keyVar in views ) {
			$('#form-section-three').append('<input type="hidden" name="' + keyVar + '" value="' + views[keyVar] + '" size="15">');
		}
	}

});
