function Room(){
	this.adults = 1;
	this.children = 0;
	this.child = new Array();
	for(var i = 0; i < 6; i++){
		this.child[i] = new Child();
	}
}

function Child(){
	this.age = 0;
}

var rooms = new Array();
for(var i = 0; i < 8; i++){
	rooms[i] = new Room();
}

var totalRooms = 1;
var maxRooms = 4;

function change_rooms(num_rooms){
	totalRooms = num_rooms;
	jQuery('#adults').html('');
	var adults_html = '';
	var children_html = '';
	for(var i = 0; i < num_rooms; i++){
		adults_html += '<select name="adults[]" id="adults_'+i+'" style="display: block">';
		for(var j = 1; j <= 8; j++){
			var sel = (j == rooms[i].adults ? ' selected="selected"' : '');
			adults_html += '<option value="'+j+'"'+sel+'>'+j+'</option>';
		}
		adults_html += '</select>';
		
		children_html += '<select name="children[]" id="children_'+i+'" style="display: block">';
		for(var j = 0; j <= 6; j++){
			var sel = (j == rooms[i].children ? ' selected="selected"' : '');
			children_html += '<option value="'+j+'"'+sel+'>'+j+'</option>';
		}
		children_html += '</select>';
	}
	
	jQuery('#adults').html(adults_html);
	jQuery('#children').html(children_html);
	
	for(var i = 0; i < num_rooms; i++){
		if(!ie6) jQuery('#adults_'+i).combobox(skin, attr1);
		jQuery('#adults_'+i).change(function(){
			var room = this.id.split('_').pop();
			change_adults(room, this.value);
		});
	
		if(!ie6) jQuery('#children_'+i).combobox(skin, attr1);
		jQuery('#children_'+i).change(function(){
			var room = this.id.split('_').pop();
			change_children(room, this.value);
		});
	}
	
	for(var i = totalRooms; i < maxRooms; i++){
		jQuery('#children_ages'+i).hide();
	}
	show_children();
}

function change_adults(room, adults){
	rooms[room].adults = adults;
}

function change_children(room, children){
	rooms[room].children = children;
	var children_html = '';
	for(var i = 0; i < children; i++){
		children_html += '<div class="fl"><select name="children_ages'+room+'[]" id="children_ages_'+room+'_'+i+'" style="display: block">';
		for(var j = 0; j <= 18; j++){
			var sel = (j == rooms[room].child[i].age ? ' selected="selected"' : '');
			children_html += '<option value="'+j+'"'+sel+'>'+j+'</option>';
		}
		children_html += '</select></div>';
	}
	children_html += '<div class="clr"></div>';
	
	jQuery('#children_ages'+room+'_data').html(children_html);
	
	show_children();
	
	for(var i = 0; i < children; i++){
		if(!ie6) jQuery('#children_ages_'+room+'_'+i).combobox(skin, attr1);
		jQuery('#children_ages_'+room+'_'+i).change(function(){
			var info = this.id.split('_');
			var child = info.pop();
			var room = info.pop();
			change_child_age(room, child, this.value);			
		});
		//alert('#children_ages_'+room+'_'+i);
	}
	
	
}

function show_children(){
	var totalChildren = 0;
	for(var i = 0; i < totalRooms; i++){
		totalChildren += rooms[i].children;
		if(rooms[i].children > 0){
			jQuery('#children_ages'+i).show();
		} else {
			jQuery('#children_ages'+i).hide();
		}
	}
	if(totalChildren > 0){
		jQuery('#children_ages').show();
	} else {
		jQuery('#children_ages').hide();
	}
}

function change_child_age(room, child, age){
	rooms[room].child[child].age = age;
}

var skin = {
	comboboxContainerClass: 'comboboxContainer',
	comboboxValueContentContainerClass: 'comboboxValueContainer',
	comboboxValueContentClass: 'comboboxValueContent',
	comboboxDropDownButtonClass: 'comboboxDropDownButton',
	comboboxDropDownClass: 'comboboxDropDownContainer',
	comboboxDropDownItemClass: 'comboboxItem',
	comboboxDropDownItemHoverClass: 'comboboxItemHover',
	comboboxDropDownGroupItemHeaderClass: 'comboboxGroupItemHeader',
	comboboxDropDownGroupItemContainerClass: 'comboboxGroupItemContainer'
};

