var BronHotel = function(){
	
	var selPlacesName = 'countPlaces';
	var selAdultsName = 'countAdults';
	var selChildsName = 'countChilds';
	var lstPlacesName = 'listPlaces';
	
	var rsCityName 	= 'rsCity';
	var rsHotelName = 'rsHotelName';
	var bDateId 	= 'bdate';
	var eDateId 	= 'edate';
	var bronBtnId 	= 'bronButton';
	
	function hotelBron(){
		var paramsObj = {
			  'City': $('input[name="' + rsCityName + '"]').val()
			, 'CheckIn': $('#' + bDateId).val()
			, 'CheckOut': $('#' + eDateId).val()
			, 'Rooms': getRoomsParam()
		};
		if ($('input[name="' + rsHotelName + '"]').length){
			paramsObj['HotelName'] = $('input[name="' + rsHotelName + '"]').val();
		}
		$('#bron_hotel_form').attr({
			  action: '/bron/'
			, method: !$.isChrome ? 'POST' : 'GET'
		}).empty();
		$('#bron_hotel_form').append('<input type="hidden" name="resource_id" value="BronRedirect" />')
		  					 .append('<input type="hidden" name="bron_params" value="' + $.param(paramsObj) + '" />')
							 .submit();		  			
	}
	
	function getRoomsParam(){
		var rooms = '';
		for (var i = 0, n = $('select[name="' + selAdultsName + '"]').length; i < n; i++){
			rooms += $('select[name="' + selAdultsName + '"]:eq(' + i + ')').val()
			rooms += $('select[name="' + selChildsName + '"]:eq(' + i + ')').val();
		}
		return rooms;
	}
	
	function onCountPlacesChange(){
		var selAdults = $('select[name="' + selAdultsName + '"]');
		var selChilds = $('select[name="' + selChildsName + '"]');
		
		selAdults.bind('change', function(){
			var idx = selAdults.index(this);
			if ($(this).val() != 2){
				$('select[name="' + selChildsName + '"]:eq(' + idx + ') option:first').attr('selected', 'selected');
				$('select[name="' + selChildsName + '"]:eq(' + idx + ')').attr('disabled', 'disabled');
			} else {
				$('select[name="' + selChildsName + '"]:eq(' + idx + ')').attr('disabled', '');
			}
		});
	}
	
	function initCalendar(){
		var todayDate = new Date();
		var fDate = new Date(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate() + 7);
		var lDate = new Date(todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate() + 7 * 2);
		
		$('#' + bDateId).val(formatDate('%d.%m.%Y', fDate));
		$('#' + eDateId).val(formatDate('%d.%m.%Y', lDate));
	}
	
	function initSelects(){
		
		var selAdults = $('select[name="' + selAdultsName + '"]');
		var selChilds = $('select[name="' + selChildsName + '"]');
		var selPlaces = $('select[name="' + selPlacesName + '"]');
		
		var lstPlaces = $('#' + lstPlacesName + ' tbody');
				
		$('option:first', selPlaces).attr('selected', 'selected');
		$('option:eq(1)', selAdults).attr('selected', 'selected');		
		$('option:eq(0)', selChilds).attr('selected', 'selected');
		selChilds.removeAttr('disabled');
		
		selPlaces.bind('change', function(){
			
			selAdults.unbind('change');
			lstPlaces.empty();
			for (var i = 0, n = $(this).val(); i < n; i++){
				lstPlaces.append([
					  '<tr>'
					, '	<td class="num">#' + (i + 1) + '</td>'
					, '	<td><!--[if lte IE 6]><b class="ie6Hide"><![endif]-->'
					, '		<select name="' + selAdultsName + '">'
					, '			<option value="1">1</option>'
					, '			<option value="2" selected>2</option>'
					, '			<option value="3">3</option>'
					, '			<option value="4">4</option>'
					, '		</select>'
					, '	<!--[if lte IE 6]></b><![endif]--></td>'
					, '	<td><!--[if lte IE 6]><b class="ie6Hide"><![endif]-->'
					, '		<select name="' + selChildsName + '">'
					, '			<option value="0">0</option>'
					, '			<option value="1">1</option>'
					, '		</select>'
					, '	<!--[if lte IE 6]></b><![endif]--></td>'
					, '</tr>'
				].join(''));			
			}
			onCountPlacesChange();
		});
		onCountPlacesChange();
	}
	
	function initSubmit(){
		$('#' + bronBtnId).bind('click', hotelBron);
	}
	
	return {
		init: function(){
			initCalendar();
			initSelects();
			initSubmit();
		}
	}
}();
