
function gamesdotcomInit(){
    gameDetail();
    genreOnclick();
}

// THIS DOES THE AJAX REQUEST 
var ajax_req = false;

function makeReq(url,outputHere) {
    ajax_req = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        ajax_req = new XMLHttpRequest();
        if (ajax_req.overrideMimeType) {
            ajax_req.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            ajax_req = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
            ajax_req = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!ajax_req) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        return false;
    }
    ajax_req.onreadystatechange = outputReq;
    ajax_req.open('GET', url, true);
    ajax_req.send(null);

    function outputReq() {
        try {
            if (ajax_req.readyState == 4) {
                if (ajax_req.status == 200) {
                    var responce = ajax_req.responseText;
                    var outputDiv = document.getElementById(outputHere);
                    outputDiv.innerHTML = responce;
                } else {
                    alert('There was a problem with the request.');
                }
            }
        }
        catch( e ) {
            alert('Caught Exception: ' + e.description);
        }
    }
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}


// THIS BLOCK IS FOR THE BROWSE GAMES TABBED MOD 
function gameIndexSet(pID){ //ADDS ONCLICK TO DISPLAY TABS
    if (document.getElementById("gameIndexTbs"+pID)) {
        var objA = document.getElementById("gameIndexTbs"+pID).getElementsByTagName("A");
        var i = objA.length; 
        while(i-->0) {   // LOOP THROUGH THE A's
            objA[i].onclick = function() {gameIndexGet(this.id,pID); updateMmx('top games'); return false;} // ADD ONCLICK FUNCTION
        }
    }
}

function gameIndexGet(obj,pID) {
    if (document.getElementById("gameIndexTbs"+pID)) {
        var objOn = document.getElementById(obj);
        var objA = document.getElementById("gameIndexTbs"+pID).getElementsByTagName("A");
        var i = objA.length; 
        while(i-->0) {   // LOOP THROUGH THE A's
            objA[i].className = "off"; // turn off tabs
        }
        objOn.className = "active"; // turn on tab
        
        var modReqURL = "/mod.adp?_mo=1&_miid=" + obj;
        var CntD = "gameIndexCntD" + pID;
        makeReq(modReqURL,CntD);
    }
}
// THIS ENDS THE BLOCK FOR THE BROWSE GAMES TABBED MOD 



// THIS BLOCK OF JS IS FOR THE GENRE BROWSE MOD
function genreOnclick (){ // ADDS ONCLICK FUNCTIONS 
    if (document.getElementById("disStyle")) {
        var objA = document.getElementById("disStyle").getElementsByTagName("A");
        var i = objA.length; 
        while(i-->0) {   // LOOP THROUGH THE A's
            objA[i].onclick = function() {changeDisStyle(this.id); createCookie("gameView",this.id); updateMmx(); return false;} // ADD ONCLICK FUNCTION
        }
    }
}

function changeDisStyle(obj){ //CHANGES BETWEEN DISPLAY OPTIONS
    if (document.getElementById("disStyle")) {
        var objOn = document.getElementById(obj);
        var objA = document.getElementById("disStyle").getElementsByTagName("A");
        var i = objA.length; 
        while(i-->0) {   // LOOP THROUGH THE A's
            objA[i].className = "off"; // turn off tabs
        }
        objOn.className = "on"; // turn on tab
        document.getElementById("gamesDisHd").className = obj; // change display for hd
        
        if (document.getElementById("gamesDis")) {
            document.getElementById("gamesDis").className = obj; // change display
        }
        removeGameDetail(); // REMOVE DETAIL POPUP WHEN CHANGING VIEWS
    }
}

