var req;
var ScodeReturn = new Array();
var SdescReturn = new Array();

function SendRequest2 (url, type_return) {
	//type_return: 'alertadmin', 'alertadminreload','alert', 'none' or function action on SendRequest
	req = null;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		if (type_return == 'alertadmin') {
			req.onreadystatechange = processAlertadmin;
		} else if (type_return == 'alertadminreload') {
			req.onreadystatechange = processAlertadminReload;
		} else if (type_return == 'alert') {
			req.onreadystatechange = processAlert;
		} else if (type_return == 'buscacep') {
			req.onreadystatechange = processBuscaCep;
		} else if (type_return != 'none') {
			//req.onreadystatechange = type_return;
			req.onreadystatechange = function () {
								if (req.readyState == 4) {
									if (req.status == 200) {
										type_return
									}
								}
							     };
		}
		req.open("GET", url, true);
		req.send(null);
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			if (type_return == 'alertadmin') {
				req.onreadystatechange = processAlertadmin;
			} else if (type_return == 'alertadminreload') {
				req.onreadystatechange = processAlertadminReload;
			} else if (type_return == 'buscacep') {
				req.onreadystatechange = processBuscaCep;
			} else if (type_return == 'alert') {
				req.onreadystatechange = processAlert;
			} else if (type_return != 'none') {
				//req.onreadystatechange = type_return;
				req.onreadystatechange = function () {
									if (req.readyState == 4) {
										if (req.status == 200) {
											type_return
										}
									}
								     };
			}
			req.open("GET", url, true);
			req.send(null);
		}
	}
}

function processAlertadminReload () {
	ScodeReturn = null;
	SdescReturn = null;
	if (req.readyState == 4) {
		if (req.status == 200) {
			var code = new Array();
			var description = new Array();
			objXML = req.responseXML;
			if (objXML) {
				tickerobj = objXML.getElementsByTagName("return")[0];
				for (i=0;i<tickerobj.childNodes.length;i++){
					if (tickerobj.childNodes[i].nodeName == 'msg') {
						tickerobj2 = tickerobj.childNodes[i];
						for (n=0;n<tickerobj2.childNodes.length;n++){
							if (tickerobj2.childNodes[n].nodeType == 1) {
								if (tickerobj2.childNodes[n].nodeName == 'code') {
									code.push(tickerobj2.childNodes[n].firstChild.nodeValue);
								} else if (tickerobj2.childNodes[n].nodeName == 'description') {
									description.push(tickerobj2.childNodes[n].firstChild.nodeValue);
								}
							}
						}
					}
				}
				ScodeReturn = code;
				SdescReturn = description;
				// arrumar if abaixo pois code return é array
				if (ScodeReturn[0] != 0) {
					alertadmin (description.join("<br />"),null);
				} else {
					alertadmin (description.join("<br />"),'window.location.reload()');
				}
			} else {
				alertadmin ('Processo interrompido. Não foi localizado o retorno, pode ser que a sessão expirou!',null);
			}
		} else {
			alert("Houve um problema ao obter os dados:\n" + req.statusText);
		}
	}
}

