// JavaScript Document



/*******************************************************************/
/*  Popula Option lists */
/*

*/
/*******************************************************************/

function frm_opt_clear(OptionList) {

	//Always clear an option list from the last entry to the first
	for (x = OptionList.length; x >= 0; x = x - 1) {
		OptionList[x] = null;
	}

}

function frm_opt_add(OptionList, OptionValue, OptionText) {
	OptionList[OptionList.length] = new Option(OptionText, OptionValue);
}

function fj_opt_popula(XML, catField, catVal, optList, optVal, optText, firstText, firstVal)
{
	
	fj_ajax_txt('', 'obj_texto');
	if(optList.style) {	optList.style.display = "block"; }
	// limpa SELECT
	frm_opt_clear(optList);
	// abre XML
	var countries = new useXML(XML);
	// primeira linha
	frm_opt_add(optList, firstVal, firstText);
	
	// popula
	for(i = 0; i < countries.rows(catField); i++)
	{
		if(countries.result(catField, i) == catVal) 	
		{
			frm_opt_add(optList, countries.result(optVal, i), countries.result(optText, i));
		}
	}
	
	
	return optList.length;
}



/*******************************************************************/
/*  Lê o XML */
/*

Exemplo de utilização da classe.

var snake = new useXML("books.xml");
alert(snake.rows('book'));
alert(snake.result('title', 1));

*/
/*******************************************************************/



//definimos el constructor para la clase 
function useXML(arquivo)
{ 
			try //Internet Explorer
			{
				this.xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			}
			
			catch(e)
			{
				try //Firefox, Mozilla, Opera, etc.
				{
					this.xmlDoc=document.implementation.createDocument("","",null);
				}
				catch(e) 
				{
					alert(e.message);
				}
			}



			try
			{
				this.xmlDoc.async=false;
				this.xmlDoc.load(arquivo);
				
			}
			catch(e) 
			{
				alert(e.message)
			}

    this.rows = XMLrows
    this.result = XMLcampo
} 


function  XMLcampo(campo, i) 
{
			try
			{
				return(this.xmlDoc.getElementsByTagName(campo)[i].childNodes[0].nodeValue);
			}
			catch(e) 
			{
				alert(e.message)
			}		
}

function  XMLrows(campo) 
{
			try
			{
				return(this.xmlDoc.getElementsByTagName(campo).length);
			}
			catch(e) 
			{
				alert(e.message)
			}
}	  



/* FIM LE XML */









function fj_ajax_txt(txt, ajaxID) 
{ 
	 aj_divID = document.getElementById(ajaxID);
	 if(aj_divID)
	 {
	 	aj_divID.innerHTML = txt;  
	 }
} 



function fj_ajax(url, ajaxID) 
{ 

	// fj_div_display(ajaxID, 1);
	 
	 
	var req = new Array();
	req[ajaxID] = null; 
	if (window.XMLHttpRequest) 
	{ 
		req[ajaxID] = new XMLHttpRequest(); 
		req[ajaxID].onreadystatechange = function() 
							{ 
								aj_divID = document.getElementById(ajaxID);
								if (req[ajaxID].readyState == 4) 
								{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
										
										//setTimeout("table_zebrar()", 200);
										
										// setTimeout("table_zebrar()", 100);
									} 
									else 
									{ 
										// registrar o erro.
										alert("Sorry,  our Site have a problem here! CODE #:\n" + req[ajaxID].statusText + "=" + req[ajaxID].status + "."); 
									}
								} 
								else
								{
									aj_divID.innerHTML = '<img src="/img/loading.gif">Loading...'; 
								}
							} 
		req[ajaxID].open("GET", url, true); 
		req[ajaxID].send(null); 
	} 
	else if (window.ActiveXObject) 
	{ 
		req[ajaxID] = new ActiveXObject("Microsoft.XMLHTTP"); 
		// contador = 1;
		if (req[ajaxID]) 
		{ 
				req[ajaxID].onreadystatechange =  function() 
				{ 
					aj_divID = document.getElementById(ajaxID);
					if (req[ajaxID].readyState == 4) 
					{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
										// setTimeout("table_zebrar()", 200);
										// setTimeout("table_zebrar()", 100);
									} 
									else 
									{ 
										// registrar o erro.
										alert("Sorry,  our Site have a problem here! CODE #:\n" + req[ajaxID].statusText + "=" + req[ajaxID].status + "."); 
									}
								} 
								else
								{
									aj_divID.innerHTML = '<img src="/img/loading.gif">Loading...'; 
									// contador++;
					}
				} 
				req[ajaxID].open("GET", url, true); 
				req[ajaxID].send(); 
		} 
	} 
} 


function fj_ajax_hide(url, ajaxID) 
{ 
	fj_div_display(ajaxID, 0);
	var req = new Array();
	req[ajaxID] = null; 
	if (window.XMLHttpRequest) 
	{ 
		req[ajaxID] = new XMLHttpRequest(); 
		req[ajaxID].onreadystatechange = function() 
							{ 
								aj_divID = document.getElementById(ajaxID);
								if (req[ajaxID].readyState == 4) 
								{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
									} 
									else 
									{ 
										// registrar o erro.
									}
								} 
								else
								{
									aj_divID.innerHTML = ''; // carregando
								}
							} 
		req[ajaxID].open("GET", url, true); 
		req[ajaxID].send(null); 
	} 
	else if (window.ActiveXObject) 
	{ 
		req[ajaxID] = new ActiveXObject("Microsoft.XMLHTTP"); 
		// contador = 1;
		if (req[ajaxID]) 
		{ 
				req[ajaxID].onreadystatechange =  function() 
				{ 
					aj_divID = document.getElementById(ajaxID);
					if (req[ajaxID].readyState == 4) 
					{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
									} 
									else 
									{ 
										// registrar o erro.
									}
								} 
								else
								{
									aj_divID.innerHTML = ''; // carregando; 
					}
				} 
				req[ajaxID].open("GET", url, true); 
				req[ajaxID].send(); 
		} 
	} 
} 



