if ( typeof PuntoSwitcher == 'undefined' )
{
	
	
PuntoSwitcher = function( options )
{
	//Включение Punto Switcher
	this.enabled = true;
	//Соответствие к русскому символу
	this.latinToRus = {
		'Q': 'Й', 'W': 'Ц', 'E': 'У',
		'R': 'К', 'T': 'Е', 'Y': 'Н',
		'U': 'Г', 'I': 'Ш', 'O': 'Щ',
		'P': 'З', '{': 'Х', '}': 'Ъ',
		'A': 'Ф', 'S': 'Ы', 'D': 'В',
		'F': 'А', 'G': 'П', 'H': 'Р',
		'J': 'О', 'K': 'Л', 'L': 'Д',
		':': 'Ж', '"': 'Э', 'Z': 'Я',
		'X': 'Ч', 'C': 'С', 'V': 'М',
		'B': 'И', 'N': 'Т', 'M': 'Ь',
		'<': 'Б', '>': 'Ю',

		'q': 'й', 'w': 'ц', 'e': 'у',
		'r': 'к', 't': 'е', 'y': 'н',
		'u': 'г', 'i': 'ш', 'o': 'щ',
		'p': 'з', '[': 'х', ']': 'ъ',
		'a': 'ф', 's': 'ы', 'd': 'в',
		'f': 'а', 'g': 'п', 'h': 'р',
		'j': 'о', 'k': 'л', 'l': 'д',
		';': 'ж', '\'': 'э', 'z': 'я',
		'x': 'ч', 'c': 'с', 'v': 'м',
		'b': 'и', 'n': 'т', 'm': 'ь',
		',': 'б', '.': 'ю', '/': '.'
	};	
	
	this.typeInLatin = false;
};


/**
 * Подменивает латинские символы на русские.
 */
PuntoSwitcher.prototype.convertToRus = function( key, input )
{	
	//Если выключен
	if ( !this.enabled )
		return;
	
	if ( key.keyCode == 8 || key.keyCode == 46 || key.keyCode == 13 || key.keyCode == 35 || key.keyCode == 36 || key.keyCode == 37 
		|| key.keyCode == 38 || key.keyCode == 39 || key.keyCode == 40 )
		return;
	
	var result = '';

	//Переводим всю строчку в русские значения
	for ( i = 0; i < $(input).val().length; i++ )
	{
		var symbol = $(input).val().substr( i, 1 );
		
		//Если точка и печатают на русском
		if ( symbol == '.' && !this.typeInLatin )
		{
			result += symbol;
		}		
		//Если точка и печатают на латинском и символ не последний
		else if ( symbol == '.' && this.typeInLatin && i != $(input).val().length - 1 )
		{
			result += symbol;
		}
		else if ( this.latinToRus[ symbol ] != undefined )
		{
			result += this.latinToRus[ symbol ];
			this.typeInLatin = true;
		}
		else
		{
			result += symbol;
		}
	}
	
	$(input).val( result );
}


}
