/**
    Retira os espacos iniciais e finais de uma string 
    @param string String a ser verificada
    @return string String sem os espacos iniciais e finais
*/
var trim = (function()
{
    var trimStart = new RegExp("^\\s+"), trimEnd = new RegExp("\\s+$");
    return function (string)
    {
        return string.replace(trimStart, '').replace(trimEnd, '');
    }
})();

/** 
    Recebe uma string verifica se esta vazia
    @param string string String a ser verificada
    @return boolean Resultado da operacao de verificacao se a string é vazia
*/
var isEmpty = (function()
{
    return function(string)
    {
        if (trim(string).length == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
})();

/**
    Escuta os eventos de blur e focus em um input, substituindo seu valor pelos default (vazio e predefinido)
    @param string elementId Id do input que devera ser controlado pela funcao
    @param string blurValue Valor do input quando o evento de blur ocorrer
    @param string focusValue Valor do input quando o evento de focus ocorrer
*/
var listenInput = (function(){
    return function(elementId, blurValue, focusValue)
    {
        var element = document.getElementById(elementId);
        element.onfocus = function(){
            if (this.value == blurValue)
            {
                this.value = focusValue;
            }
        };
        
        element.onblur = function(){
            if (this.value == focusValue)
            {
                this.value = blurValue;
            }
        };
    }
})();
