function aguardeMsg(){

	$('body').nms_msg({

		text: '<div class="msgVerde">Carregando dados...</div>',

		freeze: true,

		close: false,

		icon: 'aguarde.gif',

		icon_path: 'images/'

	});	

}



function fecharMsg(){

	try{

		$('#nms_msg').fadeOut('slow');

		$('#nms_freezeBG').fadeOut('slow');	

	}catch(e){

		try{

			parent.$('#nms_msg').fadeOut('slow');

			parent.$('#nms_freezeBG').fadeOut('slow');	

		}catch(e){

			

		}	

	}

}



function fecharModal(){

	try{

		$.modal.close();

	}catch(e){

		try{

			parent.$.modal.close();

		}catch(e){

			

		}	

	}

}



function recarregar(){

	location.href = location.href;	

}



function navegar(pagina){

	location.href = pagina;

}



function resizeModal(tamanho, altura){

	var largura;

	var altura;

	var margemLeft;

	var margemTop;

	if(tamanho == 'min'){

		largura = "20%";

		altura = "20%";

		margemLeft = "40%";

		margemTop = "35%";

	}else if(tamanho == "fixo"){

		largura = "95%";

		altura = altura;

		margemLeft = "2%";

		margemTop = "2%";

	}else{

		largura = "500px;";

		altura = "430px";

		$("#simplemodal-container").css("margin",'0 auto');

		$("#simplemodal-container").css("width",largura);

		$("#simplemodal-container").css("height",altura);

		return false;

	}

	$("#simplemodal-container").css("width",largura);

	$("#simplemodal-container").css("height",altura);

	$("#simplemodal-container").css("left",margemLeft);

	$("#simplemodal-container").css("top",margemTop);

}



function modalClose(dialog) {

	dialog.data.fadeOut('slow', function () {

		dialog.container.hide('slow', function () {

			dialog.overlay.slideUp('slow', function () {

				$.modal.close();

			});

		});

	});

}



function modalOpen (dialog) {

	dialog.overlay.fadeIn('slow', function () {

		dialog.container.fadeIn('slow', function () {

			dialog.data.hide().slideDown('slow');	 

		});

	});

}



// ------ FORM ------//

function desabilitarForm(idForm){

	var formulario = document.getElementById(idForm);

	var elementosInput = formulario.getElementsByTagName('input');

	var elementosSelect = formulario.getElementsByTagName('select');

	var elementosTextarea = formulario.getElementsByTagName('textarea');	



	for(var i=0; i<elementosInput.length; i++){

		if(elementosInput[i].getAttribute('type') == 'text' || elementosInput[i].getAttribute('type') == 'file'){

			elementosInput[i].className = 'readonly';

			elementosInput[i].setAttribute('readonly', 'readonly');

		}

	}

	

	for(var i=0; i<elementosSelect.length; i++){

		elementosSelect[i].className = 'readonly';

		elementosSelect[i].setAttribute('readonly', 'readonly');

	}

	

	for(var i=0; i<elementosTextarea.length; i++){

		elementosTextarea[i].className = 'readonly';

		elementosTextarea[i].setAttribute('readonly', 'readonly');

	}

}



function habilitarForm(idForm){

	var formulario = document.getElementById(idForm);

	var elementosInput = formulario.getElementsByTagName('input');

	var elementosSelect = formulario.getElementsByTagName('select');

	var elementosTextarea = formulario.getElementsByTagName('textarea');	



	for(var i=0; i<elementosInput.length; i++){

		if(elementosInput[i].getAttribute('type') == 'text' || elementosInput[i].getAttribute('type') == 'radio' || elementosInput[i].getAttribute('type') == 'checkbox' || elementosInput[i].getAttribute('type') == 'file'){

			elementosInput[i].className = 'form';

			elementosInput[i].removeAttribute('readonly');

		}

	}

	

	for(var i=0; i<elementosSelect.length; i++){

		elementosSelect[i].className = 'form';

		elementosSelect[i].removeAttribute('readonly');

	}

	

	for(var i=0; i<elementosTextarea.length; i++){

		elementosTextarea[i].className = 'form';

		elementosTextarea[i].removeAttribute('readonly');

	}

}



