﻿function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            oldonload();
            func();
        }
    }
}

function prepareInputsForHints() {
    var inputs = document.getElementsByTagName("input");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == 'submit')
            continue;
        // test to see if the hint span exists first
        if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
            
            var indexHint = false;
            for (var j = 0; j < inputs[i].parentNode.getElementsByTagName("span").length; j++) {
                if (inputs[i].parentNode.getElementsByTagName("span")[j].className == 'hint') {
                    indexHint = true;
                    break;
                }
            }

            if (indexHint) {
                inputs[i].onfocus = function () {
                    var index = 0;
                    for (var j = 0; j < this.parentNode.getElementsByTagName("span").length; j++) {
                        if (this.parentNode.getElementsByTagName("span")[j].className == 'hint') {
                            index = j;
                            break;
                        }
                    }

                    this.parentNode.getElementsByTagName("span")[index].style.display = "inline";
                }
                // when the cursor moves away from the field, hide the hint
                inputs[i].onblur = function () {
                    var index = 0;
                    for (var j = 0; j < this.parentNode.getElementsByTagName("span").length; j++) {
                        if (this.parentNode.getElementsByTagName("span")[j].className == 'hint') {
                            index = j;
                            break;
                        }
                    }

                    this.parentNode.getElementsByTagName("span")[index].style.display = "none";
                }
            }
        }
    }
    // repeat the same tests as above for selects
    var selects = document.getElementsByTagName("select");
    for (var k = 0; k < selects.length; k++) {
        if (selects[k].parentNode.getElementsByTagName("span")[0]) {

            var indexHint = false;
            for (var j = 0; j < inputs[i].parentNode.getElementsByTagName("span").length; j++) {
                if (inputs[i].parentNode.getElementsByTagName("span")[j].className == 'hint') {
                    indexHint = true;
                    break;
                }
            }

            if (indexHint) {
                selects[k].onfocus = function () {
                    var index = 0;
                    for (var j = 0; j < this.parentNode.getElementsByTagName("span").length; j++) {
                        if (this.parentNode.getElementsByTagName("span")[j].className == 'hint') {
                            index = j;
                            break;
                        }
                    }

                    this.parentNode.getElementsByTagName("span")[index].style.display = "inline";
                }
                selects[k].onblur = function () {
                    var index = 0;
                    for (var j = 0; j < this.parentNode.getElementsByTagName("span").length; j++) {
                        if (this.parentNode.getElementsByTagName("span")[j].className == 'hint') {
                            index = j;
                            break;
                        }
                    }

                    this.parentNode.getElementsByTagName("span")[index].style.display = "none";
                }
            }
        }
    }
}
addLoadEvent(prepareInputsForHints);
