var ie = document.all;
var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;

highlighting = setInterval("", 50)

getId = function (_id) {
    return document.getElementById(_id);
}
getName = function (_name) {
    return document.getElementsByName(_name);
}
getTag = function (_name) {
    return document.getElementsByTagName(_name);
}

function paginacao(_url, _pag, _start, _querystring) {
	var _pars = 'pag=' + _pag + '&start=' + _start + '' + _querystring;
	self.location = '/' + _url + '?' + _pars;
}

/*	Chamada: onKeyPress="javascript: return campoEmail(event);" */

function campoEmail(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if ((key == 45) || (key == 46) || (key == 64) || (key == 95) || (key == 127)) {
			return true;
		}
		else {
			if (((key > 47) && (key < 58)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/*	Chamada: onKeyPress="javascript: return campoAlfanumerico(event);" */

function campoAlfanumerico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if (((key > 47) && (key < 58)) || ((key > 64) && (key < 91)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/*	Chamada: onKeyPress="return campoNumerico(event);" */

function campoNumerico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if ((key > 47) && (key < 58)) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

/* Chamada: onKeyPress="return campoAlfabetico(event);" */

function campoAlfabetico(e) {
	var key = window.event ? e.keyCode : e.which;

	if (key < 32) {
		return true;
	}
	else {
		if (key == 127) {
			return true;
		}
		else {
			if (((key > 64) && (key < 91)) || ((key > 96) && (key < 123))) {
				return true;
			}
			else {
				return false;
			}
		}
	}
}

function paginaPai() {
    try {
        w = window.parent;
    }
    catch (ex) {
        w = top.window;
    }
    return w;
}

function verificaCamposObrigatorios(f) {
/*
Função que varre o form, checando se os campos obrigatórios foram preenchidos.

Para os campos do tipo 'input', a propriedade usada para determinar a obrigatoriedade é 'alt'. Para que ocorra a obrigatoriedade, é necessário adicionar um valor à propriedade.

Para os campos com tag própria (textarea, select), a propriedade usada é lang. Para que ocorra a obrigatoriedade, é necessário adicionar um valor à propriedade. (POG)

OBS.: Essa função não checa campos check e radio

Essa função retorna true or false
*/
    var i;

    for (i = 0; i < f.length; i++) {
        if ((f.elements[i].type == 'text') || (f.elements[i].type == 'file') || (f.elements[i].type == 'password')) {
            if ((f.elements[i].disabled == false) && (f.elements[i].value == '') && (f.elements[i].alt != '')) {
                alert('O campo ' + f.elements[i].title + ' não foi preenchido.');
                f.elements[i].focus();
                return false;
                break;
            }
        }

        if (f.elements[i].type == 'textarea') {
            if ((f.elements[i].disabled == false) && (f.elements[i].value == '') && (f.elements[i].lang != '')) {
                alert('O campo ' + f.elements[i].title + ' não foi preenchido.');
                f.elements[i].focus();
                return false;
                break;
            }
        }

        if (f.elements[i].type == 'select-one') {
            if ((f.elements[i].disabled == false) && (f.elements[i].value == '') && (f.elements[i].title != '')) {
                alert('O campo ' + f.elements[i].title + ' não foi preenchido.');
                f.elements[i].focus();
                return false;
                break;
            }
        }
    }
    return true;
}

function enviaDadosGeral(f) {
    if (verificaCamposObrigatorios(f) == true) {
        f.submit();
    }
}

MaskInput = function (f, m) {
    function mask(e) {
        var patterns = {
            "1": /[A-Z]/i,
            "2": /[0-9]/,
            "4": /[\xC0-\xFF]/i,
            "8": /./
        },
            rules = {
                "a": 3,
                "A": 7,
                "9": 2,
                "C": 5,
                "c": 1,
                "*": 8
            };

        function accept(c, rule) {
            for (var i = 1, r = rules[rule] || 0; i <= r; i <<= 1)
            if (r & i && patterns[i].test(c)) break;
            return i <= r || c == rule;
        }
        var k, mC, r, c = String.fromCharCode(k = e.key),
            l = f.value.length;
        (!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) && (r[0] = r[2].indexOf(c) + 1) + 1 ? r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0] : (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ? r.index : l)).length) < m.length && accept(c, m.charAt(l))) || e.preventDefault();
    }
    for (var i in !/^(.)\^(.*)$/.test(m) && (f.maxLength = m.length), {
        keypress: 0,
        keyup: 1
    })
    addEvent(f, i, mask);
};

addEvent = function (o, e, f, s) {
    var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [
        [o[e], o]
    ] : []),
        a, c, d;
    r[r.length] = [f, s || o], o[e] = function (e) {
        try {
            (e = e || event).preventDefault || (e.preventDefault = function () {
                e.returnValue = false;
            });
            e.stopPropagation || (e.stopPropagation = function () {
                e.cancelBubble = true;
            });
            e.target || (e.target = e.srcElement || null);
            e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
        } catch (f) {}
        for (d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
        return e = null, !! d;
    }
};

removeEvent = function (o, e, f, s) {
    for (var i = (e = o["_on" + e] || []).length; i;)
    if (e[--i] && e[i][0] == f && (s || o) == e[i][1]) return delete e[i];
    return false;
};

/* Trim */
String.prototype.trim = function () {
	return this.replace(/^\s+|\s+$/g, '');
}
String.prototype.ltrim = function () {
	return this.replace(/^\s+/, '');
}
String.prototype.rtrim = function () {
	return this.replace(/\s+$/, '');
}

function highlightit(cur2) {
    if (cur2.style.MozOpacity < 1) cur2.style.MozOpacity = parseFloat(cur2.style.MozOpacity) + 0.1
    else if (cur2.filters && cur2.filters.alpha.opacity < 100) cur2.filters.alpha.opacity += 10
    else if (window.highlighting) clearInterval(highlighting)
}

function high(which2) {
    theobject = which2
    highlighting = setInterval("highlightit(theobject)", 50)
}

function low(which2) {
    clearInterval(highlighting);
    if (which2.style.MozOpacity) which2.style.MozOpacity = 0.3
    else if (which2.filters) which2.filters.alpha.opacity = 30
}

function trata_acentuacao(str) {
    var str_retorno = str;

    str_retorno = str_retorno.replace('&#33;', '!');
    str_retorno = str_retorno.replace('&#34;', '"');
    str_retorno = str_retorno.replace('&#35;', '#');
    str_retorno = str_retorno.replace('&#36;', '$');
    str_retorno = str_retorno.replace('&#37;', '%');
    str_retorno = str_retorno.replace('&#38;', '&');
    str_retorno = str_retorno.replace('&#39;', '\'');
    str_retorno = str_retorno.replace('&#40;', '(');
    str_retorno = str_retorno.replace('&#41;', ')');
    str_retorno = str_retorno.replace('&#42;', '*');
    str_retorno = str_retorno.replace('&#43;', '+');
    str_retorno = str_retorno.replace('&#44;', ',');
    str_retorno = str_retorno.replace('&#45;', '-');
    str_retorno = str_retorno.replace('&#46;', '.');
    str_retorno = str_retorno.replace('&#47;', '/');
/*str_retorno = str_retorno.replace('&#48;','0');
	str_retorno = str_retorno.replace('&#49;','1');
	str_retorno = str_retorno.replace('&#50;','2');
	str_retorno = str_retorno.replace('&#51;','3');
	str_retorno = str_retorno.replace('&#52;','4');
	str_retorno = str_retorno.replace('&#53;','5');
	str_retorno = str_retorno.replace('&#54;','6');
	str_retorno = str_retorno.replace('&#55;','7');
	str_retorno = str_retorno.replace('&#56;','8');
	str_retorno = str_retorno.replace('&#57;','9');*/
    str_retorno = str_retorno.replace('&#58;', ':');
    str_retorno = str_retorno.replace('&#59;', ';');
    str_retorno = str_retorno.replace('&#60;', '<');
    str_retorno = str_retorno.replace('&#61;', '=');
    str_retorno = str_retorno.replace('&#62;', '>');
    str_retorno = str_retorno.replace('&#63;', '?');
    str_retorno = str_retorno.replace('&#64;', '@');
/*str_retorno = str_retorno.replace('&#65;','A');
	str_retorno = str_retorno.replace('&#66;','B');
	str_retorno = str_retorno.replace('&#67;','C');
	str_retorno = str_retorno.replace('&#68;','D');
	str_retorno = str_retorno.replace('&#69;','E');
	str_retorno = str_retorno.replace('&#70;','F');
	str_retorno = str_retorno.replace('&#71;','G');
	str_retorno = str_retorno.replace('&#72;','H');
	str_retorno = str_retorno.replace('&#73;','I');
	str_retorno = str_retorno.replace('&#74;','J');
	str_retorno = str_retorno.replace('&#75;','K');
	str_retorno = str_retorno.replace('&#76;','L');
	str_retorno = str_retorno.replace('&#77;','M');
	str_retorno = str_retorno.replace('&#78;','N');
	str_retorno = str_retorno.replace('&#79;','O');
	str_retorno = str_retorno.replace('&#80;','P');
	str_retorno = str_retorno.replace('&#81;','Q');
	str_retorno = str_retorno.replace('&#82;','R');
	str_retorno = str_retorno.replace('&#83;','S');
	str_retorno = str_retorno.replace('&#84;','T');
	str_retorno = str_retorno.replace('&#85;','U');
	str_retorno = str_retorno.replace('&#86;','V');
	str_retorno = str_retorno.replace('&#87;','W');
	str_retorno = str_retorno.replace('&#88;','X');
	str_retorno = str_retorno.replace('&#89;','Y');
	str_retorno = str_retorno.replace('&#90;','Z');*/
    str_retorno = str_retorno.replace('&#91;', '[');
    str_retorno = str_retorno.replace('&#92;', '\\');
    str_retorno = str_retorno.replace('&#93;', ']');
    str_retorno = str_retorno.replace('&#94;', '^');
    str_retorno = str_retorno.replace('&#95;', '_');
    str_retorno = str_retorno.replace('&#96;', '`');
/*str_retorno = str_retorno.replace('&#97;','a');
	str_retorno = str_retorno.replace('&#98;','b');
	str_retorno = str_retorno.replace('&#99;','c');
	str_retorno = str_retorno.replace('&#100;','d');
	str_retorno = str_retorno.replace('&#101;','e');
	str_retorno = str_retorno.replace('&#102;','f');
	str_retorno = str_retorno.replace('&#103;','g');
	str_retorno = str_retorno.replace('&#104;','h');
	str_retorno = str_retorno.replace('&#105;','i');
	str_retorno = str_retorno.replace('&#106;','j');
	str_retorno = str_retorno.replace('&#107;','k');
	str_retorno = str_retorno.replace('&#108;','l');
	str_retorno = str_retorno.replace('&#109;','m');
	str_retorno = str_retorno.replace('&#110;','n');
	str_retorno = str_retorno.replace('&#111;','o');
	str_retorno = str_retorno.replace('&#112;','p');
	str_retorno = str_retorno.replace('&#113;','q');
	str_retorno = str_retorno.replace('&#114;','r');
	str_retorno = str_retorno.replace('&#115;','s');
	str_retorno = str_retorno.replace('&#116;','t');
	str_retorno = str_retorno.replace('&#117;','u');
	str_retorno = str_retorno.replace('&#118;','v');
	str_retorno = str_retorno.replace('&#119;','w');
	str_retorno = str_retorno.replace('&#120;','x');
	str_retorno = str_retorno.replace('&#121;','y');
	str_retorno = str_retorno.replace('&#122;','z');*/
    str_retorno = str_retorno.replace('&#123;', '{');
    str_retorno = str_retorno.replace('&#124;', '|');
    str_retorno = str_retorno.replace('&#125;', '}');
    str_retorno = str_retorno.replace('&#126;', '~');
    str_retorno = str_retorno.replace('&#127;', '');
    str_retorno = str_retorno.replace('&#128;', '€');
    str_retorno = str_retorno.replace('&#129;', '');
    str_retorno = str_retorno.replace('&#130;', '‚');
    str_retorno = str_retorno.replace('&#131;', 'ƒ');
    str_retorno = str_retorno.replace('&#132;', '"');
    str_retorno = str_retorno.replace('&#133;', '…');
    str_retorno = str_retorno.replace('&#134;', '†');
    str_retorno = str_retorno.replace('&#135;', '‡');
    str_retorno = str_retorno.replace('&#136;', 'ˆ');
    str_retorno = str_retorno.replace('&#137;', '‰');
    str_retorno = str_retorno.replace('&#138;', 'Š');
    str_retorno = str_retorno.replace('&#139;', '‹');
    str_retorno = str_retorno.replace('&#140;', 'Œ');
    str_retorno = str_retorno.replace('&#141;', '');
    str_retorno = str_retorno.replace('&#142;', 'Ž');
    str_retorno = str_retorno.replace('&#143;', '');
    str_retorno = str_retorno.replace('&#144;', '');
    str_retorno = str_retorno.replace('&#145;', '\'');
    str_retorno = str_retorno.replace('&#146;', '\'');
    str_retorno = str_retorno.replace('&#147;', '"');
    str_retorno = str_retorno.replace('&#148;', '"');
    str_retorno = str_retorno.replace('&#149;', '•');
    str_retorno = str_retorno.replace('&#150;', '–');
    str_retorno = str_retorno.replace('&#151;', '—');
    str_retorno = str_retorno.replace('&#152;', '˜');
    str_retorno = str_retorno.replace('&#153;', '™');
    str_retorno = str_retorno.replace('&#154;', 'š');
    str_retorno = str_retorno.replace('&#155;', '›');
    str_retorno = str_retorno.replace('&#156;', 'œ');
    str_retorno = str_retorno.replace('&#157;', '');
    str_retorno = str_retorno.replace('&#158;', 'ž');
    str_retorno = str_retorno.replace('&#159;', 'Ÿ');
    str_retorno = str_retorno.replace('&#160;', ' ');
    str_retorno = str_retorno.replace('&#161;', '¡');
    str_retorno = str_retorno.replace('&#162;', '¢');
    str_retorno = str_retorno.replace('&#163;', '£');
    str_retorno = str_retorno.replace('&#164;', '¤');
    str_retorno = str_retorno.replace('&#165;', '¥');
    str_retorno = str_retorno.replace('&#166;', '¦');
    str_retorno = str_retorno.replace('&#167;', '§');
    str_retorno = str_retorno.replace('&#168;', '¨');
    str_retorno = str_retorno.replace('&#169;', '©');
    str_retorno = str_retorno.replace('&#170;', 'ª');
    str_retorno = str_retorno.replace('&#171;', '«');
    str_retorno = str_retorno.replace('&#172;', '¬');
    str_retorno = str_retorno.replace('&#173;', '­');
    str_retorno = str_retorno.replace('&#174;', '®');
    str_retorno = str_retorno.replace('&#175;', '¯');
    str_retorno = str_retorno.replace('&#176;', '°');
    str_retorno = str_retorno.replace('&#177;', '±');
    str_retorno = str_retorno.replace('&#178;', '²');
    str_retorno = str_retorno.replace('&#179;', '³');
    str_retorno = str_retorno.replace('&#180;', '´');
    str_retorno = str_retorno.replace('&#181;', 'µ');
    str_retorno = str_retorno.replace('&#182;', '¶');
    str_retorno = str_retorno.replace('&#183;', '·');
    str_retorno = str_retorno.replace('&#184;', '¸');
    str_retorno = str_retorno.replace('&#185;', '¹');
    str_retorno = str_retorno.replace('&#186;', 'º');
    str_retorno = str_retorno.replace('&#187;', '»');
    str_retorno = str_retorno.replace('&#188;', '¼');
    str_retorno = str_retorno.replace('&#189;', '½');
    str_retorno = str_retorno.replace('&#190;', '¾');
    str_retorno = str_retorno.replace('&#191;', '¿');
    str_retorno = str_retorno.replace('&#192;', 'À');
    str_retorno = str_retorno.replace('&#193;', 'Á');
    str_retorno = str_retorno.replace('&#194;', 'Â');
    str_retorno = str_retorno.replace('&#195;', 'Ã');
    str_retorno = str_retorno.replace('&#196;', 'Ä');
    str_retorno = str_retorno.replace('&#197;', 'Å');
    str_retorno = str_retorno.replace('&#198;', 'Æ');
    str_retorno = str_retorno.replace('&#199;', 'Ç');
    str_retorno = str_retorno.replace('&#200;', 'È');
    str_retorno = str_retorno.replace('&#201;', 'É');
    str_retorno = str_retorno.replace('&#202;', 'Ê');
    str_retorno = str_retorno.replace('&#203;', 'Ë');
    str_retorno = str_retorno.replace('&#204;', 'Ì');
    str_retorno = str_retorno.replace('&#205;', 'Í');
    str_retorno = str_retorno.replace('&#206;', 'Î');
    str_retorno = str_retorno.replace('&#207;', 'Ï');
    str_retorno = str_retorno.replace('&#208;', 'Ð');
    str_retorno = str_retorno.replace('&#209;', 'Ñ');
    str_retorno = str_retorno.replace('&#210;', 'Ò');
    str_retorno = str_retorno.replace('&#211;', 'Ó');
    str_retorno = str_retorno.replace('&#212;', 'Ô');
    str_retorno = str_retorno.replace('&#213;', 'Õ');
    str_retorno = str_retorno.replace('&#214;', 'Ö');
    str_retorno = str_retorno.replace('&#215;', '×');
    str_retorno = str_retorno.replace('&#216;', 'Ø');
    str_retorno = str_retorno.replace('&#217;', 'Ù');
    str_retorno = str_retorno.replace('&#218;', 'Ú');
    str_retorno = str_retorno.replace('&#219;', 'Û');
    str_retorno = str_retorno.replace('&#220;', 'Ü');
    str_retorno = str_retorno.replace('&#221;', 'Ý');
    str_retorno = str_retorno.replace('&#222;', 'Þ');
    str_retorno = str_retorno.replace('&#223;', 'ß');
    str_retorno = str_retorno.replace('&#224;', 'à');
    str_retorno = str_retorno.replace('&#225;', 'á');
    str_retorno = str_retorno.replace('&#226;', 'â');
    str_retorno = str_retorno.replace('&#227;', 'ã');
    str_retorno = str_retorno.replace('&#228;', 'ä');
    str_retorno = str_retorno.replace('&#229;', 'å');
    str_retorno = str_retorno.replace('&#230;', 'æ');
    str_retorno = str_retorno.replace('&#231;', 'ç');
    str_retorno = str_retorno.replace('&#232;', 'è');
    str_retorno = str_retorno.replace('&#233;', 'é');
    str_retorno = str_retorno.replace('&#234;', 'ê');
    str_retorno = str_retorno.replace('&#235;', 'ë');
    str_retorno = str_retorno.replace('&#236;', 'ì');
    str_retorno = str_retorno.replace('&#237;', 'í');
    str_retorno = str_retorno.replace('&#238;', 'î');
    str_retorno = str_retorno.replace('&#239;', 'ï');
    str_retorno = str_retorno.replace('&#240;', 'ð');
    str_retorno = str_retorno.replace('&#241;', 'ñ');
    str_retorno = str_retorno.replace('&#242;', 'ò');
    str_retorno = str_retorno.replace('&#243;', 'ó');
    str_retorno = str_retorno.replace('&#244;', 'ô');
    str_retorno = str_retorno.replace('&#245;', 'õ');
    str_retorno = str_retorno.replace('&#246;', 'ö');
    str_retorno = str_retorno.replace('&#247;', '÷');
    str_retorno = str_retorno.replace('&#248;', 'ø');
    str_retorno = str_retorno.replace('&#249;', 'ù');
    str_retorno = str_retorno.replace('&#250;', 'ú');
    str_retorno = str_retorno.replace('&#251;', 'û');
    str_retorno = str_retorno.replace('&#252;', 'ü');
    str_retorno = str_retorno.replace('&#253;', 'ý');
    str_retorno = str_retorno.replace('&#254;', 'þ');
    str_retorno = str_retorno.replace('&#255;', 'ÿ');
    str_retorno = str_retorno.replace('&#256;', 'A');

    return str_retorno;
}

function limpa_select(id) {
    var total_opcoes = document.getElementById(id).length;

    for (j = total_opcoes; j > -1; j--)
    document.getElementById(id).remove(j);
}

function formata_data(input) {
    if ((event.keyCode < 48) || (event.keyCode > 57)) {
        event.returnValue = false;
    }
    else {
        if (input.value.length == 2 || input.value.length == 5) {
            input.value = input.value + "/";
        }
    }
}

function apenas_numero(e) {
    var key = window.event ? e.keyCode : e.which;
    var keychar = String.fromCharCode(key);
    if ((key == 0) || (key == 8)) {
        return true
    }
    else {
        reg = /\d/;
        return reg.test(keychar);
    }
}

function ajustar_data(Campo, teclapres) {
    var retorno = apenas_numero(teclapres);

    if (retorno) {
        if (window.event) {
            var tecla = teclapres.keyCode;
        }
        else {
            var tecla = teclapres.which;
        }

        var vr = new String(Campo.value);
        vr = vr.replace("/", "");
        vr = vr.replace("/", "");

        tam = vr.length + 1;

        if (tecla != 9 && tecla != 8) {
            if (tam > 2 && tam < 5) {
                Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, tam);
            }
            if (tam >= 5 && tam <= 10) {
                Campo.value = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, tam - 4);
            }
        }
    }

    return retorno;
}