function validaFormAuto(formId) { 
    var formElement = document.getElementById(formId); 
    for (var i=0; i < formElement.length; i++) { 
        if(formElement[i].getAttribute("campo") != null && (formElement[i].value == "" || formElement[i].value == " ")) { 
			alert("Campo requerido: " + formElement[i].getAttribute("campo"));
            return false; 
        }else{
			if(formElement[i].getAttribute("campo") == "Email"){
				if(!isEmail(formElement[i].value)){
				alert("E-mail incorreto!");
					return false;
				}
			}
		}
    }
    return true; 
}



function validaPesquisaAuto(formId) { 

    var formElement = document.getElementById(formId); 

	var elementosSelect = formElement.getElementsByTagName('select');

	

    for (var i=0; i < elementosSelect.length; i++) { 

        if(elementosSelect[i].getAttribute("pesquisa") != null && elementosSelect[i].value != '') { 

			return true;

        }

    }

	

    for (var i=0; i < formElement.length; i++) { 

        if(formElement[i].getAttribute("pesquisa") != null && formElement[i].value.length > 1) { 

			return true;

        }

    }

	

	

    for (var i=0; i < formElement.length; i++) { 

        if(formElement[i].getAttribute("pesquisa") != null && formElement[i].value.length > 1) { 

			return true;

        }else{

			$('body').nms_msg({

				text: '<div class="msgVermelha">Digite pelo menos 2 letras para efetuar a pesquisa!</div>',

				freeze: true,

				close: true

			});

            return false; 

		}

    }

}



function isEmail(mail){

    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);

    if(typeof(mail) == "string"){

        if(er.test(mail)){ return true; }

    }else if(typeof(mail) == "object"){

        if(er.test(mail.value)){

                    return true;

                }

    }else{

        return false;

        }

}



function isDateBlur(campo){

	if(campo.value != ""){

		if(!isDate(campo.value, true)){

			campo.value = "";

		}

	}

}



function isDate(dateStr, diaNoMes) {

	

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

	

	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null){

		$('body').nms_msg({

			text: '<div class="msgVermelha">Preencha a data corretamente (dd/mm/aaaa)!</div>',

			freeze: true,

			close: true

		});

		return false;

	}

	

	month = matchArray[3]; // parse date into variables

	day = matchArray[1];

	year = matchArray[4];

	

	if (month < 1 || month > 12){ // check month range

		$('body').nms_msg({

			text: '<div class="msgVermelha">Preencha o mês corretamente!</div>',

			freeze: true,

			close: true

		});

		return false;

	}

	if (day < 1 || day > 31){

		$('body').nms_msg({

			text: '<div class="msgVermelha">Preencha o dia corretamente!</div>',

			freeze: true,

			close: true

		});

		return false;

	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31 && diaNoMes){

		$('body').nms_msg({

			text: '<div class="msgVermelha">Mês '+ month + ' não tem 31 dias!</div>',

			freeze: true,

			close: true

		});

		return false;

	}

	if (month == 2 && (day < 1 || day > 29)) {

		$('body').nms_msg({

			text: '<div class="msgVermelha">Fevereiro não tem ' + day + ' dias!</div>',

			freeze: true,

			close: true

		});

		return false;

	}

	if (month == 2 && diaNoMes){ // check for february 29th

		if (!validarFevereiro(day, year)) {

			$('body').nms_msg({

				text: '<div class="msgVermelha">Fevereiro de ' + year + ' não tem ' + day + ' dias!</div>',

				freeze: true,

				close: true

			});

			return false;

		}

	}

	

	if (year < 1800){

		$('body').nms_msg({

			text: '<div class="msgVermelha">Preencha o ano corretamente!</div>',

			freeze: true,

			close: true

		});

		return false;

	}		

	

	return true;

}



function validarFevereiro(day, year) {

	var isleap = (((year % 4) == 0) && (((year % 100) != 0) || ((year % 400) == 0)));

	if (day>29 || (day==29 && !isleap)){

		return false;

	}

	

	return true

}



function convertDateBanco(strDate){

	if(strDate == '' || strDate == ' ' || strDate == null){

		return '';	

	}

	var dta = strDate.split('/');

	var strDia = dta[0];

	var strMes = dta[1];

	var strAno = dta[2];



	var strData = strAno+'-'+strMes+'-'+strDia;

	return strData;

}



