rendered paste body
function initWidget() {
updateWidget();
}
function updateWidget() {
dataArr = parseDataList();
textSize = 18;
textVOffsetMultiplier = textSize + 10;
longest = 0;
for (i = 0; i < dataArr.length; i++)
if (dataArr[i][0].length > longest)
longest = dataArr[i][0].length;
// labels | seperator | episodes | seperator | totals | fadeoff
window.width = longest * 10 + 10 + 25 + 10 + 35 + 20;
windowWidth = window.width;
window.height = dataArr.length * (textSize + 10) + 15;
windowHeight = window.height;
// Labels
hOff = window.width-5;
rowLabel = Array();
rowLineL = Array();
for (i = 0; i < dataArr.length; i++) {
rowLabel[i] = new Text();
with (rowLabel[i]) {
size = textSize;
hOffset = longest * 10;
vOffset = (i+1) * textVOffsetMultiplier;
data = dataArr[i][0];
alignment = "right";
}
if (i + 1 < dataArr.length) {
rowLineL[i] = new Image();
with (rowLineL[i]) {
src = "images/hLineL.png";
hOffset = longest * 10 - rowLabel[i].data.length * 10;
vOffset = (i + 1) * textVOffsetMultiplier + 5;
}
}
}
// Episodes
rowCount = Array();
rowLineC = Array();
for (i = 0; i < dataArr.length; i++) {
rowCount[i] = new Text();
with (rowCount[i]) {
size = textSize;
hOffset = longest * 10 + 10 + 13;
vOffset = ((i+1) * textVOffsetMultiplier);
data = dataArr[i][1];
alignment = "center";
onMouseUp = "increaseCount("+ i +");";
}
if (i + 1 < dataArr.length) {
rowLineC[i] = new Image();
with (rowLineC[i]) {
src = "images/hLineC.png";
hOffset = longest * 10 - rowLabel[i].data.length * 10 + 33;
vOffset = (i + 1) * textVOffsetMultiplier + 5;
width = (windowWidth - 25) - (longest * 10 - rowLabel[i].data.length * 10 + 33);
}
}
}
// Totals
rowTotal = Array();
rowLineR = Array();
for (i = 0; i < dataArr.length; i++) {
rowTotal[i] = new Text();
with (rowTotal[i]) {
size = textSize;
hOffset = longest * 10 + 10 + 25 + 10 + 35;
vOffset = (i+1) * textVOffsetMultiplier;
data = Math.round(dataArr[i][1] * dataArr[i][2] * 10) / 10; // accuracy of 1 decimal
alignment = "right";
}
if (i + 1 < dataArr.length) {
rowLineR[i] = new Image();
with (rowLineR[i]) {
src = "images/hLineR.png";
hOffset = windowWidth - 25;
vOffset = (i + 1) * textVOffsetMultiplier + 5;
}
}
}
// Vertical lines
colLine = Array();
colLine[0] = new Image();
with (colLine[0]) {
src = "images/vLine.png";
hOffset = longest * 10 + 2;
vOffset = 0;
height = windowHeight;
}
colLine[1] = new Image();
with (colLine[1]) {
src = "images/vLine.png";
hOffset = longest * 10 + 10 + 25;
vOffset = 0;
height = windowHeight;
}
}
function increaseCount(i) {
dataArr[i][1] = parseInt(dataArr[i][1]) + 1;
preferences.dataList.value = packDataList();
updateWidget();
}
function parseDataList() {
dataArr = new Array();
desc = preferences.dataList.value;
j = -1; k = 0;
for (i = 0; i < desc.length; i++) {
if (desc.charAt(i) == "|") {
j++; k = 0;
dataArr[j] = new Array(3);
dataArr[j][0] = ""; dataArr[j][1] = ""; dataArr[j][2] = "";
}
else
if (desc.charAt(i) == "#")
k++;
else
dataArr[j][k] = dataArr[j][k] + desc.charAt(i);
}
/*
print("Aloitetaan tulostus:");
for (i = 0; i < dataArr.length; i++)
for (j = 0; j < dataArr[i].length; j++)
print(dataArr[i][j]);
*/
return dataArr;
}
function packDataList() {
tbr = ""
for (i = 0; i < dataArr.length; i++) {
tbr = tbr + "|";
tbr = tbr + dataArr[i][0] + "#";
tbr = tbr + dataArr[i][1] + "#";
tbr = tbr + dataArr[i][2];
}
return tbr;
}