// (c) copyright 2009 mauro gallo web creations
var moving = false;

function vCenter(id, height) {
	var altezzaClient = null;
	if (window.innerHeight) {
		altezzaClient = window.innerHeight;
	}
	else {
		altezzaClient = document.documentElement.clientHeight;
	}
	if (altezzaClient) {
        var top = (altezzaClient - height) / 2;
        if (top < 0)
            top = 0;
        var obj = document.getElementById(id);
        obj.style.position = "relative";
        var currentY = findPosY(obj);
		moveV(id, currentY, top, 1, true, 3);
	}
}

function moveV(id, from, to, step, synchro, delay) {
    if ((synchro && ! moving) || ! synchro) {
        moving = true;
        var newFrom = from;
        var obj = document.getElementById(id);
        if (from < to) {
           newFrom = from + step;
           if (newFrom < to) {
               obj.style.top = newFrom + "px";
               setTimeout("moveV('" + id + "', " + newFrom + ", " + to + ", " + step + ", false, " + delay + ")", delay);
           }
           else {
               obj.style.top = to + "px";
               moving = false;
           }
        }
        else if (from > to) {
           newFrom = from - step;
           if (newFrom > to) {
               obj.style.top = newFrom + "px";
               setTimeout("moveV('" + id + "', " + newFrom + ", " + to + ", " + step + ", false, " + delay + ")", delay);
           }
           else {
               obj.style.top = to + "px";
               moving = false;
           }
        }
        else
            moving = false;
    }
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}