function convertDateTimeBanco(strDateTime){

	if(strDateTime == '' || strDateTime == ' ' || strDateTime == null){

		return '';	

	}

	var dtaTime = strDateTime.split(' ');

	strDate = dtaTime[0];

	strTime = dtaTime[1];

	

	var dta = strDate.split('/');

	var strDia = dta[0];

	var strMes = dta[1];

	var strAno = dta[2];



	var dataCompleta = strAno+'-'+strMes+'-'+strDia+" "+strTime;

	return dataCompleta;

}



function toUpper(campoId){

	var objCampo = document.getElementById(campoId);

	var objCampoValor = objCampo.value;

	objCampo.value = objCampoValor.toUpperCase();

}



function toLower(campoId){

	var objCampo = document.getElementById(campoId);

	var objCampoValor = objCampo.value;

	objCampo.value = objCampoValor.toLowerCase();

}



// ---- SELEÇÃO ----//

function autoSelecao(selectTarget) {

	if(selectTarget == null){

		selectTarget = document.getElementById(selectTarget);

	}

	

 	if(selectTarget != null && ((selectTarget.childNodes.length == 1

      && selectTarget.childNodes[0].nodeName == "#text") || (selectTarget.tagName == "INPUT"

      && selectTarget.type == "text"))) {

  		if(selectTarget.tagName == 'TEXTAREA' || (selectTarget.tagName == "INPUT" && selectTarget.type == "text")) {

  			 selectTarget.select();

  		} else if(window.getSelection) { // FF, Safari, Opera

   			var sel = window.getSelection();

   			var range = document.createRange();

   			range.selectNode(selectTarget.firstChild);

   			sel.removeAllRanges();

   			sel.addRange(range);

  		} else { // IE

   			document.selection.empty();

   			var range = document.body.createTextRange();

   			range.moveToElementText(selectTarget);

   			range.select();

  		}

 	}

}



// ----- MASCARAS ------ //
 


function mascaraForm(o,f){

    v_obj=o

    v_fun=f

    setTimeout("execmascara()",1)

}



function execmascara(){

    v_obj.value=v_fun(v_obj.value)

}



function leech(v){

    v=v.replace(/o/gi,"0")

    v=v.replace(/i/gi,"1")

    v=v.replace(/z/gi,"2")

    v=v.replace(/e/gi,"3")

    v=v.replace(/a/gi,"4")

    v=v.replace(/s/gi,"5")

    v=v.replace(/t/gi,"7")

    return v

}



function soNumeros(v){

    return v.replace(/\D/g,"")

}



function telefone(v){

    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito

    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos

    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos

    return v

}



function cpf(v){

    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito

    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos

    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos

                                             //de novo (para o segundo bloco de números)

    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos

    return v

}



function cep(v){

    v=v.replace(/\D/g,"")                //Remove tudo o que não é dígito

    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações

    return v

}



function cnpj(v){

    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito

    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos

    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos

    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos

    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos

    return v

}



function formataMoeda(objTextBox, e){

	var SeparadorDecimal = '.';

	var SeparadorMilesimo = '';

    var sep = 0;

    var key = '';

    var i = j = 0;

    var len = len2 = 0;

    var strCheck = '0123456789';

    var aux = aux2 = '';

    var whichCode = (window.Event) ? e.which : e.keyCode;    

    // 13=enter, 8=backspace as demais retornam 0(zero)

    // whichCode==0 faz com que seja possivel usar todas as teclas como delete, setas, etc    

    if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8))

    	return true;

    key = String.fromCharCode(whichCode); // Valor para o código da Chave

 

 

    if (strCheck.indexOf(key) == -1) 

    	return false; // Chave inválida

    len = objTextBox.value.length;

    for(i = 0; i < len; i++)

        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) 

        	break;

    aux = '';

    for(; i < len; i++)

        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) 

        	aux += objTextBox.value.charAt(i);

    aux += key;

    len = aux.length;

    if (len == 0) 

    	objTextBox.value = '';

    if (len == 1) 

    	objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;

    if (len == 2) 

    	objTextBox.value = '0'+ SeparadorDecimal + aux;

    if (len > 2) {

        aux2 = '';

        for (j = 0, i = len - 3; i >= 0; i--) {

            if (j == 3) {

                aux2 += SeparadorMilesimo;

                j = 0;

            }

            aux2 += aux.charAt(i);

            j++;

        }

        objTextBox.value = '';

        len2 = aux2.length;

        for (i = len2 - 1; i >= 0; i--)

        	objTextBox.value += aux2.charAt(i);

        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);

    }

    return false;

}
