/*
 * '[======================================================================================
 * '[= Nome : atualizarDataHora '[= Descrição : Atualiza a data e hora na página
 * '[= Entrada : id - id da área no html que receberá a data e hora '[= tempo -
 * tempo de atualização '[= formato - código que identifica o formato de retorno
 * '[= idioma - em que idioma retorna a data '[= flag_retorno - se é para
 * retornar na chamada no método '[= '[= Saida : String data e hora formatados
 * '[= Exemplo : Este é o método que deve ser chamado. Com um exemplo html
 * abaixo onde a data é obtida no carregamento '[= da página e depois a cada
 * 1000 milisegundos. '[= <body onload='atualizarDataHora("datahora", 1000)'>
 * '[= <div id="datahora"></div> '[= </body> '[= Outro exemplo: '[=
 * <p class="data" id="idDataHora"><script type="text/javascript">
 * atualizarDataHora("idDataHora", 1000, false); </script></p> '[= OBS :
 * '[======================================================================================
 */

function construirArray(qtdElementos){
	this.length = qtdElementos
}

    var	arrayDia = new construirArray(7);
	arrayDia[0] = "Domingo";
	arrayDia[1] = "Segunda-Feira";
	arrayDia[2] = "Ter&ccedil;a-Feira";
	arrayDia[3] = "Quarta-Feira";
	arrayDia[4] = "Quinta-Feira";
	arrayDia[5] = "Sexta-Feira";
	arrayDia[6] = "S&aacute;bado";

	var arrayMes = new construirArray(12);
	arrayMes[0] = "Janeiro";
	arrayMes[1] = "Fevereiro";
	arrayMes[2] = "Mar&ccedil;o";		
	arrayMes[3] = "Abril";
	arrayMes[4] = "Maio";
	arrayMes[5] = "Junho";
	arrayMes[6] = "Julho";
	arrayMes[7] = "Agosto";
	arrayMes[8] = "Setembro";
	arrayMes[9] = "Outubro";
	arrayMes[10] = "Novembro";
	arrayMes[11] = "Dezembro";

function formatarRetornoDataHora(diaSemana, dia, mes, ano, hora, minuto, segundo, formato, idioma){
	retorno = "";
	// Crie outras condições por idioma e, dentro de cada idioma trate os
	// formatos.
	if(idioma=="pt_BR"){
		if (formato==0){
			retorno += "&nbsp; "+ hora + ":" + minuto + ":" + segundo + " ";
		} else if (formato==1){
			retorno += "&nbsp;&nbsp;" + diaSemana + ", " + dia + " de " + mes + " de " + ano;
		}
	}
	return retorno;
}

function getMesExtenso(mes){
	return this.arrayMes[mes];
}


function getDiaExtenso(dia){
	return this.arrayDia[dia];
}


function atualizarDataHora(id, tempo, formato, idioma, flag_retorno){
	dataAtual = new Date();
	dia = dataAtual.getDate();
	diaSemana = getDiaExtenso(dataAtual.getDay());
	mes = getMesExtenso(dataAtual.getMonth());
	ano = dataAtual.getFullYear();
    hora = dataAtual.getHours();
    minuto = dataAtual.getMinutes();
    segundo = dataAtual.getSeconds();

    retorno = formatarRetornoDataHora(diaSemana, dia, mes, ano, hora, minuto, segundo, formato, idioma);
    
	// Aqui é impresso a data e hora no ID passado como parametro
    if (id!=null){
    	document.getElementById(id).innerHTML = retorno;
    }
    
    // Ou retorna ou chama novamente por tempo
    if (flag_retorno){
    	return retorno;
    }else {
    	setTimeout('atualizarDataHora("'+id+'",'+tempo+','+formato+',"'+idioma+'",'+flag_retorno+')', tempo);
    }
}