

function placeMapObject(objid, x, y) {
    obj = document.getElementById(objid);
    
    obj.style.position = "relative";
    obj.style.left = parseInt(x) + "px";
    obj.style.top = parseInt(y) + "px";
}


function setNewPoint(event, mapid, updateobjid) {
    mappos = getRect(mapid);

    document.getElementById('x').value = event.offsetX?(event.offsetX):event.pageX-mappos.left;
    document.getElementById('y').value = event.offsetY?(event.offsetY):event.pageY-mappos.top;
    
    //alert(document.getElementById('x').value + '#' + document.getElementById('y').value);
    
    placeMapObject(updateobjid, document.getElementById('x').value, document.getElementById('y').value)
}


function getRect(o) {
    var r = { top:0, left:0, width:0, height:0 };

    if(!o) return r;
    else if(typeof o == 'string' ) o = document.getElementById(o);

    if( typeof o != 'object' ) return r;

    if(typeof o.offsetTop != 'undefined')    {
         r.height = o.offsetHeight;
         r.width = o.offsetWidth;
         r.left = r.top = 0;
         
         while (o && o.tagName != 'BODY')         {
              r.top  += parseInt( o.offsetTop );
              r.left += parseInt( o.offsetLeft );
              o = o.offsetParent;
         }
    }

    return r;
}




function addMarker(layer, lon, lat, popupContentHTML) {
    var size = new OpenLayers.Size(10,17);
    var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
    var icon = new OpenLayers.Icon('http://boston.openguides.org/markers/BLUE.png',size,offset);

    var ll = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
    var feature = new OpenLayers.Feature(layer, ll);
    feature.closeBox = true;
    feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, { minSize: new OpenLayers.Size(200, 100) });
    feature.data.popupContentHTML = popupContentHTML;
    feature.data.overflow = "hidden";

    var marker = new OpenLayers.Marker(ll, icon.clone());
    marker.feature = feature;

    var markerClick = function(evt) {
        if (this.popup == null) {
            this.popup = this.createPopup(this.closeBox);
            map.addPopup(this.popup);
            this.popup.show();
        } else {
            this.popup.toggle();
        }
        OpenLayers.Event.stop(evt);
    };
    marker.events.register("mousedown", feature, markerClick);

    layer.addMarker(marker);
}
