function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	/*return [curleft,curtop];*/
	return [curtop];
}

function findLeft(obj) {
	var curLeft = curtop = 0;
	if (obj.offsetParent) {
		curLeft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curLeft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	/*return [curleft,curtop];*/
	return [curLeft];
}

function prepareInputsForHints() {
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
  	if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
     inputs[i].onfocus = function () {
       this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
       var SpanHeight = this.parentNode.getElementsByTagName("span")[0].offsetHeight;
       var InputWidth = this.style.width;
       this.parentNode.getElementsByTagName("span")[0].style.top = (findPos(this) - SpanHeight) + "px";
       this.parentNode.getElementsByTagName("span")[0].style.left = (findLeft(this)) + "px";
       /*this.parentNode.getElementsByTagName("span")[0].style.marginLeft = "-" + InputWidth;*/
     }
     inputs[i].onblur = function () {
       this.parentNode.getElementsByTagName("span")[0].style.display = "none";
     }
  	}
  }
  
  var selects = document.getElementsByTagName("select");
  for (var i=0; i<selects.length; i++){
  	if (selects[i].parentNode.getElementsByTagName("span")[0]) {
     selects[i].onfocus = function () {
       this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
       var SpanHeight = this.parentNode.getElementsByTagName("span")[0].offsetHeight;
       var InputWidth = this.style.width;
       this.parentNode.getElementsByTagName("span")[0].style.top = (findPos(this) - SpanHeight) + "px";
       this.parentNode.getElementsByTagName("span")[0].style.left = (findLeft(this)) + "px";
       /*this.parentNode.getElementsByTagName("span")[0].style.marginLeft = "-" + InputWidth;*/
     }
     selects[i].onblur = function () {
       this.parentNode.getElementsByTagName("span")[0].style.display = "none";
     }
  	}
  }
}
addLoadEvent(prepareInputsForHints);

