addLoadEvent(function(){
    connect('paisesCombo','onchange', function(e){
        e.preventDefault();
        var comboPaises = document.getElementById('paisesCombo');
        var urlPais = '/getProvincias?tg_format=json&paisId=' + comboPaises.value;
        var pais = loadJSONDoc(urlPais);
        pais.addCallback(showProvincias);
    });
});

addLoadEvent(function(){
    var comboPaises = document.getElementById('paisesCombo');
    var url = '/getProvincias?tg_format=json&paisId=' + comboPaises.value;
    var pais = loadJSONDoc(url);
    pais.addCallback(showProvincias);
});

function showProvincias(result){
    if (result["provincias"].length == 0) {
        replaceChildNodes("provinciasCombo", OPTION({'selected':'selected', 'value':''}, '-------------------------'));
        var comboProvincias = document.getElementById('provinciasCombo');
        comboProvincias.disabled = true;
    } else {
        var selIndex = $("provinciasCombo").selectedIndex;
        var selOption = $("provinciasCombo").getElementsByTagName("OPTION")[selIndex];

        var provinciasHTML = map(displayOptions, result["provincias"]);
        replaceChildNodes("provinciasCombo", OPTION({'selected': 'selected', 'value': ''}, 'Seleccione una provincia'));
        appendChildNodes("provinciasCombo", provinciasHTML);
        appendChildNodes("provinciasCombo", OPTION({'value': ''}, 'Otra...'));

        forEach($("provinciasCombo").getElementsByTagName("OPTION"), function(option) {
            if (option.value === selOption.value) {
                option.selected = true;
            };
        });
        $("provinciasCombo").disabled = false;
    }
}

addLoadEvent(function(){
    connect('provinciasCombo','onchange', function(e){
        e.preventDefault();
        var comboPaises = document.getElementById('paisesCombo');
        var comboProvincias = document.getElementById('provinciasCombo');
        var url = '/getLocalidades?tg_format=json&paisId=' + comboPaises.value + '&provinciaId=' + comboProvincias.value;
        var prov = loadJSONDoc(url);
        prov.addCallback(showLocalidades);
    });
});

addLoadEvent(function(){
    var comboPaises = document.getElementById('paisesCombo');
    var comboProvincias = document.getElementById('provinciasCombo');
    var url = '/getLocalidades?tg_format=json&paisId=' + comboPaises.value + '&provinciaId=' + comboProvincias.value;
    var prov = loadJSONDoc(url);
    prov.addCallback(showLocalidades);
});

function showLocalidades(result){
    var selIndex = $("localidadesCombo").selectedIndex;
    var selOption = $("localidadesCombo").getElementsByTagName("OPTION")[selIndex];

    var localidadesHTML = map(displayOptions, result["localidades"]);
    replaceChildNodes("localidadesCombo", OPTION({'selected':'selected', 'value':0}, 'Seleccione una localidad'));
    appendChildNodes("localidadesCombo", localidadesHTML);

    forEach($("localidadesCombo").getElementsByTagName("OPTION"), function(option) {
        if (option.value === selOption.value) {
            option.selected = true;
        };
    });
}

addLoadEvent(function(){
    connect('altPaisesCombo','onchange', function(e){
        e.preventDefault();
        var comboPaises = document.getElementById('altPaisesCombo');
        var urlPais = '/getProvincias?tg_format=json&paisId=' + comboPaises.value;
        var pais = loadJSONDoc(urlPais);
        pais.addCallback(showAltProvincias);
        
    });
});
addLoadEvent(function(){
    var comboPaises = document.getElementById('altPaisesCombo');
    var url = '/getProvincias?tg_format=json&paisId=' + comboPaises.value;
    var pais = loadJSONDoc(url);
    pais.addCallback(showAltProvincias);
});
function showAltProvincias(result){
    if (result["provincias"].length == 0) {
        replaceChildNodes("altProvinciasCombo", OPTION({'selected':'selected', 'value':'', 'class':toUseClass}, '-------------------------'));
        var comboProvincias = document.getElementById('altProvinciasCombo');
        comboProvincias.disabled = true;
    }else{
        var provinciasHTML = map(displayOptions, result["provincias"]);
        replaceChildNodes("altProvinciasCombo", OPTION({'selected':'selected', 'value':'', 'class':toUseClass}, 'Seleccione una provincia'));
        appendChildNodes("altProvinciasCombo", provinciasHTML);
        appendChildNodes("altProvinciasCombo", OPTION({'value':'', 'class':toUseClass}, 'Otra...'));
        var comboPaisesDisabled = $('altPaisesCombo').disabled;
        var comboProvincias = document.getElementById('altProvinciasCombo');
        comboProvincias.disabled = comboPaisesDisabled ? true : false;
    }
}


addLoadEvent(function(){
    connect('altProvinciasCombo','onchange', function(e){
        e.preventDefault();
        var comboPaises = document.getElementById('altPaisesCombo');
        var comboProvincias = document.getElementById('altProvinciasCombo');
        var url = '/getLocalidades?tg_format=json&paisId=' + comboPaises.value + '&provinciaId=' + comboProvincias.value;
        var prov = loadJSONDoc(url);
        prov.addCallback(showAltLocalidades);
    });
});
addLoadEvent(function(){
    var comboPaises = document.getElementById('altPaisesCombo');
    var comboProvincias = document.getElementById('altProvinciasCombo');
    var url = '/getLocalidades?tg_format=json&paisId=' + comboPaises.value + '&provinciaId=' + comboProvincias.value;
    var prov = loadJSONDoc(url);
    prov.addCallback(showAltLocalidades);
});
function showAltLocalidades(result){
    var localidadesHTML = map(displayOptions, result["localidades"]);
    replaceChildNodes("altLocalidadesCombo", OPTION({'selected':'selected', 'value':0}, 'Seleccione una localidad'));
    appendChildNodes("altLocalidadesCombo", localidadesHTML);
}
function displayOptions(option) {
    return OPTION({'value':option["id"]}, option["name"]);
}
function otraLocalidadFunc(){
    replaceChildNodes("otraLocalidad", INPUT({'name':'city', 'value':'Ingrese otra localidad', 'class':toUseClass}));
}

