var map, xml, response, point, marker, prevpoint;
var timeout = 300000;
var irefresh;
var debug = false;
function load() {
    if( navigator.appName == "Microsoft Internet Explorer" )
        xml = new ActiveXObject( "Microsoft.XMLHTTP" );
    else
        xml = new XMLHttpRequest;
    setTimeout( "refresh()", timeout );
    //prevlat = {latitude};
    //prevlon = {longitude};
}

function fixcontrols() {
    var mi = document.getElementById( 'mapimg' );
    // Fix the controls
    var zi = document.getElementById( 'zi' );
    zi.style.top = mi.offsetTop + 10;
    zi.style.left = mi.offsetLeft + 10;
    var zo = document.getElementById( 'zo' );
    zo.style.top = mi.offsetTop + 20;
    zo.style.left = mi.offsetLeft + 10;
}

function refresh() {
    xml.open( 'POST', '/', true );
    xml.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
    xml.onreadystatechange = handleResponse;
    xml.send( 'ajax=1' );
}

function handleResponse() {
    if( xml.readyState == 4 ) {
        response = xml.responseText;
        if( response.length > 4 && response.length < 50 ) {
            output  = response.split( ';' );
            coords  = output[0].split( ',' );
            timeout = output[1];
            if( coords[0] != prevlat || coords[1] != prevlon ) {
                // Allow user to zoom in/out 2 levels from the default before zooming in
                if( zoom >= 5 )
                    zoom = 2;
                showMap( coords[0], coords[1] );
                prevlat = coords[0];
                prevlon = coords[1];
            }
            if( timeout >= 60000 && zoom <= 14 ) {
                zoom++;
                showMap( prevlat, prevlon );
            }
        }
        setTimeout( "refresh()", timeout );
    }
}

function zoomIn() {
    if( zoom > 0 )
        zoom--;
    showMap( prevlat, prevlon );
}

function zoomOut() {
    if( zoom < 17 )
        zoom++;
    showMap( prevlat, prevlon );
}

function showMap( lat, lon ) {
    var glat = ( Math.round( lat * 1000000 ) / 1000000 ) * 1000000;
    var glon = ( Math.round( lon * 1000000 ) / 1000000 ) * 1000000;
    var mi = document.getElementById( 'mapimg' );
    mi.src = 'http://maps.google.com/mapdata?Point=b&Point.latitude_e6='+ glat +'&Point.longitude_e6=' + glon + '&Point.iconid=16&Point=e&latitude_e6=' + glat + '&longitude_e6=' + glon + '&w=200&h=120&cc=&min_priority=2&zl=' + zoom;
}

