//utils lib

/**
 * Removes duplicates in the array 'a'
 * @author Johan Känngård, http://dev.kanngard.net
 */
function unique(a) {
	tmp = new Array();
	for(i = 0 ; i < a.length; i++){
		if(!contains(tmp, a[i])) tmp[tmp.length++]=a[i];
	}
	return tmp;
}

/**
 * Returns true if 's' is contained in the array 'a'
 * @author Johan Känngård, http://dev.kanngard.net
 */
function contains(a, e) {
	for(j=0;j<a.length;j++)if(a[j]==e)return true;
	return false;
}


function array_delEmpty(array) {
	var tmp = [];
	//le borro las comillas a las keywords
	for (i = 0; i < array.length; i++) {
		array[i] = array[i].replace(/"/ig, "");

		//elimino los elementos en blanco o vacios
		if ( (array[i] != ' ') && (array[i] != '') )
			tmp[tmp.length++] = array[i];
	}

	return tmp;
}


/**
 * Formato de dinero a un string
 *
 */
function fmtMoney(n, c, d, t){
var m = (c = Math.abs(c) + 1 ? c : 2, d = d || ",", t = t || ".",
        /(\d+)(?:(\.\d+)|)/.exec(n + "")), x = m[1].length > 3 ? m[1].length % 3 : 0;
    return (x ? m[1].substr(0, x) + t : "") + m[1].substr(x).replace(/(\d{3})(?=\d)/g,
        "$1" + t) + (c ? d + (+m[2] || 0).toFixed(c).substr(2) : "");
}
/**
 * Ordenamiento de arrays
 *
 */
function SortRank(a,b) {
	if (a.rank < b.rank) return -1;
	if (a.rank > b.rank) return 1;
	return 0;
}

function SortPrice(a,b){
	if (a.precio < b.precio) return -1;
	if (a.precio > b.precio) return 1;
	return 0;
}
function SortCat(a,b){
	if (a.cat > b.cat) return -1;
	if (a.cat < b.cat) return 1;
	return 0;
}

/**
 * string al cual se le reemplazan
 * los caracteres especiales por "-"
 */
function GetURL(name) {
	name = name.replace(/[\\\|\\/\:\*\?\<\>\ ]/g, '-');
	name = name.toLowerCase();
	return(name);
}

function adjust_text(text, line_length) {
	var guion = text.split('-');
	var space = text.split(' ');

	var array = (space.length >= guion.length) ? space : guion;

	var result = new Array(2);
	var _name = String('');
	var _descr = String('');

	for (i=0; i < array.length; i++) {
		newlen = _name.length + array[i].length;
			if ( newlen <= line_length){
				_name+= array[i]+' ';
			} else {
				last = i;
				break;
			}
			last=i+1;
	}

	for (i=last; i < array.length; i++) {_descr+= array[i]+' ';}


	var texto = String(text);
	result[0]= _name.substr(0, 25);
	result[1]= (_descr.length > 25) ? _descr.substr(0, 22)+'...' : _descr;

	//result[0] = texto.substr(0, 25);
	//result[1] = texto.substr(25)

	return (result);
}

function getCategoStr(id) {
	if (id == 0) return 'resultados';

	for (var i = 0; i < categorias.length; i++) {
		if ( id == categorias[i].id ) return categorias[i].name.toLowerCase();
	}
}

function getCategoStr2(id) {
	if (id == 0) return false;

	for (var d = 0; d < categorias.length; d++) {
		if ( id == categorias[d].id  ) return categorias[d].name;
	}
}

function replaceNonAcute(str) {

	var chars = [
		{char: '\xE1', code:'a'},
		{char: '\xE9', code:'e'},
		{char: '\xED', code:'i'},
		{char: '\xF3', code:'o'},
		{char: '\xFA', code:'u'},
		{char: '\xF1', code:'n'},
		{char: '\\?', code: ''}
	]

	str = str.toLowerCase();

	for (var i = 0; i < chars.length; i++) {
		var reg = new RegExp(chars[i].char, "g");
		str = str.replace(reg, chars[i].code)
	}

	return str;
}

function keywordsInStr(keys, str) {

	for (y = 0; y < keys.length; y++) {
		if ( replaceNonAcute(str).indexOf(replaceNonAcute(keys[y])) == -1 ) return false;
	}
	return true;
}

function getTopList(array) {
	array.sort(SortRank);

	return array[0];
}

function include_db(db) {
	rqDb(db)
}
