function GameRotatorClass(maindiv, buttondiv){
    var imgarr = new Array();
    var mdiv = document.getElementById(maindiv);
    var bdiv = document.getElementById(buttondiv);
    var selIndex = 0;
    this.addGame = addGame;
    this.addGameNoButton = addGameNoButton;
    this.render = render;
    this.buttonClicked = buttonClicked;
    this.addNavButton = addNavButton;
    this.changeSelected = changeSelected;
    this.renderImage = renderImage;
    this.startTimer = startTimer;
    this.addFlashGame = addFlashGame;
    this.addFlashGameNoButton = addFlashGameNoButton;
    var timer;
    
    function addGameNoButton(tout, touturl, toutalttext){
        imgarr[imgarr.length] = new Array();
        imgarr[imgarr.length-1][0] = "tout";
        imgarr[imgarr.length-1][1] = null;
        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][4] = tout;
        imgarr[imgarr.length-1][5] = touturl;
        imgarr[imgarr.length-1][6] = toutalttext;
    }
    
    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] = 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] = new Image();
//        imgarr[imgarr.length-1][4].src = tout;
        imgarr[imgarr.length-1][4] = tout;
        imgarr[imgarr.length-1][5] = touturl;
        imgarr[imgarr.length-1][6] = toutalttext;
    }
    function addFlashGameNoButton(flashsrc,x,width,height,y,bgcolor){
        imgarr[imgarr.length] = new Array();
        imgarr[imgarr.length-1][0] = "flash";
        imgarr[imgarr.length-1][1] = null;
        imgarr[imgarr.length-1][2] = null;
        imgarr[imgarr.length-1][3] = null;
        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 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][2] != null){
                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(newidx < 0){
            newidx = imgarr.length-3;
        }else if (newidx > imgarr.length-3){
            newidx = 0;
        }
        if(imgarr[selIndex][2] != null){
            bdiv.childNodes[selIndex].src = imgarr[selIndex][2].src;
        }
        if(imgarr[newidx][3] != null){
            bdiv.childNodes[newidx].src = imgarr[newidx][3].src;
        }
        renderImage(newidx);
        selIndex = newidx;
    }
    function renderImage(index){
        if(imgarr[index][0] == "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);
        }else{
            link = document.createElement("A");
            link.setAttribute("href",imgarr[index][5]);
            
            imgelem = document.createElement("img");
            imgelem.setAttribute("src",imgarr[index][4]);
            imgelem.setAttribute("border","0");
            imgelem.setAttribute("title",imgarr[index][6]);
            link.appendChild(imgelem);
            if(mdiv.childNodes.length == 0){
                mdiv.appendChild(link);
            }else{
                mdiv.replaceChild(link, mdiv.childNodes[0]);
            }
        }
    }
    function autorotate(){
       changeSelected(1);
    }
    function startTimer(changeInterval){
        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;
            }
        }
    }
}
