/*
------------------------------------------------------------------------------------------
© Digital Industry - 2008
Autor:		Rafael Cronemberger de Assis
Cliente: 	Esser
------------------------------------------------------------------------------------------
*/

function newAjaxObject(){
	var objAjax;

	try{
		objAjax 	= new ActiveXObject('Microsoft.XMLHTTP');
	} 
	catch(e){
		try{
			objAjax = new ActiveXObject('Msxml2.XMLHTTP');
			objAjax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		}
		catch(ex){
			try{
				objAjax = new XMLHttpRequest();
			}
			catch(exc){
				objAjax = null;
			}
		}
	}
	return objAjax;
}

function RunAjaxRequest(stMethod, stUrl, stParameters, objFunction, idElement, stTitle){
	objXmlRequest 	= newAjaxObject()
	process 		= objFunction;

	objXmlRequest.onreadystatechange = function(){
		try{
			if(!idElement){
				/* Sem parâmetros de Retorno */
				process(objXmlRequest);
				
			}else{
				/* Com parâmetros de Retorno */
				process(objXmlRequest, idElement, stTitle);
			}
		}
		catch(ex){
			alert('Um erro ocorreu ao tentar carregar os dados. Tente novamente.\nDescrição: ' + ex.message)
		}
	}

	stMethod = stMethod.toUpperCase();
	objXmlRequest.open(stMethod, stUrl, true);
	
	if(stMethod == 'POST'){
		objXmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
		objXmlRequest.setRequestHeader('Method', 'POST ' + stUrl + 'HTTP/1.1');
		objXmlRequest.setRequestHeader('Cache-Control', 'no-store, no-cache, must-revalidate');
		objXmlRequest.setRequestHeader('Cache-Control', 'post-check=0, pre-check=0');
		objXmlRequest.setRequestHeader('Pragma', 'no-cache');
		/*
		objXmlRequest.setRequestHeader('charset','ISO-8859-1');
		objXmlRequest.setRequestHeader('encoding','ISO-8859-1');
		*/
	}
	objXmlRequest.send(stParameters);
	return objXmlRequest;
}

function LoadDropDown(stMethod, stUrl, stParameters, idDropDestiny, stTitle){
	RunAjaxRequest(stMethod, stUrl, stParameters, TrataXmlDropDown, idDropDestiny, stTitle)
}

function LoadAjaxPage(stMethod, stUrl, stParameters, objFunction){
	RunAjaxRequest(stMethod, stUrl, stParameters, objFunction, null)
}

function TrataXmlDropDown(objXmlRequest, idDropDestiny, stTitle){
	var idFeedback					= 'obj_Feedback'
	var objDropDown 				= document.getElementById(idDropDestiny)
	var objFeedback					= document.getElementById(idFeedback)
	
	if(objFeedback){
		ShowHideElement(objFeedback, 1)
		CenterObject(objFeedback, 600, 50)
	}

	if(objDropDown) ResetDropDown(objDropDown);

	objDropDown.options[0] 			= new Option('Carregando ...','');
	objDropDown.options[0].selected	= true;

	BlockUnblockElement(objDropDown, 0)

	if(objXmlRequest.readyState == 4){
		if (objXmlRequest.status == 200){
			try{
				var objXmlResult	 	= objXmlRequest.responseXML

				/* Verificação Bug Firefox */
				var objFirstNode		= objXmlResult.childNodes[1]
				if(!objFirstNode)		objFirstNode = objXmlResult.childNodes[0]

				var objChildNode		= objFirstNode.firstChild
				var stChildNode			= objChildNode.nodeName
				//var nmTotalResults 	= objXmlRequest.responseXML.getElementsByTagName(""+stChildNode+"").length
			}

			catch(ex){
				alert('Um erro ocorreu ao tentar carregar os dados. Tente novamente.\nDescrição: ' + ex.message)
			}
			
			/* End Of File */
			if(stChildNode == 'eof'){
				objDropDown.options[objDropDown.options.length] = new Option('Dados não encontrados', '');
			}else{
				var objFieldXml = objXmlResult.getElementsByTagName(stChildNode);
				var nminc 		= 0
				var arrayNodes 	= new Array();
	
				for (i=0; i < objFieldXml.length; i++){
					for (j=0; j < objFieldXml[i].childNodes.length; j++){
						var nmNodeType = objFieldXml[i].childNodes[j].nodeType
	
						if(nmNodeType == 1){
							arrayNodes[nminc] = objFieldXml[i].childNodes[j].firstChild.nodeValue
							nminc ++
						}
					}
				}
	
				for(nmInc = 0; nmInc < arrayNodes.length; nmInc = nmInc + 2){
					var nmValue		= arrayNodes[nmInc]
					var stDisplay	= arrayNodes[nmInc + 1]
					
					stTitle
					
					if(stTitle && 	nmInc == 0) objDropDown.options[objDropDown.options.length] = new Option(stTitle, '');
					if(!stTitle && 	nmInc == 0) objDropDown.options[objDropDown.options.length] = new Option('Favor selecionar', '');
//					if(nmInc == 0) objDropDown.options[objDropDown.options.length] = new Option('Favor selecionar', '');
					objDropDown.options[objDropDown.options.length] = new Option(stDisplay, nmValue);
				}
			}
			
			Timer(2000, "EndLoadDropDown('"+idDropDestiny+"', '"+idFeedback+"')");
		}
	}
}

function EndLoadDropDown(idDropDestiny, idFeedback){
	var objDropDown 		= document.getElementById(idDropDestiny)

	BlockUnblockElement(objDropDown, 1)
	objDropDown.options[0] = null;

	FadeElement(idFeedback, 'out', 0250)
}