if (document.implementation) {
	if (document.implementation.hasFeature('Events','2.0')) {
		var DOM2 = true;
	} else {
	var DOM1 = true;
	var elmObj = null;
	}
} else {
	if (document.getElementById) {
		var DOM1 = true;
		var elmObj = null;
	}
}

	var TitularDiario = top.document.getElementById("TDDR");
	var controlDiario = top.document.getElementById("IDDD");
	if (TitularDiario) {
	    TitularDiario.innerHTML = '<h1>Diário do Dia</h1><a id="vVB"></a>';
	    
	}

var empieza = 0;
var dFeriados = new Array();
/* Feriados Nacionais */
    dFeriados["0101"] = new coment(" '(Ano Novo) Feriado Nacional' ");
    dFeriados["0422"] = new coment(" '(Sexta-Feira Santa)' Feriado Nacional");    
    dFeriados["0425"] = new coment(" '(Dia da Liberdade)' Feriado Nacional");
    dFeriados["0501"] = new coment(" '(Dia do Trabalhador) Feriado Nacional' ");
    dFeriados["0623"] = new coment(" '(Corpo de Deus) Feriado Nacional' ");
    dFeriados["0610"] = new coment(" '(Dia de Portugal) Feriado Nacional' ");
    dFeriados["0815"] = new coment(" '(Assunção) Feriado Nacional' ");
    dFeriados["1005"] = new coment(" '(Implantação da República) Feriado Nacional' ");
    dFeriados["1101"] = new coment(" '(Todos os Santos) Feriado Nacional' ");
    dFeriados["1201"] = new coment(" '(Restauração da Independência) Feriado Nacional' ");
    dFeriados["1208"] = new coment(" '(Imaculada Conceição) Feriado Nacional' ");
    dFeriados["1225"] = new coment(" '(Natal) Feriado Nacional' ");
var diainhabil = new Array();
    diainhabil["20060106"] = new coment(" 'Não disponível' ");
var meses 		= new Array( "Jan","Feb","Mar", "Apr","May","Jun", "Jul","Aug","Sep","Oct", "Nov", "Dec");
var meseseco 		= new Array( "ene","fev","mar", "abr","mai","jun", "jul","ago","set","out", "nov", "dez");
var mesesnumero 	= new Array( "01","02","03","04","05","06","07","08","09","10","11","12");
var mesestexto 	= new Array( "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" );
var aniobis 		= new Array(31,29,31, 30,31,30, 31,31,30, 31,30,31);
var anionobis 		= new Array(31,28,31, 30,31,30, 31,31,30, 31,30,31);
var nombredia 		= new Array("D","S","T","Q","Q","S","S");
var nombredialargo 	= new Array("Primeira-feira","Segunda-feira","Terça-feira","Quarta-feira","Quinta-feira","Sexta-feira","Sábado");
var ActualFecha 	= new Date();
var Actualmes 		= ActualFecha.getMonth();
var Actualanio  	= ActualFecha.getFullYear();
var Actualdia   	= ActualFecha.getDate()
var quefecha 		= elegirfecha(true);
comparadia = ((Actualdia < 10) || (Actualdia < 10)) ? Actualdia:  Actualdia;
comparames = ((Actualmes < 10) || (Actualmes < 10)) ? Actualmes+1: Actualmes+1;
if (quefecha.year)    { Actualanio =  parseInt(quefecha.year);}
if (quefecha.month)   { Actualmes  = (parseInt(quefecha.month)%12);}
function bisiestos(year){return ((0 == (year%4)) && ((0 != (year%100)) || (0==(year%400))));}
function coment(name) {this.name = name;}
function SiFechas(fechas){
 Year  = fechas.getFullYear();
 Month = fechas.getMonth()+1;
 Day   = fechas.getDate();
 Month = ((Month < 10) || (Month < 10)) ? "0"+Month: Month;
 Day   = ((Day < 10) || (Day < 10)) ? "0"+Day: Day;
 dStr   = Year+""+Month+""+Day;
 dStrMesDia   = Month+""+Day;
 
 if(dFeriados[dStrMesDia]) {
 	var comentario = dFeriados[dStrMesDia].name;return comentario;
 }
}

function DiasInhabiles(quefecha){
  if(diainhabil[quefecha]){return true;}
  return false;
}


