  function ul(item, limiter)
  {
    lmt = document.getElementById(limiter);
    if (item && lmt)
       lmt.innerHTML = parseInt(item.maxLength - item.value.length);
  }

  function updatePreview()
  {
    lo = document.getElementById('lowodd');
    ho = document.getElementById('highodd');
    lb = document.getElementById('lotterybox');
    lp = document.getElementById('pre_lowodd');
    hp = document.getElementById('pre_highodd');
    cs = document.getElementById('sample');

    var i=1;
    var pz = undefined;

    while (pz = document.getElementById('len'+i))
    {
      var xz = document.getElementById('c'+i);
      if (xz)
      {
        pz.innerHTML = parseInt(xz.maxLength - xz.value.length);
        if (xz.onkeyup) 
            xz.onkeyup();
      }

      ++i;
    }

    mirrorints();
    UpdateColors(undefined, undefined);
  }


 function mirror(m, to, def)
 {
   var oto = document.getElementById(to);

   if (oto)
   {
     if (m.value != '')
       oto.innerHTML = m.value;
     else
       oto.innerHTML = def;
   }
 }

 function mirrorints()
 {
   if (lo && ho && lb)
   {
      var lov = parseInt(lo.value);
      var hov = parseInt(ho.value);

      if (hov < lov)
      {
        var temp = hov;
        hov = lov;
        lov = temp;
      }

      lp.innerHTML = lov;
      hp.innerHTML = hov;

      var diff = (hov - (lov-1));

      if (diff < 1024)
        diff = 1024;

      var dimension = parseInt(Math.sqrt(diff));
      var actual = (dimension * dimension);

      diff = hov - actual;

      lb.style.width = dimension + 'px';
      lb.style.height = dimension + 'px';

      var x = document.getElementById('root');
      if (x) x.innerHTML = dimension;

      x = document.getElementById('totalpixels');
      x.innerHTML = actual;

      x = document.getElementById('diff');
      x.innerHTML = diff;

      x = document.getElementById('perc');
      x.innerHTML = ((diff / hov) * 100);
   }
 }

function ValidateColor(incol)
{
  if (incol.length != 6)
    return false;

  for (var i=0; i<6; ++i)
  {
    if ( ! ((incol[i] >= 'a' && incol[i] <= 'f') ||
            (incol[i] >= '0' && incol[i] <= '9')) 
       )
      return false;
  }

  return true;
}

function UpdateColors(nc1, nc2)
{
  if (nc1 != undefined)
  {

    if (ValidateColor(nc1.value))
      lastnc1 = nc1.value;
    else
    {
       nc1.value = lastnc1;
       return false;
    }
  }
  else if (nc2 != undefined)
  {
    if (ValidateColor(nc2.value))
      lastnc2 = nc2.value;
    else
    {
       nc2.value = lastnc2;
       return false;
    }
  }

  var filename = '/oddulo.us/images/ccol/?c1=' + lastnc1 + '&c2=' + lastnc2 + '';

  cs.src = filename;

  if (lb)
    lb.style.background = 'url(' + filename + ');';
}
