YAHOO.namespace('squarecompare');

YAHOO.squarecompare.OptionsSelector = function(options) {

	var _private = {};
	var _public = {};

	_private.showOptionSection = function(index) {
		var optionTitle = YAHOO.util.Dom.get('options-drop-down-text');
		var optionLink = YAHOO.util.Dom.get('option-link-' + index);
		optionTitle.innerHTML = YAHOO.squarecompare.shorten(optionLink.innerHTML, 24);
		for (var i=0; i<_private.sourceLiEls.length; i++) {
			YAHOO.util.Dom.setStyle(_private.sourceLiEls[i], 'display', i==index ? '' : 'none');
		}
	};
	
	_private.createOptionsDropDown = function() {
		var outerOptionsDropDownDiv = document.createElement('div');
		YAHOO.util.Dom.setStyle(outerOptionsDropDownDiv, 'display', 'none');

		var innerOptionsDropDownDiv = document.createElement('div');
		innerOptionsDropDownDiv.setAttribute('id', 'options-drop-down');
		YAHOO.util.Dom.addClass(innerOptionsDropDownDiv, 'drop-down-menu');

		var optionsUl = document.createElement('ul');
		
		for (var i=0; i<_private.sourceLiEls.length; i++) {
			var h3 = YAHOO.util.Selector.query('h3', _private.sourceLiEls[i], true);
			YAHOO.util.Dom.setStyle(h3, 'display', 'none');
			
			var li = document.createElement('li');
			var a = document.createElement('a');
			a.href = '#';
			a.innerHTML = h3.innerHTML;
			a.setAttribute('id', 'option-link-' + i);
			li.appendChild(a);
			optionsUl.appendChild(li);

			YAHOO.util.Event.addListener(a, 'click', function(e) {
				YAHOO.util.Event.stopEvent(e);
				var id = this.id;
				var index = id.substring('option-link-'.length, id.length);
				_private.showOptionSection(index);
				optionsDropDown.hideDropDown();
				return false;
			});
		}

		innerOptionsDropDownDiv.appendChild(optionsUl);
		outerOptionsDropDownDiv.appendChild(innerOptionsDropDownDiv);
		document.body.appendChild(outerOptionsDropDownDiv);
	
		var optionsDropDown = YAHOO.squarecompare.DropDown({linkId: 'options-drop-down-link',menuId: 'options-drop-down'});			

	};
	
	_private.init = function() {
		if (options.format=='onDemand') {
			YAHOO.util.Dom.setStyle('data-table-options-list', 'padding', '8px');
			YAHOO.util.Dom.setStyle('data-table-options-list', 'overflow-y', 'auto');
			YAHOO.util.Dom.setStyle('data-table-options-list', 'height', '300px');
			YAHOO.util.Dom.addClass('data-table-options-list', 'drop-down-menu');
			var optionsDropDown = YAHOO.squarecompare.DropDown({linkId: 'results-drop-down-link',menuId: 'data-table-options-list'});
		}
		else {			
			var dataTableInputEls = YAHOO.util.Dom.get('data-table-options-list');
			_private.sourceLiEls = YAHOO.util.Selector.query('li', dataTableInputEls, false);
			
			_private.optionsDropDown = _private.createOptionsDropDown();
			
			_private.showOptionSection(0);
			
			YAHOO.util.Dom.setStyle('filter-accordion', 'display', '');
		}
		
	};
	
	_private.init();
	
	return _public;
};
