function getUrlVar(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
  alert('Query Variable ' + variable + ' not found');
} 


function aguardeMsg(){
	$('body').nms_msg({
		text: '<div class="msgLaranja">Carregando dados...</div>',
		freeze: false,
		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 navegacao(url){
	location.href = url;
}

function escondeAparece(idImg, idContainer){
	var objImg = document.getElementById(idImg);
	var objContainer = document.getElementById(idContainer);
	
	if(objContainer.className.search('show') >= 0){
		var classe = objContainer.className.replace(/show/,'hidden');
		objContainer.className = classe;
		objImg.src = 'images/mini_bt/abrir.png';
		return;
	}
	
	if(objContainer.className.search('hidden') >= 0){
		var classe = objContainer.className.replace(/hidden/,'show');
		objContainer.className = classe;
		objImg.src = 'images/mini_bt/fechar.png';
		return;
	}
	
	objImg.src = 'images/mini_bt/abrir.png';
	objContainer.className += ' hidden';
}

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 = "95%";
		altura = "95%";
		margemLeft = "2%";
		margemTop = "2%";
	}
	$("#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');	 
		});
	});
}

function validaExtensao(str, arrPermitidos){
    var arrExt = str.split('.');
    var extensao = arrExt[(arrExt.length - 1)];
    for(var i=0; i < arrPermitidos.length; i++){
        if(arrPermitidos[i] == extensao)
            return true;
    }
    return false;
}

function isYouTubeURL(url) {
	// YOUTUBE 480 x 344
    var isOk = url.indexOf("http://www.youtube.com/watch?v=");
    if(isOk >= 0)
        return true;
    else
        return false;
}

function getVariavelYouTube(url){
	var variavel = url.split("http://www.youtube.com/watch?v=");
	return variavel[1];
}

function strNaLinha(text){
	return text.replace(/\r?\n/g, "");
}

function tiraQuebra(text){
	return text.replace(/\r?\n/g, "<br />");
}

function colocaQuebra(text){
	return text.replace(/<br \/>/g, "\n");
}

// ------ 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++) { 
		/*
		// COLOCA O TEXTO AUTOMATICAMENTE EM MAIÚSCULO NO SUBMIT. TODO: TRATAT OS HIDDENS E O CAMPO txtAction.
		if(formElement[i].getAttribute("type") != "button" && formElement[i].getAttribute("type") != "submit" && formElement[i].getAttribute("type") != "reset"){
			try{
				toUpper(formElement[i].id);
			}catch(e){}
		}
		*/
        if(formElement[i].getAttribute("campo") != null && (formElement[i].value == "" || formElement[i].value == " ")) { 
			$('body').nms_msg({
				text: '<div class="msgVermelha">O campo "' + formElement[i].getAttribute("campo") + '" é obrigatório!</div>',
				freeze: false,
				close: true
			});
            return false; 
        }else{
			if(formElement[i].getAttribute("campo") == "Email"){
				try{
					toLower(formElement[i].id);
				}catch(e){}
				if(!isEmail(formElement[i].value)){
					$('body').nms_msg({
						text: '<div class="msgVermelha">Email inválido!</div>',
						freeze: false,
						close: true
					});
					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: false,
				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: false,
			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: false,
			close: true
		});
		return false;
	}
	if (day < 1 || day > 31){
		$('body').nms_msg({
			text: '<div class="msgVermelha">Preencha o dia corretamente!</div>',
			freeze: false,
			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: false,
			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: false,
			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: false,
				close: true
			});
			return false;
		}
	}
	
	if (year < 1800){
		$('body').nms_msg({
			text: '<div class="msgVermelha">Preencha o ano corretamente!</div>',
			freeze: false,
			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(strDate == '' || strDate == ' ' || strDate == 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;
	if(e.keyCode == null){
		whichCode = e.which;
	}else{
		whichCode = 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;
}
