// UTIL.JS   Copyright (c) 2004-2005 Rene Durik
var divNav = null;

function selectAll(cb, id)
{
  var table = getById(id);
  if (table == null)
    return;

  for (var i = 0; i < table.rows.length; i++)
  {
    var row = table.rows[i];
    var cell = row.cells[0];
    var input = cell.childNodes[0];
    input.checked = cb.checked;
  }
}

function selectChild(cb, id)
{
  var table = getById(id);
  if (table == null)
    return;

  var row = table.rows[0];
  var cell = row.cells[0];
  var input = cell.childNodes[0];

  if (cb.checked)
  {
    var pbcell = cb.parentNode;
    var pbrow = pbcell.parentNode;
    var pbtbody = pbrow.parentNode;
    var selectAll = true;

    for (var i = 0; i < pbtbody.rows.length; i++)
    {
      var tbrow = pbtbody.rows[i];
      var tbcell = tbrow.cells[0];
      var tbinput = tbcell.childNodes[0];
  
      if (!tbinput.checked)
        selectAll = false;
    }

    input.checked = selectAll;
  }
  else
    input.checked = false;
}

function MM_swapImgRestore()
{
  var i,x,a = document.MM_sr;
  for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
    x.src = x.oSrc;
}

function MM_preloadImages()
{
  var d = document;
  if (d.images)
  {
    if (!d.MM_p)
      d.MM_p = new Array();
    
    var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
    for (i = 0; i < a.length; i++)
      if (a[i].indexOf("#")!=0)
      {
        d.MM_p[j] = new Image;
        d.MM_p[j++].src = a[i];
      }
  }
}

function MM_findObj(n, d)
{
  var p, i, x;
  if (!d)
    d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length)
    {
      d = parent.frames[n.substring(p+1)].document;
      n = n.substring(0, p);
    }
  
    if (!(x = d[n])&& d.all)
      x = d.all[n];
   
    for (i = 0; !x && i < d.forms.length; i++)
      x = d.forms[i][n];
  
    for (i = 0; !x && d.layers && i < d.layers.length;i++)
      x = MM_findObj(n, d.layers[i].document);
  
    if (!x && d.getElementById)
      x = d.getElementById(n);
      
    return x;
}

function MM_swapImage()
{
  var i, j = 0, x, a = MM_swapImage.arguments;
  document.MM_sr = new Array;
  for (i = 0; i < (a.length - 2); i += 3)
   if ((x = MM_findObj(a[i])) != null)
   {
     document.MM_sr[j++] = x;
     if (!x.oSrc)
       x.oSrc = x.src;
     x.src = a[i+2];
   }
}

function navClick(id)
{
  var div = getById(id);
  if (divNav != div && divNav != null)
	hideDiv(divNav);

  if (isVisibleDiv(div))
    hideDiv(div);
  else
    showDiv(div);

  divNav = div;
}

function countMsg(tid, disc, c, m)
{
  var body = getById(tid).value;
  if (disc)
    body += disc;
	
  var l = body.length;
  if (m != -1 && l > m)
  {
    getById(tid).value = getById(tid).value.substr(0, m);
    l = m;
  }
    
  if (l > c)
  {
    c -= 7;
    var r = l % c;
    if (r == 0)
    {
      setHtml(getById('MsgLength'), l / c);
      setHtml(getById('MsgRemain'), 0);
    }
    else
    {
      var lp = parseInt(l / c);
      setHtml(getById('MsgLength'), lp + 1);
      setHtml(getById('MsgRemain'), c - r);
	}
  }
  else
  {
    setHtml(getById('MsgLength'), 1);
    setHtml(getById('MsgRemain'), c - l);
  }
}

//
//Shalom:This method is similar to Countmsg but supports combining content of 
//2 elements in the title - this is needed e.g. in message for message+wap push url total
//note fid in tht function seems to be redundant so is not here
//
function countMsg2(owner, tid1, tid2, c, m)
{
  var body1 = getById(tid1).value;
  var l1 = body1.length;
  
   
  var body2 = getById(tid2).value;
  var l2 = body2.length;
  
  var l = l1 + l2; //combined elemnt length to make actual message length
    
  if (m != -1 && l > m)
  {
    if (owner == tid1) 
    {    
        getById(tid1).value = body1.substr(0, m-l2); //the limit - the length of the other cell
        l1 = (m-l2);
    } 
    else     
    {
        getById(tid2).value = body2.substr(0, m-l1);
        l2 = (m-l1);    
    }
    
    l = l1 + l2; //redo l to consider changed values
    
  }
    
  if (l > c)
  {
    c -= 7;
    var r = l % c;
    if (r == 0)
    {
      setHtml(getById('MsgLength'), l / c);
      setHtml(getById('MsgRemain'), 0);
    }
    else
    {
      var lp = parseInt(l / c);
      setHtml(getById('MsgLength'), lp + 1);
      setHtml(getById('MsgRemain'), c - r);
	}
  }
  else
  {
    setHtml(getById('MsgLength'), 1);
    setHtml(getById('MsgRemain'), c - l);
  }
}


function countBusinessCard(fn, ln, t)
{
  var fnc = getById(fn).value;
  var lnc = getById(ln).value;
  var tc = getById(t).value;
  
  var l = fnc.length + lnc.length + 40;

  if (tc.length > 0)
    l += tc.length + 11;
    
  if (l > 133)
  {
    var r = l % 128;
    if (r == 0)
    {
      setHtml(getById('MsgLengthBcard'), l / 128);
    }
    else
    {
      var lp = parseInt(l / 128);
      setHtml(getById('MsgLengthBcard'), lp + 1);
    }
  }
  else
  {
    setHtml(getById('MsgLengthBcard'), 1);
  }
}

function countAppointment(d)
{
  var dc = getById(d).value;
  var l = dc.length + 131;

  if (l > 133)
  {
    var r = l % 128;
    if (r == 0)
    {
      setHtml(getById('MsgLengthAppoint'), l / 128);
    }
    else
    {
      var lp = parseInt(l / 128);
      setHtml(getById('MsgLengthAppoint'), lp + 1);
    }
  }
  else
  {
    setHtml(getById('MsgLengthAppoint'), 1);
  }
}

function makeSignature(id)
{
  var e = getEvent();
  var key = getKeyCode(e);
  if (key == 13)
  {
    __doPostBack(id,'');
  }
  else
  {
	var fname = getById('FirstName').value
	var lname = getById('LastName').value
	var name = fname + lname;
	
	getById('Signature').value = name.substr(0, 11);
  }
}

function makeShortName(id)
{
  var e = getEvent();
  var key = getKeyCode(e);
  if (key == 13)
  {
    __doPostBack(id,'');
  }
  else
  {
	var name = getById('CompanyName').value
	getById('ShortName').value = name.substr(0, 11);
  }
}

function addToFavorites(url, page)
{
  if (window.external)
  {
    window.external.AddFavorite(url, page)
  }
  else
  { 
    alert("Sorry! Your browser doesn't support this function.");
  }
}

function clickOnce(obj, url)
{
  if(obj.disabled)
    return false;

  obj.disabled = true;
  window.location.href = url;
  return true;
}
