//Objetivo: Centralizar rutinas de tratamiento de cadenas en javascript independientemente del navegador.
//Desarrollada el 11 de enero de 2002. David Bayo
//Comentarios adicionales:
//Explorer 5.5 falla al hacer parseInt de 08 y 09 -> da 0 cuando deberia dar 8 y 9
//Por este motivo hay una multiplicación por 1
/*
Añade la cadena appendString delante de la cadena inputString 
hasta obtener una cadena de longitud numOfChars. Si no se puede 
conseguir una cadena de longitud numOfChars (caso que sólo puede 
suceder si appendString es de longitud superior a 1) se devuelve
la cadena más grande posible sin llegar a pasarse.
*/
function appendLeftString(inputString, appendString, numOfChars) 
//Entrada: Cadena de entrada, Cadena a concatenar y número máximo de carácteres de la cadena resultante
{
    if (inputString == null) return null;
    var returnString = inputString;

    for (;parseInt(numOfChars * 1) >= returnString.length + appendString.length;)
        returnString = appendString + returnString;

    return returnString;
}

/*
Añade la cadena appendString detrás de la cadena inputString 
hasta obtener una cadena de longitud numOfChars. Si no se puede 
conseguir una cadena de longitud numOfChars (caso que sólo puede 
suceder si appendString es de longitud superior a 1) se devuelve
la cadena más grande posible sin llegar a pasarse.
*/
function appendRightString(inputString, appendString, numOfChars) {
//Entrada: Cadena de entrada, Cadena a concatenar y número máximo de carácteres de la cadena resultante
    if (inputString == null) return null;
    var returnString = inputString;

    for (; parseInt(numOfChars *1) >= returnString.length + appendString.length;)
        returnString += appendString;

    return returnString;
}

//Desarrollada el 18 de septiembre de 2001.
function trimLeftChar(inputString, source) {


    for (i = 0; i != inputString.length - 1 ; i++)
        if (inputString.charAt(i) == source) inputString = inputString.substring(1,inputString.length);
        else return inputString;

    return inputString;
}

function trimRightChar(inputString, source) {

    for (i = inputString.length - 1; i != -1 ; i--)
        if (inputString.charAt(i) == source) inputString = inputString.substring(0,i);
        else return inputString;

    return inputString;
}

function trim(inputString) {
    return trimSource(inputString,' ');
}

function trimSource(inputString, source) {
    return trimRightChar(trimLeftChar(inputString,source),source);
}

