var featureTimer;
var base = "stmcollege.ca"
var navItems = new Array();
var navLinks = new Array();
var stopped = true;
// You can overwrite these in the document Head, too.

var fadeTime = 0.5; // fade time between features
var displayTime = 10000; // display time for each feature

// Define the IDs and Classes used in HTML and CSS
var wrapperID = 'featured-wrapper';
var wrapperHoverClass = 'featured-hover';
var containerID = 'featured-items';
var featureLinkID = 'featured-link';
var featureNavID = 'featured-nav';
var activeLinkClass = 'active';
var descriptionClass = 'featured-description';
/*function count_features() {
	makeRequest('/includes/feature_images/feature_count.php');
}*/
// Define the URL that will do the work to render each feature
var ajaxURL = '/includes/features.php';

// Create the navigation to jump between features
function buildFeaturesNav() {	
	navList = document.createElement('ul');
	navList.setAttribute('id',featureNavID);
	$(wrapperID).appendChild(navList);

	for (i = 0; i < numberOfFeatures; i++) {
		pageNumber = i+1;
		navItems[i] = document.createElement('li');
		navLinks[i] = document.createElement('a');
		navLinks[i].innerHTML = pageNumber;
		navLinks[i].onclick = goToPage.bindAsEventListener(this,i,pageNumber); 
		navItems[i].appendChild(navLinks[i]);
		navList.appendChild(navItems[i]);
	}
	navItems[i] = document.createElement('li');
	navLinks[i] = document.createElement('a');
	navLinks[i].innerHTML = "<span id=\"stop_btn\"><img src=\"images/stop.gif\" title=\"stop\" vspace=\"3\"></span>";
	navLinks[i].onclick = stopFader.bindAsEventListener(i); 
	navItems[i].appendChild(navLinks[i]);
	navList.appendChild(navItems[i]);
}
//toggle fader
function stopFader(i) {
	if(stopped) {
		stopped = false;
		startTimer();
		document.getElementById('stop_btn').innerHTML = "<img src=\"images/stop.gif\" title=\"stop\" vspace=\"3\">";
	} else {
		stopped = true;
		clearTimeout(featureTimer);
		document.getElementById('stop_btn').innerHTML = "<img src=\"images/play.gif\" title=\"play\" vspace=\"3\">";
	}
		
}


// Show which feature is currently active in the navigation
function showActiveLink(activeLink) {
	navLinks = $(featureNavID).select('a');
	for (i = 0; i < navLinks.length; i++) {
		navLinks[i].className = '';
	}
	navLinks[activeLink].className = activeLinkClass;
}

// Switch between features
function goToPage(pageNumber) { 
	//clearTimeout(featureTimer);
	//showActiveLink(activeLink);
	f = pageNumber == 0 ? numberOfFeatures-1 : pageNumber-1;
	featureFader();
	return false;
}

// Fade out effect
function featureFader() {
	new Effect.Fade(containerID,{duration:fadeTime,afterFinish:getFeature});
}

// Make the whole area clickable
function makeClickable() {
	$(containerID).onmouseover = function() {
		$(wrapperID).className = wrapperHoverClass;
		clearTimeout(featureTimer);
	};
	$(containerID).onmouseout = function() {
		$(wrapperID).className = '';
		if(!stopped) {
			startTimer();
		}
	};
	$(containerID).onclick = function() {
		featureLink = featureArray[f-1]["link"];
		if(featureLink.indexOf(base) != -1) {
			window.location.href = featureLink;
		} else {
			window.open(featureLink,'','');
		}
	};	
}

// Make AJAX call to grab the next feature
function getFeature() {
	f++;
	if (f > numberOfFeatures) f = 1;
		/*new Ajax.Updater(containerID,ajaxURL+'?f='+f,{
		onComplete:function(){*/			
			$(containerID).innerHTML = "<div class=\"featured-item\" style=\"background:url('"+parent["img"+(f-1)].src+"') center;\">\r\n</div>";
			new Effect.Appear(containerID,{duration:fadeTime});
			
			if(featureArray[f-1]["link"]!='') {
				makeClickable();
				$(wrapperID).style.cursor = "pointer";
			} else {
				$(containerID).onclick = '';
				$(wrapperID).style.cursor = "default";
				
			}
		/*	}
		});	*/
	if (numberOfFeatures > 1) {
		activeLink = f-1;
		//showActiveLink(activeLink);
		clearTimeout(featureTimer);
		if(!stopped) {
			startTimer();
		}
	}
}

// Set the timeout
function startTimer() {
	featureTimer = setTimeout(featureFader,displayTime);
}

// Call this function when your page loads
function initFeatures() {
	f = Math.ceil(Math.random()*numberOfFeatures);
	if (numberOfFeatures > 1) {
		//buildFeaturesNav();
	}
	getFeature();
}

function makeRequest(url) {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			//http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function() { updateContents(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);

}

function updateContents(http_request) {
	
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			eval(http_request.responseText);
		}
	}
}