/* * scrolloffame.js * Copyright (C) 2009 * Author: Liao Chen * Created: 2009-04-23 */ var ScrollOfFame = { items: new Object(), scrolls: new Array(), createItem: function(scroll, id) { var scrollOfFameItem = document.createElement("div"); scrollOfFameItem.className = "ScrollOfFameItem"; var scrollOfFameItemImage = document.createElement("div"); var imageUrl = $(ScrollOfFame.items[id]).find("image").text(); var color = $(ScrollOfFame.items[id]).find("avatar_color").text(); scrollOfFameItemImage.className = "ScrollOfFameItemImage AvatarImage" + color; if (imageUrl != "") scrollOfFameItemImage.innerHTML = "\"\""; scrollOfFameItem.appendChild(scrollOfFameItemImage); var scrollOfFameItemDetails = document.createElement("div"); scrollOfFameItemDetails.className = "ScrollOfFameItemDetails"; scrollOfFameItem.appendChild(scrollOfFameItemDetails); var scrollOfFameItemDetailsHead = document.createElement("div"); scrollOfFameItemDetailsHead.className = "ScrollOfFameItemDetailsHead"; scrollOfFameItemDetailsHead.innerHTML = $(ScrollOfFame.items[id]).find("head").text(); scrollOfFameItemDetails.appendChild(scrollOfFameItemDetailsHead); var scrollOfFameItemDetailsBody = document.createElement("div"); scrollOfFameItemDetailsBody.className = "ScrollOfFameItemDetailsBody"; scrollOfFameItemDetailsBody.innerHTML = $(ScrollOfFame.items[id]).find("body").text(); scrollOfFameItemDetails.appendChild(scrollOfFameItemDetailsBody); //var scrollOfFameItemDetailsLink = document.createElement("div"); //scrollOfFameItemDetailsLink.className ="ScrollOfFameItemDetailsLink"; //scrollOfFameItemDetailsLink.innerHTML = "" + $(ScrollOfFame.items[id]).find("link").text() + ""; //scrollOfFameItemDetails.appendChild(scrollOfFameItemDetailsLink); if (scroll.index + 1 < ScrollOfFame.items.length) scroll.index = scroll.index + 1; else scroll.index = 0; return scrollOfFameItem; }, updateItem: function(scroll, id, element) { var imageUrl = $(ScrollOfFame.items[id]).find("image").text(); var color = $(ScrollOfFame.items[id]).find("avatar_color").text(); var scrollOfFameItemImage = element.children(".ScrollOfFameItemImage").get(0); scrollOfFameItemImage.className = "ScrollOfFameItemImage AvatarImage" + color; if (imageUrl != "") scrollOfFameItemImage.innerHTML = "\"\""; var scrollOfFameItemDetails = element.children(".ScrollOfFameItemDetails"); var scrollOfFameItemDetailsHead = scrollOfFameItemDetails.children(".ScrollOfFameItemDetailsHead").get(0); scrollOfFameItemDetailsHead.innerHTML = $(ScrollOfFame.items[id]).find("head").text(); var scrollOfFameItemDetailsBody = scrollOfFameItemDetails.children(".ScrollOfFameItemDetailsBody").get(0); scrollOfFameItemDetailsBody.innerHTML = $(ScrollOfFame.items[id]).find("body").text(); //var scrollOfFameItemDetailsLink = document.createElement("div"); //scrollOfFameItemDetailsLink.className ="ScrollOfFameItemDetailsLink"; //scrollOfFameItemDetailsLink.innerHTML = "" + $(ScrollOfFame.items[id]).find("link").text() + ""; //scrollOfFameItemDetails.appendChild(scrollOfFameItemDetailsLink); if (scroll.index + 1 < ScrollOfFame.items.length) scroll.index = scroll.index + 1; else scroll.index = 0; }, init: function() { if (document.getElementById("ScrollOfFameContainerRight") != null) { var rightScroll = new Object(); rightScroll.container = document.getElementById("ScrollOfFameContainerRight"); rightScroll.containerWidth = 350; rightScroll.itemPositionInterval = 2; rightScroll.itemWidth = 227; rightScroll.index = 0; ScrollOfFame.scrolls.push(rightScroll); } var scroll = new Object(); scroll.container = document.getElementById("ScrollOfFameContainer"); scroll.containerWidth = 1003; scroll.itemPositionInterval = 2; scroll.itemWidth = 227; scroll.index = 0; ScrollOfFame.scrolls.push(scroll); ScrollOfFame.loadXML(); }, loadXML: function() { $.ajax ({ type: "GET", url: "/xml/scrolloffame.aspx?r=" + Math.random(), dataType: "xml", success: function(xml) { ScrollOfFame.items = $(xml).find("item"); for (var i = 0; i < ScrollOfFame.scrolls.length; i++) { var scroll = ScrollOfFame.scrolls[i]; var totalItems = Math.ceil(parseInt(scroll.containerWidth) / parseInt(scroll.itemWidth)) + 1; var c = (ScrollOfFame.items.length < totalItems) ? ScrollOfFame.items.length : totalItems; for (var iItem = 0; iItem < c; iItem++) { var scrollOfFameItem = ScrollOfFame.createItem(scroll, iItem); scrollOfFameItem.style.left = (iItem * scroll.itemWidth) + "px"; scroll.container.appendChild(scrollOfFameItem); } } setInterval("ScrollOfFame.render()", 25); } }); }, render: function() { for (var iScroll = 0; iScroll < ScrollOfFame.scrolls.length; iScroll++) { var itemPosition; var farMostItemPosition = 0; var scroll = ScrollOfFame.scrolls[iScroll]; var list = new Array(); $(scroll.container).children(".ScrollOfFameItem").each(function(i) { itemPosition = this.style.left.substr(0, this.style.left.length - 2) - scroll.itemPositionInterval; if (itemPosition >= -scroll.itemWidth) this.style.left = itemPosition + "px"; else list.push(this); if (farMostItemPosition < itemPosition) farMostItemPosition = itemPosition; }); for (var iItem = 0; iItem < list.length; iItem++) { var item = list[iItem]; ScrollOfFame.updateItem(scroll, scroll.index, $(item)); item.style.left = (farMostItemPosition + scroll.itemWidth) + "px"; farMostItemPosition = farMostItemPosition + scroll.itemWidth; } } } } $(document).ready(function() { ScrollOfFame.init(); $(".BackgroundBottom").map(function() { this.style.backgroundImage = "url(../images/background-bottom.gif)"; }); });