YAHOO.namespace("search");

YAHOO.search.show = false;
YAHOO.search.currentChildCount = [];
YAHOO.search.isAccommodation = false;

YAHOO.search.setIsAccommodation = function(isAcc) {
	YAHOO.search.isAccommodation = isAcc;
}

YAHOO.search.setHasEndDate = function(hasEnd) {
	YAHOO.search.hasEndDate = hasEnd;
}

YAHOO.search.setShow = function(needshow) {
	YAHOO.search.show = needshow;
}

YAHOO.search.changeAdvSearchState = function() {
	if (YAHOO.search.show) {
		YAHOO.search.showAdvSearch();
	} else {
		YAHOO.search.hideAdvSearch();
	}
	YAHOO.search.show = !YAHOO.search.show;
}

YAHOO.search.hideAdvSearch = function() {
	document.getElementById("advanced").style.display = "none";
}

YAHOO.search.showAdvSearch = function() {
	document.getElementById("advanced").style.display = "block";
}

YAHOO.search.setMode = function(mode, cmpId){
	if (cmpId == undefined) {
		Ext.get("searchMode").dom.value = mode;
	} else {
		Ext.get(cmpId).dom.value = mode;
	}
}

YAHOO.search.setModeArr = function(mode){
	Ext.get("searchModeArr").dom.value = mode;
}

YAHOO.search.init = function() {
	var chCmp = Ext.getCmp("childCount");
	var adCmp = Ext.getCmp("adultCount");
	YAHOO.search.updateChild(chCmp);
	YAHOO.search.currentChildCount[0] = chCmp.value;
	chCmp.on("select", YAHOO.search.updateChild);
	adCmp.on("select", YAHOO.search.updateAdult);
}

YAHOO.search.updateChild = function(cmp) {
	var indexInService;
	if (YAHOO.search.isAccommodation) {
		var startIndex = cmp.id.indexOf("[") + 1;
		var endIndex = cmp.id.indexOf("]");
		indexInService = cmp.id.substring(startIndex, endIndex);
	} else {
		indexInService = 0;
	}
	
	var childCount = parseInt(cmp.getValue());
	
	var containerIdPrefix = '';
	if (YAHOO.search.isAccommodation) {
		containerIdPrefix = 'room' + indexInService;
	}
	for(var i = 1; i <= childCount; i++) {
		var container = Ext.get(containerIdPrefix + 'child' + i + 'Container');
		if (container != null) {
			container.removeClass("x-hidden");
		}
	}
	
	if (childCount < YAHOO.search.currentChildCount[indexInService]) {
		for(var i = childCount + 1; i <= YAHOO.search.currentChildCount[indexInService]; i++) {
			var container = Ext.get(containerIdPrefix + 'child' + i + 'Container');
			if (container != null) {
				container.addClass("x-hidden");
			}
		}
	}
	
	YAHOO.search.currentChildCount[indexInService] = childCount;
	
	var containerId = containerIdPrefix + 'childContainer';
	
	if (childCount > 0) {
		Ext.get(containerId).removeClass("x-hidden");
	} else {
		Ext.get(containerId).addClass("x-hidden");		
	}
}

YAHOO.search.updateAdult = function(adCmp) {
	var adultCount = parseInt(adCmp.getValue());
	var maxChildCount = 50 - adultCount;
	var chCmp = Ext.getCmp("childCount");
	if (chCmp.value > maxChildCount) {
		chCmp.setValue(maxChildCount);
		YAHOO.search.updateChild(chCmp);
	}
	var records = [];
	chCmp.store.removeAll();
	for (var i = 0; i <= maxChildCount; i++) {
		records[i] = new chCmp.store.recordType({text: i, value: i});
	}
	chCmp.store.add(records);
	
}
