//Reemplaza en 'string' 'token' por 'newtoken' devolviendo 'string' con los reemplazos efectuados
function replace(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}


//Función de desescapado específico
function desescapa(cadena)
{
  return replace(cadena, '*#*', '"');
}


//Devuelve true si el valor CONTIENE espacios (tabuladores, espacios o saltos de carro)
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}

//Devuelve true si el valor es un real positivo
function isNumeric(val){return(parseFloat(val,10)==(val*1));}


//Devuelve true si es un entero del 0 al 9
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

//Devuelve true si el valor es un entero
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
	}


//Quita espacios en blanco, tabuladores y saltos por la izquierda
function LTrimAll(str) {
	if (str==null){return str;}
	for (var i=0; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i++);
	return str.substring(i,str.length);
	}
	
//Quita espacios en blanco, tabuladores y saltos por la derecha
function RTrimAll(str) {
	if (str==null){return str;}
	for (var i=str.length-1; str.charAt(i)==" " || str.charAt(i)=="\n" || str.charAt(i)=="\t"; i--);
	return str.substring(0,i+1);
	}
	
//Quita espacios en blanco, tabuladores y saltos por la izquierda y por la derecha
function trim(str) {
	return LTrimAll(RTrimAll(str));
	}
