//substitui todo conteudo entre {} de um template pelos campos correspondentes de um JSON 
String.prototype.supplant = function (o) {
   return this.replace(/{([^{}]*)}/g,
       function (a, b) {
           var r = o[b];
           return typeof r === 'string' ? r : a;
       }
   );
};

function mostraRegulamento(id) {
	window.open('regulamento.html','Regulamento','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=650,height=450');
}
function mostraItens() {
a=document.getElementById('itens').style.display ;
  if (a=='none') estado='block';  else estado='none'; 
  estado=document.getElementById('itens').style.display=estado;
}
// funo genrica para mostrar contedo em container
// qual= URL
// titulo= Titulo da pgina
// tamanho= Largura do container

function buscaPagina(qual,titulo,tamanho){
	//mensagem('');	
	
	var handlePagina = {
		success:function(args){
			//alert(args.responseText);
			var thisX = (parseInt((YAHOO.util.Dom.getClientWidth()- tamanho)/2));
			//thisY=50;
			//xy:[thisX,thisY],			
			try { YAHOO.morpheus.pucpr.panel.destroy(); } catch(e){}

			// Mtodos para Fixar o Tamanho da Modal e centralizando-a
			var fixResize = function() 
			{ 
				var thisX = ( parseInt((YAHOO.util.Dom.getClientWidth()- 730)/2) );
				if (thisX<0) thisX=0;
				YAHOO.morpheus.pucpr.panel.cfg.setProperty('x', thisX); 
			}
			// seta o mtodo como Evento ouvinte 
			YAHOO.util.Event.addListener(window, 'resize', fixResize);
			// pega a coordenada X (horizontal) da janela
			//var thisX = (parseInt((YAHOO.util.Dom.getClientWidth()- 730)/2));

			YAHOO.morpheus.pucpr.panel = new YAHOO.widget.Panel("panel", 
				{
					xy: [thisX,10],
					width:tamanho+"px", 
					visible:false, 
					modal:true, 
					draggable:false, 
					close:true,
					zindex:40,
					constraintoviewport : false,
					fixedcenter:false 
				} 
			);
			
			YAHOO.morpheus.pucpr.panel.setHeader(titulo);
			YAHOO.morpheus.pucpr.panel.setBody(args.responseText);			
			YAHOO.morpheus.pucpr.panel.render("container");			
			YAHOO.morpheus.pucpr.panel.show();
			window.scroll(0,0);
			
			// bug z-index yahoo
			try
			{
				document.getElementById('panel_mask').style.zIndex = 2; 
				document.getElementById('panel').style.zIndex = 1000;
				document.getElementById('panel_c').style.zIndex = 5;
			}
			catch(e){}


		},
		failure:function(args){
			alert(args.responseText);
		}
	}
	YAHOO.util.Connect.asyncRequest('GET',qual , handlePagina);

}
// fecha container
function fechaModal(){
	try { YAHOO.morpheus.pucpr.panel.destroy(); } catch(e){}
}
function criaXMLHttp() {
	if (typeof XMLHttpRequest != "undefined") 
		return new XMLHttpRequest();
	else if (typeof ActiveXObject != "undefined") { // suporte ao IE 7
		var aVersoes = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0",
		"MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0",
		"MSXML2.XMLHttp", "Microsoft.XMLHttp"
		];
		for (var i = 0; i < aVersoes.length; i++){
			try{
				return new ActiveXObject(aVersoes[i]);
			}catch (e) {}
		}
	}
	// se nenhum objeto xmlhttp for suportado
	throw new Error("Seu browser nao suporta AJAX");
}

/*Mala Direta*/
function cadastroNewsletter(id_compl){
	
	var form = document.getElementById('formCadastro' + id_compl);
	var url = self.location.href;
	var params = "nome=" + encodeURI(form.nome.value) + "&email=" + encodeURI(form.email.value) + "&maladireta=" + encodeURI(form.maladireta.value);

	if(form.cidade != undefined)
		params += "&cidade=" + encodeURI(form.cidade.value);
	   
	if(form.estado != undefined)
		params += "&estado=" + encodeURI(form.estado.value);

	if(form.nome.value != '' && form.email.value != ''){
	
		oXMLHttp = criaXMLHttp();
		oXMLHttp.onreadystatechange = function (){
			
			if(oXMLHttp.readyState == 4 && oXMLHttp.status == 200){
		
				alert(oXMLHttp.responseText);
				form.reset();
				form.button.disabled = false;
				
			}
			
		}
		oXMLHttp.open("POST", url, true);
		
		oXMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		oXMLHttp.setRequestHeader("Content-length", params.length);
		oXMLHttp.setRequestHeader("Connection", "close");
		
		oXMLHttp.send(params);
		form.button.disabled = true;
	
	}
	else{
	
		alert('Campo(s) obrigatrio(s) vazio(s)!');
	
	}

}

