function GameRotatorClass(maindiv, buttondiv, leftbutton, rightbutton){
    var imgarr = new Array();
    var mdiv = document.getElementById(maindiv);
    var bdiv = document.getElementById(buttondiv);
    var selIndex = 0;
    var LeftButton = new Image();
	if (leftbutton != undefined)
		LeftButton.src = leftbutton;
    var RightButton = new Image();
    if(rightbutton != undefined)
		RightButton.src = rightbutton;
    this.addGame = addGame;
    this.addSimpleGame = addSimpleGame;
    this.render = render;
    this.buttonClicked = buttonClicked;
    this.addNavButton = addNavButton;
    this.changeSelected = changeSelected;
    this.renderImage = renderImage;
    this.startTimer = startTimer;
    this.addFlashGame = addFlashGame;
    var timer;
    function addGame(buttonsrc, selectedbuttonsrc, tout, touturl, buttonalttext, toutalttext){
        imgarr[imgarr.length] = new Array();
        imgarr[imgarr.length-1][0] = "tout";
        imgarr[imgarr.length-1][1] = buttonalttext;
        imgarr[imgarr.length-1][2] = null;        
        imgarr[imgarr.length-1][3] = null;        
        imgarr[imgarr.length-1][4] = new Image();
        imgarr[imgarr.length-1][4].src = tout;
        imgarr[imgarr.length-1][5] = touturl;
        imgarr[imgarr.length-1][6] = toutalttext;
    }
    function addSimpleGame(tout, touturl , toutalttext){
        imgarr[imgarr.length] = new Array();
        imgarr[imgarr.length-1][0] = "simple";
        imgarr[imgarr.length-1][1] = "";
        imgarr[imgarr.length-1][2] = "";
        imgarr[imgarr.length-1][3] = "";
        imgarr[imgarr.length-1][4] = new Image();
        imgarr[imgarr.length-1][4].src = tout;
        imgarr[imgarr.length-1][5] = touturl;
        imgarr[imgarr.length-1][6] = toutalttext;
    }
    function addFlashGame(buttonsrc, selectedbuttonsrc, alttext, flashsrc,x,width,height,y,bgcolor){
        imgarr[imgarr.length] = new Array();
        imgarr[imgarr.length-1][0] = "flash";
        imgarr[imgarr.length-1][1] = alttext;
        imgarr[imgarr.length-1][2] = new Image();
        imgarr[imgarr.length-1][2].src = buttonsrc;
        imgarr[imgarr.length-1][3] = new Image();
        imgarr[imgarr.length-1][3].src = selectedbuttonsrc;
        imgarr[imgarr.length-1][4] = flashsrc;
        imgarr[imgarr.length-1][5] = x;
        imgarr[imgarr.length-1][6] = width;
        imgarr[imgarr.length-1][7] = height;
        imgarr[imgarr.length-1][8] = y;
        imgarr[imgarr.length-1][9] = bgcolor;
    }
    function addNavButton(buttonsrc, clickbuttonsrc ,navtype ,alttext){
        imgarr[imgarr.length] = new Array();
        
        imgarr[imgarr.length-1][0] = navtype;
        imgarr[imgarr.length-1][1] = alttext;
        imgarr[imgarr.length-1][2] = new Image();
        imgarr[imgarr.length-1][2].src = buttonsrc;
        imgarr[imgarr.length-1][3] = new Image();
        imgarr[imgarr.length-1][3].src = clickbuttonsrc;
        
    }
    function render(){
        var imgelem = null;
        for(i=0;i<imgarr.length;i++){
			
			if (imgarr[i][3]!=null){
				if(imgarr[i][0] != "simple"){
					imgelem = document.createElement("img");
					imgelem.setAttribute("title",imgarr[i][1]);
					if(i == selIndex){
						imgelem.setAttribute("src",imgarr[i][3].src);
						imgelem.style.cursor = "pointer";
					}else{
						imgelem.setAttribute("src",imgarr[i][2].src);
						imgelem.style.cursor = "pointer";
					}
					if(window.addEventListener){ // FF
						imgelem.addEventListener("click",buttonClicked,false);
						imgelem.buttonindex = i;
					}else{ // IE
						imgelem.attachEvent("onclick",buttonClicked);
						imgelem.buttonindex = i;
					}
					if((imgarr[i][0] == "left") || (imgarr[i][0] == "right")){
						if(window.addEventListener){ // FF
							imgelem.addEventListener("mouseover",navmover,false);
							imgelem.addEventListener("mouseout",navmout,false);
							imgelem.buttonindex = i;
						}else{ // IE
							imgelem.attachEvent("onmouseover",navmover);
							imgelem.attachEvent("onmouseout",navmout);
							imgelem.buttonindex = i;
						}
					}
					bdiv.appendChild(imgelem);
				}
            }
           
        }
        renderImage(selIndex);
    }
    function changeSelected(changeby){
        //if(changeby == 0){changeby = 1;}
        newidx = selIndex + changeby;
        if(imgarr[selIndex][0] != "simple"){
			if(newidx < 0){
				newidx = imgarr.length-3;
			}else if (newidx > imgarr.length-3){
				newidx = 0;
			}
			//bdiv.childNodes[selIndex].src = imgarr[selIndex][2].src;
			//bdiv.childNodes[newidx].src = imgarr[newidx][3].src;
        }else{
   			if(newidx < 0){
				newidx = imgarr.length-1;
			}else if (newidx > imgarr.length-1){
				newidx = 0;
			}

        }
        renderImage(newidx);
        selIndex = newidx;
    }
    function renderImage(index){
		switch(imgarr[index][0]){
			case "flash":
				var soFeaturedFlash = new SWFObject(imgarr[index][4], imgarr[index][5], imgarr[index][6], imgarr[index][7], imgarr[index][8], imgarr[index][9]);
				soFeaturedFlash.write(mdiv.id);
			break;
			default:
				if(imgarr[index][0] == "simple"){
					link = document.createElement("A");
					link.setAttribute("href",imgarr[index][5]);
				}
	            
				imgelem = document.createElement("img");
				imgelem.setAttribute("src",imgarr[index][4].src);
				imgelem.setAttribute("border","0");
				imgelem.setAttribute("title",imgarr[index][6]);
				if(imgarr[index][0] == "simple"){
					link.appendChild(imgelem);
					if(mdiv.childNodes.length == 0){
						mdiv.appendChild(link);
					}else{
						mdiv.replaceChild(link, mdiv.childNodes[0]);
					}
				}
				else
				{
					if(mdiv.childNodes.length == 0){
						mdiv.appendChild(imgelem);
					}else{
						mdiv.replaceChild(imgelem, mdiv.childNodes[0]);
					}
				}
		}
    }
    function autorotate(){
       changeSelected(1);
    }
    function startTimer(changeInterval){
        if(imgarr.length > 1){
            timer = setInterval(autorotate,changeInterval);   
        }
    }
    function navmout(evt){
        evt = (evt) ? evt : ((window.event) ? window.event : "");
        if(evt){
            var el = (evt.target) ? evt.target : evt.srcElement;
            el.src = imgarr[el.buttonindex][2].src;
        }
    }
    function navmover(evt){
        evt = (evt) ? evt : ((window.event) ? window.event : "");
        if(evt){
            var el = (evt.target) ? evt.target : evt.srcElement;
            el.src = imgarr[el.buttonindex][3].src;
        }
    }

    function buttonClicked(evt){
        clearInterval(timer);
        evt = (evt) ? evt : ((window.event) ? window.event : "");
        if (evt) {
        
            var clickedelem = (evt.target) ? evt.target : evt.srcElement;
            switch(imgarr[clickedelem.buttonindex][0]){
                case "left" :
                    changeSelected(-1);
                break;
                case "right" :
                    changeSelected(1);
                break;
                case "flash" :
                    var oldelem = bdiv.childNodes[selIndex];
                    oldelem.src = imgarr[selIndex][2].src;
                    clickedelem.src = imgarr[clickedelem.buttonindex][3].src;
                    renderImage(clickedelem.buttonindex);
                    selIndex = clickedelem.buttonindex;
                break;
                default :
                    var oldelem = bdiv.childNodes[selIndex];
                    oldelem.src = imgarr[selIndex][2].src;
                    clickedelem.src = imgarr[clickedelem.buttonindex][3].src;
                    renderImage(clickedelem.buttonindex);
                    selIndex = clickedelem.buttonindex;
                break;
            }
        }
    }
}