Calendário dinâmico

Estou precisando do código de geração de calendário dinâmico.
Aquele que qdo clicamos no calendário pequenininho abre o calendário para escolhermos a data desejada.

Desde já agradeço a ajuda!!! :lol:

<!-- insira o seguinte código de javascript em sua página. -->

<script language=‘Javascript’>

// construindo o calendário
function popdate(obj,div,tam,ddd)
{
if (ddd)
{
day = “”
mmonth = “”
ano = “”
c = 1
char = “”
for (s=0;s<parseInt(ddd.length);s++)
{
char = ddd.substr(s,1)
if (char == “/”)
{
c++;
s++;
char = ddd.substr(s,1);
}
if (c==1) day += char
if (c==2) mmonth += char
if (c==3) ano += char
}
ddd = mmonth + “/” + day + “/” + ano
}

if(!ddd) {today = new Date()} else {today = new Date(ddd)}
date_Form = eval (obj)
if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

ano = today.getFullYear();
mmonth = today.getMonth ();
day = today.toString ().substr (8,2)

umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
days_Feb = (!(ano % 4) ? 29 : 28)
days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

if ((mmonth &lt; 0) || (mmonth &gt; 11))  alert(mmonth)
if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
txt  = "&lt;table bgcolor='#efefff' style='border:solid #330099; border-width:2' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'&gt;"
txt += "&lt;tr bgcolor='#FFFFFF'&gt;&lt;td colspan='7' align='center'&gt;&lt;table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'&gt;&lt;tr&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'>&lt;&lt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'>&lt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'>&gt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;<a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'>&gt;&gt;</a>&lt;/td&gt;"
txt += "&lt;td width=20% align=right&gt;<a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'><b>X</b></a>&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr&gt;&lt;td colspan='7' align='right' bgcolor='#ccccff' class='mes'&gt;<a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'>" + ano.toString() + "</a>"
txt += " <a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'>" + umonth[mmonth] + "</a> &lt;div id='popd' style='position:absolute'&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr bgcolor='#330099'&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Dom</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Seg</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Ter</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Qua</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Qui</b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Sex<b>&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;<b>Sab</b>&lt;/td&gt;&lt;/tr&gt;"
today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
diainicio = today1.getDay () + 1;
week = d = 1
start = false;

for (n=1;n&lt;= 42;n++) 
{
    if (week == 1)  txt += "&lt;tr bgcolor='#efefff' align=center&gt;"
    if (week==diainicio) {start = true}
    if (d &gt; days[mmonth]) {start=false}
    if (start) 
    {
        dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
        day_dat   = dat.toString().substr(0,10)
        day_today  = date_Form.toString().substr(0,10)
        year_dat  = dat.getFullYear ()
        year_today = date_Form.getFullYear ()
        colorcell = ((day_dat == day_today) &amp;&amp; (year_dat == year_today) ? " bgcolor='#FFCC00' " : "" )
        txt += "&lt;td"+colorcell+" align=center&gt;<a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'>"+ d.toString() + "</a>&lt;/td&gt;"
        d ++ 
    } 
    else 
    { 
        txt += "&lt;td class='data' align=center&gt; &lt;/td&gt;"
    }
    week ++
    if (week == 8) 
    { 
        week = 1; txt += "&lt;/tr&gt;"} 
    }
    txt += "&lt;/table&gt;"
    div2 = eval (div)
    div2.innerHTML = txt 

}

// função para exibir a janela com os meses
function pop_month(obj, div, tam, ano)
{
txt = “<table bgcolor=’#CCCCFF’ border=‘0’ width=80>”
for (n = 0; n < 12; n++) { txt += “<tr><td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(“01/” + (n+1).toString() + “/” + ano.toString())+"’)>" + umonth[n] +"</td></tr>" }
txt += “</table>”
popd.innerHTML = txt
}

// função para exibir a janela com os anos
function pop_year(obj, div, tam, umonth)
{
txt = “<table bgcolor=’#CCCCFF’ border=‘0’ width=160>”
l = 1
for (n=1991; n<2012; n++)
{ if (l == 1) txt += “<tr>”
txt += “<td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(umonth.toString () +"/01/" + n) +"’)>" + n + “</td>”
l++
if (l == 4)
{txt += “</tr>”; l = 1 }
}
txt += “</tr></table>”
popd.innerHTML = txt
}

// função para fechar o calendário
function force_close(div)
{ div2 = eval (div); div2.innerHTML = ‘’}

// função para fechar o calendário e setar a data no campo de data associado
function block(data, obj, div)
{
force_close (div)
obj2 = eval(obj)
obj2.value = data
}

</script>

