
function popUp(strURL, strType, strWidth, strHeight, resizable){

	var strOptions = "height=" + strHeight + ", width = " + strWidth + ", status, "+resizable;

	if(strType == "RS")

		strOptions += ", resizable, scrollbars";

	if(strType == "R")

		strOptions += ", resizable";

	if(strType == "S")

		strOptions += ", scrollbars";

	newWin = window.open(strURL, "newWin", strOptions);

	newWin.focus();

	return false;

}

// cria data a partir de uma string (dd/mm/aaaa) //

function toDate(data) {

	if(isDate(data)) {

		dia = parseInt(data.substr(0, 2), 10);

		mes = parseInt(data.substr(3, 2), 10);

		ano = parseInt(data.substr(6, 4), 10);

		return new Date(ano, mes - 1, dia);

	}

	else

		return new Date();

}



// completa com zeros à esquerda //

function Zeros(texto, tamanho) {

	while(texto.length < tamanho)

		texto = '0' + texto;

	return texto;

}



// convert data para string (dd/mm/aaaa) //

function toDateStr(data) {

	dia = Zeros(data.getDate().toString(10), 2);

	mes = Zeros((data.getMonth() + 1).toString(10), 2);

	ano = data.getFullYear();

	return dia + '/' + mes + '/' + ano;

}



// retorna tamanho do mes //

function monthLen(mes, ano) {

	switch(mes) {

		// meses com 30 dias //

		case 4:

		case 6:

		case 9:

		case 11:

			return 30;

			break;

		// fevereiro //

		case 2:

			// se ano não for bisexto //

			if(ano % 4)

				return 28;

			else

				return 29;

			break;

		// meses com 31 dias //

		default:

			return 31;

	}

}



// adiciona em uma parte da data um número //

function dateAdd(parte, numero, data) {

	dia = data.getDate();

	mes = data.getMonth() + 1;

	ano = data.getFullYear();

	switch(parte) {

		// acrescenta dias na data //

		case 'd':

			dia += numero;

			while(dia > monthLen(mes, ano)) {

				dia -= monthLen(mes, ano);

				mes += 1;

				if(mes > 12) {

					mes = 1;

					ano += 1;

				}

			}

			break;

		// acrescenta meses na data //

		case 'm':

			mes += numero;

			while(mes > 12) {

				mes -= 12;

				ano += 1;

			}

			if(dia > monthLen(mes, ano))

				dia = monthLen(mes, ano);

			break;

		// acrescenta anos na data //

		case 'y':

			ano += numero;

			if(mes == 2 && dia == 29 && ano % 4)

				dia = 28;

			break;

		default:

			// erro de parâmetro (retorna a mesma data) //

	}

	return new Date(ano, mes - 1, dia)

}



// compara duas datas //

function compareDate(data1, data2) {

	if(data1 < data2)

		return -1;

	else if(data1 > data2)

		return 1;

	else

		return 0;

}



// compara duas datas como string (dd/mm/aaaa) //

function compareDateStr(data1, data2) {

	d1 = toDate(data1);

	d2 = toDate(data2);

	return compareDate(d1, d2);

}



// converte texto para valor numerico

function toNumber(valor) {

	return parseFloat(valor.replace(',', '.').replace('.', ''));

}



// aceita a digitação somente de números com ou sem máscara (keypress) //

function maskNumber(ev, campo, mask) {

	if(ev.keyCode) {

		if((ev.keyCode < 48 || ev.keyCode > 57) && ev.keyCode != 13) {

			ev.returnValue = false;

			return false;

		}

	}

	else if((ev.charCode < 48 || ev.charCode > 57) && ev.charCode != 13) {

		ev.preventDefault(false);

		ev.stopPropagation();

		return false;

	}

	if(campo && mask) {

		i = campo.value.length;

		if(i < mask.length && i < campo.maxLength) {

			c = mask.charAt(i);

			if(c != '9')

				campo.value += c;

		}

	}

}



// coloca mascara em campo data (dd/mm/aaaa) [keypress] //

function maskDate(ev, campo) {

	return maskNumber(ev, campo, '99/99/9999 99:99:99');

}



// calcula módulo //

function modulo(numero, mod, x) {

	total = 0;

	for(i = 0; i < numero.length; i++)

		total += parseInt(numero.substr(numero.length - (i + 1), 1)) * ((i % 8) + 2);

	digito = mod - (total % mod);

	return (digito > 9) ? x : digito;

}



// copia itens de um select para outro //

function copySel(origem, destino) {

	tam = origem.options.length;

	for(i = 0; i < tam; i++) {

		if(origem.options[i].selected) {

			var Opt = new Option();

			Opt.text = origem.options[i].text;

			Opt.value = origem.options[i].value;

			for(j = 0; j < destino.options.length; j++)

				if(Opt.text < destino.options[j].text)

					break;

			if(j < destino.options.length)

				destino.options.add(Opt, j);

			else

				destino.options.add(Opt);

			origem.remove(i);

			tam--;

			i--;

		}

	}

}



// limita campo textarea [change][keyup]

function textLimit(ev, campo, tam, count) {

	if(campo.value.length >= tam)

		campo.value = campo.value.substr(0, tam);

	if(c = document.getElementById(count))

		c.innerHTML = campo.value.length;

}

function excluirForm(){

	//alert('alo alo');
	$("#acao").val('excluir');	
	$("#formulario").submit();

}
