var ScrollToTopOfPageAfterPostback = false; var isAnonymous = true; var isPostingStance = false; var isBrowsingItem = false; var hasAnimatedBefore = false; var m_newScript = null; var selectedItemId=null; var aRanks=null; var aRankData; var animationCounter=0; var animationSuspended=false; var blinkTimer = null; var moveTimer = null; var progressItemTimer = null; var dynaJSTimer = null; var oList = null; var aItems = null; var preventLoadList = false; var shuffleMode = false; var searchResultsMode = false; var allowSetStance = false; var listIsBeingFiltered = false; var PageNumber = 1; var PageSize = 100; function listItemHoverBehavior() { $('ol.list .ItemBubble').each(function(index) { var $elm = $(this).find('.LoadFactsButton'); $(this).mouseenter(function() { $elm.fadeIn("fast"); }); $(this).mouseleave(function() { $elm.fadeOut("slow"); }); }); } function EndRequestHandler(sender, args) { isPostingStance = false; setScrollPos(); isBrowsingItem = false; ScrollToTopOfPageAfterPostback = false; listItemHoverBehavior(); } function fnCheckImageWidths(elm) { if(elm == null) return; var imgs = elm.getElementsByTagName("img"); if(imgs.length == 0) return; for(var i = 0; i < imgs.length; i++) { if(document.location.toString().indexOf(imgs[i].src) > -1|| imgs[i].src == "") imgs[i].style.display="none"; var fullimgwidth = imgs[i].parentNode.getAttribute("fullimgwidth"); imgs[i].style.marginLeft="0px"; imgs[i].style.paddingLeft="0px"; if(fullimgwidth != null) { imgs[i].style.maxWidth= fullimgwidth + "px"; } else { imgs[i].style.maxWidth="250px"; } } } function addToFavorites() { if (window.external) { window.external.AddFavorite(window.location, document.title); } else { alert("Sorry! Your browser doesn't support this function."); } } function shuffleHover(mode, item) { var oImg = document.getElementById("simg" + item); switch(mode) { case "none": oImg.src = "/Images/vote-clear-shuffle.jpg"; break; case "top": oImg.src = "/Images/shuffle-top.jpg"; break; case "up": oImg.src = "/Images/shuffle-up.jpg"; break; case "down": oImg.src = "/Images/shuffle-down.jpg"; break; case "bottom": oImg.src = "/Images/shuffle-bottom.jpg"; break; } var oImg2 = document.getElementById("spimg" + item); if (oImg2 != null) oImg2.src = oImg.src; } function hoverLogic(oImg, mode, item, votingDisabled) { if(oImg == null) return; if (mode != "origimg") oImg.setAttribute("origimg", oImg.src); oImg.style.cursor = "pointer"; switch(mode) { case "origimg": oImg.src = oImg.getAttribute("origimg") break; case "up": if (!votingDisabled) oImg.src = "/Images/vote-up10.jpg"; else oImg.src = "/Images/novote-up.jpg"; break; case "down": if (!votingDisabled) oImg.src = "/Images/vote-down10.jpg"; else oImg.src = "/Images/novote-down.jpg"; break; case "remain": if (!votingDisabled) oImg.src = "/Images/vote-remain10.jpg"; else oImg.src = "/Images/novote-remain.jpg"; break; case "clear": if (!votingDisabled) oImg.src = "/Images/vote-clear.jpg"; else oImg.src = "/Images/vote-clear.jpg"; break; } } function voteHover(mode, item, votingDisabled) { if (isPostingStance) return; var oImg = document.getElementById("simg" + item); var oImg2 = document.getElementById("spimg" + item); if(oImg != null) hoverLogic(oImg, mode, item, votingDisabled); if(oImg2 != null) hoverLogic(oImg2, mode, item, votingDisabled); } function setListVariables() { oList = document.getElementById('list-inner'); aItems = oList.getElementsByTagName('LI'); for (var i=0; i"; } //logDebug3(debugItemLengthStr); //logDebug('setListVariables()... Items: ' + aItems.length); } function clearTimers() { //logDebug('Called clearTimers()...'); clearTimeout(blinkTimer); clearTimeout(moveTimer); clearTimeout(progressItemTimer); clearTimeout(dynaJSTimer); } function fnSuspendAnimation(elm) { //logDebug('Called fnSuspendAnimation()...'); //elm.style.border="1px solid #2a8b9e"; animationSuspended=true; preventLoadList = true; //added to prevent postback while user pointer in list area (DJ) clearTimers(); } function fnResumeAnimation(elm) { //logDebug('Called fnResumeAnimation()...'); // elm.style.border="1px solid #CCCCCC"; animationSuspended=false; // Animation does not run when default pagesize is not hundred or there is a filter on the list if (listIsBeingFiltered || PageSize !=100) { return; } if (aRanks != null) { animate(aRanks); } else { preventLoadList = false; loadData(); } } function getNodePosWithItemId(iMoveItemId) { //logDebug('called getNodePosWithItemId iMoveItemId = ' + iMoveItemId); aItems = oList.getElementsByTagName('LI'); for(var i=0; i 0 && aItems.length > 0 && aRanks.length != aItems.length) { //alert("checkItemCount mismatch - aItems:" + aItems.length + "; aRanks: " + aRanks.length); } } function GetEndRecordIndex() { aItems = oList.getElementsByTagName('LI'); if (PageSize > aItems.length) { // logDebug('End Record Index (aItems.length) = ' + aItems.length); // if (aItems.length > aRanks.length) { return aRanks.length; // } // else { // return aItems.length; //} } else { //logDebug('End Record Index (page size) = ' + PageSize); return PageSize; } } function checkAllItemsExistInList() { aItems = oList.getElementsByTagName('LI'); //logDebug('called checkAllItemsExistInList'); //alert("aRanks.length: " + aRanks.length + " aItems.length:" + aItems.length); var tmpEndRecord = GetEndRecordIndex(); //this was previously being called on every iteration of the loop, hence introduction of tmpEndRecord variable (DJ) if (aRanks.length > 0) { for(var i=0; i 0) { for(var i=0; i(PageSize-1)) { var oItem = aItems[i]; oList.removeChild(oItem); } } } setListItemProperties(); refreshNumbering(); } function itemExistsInPhysicalList(checkItemId) { //logDebug('called itemExistsInPhysicalList checkItemId = ' + checkItemId); aItems = oList.getElementsByTagName('LI'); for(var i=0; i"; // } if (movedAmount > largestMovedAmount) { largestMovedAmount = movedAmount; tmpArrayTopItem[0] = new Array(); tmpArrayTopItem[0][0] = theArray[i][0]; // ItemId tmpArrayTopItem[0][1] = i; // New pos } } //logDebug2(debugItemLengthStr); return tmpArrayTopItem; } function animate(aRanks) { //alert(aRanks.length) //logDebug('Called animate(aRanks)...'); if (m_newScript != null) { //alert("adding to iframe"); //document.getElementById("ifrDebug").src = m_newScript.src; } checkItemCount(); checkAllItemsExistInList(); showListLoader(false); aRankData=getItemMovedTheMost(aRanks); if(animationSuspended) return; $("#listbbl_arrw").css("display", "none"); var iMoveItemId = aRankData[0][0]; var iOldPos = getNodePosWithItemId(iMoveItemId); var iNewPos = aRankData[0][1]; //alert("iOldPos:" + iOldPos + " iNewPos:" + iNewPos); if (iOldPos != iNewPos) { //logDebug('animating... iOldpos: ' + (iOldPos + 1) + ' iNewPos: ' + (iNewPos+1)); //alert('in here'); hasAnimatedBefore = true; aItems = oList.getElementsByTagName('LI'); var oItem = aItems[iOldPos]; clearTimeout(blinkTimer); var bUp = (iNewPos < iOldPos); //var blink = function() { blinkPosition(oItem); }; //blinkTimer = setTimeout(blink, 100); if (iNewPos < iOldPos) { iOldPos = iOldPos +1; } else { iNewPos += 1 } var setClass = function() { setLIClass(oItem, bUp); }; dynaJSTimer = setTimeout(setClass, 1200); //logDebug('dynaJSTimer set.. setClasstimer = 1200'); var progress = function() { progressItemAnimation(oItem, iOldPos, iNewPos); }; progressItemTimer = setTimeout(progress, 800); //logDebug('progressItemTimer set.. progress timer = 800'); } else { resetHighlights(); clearTimers(); preventLoadList = false; dynaJSTimer = setTimeout(loadData, 30000); //logDebug('dynaJSTimer set.. loadData timer = 40000'); } } function progressItemAnimation(oItem, iOldPos, iNewPos) { preventLoadList = true; var iNewPosSmaller = (iNewPos < iOldPos); var moveToPos; if (!iNewPosSmaller) { moveToPos=iOldPos +1; } else { moveToPos=iOldPos -1; } var move = function() { moveToPosition(oItem, moveToPos, iNewPos, iNewPosSmaller); }; moveTimer = setTimeout(move, 1000); if (moveToPos != iNewPos) { //logDebug('progItemAnim.(From: ' + iOldPos + '; Step: ' + moveToPos + '; Target: ' + (iNewPos+1) + ')'); //alert("progressing: " + oItem.innerHTML + "iOldPos: " + iOldPos + " iNewPos:" + iNewPos); var progress = function() { progressItemAnimation(oItem, iOldPos, iNewPos); }; progressItemTimer = setTimeout(progress, 1000); } else { //logDebug('Anim. complete (From: ' + iOldPos + '; Step: ' + (moveToPos+1) + '; Target: ' + (iNewPos+1) + ')'); var clearHighlight = function() { oItem.className = null; }; clearTimers(); //progressItemTimer = setTimeout(clearHighlight, 3000); setTimeout(function() { var aRankData=getItemMovedTheMost(aRanks); var iNewPos = aRankData[0][1]; if(iNewPos != 0) { //alert("more animation..."); animate(aRanks); } else { //alert("we are loading data again after animating"); try {ShowBubbleTail(selectedItemId); } catch(e) {} resetHighlights(); clearTimers(); preventLoadList = false; dynaJSTimer = setTimeout(loadData, 4000); } } ,1000); //dynaJSTimer = setTimeout(loadData, 10000); } iOldPos = moveToPos; refreshNumbering(); //logDebug('ending progItemAnim.(From: ' + iOldPos + '; Step: ' + moveToPos + '; Target: ' + iNewPos + ')'); preventLoadList = false; } function blinkPosition(oLi) { //logDebug('Called blinkPosition(oLi) ...'); resetHighlights(); for (var i=0; i<=5; i++) { var blink = function() { if (oLi.className == 'blink') {oLi.className = '';} else {oLi.className = 'blink';}; }; blinkTimer = setTimeout(blink, i*200); } } function setLIClass(oLi,bUp) { //logDebug('Called setLIClass(oLi,bUp) ...'); if (bUp) { // Going up oLi.className = 'going-up'; } else { oLi.className = 'going-down'; } } function setSelectedItemRank() { setListVariables(); //alert(selectedItemId); if (selectedItemId != null && selectedItemId != "") { var pos = getNodePosWithItemId(selectedItemId); var ItemRankNumber1 = document.getElementById("ItemRankNumber1"); var ItemRankNumber2 = document.getElementById("ItemRankNumber2"); if ((ItemRankNumber1 != null) && (pos !=null)) { ItemRankNumber1.innerHTML = "#" + (pos+1); } if (ItemRankNumber2 != null) { ItemRankNumber2.innerHTML = "#" + (pos+1); } } } function moveToPosition(oLi, iNewPos, iDestinationPos, iNewPosSmaller) { var debugItemName = oLi.getElementsByTagName('SPAN')[2].getElementsByTagName('a')[0].innerHTML; //logDebug("moveToPosition(" + iNewPos + ", " + (iDestinationPos+1) + ", " + iNewPosSmaller + ") Mover: " + oLi.getAttribute("itemid") + ":- " + debugItemName); var bUp = iNewPosSmaller; aItems = oList.getElementsByTagName('LI'); // setLIClass(oLi, bUp); if (bUp) { animateItem(oLi, aItems[iNewPos-1],bUp); //oList.insertBefore(oLi, aItems[iNewPos-1]); //logDebug('Up, insert before : ' + iNewPos + '-1 Items: ' + aItems.length ); } else { //logDebug('Moving down, insert at : ' + iNewPos + ' Items: ' + aItems.length); animateItem(oLi, aItems[iNewPos],bUp); /* if (iNewPos == (aItems.length-1)) { try { oList.appendChild(oLi); logDebug('Down, appended child: ' + iNewPos + ' Items: ' + aItems.length ); } catch(err) { alert("moveToPosition (down1):" + err.message); } } else { try { animateItem(oLi, aItems[iNewPos],bUp); //oList.insertBefore(oLi, aItems[iNewPos+1]); //this is the point at which unwanted insertions are made! //logDebug('Down, insert before: ' + iNewPos + '+1 Items: ' + aItems.length); } catch(err) { alert("moveToPosition (down2):" + err.message); } } */ } refreshNumbering(); } function swapNodes(a, b) { aItems = oList.getElementsByTagName('LI'); //logDebug('Swap Nodes: a = ' + a.innerHTML + '; b = ' + b.innerHTML); var aparent= a.parentNode; var asibling= a.nextSibling===b? a : a.nextSibling; b.parentNode.insertBefore(a, b); aparent.insertBefore(b, asibling); refreshNumbering(); } function animateItem(movingItem, displacedItem, bUp) { var direction = 1; if (!bUp) {direction=-1} window.setTimeout(function() { var $movingItem = $(movingItem); var $displacedItem = $(displacedItem); //alert($movingItem[0].innerHTML); //alert($displacedItem[0].innerHTML); // logDebug('Direction: '+direction+' Item animation: ' + movingItem.innerHTML + ' swaps with '+displacedItem.innerHTML + ' mover.height = ' + ($movingItem.outerHeight(false) + 5) + '; displaced.height = ' + (-$displacedItem.outerHeight(false) - 5)); $movingItem.animate({ top: direction*(-$displacedItem.outerHeight(false) -5) + 'px' }, "slow"); $displacedItem.animate({ top: direction*($movingItem.outerHeight(false) +5) + 'px' }, "slow", function(){ swapNodes($(displacedItem)[0], $(movingItem)[0]); try { //alert($(movingItem)[0].innerHTML) //oList.insertBefore(movingItem, displacedItem); } catch(e) {alert(e.message);} //oList.insertBefore(movingItem, displacedItem); $('.list li').css({ height: 'auto', top : 'auto', float : 'left' }); /* if(destIdx <= 0) { progressToTop(startpos+1, startpos+1); } else { progressToTop(startpos, destIdx); } */ }); }, 10); } function progressAnimation() { animationCounter++; //logDebug("Called progressAnimation: animationCounter " + animationCounter); animate(aRankData); } function resetHighlights() { aItems = oList.getElementsByTagName('LI'); for (var i=0; i " + strMsg; } function logDebug3(strMsg) { //document.getElementById("divDebug3").innerHTML = "" var d = new Date(); document.getElementById("divDebug3").innerHTML = "





Client Side List :
" + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + ":" + d.getMilliseconds() + "
" + strMsg; } */ // Called directly after list data is fetched function setListItemProperties() { //logDebug('setListItemProperties()...'); setListVariables(); // var debugItemLengthStr = ""; if (aItems.length == 0) return; for (var i=0; i"; if (!searchResultsMode) { if (!shuffleMode) { if (!isAnonymous) { if (allowSetStance) { // Regular oImgMap.innerHTML = "" + "" + "" + ""; } else { // No stances allowed oImgMap.innerHTML = "" + "" + "" + ""; } } else { // Anon oImgMap.innerHTML = "" + "" + "" + ""; } } else { // Shuffle oImgMap.innerHTML = "" + "" + "" + ""; } } } //logDebug2(debugItemLengthStr); } function ShowBubbleTail(ItemId) { $(document).ready(function() { if(ItemId == null) ItemId = selectedItemId; try { var aIts = $('#list-inner li'); var $li = $(aIts[getNodePosWithItemId(ItemId)]); var $listbbl_arrw = $("#listbbl_arrw"); if(getInternetExplorerVersion != undefined && getInternetExplorerVersion() >= 8) { $listbbl_arrw.css("left", $li.position().left + $li.outerWidth(true)-21 + "px"); } else { $listbbl_arrw.css("left", $li.position().left + $li.outerWidth(true)-17 + "px"); } $listbbl_arrw.css("top", $li.position().top +5 + "px"); $listbbl_arrw.css("display", "block"); $listbbl_arrw.css("position", "absolute"); } catch(ex) {} }); } //[0]: ItemId, [1]: New Pos [2]: Item Name [3]: Stance type [4]: StanceIconBrightness function CreateListItem(ItemId, ItemName, ItemIndex, StanceType, StanceHeat, ItemURL) { var strCssClass = "sc"; var strStanceImage = "vote-clear.jpg"; switch (StanceType) { case "Up": strCssClass = "su"; strStanceImage = "vote-up" + StanceHeat + ".jpg"; break; case "Down": strCssClass = "sd"; strStanceImage = "vote-down" + StanceHeat + ".jpg"; break; case "Remain": strCssClass = "sr"; strStanceImage = "vote-remain" + StanceHeat + ".jpg"; break; case "Clear": strCssClass = "sc"; strStanceImage = "vote-clear.jpg"; break; } var itemHTML = ""; itemHTML += " " + StanceType + ""; itemHTML += " " + ItemIndex + "."; itemHTML += " "; itemHTML += " "; itemHTML += " " + ItemName + ""; itemHTML += " "; itemHTML += " "; var oNewLi = document.createElement("
  • "); oNewLi.innerHTML = itemHTML; return oNewLi; } /* Scroll stuff */ function scrollSelectedItemIntoView(selectedItemId) { // for(var i=0; i