/*#######################################################################################################
Biblioteca de Funções Globais
Desenvolvido por: Daniel Carvalho Melo
Indústria-i *** Todos os direitos reservados ***
Versão 1.0 de 22 de Junho de 2005
#######################################################################################################*/

//Linha de include que deve aparecer dentro da marcação HEAD do HTML:
/*<Script Language="JavaScript" Src="../lib/global.js"></script>*/

//Para Marcar todas as Checkboxes
//Importante: checkbox deve ser uma referência completa ao objeto. Exemplo: form1.Checkbox
function glbMarcarTodos(checkbox) {
	checkbox.checked = true; //Necessário a separação pois checkbox.lenght = undefined quando só existe um elemento
	for (var i = 0 ; i < checkbox.length; i++) {
		checkbox[i].checked = true;
	};
};

//Para Desmarcar todas as Checkboxes
//Importante: checkbox deve ser uma referência completa ao objeto. Exemplo: form1.Checkbox
function glbDesmarcarTodos(checkbox) {
	checkbox.checked = false; //Necessário a separação pois checkbox.lenght = undefined quando só existe um elemento
	for (var i = 0 ; i < checkbox.length; i++) {
		checkbox[i].checked = false;
	};
};


//Abre uma janela de confirmação
function glbCancelarAlteracoes(URLDestino) {
	if (confirm('Tem certeza que deseja cancelar todas as alterações?')) {
		location = URLDestino;
	};
}

//Inverte o padrão de data dd/mm/yyyy para mm/dd/yyyy 
function glbInverteData (Data) {

	/*
	var mydate=new Date(Data)
	var year=mydate.getYear()
	var day=mydate.getDay()+1
	var month=mydate.getMonth()+1
	var daym=mydate.getDate()
	//alert(year+"/"+day+"/"+month)*/
	barra1 = Data.indexOf ("/");
	day = Data.substring (0, barra1);
	trecho2 = Data.substring(barra1+1, Data.length);
	barra2 = trecho2.indexOf ("/");
	month = trecho2.substring (0, barra2);
	trecho3 = trecho2.substring(barra2+1, Data.length);//trecho2.length-1);
	year = trecho3;
	glbInverteData = month+"/"+day+"/"+year;//Date(year, daym, month)
	//alert (glbInverteData);
	return glbInverteData 
}

function glbValidaData (obj) {
	Data = obj.value;
	barra1 = Data.indexOf ("/");
	day = Data.substring (0, barra1);
	trecho2 = Data.substring(barra1+1, Data.length);
	barra2 = trecho2.indexOf ("/");	
	month = trecho2.substring (0, barra2);
	trecho3 = trecho2.substring(barra2+1, Data.length);
	year = trecho3;
	erro = "";
	if (isNaN(month) | (month > 12)) {
		erro += "- Mês inválido \n";
	} else {
		daylimit = 0;
		switch (month){
			case 1,3,5,7,9,11:
				daylimit = 31;
				alert(daylimit);
			break;
			case 2:
				if (glbAnoBissexto (year)) {
					daylimit = 29;
				}else{
					daylimit = 28;
				}
				alert(daylimit);
			break;
			case 4,6,8,10,12:
				daylimit = 30;
				alert(daylimit);
			break;
		}
		if ( (month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 9) || (month == 11) ){
			daylimit = 31;
		}
		if ( (month == 4) || (month == 6) || (month == 8) || (month == 10) || (month == 12) ){
			daylimit = 30;
		}
		if (month == 2) {
			if (glbAnoBissexto (year)) {
				daylimit = 29;
			}else{
				daylimit = 28;
			}
		}
		if ( isNaN(day) || (day > daylimit)) {
			erro += "- Dia inválido \n";
		}
	}
	if (!isNaN(year)) {
		if (year.length == 2){
			if (year < 00) {
				erro += "- Ano inválido \n";
			}
		} else if (year.length == 4){
			if (year < 1900) {
				erro += "- Ano inválido \n";
			}			
		}
	} else {
		erro += "- Ano inválido \n";
	}
	if (erro != "") {
		alert ("As seguintes irregularidades foram encontradas:\n"+erro);
		obj.value = "";
		obj.focus();
	}
}

function glbAnoBissexto(year) {
	if (year % 4 == 0){ // regra básica
        return true;
	}else{	 // se o ano é bissexto
        /* else */ // neste caso o else não é necessario
        return false; // se o ano não é bissexto
	}
}

function glbPreencheBarraData (obj) {
	data = obj.value;
	if (data.length == 2)  {
		if (data.indexOf ("/") == -1) {
			data += "/";
		}
	}
	if (data.length == 5)  {
		if (data.substring(3,5).indexOf ("/") == -1) {
			data += "/";
		}
	}
	obj.value = data;
}

function glbCancelarAlteracoes(URLDestino, form){
	if (confirm('Tem certeza que deseja cancelar todas as alterações?')) {
		location = URLDestino;
	};
}

function glbConfirmarExclusao(form){
	if (confirm('Tem certeza que deseja excluir todos os itens marcados?')) {
		form.submit();
	};
}