function processBuscaCep () {
	if (req.readyState == 4) {
		if (req.status == 200) {
			var logradouro = '';
			var bairro = '';
			var cidade = '';
			var estado = '';
			objXML = req.responseXML;
			if (objXML) {
				tickerobj = objXML.getElementsByTagName("return")[0];
				for (i=0;i<tickerobj.childNodes.length;i++){
					if (tickerobj.childNodes[i].nodeName == 'endereco') {
						tickerobj2 = tickerobj.childNodes[i];
						for (n=0;n<tickerobj2.childNodes.length;n++){
							if (tickerobj2.childNodes[n].nodeType == 1) {
								if (tickerobj2.childNodes[n].nodeName == 'logradouro') {
									if (tickerobj2.childNodes[n].firstChild)
									logradouro = tickerobj2.childNodes[n].firstChild.nodeValue;
								} else if (tickerobj2.childNodes[n].nodeName == 'bairro') {
									if (tickerobj2.childNodes[n].firstChild)
									bairro = tickerobj2.childNodes[n].firstChild.nodeValue;
								} else if (tickerobj2.childNodes[n].nodeName == 'cidade') {
									if (tickerobj2.childNodes[n].firstChild)
									cidade = tickerobj2.childNodes[n].firstChild.nodeValue;
								} else if (tickerobj2.childNodes[n].nodeName == 'estado') {
									if (tickerobj2.childNodes[n].firstChild)
									estado = tickerobj2.childNodes[n].firstChild.nodeValue;
								} 
							}
						}
					}
				}
				document.getElementById("logradouro").value = logradouro;
				document.getElementById("bairro").value = bairro;
				document.getElementById("cidade").value = cidade;
				document.getElementById("estado").value = estado;
				if (!logradouro) {
					enableinputcep(true);
					alert('A busca de seu endereço pelo CEP não foi localizada, preencha seu endereço manualemnte!');
				} else {
					disableinputcep(true)
				}
			} else {
				alert ('Processo interrompido. Não foi localizado o retorno, pode ser que a sessão expirou!',null);
			}
		} else {
			alert("Houve um problema ao obter os dados:\n" + req.statusText);
		}
	}
}
function processAlertadmin () {
	ScodeReturn = null;
	SdescReturn = null;
	if (req.readyState == 4) {
		if (req.status == 200) {
			var code = new Array();
			var description = new Array();
			objXML = req.responseXML;
			if (objXML) {
				tickerobj = objXML.getElementsByTagName("return")[0];
				for (i=0;i<tickerobj.childNodes.length;i++){
					if (tickerobj.childNodes[i].nodeName == 'msg') {
						tickerobj2 = tickerobj.childNodes[i];
						for (n=0;n<tickerobj2.childNodes.length;n++){
							if (tickerobj2.childNodes[n].nodeType == 1) {
								if (tickerobj2.childNodes[n].nodeName == 'code') {
									code.push(tickerobj2.childNodes[n].firstChild.nodeValue);
								} else if (tickerobj2.childNodes[n].nodeName == 'description') {
									description.push(tickerobj2.childNodes[n].firstChild.nodeValue);
								}
							}
						}
					}
				}
				ScodeReturn = code;
				SdescReturn = description;
				// arrumar if abaixo pois code return é array
				//if (ScodeReturn != 0)
				alertadmin (description.join("<br />"), null);
			} else {
				alertadmin ('Processo interrompido. Não foi localizado o retorno, pode ser que a sessão expirou!',null);
			}
		} else {
			alert("Houve um problema ao obter os dados:\n" + req.statusText);
		}
	}
}


/*############################################################
#                        ALERT ADMIN
############################################################*/
function alertadmin_close () {
	DIV_unload_checkpos('msgs');
	document.getElementById('msgs').innerHTML = '';
	document.getElementById('msgs').style.display = 'none';
}

function alertadmin (msg, act) {
	if (!act) {
		act = 'alertadmin_close()';
	}
	var footer = "<br /><br /><input type='button' id='botok' value='OK' onClick='" + act + "'>";
	msg = msg + footer;
	document.getElementById('msgs').innerHTML = msg;
	document.getElementById('msgs').style.display = 'block';
	DIV_load_checkpos('msgs');
}

/*############################################################
#                   POSICIONAMENTO DE DIV
############################################################*/
var DIV_timer = new Array();
function DIV_getpos () {
	if (document.layers) {
		v=".top=";
		dS="document.";
		sD="";
		yxx="window.pageYOffset+30";
	} else if (document.all) {
		v=".pixelTop=";
		dS="";
		sD=".style";
		yxx="document.body.scrollTop+30";
	} else if (document.getElementById) {
		yxx="window.pageYOffset+30";
	}
}
DIV_getpos();
function DIV_load_checkpos (divid) {
	DIV_unload_checkpos(divid);
	yy=eval(yxx);
	if (document.getElementById) {
		document.getElementById(divid).style.top=yy;
	} else {
		eval(dS+divid+sD+v+yy);
	}
	DIV_timer[divid] = setTimeout("DIV_load_checkpos('"+divid+"')", 10);
}
function DIV_unload_checkpos (divid) {
	clearTimeout(DIV_timer[divid])
}


