// JavaScript Document
var guestPerRoom = new Array("3", //Deluxe
							 "6", //Family Deluxe
							 "3", //Thai House Villa
							 "3"  //Beach Front Villa
							 );
var submit_opt = {
	async: false,
	target: '#resp_area',
	url: 'scripts/sendmail.php',
	success:function(responseText, statusText){
		$("#reservation").hide();
		$("#resp_area").css("height","400px");
		$("#resp_area").html(responseText);
		}
 };

$(function(){
	$.datepicker.setDefaults({
		dateFormat: 'mm/dd/yy',
		buttonImageOnly: true,
		buttonImage: 'images/layout/calendar.gif',
		changeMonth: true,
		changeYear: true,
		gotoCurrent: true,
		maxDate: '+1y +1m'
	});

	if($("#reservation").length > 0){
		
	  $('#frmfrmCheckin').datepicker({
		  defaultDate: '+1d',
		  minDate: '+1d',
		  onSelect: function(dateText){ validate_element(this); }
	  });
	  $('#frmfrmCheckout').datepicker({
		  defaultDate: '+2d',
		  minDate: '+2d',
		  onSelect: function(dateText){ validate_element(this); }
	  });
	  
	  $("#frm_resv").validate({
		  submitHandler: function(form) {
			  $("#resp_area").html("<img src='images/loader_arr_gr.gif' />").show();
			  $(form).ajaxSubmit(submit_opt);
			  return false;
		  },
		  invalidHandler: function(form, validator) {
			  var errors = validator.numberOfInvalids();
			  if (errors) {
				  var message = errors == 1 
				  ? 'You missed 1 field. It has been highlighted' : 'Please complete all required field. They have been highlighted as follow.';
				  $("#errorbox").html(message);
				  $("#errorbox").show();
			  } else { $("#errorbox").hide(); }
		  },
		  highlight: function(element, errorClass) {
			  $(element).addClass(errorClass);
			  $(element.form).find(element.id).addClass(errorClass);
		  },
		  unhighlight: function(element, errorClass) {
			  $(element).removeClass(errorClass);
			  $(element.form).find(element.id).removeClass(errorClass);
		  },
		  rules: {
			  frmFirstname: "required",
			  frmLastname: "required",
			  frmemail: {
				  required: true,
				  email: true
			  },
			  frmAddress: "required",
			  frmCity: "required",
			  frmState: "required",
			  frmCountry: "required",
			  frmZip: "required",
			  frmTel: "required",
			  frmfrmCheckin: "required",
			  frmfrmCheckout: "required"
		  },
		  messages: {
			  frmFirstname: "First name is required.",
			  frmLastname: "Last name is required.",
			  frmemail: {
				  required: "email is required.",
				  email: "Not valid email"
			  },
			  frmAddress: "Address is required.",
			  frmCity: "City is required.",
			  frmState: "State is required.",
			  frmCountry: "Country name is required.",
			  frmZip: "Zip code is required.",
			  frmTel: "Telephone is required.",
			  frmfrmCheckin: "Checkin date is required.",
			  frmfrmCheckout: "Checkout date is required.",
			  frmFlightarrival: "Flight No. is required.",
			  frmFlighttime: "Arrival time is required."
		  },
		  errorLabelContainer: "#errorbox",
		  wrapper: "li"
	});
	
	$('#table_room :input, #frmRoomtype').live("click", function(){
											element = $(this).attr("id");
											dynamicroom("#"+element);
													});
	/*$("#frmRoomtype").bind("change", function(){
											element = $(this).attr("id");
											dynamicroom("#"+element);
												});*/
}

	$.gaTracker('UA-6297829-1');
});

function validate_element(element){
	$("#frm_resv").validate().element( element );
}

function dynamicroom(element){
	if(element == "#frmroom"){
			rownum = $(element).val();
			current_rownum = $("#table_room tr").length;
			require_row	= parseInt(rownum) + 1 - parseInt(current_rownum);
			remain_row = parseInt(current_rownum) + parseInt(require_row) + 0;
			//alert(remain_row + " " + require_row + " " + current_rownum);
			$("#table_room tr").each(function(i){
				if(i >= remain_row){
					$(this).remove();
				}
			});
			
			for(var i = 2;i < parseInt(require_row)+2 ; i++){
				
				newrow = $('<tr></tr>')
				.append('<td>&nbsp;</td>').children()
				.append('<select id="frmadultroom_'+ i +'" name="frmadultroom_'+ i +'" class="frmadultroom"><option value="1">1</option><option value="2">2</option></select>')
				.parent('tr')
				.append('<td>&nbsp;</td>').children().eq(1)
				.append('<select id="frmchildroom_'+ i +'" name="frmchildroom_'+ i +'" class="frmchildroom"><option value="1">1</option></select>')
				.parent('tr')
				.prepend('<td>&nbsp;</td>')
				.appendTo("#table_room");
			}
			changeRoomAmount("#frmRoomtype");
		}else if(element == "#frmRoomtype"){
			changeRoomAmount(element);
		}
}

function changeRoomAmount(element){
	var selected_index = $(element+" option").index($(element+" option:selected"));
	manipulateOption(".frmadultroom",guestPerRoom[selected_index],1);
	manipulateOption(".frmchildroom",3,0);
}

function manipulateOption(element,roomAmount,startValue){
	var reqStr = "";
	for(var i = startValue;i <= parseInt(startValue)+ parseInt(roomAmount)-1;i++){
		reqStr += '<option value="'+ i +'">'+ i +'</option>';
	}
	//alert($(element).eq(0).html());
	//alert(reqStr);
	$(element).html(reqStr);
}