i = 0
cubes = 1
sVal = 0
siVal = 0.11
sEnabled = 1

function checkCubes() {
   cubeCounter = 0
   for (i=0; i<document.images.length; i++) {
      if (document.images[i].className == 'cube' && document.images[i].style.visibility != 'hidden') // count if right class and visible
         cubeCounter++;
   }
//   alert('cubes: ' + cubeCounter)
}


function addTheDamnedCube(cNumber) {
   cubeTable.innerHTML += '<img src="images/icubed/null.gif" name="cube' + cNumber + '" class="cube">'
   tgt = 'cube' + cNumber
   document[tgt].style.pixelTop = 1
   document[tgt].style.pixelLeft = ((cNumber+1)*-15) // move left
}

function createCubes(number) {
   nCubes = number
   currentCube = 0
   for (i=0; i<number; i++) {
      setTimeout("addTheDamnedCube(" + i + ");setCubeImage(" + i + ")",100+(100*i),"Javascript")
   }
   setTimeout("wPreviewTable.style.zIndex = 2;wMainTable.style.zIndex = 1;w160PxTable.style.zIndex = 3",100+(100*(i+1)),"Javascript")
}

function displayCubeImage() {
   if (numberOfCubes) {
      createCubes(numberOfCubes)
      imageDetails.innerHTML = '<font style="font-family:04b_03;font-size:6pt" color="#333333">submitted by ' + userName + '<br>Time wasted creating image: ' + timeString + '<br><a href="javascript:getCubePositions();doSine()" onClick="this.blur()">doSine</a></font>'
//      imageDetailShadow.innerHTML = '<font color="#333333">submitted by ' + userName + '<br>Time wasted creating image: ' + timeString + '</font>'
   }
   else
      setTimeout("displayCubeImage()",1000,"Javascript");
}

function setCubeImage(i) {
   if (i >= 0 && i <= 31)
      setCubeImageBasedOnArray('cube'+i,cubedata1,0);
   else if (i >= 32 && i <= 63)
      setCubeImageBasedOnArray('cube'+i,cubedata2,256);
   else if (i >= 64 && i <= 95)
      setCubeImageBasedOnArray('cube'+i,cubedata3,512);
   else if (i >= 96 && i <= 127)
      setCubeImageBasedOnArray('cube'+i,cubedata4,768);
}


function setCubeImageBasedOnArray(cImg,cubeDataArray,arrayOffset) {
   if (!document.images[cImg])
      alert('image name ' +cImg+ ' apparently doesn\'t exist.');
   if (document.images[cImg].className == 'cube') {
      // color stuff!
      if (cubeDataArray[currentCube+6-arrayOffset] > 0) // color
         document.images[cImg].src = 'images/icubed/parts/' + cubeDataArray[currentCube-arrayOffset].substr(0,cubeDataArray[currentCube-arrayOffset].length-4) + '_c' + cubeDataArray[currentCube+6-arrayOffset] + '.gif';
      else
         document.images[cImg].src = 'images/icubed/parts/' + cubeDataArray[currentCube-arrayOffset];
      document.images[cImg].style.pixelTop = cubeDataArray[currentCube+1-arrayOffset] // - 50
      document.images[cImg].style.pixelLeft = cubeDataArray[currentCube+2-arrayOffset]
//      document.images[cImg].style.pixelTop -= cubeDataArray[currentCube+3-arrayOffset] // adjusting left offset
//      document.images[cImg].style.pixelLeft -= cubeDataArray[currentCube+4-arrayOffset] // adjusting top offset
      document.images[cImg].style.zIndex = cubeDataArray[currentCube+5-arrayOffset]
      if (cubeDataArray[currentCube+7-arrayOffset] == 1) // visibility
         document.images[cImg].style.visibility = 'visible';
      else
         document.images[cImg].style.visibility = 'hidden';
      currentCube += 8
   }
}

function getCubePositions() {
   cubeLeftPos = new Array()
   for (i=0; i<nCubes; i++)
      cubeLeftPos[i] = document['cube'+i].style.pixelLeft;
}

function doSine() {
   sVal += siVal
   if (sVal > 6)
      sVal = 0;
   else
      sVal += siVal;
   for (i=0; i<nCubes; i++)
     document['cube' + i].style.pixelLeft = cubeLeftPos[i] + (Math.sin(sVal-(0.44*i))*20); //+ 15*i
   if (sEnabled)
      setTimeout("doSine()",65,"javascript");
}