function checkMail(field){

	var str = field.value;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	
	
	if (!filter.test(str)){
		alert("Digite um e-mail valido!");
		field.value = "";
		field.focus();
	}
	
}


/*Mdulo Enquete*/
function verificaRespostaRadio(form){
	
	var respostaSelecionada;
	
	for (cont = 0; cont < form.enquete.length; cont++){		
		if (form.enquete[cont].checked)
			respostaSelecionada = form.enquete[cont].value; 
	}

	if (!respostaSelecionada){			
		alert("Uma resposta precisa ser selecionada!");
		return (0);
	}
	return (respostaSelecionada);
}

/*Mdulo Enquete*/
function resultadoEnquete(id_compl, conteudoPai){
	
	var form = document.getElementById('formEnquete' + id_compl);
	var url = self.location.href;
	var respostaSelecionada = verificaRespostaRadio(form);
	var params = "respostaEnquete=" + encodeURI(respostaSelecionada) + "&pergunta=" + encodeURI(conteudoPai);
	
	if(respostaSelecionada != 0){
		oXMLHttp = criaXMLHttp();
		oXMLHttp.onreadystatechange = function (){
			if(oXMLHttp.readyState == 4 && oXMLHttp.status == 200){
				document.getElementById('content_' + id_compl).innerHTML = oXMLHttp.responseText;
				form.reset();
				form.button.disabled = false;				
			}
		}
		oXMLHttp.open("POST", url, true);			
		oXMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		oXMLHttp.setRequestHeader("Content-length", params.length);
		oXMLHttp.setRequestHeader("Connection", "close");
		oXMLHttp.send(params);
		form.button.disabled = true;
	}		
}

/* Funo para site com vrias lnguas */
function mudarIdioma(idioma){
	
	//Pega a url da pgina
	var url = self.location.href;
	
	//Explode a url separando por barra e gera um array
	var array_url = url.split('/');
	var paginaAtual;		
	
	var array_idiomas = new Array();
	array_idiomas[0] = '_english';
	
	//Pega o nome da pgina
	for(i=0;i<array_url.length;i++)
		paginaAtual = array_url[i];
	
	if(!idioma)
		idioma = '';		
	
	for(i=0;i<array_idiomas.length;i++)
		paginaAtual = paginaAtual.replace(array_idiomas[i],'');		
	
	array_pagina = paginaAtual.split('.php');		
	
	window.location = array_pagina[0] + idioma + '.php';

}	
	
/*EVENTOS*/
var sPath = window.location.pathname;
var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
sPage = self.location.href.replace('#', "");
function retornarPagina(){
	document.getElementById('conteudo').style.display='block';
	document.getElementById('conteudo2').style.display='none';
}
function mostraTodosEventos(){
	var handleAtualiza = {
		success:function(args){
			document.getElementById('conteudo2').innerHTML=args.responseText;
		},
		failure:function(args){
			alert(args.responseText);
		}
	}
	document.getElementById('conteudo2').innerHTML='<div align="center"><br><br><br><br><b>Aguarde, carregando resultados...</b><br><br><br><br><br></div>';
	document.getElementById('conteudo2').style.display='block';
	document.getElementById('conteudo').style.display='none';
	YAHOO.util.Connect.asyncRequest('GET', sPage+'?datas=todos', handleAtualiza);
}
function mostraEvento(conteudo){	
	buscaPagina(sPage+'?datas='+conteudo,'Detalhes do Evento',600);
}

