
(function($) {

	//Helper Function for Caret positioning
	$.fn.caret=function(begin,end){
		if(this.length==0) return;
		if (typeof begin == 'number') {
            end = (typeof end == 'number')?end:begin;
			return this.each(function(){
				if(this.setSelectionRange){
					this.focus();
					this.setSelectionRange(begin,end);
				}else if (this.createTextRange){
					var range = this.createTextRange();
					range.collapse(true);
					range.moveEnd('character', end);
					range.moveStart('character', begin);
					range.select();
				}
			});
        } else {
            if (this[0].setSelectionRange){
				begin = this[0].selectionStart;
				end = this[0].selectionEnd;
			}else if (document.selection && document.selection.createRange){
				var range = document.selection.createRange();
				begin = 0 - range.duplicate().moveStart('character', -100000);
				end = begin + range.text.length;
			}
			return {begin:begin,end:end};
        }
	};

	//Predefined character definitions
	var charMap={
		'9':"[0-9]",
		'a':"[A-Za-z]",
		'*':"[A-Za-z0-9]"
	};

	//Helper method to inject character definitions
	$.mask={
		addPlaceholder : function(c,r){
			charMap[c]=r;
		}
	};

	$.fn.unmask=function(){
		return this.trigger("unmask");
	};

	//Main Method
	$.fn.mask = function(mask,settings) {
		settings = $.extend({
			placeholder: "_",
			completed: null
		}, settings);

		//Build Regex for format validation
		var re = new RegExp("^"+
		$.map( mask.split(""), function(c,i){
		  return charMap[c]||((/[A-Za-z0-9]/.test(c)?"":"\\")+c);
		}).join('')+
		"$");

		return this.each(function(){
			var input=$(this);
			var buffer=new Array(mask.length);
			var locked=new Array(mask.length);
			var valid=false;
			var ignore=false;  			//Variable for ignoring control keys
			var firstNonMaskPos=null;

			//Build buffer layout from mask & determine the first non masked character
			$.each( mask.split(""), function(i,c){
				locked[i]=(charMap[c]==null);
				buffer[i]=locked[i]?c:settings.placeholder;
				if(!locked[i] && firstNonMaskPos==null)
					firstNonMaskPos=i;
			});

			function focusEvent(){
				checkVal();
				writeBuffer();
				setTimeout(function(){
					$(input[0]).caret(valid?mask.length:firstNonMaskPos);
				},0);
			};

			function keydownEvent(e){
				var pos=$(this).caret();
				var k = e.keyCode;
				ignore=(k < 16 || (k > 16 && k < 32 ) || (k > 32 && k < 41));

				//delete selection before proceeding
				if((pos.begin-pos.end)!=0 && (!ignore || k==8 || k==46)){
					clearBuffer(pos.begin,pos.end);
				}
				//backspace and delete get special treatment
				if(k==8){//backspace
					while(pos.begin-->=0){
						if(!locked[pos.begin]){
							buffer[pos.begin]=settings.placeholder;
							if($.browser.opera){
								//Opera won't let you cancel the backspace, so we'll let it backspace over a dummy character.
								s=writeBuffer();
								input.val(s.substring(0,pos.begin)+" "+s.substring(pos.begin));
								$(this).caret(pos.begin+1);
							}else{
								writeBuffer();
								$(this).caret(Math.max(firstNonMaskPos,pos.begin));
							}
							return false;
						}
					}
				}else if(k==46){//delete
					clearBuffer(pos.begin,pos.begin+1);
					writeBuffer();
					$(this).caret(Math.max(firstNonMaskPos,pos.begin));
					return false;
				}else if (k==27){//escape
					clearBuffer(0,mask.length);
					writeBuffer();
					$(this).caret(firstNonMaskPos);
					return false;
				}
			};

			function keypressEvent(e){
				if(ignore){
					ignore=false;
					//Fixes Mac FF bug on backspace
					return (e.keyCode == 8)? false: null;
				}
				e=e||window.event;
				var k=e.charCode||e.keyCode||e.which;
				var pos=$(this).caret();

				if(e.ctrlKey || e.altKey){//Ignore
					return true;
				}else if ((k>=41 && k<=122) ||k==32 || k>186){//typeable characters
					var p=seekNext(pos.begin-1);
					if(p<mask.length){
						if(new RegExp(charMap[mask.charAt(p)]).test(String.fromCharCode(k))){
							buffer[p]=String.fromCharCode(k);
							writeBuffer();
							var next=seekNext(p);
							$(this).caret(next);
							if(settings.completed && next == mask.length)
								settings.completed.call(input);
						}
					}
				}
				return false;
			};

			function clearBuffer(start,end){
				for(var i=start;i<end&&i<mask.length;i++){
					if(!locked[i])
						buffer[i]=settings.placeholder;
				}
			};

			function writeBuffer(){
				return input.val(buffer.join('')).val();
			};

			function checkVal(){
				//try to place charcters where they belong
				var test=input.val();
				var pos=0;
				for(var i=0;i<mask.length;i++){
					if(!locked[i]){
						buffer[i]=settings.placeholder;
						while(pos++<test.length){
							//Regex Test each char here.
							var reChar=new RegExp(charMap[mask.charAt(i)]);
							if(test.charAt(pos-1).match(reChar)){
								buffer[i]=test.charAt(pos-1);
								break;
							}
						}
					}
				}
				var s=writeBuffer();
				if(!s.match(re)){
					input.val("");
					clearBuffer(0,mask.length);
					valid=false;
				}else
					valid=true;
			};

			function seekNext(pos){
				while(++pos<mask.length){
					if(!locked[pos])
						return pos;
				}
				return mask.length;
			};

			input.one("unmask",function(){
				input.unbind("focus",focusEvent);
				input.unbind("blur",checkVal);
				input.unbind("keydown",keydownEvent);
				input.unbind("keypress",keypressEvent);
				if ($.browser.msie)
					this.onpaste= null;
				else if ($.browser.mozilla)
					this.removeEventListener('input',checkVal,false);
			});
			input.bind("focus",focusEvent);
			input.bind("blur",checkVal);
			input.bind("keydown",keydownEvent);
			input.bind("keypress",keypressEvent);
			//Paste events for IE and Mozilla thanks to Kristinn Sigmundsson
			if ($.browser.msie)
				this.onpaste= function(){setTimeout(checkVal,0);};
			else if ($.browser.mozilla)
				this.addEventListener('input',checkVal,false);

			checkVal();//Perform initial check for existing values
		});
	};
})(jQuery);



