/*
#######################################################################################
#Script que gera mascaras para campos do formulário.
#Exemplo de uso:
#onKeyPress="return(adjustDate(event,this));"
#Desenvolvido pela Head Trust
#Criado em: 26/06/2008
#Modificado em: 24/09/2008 - 31/03/2009 - 03/07/2009
#######################################################################################
*/

//Mascara para ajuste do field que receberá Data e Hora
function adjustDateTime(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	field = eval (obj);

	if (field.value == '00/00/0000 00:00:00'){
		field.value="";
	}


	if (field.value.length >= 19){
		return false;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode(keypress)) == -1){
		return false;
	}

	if (field.value.length == 2 ){
		field.value = field.value + '/';
	} else if (field.value.length == 5){
		field.value = field.value + '/';
	} else if (field.value.length == 10){
		field.value = field.value + ' ';
	} else if (field.value.length == 13){
		field.value = field.value + ':';
	} else if (field.value.length == 16){
		field.value = field.value + ':';
	}
}

//Mascara para ajuste do field que receberá apenas Data
function adjustDate(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	field = eval (obj);

	if (field.value == '00/00/0000'){
		field.value = '';
	}

	if (field.value.length >= 10){
		return false;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode (keypress)) == -1){
		return false;
	}

	if (field.value.length == 2 ){
		field.value = field.value + '/';
	} else if (field.value.length == 5){
		field.value = field.value + '/';
	}
}

//Mascara para ajuste do field que receberá apenas Hora
function adjustTime(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	field = eval (obj);

	if (field.value == '00:00:00'){
		field.value="";
	}


	if (field.value.length >= 8){
		return false;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode (keypress)) == -1){
		return false;	
	}

	if (field.value.length == 2 ){
		field.value = field.value + ':';
	} else if (field.value.length == 5){
		field.value = field.value + ':';
	}
}

//Mascara para ajuste do field que receberá CPF
function adjustCPF(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	field = eval (obj);

	if (field.value == '000.000.000-00'){
		field.value="";
	}

	if (field.value.length >= 14){
		return false;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode (keypress)) == -1){
		return false;
	}

	if (field.value.length == 3 ){
		field.value = field.value + '.';
	} else if (field.value.length == 7){
		field.value = field.value + '.';
	} else if (field.value.length == 11){
		field.value = field.value + '-';
	}
}

//Mascara para ajuste do field que receberá CNPJ
function adjustCNPJ(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	field = eval (obj);

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	if (field.value == '00.000.000/0000-00'){
		field.value = "";
	}

	if (field.value.length >= 18){
		return false;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode (keypress)) == -1){
		return false;
	}

	if (field.value.length == 2 ){
		field.value = field.value + '.';
	} else if (field.value.length == 6){
		field.value = field.value + '.';
	} else if (field.value.length == 10){
		field.value = field.value + '/';
	} else if (field.value.length == 15){
		field.value = field.value + '-';
	}
}

//Mascara para ajuste do field que receberá Telefone sem código nacional
function adjustFone(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (obj.value == '(00) 0000-0000'){
		obj.value = "";
	}

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode(keypress)) == -1){
		return false;
	}

	if(obj.value.length >= 14){
		return false;
	}

	if (obj.value.length == 1 ){
			obj.value = '(' + obj.value;
	} else if (obj.value.length == 3){
			obj.value = obj.value + ') ';
	} else if (obj.value.length == 9){
			obj.value = obj.value + '-';
	}
}

//Mascara para ajuste do field que receberá Telefone sem código nacional
function adjustCEP(event,obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (obj.value == '(00) 0000-0000'){
		obj.value = "";
	}

	if (keypress == 13){
		return false;
	}

	if (keypress != 13 && keypress < 20){
		return true;
	}

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode(keypress)) == -1){
		return false;
	}

	if(obj.value.length >= 9){
		return false;
	}

	if (obj.value.length == 5){
		obj.value = obj.value + '-';
	}
}

