var CITYSEARCH_ZOOMLEVEL = 8;

function searchByCity(term) {
    if (!term) return;
    OpenLayers.Request.GET({
        url:'citysearch.php' + '?query=' + term,
        callback:ajaxCitySearchResults
    });
}


function zoomToCity(lon,lat) {
    map.setCenter( new OpenLayers.LonLat(lon,lat) , CITYSEARCH_ZOOMLEVEL );
}


function ajaxCitySearchResults(request) {
    var dom = new OpenLayers.Format.XML().read(request.responseText);
    var results = dom.getElementsByTagName('result');
    if (! results.length) {
        alert('Nothing found.');
    }
    else if (results.length == 1) {
        zoomToCity( results[0].getAttribute('lon') , results[0].getAttribute('lat') );
    }
    else {
        var panel = document.getElementById('citysearchresults');
        var html = '';
        for (var i=0; i<results.length; i++) {
            var title = results[i].getAttribute('title');
            var lon   = results[i].getAttribute('lon');
            var lat   = results[i].getAttribute('lat');
            html += '<a href="javascript:void(0);" onClick="zoomToCity('+lon+','+lat+')">'+title+'</a>';
            html += '<br/>';
        }
        html += '<a href="javascript:void(0);" onClick="document.getElementById(\'citysearchresults\').style.display=\'none\';" style="float:right; border:1px solid blue;">X</a>';
        panel.innerHTML = html;
        panel.style.display = 'block';
    }
}