function checou(campo) {
    if (campo) {
        if (campo.length) {
            for (var i = 0; i < campo.length; i++) {
                if (campo[i].checked) return true;
            }
            return false;
        }
        else {
            if (campo.checked) return true;
            return false;
        }
    }
    else {
        return false;
    }
}

function conta_checado(campo) {
    var acum = 0;
    if (campo) {
        if (campo.length) {
            for (var i = 0; i < campo.length; i++) {
                if (campo[i].checked) acum++;
            }
        }
        else {
            if (campo.checked) acum++;
        }
    }
    return acum;
}

function excluir(form, campo) {
    var campo = eval('document.' + form + '.' + campo);
    var form = eval('document.' + form);

    if (checou(campo)) {
        if (confirm("Deseja realmente excluir?")) {
            form.submit();
        }
    }
    else {
        alert('Selecione primeiro o que deseja excluir');
    }
}

function isDate(data) {

    if (!data) return false;

    var data_separada = data.split('/'); //separa as datas
    if (data_separada.length < 3) return false; //deve possuir a estrutura dd:mm:aaaa
    var dia = data_separada[0];
    var mes = data_separada[1];
    var ano = data_separada[2];

    //verificando se o dia, o mês e o ano são numéricos
    if (isNaN(dia)) return false;
    if (isNaN(mes)) return false;
    if (isNaN(ano)) return false;

    //verificando se a faixa do mês está correta
    if ((mes < 0) || (mes > 12)) return false;

    //verificando se o ano possui 4 dígitos
    if (ano.length != 4) return false;

    var dia_max;

    switch (mes) {
    case '1':
    case '01':
    case '3':
    case '03':
    case '5':
    case '05':
    case '7':
    case '07':
    case '8':
    case '08':
    case '10':
    case '12':
        {
            dia_max = 31;
            break;
        }
    case '4':
    case '04':
    case '6':
    case '06':
    case '9':
    case '09':
    case '11':
        {
            dia_max = 30;
            break;
        }
    case '2':
    case '02':
        {

            if (ano % 4 == 0) {
                //Ano bissexto
                dia_max = 29;
            }
            else {
                //Ano não bissexto
                dia_max = 28;
            }
            break;
        }
    }
    if (parseInt(dia) > parseInt(dia_max)) return false;

    return true;
}

