function trim(str) {
	if(str != ""){
		return str.replace(/^\s+|\s+$/g, "");
	}else{
		return str;
	}
}

function checarTipoCaracter(tipo, campo) {
	var str;
	if (tipo == 'usr') // campos numéricos
		str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.";
	if (tipo == 'nis') // campos numéricos
		str = "1234567890.";
	if (tipo == 'rg') // campos numéricos
		str = "1234567890.";
	if (tipo == 'num') // campos numéricos
		str = "1234567890";
	if (tipo == 'numd') // campos com números fracionados
		str = "1234567890.,";
	else if (tipo == 'data') // campos de data
		str = "1234567890/";
	else if (tipo == 'cep') // campos de cep
		str = "1234567890-";
	else if (tipo == 'cpf') // campos de cpf
		str = "1234567890.-";
	else if (tipo == 'cnpj') // campos de cnpj
		str = "1234567890./-";
	else if (tipo == 'fone') // campos de telefone
		str = "1234567890-";
	else if (tipo == 'letra') // campos alfabéticos
		str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZçÇáéíóúÁÉÍÓÚàÀâêîôûÂÊÎÔÛãõÃÕäëïöüÄËÏÖÜ@*.,;:~!?/|\\'\"<>()[]{}$#&% ";
	else if (tipo == 'alfabeto')
		str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzçÇáéíóúÁÉÍÓÚàÀâêîôûÂÊÎÔÛãõÃÕäëïöüÄËÏÖÜ~ ";
	else if (tipo == 'email')
		str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzçÇáéíóúÁÉÍÓÚàÀâêîôûÂÊÎÔÛãõÃÕäëïöüÄËÏÖÜ~1234567890.@; ";
	var campo_temp
	for (var i = 0; i < campo.value.length; i++) {
		campo_temp = campo.value.substring(i, i + 1)
		if (str.indexOf(campo_temp) == -1) {
			campo.value = campo.value.substring(0, i);
		}
	}
}

function check_date(field) {
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	err = 0;
	DateValue = DateField.value;
	/* Deleta todos os caracteres exceto de 0 a 9. */
	for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0) {
			DateTemp = DateTemp + DateValue.substr(i, 1);
		}
	}
	DateValue = DateTemp;

	if (DateValue.length == 6) {
		DateValue = DateValue.substr(0, 4) + '20' + DateValue.substr(4, 2);
	}
	if (DateValue.length != 8) {
		err = 19;
	}

	year = DateValue.substr(4, 4);
	if (year == 0) {
		err = 20;
	}

	month = DateValue.substr(2, 2);
	if ((month < 1) || (month > 12)) {
		err = 21;
	}

	day = DateValue.substr(0, 2);
	if (day < 1) {
		err = 22;
	}

	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29)) {
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28)) {
		err = 24;
	}

	if ((day > 31)
			&& ((month == "01") || (month == "03") || (month == "05")
					|| (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
		err = 25;
	}
	if ((day > 30)
			&& ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
		err = 26;
	}

	if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0;
		day = "";
		month = "";
		year = "";
		seperator = "";
	}

	if (err == 0) {		
		return true;
	}

	else {
		alert("Dados inválidos");
		field.value = '';
		return false;
	}
}

function format(objeto, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen, bolMask, sCod, nTecla;

	if (document.all) { // Internet Explorer
		nTecla = evtKeyPress.keyCode;
	} else if (document.layers) { // Nestcape
		nTecla = evtKeyPress.which;
	} else {
		nTecla = evtKeyPress.which;
		if (nTecla == 8) {
			return true;
		}
	}

	sValue = objeto.value;

	// Limpa todos os caracteres de formataÃ§Ã£o que
	// jÃ¡ estiverem no campo.
	sValue = sValue.toString().replace("-", "");
	sValue = sValue.toString().replace("-", "");
	sValue = sValue.toString().replace(".", "");
	sValue = sValue.toString().replace(".", "");
	sValue = sValue.toString().replace("/", "");
	sValue = sValue.toString().replace("/", "");
	sValue = sValue.toString().replace(":", "");
	sValue = sValue.toString().replace(":", "");
	sValue = sValue.toString().replace("(", "");
	sValue = sValue.toString().replace("(", "");
	sValue = sValue.toString().replace(")", "");
	sValue = sValue.toString().replace(")", "");
	sValue = sValue.toString().replace(" ", "");
	sValue = sValue.toString().replace(" ", "");
	fldLen = sValue.length;
	mskLen = sMask.length;

	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;

	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".")
				|| (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
		bolMask = bolMask
				|| ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask
						.charAt(i) == " "))

		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++;
		} else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}

		i++;
	}

	objeto.value = sCod;

	if (nTecla != 8) { // backspace
		if (sMask.charAt(i - 1) == "9") { // apenas nÃºmeros...
			return ((nTecla > 47) && (nTecla < 58));
		} else { // qualquer caracter...
			return true;
		}
	} else {
		return true;
	}
}