function ImageFlip(itemArr){
	var flipYes = document.getElementById("flipImgArea");
	if(flipYes != null) {
		var btnCont = SC.getById("flipBtns");
		var imgCont = SC.getById("flipImgHolder");
		var flipImg = SC.getById("flipImgImg");
		var flipLnk = SC.getById("flipImgLnk");
		var flipTxt = SC.getById("flipImgTxt");
		var flipMore = SC.getById("flipImgMore");
		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;
			flipTxt.innerHTML = itemArr[currNum].txt;
			flipMore.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();
	}
}
