/* **************************************************************
*                         --XJS--	                            *
* Desenvolvedora: Rhianna Cantarelli							*
* Versão: 1.5													*
* Data: 17.05.2007												*
* Email: r.rhianna@yahoo.com.br									*
************************************************************** */







/*
	- CONFIGURAÇÃO DO SCRIPT PRINCIPAL NA ADIÇÃO DE UM SELECT DHTML:
	
	EM 'executeOnLoad()'
	Add:
	if(xjs_browser.type == 'IE'&& xjs_browser.version == '6'){
		addHoverSuport_byClass('selectDHTML', 'li');
	}
	initiDHTMLSelects('selectDHTML');


	Em 'executeOnMouseDown()'
	Add:
	setTimeout("closeDHTMLSelect()", 100);
	
	O ID DO SELECT DEVE SER DEFINIDO NA DIV QUE LHE CONTEM
	A PARTIR DESTE ID, O ID DOS DOIS INPUTS QUE SEGUEM DEVE SER CORRIGIDO PARA
	
	idatribuido + _Text
	e
	idatribuido + _Value	
*/





/* **************************************************************
SELECT DHTML
************************************************************** */
function initiDHTMLSelects() {
	// Corrige Hover para IE6
	if(xjs_browser.type == 'IE'&& xjs_browser.version == '6'){ addHoverSuport_byClass(xjsStr_SelectDHTMLClass, 'li'); }

	var getAllSelectsDHTML = getElementsByClassName(xjsStr_SelectDHTMLClass);
	
	for(i=0; i<getAllSelectsDHTML.length; i++) {
		// Resgata ID do Select Atual
		idObject = getAllSelectsDHTML[i].id;
		objSelect = id(idObject);
		objSelect.style.zIndex = '1';
		
		objSelectBorder = getFirstTagChildOfID(idObject, 'div')

		// Adiciona Evento Para Abrir e Fechar Select
		if (document.attachEvent) { objSelectBorder.attachEvent('onclick', openCloseDHTMLSelect); }
		else { objSelectBorder.setAttribute('onclick', 'openCloseDHTMLSelect(this)'); }
		
		// Adiciona Eventos para cada Option setar os Valores
		allOptions = getTagsChidOfObj(objSelect, 'li');
		for(j=0; j<allOptions.length; j++)
		{
			if (document.attachEvent) { allOptions[j].attachEvent('onclick', selectedDHTMLValueSet); }
			else { allOptions[j].setAttribute('onclick', 'selectedDHTMLValueSet(this)'); }
		}
	}
}


function closeDHTMLSelect() {
	if(xjsBool_IgnoreClick == false) {
		if(xjs_OpenDHTMLSelect != null) { 
			xjs_OpenDHTMLSelect.className = xjsStr_SelectDHTMLClass; 
			setZIndex(xjs_OpenDHTMLSelect, 1);
			xjs_OpenDHTMLSelect = null; 
		}
	}
	else { xjsBool_IgnoreClick = false; }
}


function openCloseDHTMLSelect(obj) {
	var atualClass;
	var isOpen;

	// Seleciona Objeto ID Pai do Select e sua Classe Atual
	if(document.attachEvent) {
		var obj = (obj.srcElement) ? obj.srcElement : obj.target;
		isThis = false;
		force = 'obj';

		while(isThis != true) {
			force += '.parentNode';
			obj = eval(force);

			if(obj.className.indexOf('selectBorder') != -1) { 
				isThis = true;
				atualClass = obj.parentNode.className;
				obj = obj.parentNode;
	} } }
	else { 
		atualClass = obj.parentNode.className; 
		obj = obj.parentNode;
	}

	// Verifica se Está Aberto
	if(atualClass.indexOf(xjsStr_SelectDHTMLClass + '_open') != -1) { isOpen = true; }
	else { isOpen = false; }

	// Verifica se Há Outro Select Aberto, Havendo, Fecha-o
	if(isOpen == false && xjs_OpenDHTMLSelect != null && xjs_OpenDHTMLSelect != obj) { 
		xjs_OpenDHTMLSelect.className = xjsStr_SelectDHTMLClass; 
		downZIndex(xjs_OpenDHTMLSelect); 
		xjs_OpenDHTMLSelect = null;
	}

	// Abre ou Fecha Select Atual
	if(isOpen == true) { 
		obj.className = xjsStr_SelectDHTMLClass; 
		xjs_OpenDHTMLSelect = null; 
		setZIndex(obj, 1);
	}
	else if (isOpen == false) { 
		obj.className += ' ' + xjsStr_SelectDHTMLClass + '_open'; 
		xjs_OpenDHTMLSelect = obj; 
		xjsBool_IgnoreClick = true; 
		setZIndex(obj, 2);
	}
}


function selectedDHTMLValueSet(obj) {
	if(document.attachEvent) { var obj = (obj.srcElement) ? obj.srcElement : obj.target; }
    
	thisValue = obj.title;
	idObject = obj.parentNode.parentNode.id;
    
	inputs = getTagsChildOfID(idObject, 'input');
	inputs[0].value = obj.innerHTML;
	inputs[1].value = thisValue;

	closeDHTMLSelect();
	
	if(xjs_setSpecialAction != null && xjs_setSpecialAction == true) { selectedDHTMLSpecial(idObject, thisValue); }
}