﻿
		/**
		* 0jes - José Jiménez
		*/
		
function StyleSelectObject(){
	var _scope			= this
	var _SelectObject 	= [];
	var seleccion 			= document.getElementsByTagName('select');
	this.onChange	 	= onChange;
	subscribeBody()
	
	this.createDropDown = function(seleccion){
		var li;
		var texto;
		var items;
		var option;
		var opciones 		 		= seleccion.options;
		var total   		 		= opciones.length;
		var container        		= document.createElement("div");
			container.className 	= "styleContainer";
			container.id       	 	= seleccion.id+"Select";
		var selected            	= document.createElement("div");
			selected.className  	= "itemSelected";
			selected.onclick    	= openList;				 
		var list 					 = document.createElement("ul");
			list.className 			 = "dropDown dropDownClose";
			list.style.display 		 = 'none';				
			seleccion.style.display	 = "none";
			_SelectObject[seleccion.id] = {item:"",timeout:0,container:container, label:selected};
		
		for(var i = 0; i < total;i++){
			option		= opciones[i];
			texto  		= document.createTextNode(option.text);
			li     		= document.createElement('li');
			li.seleccion   = seleccion;
			li.selIndex = option.index;
			li.val    = option.value;
			li.text     = option.text;
			li.onclick  = selectItem;
			
			if (option.selected) {
				li.className                 += " selected";
				_SelectObject[seleccion.id].item = li;
				selected.innerHTML 		      = option.text;
			}
			
			li.onmouseover = function() {
				this.className = this.className.replace(new RegExp(" hout\\b"), ' hover');
			}
		
			li.onmouseout = function() {
				this.className = this.className.replace(new RegExp(" hover\\b"), ' hout');
			}
			
			li.onmouseover();
			li.appendChild(texto);
			list.appendChild(li);
		}
		
		container.appendChild(selected);
		container.appendChild(list);
		seleccion.parentNode.appendChild(container);
	};
	
	function openList(){
		showList(this.parentNode.getElementsByTagName("ul")[0]);
	}
	
	function showList(container, closeDrop){
		if(new RegExp(" dropDownOpen\\b").test(container.className) || closeDrop){
			container.className     = container.className.replace(new RegExp(" dropDownOpen\\b"), ' dropDownClose');
			container.style.display = 'none';
		}else{
			container.className     = container.className.replace(new RegExp(" dropDownClose\\b"), ' dropDownOpen');
			container.style.display = '';
		}
	}
	
	function selectItem () {		
		var idSelect = this.seleccion.id;			
		if(_SelectObject[idSelect].item != this){
			_SelectObject[idSelect].item.className = "";
			_scope.onChange(this);			
		}			
		var option 								= _SelectObject[idSelect];
			option.item 						= this;		
			option.item.className 				= 'selected';								
			option.item.seleccion.selectedIndex 	= this.selIndex;
			option.label.innerHTML 				= this.text;
	} 
	
	function subscribeBody(){
		if(document.addEventListener)document.addEventListener("click",onCloseCombos,false);
		else document.attachEvent("onclick",onCloseCombos);
	}
	
	function onCloseCombos(evt){		
		try{
			var item;
			var container;
			var evt  = evt || window.event;
			var target = evt.originalTarget ? evt.originalTarget.parentNode.id : evt.srcElement.parentNode.id;			
			for(var i in  _SelectObject){
				container = _SelectObject[i].container;
				if(target != container.id){
					showList(container.getElementsByTagName("ul")[0], true);
				}
			}
		}catch(error){
			
		}
	}
	
	function onChange(evt){			
		//alert(evt)
	}
	
	for (var i = 0; i < seleccion.length; i++){			
		this.createDropDown(seleccion[i]);
	}
	
}


