function Transition(curve, milliseconds, callback) {
    this.curve_ = curve;
    this.milliseconds_ = milliseconds;
    this.callback_ = callback;
    this.start_ = new Date().getTime();
    var me = this;
    this.runCallback_ = function() {
	me.run();
    };
}

Transition.prototype.run = function() {
    if (!this.hasNext()) return;
    this.callback_(this.next());
    setTimeout(this.runCallback_, 10);
}

Transition.prototype.hasNext = function() {
    if (this.done_) return this.oneLeft_;
    var now = new Date().getTime();
    if ((now - this.start_) > this.milliseconds_) {
	this.done_ = true;
	this.oneLeft_ = true;
    }
    return true;
}

Transition.prototype.next = function() {
    this.oneLeft_ = false;
    var now = new Date().getTime();
    var percentage = Math.min(1, (now - this.start_) / this.milliseconds_);
    return this.curve_(percentage);
}


function SineCurve(percentage) {
    return (1 - Math.cos(percentage * Math.PI)) / 2;
}


function move(newContent) {
	finalSlideStart();
	pageSwap(newContent);
	setTimeout("finalSlide()",400);
}

function finalSlide() {

    var element = document.getElementById("animated");
    element.style.position = "absolute";
    element.style.left = "0px";
    element.style.top = "0px";

    var transition = new Transition(SineCurve, 1000, function(percentage) {
		var x = element.parentNode.offsetWidth;
		var y = element.parentNode.offsetHeight - element.offsetHeight;
		element.style.left = Math.round(percentage * x) + "px";
    });
    
    transition.run();
    
}

function finalSlideStart() {

    var element = document.getElementById("animated");
    element.style.position = "absolute";
    element.style.left = "0px";
    element.style.top = "0px";

    
}


function pageSwap(pageNumber) {
	pageName = 'content-' + pageNumber + '.htm';
	ajaxpagefetcher.load('contentIn', pageName, false);
	setTimeout("ajaxpagefetcher.load('contentOut', pageName, false)",1400);
}

function pageSwap2(content) {
	pageName = 'content-' + content + '.htm';
	ajaxpagefetcher.load('contentIn', pageName, false);
}

function pageSwap3(content) {
	pageName = 'content-' + content + '.htm';
	ajaxpagefetcher.load('contentIn', pageName, false);
	setTimeout("ajaxpagefetcher.load('contentOut', pageName, false)",1400);

}