Date.format = "yyyy-mm-dd";
$(document).ready(function() {

    var bookLatestHours = 24;

	var customSelect = function(e) {
		var fieldID = this.id;
		fieldID = fieldID.substr(7, fieldID.length-7);
		var index = this.selectedIndex;
		var ddText = this.options[index].text;
		$("#label_"+fieldID).text(ddText);
	};

	$(".custom_select").bind("change", customSelect);
	$(".custom_select").change();

    $('#datefrom').datePicker();

    var currentDateTime = new Date();
    var selectedFromDate = new Date();
    var clienthour = currentDateTime.getHours();
    
    // set to clienthour in case var hour does not exist.
    var serverhour = clienthour; 
    // servertime
    if (hour) {serverhour = hour;}

   if (serverhour >= bookLatestHours) {
        selectedFromDate = selectedFromDate.addDays(1);
   }

    $('#datefrom').dpSetStartDate(selectedFromDate.asString());
    $('#datefrom').dpSetSelected(selectedFromDate.asString());

    $('#datefrom').trigger('change');
    $('#dateto').datePicker().val(selectedFromDate.addDays(1).asString()).trigger('change');

       $('.datepick').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_LEFT).dpSetOffset(23,-5);
       $('#datefrom').bind('dpClosed',
               function(e, selectedDates){
                       var d = selectedDates[0];
                       var currentDateTime = new Date();
                       var today = new Date(currentDateTime.getYear(), currentDateTime.getMonth(), currentDateTime.getDate());
                   
                       if (d) {

                               var selectedFromDate = new Date(d);

                               if (selectedFromDate.getTime() === today.getTime() && serverhour >= 12) {
                                    selectedFromDate = new Date(today).addDays(1);
                                    $('#datefrom').dpSetStartDate(selectedFromDate.asString());
                                    $('#datefrom').dpSetSelected(selectedFromDate.asString());
                               }

                               if ($('#dateto').dpGetSelected() <= selectedFromDate.getTime()) {
                                       ed = selectedFromDate.addDays(1);
                                       $('#dateto').dpSetSelected(ed.asString());
                               }
                           
                               $('#dateto').dpSetStartDate(selectedFromDate.addDays(1).asString());
                       }
               }
       );

	var formUpdate = function(e) {
		for (var i = 1; i <= 9; i++) {
			var master = "#room"+i;
			var container = $(master);
			if (container.length == 0) {
				var p = i-1;
				var prev = $('#room'+p);
				var container = prev.clone();
				container.attr('id', "room"+i);
				var head = container.find('h4');
				head.text(head.text().replace(p, i));
				container.find('label').each(function(nr) {
					$(this).attr('for', $(this).attr('for').replace(p, i));
					$(this).attr('id', $(this).attr('id').replace(p, i));
				});
				container.find('select').each(function(nr) {
					$(this).attr('id', $(this).attr('id').replace(p, i));
					if ($(this).attr('id').indexOf(i+"a") > 0) {
					 this.selectedIndex = 1;
}
					
					$(this).bind("change", customSelect);
				});
				container.find('#search_room'+i+'b').bind('change', childChange);
				container.find('.childselect').each(function(nr) {
					this.id = this.id.replace("r"+p+"_", "r"+i+"_");
				});
				container.find('.childselect').css('display', 'none');

				container.insertAfter(prev);
				container.find('select').change();
			}

			if (i > this.value) {
				container.css('display', 'none');
			} else {
				container.css('display', 'block');
			}
		}
		setTopHeight(this);
	}
	
	var childChange = function(e) {
		var nr = this.id.substring(11, this.id.indexOf("b"));
		for (var i = 1; i <= 9; i++) {
			var id = "child_r"+nr+"_c"+i;
			var container = $("#"+id);
			if (container.length == 0) {
				p = i-1;
				var prev = $("#child_r"+nr+"_c"+p);
				container = prev.clone();
				container.attr('id', id);
				container.find('select').attr('id', container.find('select').attr('id').replace("c"+p, "c"+i));
				container.find('select').attr('name', container.find('select').attr('name').replace("c"+p, "c"+i));
				var label = container.find('label');
				label.attr('for', label.attr('for').replace("c"+p, "c"+i));
				label.attr('id', label.attr('id').replace("c"+p, "c"+i));
				container.find('p.selectheader').text(container.find('p.selectheader').text().replace(p, i));
				container.find('select').each(function(e) {
					$(this).bind("change", customSelect);
				});

				container.insertAfter(prev);
				
			}
			if (i <= this.value) {
				container.css('display', 'block');
			} else {
				container.css('display', 'none');
			}
		}
		setTopHeight(this);
	}
	
	var setTopHeight = function(element) {
		if (element) {
			var container = $(element).parents('#reservations_container');
			var main = $(element).parents("#main_column");
	
			if (main) {
				main.css('padding-top', container.height()+13+"px");
			}
		}	
	}
	
	$('#search_rooms').bind('change', formUpdate);
	$('#search_room1b').bind('change', childChange);
	
	$('#search_area').bind('change', function(e) {
		var index = this.selectedIndex;
		$('#search_property').empty();
		for (var i = 0; i < HotelAreas[index].length; i++) {
			var node = $('<option value="'+HotelAreas[index][i].pid+'">'+HotelAreas[index][i].name+'</option>')
			$('#search_property').append(node);
		}
		$('#search_property')[0].selectedIndex = 0;
		$('#search_property').change();
	});

	var buildRoomsString = function() {
		var count = $('#search_rooms').val();
		var str = "";
		for (var i = 1; i <= count; i++) {
			if (str.length > 0) {
				str += "r";
			}
			str += $('#search_room'+i+'a').val();

			var children = $('#search_room'+i+'b').val();
			if (children > 0) {
				str += "a";
			}
			for (var j = 1; j <= children; j++) {
				if (j > 1) {
					str += "c";
				}
				str += $('#search_room'+i+'c'+j).val();
			}
		}
		$('#reservation_pid').val(str);		
	}

	$("#reservationform a.button").bind("click", function(e) {

       var selectedFromDate = new Date($('#datefrom').dpGetSelected()[0]);
       var currentDateTime = new Date();
       var today = new Date(currentDateTime.getYear(), currentDateTime.getMonth(), currentDateTime.getDate());

       if (selectedFromDate.getTime() === today.getTime() && serverhour >= bookLatestHours) {
           alert(lma);
           return;
       }

        buildRoomsString();

		var uri = $(this).parents('form').attr('action');
		uri += "?datefrom="+$('#datefrom').val()+"&dateto="+$('#dateto').val()+"&pr="+$('#reservation_pid').val();
			
		var pid = $('#search_property').val();
		if (pid.length > 0) {
		
		if (pid > 0) {
		uri += "&pid="+pid	
		} 
		else {
       
       		var geo = $('#search_area').val();
       		if (geo > 0)
                uri += "&geo="+geo;
		}
		

				var promo = $('#promocode').val();
				if (promo){
		                uri += "&promocode="+promo;
                		}


		window.location = uri;

		}
		
		e.preventDefault();
	});
	$('#search_area').change();
	$('#search_rooms').change();
	$('#r1_child').change();
	$('#search_room1b').change();
});

$(function() {

 

          var queryString = window.location.search.toString();

 

          if (queryString.indexOf("onlineid=") > 0) {

 

                   var startpos = queryString.indexOf("onlineid=")+9;

                   var endpos = queryString.indexOf("&", startpos);

 

                   if(endpos > 0) {

                      var onlineid = queryString.substring(startpos, endpos);

                   }

                   else {

                      var onlineid = queryString.substring(startpos);

                   }

                  //  var date = new Date();

 

                  // date.setTime(date.getTime()+(60*24*60*60*1000));

 

                  // var expires = "; expires="+date.toGMTString();

 

                  //  document.cookie = "onlineid="+onlineid+expires+"; path=/";

                 

                   document.cookie = "onlineid="+onlineid+"; path=/";

 

          }

});
