var prevmarker  = null;
var mappos      = null;
var mapsize     = null;
var footerpos   = null;
var wrapper     = null;

var forms       = new Array();
var lasttoggled = 0;
var currentloc  = null;

window.addEvent('domready', function()
{
    if ($('mapwrapper'))
    {
        // locatie >>
        
        wrapper = $('mapwrapper');
        mappos = wrapper.getPosition();
        mapsize = wrapper.getSize();
        
        wrapper.fx = new Fx.Tween(wrapper);
        
        
        $$('.showloc').each(function(el)
        {
            el.hiddendata = el.getNext('span.hiddendata').get('text').split(',');
            el.destination = $('dst_'+el.hiddendata[3]).get('href');
            
            el.addEvent('click', function()
            {
                setmarker(el);
            });
            
            if (el.hiddendata[3] == message_id)
            {
                currentloc = el;
            }
            
           el.setStyle('display', 'inline');
        });
        
        
        
        // reageer op dit bericht >>
        
        if ($('loggedin'))
        {  
            $$('.toggle_reply').each(function(el)
            {
                var start = el.href.indexOf('/bekijk/') + 8;
                var end = el.href.indexOf('?');
                el.message_id = el.href.substr(start, end-start);

                el.fx = new Fx.Slide($('form_'+el.message_id));
                
                forms.push(el);
                
                el.addEvent('click', function()
                {
                    toggle_form(el.message_id);
                    return false;
                });

                if (message_id == 0 || el.message_id != message_id)
                {
                    el.fx.hide();
                    
                }
            });
            
            
        }
        
        if (currentloc)
        {
            setmarker(currentloc);
        }
    
        
    }
});

function toggle_form(message_id)
{
    forms.each(function(obj)
    {
        if (obj.message_id == message_id)
        {
            obj.fx.toggle();
        }
        else
        {
            if (obj.fx.open == 1)
            {
                obj.fx.slideOut();
            }
        }
        
    });
}

function setmarker(obj)
{
    //wrapper.setStyle('display', 'block');
    
    footerpos = $('footer').getPosition();
    
    $('showdetails').set('href', obj.destination);
    $('showdetails').setStyle('display', 'block');

    var newpos = obj.getPosition().y;
    newpos = (newpos > mappos.y)? newpos : mappos.y;
    
    var diff = newpos - mappos.y;
    
    var padding = 20;
    
    var mapbottom = mapsize.y + newpos;
    if (mapbottom > footerpos.y - padding)
    {
        diff = diff - (mapbottom - footerpos.y + padding);
        if (diff < 0)
        {
            diff = 0;
        }
    }
    
    //wrapper.setStyle('top', diff + 'px'); 
    wrapper.fx.start('top', diff + 'px');
    
    var latlng = new GLatLng(obj.hiddendata[0],obj.hiddendata[1]);
    var icon = create_icon(obj.hiddendata[2]);
    var marker = create_marker(latlng, icon, false);   
    
    map.addOverlay(marker);
    map.panTo(latlng);
    
    (function()
    {
        if (prevmarker)
        {
            map.removeOverlay(prevmarker);
        }
        
        prevmarker = marker;
        
    }).delay(500);
}
