Advertisement
Guest User

Untitled

a guest
Jan 29th, 2012
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function parseTimePattern() {
  2.     var el = $id('DESU_timePattern');
  3.     if(!el) return;
  4.     var val = el.value;
  5.     var regex = '', first = '', patternValid = true;
  6.     for(var i = 0; i < val.length && patternValid; i++) {
  7.         switch(val[i]) {
  8.         case '?':
  9.             regex += '?';
  10.             break;
  11.         case 'c':
  12.             if(first != '') { regex += ')'; first = ''; }
  13.             regex += '.';
  14.             break;
  15.         case 's':
  16.         case 'i':
  17.         case 'h':
  18.         case 'd':
  19.         case 'n':
  20.         case 'y':
  21.             if(first != '' && first != val[i]) regex += ')(';
  22.             else if(first == '') regex += '(';
  23.             regex += '[0-9]'; first = val[i];
  24.             break;
  25.         case 'm':
  26.             if(first != '' && first != 'm') regex += ')(';
  27.             else if(first == 'm') { patternValid = false; break; }
  28.             regex += '([a-zA-Zа-яА-Я]+)'; first = 'm';
  29.             break;
  30.         default:
  31.             patternValid = false;
  32.             break;
  33.         }
  34.     }
  35.     if(patternValid) {
  36.         val = val.replace(/\?|c/g, '');
  37.         saveCfg('dMyTimePattern', val.replace(/([sihdnym])+/g, '$1'));
  38.         saveCfg('dTimeRegex', regex);
  39.     }
  40. }
  41.  
  42. function fixTime(label, i) {
  43.     var a, month, year, day, hour, minute, second, begin, end;
  44.     a = label.innerHTML.match(new RegExp('^((?:.|\n|\r)*?)' + Cfg.dTimeRegex + '((?:.|\n|\r)*)?$')
  45.     if(a && a.length == Cfg['dTimePattern_'].length + 2) {
  46.         begin = a[1] ? a[1] : '';
  47.         end = a[Cfg.dMyTimePattern.length] ? a[Cfg.dMyTimePattern.length] : '';
  48.         for(var i = 0; i < Cfg.dMyTimePattern.length; i++) {
  49.             switch(Cfg.dMyTimePattern[i]) {
  50.             case 's': second = a[i + 1]; break;
  51.             case 'i': minute = a[i + 1]; break;
  52.             case 'h': hour   = a[i + 1]; break;
  53.             case 'd': day    = a[i + 1]; break;
  54.             case 'n': month  = a[i + 1]; break;
  55.             case 'y': year   = a[i + 1]; break;
  56.             case 'm':
  57.                 a[i + 1] = a[i + 1].toLowerCase();
  58.                 if(a[i + 1].indexOf("янв") > -1 || a[i + 1].indexOf("jan") > -1) month = 0;
  59.                 else if(a[i + 1].indexOf("фев") > -1 || a[i + 1].indexOf("feb") > -1) month = 1;
  60.                 else if(a[i + 1].indexOf("мар") > -1 || a[i + 1].indexOf("mar") > -1) month = 2;
  61.                 else if(a[i + 1].indexOf("апр") > -1 || a[i + 1].indexOf("apr") > -1) month = 3;
  62.                 else if(a[i + 1].indexOf("май") > -1 || a[i + 1].indexOf("may") > -1) month = 4;
  63.                 else if(a[i + 1].indexOf("июн") > -1 || a[i + 1].indexOf("jun") > -1) month = 5;
  64.                 else if(a[i + 1].indexOf("июл") > -1 || a[i + 1].indexOf("jul") > -1) month = 6;
  65.                 else if(a[i + 1].indexOf("авг") > -1 || a[i + 1].indexOf("aug") > -1) month = 7;
  66.                 else if(a[i + 1].indexOf("сен") > -1 || a[i + 1].indexOf("sep") > -1) month = 8;
  67.                 else if(a[i + 1].indexOf("окт") > -1 || a[i + 1].indexOf("oct") > -1) month = 9;
  68.                 else if(a[i + 1].indexOf("ноя") > -1 || a[i + 1].indexOf("nov") > -1) month = 10;
  69.                 else if(a[i + 1].indexOf("дек") > -1 || a[i + 1].indexOf("dec") > -1) month = 11;
  70.             }
  71.         }
  72.         var dtime = new Date(year, month, day, hour, minute, second);
  73.         dtime.setHours(dtime.getHours() + parseInt(Cfg.timeOffset));
  74.         label.innerHTML = begin + dtime.toString() + end;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement