var objPlaylist; xmlHttpReq = CreateRequestObject(); function playlist(divId, strDivWidth, columns, pixelsPerColumn, controlsId, pageCount, lastPageColumnsCount, pageButtonPrefix, leftArrowId, rightArrowId ) { this.divID = divId; this.div = document.getElementById(this.divID); this.div.style.width = strDivWidth; this.columnsPerPage = columns; this.pixelsPerColumn = pixelsPerColumn; this.playlistControlsId = controlsId; this.lastPageColumns = lastPageColumnsCount; this.currentPage = 1; this.lastPage = pageCount; this.inFlux = false; this.pageButtonPrefix = pageButtonPrefix; this.leftArrowId = leftArrowId; this.rightArrowId = rightArrowId; this.left = function() { intPos = this.div.style.left.replace("px",""); intPos = intPos / 1; return intPos; } /******** page position *********/ this.pagePosition = new Array(); for(var iii = 1; iii < this.lastPage; iii++) { this.pagePosition[iii] = (iii - 1) * ( this.columnsPerPage * this.pixelsPerColumn ); } this.pagePosition[this.lastPage] = this.pagePosition[this.lastPage - 1] + (this.lastPageColumns * this.pixelsPerColumn); /******** do slide function(s) *********/ this.doSlide = function(moveDist) { this.inFlux = true; var myObject = this; new Effect.Move(this.divID, {x: moveDist, y: 0, mode: 'relative', duration:1, transition: Effect.Transitions.sinoidal, afterFinish: function() {myObject.inFlux = false; } } ) } /********* move page function(s) ***********/ this.movePage = function(pageNum) { //debugAlert('pageNum =' + pageNum, 'currentPAge = ' + this.currentPage); if(pageNum != this.currentPage) { if(!this.inFlux) { this.assignCurrentPageStyle(pageNum); dist = this.pagePosition[this.currentPage] - this.pagePosition[pageNum]; this.doSlide(dist); this.currentPage = pageNum; } } } this.assignCurrentPageStyle = function(pageNum) { arrControls = document.getElementById(this.playlistControlsId).getElementsByTagName("a"); for(iii = 0; iii < arrControls.length; iii++) { if(arrControls[iii].className != null) { if( arrControls[iii].className.indexOf("page_arrow") == -1) { arrControls[iii].className = "page_button"; } } } document.getElementById(this.pageButtonPrefix + pageNum).className = "page_button active"; // leftLink = document.getElementById(this.leftArrowId); if(pageNum == 1) { leftLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistLeft_off.gif"; } else { leftLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistLeft.gif"; } // rightLink = document.getElementById(this.rightArrowId); if(pageNum == this.lastPage) { rightLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistRight_off.gif"; } else { rightLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistRight.gif"; } } } function initMainPlaylist() { objPlaylist = new playlist(strMainDivId, strMainDivWidth, mainPlaylistColsPerPage, mainColumnWidth, "playlist_controls", intMainPageCount, lastMainPageColumnsCount, mainPageButtonPrefix, 'btnLeftMain', 'btnRightMain'); if (intMainCurrentPage != 1) { objPlaylist.movePage(intMainCurrentPage); } } addLoadEvent(initMainPlaylist); function initMorePlaylist() { objMorePlaylist = new playlist(strMoreDivId, strMoreDivWidth, morePlaylistColsPerPage, moreColumnWidth, "more_playlist_controls", intMorePageCount, lastMorePageColumnsCount, morePageButtonPrefix, 'btnLeftMore', 'btnRightMore'); if (intMoreCurrentPage != 1) { objMorePlaylist.movePage(intMoreCurrentPage); } } addLoadEvent(initMorePlaylist); function postLoadImages() { for(iii = 0; iii < arrPostLoads.length; iii++) { imaj = document.getElementById(arrPostLoads[iii][0]); if(imaj) { imaj.src = arrPostLoads[iii][1]; } } } addLoadEvent(postLoadImages); function hoverDesc(mssg, desc_id) { hdDiv = document.getElementById(desc_id); if(mssg.length < 1) { hdDiv.style.visibility = 'hidden'; } else { hdDiv.style.visibility = 'visible'; hdDiv.innerHTML = unescape(mssg); } } function starOn(numm,starId) { document.getElementById(starId).src = "http://cache.g4tv.com/images/2007/video_detail/stars_" + numm + ".gif"; } function starOff(starId) { document.getElementById(starId).src = "http://cache.g4tv.com/images/2007/video_detail/avg_" + document.getElementById(starId).className.replace("imgStars ","") + ".gif"; } function starVote(intRating,intEntityKey,intUserKey,starId,voteId) { //deactivate voting mechanism document.getElementById(voteId).style.display = "none"; arrVoters = document.getElementById(voteId).childNodes; for(iii = 0; iii < arrVoters.length; iii++) { if(arrVoters[iii].attributes) { arrVoters[iii].setAttribute("onmouseout",null); } } starz = document.getElementById(starId); starz.src = "http://cache.g4tv.com/images/2007/video_detail/stars_" + intRating + ".gif"; starz.title = "Average rating: " + document.getElementById(starId).className.replace("imgStars ",""); starz.alt = "Average rating: " + document.getElementById(starId).className.replace("imgStars ",""); // //Vote paramz = 'rating=' + intRating + '&entitykey=' + intEntityKey + '&userkey=' + intUserKey + '&entitytype=Video'; var voteJax = new Ajax.Request('http://www.g4tv.com/ajax_vote.aspx',{parameters: paramz, onSuccess:handlerFunc, onFailure:errFunc}); } var handlerFunc = function(t) { // } var errFunc = function(t) { //alert('Error: ' + t.status + " --- " + t.statusText); } function changeTab(tabKey, li_id) { //alert(tabKey, li_id); moreUL = document.getElementById("moreTabs"); arrLI = moreUL.childNodes; for(iii = 0; iii < arrLI.length; iii++) { arrLI[iii].className=""; } activeLI = document.getElementById(li_id); activeLI.className="activeTab"; // //Ajax // var req = new Ajax.Request('http://www.g4tv.com/video_detail.aspx?newTab=' + tabKey, {onSuccess:parseTabResults, onFailure:errFunc}); } var parseTabResults = function(t) { divContainer = document.getElementById("more_playlist_container"); // arrResults = t.responseText.split(""); // divContainer.innerHTML = arrResults[0]; // //reset playlist // arrOutValues = arrResults[1].split("|"); objMorePlaylist.div.style.width = arrOutValues[0]; objMorePlaylist.lastPageColumns = arrOutValues[1]; objMorePlaylist.lastPage = arrOutValues[2]; objMorePlaylist.currentPage = 1; leftLink = document.getElementById(objMorePlaylist.leftArrowId); leftLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistLeft_off.gif"; rightLink = document.getElementById(objMorePlaylist.rightArrowId); rightLink.childNodes[0].src = "http://cache.g4tv.com/images/2007/video_detail/btnPlaylistRight.gif"; } function switchFrames(linkID, playlistId) { activeLink = document.getElementById(linkID); ctlPlaylist = document.getElementById(playlistId); lnkNodes = ctlPlaylist.childNodes; // for(iii = 0; iii < lnkNodes.length; iii++) { if(lnkNodes[iii].id != null) { if(lnkNodes[iii].id.indexOf("lnkVidr_") != -1) { lnkNodes[iii].childNodes[1].className = "inactiveFrame"; } } } activeLink.childNodes[1].className = "activeFrame"; } function playNextVideo() { var notInPlaylist = true; currentKey = document.getElementById('CurrentVideoKey').value; //alert(currentKey); // add this to not wrap playlist - && arrPlayList[29] != currentKey if(document.getElementById("continuous_play").checked) { for(iii = 0; iii < arrPlayList.length - 1; iii++) { if( currentKey == arrPlayList[iii]) { notInPlaylist = false; //we may need to change pages in the playlist newVideoPhysicalPosition = iii + 2; newPage = Math.ceil(newVideoPhysicalPosition / objPlaylist.columnsPerPage); objPlaylist.movePage(newPage); goToVideo('lnkVidr_' + (iii + 2), objPlaylist.divID, arrPlayList[iii + 1]); } } if(notInPlaylist || arrPlayList[29] == currentKey) { objPlaylist.movePage(1); goToVideo('lnkVidr_1', strMainDivId, arrPlayList[0]); } } }