var iniCalendario=function(id) {
		
	var Dom = YAHOO.util.Dom,
		Event = YAHOO.util.Event,
		over_cal = false,
		cur_field = "",
		idCal = id,
		datesSelected = "";
	
	var buscaEventos = function(datasSelecionada){
		var idEventos = idCal.replace('cal_','listEvents_');
		var handleBuscaData = {
			success:function(args){
				document.getElementById(idEventos).innerHTML = args.responseText;
			},
			failure:function(args){
				alert(args.responseText);
			}
		}
		YAHOO.util.Connect.asyncRequest('GET', sPage + '?datas=' + datasSelecionada, handleBuscaData);
	}
		
	var rowSelect = function(type,args,obj) {
        // Deselect all items 
        this.deselectAll();
        // Remove the selected class 
        Dom.removeClass(this.cells, 'selected');
		var dates = args[0]; 
        var date = dates[0];
        var ano = date[0], mes = date[1], dia = date[2];
		diaFinal=dia+0;
		selecionados=dia + "/" + mes + "/" + ano +"-"+diaFinal + "/" + mes + "/" + ano;;
		cal1.cfg.setProperty("selected",selecionados,false);
        cal1.render(); 
		//Busca eventos relacionados as datas selecionadas
		var datesSelected = mes + "/" + dia+ "/" + ano;
		buscaEventos(datesSelected);
		
    }

	var inicioEventos =function(){
        var currentTime = new Date(), ano = currentTime.getFullYear(), mes = currentTime.getMonth() + 1, dia = currentTime.getDate();
		diaFinal=dia+0;
		selecionados=dia + "/" + mes + "/" + ano +"-"+diaFinal + "/" + mes + "/" + ano;;
		cal1.cfg.setProperty("selected",selecionados,false);
        cal1.render(); 
		//Busca eventos relacionados as datas selecionadas
		var datesSelected = mes + "/" + dia+ "/" + ano;
		buscaEventos(datesSelected);
	}
	YAHOO.util.Event.onDOMReady(inicioEventos);
	
	var init = function() {
		cal1 = new YAHOO.widget.Calendar("cal1",idCal,
											{LOCALE_WEEKDAYS:"short", 
											START_WEEKDAY: 0,
            								MULTI_SELECT: true
											});
		
		cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "/");
		cal1.cfg.setProperty("MDY_DAY_POSITION", 1);
		cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
		cal1.cfg.setProperty("MDY_YEAR_POSITION", 3);
		cal1.cfg.setProperty("MD_DAY_POSITION", 1);
		cal1.cfg.setProperty("MD_MONTH_POSITION", 2);
		cal1.cfg.setProperty("MY_LABEL_MONTH_SUFFIX", " de ");
		cal1.cfg.setProperty("MONTHS_SHORT",   ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"]);
		cal1.cfg.setProperty("MONTHS_LONG",    ["Janeiro", "Fevereiro", "Marco", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]);
		cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["D", "S", "T", "Q", "Q", "S", "S"]);
		cal1.cfg.setProperty("WEEKDAYS_SHORT", ["D", "S", "T", "Q", "Q", "S", "S"]);
		cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"]);
		cal1.cfg.setProperty("WEEKDAYS_LONG",  ["Domingo", "Segunda", "Terca", "Quarta", "Quinta", "Sexta", "Sabado"]);		
		
		//cal1.changePageEvent.subscribe(changeMonth, cal1, true);	
		cal1.selectEvent.subscribe(rowSelect, cal1, true);
	
		showCal();
		
		
	}
	
	var showCal = function(ev) {
		
		cal1.cfg.setProperty("selected", "");
		cal1.cfg.setProperty("pagedate", new Date(), true);
		cal1.render();
		Dom.setStyle(idCal, "display", "block");	
		
	}	
	
	init();	
	
	
}

//Nuvem de links
var buscaNuvem=function(busca) {
	document.getElementById('buscaSite1').checked=true;
	document.getElementById('buscaSitetxt').value='';
	document.getElementById('buscaQuery').value=busca;
	document.getElementById('paginaBusca').value=1;
	document.formBusca.submit();
}

//COMBO DOS CURSOS
function setCampus(campus){
	
	var url = '../recursos/includes/comboGraduacao.php?campus=' + campus;	
	
	oXMLHttp = criaXMLHttp();
	
	oXMLHttp.onreadystatechange = function (){	
		
		if(oXMLHttp.readyState == 4 && oXMLHttp.status == 200){
			document.getElementById('slCursos').length = 0;
			eval(oXMLHttp.responseText);		
		}
		
	}
			
	oXMLHttp.open("GET", url, true);
	oXMLHttp.send(null);
}
function getCurso(urlcurso){
	
	document.getElementById('slCampus').length = 0;
	document.location.href = urlcurso;	
	
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function validaTeclaDigitadaNumeros(event)
{
   tecla = event.keyCode;

   /*
      Possiveis teclas
      0-9
      codigos asc: 48-57
   */

   // valida a tecla digitada e trava se nao for a desejada
   if(!(tecla >= 48 && tecla <= 57))
   {
      event.keyCode = 0;
      event.returnCode = false;
   }
}






