
var SlideIE6;

function initSlide(ScrollContent,ScrollLength,imgLeftArr,imgRightArr) {
	var elem = document.getElementById(ScrollContent);
	elem.currentSPos = [0,0];
	elem.scrollLength = ScrollLength;
	elem.isAnimating = false;
	elem.viewWidth = 1;
	elem.viewSize = 240;
	elem.navImages = [imgLeftArr,imgRightArr];
	elem.maxDist = (elem.scrollLength - elem.viewWidth) * elem.viewSize;
	elem.currStep = 0;
	elem.maxStep = elem.scrollLength + elem.viewWidth;
	SetNavState(elem);
}

function SetNavState(elem, newPos) {
	var nm = elem.id.substring(elem.id.indexOf('_'),elem.id.length);
	var NavElemL = document.getElementById('SlideNavLeft' + nm);
	var NavElemR = document.getElementById('SlideNavRight' + nm);
	var cPos = newPos == null ? elem.currentSPos[0] : newPos;
	if(elem.scrollLength > elem.viewWidth) {
		if(SlideIE6 != true) {
			if(cPos < 0) {
				NavElemL.style.background = "url('" + elem.navImages[0][1] + "') left top no-repeat";
			} else {
				NavElemL.style.background = "url('" + elem.navImages[0][0] + "') left top no-repeat";
			}
			if(cPos > -1 * elem.maxDist) {
				NavElemR.style.background = "url('" + elem.navImages[1][1] + "') left top no-repeat";
			} else {
				NavElemR.style.background = "url('" + elem.navImages[1][0] + "') left top no-repeat";
			}
		} else {
			// IE6...
			if(elem.currStep > 0) {
				NavElemL.style.background = "url('" + elem.navImages[0][1] + "') left top no-repeat";
			} else {
				NavElemL.style.background = "url('" + elem.navImages[0][0] + "') left top no-repeat";
			}
			if(elem.currStep + elem.viewWidth < elem.maxStep - elem.viewWidth) {
				NavElemR.style.background = "url('" + elem.navImages[1][1] + "') left top no-repeat";
			} else {
				NavElemR.style.background = "url('" + elem.navImages[1][0] + "') left top no-repeat";
			}
		}
		NavElemL.style.visibility = 'visible';
		NavElemR.style.visibility = 'visible';
	} else {
		NavElemL.style.visibility = 'hidden';
		NavElemR.style.visibility = 'hidden';
	}
}

function SlideLeft(whoElem) {
	var nm = whoElem.id.substring(whoElem.id.indexOf('_'),whoElem.id.length);
	var elem = document.getElementById('SlideContent' + nm);
	var newPos = elem.currentSPos[0] + (elem.viewSize);
	newPos > 0 ? newPos = 0 : null;
	var dist = -1 * (elem.currentSPos[0] - newPos);
	elem.currStep = elem.currStep - 1;
	elem.currStep < 0 ? elem.currStep = 0 : null;
	
	if(elem.isAnimating == false) {
		if(SlideIE6 != true) {
			if(elem.currentSPos[0] < 0) {
				elem.isAnimating = true;
				SetNavState(elem, newPos);
				doPosChangeMem(elem, elem.currentSPos,[newPos,0],Math.ceil(dist/28),Math.ceil(dist/14),1,"L");
			}
		} else {
			// IE6...
			SetNavState(elem, newPos);
			var itemCell = document.getElementById('SlideCell' + nm + "_" + (elem.currStep + 1));
			itemCell.style.display = 'block';
			elem.currentSPos[0] = elem.currentSPos[0] + (elem.viewSize);
			elem.currentSPos[0] > 0 ? elem.currentSPos[0] = 0 : null;
			elem.isAnimating = false;
		}
	}
}

function SlideRight(whoElem) {
	var nm = whoElem.id.substring(whoElem.id.indexOf('_'),whoElem.id.length);
	var elem = document.getElementById('SlideContent' + nm);
	var newPos = elem.currentSPos[0] - (elem.viewSize);
	newPos < -1 * elem.maxDist ? newPos = -1 * elem.maxDist : null;
	var dist = elem.currentSPos[0] - newPos;
	if(elem.currStep + 1 <= elem.maxStep) {
		elem.currStep = elem.currStep + 1;
		elem.currStep > elem.scrollLength - elem.viewWidth ? elem.currStep = elem.scrollLength - elem.viewWidth : null;
	}
	if(elem.isAnimating == false) {
		if(SlideIE6 != true) {
			if(elem.currentSPos[0] > -1 * elem.maxDist) {
				elem.isAnimating = true;
				SetNavState(elem, newPos);
				doPosChangeMem(elem, elem.currentSPos,[newPos,0],Math.ceil(dist/28),Math.ceil(dist/14),1,"R");
			}
		} else {
			// IE6...
			if(elem.currStep <= elem.maxStep) {
				SetNavState(elem, newPos);
				var itemCell = document.getElementById('SlideCell' + nm + "_" + elem.currStep);
				itemCell.style.display = 'none';
				elem.currentSPos[0] = elem.currentSPos[0] - (elem.viewSize);
				elem.currentSPos[0] < -1 * elem.maxDist ? elem.currentSPos[0] = -1 * elem.maxDist : null;
				elem.isAnimating = false;
			}
		}
	}
}

function finishAnim(elem,dir) {
	if(dir == "R") {
		elem.currentSPos[0] = elem.currentSPos[0] - (elem.viewSize);
		elem.currentSPos[0] < -1 * elem.maxDist ? elem.currentSPos[0] = -1 * elem.maxDist : null;
	} else {
		elem.currentSPos[0] = elem.currentSPos[0] + (elem.viewSize);
		elem.currentSPos[0] > 0 ? elem.currentSPos[0] = 0 : null;
	}
	elem.isAnimating = false;
}

//*******************

function doPosChangeMem(elem,startPos,endPos,steps,intervals,powr,direction) {
	if (elem.posChangeMemInt) window.clearInterval(elem.posChangeMemInt);
	var actStep = 0;
	elem.posChangeMemInt = window.setInterval(
		function() {
			elem.currentPos = [
				easeInOut(startPos[0],endPos[0],steps,actStep,powr),
				easeInOut(startPos[1],endPos[1],steps,actStep,powr)
				];
			elem.style.left = elem.currentPos[0]+"px";
			elem.style.top = elem.currentPos[1]+"px";
			actStep++;
			if (actStep > steps) {
				window.clearInterval(elem.posChangeMemInt);
				finishAnim(elem,direction);
			}
		}
		,intervals)

}

//*******************

function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) {
	var delta = maxValue - minValue;
	var stepp = minValue+(Math.pow(((1 / totalSteps)*actualStep),powr)*delta);
	return Math.ceil(stepp)
}
