function ImageFlip(itemArr){
	var btnCont = SC.getById("flipBtns");
	var imgCont = SC.getById("flipImgHolder");
	var flipImg = SC.getById("flipImgImg");
	var flipLnk = SC.getById("flipImgLnk");
	var pauseBtn;
	var btnContNodes;
	var itemLength = itemArr.length;
	var timer;
	var currNum = 0;
	
	/* create pause button */
	function createPauseBtn(){
		var npause = document.createElement("a");
		var npauseImg = document.createElement("img");
		npause.id = "flipPause";
		npause.onclick = pauseFlip;
		npauseImg.src = flipPauseBtn;
		npause.appendChild(npauseImg);
		btnCont.appendChild(npause);
		pauseBtn = SC.getById("flipPause");
	}
	
	/* pause rotation per pause button */
	function pauseFlip(){
		var npause = pauseBtn;
		npause.firstChild.src = flipPlayBtn;
		npause.onclick = playFlip;
		clearInterval(timer);	
	}
	
	/* play rotation per play button */
	function playFlip(){
		var npause = pauseBtn;
		npause.onclick = pauseFlip;
		npause.firstChild.src = flipPauseBtn;
		flipTimer();
	}
	
	/* create number buttons */
	function initializeBtns(){
		for(var i=0;i<itemLength;i++){
			var nLink = document.createElement("a");
			var nLinkTxt = document.createTextNode(i+1);
			nLink.appendChild(nLinkTxt);
			nLink.onclick = setClick;
			nLink.flipNum = i;
			if(i==currNum){
				SC.addClass(nLink, "colorFlip");
			}
			btnCont.appendChild(nLink);
		}
		createPauseBtn();
	}
	
	/* handle link and image swap */
	function swapObjects(){
		flipImg.src = itemArr[currNum].img;
		flipLnk.href = itemArr[currNum].url;
		return false;
	}
	
	/* set class for number button when active */
	function setClass(obj){
		SC.addClass(obj, "colorFlip");
	}
	
	/* remove class from buttons */
	function unsetClasses(){
		btnContNodes = btnCont.childNodes;
		var btnContNodesLength = btnContNodes.length;
		for(var i=0;i<btnContNodesLength;i++){
			SC.removeClass(btnContNodes[i], "colorFlip");
		}
	}
	
	/* handle number click */
	function setClick(){
		setCurrNum(this.flipNum);
		swapObjects();
		unsetClasses();
		setClass(this);
		clearInterval(timer);
		flipTimer();
	}
	
	/* set current number */
	function setCurrNum(num){
		currNum = parseInt(num);
	}
	
	/* handle interval results */
	function autoFlip(){
		var nextNum = currNum;
		if(nextNum<(itemLength-1)) {
			nextNum += 1;
		} else {
			nextNum = 0;
		}
		unsetClasses();
		setClass(btnContNodes[nextNum]);
		setCurrNum(nextNum);
		swapObjects();
	}
	
	/* start with random number */
	function setRandomNum(){
		currNum = Math.floor(Math.random()*	itemLength);
		swapObjects();
	}
	
	/* start interval */
	function flipTimer(){
		convSeconds = flipSeconds * 1000;
		timer = setInterval(autoFlip,convSeconds);
	}
	
	setRandomNum();
	initializeBtns();
	flipTimer();
}
