﻿
// NGDN-2121【登录后进入我的单词本调用cm.js中的“_setSelect()”; 其他情况则调用“cm_hmenu_list.js”】
$Dom().nameSplace('hmenu');
hmenu.fun = (function(){

	// 取出select列表中的内容且赋值给UL
	var _setList = function(select,target){
		var	selected = $('selectFolder'),
			oItems;

		select = $Dom(select).getElement();
		target = $Dom(target).getElement();
		oItems = target.getElementsByTagName('li');
		target.innerHTML = '';
		for(var i = 0,len = select.options.length; i < len; i++){
			var oLi = document.createElement('li');

			oLi.innerHTML = select.options[i].text;
			oLi.title = select.options[i].text;
			oLi.setAttribute('value',select.options[i].value);

			oLi.onmouseover = function(){
				$Dom(this).setStyle('background','#999');
			}

			oLi.onmouseout = function(){
				$Dom(this).setStyle('background','#fff');
			}

			oLi.onclick = function(){
				selected.innerHTML = this.innerHTML;
				$Dom(selected).setAttribute('value',$Dom(this).getAttribute('value'));
				$Dom(target).setStyle('display','none');
			}
			target.appendChild(oLi);
		}

		document.onclick = function(){
			$Dom(target).setStyle('display','none');
		}

		if(oItems.length > 10){
			//var	wList = $Dom(document).getElementsByClassName('selected')[1].offsetWidth;
			var prev = target.previousSibling;
			while(prev.nodeType != 1)
				prev = prev.previousSibling;
			var wList = prev.offsetWidth;
			target.style.height = parseInt($Dom(oItems[0]).getStyle('lineHeight'), 10)*10+'px';
			
			target.style.width = wList-2+'px';
			target.style.overflow = 'auto';
			target.style.overflowX = 'hidden';
		}else{
			target.style.height = 'auto';
		}
		$Dom(target).toggle();
	};

	var _bindEvent = function(select,target){
		var btn = $('btn'),
			selected = $('selectFolder');

		$Dom(selected).setStyle('cursor','pointer');
		btn.onclick = function(event){
			_setList(select,target);
			$Dom().setStop(event);
		}
		selected.onclick = function(event){
			_setList(select,target);
			$Dom().setStop(event);
		}
	};

	return{
		init : function(select,target){
			_bindEvent(select,target);
		}
	}
})();
