rsence 2.0.9.23 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. data/INSTALL.rdoc +61 -49
  2. data/README.rdoc +20 -4
  3. data/VERSION +1 -1
  4. data/conf/default_conf.yaml +8 -0
  5. data/conf/rsence_command_strings.yaml +31 -20
  6. data/docs/ExampleGuiPlugin.rdoc +2 -2
  7. data/js/comm/comm.js +27 -5
  8. data/js/comm/transporter/transporter.js +1 -1
  9. data/js/comm/values/values.js +12 -5
  10. data/js/controls/button/button.js +12 -2
  11. data/js/controls/dialogs/alert_sheet/alert_sheet.js +13 -1
  12. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +13 -2
  13. data/js/controls/dialogs/sheet/sheet.js +35 -28
  14. data/js/controls/imageview/imageview.js +13 -13
  15. data/js/controls/progress/progressindicator/progressindicator.js +5 -5
  16. data/js/controls/sliders/slider/slider.js +4 -31
  17. data/js/controls/stepper/stepper.js +12 -19
  18. data/js/controls/textcontrol/textcontrol.js +0 -50
  19. data/js/controls/textcontrol/themes/default/textcontrol.html +1 -1
  20. data/js/controls/window/window.js +1 -1
  21. data/js/core/elem/elem.js +146 -160
  22. data/js/core/rsence_ns/rsence_ns.js +7 -0
  23. data/js/foundation/control/eventresponder/eventresponder.js +8 -7
  24. data/js/foundation/eventmanager/eventmanager.js +81 -48
  25. data/js/foundation/geom/rect/rect.js +1 -1
  26. data/js/foundation/json_renderer/json_renderer.js +4 -1
  27. data/js/foundation/system/system.js +37 -34
  28. data/js/foundation/view/morphanimation/morphanimation.js +53 -43
  29. data/js/foundation/view/view.js +119 -118
  30. data/js/lists/listitems/listitems.js +10 -10
  31. data/js/lists/propertylist/js.inc +0 -0
  32. data/js/lists/propertylist/propertylist.js +574 -0
  33. data/js/lists/propertylist/propertylisteditor/js.inc +0 -0
  34. data/js/lists/propertylist/propertylisteditor/propertylisteditor.js +233 -0
  35. data/js/lists/radiobuttonlist/radiobuttonlist.js +15 -8
  36. data/js/menus/minimenu/js.inc +0 -0
  37. data/js/menus/minimenu/minimenu.js +139 -0
  38. data/js/menus/minimenu/minimenuitem/js.inc +0 -0
  39. data/js/menus/minimenu/minimenuitem/minimenuitem.js +33 -0
  40. data/js/menus/minimenu/minimenuitem/themes/default/minimenuitem.css +45 -0
  41. data/js/menus/minimenu/minimenuitem/themes/default/minimenuitem.html +4 -0
  42. data/js/menus/minimenu/minimenuitem/themes/default/minimenuitem_checkmark.png +0 -0
  43. data/js/menus/minimenu/themes/default/minimenu.css +63 -0
  44. data/js/menus/minimenu/themes/default/minimenu.html +7 -0
  45. data/js/menus/minimenu/themes/default/minimenu.png +0 -0
  46. data/js/util/reloadapp/reloadapp.js +1 -1
  47. data/lib/conf/argv.rb +40 -11
  48. data/lib/daemon/daemon.rb +63 -22
  49. data/lib/plugins/gui_plugin.rb +28 -31
  50. data/lib/plugins/guiparser.rb +37 -7
  51. data/lib/plugins/plugin.rb +260 -28
  52. data/lib/plugins/plugin_base.rb +14 -0
  53. data/lib/plugins/plugin_plugins.rb +11 -1
  54. data/lib/plugins/pluginmanager.rb +127 -44
  55. data/lib/plugins/plugins.rb +10 -1
  56. data/lib/session/msg.rb +25 -1
  57. data/lib/session/sessionmanager.rb +11 -2
  58. data/lib/session/sessionstorage.rb +14 -14
  59. data/lib/transporter/transporter.rb +29 -13
  60. data/lib/values/hvalue.rb +30 -0
  61. data/plugins/client_pkg/info.yaml +2 -2
  62. data/plugins/{index_html → main}/img/loading.gif +0 -0
  63. data/plugins/{index_html → main}/img/riassence.gif +0 -0
  64. data/plugins/main/info.yaml +5 -4
  65. data/plugins/main/main.rb +180 -24
  66. data/plugins/{index_html → main}/tmpl/index.html +4 -2
  67. data/plugins/ticket/info.yaml +2 -2
  68. data/plugins/ticket/lib/upload.rb +57 -5
  69. data/plugins/ticket/ticket.rb +10 -4
  70. data/setup/welcome/info.yaml +2 -2
  71. data/setup/welcome/text/welcome.html +1 -1
  72. metadata +22 -11
  73. data/plugins/index_html/index_html.rb +0 -120
  74. data/plugins/index_html/info.yaml +0 -18
