Event.observe(window, 'load', function() {
    new Form.Element.Observer(
        'pmsearchbox',
        0.3,
        function(el, value){
            performLookup(value, 'main');
        }
    );
});

function performLookup (v) {
    showThrobber();
    url = '/static/rentalsgrid/pmlookup.php?string='+encodeURI(v);
    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function(response) {
                populateList(response);
                hideThrobber();
            },
        onFailure: function() {
                alert('Error!');
                hideThrobber();
            }
    });
}

function populateList(response) {
    results = $('searchresults');
    results.update();

    var pms = eval('(' + response.responseText + ')');
    if (pms && pms.length > 0) {
        for (j = 0; j < pms.length; j++) {
            var pm = buildPM(pms[j]);
            results.appendChild(pm);
        }
    }
}

function showThrobber () {
    $('throbber').style.visibility = 'visible';
}

function hideThrobber () {
    $('throbber').style.visibility = 'hidden';
}

function buildPM(obj) {
    var p = c('div');
    p = s(p, 'class', 'propertymanager');

    var n = c('h3');

    var l = c('a');
    l = s(l, 'href', '/proddir/prod/315/'+obj['ID']);
    l = s(l, 'title', 'View details for this Property Manager');
    l.innerHTML = obj['FirstName'] + ' ' + obj['LastName'];
    n.appendChild(l);

    var d = c('p');
    d.innerHTML = obj['Company'] + ' ' +  obj['Website'];

    var f = c('p');
    f.innerHTML = obj['Profile'];

    p.appendChild(n);
    p.appendChild(d);
    p.appendChild(f);
    return p;
}

function c (type) {
    var n = document.createElement(type);
    return n;
}

function s (e, a, v) {
    e.setAttribute(a, v);
    return e;
}