function FinSemana(anio,mes,dia){
  var fecha = new Date(dia+" "+meses[mes-1]+" "+anio);
  return ((0==fecha.getDay())||( 6 == fecha.getDay()  ));
}
function pinta(target,mianio,mimes,boedia,hasta,desde){
// function pinta(target,mianio,mimes,deldia,aldia,semana){
  var Titular = "";
  var i = 0;
  var calcula 	 	= new Date(mianio,mimes, 1, 0,0,0,0);
  var diasdelmes 	= bisiestos(mianio)?aniobis[mimes]:anionobis[mimes];
  var diasdelmesanterior= bisiestos(mianio)?aniobis[mimes-1]:anionobis[mimes-1];
  var primerdiames 	= calcula.getDay();
  var celda_class  	= "dr";
  var href_ini  	= "";
  var href_fin 	= "";
  var diasantes    	= ((7-empieza+primerdiames)%7);
  var elmes    	= mesesnumero[mimes]
  
  var dia0 		= ActualFecha.getDate(); dia0 = ((dia0 < 10) || (dia0 < 10)) ? "0"+dia0: dia0;
  var diadehoy 	= ActualFecha.getFullYear()+""+mesesnumero[ActualFecha.getMonth()]+""+dia0;
  var numsumario=1;

  var eldia = i-diasantes;
	 boedia = ((boedia < 10) || (boedia < 10)) ? "0"+boedia: boedia;
  target.write("\n<table class=dMes>");
  target.write("\n<tr class=nDia>");
  for (b=0; b < 7; b++){
  	target.write("<th>",nombredia[((b+empieza)%7)],"</th>");
  }
  for (i=i;eldia<diasdelmes;i++){
  	eldia++ ;
  	eldia = ((eldia < 10) || (eldia < 10)) ? "0"+eldia: eldia;
  }
  if (!diasantes == 0){
  	target.write("</tr>\n<tr>");
  }
  for (i=0;i<(diasantes);i++){
  	target.write("<td class='v'>&nbsp;</td>");
  }
  var eldia = i-diasantes;


  for (i=i;eldia<diasdelmes;i++){
  	eldia++;
  	eldia = ((eldia < 10) || (eldia < 10)) ? "0"+eldia: eldia;
  	drlink 	= "DR"+mianio+""+elmes+""+eldia;
  	Titular = " "+nombredialargo[i%7]+",\n  "+ eldia +" de "+ mesestexto[mimes]+" de "+ mianio + " ";
  	comparadesde = mianio+""+elmes+""+eldia;
  	comparahasta = mianio+""+elmes+""+boedia;
  	comparahastaDia = Actualanio+""+mesesnumero[mimes]+""+eldia;
  	if (0 == (i%7)){
  		target.write("</tr>\n<tr>");
  	}
  	if (SiFechas(new Date(mianio,mimes,eldia)) ) { 
  		celda_class = "fr";
  		href_ini = "<b title="+SiFechas(new Date(mianio,mimes,eldia))+">";
  		href_fin = "</b>";
  	} else  if ( FinSemana(mianio,elmes,eldia) ) {
  		celda_class = "df";
  		href_ini = "<b title='"+ Titular + "' >";
  		href_fin = "</b>";
  	} else if ( (comparadesde > hasta ) || (comparahastaDia < desde ) ){
  		celda_class = "nd";
  		href_ini = "<b title=' "+ Titular + "' >";
 		ref_fin = "</b>";
  	} else  if ( (comparadesde > desde ) || (comparahasta < hasta ) ){
  		celda_class = "dr";
  		href_ini = "<a title='"+ Titular + "' href=\"javascript:verSUM('"+drlink+"')\" >";
  		ref_fin = "</a>";
  	}  
  	
  	
  	if (comparahastaDia == diadehoy ){celda_class = celda_class+" H";}
  	
  	target.write("<td class=\""+celda_class+"\">"+href_ini+" "+ eldia +" "+ href_fin+"</td>");
  }
  while (0 != (i%7)) {
  	target.write("<td class='v'>&nbsp;</td>");i++;
  }
  target.write("</tr>");
  target.write("</table>\n");
}

