var cal_ID = 0;function CALENDAR(year, month) {//========================================================================================================// Configuration//========================================================================================================  this.tFontFace = 'Arial, Helvetica'; // title: font family (CSS-spec, e.g. "Arial, Helvetica")  this.tFontSize = 1;                 // title: font size (pixels)  this.tFontColor = '#FFFFFF';         // title: font color  this.tBGColor = '#fff';           // title: background color  this.hFontFace = 'Arial, Helvetica'; // heading: font family (CSS-spec, e.g. "Arial, Helvetica")  this.hFontSize = 1;//16;                 // heading: font size (pixels)  this.hFontColor = '#FFFFFF';         // heading: font color  this.hBGColor = '#cccccc';           // heading: background color  this.hMargin = '1px';   this.dFontFace = 'Arial, Helvetica'; // days: font family (CSS-spec, e.g. "Arial, Helvetica")  this.dFontSize = 1;//8;                 // days: font size (pixels)  this.dFontColor = '#000000';         // days: font color  this.dBGColor = '#FFFFFF';           // days: background color  this.wFontFace = 'Arial, Helvetica'; // weeks: font family (CSS-spec, e.g. "Arial, Helvetica")  this.wFontSize = 1;//6;                 // weeks: font size (pixels)  this.wFontColor = '#FFFFFF';         // weeks: font color  this.wBGColor = '#ffffff';           // weeks: background color  this.saFontColor = '#f';        // Saturdays: font color  this.saBGColor = '#ffffff';          // Saturdays: background color  this.suFontColor = '#D00000';        // Sundays: font color  this.suBGColor = '#fffff';          // Sundays: background color  this.tdBorderColor = '#dddddd';      // today: border color  this.borderColor = '#ffffff';        // border color  this.hilightColor = '#ffffff';       // hilight color (works only in combination with link)  this.link = '';                      // page to link to when day is clicked  this.offset = 1;                     // week start: 0 - 6 (0 = Saturday, 1 = Sunday, 2 = Monday ...)  this.weekNumbers = true;             // view week numbers: true = yes, false = no//--------------------------------------------------------------------------------------------------------// You should change these variables only if you want to translate them into your language://--------------------------------------------------------------------------------------------------------  // weekdays: must start with Saturday because January 1st of year 1 was a Saturday  this.weekdays = ['Sa', 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr'];  // months: must start with January  this.months = ['January', 'February', 'March', 'April', 'May', 'June', 'July',                 'August', 'September', 'October', 'November', 'December'];  // error messages  this.error = ['Year must be 1 - 3999!', 'Month must be 1 - 12!'];//--------------------------------------------------------------------------------------------------------// Don't change from here://--------------------------------------------------------------------------------------------------------  this.size = 0;  this.mDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];  if(year == null && month == null) {    var obj = new Date();    year = obj.getYear();    if(year < 1900) year += 1900;    month = obj.getMonth() + 1;  }  else if(year != null && month == null) month = 1;  this.year = year;  this.month = month;  this.specDays = {};//========================================================================================================// Functions//========================================================================================================  this.set_styles = function() {    cal_ID++;    var html = '<style> .cssTitle' + cal_ID + ' { ';    if(this.tFontFace) html += 'font-family: ' + this.tFontFace + '; ';    if(this.tFontSize) html += 'font-size: ' + this.tFontSize + 'px; ';    if(this.tFontColor) html += 'color: ' + this.tFontColor + '; ';    if(this.tBGColor) html += 'background-color: ' + this.tBGColor + '; ';    html += '} .cssHeading' + cal_ID + ' { ';    if(this.hFontFace) html += 'font-family: ' + this.hFontFace + '; ';    if(this.hFontFace) html += 'font-family: ' + this.hFontFace + '; ';    if(this.hFontSize) html += 'font-size: ' + this.hFontSize + 'px; ';    if(this.hFontColor) html += 'color: ' + this.hFontColor + '; ';    if(this.hBGColor) html += 'background-color: ' + this.hBGColor + '; ';    html += '} .cssDays' + cal_ID + ' { ';    if(this.dFontFace) html += 'font-family: ' + this.dFontFace + '; ';    if(this.dFontSize) html += 'font-size: ' + this.dFontSize + 'px; ';    if(this.dFontColor) html += 'color: ' + this.dFontColor + '; ';    if(this.dBGColor) html += 'background-color: ' + this.dBGColor + '; ';    html += '} .cssWeeks' + cal_ID + ' { ';    if(this.wFontFace) html += 'font-family: ' + this.wFontFace + '; ';    if(this.wFontSize) html += 'font-size: ' + this.wFontSize + 'px; ';    if(this.wFontColor) html += 'color: ' + this.wFontColor + '; ';    if(this.wBGColor) html += 'background-color: ' + this.wBGColor + '; ';    html += '} .cssSaturdays' + cal_ID + ' { ';    if(this.dFontFace) html += 'font-family: ' + this.dFontFace + '; ';    if(this.dFontSize) html += 'font-size: ' + this.dFontSize + 'px; ';    if(this.saFontColor) html += 'color: ' + this.saFontColor + '; ';    if(this.saBGColor) html += 'background-color: ' + this.saBGColor + '; ';    html += '} .cssSundays' + cal_ID + ' { ';    if(this.dFontFace) html += 'font-family: ' + this.dFontFace + '; ';    if(this.dFontSize) html += 'font-size: ' + this.dFontSize + 'px; ';    if(this.suFontColor) html += 'color: ' + this.suFontColor + '; ';    if(this.suBGColor) html += 'background-color: ' + this.suBGColor + '; ';    html += '} .cssHilight' + cal_ID + ' { ';    if(this.dFontFace) html += 'font-family: ' + this.dFontFace + '; ';    if(this.dFontSize) html += 'font-size: ' + this.dFontSize + 'px; ';    if(this.dFontColor) html += 'color: ' + this.dFontColor + '; ';    if(this.hilightColor) html += 'background-color: ' + this.hilightColor + '; ';    html += 'cursor: default; ';    html += '} </style>';    return html;  }  this.leap_year = function(year) {    return (!(year % 4) && (year < 1582 || year % 100 || !(year % 400))) ? true : false;  }  this.get_weekday = function(year, days) {    var a = days;    if(year) a += (year - 1) * 365;    for(var i = 1; i < year; i++) if(this.leap_year(i)) a++;    if(year > 1582 || (year == 1582 && days >= 277)) a -= 10;    if(a) a = (a - this.offset) % 7;    else if(this.offset) a += 7 - this.offset;    return a;  }  this.get_week = function(year, days) {    var firstWDay = this.get_weekday(year, 0);    return Math.floor((days + firstWDay) / 7) + (firstWDay <= 3);  }  this.table_cell = function(content, cls, date, style) {    var size = Math.round(this.size * 1.5);    var clsName = cls.toLowerCase();    var html = '<td align=center width=' + size + ' class="' + cls + '"';    if(content != '&nbsp;' && clsName.indexOf('day') != -1) {      var link = this.link;      if(this.specDays[content]) {        if(this.specDays[content][0]) {          style += 'background-color:' + this.specDays[content][0] + ';';        }        if(this.specDays[content][1]) {          html += ' title="' + this.specDays[content][1] + '"';        }        if(this.specDays[content][2]) link = this.specDays[content][2];      }      if(link) {        html += ' onMouseOver="this.className=\'cssHilight' + cal_ID + '\'"';        html += ' onMouseOut="this.className=\'' + cls + '\'"';var cadena =date;cadena=cadena.split("-");        var mDay = parseInt(cadena[2]);var mYear = parseInt(cadena[0]);var mMonth = parseInt(cadena[1]);if(mMonth<10) mMonth="0"+mMonth;if(mDay<10) mDay="0"+mDay;var newdate=mDay+"/"+mMonth+"/"+mYear;	        html += ' onClick="document.location.href=\'' + link + '&txtFechaDesde=' + newdate +"&txtFechaHasta="+ newdate +'\'"';            }    }    if(style) html += ' style="' + style + '"';    html += '>' + content + '</td>';    return html;  }  this.table_head = function(content) {    var html, ind, wDay, i;    var cols = this.weekNumbers ? 8 : 7;    html = '<tr><td colspan=' + cols + ' class="cssTitle' + cal_ID + '" align=center><b>' +           content + '</b></td></tr><tr>';    for(i = 0; i < this.weekdays.length; i++) {      ind = (i + this.offset) % 7;      wDay = this.weekdays[ind];      html += this.table_cell(wDay, 'cssHeading' + cal_ID);    }    if(this.weekNumbers) html += this.table_cell('&nbsp;', 'cssHeading' + cal_ID);    html += '</tr>';    return html;  }  this.viewEvent = function(from, to, color, title, link) {    if(from > to) return;    if(from < 1 || from > 31) return;    if(to < 1 || to > 31) return;    while(from <= to) {      this.specDays[from] = [color, title, link];      from++;    }  }  this.create = function() {    var obj, html, curYear, curMonth, curDay, start, stop, title, daycount,        inThisMonth, weekNr, wdays, days, ind, cls, style, content, date, i;    this.size = (this.hFontSize > this.dFontSize) ? this.hFontSize : this.dFontSize;    if(this.wFontSize > this.size) this.size = this.wFontSize;    obj = new Date();    curYear = obj.getYear();    if(curYear < 1900) curYear += 1900;    curMonth = obj.getMonth() + 1;    curDay = obj.getDate();    if(this.year < 1 || this.year > 3999) html = '<b>' + this.error[0] + '</b>';    else if(this.month < 1 || this.month > 12) html = '<b>' + this.error[1] + '</b>';    else {      if(this.leap_year(this.year)) this.mDays[1] = 29;      for(i = days = 0; i < this.month - 1; i++) days += this.mDays[i];      start = this.get_weekday(this.year, days);      stop = this.mDays[this.month-1];        html = this.set_styles();                html += '<table border=0 cellspacing=0 cellpadding=0 style="position:relative;top:10px; border: 0px solid #cccccc"><tr>';      html += '<td' + (this.borderColor ? ' bgcolor=' + this.borderColor  : '') + '>';      html += '<table border=0 cellspacing=1 cellpadding=1 style="border: 0px solid #fff;">';      title = this.months[this.month-1] + ' ' + this.year;      //html += this.table_head(title);      html+=this.table_head("<BR>");      daycount = 1;      if((this.year == curYear) && (this.month == curMonth)) inThisMonth = true;      else inThisMonth = false;      if(this.weekNumbers) weekNr = this.get_week(this.year, days);      while(daycount <= stop) {        html += '<tr>';        for(i = wdays = 0; i <= 6; i++) {          ind = (i + this.offset) % 7;          if(ind == 0) cls = 'cssSaturdays';          else if(ind == 1) cls = 'cssSundays';          else cls = 'cssDays';          style = '';          date = this.year + '-' + this.month + '-' + daycount;          if((daycount == 1 && i < start) || daycount > stop) content = '&nbsp;';          else {            content = daycount;            if(inThisMonth && daycount == curDay) {              style = 'padding:0px;border:0px solid ' + this.tdBorderColor + ';';            }            else if(this.year == 1582 && this.month == 10 && daycount == 4) daycount = 14;            daycount++;            wdays++;          }          html += this.table_cell(content, cls + cal_ID, date, style);        }        if(this.weekNumbers) {          if(!weekNr) {            if(this.year == 1) content = '&nbsp;';            else if(this.year == 1583) content = 52;            else content = this.get_week(this.year - 1, 365);          }          else if(this.month == 12 && weekNr >= 52 && wdays < 4) content = 1;          else content = weekNr;          html += this.table_cell(content, 'cssWeeks' + cal_ID);          weekNr++;        }        html += '</tr>';      }      html += '</table></td></tr></table>';    }    return html;  }  }function asignarDiaCamposFecha(fecha, form){form.submit();}function doCalendar(combo, ano, mes, form){cal = new CALENDAR(ano, mes);cal.offset = 1;cal.weekNumbers = false;cal.tFontSize = 10;cal.hFontSize = 1;cal.dFontSize = 10;cal.wFontSize = 1;var j=0;for (j=0;j<form.month.length;j++){if (form.month.options[j].selected)  break;}	if (combo.options.length>0){for (i=0;i<combo.options.length;i++){var inDate=combo.options[i].value;var mMonth = parseInt(inDate.substr(3,2),10)-1 ;var mDay = parseInt(inDate.substr(0,2),10);var mYear = parseInt(inDate.substr(6,4),10);calDate = new Date(mYear, mMonth, mDay);    cal.viewEvent(calDate.getDate(), calDate.getDate(), "#E0E0FF", "","");}}document.getElementById("calendario").innerHTML=cal.create();}