function limpa_se_igual(obj, msg) {
    if (obj.value == msg) {
        obj.value = '';
    }
}

function suja_se_vazio(obj, msg) {
    if (obj.value == '') {
        obj.value = msg;
    }
}

function formatPrice(campo, tammax, teclapres) {
    if (apenas_numero(teclapres)) {
        var key = window.event ? teclapres.keyCode : teclapres.which;
        if (key == 44 || key == 46 || key < 48 || key > 57) key = 0;
        var tecla = key;
        vr = document.getElementById(campo).value;
        vr = vr.replace('/', '');
        vr = vr.replace('/', '');
        vr = vr.replace(',', '');
        vr = vr.replace('.', '');
        vr = vr.replace('.', '');
        vr = vr.replace('.', '');
        vr = vr.replace('.', '');
        tam = vr.length;
        if (tam < tammax && tecla != 8) {
            tam = vr.length + 1;
        }
        if (tecla == 8) {
            tam = tam - 1;
        }
        if (tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105) {
            if (tam <= 2) {
                document.getElementById(campo).value = 'R$ ' + vr;
            }
            if ((tam > 2) && (tam <= 8)) {
                document.getElementById(campo).value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
            }
            if ((tam >= 9) && (tam <= 11)) {
                document.getElementById(campo).value = vr.substr(0, tam - 5) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
            }
            if ((tam >= 12) && (tam <= 14)) {
                document.getElementById(campo).value = vr.substr(0, tam - 8) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
            }
            if ((tam >= 15) && (tam <= 17)) {
                document.getElementById(campo).value = vr.substr(0, tam - 11) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
            }
            if ((tam >= 18) && (tam <= 20)) {
                document.getElementById(campo).value = vr.substr(0, tam - 14) + '.' + vr.substr(tam - 14, 3) + '.' + vr.substr(tam - 11, 3) + '.' + vr.substr(tam - 8, 3) + '.' + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
            }
        }
    }
    else {
        return false;
    }
}

