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;
document.getElementById("divDebug").innerHTML += "
" + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + ":" + d.getMilliseconds() + ": " + strMsg;
}
function logDebug2(strMsg) {
//document.getElementById("divDebug2").innerHTML = ""
var d = new Date();
document.getElementById("divDebug2").innerHTML = "
Server Side List :
" + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds() + ":" + d.getMilliseconds() + "
" + 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