//Mascara para ajuste do field que receberá valores monetários.
//Ex.: onKeyPress="return(adjustMoney(event,this,'.',','))"
function adjustMoney(event,obj,thousands, decimals){
	var sep = 0;
	var key = '';
	var i = j = 0;
	var lenght = lenght2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	if (whichCode == 13){
		return false;
	}

	if (whichCode != 13 && whichCode < 20){
		return true;
	}

	key = String.fromCharCode(whichCode);// Valor para o código da Chave

	// Chave inválida
	if (strCheck.indexOf(key) == -1){
		return false;
	}

	lenght = obj.value.length;

	for(i = 0; i < lenght; i++){
		if ((obj.value.charAt(i) != '0') && (obj.value.charAt(i) != decimals)){
			break;
		}
	}

	aux = '';

	for(; i < lenght; i++){
		if (strCheck.indexOf(obj.value.charAt(i))!=-1){
			aux += obj.value.charAt(i);
		}
	}

	aux += key;

	lenght = aux.length;

	if (lenght == 0){
		obj.value = '';
	}

	if (lenght == 1){
		obj.value = '0'+ decimals + '0' + aux;
	}

	if (lenght == 2){
		obj.value = '0'+ decimals + aux;
	}

	if (lenght > 2){
		aux2 = '';

		for (j = 0, i = lenght - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += thousands;
				j = 0;

			}
			aux2 += aux.charAt(i);
			j++;
		}

		obj.value = '';
		lenght2 = aux2.length;

		for (i = lenght2 - 1; i >= 0; i--)
		obj.value += aux2.charAt(i);
		obj.value += decimals + aux.substr(lenght - 2, lenght);
	}
	return false;
}

//Limita a quantidade de caracteres que um textarea pode ter...
//Exemplo: onKeyPress="limitSchars(this,'limit-chars',1024)"
function limitChars(field,local,limit){
	var div = document.getElementById(local);

	if(field.value.length >= limit){
		var str = field.value;
		field.value = str.substr(0,limit);
		div.innerHTML = "Este campo n&atilde;o aceita mais caracteres";
	} else {
		div.innerHTML = "Faltam digitar (" + (limit - field.value.length) + ") caracteres";	
	}
}


//Permite apenas a entrada de números no campos
function onlyNumbers(event, obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode(keypress)) == -1){
		alert('Digite somente números!');
		return false;
	}
}

//Permite apenas a entrada de números no campos
function onlyChars(event, obj){

	var keypress = ((window.Event) && (navigator.appName != 'Microsoft Internet Explorer')) ? event.which : event.keyCode;

	chars = '0123456789';

	if (chars.indexOf(String.fromCharCode(keypress)) >= 0){
		alert('Este campo não permite números!');
		return false;
	}
}

//Recebe o valor do campo e faz a verificação
function checkDate(obj){
	var array = obj.value.split('/');

	var result = isDate(array[0], array[1], array[2]);

	if(!result){
		alert('Data inválida!');
		obj.value = '';
		obj.focus();
	}

	return result;
}

//Verifica se a data é uma data válida
function isDate(day, month, year) {

	var date = new Date();
	date.setFullYear(year, month -1, day);

	var rsDay = (date.getDate() == day);
	var rsMonth = (date.getMonth() == month -1);
	var rsYear = (date.getFullYear() == year);

	var result = (rsDay && rsMonth && rsYear);

	return result;
}

//Verifica se é um valor válido para Log ou Senha
function checkIDWords(str){
	var regex = /^[\w\.\_\-]+$/;
	return (regex.test(str));
}

//Checa se o Log, é um dado válido
function checkUserName(obj){
	if(obj.value == ''){
		alert('Nome de usuário inválido! Preencha corretamente!');
	} else {
		if(!checkIDWords(obj.value)){
			alert('Caracteres inválidos no nome de usuário! Preencha corretamente!');
			obj.value = '';
			obj.focus();
		}
	}
}

//Checa se a senha é um dado válido
function checkPassword(obj){
	if(obj.value == ''){
		alert("Senha inválida!\nPreencha corretamente!");
	} else {
		if(!checkIDWords(obj.value)){
			alert("Caracteres inválidos na sua senha!\nPreencha corretamente!");
			obj.value = '';
			obj.focus();
		}
	}
}

//Verifica se o valor possa ser um E-mail
function checkMailWords(str){
	var regex = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return (regex.test(str));
}

//Checa se o E-mail é um dado válido
function checkMail(obj){
	if(obj.value == ''){
		alert("E-mail inválido!\nPreencha corretamente!");
	} else {
		if(!checkMailWords(obj.value)){
			alert("E-mail inválido, certifique-se que está digitando corretamente!");
			obj.value = '';
			obj.focus();
		}
	}
}