function fj_ajax_post(url, ajaxID, formulario_obj) 
{ 

	// fj_div_display(ajaxID, 1);

	var req = new Array();
	req[ajaxID] = null; 

	
	if (window.XMLHttpRequest) 
	{ 
	
	
		req[ajaxID] = new XMLHttpRequest(); 
		req[ajaxID].overrideMimeType('text/xml');
		//req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

		// req.setRequestHeader('Content-Type',   "application/x-www-form-urlencoded; charset=iso-8859-1");

		req[ajaxID].onreadystatechange = function() 
							{ 
								aj_divID = document.getElementById(ajaxID);
								if (req[ajaxID].readyState == 4) 
								{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
										//setTimeout("table_zebrar()", 200);
										
										// setTimeout("table_zebrar()", 100);
									} 
									else 
									{ 
										alert("Houve um problema ao obter os dados:\n" + req[ajaxID].statusText + ".\nCode: " + req[ajaxID].status + "."); 
									}
								} 
								else
								{
									aj_divID.innerHTML = '<img src="/img/loading.gif">Loading...'; 
								}
							} 
		var str = getFormValues(formulario_obj);
		req[ajaxID].open("POST", url, true); 
		// req[ajaxID].setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

		
		req[ajaxID].setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
		req[ajaxID].send(str);


		// req[ajaxID].send(null); 
	} 
	else if (window.ActiveXObject) 
	{ 
	
		req[ajaxID] = new ActiveXObject("Microsoft.XMLHTTP");
		
		// contador = 1;
		if (req[ajaxID]) 
		{ 
				req[ajaxID].onreadystatechange =  function() 
				{ 
					aj_divID = document.getElementById(ajaxID);
					if (req[ajaxID].readyState == 4) 
					{ 
									if (req[ajaxID].status == 200) 
									{ 
										aj_divID.innerHTML = req[ajaxID].responseText; 
										// setTimeout("table_zebrar()", 200);
										// setTimeout("table_zebrar()", 100);
									} 
									else 
									{ 
										alert("Houve um problema ao obter os dados:\n" + req[ajaxID].statusText + ".\nCode: " + req[ajaxID].status + "."); 
										// contador = -1;
									}
								} 
								else
								{
									aj_divID.innerHTML = '<img src="/img/loading.gif">Loading...'; 
									// contador++;
					}
				} 
				var str = getFormValues(formulario_obj);
				req[ajaxID].open("POST", url, true); 
				req[ajaxID].setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
				req[ajaxID].send(str); 
		} 
	} 
} 




/*
pega um formulário e cria uma string tipo GET
*/
function getFormValues(fobj,valFunc) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
       switch(fobj.elements[i].type) 
       { 
           case "text": 
               str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                break; 
           case "hidden": 
               str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                break; 
           case "select-one": 
                str += fobj.elements[i].name + 
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                break; 
           case "textarea": 
                str += fobj.elements[i].name + 
                "=" + escape(fobj.elements[i].value) + "&"; 
                break; 			
           case "radio": // nao pronto ainda,  ajustar e testar
			   alert("ERRO: POST AJAX - radio not finished!");
                str += fobj.elements[i].name + 
                "=" + escape(fobj.elements[i].value) + "&"; 
                break;                 
           case "checkbox": // nao pronto ainda,  ajustar e testar
//			   alert("ERRO: POST AJAX - checkbox not finished!");
				if(fobj.elements[i].checked){
	                str += fobj.elements[i].name + "=1&"; 
					thisMSG= fobj.elements[i].name + "=1&"; 
				}else{
					str += fobj.elements[i].name + "=0&"; 
					thisMSG= fobj.elements[i].name + "=0&"; 
				}
				
				alert("ERRO: POST AJAX - checkbox not finished! => (" + thisMSG + ")" + fobj.elements[i].checked);
                break;                 
           case "file": // nao pronto ainda,  ajustar e testar
		   		alert("ERRO: POST AJAX - file not finished!");
                str += fobj.elements[i].name + 
                "=" + escape(fobj.elements[i].value) + "&"; 
                break; 
           case "submit": 
                break; 							
           case "button": 
                break; 							
			default:
				str += 'Error==' + escape('Error: No found type ' + fobj.elements[i].type) + "&"; 

				
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
//   alert (str); 
}


function fj_div_display(div, show)
{
	obj = document.getElementById(div);

	if(obj)
	{
		if(show == 0)
		{
			// fj_ajax_txt('', div);
			obj.style.display = "none";
			obj.style.visibility = "hidden";
		}
		else
		{
			obj.style.display = "";
			obj.style.visibility = "visible";
		}
	}
	obj.style.display = "block";
 
//	document.onmousemove = fj_mouse_position_get;

}



function fj_trim(str)
{
while (str.charAt(0) == " ")
str = str.substr(1,str.length -1);

while (str.charAt(str.length-1) == " ")
str = str.substr(0,str.length-1);

return str;
}