-
-
-
-
-
-
-
-
- Object.extend = function(dest, src) {
-
- for(property in src)
- dest[property] = src[property];
- return dest;
- }
-
- Class = {
- create:function() {
- return function() {
- this.initialize.apply(this, arguments);
- }
- }
- }
-
-
-
-
-
- Function.prototype.bind = function(obj) {
- var __method = this;
- return function() {
- __method.apply(obj, arguments);
- }
- }
-
- function debug(data) {
- alert(data);
- }
-
-
-
-
-
-
-
-
- _ArrayExtension = {
-
-
-
-
-
-
-
- each:function(func) {
- for(var i = 0; i < this.length;i++)
- func(this[i]);
- },
-
-
-
-
- last:function() { return this[this.length - 1]; },
-
-
-
-
-
-
-
-
- indexOf: function(object) {
- for(var i = 0; i < this.length; i++)
- if(object == this[i]) return i;
- return -1;
- }
-
- }
-
- Object.extend(Array.prototype, _ArrayExtension);
-
-
-
-
-
- _NumExtension = {
-
-
-
-
-
-
-
- times:function(func) {
- if(this <= 0) return;
- for(var i = 1; i <= this; i++)
- func();
- },
-
-
-
- toColourPart:function() {
- if(this<=255)return this.toHex();
- },
-
-
-
-
- toHex:function() {
- var hexDigits = ['0', '1', '2', '3', '4', '5', '6', '7', '8'
- , '9', 'a', 'b', 'c', 'd', 'e', 'e'];
- var hex_r = this % 16;
- var hex_q = (this-hex_r)/16;
- return hexDigits[hex_q] + hexDigits[hex_r];
- }
- }
- Object.extend(Number.prototype, _NumExtension)
-
- Object.extend(String.prototype, {
-
-
-
-
- camelize:function() {
- var ar = this.split('-');
- var ret = ar[0];
- for(var i = 1; i < ar.length; i++)
- ret+=ar[i].charAt(0).toUpperCase() + ar[i].substring(1);
- return ret;
- },
-
- _Dec:function() {
- var hexDigits = ['0', '1', '2', '3', '4', '5', '6', '7', '8'
- , '9', 'a', 'b', 'c', 'd', 'e', 'f'];
- var ret = 0;
- for(var i = 0; i < this.length; ++i) {
- ret = ret * 16 + hexDigits.indexOf(this.charAt(i).toLowerCase());
- }
- return ret;
- },
-
-
-
-
-
-
- HEX:function() {
- var ret = '#';
- if(this.substr(0, 4) == 'rgb(') {
- colours = this.RGB();
- [colours.r, colours.g, colours.b].each(function(col) { ret += col.toColourPart(); });
- }
- else if(this.charAt(0) == '#') {
- if(this.length == 4) {
- sub = this.substring(1);
- ret += sub + sub;
- }
- else
- ret = this;
- }
- return (ret == '#' ? null:ret);
- },
-
-
-
-
-
- RGB:function() {
- var rgb = {
- r:0,
- g:0,
- b:0
- };
- if(this.substr(0, 4) == 'rgb(') {
- colours = this.substring(4, this.length-1).split(',');
- rgb.r = parseInt(colours[0]);
- rgb.g = parseInt(colours[1]);
- rgb.b = parseInt(colours[2]);
- }
- else if(this.charAt(0) == '#') {
-
- var hex = this.HEX();
-
- hex = hex.substring(1);
- rgb.r = hex.substring(0, 2)._Dec();
- rgb.g = hex.substring(2, 4)._Dec();
- rgb.b = hex.substring(4)._Dec();
- }
- return rgb;
- }
- });
-
-
-
-
-
-
-
- function $A(iterable) {
- var ret = [];
- for(var i = 0; i < iterable.length; i++)
- ret.push(iterable[i]);
- return ret;
- }
-