var fademe;

function changeOnClick(obj,func) {
	obj = document.getElementById(obj); 
	obj.setAttribute('onclick',func); 
}

var itemsA = new Array() ; 
var fade1; 
var fade2; 
var future;
var currentFade; 
var totalItem;
var b = "#22505F"; // inactive button item
var bb = "#3095B4"; // active button item

function startFades() { 
	//fadeInit('cta',6000,'vcta') ;
	fadeInit('trcta',4500,'vtrcta') ;
	timeout = 6000;
	allDivs = document.getElementsByTagName("div"); 
	var itemName = "item";
	var rex = "^" + itemName + "\\d*?$";
	var re = new RegExp(rex);
	for (i = 0; i < allDivs.length; i++) {
		if (re.test(allDivs[i].id)) { 
			itemsA.push(allDivs[i].id); 	
			allDivs[i].style.visibility = 'visible' ;
			allDivs[i].style.top = 0 ;
		} 
	} 
	
	if (itemsA.length < 2) return;
	totalItem = itemsA.length; 
	
	innerMsg = "";
	for(i = 0; i < itemsA.length; i++) { 
	var innerMsg = innerMsg + "<a href=\"javascript:;\" id=\"sel_"+itemsA[i]+"\" onclick=\"selectItem("+i+")\">" + (i+1) + "</a> ";
	} 
	document.getElementById('pane_controllers').innerHTML = innerMsg;
		
 	fade1 = setTimeout("fade('"+itemsA[0]+"',itemVis)",timeout);
	fade2 = setTimeout("fade('"+itemsA[1]+"',itemVis)",timeout);
	currentFade = itemsA[0];
	
	var activeItem = "sel_" + currentFade; 
	document.getElementById(activeItem).style.backgroundColor = bb;
	
	
	future = setTimeout("futureFade(2,"+timeout+")",timeout);
} 

function selectItem(ino) { 
	var activeItem = "sel_" + currentFade; 
	document.getElementById(activeItem).style.backgroundColor = b;
	clearTimeout(fade1); 
	clearTimeout(fade2); 
	clearTimeout(future); 
	fade(currentFade,itemVis); 
	fade(itemsA[ino],itemVis); 
	currentFade = itemsA[ino];
	var activeItem = "sel_" + currentFade; 
	document.getElementById(activeItem).style.backgroundColor = bb;
	ino = (ino+1);
	future = setTimeout("futureFade("+ino+","+timeout+")",0);
} 

function futureFade(y,timeout) { 
	
	//alert(timeout); 
	//reset item (y) if greater than total of items;
	if (y > totalItem) { y = 1; }
	z = (y+1); 
	if (z > totalItem) { z = 1; }
	yy = (y-1); 
	zz = (z-1); 
	// set fade transition to run on the next sequence;
	var activeItem = "sel_" + currentFade; 
	document.getElementById(activeItem).style.backgroundColor = b;
	currentFade = itemsA[yy];
	var activeItem = "sel_" + currentFade; 
	document.getElementById(activeItem).style.backgroundColor = bb;
	fade1 = setTimeout("fade('"+itemsA[yy]+"',itemVis)",timeout);
	fade2 = setTimeout("fade('"+itemsA[zz]+"',itemVis)",timeout);
	// set this function to run again in x amount of sections
	future = setTimeout("futureFade("+z+","+timeout+")",timeout);
} 

function showArray() { 
	var msg = ""; 
	for(i = 0; i < itemsA.length; i++) { 
	var msg = msg + "\n" + i + ": " + itemsA[i];
	} 
	alert(msg); 
} 

function showArrayNew() { 
	var e = document.getElementById('pane_controllers').getElementsByTagName('a'); 
	var msg = ""; 
	for(i = 0; i < e.length; i++) { 
	var msg = msg + "\n" + i + ": " + e[i].id;
	} 
	alert(msg); 
} 

function itemVis(e,s) { 
obj = document.getElementById(e); 
	if (s == -2) {
		obj.style.zIndex = -50;
	} 
	else { 
		obj.style.zIndex = 50;
	} 
} 




// fade and show
 
var TimeToFade = 1000.0;