function redimensiona(width, height) {
    var width_tela = self.screen.width;
    var height_tela = self.screen.height;
    var pos_esquerda = (width_tela - width) / 2;
    var pos_direita = (height_tela - height) / 2;

    self.moveTo(pos_esquerda, pos_direita); //centraliza
    self.resizeTo(width, height); //redimensiona
}

function abrir(url) {
    window.open(url, 'S', 'resizable=no,scrollbars=yes,width=10,height=10');
}

function MM_openBrWindow(theURL, winName, features) { //v2.0
    window.open(theURL, winName, features);
}

function apaga_valor_campo(destino) {
    destino.value = '';
}

function apenasNumero(input) {
    if ((event.keyCode < 46) || (event.keyCode > 57) || (event.keyCode == 47)) {
        event.returnValue = false;
    }
}

function carrega() {
    document.getElementById("carrega_mensagem").style.display = 'none';
    document.getElementById("corpo").style.display = 'inline';
}

function carrega_define_posicao() {
    var x, y;
    if (self.innerHeight) { // all except Explorer
        x = self.innerWidth;
        y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        x = document.documentElement.clientWidth;
        y = document.documentElement.clientHeight;
    }
    else if (document.body) { // other Explorers
        x = document.body.clientWidth;
        y = document.body.clientHeight;
    }
    var el = document.getElementById('carrega_mensagem');
    if (null != el) {
        var top = (y / 2) - 50;
        var left = (x / 2) - 200;
        if (left <= 0) left = 10;

        el.style.left = left + "px"
        el.style.top = top + "px";
        el.style.zIndex = 2;
    }
}

