// In the name of God

// Farsi keycode generator for HTML Forms
// Written by: Saeed Mohajeri - I.R.Iran
// Reference: www.tebyan.net

var Language;
Language = 1;

function FormkeyDown()
{	
	if  ((event.ctrlKey) && (event.shiftKey))
	{
		if (Language == 1)
			Language = 2;
		else
			Language = 1;
	}
	
}

/*function FormKeyUp()		// Updating Status Bar Text
{
	                        window.status=Text1.value;
}*/

function FormkeyPress()         // Converting English codes to Farsi
{
	var KeyCode = window.event.keyCode;     // KeyCode = The Code of currently pressed key
	var KeyNewCode=KeyCode;                 // KeyNewCode = Converted Code
	if(Language == 2) {return false; exit;} // Don't convert code if current language is 						// English
	if (Language == 1)
		switch (KeyCode)
		{
			case (72)		: KeyNewCode = 0x0622; break;
			case (104)		: KeyNewCode = 0x0627; break;
			case (102):
			case (70)       : KeyNewCode = 0x0628; break;
			case (96)		: KeyNewCode = 0x00F7; break;
			case (126)		: KeyNewCode = 0x00D7; break;
			case (106):
			case (74)    	: KeyNewCode = 0x062A; break;
			case (101):
			case (69)    	: KeyNewCode = 0x062B; break;
			case (91)		: KeyNewCode = 0x062C; break;
			case (93)		: KeyNewCode = 0x0686; break;
			case (112)		: KeyNewCode = 0x062D; break;
			case (80)		: KeyNewCode = 0x005C; break;
			case (111)		: KeyNewCode = 0x062E; break;
			case (79)		: KeyNewCode = 0x005D; break;
			case (110)		: KeyNewCode = 0x062F; break;
			case (78)		: KeyNewCode = 0x0623; break;
			case (98)		: KeyNewCode = 0x0630; break;
			case (66)		: KeyNewCode = 0x0625; break;
			case (118)		: KeyNewCode = 0x0631; break;
			case (86)		: KeyNewCode = 0x0624; break;
			case (99)		: KeyNewCode = 0x0632; break;
			case (67)		: KeyNewCode = 0x0698; break;
			case (92):
			case (124)    	: KeyNewCode = 0x067E; break;
			case (115):
			case (83)    	: KeyNewCode = 0x0633; break;
			case (97):
			case (65)    	: KeyNewCode = 0x0634; break;
			case (119):
			case (87)    	: KeyNewCode = 0x0635; break;
			case (113):
			case (81)    	: KeyNewCode = 0x0636; break;
			case (120):
			case (88)    	: KeyNewCode = 0x0637; break;
			case (122)		: KeyNewCode = 0x0638; break;
			case (90)		: KeyNewCode = 0x0629; break;
			case (117):
			case (85)    	: KeyNewCode = 0x0639; break;
			case (121)		: KeyNewCode = 0x063A; break;
			case (89)		: KeyNewCode = 0x061B; break;
			case (116)		: KeyNewCode = 0x0641; break;
			case (84)		: KeyNewCode = 0x060C; break;
			case (114):
			case (82)    	: KeyNewCode = 0x0642; break;
			case (59)		: KeyNewCode = 0x0643; break;
			case (39)		: KeyNewCode = 0x06AF; break;
			case (103):
			case (71)     	: KeyNewCode = 0x0644; break;
			case (108)		: KeyNewCode = 0x0645; break;
			case (76)		: KeyNewCode = 0x00BB; break;
			case (107)		: KeyNewCode = 0x0646; break;
			case (75)		: KeyNewCode = 0x00AB; break;
			case (44)		: KeyNewCode = 0x0648; break;
			case (105)		: KeyNewCode = 0x0647; break;
			case (73)		: KeyNewCode = 0x005B; break;
			case (100):
			case (68)    	: KeyNewCode = 0x064A; break;
			case (109)		: KeyNewCode = 0x0626; break;
			case (77)		: KeyNewCode = 0x0621; break;
			case (63)		: KeyNewCode = 0x061F; break;
			case (60)		: KeyNewCode = 0x003C; break;
			case (62)		: KeyNewCode = 0x003E; break;	
						
			case (48)	:KeyNewCode = 0x06F0; break;
			case (49)	:KeyNewCode = 0x06F1; break;
			case (50)	:KeyNewCode = 0x06F2; break;
			case (51)	:KeyNewCode = 0x06F3; break;
			case (52)	:KeyNewCode = 0x06F4; break;
			case (53)	:KeyNewCode = 0x06F5; break;
			case (54)	:KeyNewCode = 0x06F6; break;
			case (55)	:KeyNewCode = 0x06F7; break;
			case (56)	:KeyNewCode = 0x06F8; break;
			case (57)	:KeyNewCode = 0x06F9; break;
			//default: KeyNewCode=KeyCode;
			}
			
			//FormKeyUp(KeyNewCode);
			window.event.keyCode = KeyNewCode;   // Updating key code
}

