Subversion Repositories HomeAutomation

Rev

Rev 1601 | Rev 1604 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1.  
  2. function Start()
  3. {
  4.     LoadScript("user/autostart.js");
  5. }
  6.  
  7. function Extend(descendant, parent)
  8. {
  9.     var s_constructor = parent.toString();
  10.     var a_match = s_constructor.match(/\s*function (.*)\(/);
  11.    
  12.     if (a_match != null)
  13.     {
  14.         descendant.prototype[a_match[1]] = parent;
  15.     }
  16.    
  17.     for (var m in parent.prototype)
  18.     {
  19.         descendant.prototype[m] = parent.prototype[m];
  20.     }
  21. }
  22.  
  23. String.prototype.ltrim = function(charlist)
  24. {
  25.     charlist = !charlist ? ' \s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
  26.     var re = new RegExp('^[' + charlist + ']+', 'g');
  27.     return this.replace(re, '');
  28. }
  29.  
  30. String.prototype.rtrim = function(charlist)
  31. {
  32.     charlist = !charlist ? ' \s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
  33.     var re = new RegExp('[' + charlist + ']+$', 'g');
  34.     return this.replace(re, '');
  35. }
  36.  
  37. String.prototype.trim = function(charlist)
  38. {
  39.     var str = this.ltrim(charlist);
  40.     return str.rtrim(charlist);
  41. }
  42.  
  43. function EventBase()
  44. {
  45.     this.callbacks_ = new Array();
  46. }
  47.  
  48. EventBase.prototype.callbacks_ = null;
  49.  
  50. EventBase.prototype.Bind = function(event_name, callback)
  51. {
  52.     if (typeof this.callbacks_[event_name] == 'undefined')
  53.     {
  54.         this.callbacks_[event_name] = new Array();
  55.     }
  56.    
  57.     this.callbacks_[event_name].push(callback);
  58. }
  59.  
  60. EventBase.prototype.Trigger = function(event_name)
  61. {
  62.     if (typeof this.callbacks_[event_name] != 'undefined')
  63.     {
  64.         for (var n = 0; n < this.callbacks_[event_name].length; n++)
  65.         {
  66.             this.callbacks_[event_name][n].apply(null, Array.prototype.slice.call(arguments, 0));
  67.         }
  68.     }
  69. }
  70.