var defaultHelpMsg = 'Seja bem vindo, qualquer dúvida, basta colocar o ponteiro do mouse sobre o campo e retornarei informações.';

function setDefaultHelpMsg(message) {
    defaultHelpMsg = message;
    successMessage(message);
}

function divInfo( message, cor ) {
    var divM;
    var divL;
    var divC;
		 
    if(document.getElementById('divMessage')!=undefined) {
        divM = document.getElementById('divMessage');
        divL = document.getElementById('divLine');
        divC = document.getElementById('divColor');
    } else if(window.parent.document.getElementById('divMessage')!=undefined) {
        divM = window.parent.document.getElementById('divMessage');
        divL = window.parent.document.getElementById('divLine');
        divC = window.parent.document.getElementById('divColor');
    }

    if(divM!=undefined) {
        divM.innerHTML = message;
    }
    if(divC!=undefined) {
        divC.style.background = cor;
    }
    if(divL!=undefined) {
        divL.style.background = cor;
    }
}

function errorMessage( message ){
    divInfo( message, 'red' );
}
function alertMessage( message ){
    divInfo( message, 'yellow' );
}
function successMessage( message ){
    divInfo( message, 'green' );
}


function aceitavel(element) {
    return element.value.length > 2;
}

function certo(element) {
    return element.value.length > 5;
}


function processHelp() {	
    successMessage(defaultHelpMsg);
    for(var i=0; i<document.forms.length ; i++) {
        var fElements = document.forms[i].elements;
        for(var j=0; j<fElements.length; j++) {
            if(fElements[j].msg != undefined) {
                addFieldEvents(fElements[j]);
            }
            if(fElements[j].req == true) {
                addFieldRequered(fElements[j]);
            }
			
        }
    }    
}

function addFieldEvents(element) {	
    element.onmousemove = function() {
        processField(element)
    };
    element.onfocus = function() {
        processField(element)
    };
    element.onkeyup = function() {
        processField(element)
    };
	
    element.onmouseout = function() {
        processField(element) ; successMessage(defaultHelpMsg);
    };
    element.onblur = function() {
        processField(element) ; successMessage(defaultHelpMsg);
    };
}


function addFieldRequered(element) {
    var fElement = element;
    if(fElement) {
        var elements = document.getElementsByTagName("LABEL");
        for(var i=0; i<elements.length; i++) {
            if(elements[i].getAttribute("for") == fElement.id) {
                elements[i].innerHTML = elements[i].innerHTML + ' (*)';
                return;
            }
        }
    }
}

function processField(element) {
    if( (element.eCheck != undefined )&& (!element.eCheck()) ) {
        if(element.eMsg != undefined) {
            errorMessage(element.eMsg);
            redfyByFor(element.name);
        }
    } else if( element.check != undefined ) {
        unredfyByFor(element.name);
        if(element.check()) {
            if(element.msg != undefined) {
                successMessage(element.msg);
            }
        } else {
            if(element.msg != undefined) {
                alertMessage(element.msg);
            }
        }
    } else {
        if(element.sMsg != undefined) {
            successMessage(element.sMsg);
        } else if(element.msg != undefined) {
            successMessage(element.msg);
        }
		
    }
}
