// JavaScript Document

// Directory.ge eddition

eng=new Array(97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,87,82,84,83,67,74,90);
geo=new Array(4304,4305,4330,4307,4308,4324,4306,4336,4312,4335,4313,4314,4315,4316,4317,4318,4325,4320,4321,4322,4323,4309,4332,4334,4327,4310,4333,4326,4311,4328,4329,4319,4331,91,93,59,39,44,46,96);

function GeoUTF(inputElem, geochecked)
{		
		// Directory.ge eddition
		var nav = navigator.userAgent.toLowerCase();
		//alert(nav);
		if (nav.indexOf('mozilla') != -1 && nav.indexOf('msie') == -1)   // mozilla
		{
			inputElem.onkeypress = function(event){return mozillaGeoUTF(event,inputElem,geochecked)}
			return false;
		}
		
		
		if (event.keyCode == 96)
		{
			//alert (event.keyCode);
			geochecked.checked = geochecked.checked ? false: true;
			return false;
		}
		if (!geochecked.checked) return true;
		
		theKey =  event.keyCode;
		for (i = 0; i <eng.length; i++)
		{
			if (theKey == eng[i])
			{
				event.keyCode = geo[i];
				return false;
			}
		}
}

function mozillaGeoUTF(event,inputElem,geochecked)
{
	//alert(event.which);
	if (event.which == 96)
	{
		geochecked.checked = geochecked.checked ? false: true;
		return false;
	}
	if (!geochecked.checked) return true;
	
	var char = '';
	switch(event.which){
     case 97:   char = '\u10D0';  break; 
     case 98:   char = '\u10D1';  break;
     case 103:  char = '\u10D2';  break;
     case 100:  char = '\u10D3';  break;
     case 101:  char = "\u10D4";  break; 
     case 118:  char = "\u10D5";  break;
     case 122:  char = "\u10D6";  break;
     case 84:   char = "\u10D7";  break;
     case 105:  char = "\u10D8";  break;
     case 107:  char = "\u10D9";  break;
     case 108:  char = "\u10DA";  break;
     case 109:  char = "\u10DB";  break;
     case 110:  char = "\u10DC";  break;
     case 111:  char = "\u10DD";  break;
     case 112:  char = "\u10DE";  break;
     case 74:   char = "\u10DF";  break;
     case 114:  char = "\u10E0";  break;
     case 115:  char = "\u10E1";  break;
     case 116:  char = "\u10E2";  break;
     case 117:  char = "\u10E3";  break;
     case 102:  char = "\u10E4";  break;
     case 113:  char = "\u10E5";  break;
     case 82:   char = "\u10E6";  break;
     case 121:  char = "\u10E7";  break;
     case 83:   char = "\u10E8";  break;
     case 67:   char = "\u10E9";  break;
     case 99:   char = "\u10EA";  break;
     case 90:   char = "\u10EB";  break;
     case 119:  char = "\u10EC";  break;
     case 87:   char = "\u10ED";  break;
     case 120:  char = "\u10EE";  break;
     case 106:  char = "\u10EF";  break;
     case 104:  char = "\u10F0";  break;
     default:   return true;
  }
	var cursorPos	= inputElem.selectionStart;
	var valStart	= inputElem.value.substring(0,cursorPos);
	var valEnd		= inputElem.value.substring(cursorPos);
			
	inputElem.value = valStart + char + valEnd;
	
	cursorPos ++;
	inputElem.setSelectionRange(cursorPos,cursorPos);
	return false;
}

function GeoUTFBrowserCompat (inputElem)
{
	
	var nav = navigator.userAgent.toLowerCase();
	//alert(nav);
	if (nav.indexOf('mozilla') != -1 && nav.indexOf('msie') == -1)   // mozilla
	{
		inputElem.onkeypress = function(event){return mozillaGeoUTF(event,inputElem,geochecked)}
	}	
}
