/*
  DByte64
  Version 2.5.
  Writted by Pou Le Serg (DByte64)
  http://clubin.org.ua/, http://pouleserg.org.ua/, http://posejdonet.org.ua/
*/

var NumObj = 0;
var ArrayOfNames = new Array(1);
    ArrayOfNames[0] = new Array();    // Data
    ArrayOfNames[1] = new Array();    // Short names
var SpaceBetweenBlocks;
var OffSetOfCounter = 0;
var offsetX, offsetY, tRadius;
var dDivSource = 'CircleSource4Objects';
var iIDCurProc;
var finalcounter;
var ScrollStepForGlide = 0.1;         // how fast circle will be scrolled
var LastScrolled;
var OnOverColor = 'red';              // when mouse over an element
var OnOutColor = '#333';              // when mouse outs an element

function AddSpecClass() {
  document.write('<style>.ControlButton4Scroll { font-weight: bold; color: ' + OnOutColor + '; border-right: 4px solid #FFCD03; padding-right: 6px; cursor: pointer; } </style>');
}

function AddObject(ObjName,ShortName) {
  ArrayOfNames[0][NumObj] = ObjName;
  ArrayOfNames[1][NumObj++] = ShortName;
  SpaceBetweenBlocks = 2 * Math.PI / NumObj;
  LastScrolled = NumObj - 1;
}

function DrawThisBlocks(NeedCreate) {
  var cx, cy;
  for (var dxc1 = 0; dxc1 < NumObj; dxc1++) {
    cx = offsetX + tRadius * Math.cos(dxc1 * SpaceBetweenBlocks + OffSetOfCounter);
    cy = offsetY + tRadius * Math.sin(dxc1 * SpaceBetweenBlocks + OffSetOfCounter);
    if (NeedCreate == 1) {
      document.getElementById(dDivSource).innerHTML += '<div id="coreA' + dxc1 + '" style="position: absolute; top: 0; left: 0; display: block;">' + ArrayOfNames[0][dxc1] + '</div>';
    }
    TheNewBlock = document.getElementById('coreA' + dxc1);
    TheNewBlock.style.top = cy;
    TheNewBlock.style.left = cx;
  }
}

function AccurateScrollBlocks() {
  if (OffSetOfCounter < finalcounter) {
    OffSetOfCounter += ScrollStepForGlide;
    DrawThisBlocks(0);
  } else {
    OffSetOfCounter = finalcounter;
    DrawThisBlocks(0);
    clearInterval(iIDCurProc);
  }
}

function FindAndColor(ThisObjNameA,ThisNColor) {
  DCNewObject = document.getElementById(ThisObjNameA);
  DCNewObject.style.color = ThisNColor;
}

function ColorObject(TNumC,TColorType) {
  FindAndColor('coreA' + TNumC, TColorType);
  FindAndColor('AControlBackB' + TNumC, TColorType);
}

function ScrollCircle(ObjNum) {
  clearInterval(iIDCurProc);
  OffSetOfCounter = 0;
  finalcounter = 2 * Math.PI - ObjNum * SpaceBetweenBlocks;
  if (LastScrolled > ObjNum) {
    OffSetOfCounter = 2 * Math.PI - LastScrolled * SpaceBetweenBlocks;
  }
  if (finalcounter == 0) { finalcounter = 2 * Math.PI; }
  LastScrolled = ObjNum;
  iIDCurProc = setInterval("AccurateScrollBlocks()", 20);
}


function ShowBlocks(offx01,offy01,tRad01) {
  offsetX = offx01;
  offsetY = offy01;
  tRadius = tRad01;
  document.write('<div id="' + dDivSource + '"></div>');
  DrawThisBlocks(1);
  ScrollCircle(0);
}

function GetListOfCircleCommands() {
  for (var dxi = NumObj - 1; dxi >= 0; dxi--) {
    document.write('<div id="AControlBackB' + dxi + '" class="ControlButton4Scroll" onclick="ScrollCircle(' + dxi + ')" onmouseover="ColorObject(' + dxi + ',OnOverColor)" onmouseout="ColorObject(' + dxi + ',OnOutColor)">' + ArrayOfNames[1][dxi] + '</div><br>');
  }
}

AddSpecClass();

//
//  DByte64 inc.
//
