String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.utfTable = function()
{
	var table = {
		'á' : 'a', 'Á' : 'A', 'ä' : 'a', 'Ä' : 'A', 'â' : 'a', 'Â' : 'A', 'ă' : 'a', 'Ă' : 'A', 'ą' : 'a', 'Ą' : 'A',
		'č' : 'c', 'Č' : 'C', 'ç' : 'c', 'Ç' : 'C', 'ć' : 'c', 'Ć' : 'C', 'ď' : 'd', 'Ď' : 'D', 'đ' : 'd', 'Đ' : 'D',
		'é' : 'e', 'É' : 'E', 'ě' : 'e', 'Ě' : 'E', 'ë' : 'e', 'Ë' : 'E', 'ę' : 'e', 'Ę' : 'E', 'í' : 'i', 'Í' : 'I',
		'î' : 'i', 'Î' : 'I', 'ł' : 'l', 'Ł' : 'L', 'ľ' : 'l', 'Ľ' : 'L', 'ĺ' : 'l', 'Ĺ' : 'L', 'ń' : 'n', 'Ń' : 'N',
		'ň' : 'n', 'Ň' : 'N', 'ó' : 'o', 'Ó' : 'O', 'ô' : 'o', 'Ô' : 'O', 'ö' : 'o', 'Ö' : 'O', 'ő' : 'o', 'Ő' : 'O',
		//'o' : 'o', 'O' : 'O', // proč tohle tady je...
		'ř' : 'r', 'Ř' : 'R', 'ŕ' : 'r', 'Ŕ' : 'R', 'š' : 's', 'Š' : 'S', 'ś' : 's', 'Ś' : 'S',
		'ş' : 's', 'Ş' : 'S', 'ť' : 't', 'Ť' : 'T', 'ţ' : 't', 'Ţ' : 'T', 'ú' : 'u', 'Ú' : 'U', 'ů' : 'u', 'Ů' : 'U',
		'ü' : 'u', 'Ü' : 'U', 'ű' : 'u', 'Ű' : 'U', 'ý' : 'y', 'Ý' : 'Y', 'ž' : 'z', 'Ž' : 'Z', 'ź' : 'z', 'Ź' : 'Z',
		'ż' : 'z', 'Ż' : 'Z', 'ß' : 'ss'
	};

	return table;
}

String.prototype.utf2gsm7 = function()
{
	var unallowed = /[^a-zA-Z0-9@£$¥èéùìòÇLFØøCRÅåΔ_ΦΓΛΩΠΨΣΘΞESCÆæßÉ!\"#¤%&\'\(\)\*\+,\-\./:;\<\=\>\?¡ÄÖÑÜ§¿äöñüà\n\^{}\\\[~\]\|€\ ]/g;
	var gsm7 = this.replace(unallowed, '?');
	return gsm7;
}

String.prototype.isUtf = function()
{
	for (var i = 0; i < this.length; i++) {
		ch = this[i];
		if (typeof this.utfTable()[ch] != 'undefined') {
			return true;
		}
	}
	return false;
}

String.prototype.utf2ascii = function()
{
	var ascii = '';
	for (var i = 0; i < this.length; i++) {
		var ch = this.charAt(i);
		if (typeof this.utfTable()[ch] != 'undefined') {
			ascii += this.utfTable()[ch];
		} else {
			ascii += ch;
		}
	}

	return ascii;
}
