var fragment;
var smoothWindowScroller;

window.addEvent('domready', function() {

    fragment = $('fragment');
    
    if(fragment)
        fragment.fx = new Fx.Tween(fragment);
    
    smoothWindowScroller = new SmoothScroll();

});

function getFragment(id, scrollWindow) {

    if(!id)
        return;
    
    if(!fragment)
        return;

    // Scroll the window by default, or if explicitly told
    if(scrollWindow == undefined || scrollWindow == true)
        smoothWindowScroller.toElement(fragment);
    
    fragment.addClass('fragment-loading');
    
    var coords = fragment.getCoordinates();
    
    fragment.setStyle('width', coords.right - coords.left);
    fragment.setStyle('height', coords.bottom - coords.top);
    fragment.empty();
    
    fragment.fx.start('opacity', 0, 1);
    
    var request = new Request.HTML();
    
    request.addEvent('success', gotFragment);
    request.get('html/'+id+'.php');
}

function gotFragment(responseTree, responseElements, responseHTML, responseJavaScript) {

    if(!fragment)
        return;

    fragment.removeClass('fragment-loading');
    fragment.setStyle('width', 'auto');
    fragment.setStyle('height', 'auto');
    
    fragment.fx.set('opacity', 0);
    fragment.set('html', responseHTML);
    fragment.fx.start('opacity', 1);

    eval(responseJavaScript);
}