// JavaScript Document
$(document).ready(function(){ 
 //loadCategorySelection();						   
 manageTravlerIterationObject($('#totalTravelers').val());
 
 
 $("#departureDate").datepicker({
   showOn: 'button', 
   buttonImage: '/files/images/icons/icon-calendar.gif', 
   buttonImageOnly: true,
   numberOfMonths: 2,
   showButtonPanel: true,
   dateFormat: 'dd.mm.yy',
   constrainInput: false
 }); 
 
 $("#returnDate").datepicker({
   showOn: 'button', 
   buttonImage: '/files/images/icons/icon-calendar.gif', 
   buttonImageOnly: true,
   numberOfMonths: 2,
   showButtonPanel: true,
   dateFormat: 'dd.mm.yy',
   constrainInput: false
 });

 $("#bookingDate").datepicker({
   showOn: 'button', 
   buttonImage: '/files/images/icons/icon-calendar.gif', 
   buttonImageOnly: true,
   numberOfMonths: 2,
   showButtonPanel: true,
   dateFormat: 'dd.mm.yy',
   constrainInput: false
 }); 
 
 $("#departureDate").change(function(){ 										 			
	copyValueToDateOfReturn();
 });
 
 
 $("#isCruise").click(function(){
  manageIsCruiseSelection();					     
 }); 
 
 
 $("#totalTravelers").change(function(){ 
   manageTravlerIterationObject($(this).val());									     
 });
 
 $("input[name=category]").click(function(){										
  manageCategorySelection();												          
 });
 
 $("#quoteForm").validate({
  
   submitHandler: function(form) {
	 if(businessRulesAreValid()) {	  
	    $.nyroModalManual({
       type: 'form',
	   modal: true,
	   autoSizable: true,
 	   content: getProgressDialog('&Uuml;berpr&uuml;fung der Anfrage','Bitte warten Sie, bis wir Ihre Angaben gepr&uuml;ft haben...'),
	   resizable: true, 
       autoSizable: true,
	   minWidth: 350,
	   minHeight: 170		
	  });	
	  $("#quoteForm").ajaxSubmit( { url:'/ajax/post/_validateQuote.cfm', type: 'post', success: evaluateResponse, error: evaluateResponse });	  
	 }		
   },	
    rules: { 
	  groupID: "required",	 
	  departureDate: "required",	 
	  bookingDate: "required",
	  category: "required",
	  objectPrice: {
	      required: function(element) {		   	  
	       return isObjectPriceRequired(); 
          },
		  digits: true,
		  min: 1
	  },
	  totalTripCost: {
	      required: function(element) {		   	  
	       return isTotalTripCostRequired(); 
          },		  
		  digits: true,
		  min: 1
	  },
	  totalTravelers: "required",
	  travelerBirthDay_1: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(1); 
          }
	  },
	  travelerBirthMonth_1: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(1); 
          }
	  },
	  travelerBirthYear_1: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(1); 
          }
	  },
	  travelerBirthDay_2: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(2); 
          }
	  },
	  travelerBirthMonth_2: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(2); 
          }
	  },
	  travelerBirthYear_2: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(2); 
          }
	  },
	  travelerBirthDay_3: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(3); 
          }
	  },
	  travelerBirthMonth_3: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(3); 
          }
	  },
	  travelerBirthYear_3: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(3); 
          }
	  },
	  travelerBirthDay_4: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(4); 
          }
	  },
	  travelerBirthMonth_4: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(4); 
          }
	  },
	  travelerBirthYear_4: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(4); 
          }
	  },
	  travelerBirthDay_5: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(5); 
          }
	  },
	  travelerBirthMonth_5: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(5); 
          }
	  },
	  travelerBirthYear_5: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(5); 
          }
	  },
	  travelerBirthDay_6: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(6); 
          }
	  },
	  travelerBirthMonth_6: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(6); 
          }
	  },
	  travelerBirthYear_6: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(6); 
          }
	  },
	  travelerBirthDay_7: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(7); 
          }
	  },
	  travelerBirthMonth_7: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(7); 
          }
	  },
	  travelerBirthYear_7: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(7); 
          }
	  },
	  travelerBirthDay_8: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(8); 
          }
	  },
	  travelerBirthMonth_8: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(8); 
          }
	  },
	  travelerBirthYear_8: {
	      required: function(element) {		   	  
	       return isTravelersBirthDateRequired(8); 
          }
	  },
	  travelerTripCost_1: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(1); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_2: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(2); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_3: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(3); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_4: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(4); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_5: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(5); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_6: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(6); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_7: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(7); 
          },
		  digits: true,
		  min: 1
	  },
	  travelerTripCost_8: {
	      required: function(element) {		   	  
	       return isTravelersTripCostRequired(8); 
          },
		  digits: true,
		  min: 1
	  }
	  
	  
    },
	messages: {
	  groupID: getErrorMessage($('#languageShort').val(),1),	  
	  departureDate: getErrorMessage($('#languageShort').val(),4),	  
	  bookingDate: getErrorMessage($('#languageShort').val(),6),
	  category: getErrorMessage($('#languageShort').val(),7),
	  objectPrice: {
       required: getErrorMessage($('#languageShort').val(),8),
       min: getErrorMessage($('#languageShort').val(),57)
      },	  
	  totalTripCost: {
       required: getErrorMessage($('#languageShort').val(),9),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  totalTravelers: getErrorMessage($('#languageShort').val(),10),
	  travelerBirthDay_1: getErrorMessage($('#languageShort').val(),11),
	  travelerBirthDay_2: getErrorMessage($('#languageShort').val(),12),
	  travelerBirthDay_3: getErrorMessage($('#languageShort').val(),13),
	  travelerBirthDay_4: getErrorMessage($('#languageShort').val(),14),
	  travelerBirthDay_5: getErrorMessage($('#languageShort').val(),15),
	  travelerBirthDay_6: getErrorMessage($('#languageShort').val(),16),
	  travelerBirthDay_7: getErrorMessage($('#languageShort').val(),17),
	  travelerBirthDay_8: getErrorMessage($('#languageShort').val(),18),
	  travelerBirthMonth_1: getErrorMessage($('#languageShort').val(),19),
	  travelerBirthMonth_2: getErrorMessage($('#languageShort').val(),20),
	  travelerBirthMonth_3: getErrorMessage($('#languageShort').val(),21),
	  travelerBirthMonth_4: getErrorMessage($('#languageShort').val(),22),
	  travelerBirthMonth_5: getErrorMessage($('#languageShort').val(),23),
	  travelerBirthMonth_6: getErrorMessage($('#languageShort').val(),24),
	  travelerBirthMonth_7: getErrorMessage($('#languageShort').val(),25),
	  travelerBirthMonth_8: getErrorMessage($('#languageShort').val(),26),
	  travelerBirthYear_1: getErrorMessage($('#languageShort').val(),27),
	  travelerBirthYear_2: getErrorMessage($('#languageShort').val(),28),
	  travelerBirthYear_3: getErrorMessage($('#languageShort').val(),29),
	  travelerBirthYear_4: getErrorMessage($('#languageShort').val(),30),
	  travelerBirthYear_5: getErrorMessage($('#languageShort').val(),31),
	  travelerBirthYear_6: getErrorMessage($('#languageShort').val(),32),
	  travelerBirthYear_7: getErrorMessage($('#languageShort').val(),33),
	  travelerBirthYear_8: getErrorMessage($('#languageShort').val(),34),
	  travelerTripCost_1: {
       required: getErrorMessage($('#languageShort').val(),35),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_2: {
       required: getErrorMessage($('#languageShort').val(),36),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_3: {
       required: getErrorMessage($('#languageShort').val(),37),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_4: {
       required: getErrorMessage($('#languageShort').val(),38),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_5: {
       required: getErrorMessage($('#languageShort').val(),39),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_6: {
       required: getErrorMessage($('#languageShort').val(),40),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_7: {
       required: getErrorMessage($('#languageShort').val(),41),
       min: getErrorMessage($('#languageShort').val(),57)
      },
	  travelerTripCost_8: {
       required: getErrorMessage($('#languageShort').val(),42),
       min: getErrorMessage($('#languageShort').val(),57)
      }
	}, 
	errorPlacement: function(error, element) {  
	  if(element.attr('id') == 'groupID') {
		 error.prependTo($('#errorMsgContainer'));
	   $('<span class="clear">&nbsp;</span>').appendTo($('#errorMsgContainer'));    
	  }
	  else {
	   error.appendTo($('#errorMsgContainer'));
	   $('<span class="clear">&nbsp;</span>').appendTo($('#errorMsgContainer'));  
	  }	
	}	
  
 });
 
 
 
  
});

function manageCategorySelection() {	
  clearTravelerData();
  manageTravlerIterationObject($('#totalTravelers').val());   
  setTravelerSelect();
  //alert("got here");
  
  //$('#totalTravelers option[value=1]').css('display','none');
										  
  
  if($('#category_1').attr('checked')) {
   $('#objectPriceContainer').css('display','none');	
   $('#totalTripCostContainer').css('display','none');
   $('#totalTripCost').val('');
  }	
  // if family selected get traveler birth date iteration
  else if($('#category_2').attr('checked')) {		
   $('#objectPriceContainer').css('display','none');
   $('#objectPrice').val('');
   $('#totalTripCostContainer').css('display','block');	 
  }
  // if object selected then don't get any iteration object
  else if($('#category_3').attr('checked')) {
   $('#totalTripCostContainer').css('display','none');	
   $('#totalTripCost').val('');
   $('#objectPriceContainer').css('display','block');	 
  } 	   
}

function manageTravlerIterationObject(totalTravelers) {	  

  if($('#category_1').attr('checked')) {	
   getTravelerTripCost(totalTravelers);	
   getTravelerBirthDate(totalTravelers);	
  }	
  // if family selected get traveler birth date iteration
  else if($('#category_2').attr('checked')) {
   getTravelerBirthDate(totalTravelers);	
  }	
  else if($('#category_3').attr('checked')) {
   getTravelerBirthDate(totalTravelers);	
  }	
  else {
    getTravelerTripCost(totalTravelers);	
   getTravelerBirthDate(totalTravelers);	  
  }
}

function manageIsCruiseSelection() {
 if($('#isCruise').attr('checked')) {
  // unchecks object if it was selected
  $('#category_3').attr('checked','');
  $('#categoryOptionContainer_3').css('display','none');
  $('#objectPriceContainer').css('display','none');
  $('#objectPrice').val('');
 }
 else {
  $('#categoryOptionContainer_3').css('display','inline');	 
 }
}

function businessRulesAreValid() {
 var result = true;
 
   if(!departureDateIsValid()) {
	 result = false;
   }
 

  if(!returnDateIsValid()) {	 
   result = false;
  }
 
 
   if(!bookingDateIsValid()) {	 
   result = false;
  }	 
  
  if(isDateOfBirthRequired()) { 
   if(!isValidTravelerBirthDate($('#totalTravelers').val())) {
	 result = false;  
   }
  }
 
 return result;
}