jQuery(function($){
 /*  $("#TelefoneAssinatura").mask("9999-9999");
   $("#CEP").mask("99999-999");
   $("#CPFAssinatura").mask("999.999.999-99");
   $("#CPF").mask("999.999.999-99");   
   //$("#cpf").mask("999.999.999-99");   */
});



jQuery(function($){
	$.datepicker.regional['pt-BR'] = {clearText: 'Limpar', clearStatus: '',
		closeText: 'Fechar', closeStatus: '',
		prevText: '&lt;Anterior', prevStatus: '',
		nextText: 'Pr&oacute;ximo&gt;', nextStatus: '',
		currentText: 'Hoje', currentStatus: '',
		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
		'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
		monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
		'Jul','Ago','Set','Out','Nov','Dez'],
		monthStatus: '', yearStatus: '',
		weekHeader: 'Sm', weekStatus: '',
		dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
		dayNamesShort: ['Dom ','Seg ','Ter ','Qua ','Qui ','Sex ','Sab '],
		dayNamesMin: ['Dom ','Seg ','Ter ','Qua ','Qui ','Sex ','Sab '],
		dayStatus: 'DD', dateStatus: 'D, M d',
		dateFormat: 'dd/mm/yy', firstDay: 0,
		initStatus: '', isRTL: false};
	$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
});

function mascara(o,f){
    v_obj=o
    v_fun=f

    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}


function PublicaNoticia(status,noticia)
{
 if(status == 'S')
  {
  strcomp = 'publicar';
  }
  else
  {
  strcomp = 'despublicar';
  }
 confirma = confirm('Deseja realmente '+strcomp+ ' a notícia selecionada?');
 if(confirma)
  {
	document.location = 'noticias.php?publicar='+status+'&noticia='+noticia;
  }
}


function PublicaEvento(status,evento)
{
 if(status == 'S')
  {
  strcomp = 'publicar';
  }
  else
  {
  strcomp = 'despublicar';
  }
 confirma = confirm('Deseja realmente '+strcomp+ ' o evento selecionada?');
 if(confirma)
  {
	document.location = 'eventos.php?publicar='+status+'&evento='+evento;
  }
}



function ExcluiNoticia(noticia)
{
 confirma = confirm('Deseja realmente excluir a notícia selecionada?');
 if(confirma)
 {
 	document.location = 'noticias.php?excluir='+noticia;
 }
}

function ExcluiCidade(cidade)
{
 confirma = confirm('Deseja realmente excluir a cidade selecionada?');
 if(confirma)
 {
 	document.location = 'cidades.php?excluir='+cidade;
 }
}

function ExcluiEvento(evento)
{
 confirma = confirm('Deseja realmente excluir o evento selecionada?');
 if(confirma)
 {
 	document.location = 'eventos.php?excluir='+evento;
 }
}


function escolheLink(valor)
 {
	if(valor == 'I')
	 {
		document.getElementById('linkExterno').style.display = 'none';
		document.getElementById('linkInterno').style.display = 'block'; 
		document.getElementById('strtexto').innerHTML = 'Texto:';
	 }
	 else
	 {
		document.getElementById('linkInterno').style.display = 'none'; 
		document.getElementById('linkExterno').style.display = 'block';
		document.getElementById('strtexto').innerHTML = '<br>&nbsp;&nbsp;Link:';		

	 }
 }