function drawCalendar(salida,anio,mes,boedia,hasta,desde){
  var mimes   = ActualFecha.getMonth();
  var mianio  = ActualFecha.getFullYear();
  var target = document;
   if(arguments.length >= 1) { target = salida; }
   if(arguments.length >= 2) { mianio = anio; }
   if(arguments.length >= 3) { mimes  = mes; }
  {pinta(target,mianio,mimes,boedia,hasta,desde);}
}


function elegirfecha(caseBool){
  var casefree = ((true == caseBool) || (caseBool >= 1)) ? true: false;
  var args  = new Object();
  var query = location.search.substring(1);
  var pairs = query.split("&");
  for(var i = 0; i< pairs.length; i++){
    pairs[i]= unescape(pairs[i]);
    var pos=pairs[i].indexOf('=');
    if(-1 == pos) continue;
    var argname;
    if(true != casefree) {argname = pairs[i].substring(0,pos);}
    else {argname = pairs[i].substring(0,pos).toLowerCase();}
    var value = pairs[i].substring(pos+1);
    args[argname] = value;

  }
  return args;
}

// 2007,10,29,20071029, 20070903
function calendario(boeanio,boemes,boedia,hasta,desde){
	var AnioActual     = boeanio;
	var AnioAnterior   = boeanio;
	var MesActual   = boemes-1;
	var MesAnterior = boemes-2;
	if(-1 == MesAnterior){
		MesAnterior = "11";
		AnioAnterior = boeanio-1;
	}
	document.write("<table class=tCal>");
		document.write("<tr><td class=Tmes>"+ mesestexto [MesActual] +" "+ AnioActual+"</td></tr>\n");
		document.write("<tr><td class=Dmes>");
			drawCalendar(document, AnioActual,MesActual,boedia,hasta,desde);
		document.write("</td></tr>\n");
		document.write("<tr><td class=s>&nbsp;</td></tr>\n");
		document.write("<tr><td class=Tmes>"+ mesestexto [MesAnterior] +" "+ AnioAnterior+"</td></tr>\n");
		document.write("<tr><td class=Dmes>");
			drawCalendar(document, AnioAnterior,MesAnterior,boedia,hasta,desde);
		document.write("</td></tr>\n");
	document.write("</table>");

}

function verSUMDRE(sumario)
{
  var ancho=600; var alto=400;
  var posX= (screen.width-ancho)/2;
  var posY= (screen.height-(alto+70))/2;
  props= "toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=yes,resizable=1,copyhistory=0,width="+ancho+",height="+alto+",left=" +posX+ ",top=" +posY;
  nuevaventana = window.open(sumario,'JusNet_Diário_do_Dia',props);
  	if (window.opener && !window.opener.closed){ 
  		window.opener.document.location = sumario;
  	}
  	nuevaventana.focus();

  
}
function verDRE(norma)
{
  var ancho=600; var alto=400;
  var posX= (screen.width-ancho)/2;
  var posY= (screen.height-(alto+70))/2;
  props= "toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=yes,resizable=1,copyhistory=0,width="+ancho+",height="+alto+",left=" +posX+ ",top=" +posY;
  nuevaventana = window.open(norma,'JusNet_Diário_do_Dia',props);
  	if (window.opener && !window.opener.closed){ 
  		window.opener.document.location = norma;
  	}
  	nuevaventana.focus();
}

function verSUM(sum)
{
	if (document.getElementById(sum)){
		var verDR = document.getElementById(sum);
		verDR.className = "TitDRE dop" 
		verDR.nextSibling.className = 'op';
		irA(sum);
		var ancla = sum;
		 location = "#"+ancla;
		window.scrollBy(0, -20);
	}
}
function irA(node){ 
	var bElegido = document.getElementById(node);
	var dTxT    = document.getElementById('TxtDDR');
  	var refTags = dTxT.getElementsByTagName('dt');

	var estiloActual = bElegido.className;

	if (typeof refTags != "undefined" ) {
		for (var i=0; i < refTags.length; i++) {
			RecorreC(refTags, estiloActual )
		}
	bElegido.className = (estiloActual=='TitDRE dop') ? 'TitDRE dop' : 'TitDRE dcl';
	bElegido.nextSibling.className = (estiloActual=='cl') ? 'op' : 'op';
	}
	window.scrollBy(0, -2000);

}