function gameDetail(){ //AD MOUSEOVER FOR GAME DETAIL POP CALL        
    if (document.getElementById("gamesDis")) {
        var objA = document.getElementById("gamesDis").getElementsByTagName("A"); // GET ALL A WITHIN PARENT CONTAINER
        var i = objA.length;  
        while(i-->0) {   // LOOP THROUGH THE A's
            if (objA[i].id.substr(0,9)=="gameTitle"){  // FIND THE ONES WERE INTERESRTED IN
                objA[i].onmouseover = function() {showGameDetail(this.id);}// ADD ONMOUSEOVER FUNCTION    
                objA[i].onmouseout = function() {removeGameDetail();}// ADD ONMOUSEOUT FUNCTION
            }
        }
    }
}

function showGameDetail(obj){ // SHOWING YOU GUESSED IT  -  GAME DETAIL POP
    
    removeGameDetail();// FIRST WE NEED TO HIDE ANY GAME DETAILS THAT ARE OPEN
    
    var activeLink = document.getElementById(obj);
    var gameDetail = document.getElementById("gameDetail"+obj.substr(9,10));
    var gameDetailClone = gameDetail.cloneNode(true);
    
    gameDetailClone.id = "CgameDetail"+obj.substr(9,10); // GIVING CLONE A UNIQUE ID 
    
    var div = document.createElement("div");
    div.className = "gameDetailPop";
    div.setAttribute("id","gameDetailPop"+obj.substr(9,10));
    div.appendChild(gameDetailClone);
    gameDetailClone.style.display = "block";
    div.style.display = "block";
    var linkP = activeLink.parentNode.parentNode.parentNode;
    linkP.appendChild(div);
    
}

function removeGameDetail(){
    if (document.getElementById("gamesDis")) {
        var objA = document.getElementById("gamesDis").getElementsByTagName("DIV"); // GET ALL DIVs WITHIN PARENT CONTAINER
        var i = objA.length;
            
        while(i-->0) {   // LOOP THROUGH THE DIV's
            if (objA[i].id.substr(0,13)=="gameDetailPop"){  // FIND THE ONES WERE INTERESRTED IN
                objA[i].parentNode.removeChild(objA[i]); // HIDE OPEN GAME DETAILS
            }
        }
    }
}

// this facilitates the games per page dropdown. 
function changeGameCnt(obj){
    window.location=obj;
}

// END GENRE BROWSE JS

function getElementByClass(classname){
    var partscollect=new Array();
    var inc=0;
    var alltags=document.all? document.all.tags("DIV") : document.getElementsByTagName("*");
    for (i=0; i<alltags.length; i++){
        if (alltags[i].className==classname) { partscollect[inc++]=alltags[i];}
    }
    return partscollect;
}

function navigateGallery(gal, galLbl, dir, imgs) {
    var max = imgs.length;
    var gallery = document.getElementById(gal);
    var galleryLabel = document.getElementById(galLbl);
    var index = galleryLabel.innerHTML;

    if ((dir == 'prev') && (index != 1)) {index--;}
    else if ((dir == 'next') && (index != max)) {index++;}
    
    gallery.src = imgs[(index-1)];
    galleryLabel.innerHTML = index;

    if (index > 1) {
        gallery.setAttribute('class','alt'); // FF & Safari
        gallery.className = 'alt'; // IE
    } else {
        gallery.setAttribute('class',''); // FF & Safari
        gallery.className = ''; // IE
    }
}