var attr1 = {
	animationType: 'slide',
	animationSpeed: 'fast',
	width: 50
};

var attr2 = {
	animationType: 'slide',
	animationSpeed: 'fast',
	width: 60
};

var attr3 = {
	animationType: 'slide',
	animationSpeed: 'fast',
	width: 165
};

var ie6 = (jQuery.browser.msie && jQuery.browser.version == '6.0');

var asfViewed = false;

function calendarDays(m, y)
{
	if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
	{
		var dmax = 31;
		return dmax;
	}
	else if (m==4||m==6||m==9||m==11)
	{
		var dmax = 30;
		return dmax;
	}
	else
	{
		if((y%400==0) || (y%400 == 0 && y%100!=0))
		{
			var dmax = 29;
			return dmax;
		}
		else
		{
			var dmax=28;
			return dmax;
		}
	}
}


jQuery(window).load(function(){
	jQuery('#search_loading').hide();
	jQuery('#search_form').show();
	jQuery('#search_btn').show();
	
	jQuery('#advanced_search').click(function(){
		var asf = jQuery('#advanced_search_form');
		
		if( asf.is(':hidden') )
		{
			asf.show();
			jQuery('#advanced_search_field').attr('value', '1');
			
			if(!ie6 && !asfViewed){
				asfViewed = true;
				jQuery('#star_rating').combobox(skin, attr1);
				jQuery('#near_location').combobox(skin, attr3);
			}				
		}
		else
		{
			asf.hide();
			jQuery('#advanced_search_field').attr('value', '0');			
		}
		
		return false;
	});
	
	if(!ie6){
		/*jQuery('#month_arrive').combobox(skin, attr2);			
		jQuery('#day_arrive').combobox(skin, attr1);
		jQuery('#year_arrive').combobox(skin, attr2);
		
		jQuery('#month_depart').combobox(skin, attr2);
		jQuery('#day_depart').combobox(skin, attr1);
		jQuery('#year_depart').combobox(skin, attr2);*/
		
		jQuery('#rooms').val(totalRooms);
		jQuery('#rooms').combobox(skin, attr1);
				
		jQuery('#hotel').focus(function(){ 
			if(this.value == this.defaultValue){
				this.value = '';
				this.style.color = '#2b2b25';
			}
		});
		jQuery('#hotel').blur(function(){
			if(this.value == ''){
				this.value = this.defaultValue;
				this.style.color = '#aeb6aa';
			}
		});
	}
	
	jQuery('#date_arrive').datepicker({
		minDate: 0,
		maxDate: 365,
		numberOfMonths: 2,
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		closeAtTop: false,
		onSelect: function(dateText){
		var date = dateText.split('/');
		// Arrival Date Information
		var dayArr = Number(date[1]);
		var monArr = Number(date[0]);
		var yearArr = Number(date[2]);
		// Departure Date Information
		var dayDep = Number(date[1]+1);
		var monDep = Number(date[0]);
		var yearDep = Number(date[2]);
		// Maximum Day for Month/Year Pair
		var maxday = calendarDays(monArr, yearArr)
		
		dayDep = dayArr+1;
		if (dayArr>=maxday)
		{
			dayDep = 1;
			dayArr = maxday;
			if (monArr == 12)
			{
				monDep = 1;
				yearDep = yearArr + 1;
			} else {
				monDep = monArr + 1;
			}								
		}
		
		var dateDep;
		dateDep = monDep + '/' + dayDep + '/' + yearDep;
		
		jQuery('#date_depart').val(dateDep);
		}
	});
	
//	jQuery('#date_arrive').change(function(){
//		var dateText = jQuery('#date_arrive').val;
//		var date = dateText.split('/');
//		// Arrival Date Information
//		var dayArr = Number(date[1]);
//		var monArr = Number(date[0]);
//		var yearArr = Number(date[2]);
//		// Departure Date Information
//		var dayDep = Number(date[1]+1);
//		var monDep = Number(date[0]);
//		var yearDep = Number(date[2]);
//		// Maximum Day for Month/Year Pair
//		var maxday = calendarDays(monArr, yearArr)
//		
//		dayDep = dayArr+1;
//		if (dayArr>=maxday)
//		{
//			dayDep = 1;
//			dayArr = maxday;
//			if (monArr == 12)
//			{
//				monDep = 1;
//				yearDep = yearArr + 1;
//			} else {
//				monDep = monArr + 1;
//			}								
//		}
//		
//		var dateDep;
//		dateDep = monDep + '/' + dayDep + '/' + yearDep;
//		
//		jQuery('#date_depart').val(dateDep);
//		});
	
	jQuery('#date_depart').datepicker({
		minDate: 1,
		maxDate: 366,
		numberOfMonths: 2,
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		closeAtTop: false
	});
	
	/*jQuery('#date_arrive').datepicker({
		showOn: 'button', 
		buttonImageOnly: true, 
		buttonImage: 'images/btn_calendar.jpg', 
		buttonText: 'Choose Date', 
		minDate: 0,
		maxDate: 365,
		numberOfMonths: 2,
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		closeAtTop: false,
		onSelect: function(dateText){
			var date = dateText.split('/');
			// Arrival Date Information
			var dayArr = Number(date[1]);
			var monArr = Number(date[0]);
			var yearArr = Number(date[2]);
			// Departure Date Information
			var dayDep = Number(date[1]+1);
			var monDep = Number(date[0]);
			var yearDep = Number(date[2]);
			// Maximum Day for Month/Year Pair
			var maxday = calendarDays(monArr, yearArr)
			
			dayDep = dayArr+1;
			if (dayArr>=maxday)
			{
				dayDep = 1;
				dayArr = maxday;
				if (monArr == 12)
				{
					monDep = 1;
					yearDep = yearArr + 1;
				} else {
					monDep = monArr + 1;
				}								
			}
			
			jQuery('#month_arrive').val(monArr);
			jQuery('#day_arrive').val(dayArr);
			jQuery('#year_arrive').val(yearArr);
			jQuery('#month_depart').val(monDep);
			jQuery('#day_depart').val(dayDep);
			jQuery('#year_depart').val(yearDep);
			
			if(!ie6){
				jQuery('#month_arrive').combobox.updateSelection(jQuery('#month_arrive'));
				jQuery('#day_arrive').combobox.updateSelection(jQuery('#day_arrive'));
				jQuery('#year_arrive').combobox.updateSelection(jQuery('#year_arrive'));
				jQuery('#month_depart').combobox.updateSelection(jQuery('#month_depart'));
				jQuery('#day_depart').combobox.updateSelection(jQuery('#day_depart'));
				jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
			}
		}
	});
	
	jQuery('#month_arrive').change(function(){
		//jQuery('#month_depart').val(Number(jQuery('#month_arrive').val()));
		//jQuery('#day_depart').val(Number(jQuery('#day_arrive').val())+1);
		
		var dayArr = Number(jQuery('#day_arrive').val());
		var monArr = Number(jQuery('#month_arrive').val());
		var yearArr = Number(jQuery('#year_arrive').val());
		// Departure Date Information
		var dayDep = dayArr+1;
		var monDep = monArr;
		var yearDep = yearArr;
		// Maximum Day for Month/Year Pair
		var maxday = calendarDays(monArr, yearArr)
		
		dayDep = dayArr+1;
		if (dayArr>=maxday)
		{
			dayDep = 1;
			dayArr = maxday;
			if (monArr == 12)
			{
				monDep = 1;
				yearDep = yearArr + 1;
			} else {
				monDep = monArr + 1;
			}								
		}
		
		jQuery('#month_arrive').val(monArr);
		jQuery('#day_arrive').val(dayArr);
		jQuery('#year_arrive').val(yearArr);
		jQuery('#month_depart').val(monDep);
		jQuery('#day_depart').val(dayDep);
		jQuery('#year_depart').val(yearDep);
				
		if(!ie6){
			jQuery('#month_arrive').combobox.updateSelection(jQuery('#month_arrive'));
			jQuery('#day_arrive').combobox.updateSelection(jQuery('#day_arrive'));
			jQuery('#year_arrive').combobox.updateSelection(jQuery('#year_arrive'));
			jQuery('#month_depart').combobox.updateSelection(jQuery('#month_depart'));
			jQuery('#day_depart').combobox.updateSelection(jQuery('#day_depart'));
			jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
		}
	});
	
	jQuery('#year_arrive').change(function(){
		var yearArr = Number(jQuery('#year_arrive').val());
		var yearDep = yearArr;
		jQuery('#year_depart').val(yearDep);
		
		if(!ie6){
			jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
		}
	});
	
	jQuery('#day_arrive').change(function(){
		var dayArr = Number(jQuery('#day_arrive').val());
		var monArr = Number(jQuery('#month_arrive').val());
		var yearArr = Number(jQuery('#year_arrive').val());
		// Departure Date Information
		var dayDep = dayArr+1;
		var monDep = monArr;
		var yearDep = yearArr;
		// Maximum Day for Month/Year Pair
		var maxday = calendarDays(monArr, yearArr)
		
		dayDep = dayArr+1;
		if (dayArr>=maxday)
		{
			dayDep = 1;
			dayArr = maxday;
			if (monArr == 12)
			{
				monDep = 1;
				yearDep = yearArr + 1;
			} else {
				monDep = monArr + 1;
			}								
		}
		
		jQuery('#month_arrive').val(monArr);
		jQuery('#day_arrive').val(dayArr);
		jQuery('#year_arrive').val(yearArr);
		jQuery('#month_depart').val(monDep);
		jQuery('#day_depart').val(dayDep);
		jQuery('#year_depart').val(yearDep);
				
		if(!ie6){
			jQuery('#month_arrive').combobox.updateSelection(jQuery('#month_arrive'));
			jQuery('#day_arrive').combobox.updateSelection(jQuery('#day_arrive'));
			jQuery('#year_arrive').combobox.updateSelection(jQuery('#year_arrive'));
			jQuery('#month_depart').combobox.updateSelection(jQuery('#month_depart'));
			jQuery('#day_depart').combobox.updateSelection(jQuery('#day_depart'));
			jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
		}
	});
	
	jQuery('#day_depart').change(function(){
		var dayDep = Number(jQuery('#day_depart').val());
		var monDep = Number(jQuery('#month_depart').val());
		var yearDep = Number(jQuery('#year_depart').val());
		var maxDay = calendarDays(monDep, yearDep);
		
		if(dayDep>=maxDay)
		{
			jQuery('#day_depart').val(maxDay);
		} else {
			jQuery('#day_depart').val(dayDep);
		}
		
		jQuery('#month_depart').val(monDep);
		jQuery('#year_depart').val(yearDep);

		if(!ie6){
			jQuery('#month_depart').combobox.updateSelection(jQuery('#month_depart'));
			jQuery('#day_depart').combobox.updateSelection(jQuery('#day_depart'));
			jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
		}
	});
	
	jQuery('#month_depart').change(function(){
		var monDep = Number(jQuery('#month_depart').val());
		var monArr = Number(jQuery('#month_arrive').val());
		var yearDep = Number(jQuery('#year_depart').val());
				
		if(monDep<monArr)
		{
			jQuery('#year_depart').val(yearArr+1);
		} else {
			jQuery('#year_depart').val(yearDep);
		}
		
		if(!ie6){
			jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
		}
	});
	
	jQuery('#date_depart').datepicker({
		showOn: 'button', 
		buttonImageOnly: true, 
		buttonImage: 'images/btn_calendar.jpg', 
		buttonText: 'Choose Date',
		minDate: 1,
		maxDate: 366,
		numberOfMonths: 2,
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		closeAtTop: false,
		onSelect: function(dateText){
			var date = dateText.split('/');
			var dayDep = Number(date[1]);
			var maxDay = calendarDays(Number(date[0]), Number(date[2]));
			
			if(dayDep>=maxDay)
			{
				jQuery('#day_depart').val(maxDay);
			} else {
				jQuery('#day_depart').val(dayDep);
			}
			
			jQuery('#month_depart').val(Number(date[0]));
			jQuery('#year_depart').val(Number(date[2]));

			if(!ie6){
				jQuery('#month_depart').combobox.updateSelection(jQuery('#month_depart'));
				jQuery('#day_depart').combobox.updateSelection(jQuery('#day_depart'));
				jQuery('#year_depart').combobox.updateSelection(jQuery('#year_depart'));
			}

		}
	});*/
	
	jQuery('#rooms').change(function(){
		change_rooms(this.value);
	});
	change_rooms(totalRooms);
	
});