[ Index ]
 

Code source de Horde 3.1.3

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/templates/javascript/ -> open_calendar.js (source)

   1  var currentDate, currentYear, curImgId, currentTarget;
   2  
   3  function openCalendar(imgId, target, callback)
   4  {
   5      if (document.getElementById(target + '[year]').value && document.getElementById(target + '[month]').value && document.getElementById(target + '[day]').value) {
   6          var d = new Date(document.getElementById(target + '[year]').value,
   7                           document.getElementById(target + '[month]').value - 1,
   8                           document.getElementById(target + '[day]').value);
   9      } else {
  10          var d = new Date();
  11      }
  12  
  13      openGoto(d.getTime(), imgId, target, callback);
  14  }
  15  
  16  function openGoto(timestamp, imgId, target, callback)
  17  {
  18      var row, cell, img, link, days;
  19  
  20      currentTarget = target;
  21  
  22      var d = new Date(timestamp);
  23      currentDate = d;
  24      month = d.getMonth();
  25      currentYear = d.getYear();
  26      if (currentYear < 1900) {
  27          currentYear += 1900;
  28      }
  29      var firstOfMonth = new Date(currentYear, month, 1);
  30      var diff = firstOfMonth.getDay() - 1;
  31      if (diff == -1) {
  32          diff = 6;
  33      }
  34      switch (month) {
  35      case 3:
  36      case 5:
  37      case 8:
  38      case 10:
  39          days = 30;
  40          break;
  41  
  42      case 1:
  43          if (currentYear % 4 == 0 && (currentYear % 100 != 0 || currentYear % 400 == 0)) {
  44              days = 29;
  45          } else {
  46              days = 28;
  47          }
  48          break;
  49  
  50      default:
  51          days = 31;
  52          break;
  53      }
  54  
  55      var wdays = [
  56          '<?php echo _("Mo") ?>',
  57          '<?php echo _("Tu") ?>',
  58          '<?php echo _("We") ?>',
  59          '<?php echo _("Th") ?>',
  60          '<?php echo _("Fr") ?>',
  61          '<?php echo _("Sa") ?>',
  62          '<?php echo _("Su") ?>'
  63      ];
  64      var months = [
  65          '<?php echo _("January") ?>',
  66          '<?php echo _("February") ?>',
  67          '<?php echo _("March") ?>',
  68          '<?php echo _("April") ?>',
  69          '<?php echo _("May") ?>',
  70          '<?php echo _("June") ?>',
  71          '<?php echo _("July") ?>',
  72          '<?php echo _("August") ?>',
  73          '<?php echo _("September") ?>',
  74          '<?php echo _("October") ?>',
  75          '<?php echo _("November") ?>',
  76          '<?php echo _("December") ?>'
  77      ];
  78  
  79      var layer = document.getElementById('goto');
  80      if (layer.firstChild) {
  81          layer.removeChild(layer.firstChild);
  82      }
  83  
  84      var table = document.createElement('TABLE');
  85      var tbody = document.createElement('TBODY');
  86      table.appendChild(tbody);
  87      table.className = 'item';
  88      table.cellSpacing = 0;
  89      table.cellPadding = 2;
  90      table.border = 0;
  91      table.style.width = 'auto';
  92  
  93      // Title bar.
  94      row = document.createElement('TR');
  95      cell = document.createElement('TD');
  96      cell.colSpan = 7;
  97      cell.align = 'right';
  98      cell.className = 'header';
  99      link = document.createElement('A');
 100      link.href = '#';
 101      link.onclick = function()
 102      {
 103          var layer = document.getElementById('goto');
 104          layer.style.visibility = 'hidden';
 105          if (layer.firstChild) {
 106              layer.removeChild(layer.firstChild);
 107          }
 108          return false;
 109      }
 110      img = document.createElement('IMG')
 111      img.src = '<?php echo $GLOBALS['registry']->getImageDir('horde') ?>/close.png';
 112      img.border = 0;
 113      link.appendChild(img);
 114      cell.appendChild(link);
 115      row.appendChild(cell);
 116      tbody.appendChild(row);
 117  
 118      // Year.
 119      row = document.createElement('TR');
 120      cell = document.createElement('TD');
 121      cell.align = 'left';
 122      link = document.createElement('A');
 123      link.href = '#';
 124      link.onclick = function()
 125      {
 126          newDate = new Date(currentYear - 1, currentDate.getMonth(), 1);
 127          openGoto(newDate.getTime(), imgId, currentTarget, callback);
 128          return false;
 129      }
 130      cell.appendChild(link);
 131      img = document.createElement('IMG')
 132      img.src = '<?php echo $GLOBALS['registry']->getImageDir('horde') ?>/nav/left.png';
 133      img.align = 'middle';
 134      img.border = 0;
 135      link.appendChild(img);
 136      row.appendChild(cell);
 137  
 138      cell = document.createElement('TD');
 139      cell.colSpan = 5;
 140      cell.align = 'center';
 141      var y = document.createTextNode(currentYear);
 142      cell.appendChild(y);
 143      row.appendChild(cell);
 144  
 145      cell = document.createElement('TD');
 146      cell.align = 'right';
 147      link = document.createElement('A');
 148      link.href = '#';
 149      link.onclick = function()
 150      {
 151          newDate = new Date(currentYear + 1, currentDate.getMonth(), 1);
 152          openGoto(newDate.getTime(), imgId, currentTarget, callback);
 153          return false;
 154      }
 155      cell.appendChild(link);
 156      img = document.createElement('IMG')
 157      img.src = '<?php echo $GLOBALS['registry']->getImageDir('horde') ?>/nav/right.png';
 158      img.align = 'middle';
 159      img.border = 0;
 160      link.appendChild(img);
 161      row.appendChild(cell);
 162      tbody.appendChild(row);
 163  
 164      // Month name.
 165      row = document.createElement('TR');
 166      cell = document.createElement('TD');
 167      cell.align = 'left';
 168      link = document.createElement('A');
 169      link.href = '#';
 170      link.onclick = function()
 171      {
 172          var newMonth = currentDate.getMonth() - 1;
 173          var newYear = currentYear;
 174          if (newMonth == -1) {
 175              newMonth = 11;
 176              newYear -= 1;
 177          }
 178          newDate = new Date(newYear, newMonth, 1);
 179          openGoto(newDate.getTime(), imgId, currentTarget, callback);
 180          return false;
 181      }
 182      cell.appendChild(link);
 183      img = document.createElement('IMG')
 184      img.src = '<?php echo $GLOBALS['registry']->getImageDir('horde') ?>/nav/left.png';
 185      img.align = 'middle';
 186      img.border = 0;
 187      link.appendChild(img);
 188      row.appendChild(cell);
 189  
 190      cell = document.createElement('TD');
 191      cell.colSpan = 5;
 192      cell.align = 'center';
 193      var m = document.createTextNode(months[month]);
 194      cell.appendChild(m);
 195      row.appendChild(cell);
 196  
 197      cell = document.createElement('TD');
 198      cell.align = 'right';
 199      link = document.createElement('A');
 200      link.href = '#';
 201      link.onclick = function()
 202      {
 203          newDate = new Date(currentYear, currentDate.getMonth() + 1, 1);
 204          openGoto(newDate.getTime(), imgId, currentTarget, callback);
 205          return false;
 206      }
 207      cell.appendChild(link);
 208      img = document.createElement('IMG')
 209      img.src = '<?php echo $GLOBALS['registry']->getImageDir('horde') ?>/nav/right.png';
 210      img.align = 'middle';
 211      img.border = 0;
 212      link.appendChild(img);
 213      row.appendChild(cell);
 214      tbody.appendChild(row);
 215  
 216      // Weekdays.
 217      row = document.createElement('TR');
 218      for (var i = 0; i < 7; i++) {
 219          cell = document.createElement('TD');
 220          weekday = document.createTextNode(wdays[i]);
 221          cell.appendChild(weekday);
 222          row.appendChild(cell);
 223      }
 224      tbody.appendChild(row);
 225  
 226      // Rows.
 227      var week, italic;
 228      var count = 1;
 229      var today = new Date();
 230      var thisYear = today.getYear();
 231      if (thisYear < 1900) {
 232          thisYear += 1900;
 233      }
 234  
 235      var odd = true;
 236      for (var i = 1; i <= days; i++) {
 237          if (count == 1) {
 238              row = document.createElement('TR');
 239              row.align = 'right';
 240              if (odd) {
 241                  row.className = 'item0';
 242              } else {
 243                  row.className = 'item1';
 244              }
 245              odd = !odd;
 246          }
 247          if (i == 1) {
 248              for (var j = 0; j < diff; j++) {
 249                  cell = document.createElement('TD');
 250                  row.appendChild(cell);
 251                  count++;
 252              }
 253          }
 254          cell = document.createElement('TD');
 255          if (thisYear == currentYear &&
 256              today.getMonth() == month &&
 257              today.getDate() == i) {
 258              cell.style.border = '1px solid red';
 259          }
 260  
 261          link = document.createElement('A');
 262          cell.appendChild(link);
 263  
 264          link.href = i;
 265          link.onclick = function()
 266          {
 267              var day = this.href;
 268              while (day.indexOf('/') != -1) {
 269                  day = day.substring(day.indexOf('/') + 1);
 270              }
 271  
 272              setSelectValue(document.getElementById(currentTarget + '[year]'), currentYear);
 273              setSelectValue(document.getElementById(currentTarget + '[month]'), currentDate.getMonth() + 1);
 274              setSelectValue(document.getElementById(currentTarget + '[day]'), day);
 275  
 276              var layer = document.getElementById('goto');
 277              layer.style.visibility = 'hidden';
 278              if (layer.firstChild) {
 279                  layer.removeChild(layer.firstChild);
 280              }
 281  
 282              if (callback) {
 283                  eval(callback);
 284              }
 285  
 286              return false;
 287          }
 288  
 289          day = document.createTextNode(i);
 290          link.appendChild(day);
 291  
 292          row.appendChild(cell);
 293          if (count == 7) {
 294              tbody.appendChild(row);
 295              count = 0;
 296          }
 297          count++;
 298      }
 299      if (count > 1) {
 300          for (i = count; i <= 7; i++) {
 301              cell = document.createElement('TD');
 302              row.appendChild(cell);
 303          }
 304          tbody.appendChild(row);
 305      }
 306  
 307      if (curImgId != imgId) {
 308          // We're showing this popup for the first time, so try to
 309          // position it next to the image anchor.
 310          var el = document.getElementById(imgId);
 311          var p = getAbsolutePosition(el);
 312  
 313          layer.style.left = p.x + 'px';
 314          layer.style.top = p.y + 'px';
 315      }
 316  
 317      curImgId = imgId;
 318      layer.appendChild(table);
 319  
 320      layer.style.display = 'block';
 321      layer.style.visibility = 'visible';
 322  }
 323  
 324  function getAbsolutePosition(el)
 325  {
 326      var r = {x: el.offsetLeft, y: el.offsetTop};
 327      if (el.offsetParent) {
 328          var tmp = getAbsolutePosition(el.offsetParent);
 329          r.x += tmp.x;
 330          r.y += tmp.y;
 331      }
 332      return r;
 333  }
 334  
 335  function setSelectValue(select, value)
 336  {
 337      select.value = value;
 338      if (select.value != value) {
 339          for (i = 0; i < select.options.length; i++) {
 340              if (select.options[i].value == value) {
 341                  select.selectedIndex = i;
 342                  return true;
 343              }
 344          }
 345      }
 346  
 347      return false;
 348  }


Généré le : Sun Feb 25 18:01:28 2007 par Balluche grâce à PHPXref 0.7