

var TIPO_ALERTA = 1;
var TIPO_INFORMACAO = 2;
var TIPO_ERRO = 3;

function adicionarMensagem(texto, tipo) {
    if (!tipo) {
        tipo = TIPO_INFORMACAO;
    }
    switch (tipo) {
        case TIPO_ALERTA:
            classe = "msgalerta";
            break;
        case TIPO_ERRO:
            classe = "msgerro";
            break;
        case TIPO_INFORMACAO:
            classe = "msginfo";
            break;
    }
    var msgJS = document.getElementById("mensagemAjax");
    if (msgJS) {
        msgJS.innerHTML += "<div class=\"" + classe + "\">" + texto + "</div>";
    } else {
        alert(texto);
    }
}

var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "Navegador desconhecido !!";
        this.version = this.searchVersion(navigator.userAgent)
        || this.searchVersion(navigator.appVersion)
        || "Versão desconhecida !!";
        this.OS = this.searchString(this.dataOS) || "OS desconhecido !!";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++)	{
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
    {
        string: navigator.userAgent,
        subString: "Chrome",
        identity: "Chrome"
    },
    {
        string: navigator.userAgent,
        subString: "OmniWeb",
        versionSearch: "OmniWeb/",
        identity: "OmniWeb"
    },
    {
        string: navigator.vendor,
        subString: "Apple",
        identity: "Safari",
        versionSearch: "Version"
    },
    {
        prop: window.opera,
        identity: "Opera"
    },
    {
        string: navigator.vendor,
        subString: "iCab",
        identity: "iCab"
    },
    {
        string: navigator.vendor,
        subString: "KDE",
        identity: "Konqueror"
    },
    {
        string: navigator.userAgent,
        subString: "Firefox",
        identity: "Firefox"
    },
    {
        string: navigator.vendor,
        subString: "Camino",
        identity: "Camino"
    },
    {		// for newer Netscapes (6+)
        string: navigator.userAgent,
        subString: "Netscape",
        identity: "Netscape"
    },
    {
        string: navigator.userAgent,
        subString: "MSIE",
        identity: "Explorer",
        versionSearch: "MSIE"
    },
    {
        string: navigator.userAgent,
        subString: "Gecko",
        identity: "Mozilla",
        versionSearch: "rv"
    },
    { 		// for older Netscapes (4-)
        string: navigator.userAgent,
        subString: "Mozilla",
        identity: "Netscape",
        versionSearch: "Mozilla"
    }
    ],
    dataOS : [
    {
        string: navigator.platform,
        subString: "Win",
        identity: "Windows"
    },
    {
        string: navigator.platform,
        subString: "Mac",
        identity: "Mac"
    },
    {
        string: navigator.userAgent,
        subString: "iPhone",
        identity: "iPhone/iPod"
    },
    {
        string: navigator.platform,
        subString: "Linux",
        identity: "Linux"
    }
    ]

};
BrowserDetect.init();

//validar numeros
function validarInteiro(valor)
{
    switch (isInteger(valor))
    {
        case true:
            return validarIntervalo(valor);
        case false:
            alert('O valor não é um inteiro !!');
            return false;
    }
}

function validarAnoModelo(ano, modelo){
    var anoX = parseInt(ano);
    var modeloX = parseInt(modelo);
    if (modeloX - anoX > 2){
        alert('Modelo ou ano de fabricação errado !!');
        return false;
    }
    if  (modeloX - anoX < 0){
        alert('Modelo ou ano de fabricação errado !!');
        return false;
    }
    return true;
}

function validarIntervalo(valor)
{
    var dataCorrente = new Date();
    var A = (dataCorrente.getFullYear()) - 20;
    var B = (dataCorrente.getFullYear()) + 2;

    switch (isIntegerInRange(valor, A, B))
    {
        case true:
            return true;
        case false:
            alert('O ano informado está fora do intervalo (' + A + ' até ' + B + ')!!');
            return false;
    }
}

function isIntegerInRange (s, a, b)
{
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}

