// xSplitter Application
// last update: 18aug2010

var s1, s2, s3, s32, s4, s41, s5, s51, s6, s62, s7, s71, s72, s8, s81;

/*
  Note:
  Calling xAddEventListener before window.onload means that you must include
  the xAddEventListener source code "before" this application code.
*/

xAddEventListener(window, 'load', win_onload, false);

function win_onload()
{
  var i, a, cw = xClientWidth(), w = .8 * cw, h = 300;

                   // sSplId,  X, Y, W, H, Horz , BarW, BarPos, BarLim1, BarLim2, BarEn, BorW, oSplChild1, oSplChild2
  s1 = new xSplitter('xsp1'  , 0, 0, w, h, true , 6,    w/2,    200,      20,     true,  2);

  s2 = new xSplitter('xsp2'  , 0, 0, w, h, false, 6,    h/3,    100,      40,     true,  2);

  s32 = new xSplitter('xsp32', 0, 0, 0, 0, false, 6,    3*h/4,  h/5,     h/5,     true,  0);
  s3 = new xSplitter('xsp3'  , 0, 0, w, h, true , 6,    w/4,     10,     200,     true,  2, null, s32);

  s41 = new xSplitter('xsp41', 0, 0, 0, 0, false, 6,    3*h/4,  h/5,     h/5,     true,  0);
  s4 = new xSplitter('xsp4'  , 0, 0, w, h, true , 6,    3*w/4,  w/5,     w/5,     true,  2, s41);

  s51 = new xSplitter('xsp51', 0, 0, 0, 0, true , 6,    2*w/3,  w/5,     w/5,     true,  0);
  s5 = new xSplitter('xsp5'  , 0, 0, w, h, false, 6,    h/2,    h/5,     h/5,     true,  8, s51);

  s62 = new xSplitter('xsp62', 0, 0, 0, 0, true , 6,    w/3,    w/5,     w/5,     true,  0);
  s6 = new xSplitter('xsp6'  , 0, 0, w, h, false, 6,    h/3,    h/5,     h/5,     true,  2, null, s62);

  s71 = new xSplitter('xsp71', 0, 0, 0, 0, false, 6,    3*h/4,  h/5,     h/5,     true,  0);
  s72 = new xSplitter('xsp72', 0, 0, 0, 0, false, 6,    h/4,    h/5,     h/5,     true,  0);
  s7 = new xSplitter('xsp7'  , 0, 0, w, h, true,  6,    w/2,    w/5,     w/5,     true,  2, s71, s72);

  s81 = new xSplitter('xsp81', 0, 0, 0, 0, true, 6,    w/3,      30,      40,     true,  0);
  s8 = new xSplitter('xsp8'  , 0, 0, w, h, true, 6,    w/3,      30,   2*w/3,     true,  2, null, s81);

  // Set the same onDragEnd callback on them all
  a = [s1, s2, s3, s32, s4, s41, s5, s51, s6, s62, s7, s71, s72, s8, s81];
  for (i = 0; i < a.length; ++i) {
    a[i].setDragEnd(spl_ondragend);
  }

  xAddEventListener(window, 'resize', win_onresize, false);
};

function win_onresize()
{
  var cw = xClientWidth();
  var w = .8 * cw;
  var h = 300;
  s1.paint(w, h, w/2);
  s2.paint(w, h, h/2);
  s3.paint(w, h, w/4);
  s4.paint(w, h, 3*w/4, w/5, w/5);
  s5.paint(w, h, h/2, h/5, h/5);
  s6.paint(w, h, h/3, h/5, h/5);
  s7.paint(w, h, w/2, w/5, w/5);
  s81.paint(w, h, w/3, 30, 40);
  s8.paint(w, h, w/3, 30, 2*w/3);
}

function spl_ondragend(splEle, barPos)
{
  window.status = 'xSplitter: ' + splEle.id + ', bar position: ' + barPos;
}

