jQuery.fn.viewportCenter = function(){
    return this.each(function(){
        d = {};
        if (self.innerHeight) {
            d.pageYOffset = self.pageYOffset;
            d.pageXOffset = self.pageXOffset;
            d.innerHeight = self.innerHeight;
            d.innerWidth = self.innerWidth;
        } else if (document.documentElement && document.documentElement.clientHeight) {
            d.pageYOffset = document.documentElement.scrollTop;
            d.pageXOffset = document.documentElement.scrollLeft;
            d.innerHeight = document.documentElement.clientHeight;
            d.innerWidth = document.documentElement.clientWidth;
        } else if (document.body) {
            d.pageYOffset = document.body.scrollTop;
            d.pageXOffset = document.body.scrollLeft;
            d.innerHeight = document.body.clientHeight;
            d.innerWidth = document.body.clientWidth;
        }
        $(this).remove().appendTo("body").css("position","absolute");
        $(this).css("top",Math.round(d.innerHeight/2) + d.pageYOffset - Math.round($(this).height()/2));
        $(this).css("left",Math.round(d.innerWidth/2) + d.pageXOffset - Math.round($(this).width()/2));
        d = null;
    });
};