function centraliza_janela(width, height) {
    var width_janela = eval(width);
    var height_janela = eval(height);
    var width_tela = self.screen.width;
    var height_tela = self.screen.height;
    var pos_esquerda = (width_tela - width_janela) / 2;
    var pos_direita = (height_tela - height_janela) / 2;

    self.moveTo(pos_esquerda, pos_direita); //centraliza
    self.resizeTo(width_janela, height_janela); //redimensiona
}

function aparece() {
    document.getElementById('foto').style.display = '';
}

function some() {
    document.getElementById('foto').style.display = 'none';
}

function confirma_exclusao(area, codigo) {
    if (confirm("Deseja realmente excluir?")) {
        window.location = 'excluir_' + area + '.asp?codigo=' + codigo;
    }
    else {
        alert('Exclusão cancelada');
    }
}

function le_ementa(origem, destino) {
    var form = origem.form;
    var destino = eval("document." + form.name + "." + destino);
    destino.value = ementas[origem.value];
}

function MM_preloadImages() { //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length,
            a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++)
        if (a[i].indexOf("#") != 0) {
            d.MM_p[j] = new Image;
            d.MM_p[j++].src = a[i];
        }
    }
}

function move(index, to) {
    var list = document.form_ordenar.list;
    var total = list.options.length - 1;
    if (index == -1) return false;
    if (to == +1 && index == total) return false;
    if (to == -1 && index == 0) return false;
    var items = new Array;
    var values = new Array;
    for (i = total; i >= 0; i--) {
        items[i] = list.options[i].text;
        values[i] = list.options[i].value;
    }
    for (i = total; i >= 0; i--) {
        if (index == i) {
            list.options[i + to] = new Option(items[i], values[i + to], 0, 1);
            list.options[i] = new Option(items[i + to], values[i]);
            i--;
        }
        else {
            list.options[i] = new Option(items[i], values[i]);
        }
    }
    list.focus();
}


