var bROTATE = false;

function beginRotation() {

	var oA = document.getElementById( 'paginate-slider1' ).getElementsByTagName( 'A' );
	for( i=0; i<oA.length; i++ ) {
		if ( ! /selected/i.test( oA[i].className) )  
			changeOpac(0, 'cd' +(1+i) )
	}

	bROTATE = false;
	setTimeout( 'rotate();', 5000 );  
  
}

function rotate() {

	if ( !bROTATE ) return;

	var next_id =  ( 1 + getCurrentEnum()) %3  ;

	var oA = document.getElementById ( 'paginate-slider1' ).getElementsByTagName( 'A' )[next_id];

	tansitionTo( oA, false );  

	setTimeout( 'rotate();', 5000 );
}

function getCurrentEnum() {
	var oA = document.getElementById( 'paginate-slider1' ).getElementsByTagName( 'A' );
	for( i=0; i<oA.length; i++ ) {
		if ( /selected/i.test( oA[i].className) )  return (i);
	}
 return ( 1 );
}

function tansitionTo( obj, bRotate ) {

	bROTATE = (arguments.length == 2 ? bRotate : false);

	var o, destId='cd1';
	var oA = obj.parentNode.getElementsByTagName( "A" );

	var srcId = "cd"+(1+getCurrentEnum());

	for (i=0; i< oA.length; i++ ) {

		oA[i].className = oA[i].className.replace( /(\s*selected$)|(^selected\s*)/ig, '' );
		if ( obj == oA[i] ) {
			destId = "cd" + (i+1);
		}	
	}

	obj.className += ' selected';
	transition( srcId, destId );

}

function transition( id_1, id_2 ) {

	 changeOpac( 0, id_2 );
	 changeOpac( 100, id_1);

	 document.getElementById( id_1 ).style.visible = true;
	 document.getElementById( id_2 ).style.visible = true;

	 opacity(id_1, 100, 0, 0);  //speed was 1000
	 opacity(id_2, 0, 100, 0);  //speed was 1000      
}


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 = 
	object.MozOpacity = 
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
} 
