﻿function Endereco() {
    var async = null;
}

Endereco.prototype.BuscaCEP = function(cep) {

    var callback =
	    {
	        success: function(o) {
	            var doc = o.responseText;

	            eval("var json = " + doc);

	            switch (json.Result.Status) {

	                case "OK":

	                    if (json.Result.Data.Estado.UF != undefined && json.Result.Data.Estado.UF != "" &&
	                        json.Result.Data.Cidade.IdCidade != undefined && json.Result.Data.Cidade.IdCidade != "0") {

	                        _gel('txtEndereco').value = json.Result.Data.Logradouro;
	                        _gel('txtBairro').value = json.Result.Data.Bairro;
	                        //_gel('txtUF').value = json.Result.Data.Estado.UF;

	                        var cmbUf = _gel('cmbUf');

	                        for (var i = 0; i < cmbUf.length; i++) {

	                            if (cmbUf[i].value == json.Result.Data.Estado.UF) {
	                                cmbUf.selectedIndex = i;
	                            }

	                        }

	                        endereco.LoadCidades(json.Result.Data.Estado.UF, _gel('cmbCidade'), json.Result.Data.Cidade.IdCidade);
	                        
	                        _gel('idCidade').value = json.Result.Data.Cidade.IdCidade;

	                    }
	                    else {
	                        _gel('msgCep').innerHTML = 'O CEP digitado não está cadastrado.';
	                    }
	                    break;

	                case "InvalidData":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	                case "Logoff":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	                case "Error":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	            }

	            //hideLoadingMessage();
	        },

	        failure: function(o) {
	            Alert(o.responseText, "Erro no Request");

	            //hideLoadingMessage();
	        },

	        argument: this
	    }

    _gel('txtEndereco').value = '';
    //_gel('txtUF').value = '';
    //_gel('txtCidade').value = '';
    _gel('idCidade').value = '';
    _gel('msgCep').innerHTML = '';

    var url = wrapperUrl + "act_endereco_load";

    var params = "cep=" + cep;

    YAHOO.util.Connect.asyncRequest('POST', url, callback, params);

    //showLoadingMessage();

}

Endereco.prototype.LoadCidades = function(p_UF, comboCidade, selectedValue) {

    var callback =
	    {
	        success: function(o) {
	            var doc = o.responseText;

	            eval("var json = " + doc);

	            switch (json.Result.Status) {

	                case "OK":

	                    for (var i = comboCidade.length - 1; i >= 0; i--) {
	                        comboCidade.removeChild(comboCidade[i]);
	                    }

	                    var optBlank = document.createElement("option");
	                    optBlank.value = "";
	                    optBlank.innerHTML = "&nbsp;";

	                    comboCidade.appendChild(optBlank);
	                    var selectedIndex = 0;

	                    for (var i = 0; i < json.Result.Data.length; i++) {

	                        if (json.Result.Data[i].IdCidade == selectedValue)
	                            selectedIndex = i + 1;

	                        var opt = document.createElement("option");
	                        opt.value = json.Result.Data[i].IdCidade;
	                        opt.innerHTML = json.Result.Data[i].Descricao;

	                        comboCidade.appendChild(opt);
	                    }

	                    comboCidade.selectedIndex = selectedIndex;

	                    break;

	                case "InvalidData":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	                case "Logoff":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	                case "Error":
	                    Alert(json.Result.Message, "Erro");
	                    break;

	            }

	            //hideLoadingMessage();
	        },

	        failure: function(o) {
	            Alert(o.responseText, "Erro no Request");

	            //hideLoadingMessage();
	        },

	        argument: this
	    }

    if (selectedValue == undefined) selectedValue = "";

    var url = wrapperUrl + "act_cidade_load";

    var params = "uf=" + p_UF;

    YAHOO.util.Connect.asyncRequest('POST', url, callback, params);

    //showLoadingMessage();

}