function move_submit() {
    var list = document.form_ordenar.list;
    var theList = "?";
    // start with a "?" to make it look like a real query-string
    for (i = 0; i <= list.options.length - 1; i++) {
        cod = list.options[i].text.split(',');
        theList += "tL" + "=" + parseInt(cod[0]);
        // a "&" only BETWEEN the items, so not at the end
        if (i != list.options.length - 1) theList += "&";
    }
    //alert(theList);
    //alert(theList.length);
    location.href = document.form_ordenar.action + theList;
}

function muda_estilo(destino, estilo) {
    var obj = document.getElementById(destino);
    obj.className = estilo;
}

function MudaFilho(formulario, Pai, Filho, Vetor) {
    var f = formulario.elements;
    var N = Vetor.length - 1;
    var indice = f[Pai].options[f[Pai].selectedIndex].value;
    f[Filho].length = 1;
    f[Filho].options[0].text = 'Selecione';
    f[Filho].options[0].value = '';
    if (indice != 0) {
        for (var i = 0; i <= N; i++) {
            if (Vetor[i][0] == indice) {
                f[Filho].length = f[Filho].length + 1;
                f[Filho].options[f[Filho].length - 1] = new Option(Vetor[i][2], Vetor[i][1]);
            }
        }
    }
}

function retorna_valor_select(campo) {
    var retorno = "";
    if (campo) {
        if (campo.length) {
            for (var i = 0; i < campo.length; i++) {
                if (campo[i].selected) retorno = campo[i].value;
            }
        }
        else {
            if (campo.selected) retorno = campo.checked;
        }
    }
    else {
        retorno = "";
    }
    return retorno;
}

