function NewXMLHTTP() {
	try {
	    xmlhttp = new XMLHttpRequest();
	} catch(ee) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(E) {
				xmlhttp = false;
			}
		}
	}
	return xmlhttp;
}

function Login(login, senha, params)
{
	var xmlHttp = NewXMLHTTP();

	xmlHttp.open("POST", "/login.php" + params, true);

	xmlHttp.onreadystatechange = function() {
		switch (xmlHttp.readyState) {
			case 4:
				// Carrega XML p/ xmlDoc
				var xmlDoc = xmlHttp.responseXML;

				// Carrega valores do XML
				var content = decodeURIComponent(xmlDoc.getElementsByTagName('content')[0].firstChild.data);
				var redirect = xmlDoc.getElementsByTagName('redirect')[0].firstChild;
				var status = xmlDoc.getElementsByTagName('status')[0].firstChild.data;

				if(status > 0)
				{
					document.getElementById("background").style.display = "none";
					window.location.href = redirect.data;
				} else {
					document.getElementById("box-center").innerHTML = unescape(content);
					document.getElementById('loginEmail').focus();
				}

			break;
		}
	};

    var parameters = [
        'login=' + login,
        'senha=' + senha,
    ];

    xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    xmlHttp.setRequestHeader('Content-length', parameters.length);
    xmlHttp.setRequestHeader('Connection', 'close');
	xmlHttp.send(parameters.join('&'));
}

function FechaBox()
{
	CancelaLogin();

	document.getElementById("background").style.display = 'none';
	document.getElementById("box-center").style.display = 'none';
	document.body.style.overflow = '';

	return true;
}

function CancelaLogin()
{
	var xmlHttp = NewXMLHTTP();
	xmlHttp.open("GET", "/login.php?cancelar=1", false);
	xmlHttp.send(null);

	return true;
}

/**
 * Faz requisição e interpreta XML de retorno, preenchendo um determinado select com os itens.
 * @param string url
 * @param object SelectObj
 * @param string DefaultValue
 * @param boolean Assincrona
 */
function AlimentaSelect(url, SelectObj, DefaultValue, Assincrona)
{
	if(Assincrona == undefined){Assincrona=true};

	//CRIA OBJETO
	if (window.XMLHttpRequest){
	    var XMLObj = new XMLHttpRequest();
	}else if(window.ActiveXObject){
	    var XMLObj = new ActiveXObject("Microsoft.XMLHTTP");
	}

	//PERSONALIZACAO DE EVENTOS
	XMLObj.onreadystatechange = function () {
		switch(XMLObj.readyState){
			case 1:
				//EXIBE STATUS CARREGANDO
				SelectObj.disabled = true;
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Carregando...", "");

				break;
			case 4:
				//INICIA A MONTAGEM DO SELECT
				SelectObj.options.length = 0;
				SelectObj.options[0] = new Option("Escolha uma loja", "");

				//XML PARSER
				var xmlDoc = XMLObj.responseXML;

				var Row = xmlDoc.getElementsByTagName('linha');

				//CRIA OPTION PARA O SELECT
				for(i=0; i < Row.length; i++){
					SelectObj.options[SelectObj.options.length] = new Option(
															Row[i].getElementsByTagName('nome').item(0).firstChild.data,
															Row[i].getElementsByTagName('codigo').item(0).firstChild.data
															);
				}
				//OPTION SELECIONADO POR PADRAO
				if (DefaultValue == undefined) DefaultValue = "";
				SelectObj.value = DefaultValue;
				SelectObj.disabled = false;

				break;
		}
	};

	//CARREGA XML
	XMLObj.open("GET", url, Assincrona);
	XMLObj.send(null);

	// MODO SÍNCRONO
	if(!Assincrona)
	{
		//INICIA A MONTAGEM DO SELECT
		SelectObj.options.length = 0;
		SelectObj.options[0] = new Option("", "");

		//XML PARSER
		var xmlDoc = XMLObj.responseXML;

		var Row = xmlDoc.getElementsByTagName('linha');

		//CRIA OPTION PARA O SELECT
		for(i=0; i < Row.length; i++){
			SelectObj.options[SelectObj.options.length] = new Option(
													Row[i].getElementsByTagName('nome').item(0).firstChild.data,
													Row[i].getElementsByTagName('codigo').item(0).firstChild.data
													);
		}
		//OPTION SELECIONADO POR PADRAO
		if (DefaultValue == undefined) DefaultValue = "";
		SelectObj.value = DefaultValue;
		SelectObj.disabled = false;
	}
}