/**	
 * Funkce pro prevod znaku definovanych vstupnim parametrem za znaky definovane v druhem parametru - 
 *		ve vstupnim retezci, nad kterym chceme zmeny provest, jsou vsechny vyskyty i-teho znaku vstupni 
 *		definice nahrazeny za i-ty znak vystupni definice
 * @param input vstupni retezec, ve kterem chceme provest nahrady
 * @param from retezec s definici vstupnich znaku - znaky, ktrere chceme v textu nahrazovat
 * @param to retezec s definici vystupnich znaku - znaky, za ktere chceme v textu nahrazavat
 * @return Vraci na vystup retezec se zamenenymi znaky.
 */
function strtr(input, from, to) {

	var output = input;
	
	if (from.length == to.length) {
		for (i = 0; i < from.length; i++) {
				output = output.replace(RegExp(from[i], "g"), to[i]);
		}
	}
	
	return output;
}

/**
 * Metoda String tridy pro orezani bilych znaku kolem retezce.
 * @return Vraci na vystup orezany retez.
 */
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
    // To same ale mene citelne ale zase jenom na jeden replace ... :
    // return this.replace(/^\s*(\b.*\b|)\s*$/, '$1');
}

/**
 * Funkce orizne nad vstupnim stringem bile znaky z obou kraju.
 * @param input vstupni retezec, ktery chceme oriznout
 * @return Vraci orizly retezec na vystup.
 */
function trim(input) {
	return input.trim();
}

/**
 * Funkce "rozseka" vstupni resource string do mapy.
 *  resource string = string , kde jednotlive radky jsou tvaru 'var.name = var.value'
 * @param resource string, tvaru resource stringu, ktery chceme rozsekat do mapy.
 * @return Vraci mapu promenych tvaru {name::String -> value::String} vzniklou z resource stringu.
 */
function getVariableMapFromResourceString(resource) {
	// Kazdy objekt je v JS vlastne mapa...
	var resultMap = new Object();
	
	var lines = resource.split("\n");
	for(var i = 0; i < lines.length; i++) {
		var line = lines[i];
		var lineParts = line.split("=", 2);
		resultMap[lineParts[0].trim()] = lineParts[1].trim();
	}
	
	return resultMap;
}
 