var isNN = (navigator.appName.indexOf("Netscape") != -1);

function autoTab(input, len, e) {
    var keyCode = (isNN) ? e.which : e.keyCode;
    var filter = (isNN) ? [0, 8, 9] : [0, 8, 9, 16, 17, 18, 37, 38, 39, 40, 46];
    if (input.value.length >= len && !containsElement(filter, keyCode)) {
        input.value = input.value.slice(0, len);
        input.form[(getIndex(input) + 1) % input.form.length].focus();
    }

    function containsElement(arr, ele) {
        var found = false,
            index = 0;
        while (!found && index < arr.length)
        if (arr[index] == ele) found = true;
        else index++;
        return found;
    }

    function getIndex(input) {
        var index = -1,
            i = 0,
            found = false;
        while (i < input.form.length && index == -1)
        if (input.form[i] == input) index = i;
        else i++;
        return index;
    }
    return true;
}

function initToolTips() {
    if (ns4 || ns6 || ie4) {
        if (ns4) toolTipSTYLE = document.toolTipLayer;
        else if (ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style;
        else if (ie4) toolTipSTYLE = document.all.toolTipLayer.style;
        if (ns4) document.captureEvents(Event.MOUSEMOVE);
        else {
            toolTipSTYLE.visibility = "visible";
            toolTipSTYLE.display = "none";
        }
        document.onmousemove = moveToMouseLoc;
    }
}

function toolTip(msg, fg, bg) {
    if (toolTip.arguments.length < 1) // hide
    {
        if (ns4) toolTipSTYLE.visibility = "hidden";
        else toolTipSTYLE.display = "none";
    }
    else // show
    {
        if (!fg) fg = "#204373";
        if (!bg) bg = "#D7DBE7";
        var content = '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + fg + '"><td>' + '<table border="0" cellspacing="0" cellpadding="1" bgcolor="' + bg + '"><td align="center" style="font-family:Verdana; font-size:9px;"><font color="' + fg + '">&nbsp\;' + msg + '&nbsp\;</font></td></table></td></table>';
        if (ns4) {
            toolTipSTYLE.document.write(content);
            toolTipSTYLE.document.close();
            toolTipSTYLE.visibility = "visible";
        }
        if (ns6) {
            document.getElementById("toolTipLayer").innerHTML = content;
            toolTipSTYLE.display = 'block'
        }
        if (ie4) {
            document.all("toolTipLayer").innerHTML = content;
            toolTipSTYLE.display = 'block'
        }
    }
}

function moveToMouseLoc(e) {
    if (ns4 || ns6) {
        x = e.pageX;
        y = e.pageY;
    }
    else {
        x = event.x + document.body.scrollLeft;
        y = event.y + document.body.scrollTop;
    }
    toolTipSTYLE.left = x + offsetX;
    toolTipSTYLE.top = y + offsetY;
    return true;
}

/*****************************************************************/
/* 						FUNÇÃO QUE TIRA A BORDA DO FLASH NO IE						 */
/*****************************************************************/

function AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1) return src.replace(/\?/, ext + '?');
    else return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = '<object ';
    for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
    str += '>';
    for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    str += '<embed ';
    for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
    str += ' ></embed></object>';

    document.write(str);
}

