// JavaScript Document
/*USAGE: it assumes that the hint is the first span under the input.*/
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	//input
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
    if (inputs[i].parentNode.getElementsByTagName("span")[0]&&inputs[i].parentNode.getElementsByTagName("span")[0].className=="hint") {
    inputs[i].onfocus = function () {
      this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
    }
    inputs[i].onblur = function () {
     if(this.className.indexOf("show")>0)this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
	 else this.parentNode.getElementsByTagName("span")[0].style.display = "none"; /*Val's customisation: if el has class show, always show the hint*/
    }
	}
  }
  //select
  var selects = document.getElementsByTagName("select");
  for (var k=0; k<selects.length; k++){
    selects[k].onfocus = function () {
         if (this.parentNode.getElementsByTagName("span")[0]&&this.parentNode.getElementsByTagName("span")[0].className=="hint") {
 			this.parentNode.getElementsByTagName("span")[0].style.display = "inline";}
    }
    selects[k].onblur = function () {
		 if (this.parentNode.getElementsByTagName("span")[0]&&this.parentNode.getElementsByTagName("span")[0].className=="hint") {
      this.parentNode.getElementsByTagName("span")[0].style.display = "none";}
    }
  }
  //textarea
    var textareas = document.getElementsByTagName("textarea");
  for (var k=0; k<textareas.length; k++){
     textareas[k].onfocus = function () {
    if (this.parentNode.getElementsByTagName("span")[0]&&this.parentNode.getElementsByTagName("span")[0].className=="hint") {
     this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
	 this.parentNode.getElementsByTagName("span")[0].style.marginTop = "-100px";}
    }
     textareas[k].onblur = function () {
    if (this.parentNode.getElementsByTagName("span")[0]&&this.parentNode.getElementsByTagName("span")[0].className=="hint") {
      this.parentNode.getElementsByTagName("span")[0].style.display = "none";}
    }
  }
}
/* max chars length counter*/
/*text_fieldID - the textarea
note_fieldID - the span element containing the num of chars which will be dynamically updated*/
<!--
function check_length(my_form,text_fieldID,note_fieldID,maxLen)
{
	var ad_text=document.getElementById(text_fieldID);
//maxLen = 500; // max number of characters allowed
if (ad_text.value.length >= maxLen) {
// Alert message if maximum limit is reached.
// If required Alert can be removed.
var msg = "You have reached your maximum limit of characters allowed";
//alert(msg);
// Reached the Maximum length so trim the textarea
ad_text.value = ad_text.value.substring(0, maxLen);
}
else{ // Maximum length not reached so update the value of my_text counter
var txt_num=document.getElementById(note_fieldID);
txt_num.firstChild.nodeValue=maxLen - ad_text.value.length;
	}
}
//-->
addLoadEvent(prepareInputsForHints);
