function rotatemsg(pointer,length,divid,milliseconds) {
	if (pointer == 0) 
		previouspointer = length - 1;
	else
		previouspointer = pointer-1;
	
	previousdivId = divid+(previouspointer);
	currentdivId = divid+pointer;
	shiftOpacity(previousdivId,500,0);
	shiftOpacity(currentdivId,500,100);
	
	pointer=(pointer<length-1)? pointer+1 : 0
	setTimeout(function(){rotatemsg(pointer,length,divid,milliseconds)}, milliseconds) //update container
}

function shiftOpacity(id, millisec,opacEnd) { 
    //if an element is invisible, make it visible, else make it ivisible 
    if(opacEnd == 100) { 
		document.getElementById(id).style.display='block';
        opacity(id, 0, 100, millisec); 
    } else { 
       document.getElementById(id).style.display='none'; 
	   changeOpac(0,id);
    } 
} 

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
}