// used only on the front page for news widget

var currentIndex = 0;
var topNewsBlockArray = new Array(4);  // stores client ids of the top blocks
var navWidgetArray = new Array(4); // stores client ids of the widgets

/*------------------------------------------------------------------------
The new image appears below the old image.  topMargin variable aligns
the new image in front of the old image.  Must account for IE6
------------------------------------------------------------------------*/
var version = 0;
var topMargin = "-215px";    
    
if (navigator.appVersion.indexOf("MSIE")!=-1){
    temp=navigator.appVersion.split("MSIE")
        version=parseFloat(temp[1])
}
if (version==6) {
    topMargin = "-218px"; // IE6
}


/*------------------------------------------------------------------------
Detects browser; attaches slide show "start" event
------------------------------------------------------------------------*/
if(window.addEventListener)
    window.addEventListener("load", startRotate, false) // NS/Mozilla
else
    window.attachEvent("onload", startRotate);         // IE


/*------------------------------------------------------------------------
- "startRotate" functions cause the delay for image rotation on page load
    and after a square is selected
- "rotate" function sets the timeOut for the delay
- "navigateTopStories" functions handle the square and triangle click events
------------------------------------------------------------------------*/
var t;  // holds the timeout event

function startRotate() {
    t = setTimeout(rotate, 6500);
}

function startRotateLD() {
    t = setTimeout(rotate, 30000);
}

function rotate() {
	if (currentIndex == 3)
		navigateTopStories(0);
	else
		navigateTopStories(currentIndex + 1);
		
	t = setTimeout(rotate, 5000);	
}

function initTopNewsBlockArray(item1,item2,item3,item4) {
	topNewsBlockArray[0] = item1;
	topNewsBlockArray[1] = item2;
	topNewsBlockArray[2] = item3;
	topNewsBlockArray[3] = item4;
}

function initNavWidgetArray(item1,item2,item3,item4) {
	navWidgetArray[0] = item1;
	navWidgetArray[1] = item2;
	navWidgetArray[2] = item3;
	navWidgetArray[3] = item4;
}

function navigateTopStories(newCurrentIndex) {
	if (document.getElementById && (newCurrentIndex != currentIndex)) {
		var divToShow = document.getElementById(topNewsBlockArray[newCurrentIndex]);
		var navToLighten = document.getElementById(navWidgetArray[newCurrentIndex]);
		var divToHide = document.getElementById(topNewsBlockArray[currentIndex]);
		var navToDarken = document.getElementById(navWidgetArray[currentIndex]);
	    navToLighten.className = 'tabactive';
	    navToDarken.className = 'tabdefault';
	    currentIndex = newCurrentIndex;
	    
	    divToShow.style.visibility = 'visible';
	    divToShow.style.display = 'block';
	    
	    //if(newCurrentIndex != 0)
	    //    divToShow.style.marginTop = topMargin;
	    
	    imgs[0] = divToHide;
	    imgs[1] = divToShow;
	    start();
	    divToHide.style.display = 'none';
	    divToHide.style.visibility = 'hidden';
	}	
}

function navigateTopStoriesLD(newCurrentIndex) {
	if (document.getElementById && (newCurrentIndex != currentIndex)) {
		var divToShow = document.getElementById(topNewsBlockArray[newCurrentIndex]);
		var navToLighten = document.getElementById(navWidgetArray[newCurrentIndex]);
		var divToHide = document.getElementById(topNewsBlockArray[currentIndex]);
		var navToDarken = document.getElementById(navWidgetArray[currentIndex]);
	    navToLighten.className = 'tabactive';
	    navToDarken.className = 'tabdefault';
	    currentIndex = newCurrentIndex;
	    
	    divToShow.style.visibility = 'visible';
	    divToShow.style.display = 'block';
	    
	    //if(newCurrentIndex != 0)
	    //    divToShow.style.marginTop = topMargin;
	    
	    imgs[0] = divToHide;
	    imgs[1] = divToShow;
	    start();
	    clearTimeout(t);
	    startRotateLD();
	    divToHide.style.display = 'none';
	    divToHide.style.visibility = 'hidden';
	}	
}

function navigateTopStoryLeft() {
	if (currentIndex == 0)
		navigateTopStories(3);
	else
		navigateTopStories(currentIndex - 1);

    clearTimeout(t);
    startRotateLD();
}

function navigateTopStoryRight() {
	if (currentIndex == 3)
		navigateTopStories(0);
	else
		navigateTopStories(currentIndex + 1);
    
    clearTimeout(t);
    startRotateLD();
}

//------------------------------------------------------------------------
// fade effect: old image opacity is lowered while new image opacity is raised
//------------------------------------------------------------------------
var imgs = new Array(); 
var current=0; 

function start() {
	for(i=1; i<imgs.length; i++) {    
	    imgs[i].opacity = 0;
	}
	
	imgs[0].style.display = "block";
	imgs[0].opacity = .99;
	setTimeout(fade,0);
}

function fade() {
	lessOpacity = imgs[current].opacity;
	next = imgs[current+1]?current+1:0;
	moreOpacity = imgs[next].opacity;
	
	lessOpacity-=.1; 
	moreOpacity+=.1;
	
	imgs[next].style.display = "block";
	imgs[current].opacity = lessOpacity;
	imgs[next].opacity = moreOpacity;
	
	setOpacity(imgs[current]); 
	setOpacity(imgs[next]);
	
	if(lessOpacity<=0) {
		imgs[current].style.visibility = "hidden";
	} else {
		setTimeout(fade,20);
	}
	
	function setOpacity(obj) {
		if(obj.opacity>.99) {
			obj.opacity = .99;
			return;
		}
		obj.style.opacity = obj.opacity;
		obj.style.MozOpacity = obj.opacity;
		obj.style.filter = "alpha(opacity=" + (obj.opacity*100) + ")";
	}

}