function fade(eid, call) 	{
//alert('func: fade; eid: ' + eid + '; typeof: ' + typeof(callback));
//test if element exists and if it doesn't end function
var element = document.getElementById(eid);
if(element == null) return;
 
// if fadestate is not yet set, check to see if opacity is true or false and then assign number to state
if(element.FadeState == null) {
  if(element.style.opacity == null || element.style.opacity == '' || element.style.opacity == '1') element.FadeState = 2;
  else element.FadeState = -2;
}
  
// if element is in the transition fade, 
if(element.FadeState == 1 || element.FadeState == -1) {
  element.FadeState = element.FadeState == 1 ? -1 : 1;
  element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
}
// else start the transition ... 
else {
  element.style.zIndex = 50;
  element.FadeState = element.FadeState == 2 ? -1 : 1;
  element.FadeTimeLeft = TimeToFade;
  setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "'," + call + ")", 33);
} 
}

function animateFade(lastTick, eid, callback) { 
//alert('func: anifade; eid: ' + eid + '; typeof: ' + typeof(callback));
  var curTick = new Date().getTime(); // get current date and time
  var elapsedTicks = curTick - lastTick; // now - last date and time
  var element = document.getElementById(eid); // element
 
  if(element.FadeTimeLeft <= elapsedTicks)  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0'; 
    element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
	element.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity="+ (element.FadeState == 1 ? '100' : '0') +")";
    element.FadeState = element.FadeState == 1 ? 2 : -2; 
	if (typeof(callback) == "function") callback(eid,element.FadeState); // added callback
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks; // fade time minus elapsed ticks
  var newOpVal = element.FadeTimeLeft / TimeToFade; // create new opacity value
  if(element.FadeState == 1) newOpVal = 1 - newOpVal; // if fadestate one - minus from 1!

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  setTimeout("animateFade(" + curTick + ",'" + eid + "'," + callback + ")", 33);
}


/// ********** ///

function fadeInit(objName,timeout,objID) { 
	if (typeof(window.fades) == "undefined") { window.fades = new Array() }; 
	if (typeof(window.fadesCurrent) == "undefined") { window.fadesCurrent = new Array() }; 
	window.fades[objID] = new Array(); 
	window.fadesCurrent[objID] = "";

	var allDivs = document.getElementsByTagName("div"); 
	
	var rex = "^" + objName + "\\d*?$";
	var re = new RegExp(rex);
	for (i = 0; i < allDivs.length; i++) {
		if (re.test(allDivs[i].id)) { 
			window.fades[objID].push(allDivs[i].id); 	
			allDivs[i].style.visibility = 'visible' ;
			//allDivs[i].style.top = 0 ;
		} 
	} 
	
	if (window.fades[objID].length < 2) return;
	totalItem = window.fades[objID].length; 
	currentFade = window.fades[objID][0]; 
	
	fadeInit1 = setTimeout("fade('"+window.fades[objID][0]+"',itemVis)",timeout);
	fadeInit2 = setTimeout("fade('"+window.fades[objID][1]+"',itemVis)",timeout);
		
	setTimeout("futureFadeInit("+timeout+",'"+objID+"',2)",timeout);
	} 
	
function futureFadeInit(timeout,objID, y) { 
	//reset item (y) if greater than total of items;
	//alert(objID + " " + y) ; 
	if (y > window.fades[objID].length) { y = 1; }
	z = (y+1); 
	if (z > window.fades[objID].length) { z = 1; }
	yy = (y-1); 
	zz = (z-1); 
	// set fade transition to run on the next sequence;
	if (typeof(window.currentFadeInit) == "undefined") { window.currentFadeInit == "" } 
	currentFadeInit = window.fades[objID][yy];
	var nextItem = (y+1);
	
	fadeInit1 = setTimeout("fade('"+window.fades[objID][yy]+"',itemVis)",timeout);
	fadeInit2 = setTimeout("fade('"+window.fades[objID][zz]+"',itemVis)",timeout);
	// set this function to run again in x amount of sections
	setTimeout("futureFadeInit("+timeout+",'"+objID+"',"+nextItem+")",timeout);
} 

function addLinksForPrinting() { 
var c = 1; 
var obj = document.getElementById('content'); 
var linkobj = obj.getElementsByTagName('a');
if (linkobj.length > 0) document.writeln('<div id="links"><h2>Links</h2><ol>');
for (i = 0; i < linkobj.length; i++) {
	document.write('<li><a href="'+linkobj.item(i).getAttribute('href')+'">' + linkobj.item(i).getAttribute('href')  + '</a></li>\n'); 
	linkobj.item(i).innerHTML = linkobj.item(i).innerHTML + "<sup style=\"color: #000; font-weight: normal; text-decoration: none !important;\">" + c +"</sup>"; 
	c++;
}
if (linkobj.length > 0) document.writeln('</ol></div>');
} 
