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 <= 17; 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;
		}
	}
}

var searchPanelLoaded = false;

function loadSearchPanel()
{
	if( !searchPanelLoaded ) { searchPanelLoaded = true; }
	else { return; }
	
	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('#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_depart').datepicker({
		minDate: 1,
		maxDate: 366,
		numberOfMonths: 2,
		changeFirstDay: false,
		changeMonth: false,
		changeYear: false,
		closeAtTop: false
	});
	
	jQuery('#rooms').change(function(){
		change_rooms(this.value);
	});
	change_rooms(totalRooms);
	
	loadSearchPanelStage2();
}


jQuery(window).load(function(){
	if( jQuery('#container').is(':visible') ) {
		loadSearchPanel();
	}
});
