/*
	JS Extending Library
	Array functions.
	build 200806051950
*/

Array.prototype.current = function() {
	for (var k in this) return this[k];
}

Array.prototype.key = function() {
	for (var k in this) return k;
}

Array.prototype.sum = function() {
	var k;
	var res = 0;
	for (k in this) res += parseInt(this[k]);
	return res;
}

Array.prototype.inArray = function(v) {
	var SO = this.length;
	for (var i = 0; i < SO; i++) {
		if (this[i] == v) return true;
	}
	return false;
}

Array.prototype.in_array = function(v) {
	var SO = this.length;
	for (var i = 0; i < SO; i++) {
		if (this[i] == v) return true;
	}
	return false;
}

Array.prototype.keyInArray = function(k) {
	return isset(this[k]);
}

Array.prototype.implode = function(glue) {
	if (! isset(glue)) var glue = ',';
	return this.join(glue);
}

Array.prototype.deleteByValue = function(v) {
	v = v.toString();
	var res = [];
	var SO = this.length;
	for (var i = 0; i < SO; i++) {
		if (this[i].toString() != v) res.push(this[i]);
	}
	return res;
}

Array.prototype.search = function(v) {
	var k;
	for (k in this) {
		if (this[k] == v) return k;
	}
	return false;
}

Array.prototype.deleteByKey = function(k) {
	var res = [], SO = this.length;
	for (var i = 0; i < SO; ++i) {
		if (i != k) res.push(this[i]);
	}
	return res;
}

function count(a) {
	var k;
	var i = 0;
	for (k in a) {
		if (typeof a[k] == 'object') i++;
	}
	return i;
}

function in_array(v, a) {
	var el;
	for (el in a) {
		if (a[el] == v) return true;
	}
	return false;
}

function deleteByKey(k, a) {
	var el, res = {};
	for (el in a) {
		if (el != k) res[el] = a[el];
	}
	return res;
}

function implode(glue, a) {
	var k, res = [];
	for (k in a) res.push(a[k]);
	return res.join(glue);
}
