/*
class for Hint viewing.
*/

var HintManager = {

	'hintClass':null,
	
	'init': function(className) {
		HintManager.hintClass = className;
	},

	'attachEvents': function() {

		var labels = document.getElementsByTagName('label');
		
		for(var i = 0; i < labels.length; i++){
			if(labels[i].className == HintManager.hintClass) document.body.appendChild(labels[i].parentNode);
		}
		
		for(var i = 0; i < labels.length; i++){
			if(labels[i].className == HintManager.hintClass){
				var elem = document.getElementById(labels[i].htmlFor);
				elem.onfocus = function(){
					var hint = document.getElementById(this.id + '_' + HintManager.hintClass).parentNode;
					hint.style.display = 'inline';
					var pos = HintManager.calcRealPosition(this);
					hint.style.left = (pos.left + this.offsetWidth) +  'px';
					hint.style.top = (pos.top + 5) + 'px';
				}
				elem.onblur = function(){
					var hint = document.getElementById(this.id + '_' + HintManager.hintClass).parentNode;
					hint.style.display = 'none';
				}
			}
		}
		
	},
	
	'calcRealPosition' : function(el){
        var left = 0;
        var top = 0;
		node = el;
		while(node.nodeName != 'BODY' && node.nodeName != 'HTML'){
			left += node.offsetLeft;
			top += node.offsetTop;
			node = node.offsetParent;
		}
		return {'left':left, 'top':top};
    }
	
};