function RecorreC( refTags, refTagsActual ) {
	if (refTagsActual=="TitDRE dop") {
		for (var i = 0; i < refTags.length; ++i) {
			if (	refTags[i].className=='TitDRE dop'){
				refTags[i].className="TitDRE dcl";
				refTags[i].nextSibling.className = 'cl';
			}
		}
	} 
	if (refTagsActual=="TitDRE dcl") {
		for (var i = 0; i < refTags.length; ++i) {
			if (	refTags[i].className=='TitDRE dop'){
				refTags[i].className="TitDRE dcl";
				refTags[i].nextSibling.className = 'cl';
			}
		}
	}
}

/*****************************************************/

/*Funcion que se ejecuta nada mas cargar el documento*/


function Control(){
	if (document.getElementById('TxtDDR') ){ 
		Iniciar('TxtDDR','dt');
		if (controlDiario){ 
			var sumario = controlDiario.innerHTML;
//			alert(sumario);
			if ((sumario !== '') || (sumario != '')) {
				verSUM(sumario);
			}		
		}

	}
}
function Iniciar(menuId,tipo) {		
	if (!DOM1 && !DOM2) {return null;}
	var Menu = document.getElementById(menuId);		
	var Submenues = Menu.getElementsByTagName(tipo);
	var anclas = Menu.getElementsByTagName('a');
	for (var i=0; i < anclas.length; i++) {
		if (DOM2) {
			anclas[i].addEventListener('click', OpenDLe, 0);	
		}
		if (DOM1) {
			anclas[i]['onclick']=new Function('OpenDLe(this);');
		}
	}
	

	for (var i=0; i < Submenues.length; i++) {
	if (i != '0') {
		Submenues[i].className = "TitDRE dcl" 
		Submenues[i].nextSibling.className = 'cl';
	}
		Menux = Submenues[i];
		while (Menux.nodeName=="#text"){
			Menux = Menux.nextSibling;
		}
		if (DOM2) {
				Menux.addEventListener('click', OpenDL, 0);	
		}
		if (DOM1) {
				Submenues[i]['onclick']=new Function('OpenDL(this);');
		}
	}
	
	
}

function OpenDL(E) {
	var elmLI = (DOM1) ? E : E.currentTarget;
	if (DOM1) {
		  if (elmObj == null) elmObj = elmLI;
		  if (elmObj.parentNode == elmLI) return elmObj = elmLI;
	}
	if (DOM2) {
		if (elmLI.nodeName!='DT') {
			return null;
		}
	}
	var estiloActual = elmLI.nextSibling.className;
			if (elmLI.nextSibling.nodeName=='DD') {
				estiloActual = elmLI.nextSibling.className;

				if (estiloActual=='cl'){
					elmLI.className= elmLI.className.replace(/ dcl/, "");
					elmLI.className +=' dop';
				}
				else if (estiloActual=='op'){
					elmLI.className= elmLI.className.replace(/ dop/, "");
					elmLI.className +=' dcl';
				} else {
					elmLI.className +=' dcl';
				}
				
				elmLI.nextSibling.className = (estiloActual=='cl') ? 'op' : 'cl';
			} 

	if (DOM1) elmObj = elmLI;
	if (DOM2) E.stopPropagation();
}

	
function OpenDLe(E) {

	var elmLI = (DOM1) ? E : E.currentTarget;
	if (DOM1) {
		  if (elmObj == null) elmObj = elmLI;
		  if (elmObj.parentNode == elmLI) return elmObj = elmLI;
	}
	if (DOM2) {
		if (elmLI.nodeName!='A') {
			return null;
		}
	}
	controlDiario = top.document.getElementById("IDDD");

	if (elmLI.className){
		ponVuelve = "no";
	} else {
		ponVuelve = "si";
	}
//	alert(ponVuelve);
	var conservarID = elmLI.parentNode.parentNode.previousSibling.id;
	if (ponVuelve == "si") {
		if (TitularDiario) {
		    TitularDiario.innerHTML = '<h1>Diário do Dia</h1><a id="vVI" onclick="volveraIndice(\''+conservarID+'\')">Voltar ao Índice</a>';
		}
	}
		controlDiario.innerHTML = conservarID;
	if (DOM1) elmObj = elmLI;
	if (DOM2) E.stopPropagation();
}