@@ -26,6 +26,7 @@ HStepper = HControl.extend({
26
26
 
27
27
  defaultEvents: {
28
28
  mouseDown: true,
29
+ click: true,
29
30
  keyDown: true,
30
31
  mouseWheel: true
31
32
  },
@@ -101,17 +102,6 @@ HStepper = HControl.extend({
101
102
  );
102
103
  },
103
104
 
104
- // -- Returns an action string for the setInterval in _setRepeatInterval ++
105
- _repeatIntervalStr: function( _up ){
106
- return [
107
- 'HSystem.views[',
108
- this.viewId,
109
- '].step',
110
- (_up?'Up':'Down'),
111
- '();'
112
- ].join('');
113
- },
114
-
115
105
  // -- Background-offset of the state images up/down,
116
106
  // overrideable in the html template ++
117
107
  bgStateUp: '0px -23px',
@@ -131,15 +121,13 @@ HStepper = HControl.extend({
131
121
  _setRepeatInterval: function( _up ){
132
122
  var _this = this,
133
123
  _options = _this.options;
124
+ _this._repeatInterval && clearInterval( _this._repeatInterval );
134
125
  _this._bgStateOn( _up );
135
- if (_up) {
136
- _this.stepUp();
137
- _this._repeatInterval = setInterval( _this._repeatIntervalStr(1), _options.repeatInterval );
138
- }
139
- else {
140
- _this.stepDown();
141
- _this._repeatInterval = setInterval( _this._repeatIntervalStr(0), _options.repeatInterval );
142
- }
126
+ _up?_this.stepUp():_this.stepDown();
127
+ _this._repeatInterval = setInterval(
128
+ _up?function(){_this.stepUp();}:function(){_this.stepDown();},
129
+ _options.repeatInterval
130
+ );
143
131
  },
144
132
 
145
133
  // Stops the repeating stepping up or down enabled in _setRepeatInterval
@@ -153,6 +141,7 @@ HStepper = HControl.extend({
153
141
  mouseDown: function( x, y ){
154
142
  this.setMouseUp(true);
155
143
  this._setRepeatInterval( ( y - ELEM.getVisiblePosition( this.elemId )[1] ) <= 11 );
144
+
156
145
  },
157
146
 
158
147
  /** Stops the repeating stepping, when the mouse button goes up
@@ -161,6 +150,10 @@ HStepper = HControl.extend({
161
150
  this._clearRepeatInterval();
162
151
  },
163
152
 
153
+ click: function(){
154
+ this.mouseUp();
155
+ },
156
+
164
157
  /** Stops the repeating stepping, when the control becomes inactive
165
158
  **/
166
159
  blur: function(){
@@ -42,56 +42,6 @@ HTextControl = HControl.extend({
42
42
  }
43
43
  }
44
44
  },
45
-
46
- // drawSubviews: function(){
47
- // if(this['markupElemIds']!==undefined && this.markupElemIds['value']!==undefined) {
48
- // // this.adjustInputStyle();
49
- // }
50
- // this.setEnabled(this.enabled);
51
- // },
52
- //
53
- // /** = Description
54
- // * Tweaks the input element to fit the match the size properly
55
- // * in different browsers. Can't be done reliably by using just
56
- // * the theme css, because some browsers are broken
57
- // * regarding styling of input elements.
58
- // *
59
- // **/
60
- // adjustInputStyle: function(){
61
- // var _input = this.markupElemIds.value,
62
- // _label = this.markupElemIds.label;
63
- // if(BROWSER_TYPE.firefox){
64
- // if(this.componentName === 'textarea'){
65
- // ELEM.setStyle(_input,'padding-top','0px');
66
- // }
67
- // else {
68
- // ELEM.setStyle(_input,'margin-top','1px');
69
- // }
70
- // ELEM.setStyle(_input,'padding-left','0px');
71
- // ELEM.setStyle(_label,'left','2px');
72
- // ELEM.setStyle(_label,'top','0px');
73
- // ELEM.setStyle(_label,'right','2px');
74
- // ELEM.setStyle(_label,'bottom','2px');
75
- // }
76
- // else if(BROWSER_TYPE.ie){
77
- // ELEM.flushLoop();
78
- // var _size = ELEM.getVisibleSize( this.elemId ),
79
- // _width = _size[0],
80
- // _height = _size[1];
81
- // ELEM.setStyle(_input,'left','2px');
82
- // ELEM.setStyle(_input,'top','1px');
83
- // ELEM.setStyle(_input,'padding-top','0px');
84
- // ELEM.setStyle(_input,'padding-left','0px');
85
- // ELEM.setStyle(_input,'padding-right','8px');
86
- // ELEM.setStyle(_input,'padding-bottom','0px');
87
- // ELEM.setStyle(_input,'width',(_width-10)+'px');
88
- // ELEM.setStyle(_input,'height',(_height-2)+'px');
89
- // ELEM.setStyle(_label,'left','0px');
90
- // ELEM.setStyle(_label,'top','0px');
91
- // ELEM.setStyle(_label,'right','0px');
92
- // ELEM.setStyle(_label,'bottom','0px');
93
- // }
94
- // },
95
45
 
96
46
  setStyle: function(_name, _value, _cacheOverride) {
97
47
  if (!this['markupElemIds']||!this.markupElemIds['value']) {
@@ -1,4 +1,4 @@
1
- <div class="textcontrol_bg"></div>
1
+ <div class="textcontrol_bg" id="bg#{_ID}"></div>
2
2
 
3
3
  <div class="textcontrol_n"></div>
4
4
  <div class="textcontrol_s"></div>
@@ -240,7 +240,7 @@ HWindow = HDynControl.extend({
240
240
  _view, _size, _right, _bottom;
241
241
  for( ; i < _views.length; i++ ){
242
242
  _view = HSystem.views[_views[i]];
243
- _size = ELEM.getVisibleSize(_view.elemId);
243
+ _size = ELEM.getSize(_view.elemId);
244
244
  _pos = ELEM.getVisiblePosition(_view.elemId);
245
245
  _right = _size[0]+_pos[0]-this.pageX();
246
246
  _bottom = _size[1]+_pos[1]-this.pageY();
data/js/core/elem/elem.js CHANGED
@@ -24,6 +24,9 @@ BROWSER_TYPE = {
24
24
  /* Microsoft Internet Explorer version 8 */
25
25
  ie8: false,
26
26
 
27
+ /* Microsoft Internet Explorer version 9 */
28
+ ie9: false,
29
+
27
30
  /* Any version of Opera */
28
31
  opera: false,
29
32
 
@@ -57,7 +60,8 @@ ELEM = {
57
60
  * The interval to flush the buffer specified in milliseconds.
58
61
  * Defaults to 60fps which is the most common refresh rate of displays.
59
62
  **/
60
- ELEMTickerInterval: 16.667,
63
+ // ELEMTickerInterval: 16.667,
64
+ ELEMTickerInterval: 33,
61
65
 
62
66
  // stuff moved inside this function, because (surprise, surprise!) ie6 had some issues with it.
63
67
  _constructor: function() {
@@ -225,14 +229,16 @@ ELEM = {
225
229
  **/
226
230
  setHTML: function(_id, _html) {
227
231
  try {
228
- var _this = ELEM;
229
- if (!_this._elements[_id]) {
232
+ var _this = ELEM, _elem = _this._elements[_id];
233
+ if (!_elem) {
230
234
  return;
231
235
  }
232
236
  if (! ((typeof _html === 'string') || (typeof _html === 'number'))) {
233
237
  return;
234
238
  }
235
- _this._elements[_id].innerHTML = _html;
239
+ if (_elem.innerHTML !== _html ){
240
+ _elem.innerHTML = _html;
241
+ }
236
242
  } catch(e) {}
237
243
  //_this._initCache(_id);
238
244
  },
@@ -376,14 +382,7 @@ ELEM = {
376
382
  h = _elem.offsetHeight,
377
383
  _parent = _elem.parentNode;
378
384
  while (_parent && _parent.nodeName.toLowerCase() !== 'body') {
379
- if (!BROWSER_TYPE.ie) {
380
- _parentOverflow = document.defaultView.getComputedStyle(
381
- _parent, null
382
- ).getPropertyValue('overflow');
383
- }
384
- else {
385
- _parentOverflow = _parent.currentStyle.getAttribute('overflow');
386
- }
385
+ _this._getComputedStyle( _parent, 'overflow' );
387
386
  _parentOverflow = _parentOverflow !== 'visible';
388
387
  if (w > _parent.clientWidth && _parentOverflow) {
389
388
  w = _parent.clientWidth - _elem.offsetLeft;
@@ -433,6 +432,38 @@ ELEM = {
433
432
  return [w, h];
434
433
  },
435
434
 
435
+ _getVisibleLeftPosition: function(_id){
436
+ var
437
+ _this = ELEM,
438
+ x = 0,
439
+ _elem = _this._elements[_id];
440
+ while (_elem !== document) {
441
+ x += _elem.offsetLeft;
442
+ x -= _elem.scrollLeft;
443
+ _elem = _elem.parentNode;
444
+ if (!_elem) {
445
+ break;
446
+ }
447
+ }
448
+ return x;
449
+ },
450
+
451
+ _getVisibleTopPosition: function(_id){
452
+ var
453
+ _this = ELEM,
454
+ y = 0,
455
+ _elem = _this._elements[_id];
456
+ while (_elem !== document) {
457
+ y += _elem.offsetTop;
458
+ y -= _elem.scrollTop;
459
+ _elem = _elem.parentNode;
460
+ if (!_elem) {
461
+ break;
462
+ }
463
+ }
464
+ return y;
465
+ },
466
+
436
467
  /** = Description
437
468
  * Returns the real position of the element, subtracting whatever
438
469
  * scroll bars do to the position..
@@ -445,21 +476,11 @@ ELEM = {
445
476
  *
446
477
  **/
447
478
  getVisiblePosition: function(_id) {
448
- var _this = ELEM,
449
- x = 0,
450
- y = 0,
451
- _elem = _this._elements[_id];
452
- while (_elem !== document) {
453
- x += _elem.offsetLeft;
454
- y += _elem.offsetTop;
455
- x -= _elem.scrollLeft;
456
- y -= _elem.scrollTop;
457
- _elem = _elem.parentNode;
458
- if (!_elem) {
459
- break;
460
- }
461
- }
462
- return [x, y];
479
+ var _this = ELEM;
480
+ return [
481
+ _this._getVisibleLeftPosition(_id),
482
+ _this._getVisibleTopPosition(_id)
483
+ ];
463
484
  },
464
485
 
465
486
  /** = Description
@@ -473,28 +494,20 @@ ELEM = {
473
494
  *
474
495
  **/
475
496
  getOpacity: function(_id) {
476
- var _opacity,
477
- _try_opacity,
478
- _this = ELEM,
479
- _getStyle = _this.getStyle;
480
- // old safari (1.x):
481
- if (_opacity === _getStyle(_id, '-khtml-opacity')) {
482
- return parseFloat(_opacity);
483
- }
484
- // old mozilla (ff 1.0 and below):
485
- if (_opacity === _getStyle(_id, '-moz-opacity')) {
486
- return parseFloat(_opacity);
487
- }
488
- _try_opacity = _getStyle(_id, 'opacity', true);
489
- if (_opacity === _try_opacity || (_try_opacity === 0)) {
490
- return parseFloat(_opacity);
491
- }
492
- if (_opacity === (_this._elements[_id].currentStyle['filter'] || '').match(/alpha(opacity=(.*))/)) {
493
- if (_opacity[1]) {
494
- return parseFloat(_opacity[1]) / 100;
495
- }
496
- }
497
- return 1.0;
497
+ throw "ELEM.getOpacity: known error.";
498
+ // var
499
+ // _this = ELEM,
500
+ // _elem = _this.get(_id),
501
+ // _opacity = _this._getComputedStyle( _elem, 'opacity' );
502
+ // if (ELEM.ie && (_elem.currentStyle['filter'] || '').match(/alpha(opacity=(.*))/)) {
503
+ // if (_opacity[1]) {
504
+ // return parseFloat(_opacity[1]) / 100;
505
+ // }
506
+ // }
507
+ // else ( === 0)) {
508
+ // return parseFloat(_opacity);
509
+ // }
510
+ // return 1.0;
498
511
  },
499
512
 
500
513
  /** = Description
@@ -518,9 +531,6 @@ ELEM = {
518
531
  var _prevAlpha = _this.getStyle(_id, 'filter', true);
519
532
  _this._elements[_id].style.setAttribute('filter', _prevAlpha.replace(/alpha([^)]*)/gi, '') + 'alpha(opacity=' + _opacity * 100 + ')');
520
533
  }
521
- else if (BROWSER_TYPE.ie) {
522
- _this._elements[_id].style.setAttribute('opacity', _opacity);
523
- }
524
534
  else {
525
535
  _this._elements[_id].style.setProperty('opacity', _opacity, '');
526
536
  }
@@ -539,8 +549,7 @@ ELEM = {
539
549
  *
540
550
  **/
541
551
  getIntStyle: function(_id, _key) {
542
- var _value = ELEM.getStyle(_id, _key);
543
- return parseInt(_value, 10);
552
+ return parseInt(ELEM.getStyle(_id, _key), 10);
544
553
  },
545
554
 
546
555
  /** = Description
@@ -559,6 +568,16 @@ ELEM = {
559
568
  ELEM.setStyle(_id, 'height', _coords[3] + 'px');
560
569
  },
561
570
 
571
+ _getExtraLeftWidth: function(_id){
572
+ var _int = ELEM.getIntStyle;
573
+ return _int(_id, 'padding-left') + _int(_id, 'border-left-width');
574
+ },
575
+
576
+ _getExtraRightWidth: function(_id){
577
+ var _int = ELEM.getIntStyle;
578
+ return _int(_id, 'padding-right') + _int(_id, 'border-right-width');
579
+ },
580
+
562
581
  /** = Description
563
582
  * Returns the amount of width of the element taken by 'extra' space: border
564
583
  * and padding size.
@@ -571,8 +590,18 @@ ELEM = {
571
590
  *
572
591
  **/
573
592
  getExtraWidth: function(_id) {
593
+ var _this = ELEM;
594
+ return _this._getExtraLeftWidth(_id) + _this._getExtraRightWidth(_id);
595
+ },
596
+
597
+ _getExtraTopWidth: function(_id){
598
+ var _int = ELEM.getIntStyle;
599
+ return _int(_id, 'padding-top') + _int(_id, 'border-top-width');
600
+ },
601
+
602
+ _getExtraBottomWidth: function(_id){
574
603
  var _int = ELEM.getIntStyle;
575
- return _int(_id, 'padding-left') + _int(_id, 'padding-right') + _int(_id, 'border-left-width') + _int(_id, 'border-right-width');
604
+ return _int(_id, 'padding-bottom') + _int(_id, 'border-bottom-width');
576
605
  },
577
606
 
578
607
  /** = Description
@@ -587,8 +616,8 @@ ELEM = {
587
616
  *
588
617
  **/
589
618
  getExtraHeight: function(_id) {
590
- var _int = ELEM.getIntStyle;
591
- return _int(_id, 'padding-top') + _int(_id, 'padding-bottom') + _int(_id, 'border-top-width') + _int(_id, 'border-bottom-width');
619
+ var _this = ELEM;
620
+ return _this._getExtraTopWidth(_id) + _this._getExtraBottomWidth(_id);
592
621
  },
593
622
 
594
623
  /** = Description
@@ -930,6 +959,26 @@ ELEM = {
930
959
  }
931
960
  },
932
961
 
962
+ _setElementStyle: function(_elem,_key,_value){
963
+ _elem.style.setProperty(_key, _value, '');
964
+ },
965
+ _setElementStyleIE: function(_elem,_key,_value){
966
+ var
967
+ _this = ELEM,
968
+ _camelKey = _key.replace(
969
+ /((-)([a-z])(\w))/g,
970
+ function($0, $1, $2, $3, $4) {
971
+ return $3.toUpperCase() + $4;
972
+ }
973
+ );
974
+ _elem.style[_camelKey] = _value;
975
+ if (BROWSER_TYPE.ie6) {
976
+ if (iefix._traverseStyleProperties.indexOf(_key) !== -1) {
977
+ _this._ieFixesNeeded = true;
978
+ }
979
+ }
980
+ },
981
+
933
982
  /** = Description
934
983
  * Sets the named element style attribute value.
935
984
  *
@@ -948,8 +997,7 @@ ELEM = {
948
997
  var _this = ELEM,
949
998
  _cached = _this._styleCache[_id],
950
999
  _elems = _this._elements,
951
- _differs,
952
- _styleTodo;
1000
+ _differs;
953
1001
  _this._setStyleCount++;
954
1002
  if (_cached === undefined) {
955
1003
  _this._initCache(_id);
@@ -964,27 +1012,12 @@ ELEM = {
964
1012
  _this.setOpacity(_id, _value);
965
1013
  }
966
1014
  else {
967
- if( BROWSER_TYPE.ie ) {
968
- var _camelKey = _key.replace(
969
- /((-)([a-z])(\w))/g,
970
- function($0, $1, $2, $3, $4) {
971
- return $3.toUpperCase() + $4;
972
- }
973
- );
974
- _elems[_id].style[_camelKey] = _cached[_key];
975
- }
976
- else {
977
- _elems[_id].style.setProperty(_key, _cached[_key], '');
978
- }
979
- }
980
- if (BROWSER_TYPE.ie6) {
981
- if (iefix._traverseStyleProperties.indexOf(_key) !== -1) {
982
- _this._ieFixesNeeded = true;
983
- }
1015
+ _this._setElementStyle( _elems[_id], _key, _cached[_key] );
984
1016
  }
985
1017
  }
986
1018
  else {
987
- _elemTodoH = _this._elemTodoH;
1019
+ var
1020
+ _elemTodoH = _this._elemTodoH,
988
1021
  _styleTodo = _this._styleTodo[_id];
989
1022
  if (_styleTodo.indexOf(_key) === -1) {
990
1023
  _styleTodo.push(_key);
@@ -1071,6 +1104,25 @@ ELEM = {
1071
1104
  ];
1072
1105
  },
1073
1106
 
1107
+ _getComputedStyle: function(_elem,_key){
1108
+ return document.defaultView.getComputedStyle(_elem,null).getPropertyValue(_key);
1109
+ },
1110
+ _getComputedStyleIE: function(_elem,_key){
1111
+ if(_key === 'width'){
1112
+ return _elem.clientWidth+'px';
1113
+ }
1114
+ if(_key === 'height'){
1115
+ return _elem.clientHeight+'px';
1116
+ }
1117
+ var _camelName = _key.replace(
1118
+ /((-)([a-z])(\w))/g,
1119
+ function($0, $1, $2, $3, $4) {
1120
+ return $3.toUpperCase() + $4;
1121
+ }
1122
+ );
1123
+ return _elem.currentStyle[_camelName];
1124
+ },
1125
+
1074
1126
  /** = Description
1075
1127
  * Gets the named element style attribute value.
1076
1128
  *
@@ -1087,30 +1139,6 @@ ELEM = {
1087
1139
  *
1088
1140
  **/
1089
1141
  getStyle: function(_id, _key, _bypass){
1090
- var _this=ELEM,
1091
- _cached=_this._styleCache[_id],
1092
- _retval;
1093
- _this._getStyleCount++;
1094
- if ((_cached[_key] === undefined) || _bypass) {
1095
- if (!_bypass) {
1096
- _this._getStyleMissCount++;
1097
- }
1098
- if ((_key === 'opacity') && _bypass) {
1099
- _retval = _this.getOpacity(_id);
1100
- }
1101
- else if (BROWSER_TYPE.ie7 || BROWSER_TYPE.ie8){
1102
- _retval = _this._elements[_id].style[_key];
1103
- }
1104
- else {
1105
- _retval = document.defaultView.getComputedStyle(_this._elements[_id], null).getPropertyValue(_key);
1106
- }
1107
- _cached[_key] = _retval;
1108
- }
1109
- return _cached[_key];
1110
- },
1111
-
1112
- /* The Internet Explorer version of getStyle */
1113
- _getStyleIE: function( _id, _key, _bypass){
1114
1142
  var _this=ELEM,
1115
1143
  _cached=_this._styleCache[_id],
1116
1144
  _retval;
@@ -1123,13 +1151,7 @@ ELEM = {
1123
1151
  _retval = _this.getOpacity(_id);
1124
1152
  }
1125
1153
  else {
1126
- _camelName = _key.replace(
1127
- /((-)([a-z])(\w))/g,
1128
- function($0, $1, $2, $3, $4) {
1129
- return $3.toUpperCase() + $4;
1130
- }
1131
- );
1132
- _retval = _this._elements[_id].currentStyle[_camelName];
1154
+ _retval = _this._getComputedStyle(_this._elements[_id],_key);
1133
1155
  }
1134
1156
  _cached[_key] = _retval;
1135
1157
  }
@@ -1151,63 +1173,16 @@ ELEM = {
1151
1173
  if (!_elem) {
1152
1174
  return;
1153
1175
  }
1154
- _elemS = _elem.style;
1155
1176
  _loopMaxP = _styleTodo.length;
1156
1177
  _currTodo = _styleTodo.splice(0, _loopMaxP);
1157
1178
  for (_cid = 0; _cid !== _loopMaxP; _cid++) {
1158
- _key = _currTodo.pop();
1159
- _this._flushStylCount++;
1160
- if (_key === 'opacity') {
1161
- _retval = _this.setOpacity(_id, _cached[_key]);
1162
- }
1163
- else {
1164
- _elemS.setProperty(_key, _cached[_key], '');
1165
- }
1166
- }
1167
- },
1168
-
1169
- /* Internet Explorer version of _flushStyleCache */
1170
- _flushStyleCacheIE: function(_id) {
1171
- var _this = ELEM,
1172
- _styleTodo = _this._styleTodo[_id],
1173
- _cached = _this._styleCache[_id],
1174
- _elem = _this._elements[_id];
1175
- if (!_elem) {
1176
- return;
1177
- }
1178
- var _elemS = _elem.style,
1179
- _loopMaxP = _styleTodo.length,
1180
- i = 0,
1181
- _key,
1182
- _currTodo = _styleTodo.splice(0, _loopMaxP);
1183
- for (; i !== _loopMaxP; i++) {
1184
1179
  _key = _currTodo.pop();
1185
1180
  _this._flushStylCount++;
1186
1181
  if (_key === 'opacity') {
1187
1182
  _this.setOpacity(_id, _cached[_key]);
1188
1183
  }
1189
1184
  else {
1190
- if (BROWSER_TYPE.ie6) {
1191
- if (iefix._traverseStyleProperties.indexOf(_key) !== -1) {
1192
- _this._ieFixesNeeded = true;
1193
- }
1194
- }
1195
- try {
1196
- var _camelKey = _key.replace(
1197
- /((-)([a-z])(\w))/g,
1198
- function($0, $1, $2, $3, $4) {
1199
- return $3.toUpperCase() + $4;
1200
- }
1201
- );
1202
- // _elemS[_camelKey] = _cached[_key];
1203
- _elemS.setAttribute(
1204
- _camelKey,
1205
- _cached[_key]
1206
- );
1207
- }
1208
- catch(e) {
1209
- console.log(e);
1210
- }
1185
+ _this._setElementStyle( _elem, _key, _cached[_key] );
1211
1186
  }
1212
1187
  }
1213
1188
  },
@@ -1215,13 +1190,15 @@ ELEM = {
1215
1190
  /* The ELEM "post-constructor" */
1216
1191
  _init: function() {
1217
1192
 
1193
+ if(RSenceInit !== undefined){
1194
+ RSenceInit();
1195
+ }
1196
+
1218
1197
  var _this = ELEM;
1219
1198
 
1220
1199
  if (BROWSER_TYPE.ie) {
1221
- _this.getStyle = _this._getStyleIE;
1222
- // }
1223
- // if (BROWSER_TYPE.ie) {
1224
- _this._flushStyleCache = _this._flushStyleCacheIE;
1200
+ _this._getComputedStyle = _this._getComputedStyleIE;
1201
+ _this._setElementStyle = _this._setElementStyleIE;
1225
1202
  }
1226
1203
 
1227
1204
  if(!_this['_timer']){
@@ -1293,6 +1270,15 @@ ELEM = {
1293
1270
  _browserType.ie6 = _isIE && (_ua.indexOf("MSIE 6") !== -1);
1294
1271
  _browserType.ie7 = _isIE && (_ua.indexOf("MSIE 7") !== -1);
1295
1272
  _browserType.ie8 = _isIE && (_ua.indexOf("MSIE 8") !== -1);
1273
+ _browserType.ie9 = _isIE && (_ua.indexOf("MSIE 9") !== -1);
1274
+
1275
+ // Experimental; don't treat IE9 as an IE at all.
1276
+ // NOTE: IE9 Beta does still not behave like a standard web browser.
1277
+ // It will probably require as much tuning as earlier IE versions.
1278
+ if(_browserType.ie9){
1279
+ _browserType.ie = false;
1280
+ }
1281
+
1296
1282
  _browserType.firefox = _ua.indexOf("Firefox") !== -1;
1297
1283
  _browserType.firefox2 = _ua.indexOf("Firefox/2.") !== -1;
1298
1284
  _browserType.firefox3 = _ua.indexOf("Firefox/3.") !== -1;