// $Id: form_help.js,v 1.0 2006/08/03 13:48:56 radev Exp $

if (isJsEnabled()) {
  addLoadEvent(helpAutoAttach);
}

function helpAutoAttach() {
  var divs = document.getElementsByTagName('div');
  var div;
  for (var i = 0; div = divs[i]; ++i) {
      if (hasClass(div, 'description')) {
		addClass(div,'hidden');
      }
  }
  var helps = document.getElementsByTagName('a');
  var help;
  for (var i = 0; help = helps[i]; ++i) {
      if (hasClass(help, 'show-hide')) {
		var a = help;
		a.href = '#';
		a.onmouseover = function() {
		var descript = helpGetDescription(this);
		removeClass( descript, 'hidden');
		if (!hasClass(descript, 'hidden')) {
			helpScrollIntoView(descript);
		}
		return false;
		};
		a.onmouseout = function() {
		var descript = helpGetDescription(this);
		addClass( descript, 'hidden');
		if (!hasClass(descript, 'hidden')) {
			helpScrollIntoView(descript);
		}
		return false;
		};
		a.onclick = function() {
		this.blur();
		return false;
		};
      }
  }
}

function helpGetDescription(node) {
	var idchunk = node.id.split(/-/);
	idchunk.shift();
	idchunk = idchunk.join('-');
	var descript = 'description-'+idchunk;
	descript = document.getElementById(descript);
	return descript;
}

function helpScrollIntoView(node) {
  var h = self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;
  var offset = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
  var pos = absolutePosition(node);
  if (pos.y + node.scrollHeight > h + offset) {
    if (node.scrollHeight > h) {
      window.scrollTo(0, pos.y);
    } else {
      window.scrollTo(0, pos.y + node.scrollHeight - h);
    }
  }
}