function MudaProximoInput(origem,destino)
{
	maximo = (origem.maxLength);
	if (origem.value.length == maximo)
	{
	  destino.focus();	
	}
}

function isEmail(text){
   var 	arroba = "@",
       	ponto = ".",
	   	posponto = 0,
	   	posarroba = 0;
	
	 if (text =="") return false;
	
	 for (var indice = 0; indice < text.length; indice++){
	 	if (text.charAt(indice) == arroba) {
	 		posarroba = indice;
	      	break;
		 }
	 }
	
	for (var indice = posarroba; indice < text.length; indice++){
		if (text.charAt(indice) == ponto) {
			posponto = indice;
	     	break;
		}
	}
	if (posponto == 0 || posarroba == 0) return false;
	if (posponto == (posarroba + 1)) return false;
	if ((posponto + 1) == text.length) return false;
	return true;
}


function validaCPF(cpf,label) 
{
  erro = new String;

	if ((cpf.value.length == 14) ||  (cpf.value.length == 11) )
	{	
			cpf.value = cpf.value.replace('.', '');
			cpf.value = cpf.value.replace('.', '');
			cpf.value = cpf.value.replace('-', '');
			var nonNumbers = /\D/;
			//label.style.display='block';
			if (nonNumbers.test(cpf.value)) 
			{
					erro = "CPF inv&aacute;lido!";
			}
			else
			{
					if (cpf.value == "00000000000" || 
							cpf.value == "11111111111" || 
							cpf.value == "22222222222" || 
							cpf.value == "33333333333" || 
							cpf.value == "44444444444" || 
							cpf.value == "55555555555" || 
							cpf.value == "66666666666" || 
							cpf.value == "77777777777" || 
							cpf.value == "88888888888" || 
							cpf.value == "99999999999") {
							
							erro = "CPF inv&aacute;lido!";
					}
	
					var a = [];
					var b = new Number;
					var c = 11;

					for (i=0; i<11; i++){
							a[i] = cpf.value.charAt(i);
							if (i < 9) b += (a[i] * --c);
					}
	
					if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
					b = 0;
					c = 11;
	
					for (y=0; y<10; y++) b += (a[y] * c--); 
	
					if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	
					if ((cpf.value.charAt(9) != a[9]) || (cpf.value.charAt(10) != a[10])) {
						erro = "CPF inv&aacute;lido!";
					}
			}
	}
	else
	{
		if(cpf.value.length == 0)
			return false
		else
			erro = "CPF inv&aacute;lido!";

	}
	if (erro.length > 0) {
			//label.innerHTML = erro;
			cpf.focus();
			return false;
	} 	
	//label.innerHTML = 'CPF v&aacute;lido!';
	return true;

}

//envento onkeyup
function maskCPF(CPF) {
	var evt = window.event;
	kcode=evt.keyCode;
	if (kcode == 8) return;
	if (CPF.value.length == 3) { CPF.value = CPF.value + '.'; }
	if (CPF.value.length == 7) { CPF.value = CPF.value + '.'; }
	if (CPF.value.length == 11) { CPF.value = CPF.value + '-'; }
}

// evento onBlur
function formataCPF(CPF)
{
	with (CPF)
	{
		value = value.substr(0, 3) + '.' + 
				value.substr(3, 3) + '.' + 
				value.substr(6, 3) + '-' +
				value.substr(9, 2);
	}
}
function retiraFormatacao(CPF)
{
	with (CPF)
	{
		value = value.replace (".","");
		value = value.replace (".","");
		value = value.replace ("-","");
		value = value.replace ("/","");
	}
}


function validarData(campo,campo2,campo3,label){
var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
var msgErro = 'Formato inválido de data.';
label.style.display='block';
datafinal = campo.value+'/'+campo2.value+'/'+campo3.value;
if ((datafinal.match(expReg)) && (datafinal!='')){
var dia = datafinal.substring(0,2);
var mes = datafinal.substring(3,5);
var ano = datafinal.substring(6,10);
if(mes==4 || mes==6 || mes==9 || mes==11 && dia > 30){
label.innerHTML = 'Data inv&aacute;lida';

return false;
} else{
if(ano%4!=0 && mes==2 && dia>28){
label.innerHTML = 'Data inv&aacute;lida';
return false;
} else{
if(ano%4==0 && mes==2 && dia>29){
label.innerHTML = 'Data inv&aacute;lida';
return false;
} else{
label.innerHTML = 'Data v&aacute;lida';
return true;
}}}} else {
label.innerHTML = 'Data inv&aacute;lida';
return false;
}}