function AC_FL_RunContent() {
    var ret =
    AC_GetArgs(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash");
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent() {
    var ret =
    AC_GetArgs(arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000", null);
    AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object();
    ret.embedAttrs = new Object();
    ret.params = new Object();
    ret.objAttrs = new Object();
    for (var i = 0; i < args.length; i = i + 2) {
        var currArg = args[i].toLowerCase();

        switch (currArg) {
        case "classid":
            break;
        case "pluginspage":
            ret.embedAttrs[args[i]] = args[i + 1];
            break;
        case "src":
        case "movie":
            args[i + 1] = AC_AddExtension(args[i + 1], ext);
            ret.embedAttrs["src"] = args[i + 1];
            ret.params[srcParamName] = args[i + 1];
            break;
        case "onafterupdate":
        case "onbeforeupdate":
        case "onblur":
        case "oncellchange":
        case "onclick":
        case "ondblClick":
        case "ondrag":
        case "ondragend":
        case "ondragenter":
        case "ondragleave":
        case "ondragover":
        case "ondrop":
        case "onfinish":
        case "onfocus":
        case "onhelp":
        case "onmousedown":
        case "onmouseup":
        case "onmouseover":
        case "onmousemove":
        case "onmouseout":
        case "onkeypress":
        case "onkeydown":
        case "onkeyup":
        case "onload":
        case "onlosecapture":
        case "onpropertychange":
        case "onreadystatechange":
        case "onrowsdelete":
        case "onrowenter":
        case "onrowexit":
        case "onrowsinserted":
        case "onstart":
        case "onscroll":
        case "onbeforeeditfocus":
        case "onactivate":
        case "onbeforedeactivate":
        case "ondeactivate":
        case "type":
        case "codebase":
            ret.objAttrs[args[i]] = args[i + 1];
            break;
        case "width":
        case "height":
        case "align":
        case "vspace":
        case "hspace":
        case "class":
        case "title":
        case "accesskey":
        case "name":
        case "id":
        case "tabindex":
            ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1];
            break;
        default:
            ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1];
        }
    }
    ret.objAttrs["classid"] = classid;
    if (mimeType) ret.embedAttrs["type"] = mimeType;
    return ret;
} /*****************************************************************/
/*					FIM FUNÇÃO QUE TIRA A BORDA DO FLASH NO IE				   */
/*****************************************************************/