<!–
o css abaixo é apenas para dar uma aparência melhor para o calendário. vc pode mudá-lo a sua maneira
insira o código abaixo entre as tags <HEAD> </HEAD> de sua página
–>
<style>
.dia {font-family: helvetica, arial; font-size: 8pt; color: #FFFFFF}
.data {font-family: helvetica, arial; font-size: 8pt; text-decoration:none; color:#191970}
.mes {font-family: helvetica, arial; font-size: 8pt}
.Cabecalho_Calendario {font-family: helvetica, arial; font-size: 10pt; color: #000000; text-decoration:none; font-weight:bold}
</style>

<!-- insira o código abaixo dentro das tags de sua página -->
<form name=‘form1’>

<!-- data 1 -->


<!–
na span abaixo aparece o primeiro calendario.
vc pode colocar a span abaixo no lugar onde quiser em sua
pagina inclusive dentro de uma table para facilitar o
posicionamento. Mas lembre-se que quanto mais perto a span
estiver do campo de data a ela associada mais fácil será para
o usuario associar.
–>

<span id=“pop1” style=“position:absolute”></span>




<!-- data 2 -->


<!-- na span abaixo aparece o segundo calendario -->
<span id=“pop2” style=“position:absolute”></span>

<!–
caso queira inserir outros campos de data em sua página
certifique-se de substituir corretamente os nomes dos
objetos em javascript.
EX: o objeto input text será o data3 - ou como vc quiser
o objeto button será o btnData3 - ou como vc quiser
nas chamadas das funçoes no evento onClick os nomes
deverão referenciar seus respectivos objetos.
–>
</form>

Desculpem esqueço de desativar o HTML sempre!!!

<!-- insira o seguinte código de javascript em sua página. -->

<script language=‘Javascript’>

// construindo o calendário
function popdate(obj,div,tam,ddd)
{
if (ddd)
{
day = “”
mmonth = “”
ano = “”
c = 1
char = “”
for (s=0;s<parseInt(ddd.length);s++)
{
char = ddd.substr(s,1)
if (char == “/”)
{
c++;
s++;
char = ddd.substr(s,1);
}
if (c==1) day += char
if (c==2) mmonth += char
if (c==3) ano += char
}
ddd = mmonth + “/” + day + “/” + ano
}

if(!ddd) {today = new Date()} else {today = new Date(ddd)}
date_Form = eval (obj)
if (date_Form.value == "") { date_Form = new Date()} else {date_Form = new Date(date_Form.value)}

ano = today.getFullYear();
mmonth = today.getMonth ();
day = today.toString ().substr (8,2)

umonth = new Array ("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro")
days_Feb = (!(ano % 4) ? 29 : 28)
days = new Array (31, days_Feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

if ((mmonth &lt; 0) || (mmonth &gt; 11))  alert(mmonth)
if ((mmonth - 1) == -1) {month_prior = 11; year_prior = ano - 1} else {month_prior = mmonth - 1; year_prior = ano}
if ((mmonth + 1) == 12) {month_next  = 0;  year_next  = ano + 1} else {month_next  = mmonth + 1; year_next  = ano}
txt  = "&lt;table bgcolor='#efefff' style='border:solid #330099; border-width:2' cellspacing='0' cellpadding='3' border='0' width='"+tam+"' height='"+tam*1.1 +"'&gt;"
txt += "&lt;tr bgcolor='#FFFFFF'&gt;&lt;td colspan='7' align='center'&gt;&lt;table border='0' cellpadding='0' width='100%' bgcolor='#FFFFFF'&gt;&lt;tr&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano-1).toString())+"') class='Cabecalho_Calendario' title='Ano Anterior'&gt;&lt;&lt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_prior+1).toString() + "/" + year_prior.toString())+"') class='Cabecalho_Calendario' title='Mês Anterior'&gt;&lt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+( "01/" + (month_next+1).toString()  + "/" + year_next.toString())+"') class='Cabecalho_Calendario' title='Próximo Mês'&gt;&gt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=center&gt;&lt;a href=javascript:popdate('"+obj+"','"+div+"','"+tam+"','"+((mmonth+1).toString() +"/01/"+(ano+1).toString())+"') class='Cabecalho_Calendario' title='Próximo Ano'&gt;&gt;&gt;&lt;/a&gt;&lt;/td&gt;"
txt += "&lt;td width=20% align=right&gt;&lt;a href=javascript:force_close('"+div+"') class='Cabecalho_Calendario' title='Fechar Calendário'&gt;&lt;b&gt;X&lt;/b&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr&gt;&lt;td colspan='7' align='right' bgcolor='#ccccff' class='mes'&gt;&lt;a href=javascript:pop_year('"+obj+"','"+div+"','"+tam+"','" + (mmonth+1) + "') class='mes'&gt;" + ano.toString() + "&lt;/a&gt;"
txt += " &lt;a href=javascript:pop_month('"+obj+"','"+div+"','"+tam+"','" + ano + "') class='mes'&gt;" + umonth[mmonth] + "&lt;/a&gt; &lt;div id='popd' style='position:absolute'&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;"
txt += "&lt;tr bgcolor='#330099'&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Dom&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Seg&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Ter&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Qua&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Qui&lt;/b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Sex&lt;b&gt;&lt;/td&gt;&lt;td width='14%' class='dia' align=center&gt;&lt;b&gt;Sab&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;"
today1 = new Date((mmonth+1).toString() +"/01/"+ano.toString());
diainicio = today1.getDay () + 1;
week = d = 1
start = false;

for (n=1;n&lt;= 42;n++) 
{
    if (week == 1)  txt += "&lt;tr bgcolor='#efefff' align=center&gt;"
    if (week==diainicio) {start = true}
    if (d &gt; days[mmonth]) {start=false}
    if (start) 
    {
        dat = new Date((mmonth+1).toString() + "/" + d + "/" + ano.toString())
        day_dat   = dat.toString().substr(0,10)
        day_today  = date_Form.toString().substr(0,10)
        year_dat  = dat.getFullYear ()
        year_today = date_Form.getFullYear ()
        colorcell = ((day_dat == day_today) &amp;&amp; (year_dat == year_today) ? " bgcolor='#FFCC00' " : "" )
        txt += "&lt;td"+colorcell+" align=center&gt;&lt;a href=javascript:block('"+  d + "/" + (mmonth+1).toString() + "/" + ano.toString() +"','"+ obj +"','" + div +"') class='data'&gt;"+ d.toString() + "&lt;/a&gt;&lt;/td&gt;"
        d ++ 
    } 
    else 
    { 
        txt += "&lt;td class='data' align=center&gt; &lt;/td&gt;"
    }
    week ++
    if (week == 8) 
    { 
        week = 1; txt += "&lt;/tr&gt;"} 
    }
    txt += "&lt;/table&gt;"
    div2 = eval (div)
    div2.innerHTML = txt 

}

// função para exibir a janela com os meses
function pop_month(obj, div, tam, ano)
{
txt = “<table bgcolor=’#CCCCFF’ border=‘0’ width=80>”
for (n = 0; n < 12; n++) { txt += “<tr><td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(“01/” + (n+1).toString() + “/” + ano.toString())+"’)>" + umonth[n] +"</a></td></tr>" }
txt += “</table>”
popd.innerHTML = txt
}

// função para exibir a janela com os anos
function pop_year(obj, div, tam, umonth)
{
txt = “<table bgcolor=’#CCCCFF’ border=‘0’ width=160>”
l = 1
for (n=1991; n<2012; n++)
{ if (l == 1) txt += “<tr>”
txt += “<td align=center><a href=javascript:popdate(’”+obj+"’,’"+div+"’,’"+tam+"’,’"+(umonth.toString () +"/01/" + n) +"’)>" + n + “</a></td>”
l++
if (l == 4)
{txt += “</tr>”; l = 1 }
}
txt += “</tr></table>”
popd.innerHTML = txt
}

// função para fechar o calendário
function force_close(div)
{ div2 = eval (div); div2.innerHTML = ‘’}

// função para fechar o calendário e setar a data no campo de data associado
function block(data, obj, div)
{
force_close (div)
obj2 = eval(obj)
obj2.value = data
}

</script>

<!–
o css abaixo é apenas para dar uma aparência melhor para o calendário. vc pode mudá-lo a sua maneira
insira o código abaixo entre as tags <HEAD> </HEAD> de sua página
–>
<style>
.dia {font-family: helvetica, arial; font-size: 8pt; color: #FFFFFF}
.data {font-family: helvetica, arial; font-size: 8pt; text-decoration:none; color:#191970}
.mes {font-family: helvetica, arial; font-size: 8pt}
.Cabecalho_Calendario {font-family: helvetica, arial; font-size: 10pt; color: #000000; text-decoration:none; font-weight:bold}
</style>

<!-- insira o código abaixo dentro das tags <BODY> </BODY> de sua página -->
<form name=‘form1’>

<!-- data 1 -->
<input NAME=“data1” SIZE=“10” MAXLENGTH=“10” value="">
<input TYPE=“button” NAME=“btnData1” VALUE="…" Onclick=“javascript:popdate(‘document.form1.data1’,‘pop1’,‘150’,document.form1.data1.value)”>
<!–
na span abaixo aparece o primeiro calendario.
vc pode colocar a span abaixo no lugar onde quiser em sua
pagina inclusive dentro de uma table para facilitar o
posicionamento. Mas lembre-se que quanto mais perto a span
estiver do campo de data a ela associada mais fácil será para
o usuario associar.
–>

<span id=“pop1” style=“position:absolute”></span>

<br><br>
<!-- data 2 -->
<input NAME=“data2” SIZE=“10” MAXLENGTH=“10” value="">
<input TYPE=“button” NAME=“btnData2” VALUE="…" Onclick=“javascript:popdate(‘document.form1.data2’,‘pop2’,‘150’,document.form1.data2.value)”>
<!-- na span abaixo aparece o segundo calendario -->
<span id=“pop2” style=“position:absolute”></span>

<!–
caso queira inserir outros campos de data em sua página
certifique-se de substituir corretamente os nomes dos
objetos em javascript.
EX: o objeto input text será o data3 - ou como vc quiser
o objeto button será o btnData3 - ou como vc quiser
nas chamadas das funçoes no evento onClick os nomes
deverão referenciar seus respectivos objetos.
–>
</form>

Gostaria de saber se alguém tem esse código para o servidor. Pois se a data da máquina do cliente estiver errada, babaus. Meus clientes são leigos e eu preciso retornar a hora do servidor.

Ats
Thiago