/*
Gradual-Highlight Image Script II- 
By J. Mark Birenbaum (birenbau@ugrad.cs.ualberta.ca)
Permission granted to Dynamicdrive.com to feature script in archive
For full source to script, visit http://dynamicdrive.com
*/

nereidFadeObjects = new Object();
nereidFadeTimers = new Object();

var ns = navigator.appName.indexOf("Netscape") != -1 && parseInt(navigator.appVersion) >= 5;
var ie = navigator.appName.indexOf("Microsoft") != -1 && parseInt(navigator.appVersion) >= 4;
var currentTimer = new Object();
var currentImage = 1;
var direction = 1;
var fadeIncrement = 3;
var fadeInterval = 50;

function stopCycle() {
	clearInterval(currentTimer);
	//if (ie) obj.filters.alpha.opacity = 40;
	//else if (ns) obj.style.MozOpacity = 0.4;
}

function startCycle() {
	currentImage = 1;
	cycleFade(currentImage);
}

function fadeIn(obj) {
	if (ns && ((parseFloat(obj.style.MozOpacity) < 1.0 && direction > 0) || (parseFloat(obj.style.MozOpacity) >= 0.40 && direction < 0))) {
		obj.style.MozOpacity = parseFloat(obj.style.MozOpacity) + direction * fadeIncrement / 100.0;
		//alert(obj.style.MozOpacity + direction * fadeIncrement / 100.0);
	}
	else if (ie && ((obj.filters.alpha.opacity < 100 && direction > 0) || (obj.filters.alpha.opacity >= 40 && direction < 0))) {
		obj.filters.alpha.opacity += direction * fadeIncrement;
	}
	else {
		if (direction > 0) {
			direction = -1;
		}
		else {
			direction = 1;
			clearInterval(currentTimer);
			currentImage ++;
			if (currentImage > 3) currentImage = 1;
			cycleFade(currentImage);
		}
	}
}

function cycleFade(imgNum) {
	currentTimer = setInterval("fadeIn(document.getElementById('lblFeaturedDesc" + imgNum + "'))", fadeInterval);
}

/* object - image to be faded (actual object, not name);
 * destop - destination transparency level (ie 80, for mostly solid)
 * rate   - time in milliseconds between trasparency changes (best under 100)
 * delta  - amount of change each time (ie 5, for 5% change in transparency)
 */
function nereidFade(objectID, destOp, rate, delta, index){
	var object = new Object();
	if (document.all) {
		object = document.all[objectID];
	}
	else if (document.getElementById) {
		object = document.getElementById(objectID);
	}
	if (!ie && !ns) return;

	if (object.toString().indexOf("[object") < 0) {  //do this so I can take a string too
		setTimeout("nereidFade('"+objectID+"',"+destOp+","+rate+","+delta+")", 0);
		return;
	}

	clearTimeout(nereidFadeTimers[index]);

	if (ie) diff = destOp - object.filters.alpha.opacity;
	else if (ns) diff = destOp - parseFloat(object.style.MozOpacity) * 100.0;

	direction = 1;
	if ((ie && object.filters.alpha.opacity > destOp) || (ns && parseFloat(object.style.MozOpacity) * 100.0 > destOp)) {
		direction = -1;
	}

	delta = Math.min(direction * diff, delta);
	if (ie) object.filters.alpha.opacity += direction * delta;
	else if (ns) object.style.MozOpacity = parseFloat(object.style.MozOpacity) + direction * delta / 100.0;

	//alert(parseFloat(object.style.MozOpacity) + direction * delta / 100.0);

	if (ie && object.filters.alpha.opacity != destOp) {
		nereidFadeObjects[index] = objectID;
		nereidFadeTimers[index] = setTimeout("nereidFade(nereidFadeObjects["+index+"],"+destOp+","+rate+","+delta+")",rate);
	}
	else if (ns && Math.round(parseFloat(object.style.MozOpacity) * 100.0) != destOp) {
		nereidFadeObjects[index] = objectID;
		nereidFadeTimers[index] = setTimeout("nereidFade(nereidFadeObjects["+index+"],"+destOp+","+rate+","+delta+")",rate);
	}
}


var index = 0;
function featureClick() {
	window.location = links[index];
}
function cycle() {

	setInterval('nextImage()', 5000);
}

function nextImage() {
	index ++;
	if (index >= imgs.length) index = 0;
	featuredImgObj.src = imgs[index];
	lblObj.innerHTML = desc[index];
}
