

var d=document, slide_elements = new Array(), zInterval = null, current=0, pause=false;
var so_elementName='div',so_class='random';
var so_container=null;
function rand ( n ){
  return ( Math.floor ( Math.random ( ) * n + 1 ) );
}

function so_init(containerId) {
	if(!d.getElementById || !d.createElement)return;
	so_container = d.getElementById(containerId);
	so_container.paused=false;
	so_container.onmouseover=function  (){
		so_container.paused=true;
	}
	so_container.onmouseout=function  (){
		so_container.paused=false;
	}
	function get_elements(){
		var els = d.getElementById(containerId).getElementsByTagName(so_elementName);
		var result=[];
		for(var i=0;i<els.length;i++){
			if(els[i].className==so_class) {
				result.push(els[i]);
				els[i].style.display = 'none';
			}
		}
		return result;
	}
	slide_elements = get_elements();
	current = rand(slide_elements.length) - 1
	for(i=1;i<slide_elements.length;i++) slide_elements[i].xOpacity = 0;
	$show(slide_elements[current]);
	slide_elements[current].xOpacity =1;
	setTimeout(so_xfade,3000);
}
function $opac(obj,value){
	obj.style.opacity = value;
	obj.style.MozOpacity = value;
	obj.style.filter = 'alpha(opacity=' + (value*100) + ')';
}
function $hide(obj){obj.style.display='none';}
function $show(obj){obj.style.display='block';}
function so_xfade(){
	cOpacity = slide_elements[current].xOpacity;
	nIndex = (slide_elements[current+1])?current+1:0;
	nOpacity = slide_elements[nIndex].xOpacity;
if(so_container.paused){
	if(cOpacity!=1){
		var vEl = (cOpacity<=.50)?slide_elements[nIndex]:slide_elements[current];
		var hEl = (cOpacity<=.50)?slide_elements[current]:slide_elements[nIndex];
		vEl.style.display = 'block';
		cOpacity=1;nOpacity=0;
		hEl.xOpacity = nOpacity;
		vEl.xOpacity = cOpacity;
		setOpacity(vEl);
		setOpacity(hEl);
		$show(vEl);
		$hide(hEl);
	}
	setTimeout(so_xfade,100);
	return ;
}
	cOpacity-=.05;
	nOpacity+=.05;
	$show(slide_elements[nIndex]);
	slide_elements[current].xOpacity = cOpacity;
	slide_elements[nIndex].xOpacity = nOpacity;

	setOpacity(slide_elements[current]);
	setOpacity(slide_elements[nIndex]);

	if(cOpacity<=0)	{	
		$hide(slide_elements[current]);		
		slide_elements[current].xOpacity = 0;
		slide_elements[nIndex].xOpacity = 1;
		current = nIndex;	
		setTimeout(so_xfade,3000);
	}
	else{
		setTimeout(so_xfade,50);
	}

	function setOpacity(obj) {
		if(obj.xOpacity>1) obj.xOpacity = 1;			
		$opac(obj,obj.xOpacity)		
	}
}