function fillForm(frm,filltype,fields,item) {
	var ts   = filltype.split(",");
	var type = new Array();

	for (i in ts) if (i<ts.length) {
		var tss = ts[i].split("=");
		eval(tss[0]+" = new Array ('"+tss[1]+"')");
		type[tss[0]] = tss[1];
	}

	for (j in fields) if (j < fields.length) {
		var fi = fields[j];

		var tag=""; var div="";
		if (frm && (type[fi] != "div")) { tag = eval("frm['"+fi+"']");
		} else { div = document.getElementById(fi); }

		var elm = eval("item.getElementsByTagName('"+fi+"')[0]");
		if (tag || div) {
			var what = type["padrao"];
			if (type[fi]) {
				what = type[fi];
			}

			if (what=="input") {
				tag.value = elm.firstChild.nodeValue;
			} else if (what=="div") {
				div.innerHTML = elm.firstChild.nodeValue;
			} else if (what=="boolean") {
				tag.value = (elm.firstChild.nodeValue=="no") ? "Não" : "Sim";
			} else if (what=="checkbox") {
				tag.checked = (elm.firstChild.nodeValue=="no") ? false : true;
			}
		}
	}
}

function ajax(action,xml,condition,frm,filltype) {
	var ajax = ajaxCheck();

	if (ajax) {
		var call = './?xml='+xml+'&'+condition;
		ajax.open("GET", call, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

		ajax.onreadystatechange = function() {
			if (ajax.readyState==4) {
				if (ajax.status==200) {
					if (ajax.responseText) {
						var item = ajax.responseXML.getElementsByTagName("xml")[0];
						var err  = item.getElementsByTagName("err")[0].firstChild.nodeValue;
						var msg  = item.getElementsByTagName("msg")[0].firstChild.nodeValue;

						if (action=="fill") {
							var fields = item.getElementsByTagName("fields")[0].firstChild.nodeValue.split(",");
							fillForm(frm,filltype,fields,item);
						} else if (action=="checklogin") {
							if (err==0) {
								msg  = "O login escolhido já está registrado.<br>" + msg;
								msg += "<br>Digite um outro login ou clique em ENVIAR para receber sugestões.";
								avisar(msg);
							} else { ocultar('aviso'); }
						} else if (err>0) {
							msg = "<br>O servidor diz: " + msg;
							msg = "Houve um erro de retorno em um processamento dinâmico." + msg;
							avisar(msg);
						}
					} else {
						avisar('Houve um erro de retorno em um processamento dinâmico.');
					}
					ajax = null;
				} else {
					avisar('Houve um erro HTTP em um processamento dinâmico. erro '+ajax.status);
					ajax = null;
				}
			}
		}; ajax.send('');
	}
}

function ajaxCheck() {
	var ajax;

	try {
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	} catch(e) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(ex) {
			try {
				ajax = new XMLHttpRequest();
			} catch(exc) {
				var msg = "Este navegador não tem recursos para uso de processamento dinâmico.";
				msg    += "<br>Recomendamos o download do Mozilla Firefox como navegador.";
				avisar(msg);
				ajax = null;
			}
		}
	}

	return ajax;
}

