function substr_count(string,substring,start,length) {
	var c = 0;
	if (start) { 
		string = string.substr(start); 
	}
	if (length) {
		string = string.substr(0,length);
	}
	for (var i=0; i < string.length; i++) {
		if (substring == string.substr(i,substring.length))
			c++;
	}
	return c;
}


var totalIOrigSlides;
var slideWidth = 114; // width of #iOrigsSlideShow li plus any left and right padding or margin
var curPos = 0.0;
var nextPos = 0.0;
var targetPos = 0.0;
var isSliding = false;
var restartAfterPause = 10 * 1000;
var pauseBetweenSlides = 4 * 1000;
var forward = 1;
var backward = -1;
var slideQueued = "";
var isUpperTags = false;
function ito_initSlide() {
	var slideSet = document.getElementById("iOrigsSlideShow").innerHTML;

	var count = substr_count(slideSet, "<li");
	if (count == 0) {
		// could be IE messing with us by turning tags to uppercase
		count = substr_count(slideSet, "<LI");
		if (count > 0)
			isUpperTags = true;
	}
	// need at least 6 to fill the area allocated
	if (count > 0) {
		while (count < 6) {
			slideSet = slideSet + slideSet;
			if (isUpperTags == true)
				count = substr_count(slideSet, "<LI");
			else 
				count = substr_count(slideSet, "<li");
		}
	}

	totalIOrigSlides = count;

	// double it so we can loop.
	slideSet = slideSet + slideSet;
	
	curPos = 0;
	document.getElementById("iOrigsSlideShow").innerHTML = slideSet;
	document.getElementById("iOrigsSlideShow").style.width = (totalIOrigSlides * 2 * slideWidth)+"px";
}
function ito_slideStart() {
	// this will only be called onload
	slideQueued = setTimeout("ito_slidePlay("+backward+")",pauseBetweenSlides);
}
function ito_slidePause() {
	if (slideQueued != "") {
		clearTimeout(slideQueued);
		slideQueued = "";
	}
	slideQueued = setTimeout("ito_slidePlay("+backward+")",restartAfterPause);
}
function ito_slidePlay(dir) {
	if (slideQueued != "") {
		clearTimeout(slideQueued);
		slideQueued = "";
	}
	if (!isSliding) {
		if (dir > 0) 
			targetPos = curPos + slideWidth;
		else 
			targetPos = curPos - slideWidth;
		if (targetPos > 0.0) {
			curPos -= (totalIOrigSlides * slideWidth);
			document.getElementById("iOrigsSlideShow").style.left = curPos+"px";
			targetPos -= (totalIOrigSlides * slideWidth);
		}
		else if (targetPos < -(totalIOrigSlides * slideWidth)) {
			curPos += (totalIOrigSlides * slideWidth);
			document.getElementById("iOrigsSlideShow").style.left = curPos+"px";
			targetPos += (totalIOrigSlides * slideWidth);
		}
		isSliding = true;
		ito_doSlide(dir);
		slideQueued = setTimeout("ito_slidePlay("+dir+")",pauseBetweenSlides);
	}
}
function ito_doSlide(dir) {
	if (targetPos > curPos) 
		nextPos = parseFloat(curPos + ((targetPos - curPos) * .35));
	else 
		nextPos = parseFloat(curPos - ((curPos - targetPos) * .35));

	document.getElementById("iOrigsSlideShow").style.left = Math.floor(nextPos)+"px";
	curPos = nextPos;
	if ((Math.abs(targetPos - curPos)) <= 1.0) {
		document.getElementById("iOrigsSlideShow").style.left = parseInt(targetPos)+"px";
		curPos = targetPos;
		isSliding = false;
	}
	else {
		setTimeout("ito_doSlide("+dir+")","10");
	}
}