function isInteger (s)
{
    var i;
    if (isEmpty(s))
        if (isInteger.arguments.length == 1) return 0;
        else return (isInteger.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
    return ((c >= "0") && (c <= "9"))
}


function abreJanela(url, nome, w, h, resizable, scrollbars, menubar) {
    if (!nome) nome = "adappopup";
    if (!w) w = 500;
    if (!h) h = 387;
    if (!resizable) resizable = "NO";
    if (!scrollbars) scrollbars = "YES";
    if (!menubar) menubar = "NO";
    var top = (screen.height/2) - (h/2);
    var left = (screen.width/2) - (w/2);
    var params = "toolbar=no, scrollbars=" + scrollbars + ", menubar=" + menubar + ", status=NO, top=" + top + ", left=" + left + ", width=" + w + ", height=" + h + ", resizable=" + resizable + ", screenx=0, screeny=0";
    var win;
    win = window.open(url, nome, params);
    
    if (win && win.blur) {
        win.focus();
    }
    return win;
}

function estaVisivel(f) {
    var elementoAtual = f;
    while (elementoAtual != null && elementoAtual.nodeName != "BODY" && elementoAtual.nodeName != "HTML" && elementoAtual.nodeName != "#document") {
        if (elementoAtual.style.display == "none") {
            return false;
        }
        elementoAtual = elementoAtual.parentNode;
    }
    return true;
}

function focarPrimeiroCampo() {
    var focado = false;
    if (document.forms.length > 0) {
        var form = document.forms[0];
        for (i = 0; i < form.length; i++) {
            var campo = form.elements[i];
            if ((campo.type == "text") || (campo.type == "textarea")) {
                if (estaVisivel(campo) && campo.className != "texto_rico"){                    
                    campo.focus();
                    focado = true;
                    break;
                } else if ((campo.className == "texto_rico")) {
                    campo.setAttribute("focar", "sim");
                    try{
                        tinyMCE.execCommand('mceFocus', null, "mce_editor_0");
                    } catch(err){
                    }    
                    break;
                }
            }
        }
        if (focado == false) {
            for (i = 0; i < form.length; i++) {
                var campo1 = form.elements[i];
                if (campo1.type == "submit") {
                    campo1.focus();
                    break;
                }
            }
        }
    }
}
//gg 15/03/2009
// o array deve conter o nome dos campos não obrigatórios na entrada de dados !!
function validarCampos(naoRequeridos, form) {

    for (i = 0; i < form.elements.length; i++){
        campo = form.elements[i];
        var avaliado = false;
        if ((campo.type == "text") || (campo.type == "textarea")) {
            for (j = 0; j < naoRequeridos.length; j++ ){
                if (campo.name == naoRequeridos[j]){
                    avaliado = true;
                    break;
                }
            }
            if (avaliado == false){
                if (campo.value == ''){
                    alert('Preencha o campo com o valor requerido !!');
                    campo.focus();
                    return false;
                }
            }
        }
    }
    return true;
}

function mudeParaMais(f){
    f.value = f.value.toUpperCase();
}

function devolverValorTecla(e){
    var keynum;

    if(window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    return keynum;
}


function checkEnter(e, campo){
    if (devolverValorTecla(e) == 13){
        if (campo != null) {
            doNext(campo);
        }
        return false;
    }
    else {
        return true;
    }
}

function doNext(el){
    var f = el.form;
    var els = f.elements;
    var x, nextEl;
    for (var i=0, len=els.length; i<len; i++){
        x = els[i];
        if (el == x && (nextEl = els[i+1])){
            if (nextEl.focus)
                nextEl.focus();
        }
    }
}

function colocarFocoCampo(campo){
    if ((campo.type == "text") || (campo.type == "textarea")) {
        if (estaVisivel(campo)){
            campo.focus();
        }
    }
}

function focarCampoMudarParaMais(campoFocar, campoFazerUpper){
    if (campoFazerUpper != ''){
        mudeParaMais(campoFazerUpper);
    }
    colocarFocoCampo(campoFocar);
}

function loadComum() {
    focarPrimeiroCampo();
    if (typeof abreMenuAtual == 'function') {
        abreMenuAtual();
    }
    if (typeof load == 'function') {
        load();
    }
}

function alerta(msg){
    msg = replaceAll(msg, "<br>", "\n");
    alert(msg);
}

function replaceAll(string, token, newtoken) {
    while (string.indexOf(token) != -1) {
        string = string.replace(token, newtoken);
    }
    return string;
}

function alphanumerico(valor)
{
    var er = /^[a-zA-Z0-9]+$/;
    var teste = er.test(valor);

    if(!teste)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function setCarregando(){
    document.getElementById("carregando").style.display = "";
//    document.getElementById("corpo").style.display = "none";
    return true;
}
function setCorpo(){
    document.getElementById("carregando").style.display = "none";
//    document.getElementById("corpo").style.display = "";
    return true;
}

function setAguarde(){
//    $("#aguarde").css("display", "");
//    $("#conteudo").css("display", "none");
    document.getElementById("aguarde").style.display = "";
    document.getElementById("conteudo").style.display = "none";
    return true;
}
function setConteudo(){
    document.getElementById("aguarde").style.display = "none";
    document.getElementById("conteudo").style.display = "";
    return true;
}

window.onload = loadComum;
