// Copyright 2000-2007, Newsfutures, Inc. All Rights Reserved.
// Confidential and Proprietary Information of Newsfutures, Inc.
// %Z%%M%, %I%, %G%
//
// BAM trnmt - javascript client code
var binsById = new Object();
var binsBySymbol = new Object();
var spaceBarImg = "/elab/imgs/white.gif";
var greenBarImg = "/elab/imgs/bam/greenBar.png";
var redBarImg = "/elab/imgs/bam/redBar.png";
var hdrColor = "#5060A0";
var sortHdrColor = "purple";
// max number of greens/reds voted on any bin
var maxGreenBar = 0;
var maxRedBar = 0;
var maxBar = 0;
var barWidth = 100;
var maxGreenBarWidth = 0;
var maxRedBarWidth = 0;
var hasActiveBins = false;
// make sure we check that form is submitted if any changes were made
document.body.onUnload = "javascript:handleUnload();";
// initialize a few things
function initData() {
// if state not initialized, do it
if(state.filter == undefined)
state.filter = 'all';
if(state.sort == undefined)
state.sort = 'name';
if(state.sortDir == undefined)
state.sortDir = 'up';
// add to 'bins' access by the bin symbols
for(var i = bins.length ; i-- > 0 ; ) {
var bin = bins[i];
binsBySymbol[bin.symbol] = bin;
binsById[bin.id] = bin;
hasActiveBins = hasActiveBins || (bin.state == 'active');
bin.marbles = 0;
bin.origMarbles = 0;
bin.flagged = false;
//if(bin.period.greens > maxGreenBar) maxGreenBar = bin.period.greens;
//if(bin.period.reds > maxRedBar) maxRedBar = bin.period.reds;
if(bin.totalGreens > maxGreenBar) maxGreenBar = bin.totalGreens;
if(bin.totalReds > maxRedBar) maxRedBar = bin.totalReds;
}
maxBar = maxGreenBar + maxRedBar;
maxGreenBarWidth = (maxGreenBar/maxBar)*barWidth;
maxRedBarWidth = (maxRedBar/maxBar)*barWidth;
// move cumulative investments in bins
for(var i = cumulInvs.length ; i-- > 0 ; ) {
binsById[cumulInvs[i].binId].cumulInv = cumulInvs[i];
}
// if all bins are closed, automatically select the 'filter' to judged ideas
if(!hasActiveBins)
state.filter = "closed";
// sort bins according to popularity
state.sort = "pop";
sortBins(state.sort);
}
// generate various page objects
function initScreen() {
// initialize the filer Select obj.
var sb = new StringBuffer();
sb.append("");
document.getElementById("filterSpan").innerHTML = sb.toString();
// create an initial bin table
redisplayAllBins();
}
// display all the bins as specified by the filters
function redisplayAllBins() {
var t = document.getElementById("binsTbl");
// delete all rows
while(t.rows.length > 0) t.deleteRow(0);
// build the header
var r = t.insertRow(t.rows.length);
r.className ="account-header";
r.valign="middle";
var noSortImg = "";
var sortImg = "";
var z = 0;
genSortButtonHTML(r.insertCell(z++), "name", "Ideas", state);
if(!trnmt.noGraph) {
c = r.insertCell(z++);
c.colSpan = 2;
genSortButtonHTML(c, "pop", "Popularity", state);
}
// genSortButtonHTML(r.insertCell(z++), "date", "Last Modified", state);
// add bins according to filter
var arr = new Array();
for(var i = bins.length ; i-- > 0 ; ) {
var bin = bins[i];
if(bin.state == "active") {
switch(state.filter) {
case "all":
arr.push(bin);
break;
case "recent":
if(bin.modTs >= trnmt.period.startTs)
arr.push(bin);
break;
default:
if(bin.group == state.filter)
arr.push(bin);
break;
}
} else {
switch(state.filter) {
case "suspended":
if((bin.state == "suspended") || (bin.state == "halted"))
arr.push(bin);
break;
case "closed":
if(bin.state == "closed")
arr.push(bin);
break;
}
}
}
if(state.sortDir == "down")
arr.reverse();
for(var i = 0 ; i < arr.length ; i++) {
r = t.insertRow(t.rows.length);
appendBin(r, arr[i]);
}
}
// append a row for bin to 'sb'
function appendBin(r, bin) {
var z = 0;
// describe Bin
c = r.insertCell(z++);
c.className = "neutral";
c.innerHTML = "