Hacked By AnonymousFox

Current Path : C:/AppServ/www/new_msd/webengine/lib/
Upload File :
Current File : C:/AppServ/www/new_msd/webengine/lib/moo.extend.js

Function.extend({

	bind: function(bind){

		var fn = this, args = $A(arguments), bind = args.shift();

		return function(){

			return fn.apply(bind, args.concat($A(arguments)));

		};

	},

	bindAsEventListener: function(bind){

		var fn = this, args = $A(arguments), bind = args.shift();

		return function(e){

			fn.apply(bind, [e || window.event].concat(args));

			return false;

		};

	}

});



Window.extend({

	stopEvent: function(e){

		if (e.stopPropagation){

			e.stopPropagation();

			e.preventDefault();

		} else {

			e.returnValue = false;

			e.cancelBubble = true;

		}

		return false;

	}

});



Array.extend({

	indexOf: function(obj){

		var l = this.length, i = 0;

		for (i; i < l; i++) if (this[i] == obj) return i;

		return -1;

	},

	last: function(){

		return this[this.length - 1];

	}

});



String.extend({

	sub: function(pattern, replacement){

		var result = '', source = this, match;

		if ($type(replacement) != 'function'){

			var template = new Template(replacement);

			replacement = function(match){

				return template.parse(match);

			}

		}



		while (source.length > 0) {

			if (match = source.match(pattern)) {

				result += source.slice(0, match.index);

				result += (replacement(match) || '').toString();

				source  = source.slice(match.index + match[0].length);

			} else result += source, source = '';

		}

		return result;

	}

});



var Template = new Class({



	initialize: function(template, pattern) {

		this.template = template.toString();

		this.pattern  = pattern || Template.Pattern;

	},



	parse: function(object) {

		return this.template.sub(this.pattern, function(match) {

			var before = match[1];

			if (before == '\\') return match[2];

			return before + (object[match[3]] || '').toString();

		});

	}

});

Template.Pattern = /(^|.|\r|\n)(\{\$(.*?)\})/;

Hacked By AnonymousFox1.0, Coded By AnonymousFox