function toggleText(mode,txtDivName,txtType,shortTxtName,fullTxtName){
    var txtDiv = eval(txtDivName);
    if (mode == 'hide') {
        var shortTxt = eval(shortTxtName);
        txtDiv.innerHTML = shortTxt + "... <a href=\"javascript:void(0)\" onclick=\"toggleText('show','"+txtDivName+"','"+txtType+"','"+shortTxtName+"','"+fullTxtName+"');\" return false;\">Read Full Game "+ txtType + " &rsaquo;</a>";
    } else if (mode == 'show') {
        var fullTxt = eval(fullTxtName);
        txtDiv.innerHTML = fullTxt + " <a href=\"javascript:void(0)\" onclick=\"toggleText('hide','"+txtDivName+"','"+txtType+"','"+shortTxtName+"','"+fullTxtName+"');\" return false;\">&lsaquo; Hide Full Game " + txtType +"</a>";
    }
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

function toggleToolTip(mode, linkObj, ttObj){
    var to = document.getElementById(ttObj);

    if (mode == 'show') {
        var coors = findPos(linkObj);
        to.style.top = coors[1] + 12 + 'px';
        to.style.left = coors[0] + 'px'; 
        to.style.display = '';
    }
    else if (mode == 'hide') {
        to.style.display = 'none';
    }
}

function iterateHover(mode, curNum, selectedNum, linkId) {
    for (var n=1; n <= selectedNum; n++) {
        var linkObj= document.getElementById(linkId+n);
        var c;
        if (mode == 'over') {
            c = 'over';
        } else if (mode == 'out') {
            (n <= curNum) ? (c = 'on') : (c = 'off')
        }
        linkObj.setAttribute('class',c); // FF & Safari
        linkObj.className = c; // IE
    } 
}

/*function submitValue(type, screenName, formName, paramName, paramValue) {
    if (screenName != '') {
        alert('Thank you for submitting a ' + type + '!');
        eval('document.' + formName + '.' + paramName + '.value=' + paramValue);
        eval('document.' + formName + '.submit()');
    } else { 
        alert('You must be signed in to submit a ' + type + '!');
    }
}*/

function switchTab(moduleType, numTabs, activeTabNum, numSubTabs, activeSubTabNum) {
    
    //deactivate other tab(s)
    for (var i=1; i<numTabs; i++) {
        var otherTabnum = (activeTabNum + i) % numTabs;
        if (otherTabnum == 0) { otherTabnum = numTabs; }
        document.getElementById(moduleType+"_tab"+otherTabnum).className = "";
        document.getElementById(moduleType+"_tabcontent"+otherTabnum).style.display = "none";
    }

    //activate selected tab
    document.getElementById(moduleType+"_tab"+activeTabNum).className = "active";
    document.getElementById(moduleType+"_tabcontent"+activeTabNum).style.display = "";

    // check for subtabs
    if (numSubTabs) {
        //deactivate other subtab(s)
        for (var i=1; i<numSubTabs; i++) {
            var otherSubTabnum = (activeSubTabNum + i) % numSubTabs;
            if (otherSubTabnum == 0) { otherSubTabnum = numSubTabs; }
            document.getElementById(moduleType+"_tab"+activeTabNum+"_sub"+otherSubTabnum).className = "";
            document.getElementById(moduleType+"_tabcontent"+activeTabNum+"_sub"+otherSubTabnum).style.display = "none";
        }

        //activate selected subtab
        document.getElementById(moduleType+"_tab"+activeTabNum+"_sub"+activeSubTabNum).className = "active";
        document.getElementById(moduleType+"_tabcontent"+activeTabNum+"_sub"+activeSubTabNum).style.display = "";
    }
}

function bookmarkPage(url,title) {
    if (window.sidebar) { // Mozilla Firefox Bookmark
        window.sidebar.addPanel(title, url,"");
    } else if( window.external ) { // IE Favorite
        window.external.AddFavorite( url, title);
    } else if(window.opera && window.print) { // Opera Hotlist
        return true; 
    }
}

function shareMail(formName, toFieldName, msgFieldName, defaultTo, subject, url) {
    var bolSend = true;
    eval('var oShareForm = document.forms.'+ formName);
    
    eval('var shToEmail = oShareForm.' + toFieldName + '.value');
    if ( (shToEmail == '') || (shToEmail == defaultTo) ) {
        alert("Please enter a destination email address.");
        eval('oShareForm.'+ toFieldName + '.focus()');
        bolSend = false;
    }
    
    eval('var shMsg = oShareForm.'+msgFieldName+'.value');
    
    var strMailto = "mailto:";
    strMailto += shToEmail + "?";
    
    strMailto += "&subject=" + subject;
    strMailto += "&body=" + url + "%0D%0D" + shMsg;
    
    if (bolSend) { document.location.href = strMailto; }
}

function checkMaxLength(textareaObj) {
    // Check if we have words longer than maxLongChar chars and break them up
    var maxLongChar = 68; //NOTE: Must be an even number
    var objText = textareaObj.value;
    var regStrLength = new RegExp("([^\\s]{"+maxLongChar+"})", "i");
    var ar = regStrLength.exec(objText);
    if (ar) {
        var longWord = textareaObj.value.substring(ar.index,ar.index+maxLongChar+1);
        var halfWordLength = maxLongChar / 2;
        var firstHalf = longWord.substring(0,halfWordLength-1);
        var lastHalf = longWord.substring(halfWordLength-1,maxLongChar-1);
        var newWord = firstHalf + "- " + lastHalf;
        objText = objText.replace(longWord,newWord);
        textareaObj.value = objText;
    }

    // Enforce textarea maxLength
    var maxLength = textareaObj.getAttribute('maxlength');
    var currentLength = textareaObj.value.length;
    if (currentLength > maxLength)
        textareaObj.value=textareaObj.value.substring(0,maxLength)

    // Update counter object content with current character count
    var counter = document.getElementById(textareaObj.getAttribute('counter'));
    counter.firstChild.nodeValue = currentLength + '/' + maxLength;
}


//begin submit while you type code
//Filter Code Starts             
var timer;  
var chkTimer_fnRef;
var timeOutTime = 100;     

function clicker (modID) { 
    timer = 200;            
    if ('undefined' != typeof(chkTimer_fnRef)) {
        window.clearTimeout(chkTimer_fnRef);
    }            
    chkTimer_fnRef = window.setTimeout('chkTimer("'+modID+'")', timeOutTime);
}       
 
function chkTimer(modID) { 
    var qryObjId = document.getElementById('gameAssetSrchQry');          
    if (0 < timer) {
        timer = timer - 50;
        if (qryObjId != '') {
            chkTimer_fnRef = window.setTimeout('chkTimer("'+modID+'")', timeOutTime);
        }
        return;
    }
    if(timer == 0) {              
        getGameAssetResult(modID);
    }
}       

function getGameAssetResult(modID) {            
    var gameAssetSrchQry = document.getElementById('gameAssetSrchQry').value;
  
    var modReqURL = "/mod.adp?_mo=1&_miid="+modID+"&search="+gameAssetSrchQry;
    var CntD = "ajaxSrcResp";
    makeReq(modReqURL,CntD);
    adRefresh()
}
   
//Filter Code Ends
// end submit while you type code


function updateMmx(type) {
    var title = s_265.pageName;
    if ((type != undefined) && (type.length > 0)) {title += ' : ' + type;}
    var trackingUrl = 'http://' + location.host + '/mm_track/' + escape(s_265.prop1) + '/' + escape(s_265.prop2) + '/?title=' + escape(title) +'&omni=1';
    document.getElementById('mmx').src = trackingUrl;
}


// cott.init OVERRIDE
cott.init = function() {
        var topLink = document.getElementById("toplink");
        var links = topLink.getElementsByTagName("A");
        cott.maxLink = links.length;
        if (links.length == 0) { return; }
        for(var i=0;i<links.length;i++) {
            links[i].style.background = 'url(http://www.aolcdn.com/ch_games/games-sprite) 0 -289px no-repeat';
            links[i].style.zoom = 1;
            if (i>0) { links[i].style.display = 'none'; }
        }
        setTimeout("cott.rotateLink(2)", cott.timeout);
    };


window.addEventListener?window.addEventListener("load",gamesdotcomInit,false):window.attachEvent("onload",gamesdotcomInit);
