// Simple Calender Creator
// By Brian Gosselin of http://scriptasylum.com

// Usage:  buildCal(month, year, main_css_classname, header_css_classname, Sat-Sun_css_classname, days_css_classname, border_thickness, starting_day, date_onclick_handler)
//         Pass the result to the document.write() method. ex: document.write( buildCal(<parameters>) );

// Release History:
// V1.0 - Initial Release
// V1.1 - Added revisions made by DynamicDrive.com (changes denoted by the letters "DD").
// V1.2 - Added ability to specify the starting day of the week (Sun, Mon, Tue, etc)
// V1.3 - Added ability to execute a function when a date is clicked. Fixed a minor visual bug in Mozilla.

function buildCal(m, y, cM, cH, cDW, cD, brdr, sDay, action){
var mn=['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];

if(sDay<1 || sDay>7)sDay=1;

var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st

var tmpod=oD.od-sDay;
if(tmpod<0)tmpod=7+tmpod;
oD.od=tmpod+1;

var wkstr="DLMMJVS".substr(sDay-1,"DLMMJVS".length)+"DLMMJVS".substr(0,sDay-1);

var todaydate=new Date() //DD
var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD

dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
var t='<div class="'+cM+'"><table class="'+cM+'" cellpadding="0" border="'+brdr+'" cellspacing="0">';
t+='<tr align="center"><td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' '+y+'</td></tr>';
t+='<tr align="center">';
for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+wkstr.substr(s,1)+'</td>';
t+='</tr><tr align="center">';
for(i=1;i<=42;i++){
var x=( (i-oD.od>=0) && (i-oD.od<dim[m-1]) )? '<div style="width:100%" '+((action!='')? 'onmouseup="'+action+'('+m+','+(i-oD.od+1)+','+y+')':(i-oD.od+1))+'">'+(i-oD.od+1)+'</div>' : '&nbsp;';
if (i-oD.od+1==scanfortoday)x='<span id="today" class="'+cD+'">'+x+'</span>' //DD
t+='<td width="14.28%" class="'+cD+'">'+x+'</td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
t+='</tr></table></div>';
return t;
}

//Calculos//

var mnth=new Date().getMonth()+1;
var year=new Date().getFullYear();
var strtD=1;

function adjM(I){
if(I){
mnth=(mnth==12)?1:mnth+1;
}else{
mnth=(mnth==1)?12:mnth-1;
}
changeHTML();
}

function adjY(I){
if(I){
year=(year==2030)?1970:year+1;
}else{
year=(year==1970)?2030:year-1;
}
changeHTML();
}

function adjD(){
strtD=(strtD==7)?1:strtD+1;
document.forms["f"].daybut.value="Day 1 = "+["Do","Lu","Ma","Mi","Ju","Vi","Sa"][strtD-1];
changeHTML();
}

//FUNCTION TO FIND NESTED NN4 LAYERS BY MIKE HALL OF WWW.BRAINJAR.COM
function findlayer(name,doc){
var i,layer;
for(i=0;i<doc.layers.length;i++){
layer=doc.layers[i];
if(layer.name==name)return layer;
if(layer.document.layers.length>0)
if((layer=findlayer(name,layer.document))!=null)
return layer;
}
return null;
}

function changeHTML(){
var el=(document.layers)?findlayer("dyncal",document):(document.all)?document.all["dyncal"]:document.getElementById("dyncal");
var html=buildCal(mnth,year,"calMAIN","calMONTH","calDW","calDAYS",1,strtD,'updateField');
if(document.layers){
el.document.open();
//el.document.write('<div class="abc">'+html+'</div>');//
el.document.close();
}else el.innerHTML=html;
}

function zfill(n){
return (n.toString().length<2)?"0"+n:""+n;
}

function updateField(mm,dd,yy){
document.f.dtfld.value=zfill(mm)+'/'+zfill(dd)+'/'+yy;
}

