
' File= Includes\Farsi\FarsiMaker.VBS

Option Explicit

Dim ConvTable(100,1), bFarsi


Sub InitConvTable
	bFarsi = True
    ConvTable(0,0) = 13
    ConvTable(0,1) = 13	
    ConvTable(1,0) = 32
    ConvTable(1,1) = 32
    ConvTable(2,0) = 33
    ConvTable(2,1) = 33
    ConvTable(3,0) = 34
    ConvTable(3,1) = 1563
    ConvTable(4,0) = 35
    ConvTable(4,1) = 35
    ConvTable(5,0) = 36
    ConvTable(5,1) = 36
    ConvTable(6,0) = 37
    ConvTable(6,1) = 37
    ConvTable(7,0) = 38
    ConvTable(7,1) = 38
    ConvTable(8,0) = 39
    ConvTable(8,1) = 1711
    ConvTable(9,0) = 40
    ConvTable(9,1) = 41
    ConvTable(10,0) = 41
    ConvTable(10,1) = 40
    ConvTable(11,0) = 42
    ConvTable(11,1) =215
    ConvTable(12,0) = 43
    ConvTable(12,1) =43
    ConvTable(13,0) = 44
    ConvTable(13,1) =1608
    ConvTable(14,0) = 46
    ConvTable(14,1) = 46
    ConvTable(15,0) = 47
    ConvTable(15,1) = 47
    ConvTable(16,0) = 48
    ConvTable(16,1) = 1776
    ConvTable(17,0) = 49
    ConvTable(17,1) = 1777
    ConvTable(18,0) = 50
    ConvTable(18,1) = 1778
    ConvTable(19,0) = 51
    ConvTable(19,1) = 1779
    ConvTable(20,0) = 52
    ConvTable(20,1) = 1780
    ConvTable(21,0) = 53
    ConvTable(21,1) = 1781
    ConvTable(22,0) = 54
    ConvTable(22,1) = 1782
    ConvTable(23,0) = 55
    ConvTable(23,1) = 1783
    ConvTable(24,0) = 56
    ConvTable(24,1) = 1784
    ConvTable(25,0) = 57
    ConvTable(25,1) = 1785
    ConvTable(26,0) = 58
    ConvTable(26,1) = 58
    ConvTable(27,0) = 59
    ConvTable(27,1) = 1603
    ConvTable(28,0) = 60
    ConvTable(28,1) = 1572
    ConvTable(29,0) = 61
    ConvTable(29,1) = 61
    ConvTable(30,0) = 62
    ConvTable(30,1) = 1548
    ConvTable(31,0) = 63
    ConvTable(31,1) = 1567
    ConvTable(32,0) = 64
    ConvTable(32,1) = 64
    ConvTable(33,0) = 65
    ConvTable(33,1) = 1616
    ConvTable(34,0) = 66
    ConvTable(34,1) = 1571
    ConvTable(35,0) = 67
    ConvTable(35,1) = 155
    ConvTable(36,0) = 68
    ConvTable(36,1) = 1609
    ConvTable(37,0) = 69
    ConvTable(37,1) = 1615
    ConvTable(38,0) = 70
    ConvTable(38,1) = 145
    ConvTable(39,0) = 71
    ConvTable(39,1) = 71
    ConvTable(40,0) = 72
    ConvTable(40,1) = 1570
    ConvTable(41,0) = 73
    ConvTable(41,1) = 1577
    ConvTable(42,0) = 76
    ConvTable(42,1) = 44
    ConvTable(43,0) = 77
    ConvTable(43,1) = 1569
    ConvTable(44,0) = 78
    ConvTable(44,1) = 1573
    ConvTable(45,0) = 79
    ConvTable(45,1) = 247
    ConvTable(46,0) = 80
    ConvTable(46,1) = 8205
    ConvTable(47,0) = 81
    ConvTable(47,1) = 1614
    ConvTable(48,0) = 82
    ConvTable(48,1) = 1612
    ConvTable(49,0) = 83
    ConvTable(49,1) = 1613
    ConvTable(50,0) = 84
    ConvTable(50,1) = 8207
    ConvTable(51,0) = 85
    ConvTable(51,1) = 1618
    ConvTable(52,0) = 86
    ConvTable(52,1) = 139
    ConvTable(53,0) = 87
    ConvTable(53,1) = 1611
    ConvTable(54,0) = 88
    ConvTable(54,1) = 171
    ConvTable(55,0) = 89
    ConvTable(55,1) = 8206
    ConvTable(56,0) = 90
    ConvTable(56,1) = 187
    ConvTable(57,0) = 91
    ConvTable(57,1) = 1580
    ConvTable(58,0) = 92
    ConvTable(58,1) = 1688
    ConvTable(59,0) = 93
    ConvTable(59,1) = 1670
    ConvTable(60,0) = 94
    ConvTable(60,1) = 94
    ConvTable(61,0) = 95
    ConvTable(61,1) = 1600
    ConvTable(62,0) = 96
    ConvTable(62,1) = 1662
    ConvTable(63,0) = 97
    ConvTable(63,1) = 1588
    ConvTable(64,0) = 98
    ConvTable(64,1) = 1584
    ConvTable(65,0) = 99
    ConvTable(65,1) = 1586
    ConvTable(66,0) = 100
    ConvTable(66,1) = 1610
    ConvTable(67,0) = 101
    ConvTable(67,1) = 1579
    ConvTable(68,0) = 102
    ConvTable(68,1) = 1576
    ConvTable(69,0) = 103
    ConvTable(69,1) = 1604
    ConvTable(70,0) = 104
    ConvTable(70,1) = 1575
    ConvTable(71,0) = 105
    ConvTable(71,1) = 1607
    ConvTable(72,0) = 106
    ConvTable(72,1) = 1578
    ConvTable(73,0) = 107
    ConvTable(73,1) = 1606
    ConvTable(74,0) = 108
    ConvTable(74,1) = 1605
    ConvTable(75,0) = 109
    ConvTable(75,1) = 1574
    ConvTable(76,0) = 110
    ConvTable(76,1) = 1583
    ConvTable(77,0) = 111
    ConvTable(77,1) = 1582
    ConvTable(78,0) = 112
    ConvTable(78,1) = 1581
    ConvTable(79,0) = 113
    ConvTable(79,1) = 1590
    ConvTable(80,0) = 114
    ConvTable(80,1) = 1602
    ConvTable(81,0) = 115
    ConvTable(81,1) = 1587
    ConvTable(82,0) = 116
    ConvTable(82,1) = 1601
    ConvTable(83,0) = 117
    ConvTable(83,1) = 1593
    ConvTable(84,0) = 118
    ConvTable(84,1) = 1585
    ConvTable(85,0) = 119
    ConvTable(85,1) = 1589
    ConvTable(86,0) = 120
    ConvTable(86,1) = 1591
    ConvTable(87,0) = 121
    ConvTable(87,1) = 1594
    ConvTable(88,0) = 122
    ConvTable(88,1) = 1592
    ConvTable(89,0) = 123
    ConvTable(89,1) = 123
    ConvTable(90,0) = 124
    ConvTable(90,1) = 124
    ConvTable(91,0) = 125
    ConvTable(91,1) = 125
    ConvTable(92,0) = 126
    ConvTable(92,1) = 1617
    ConvTable(93,0) = 130
    ConvTable(93,1) = 76
    ConvTable(94,0) = 147
    ConvTable(94,1) = 75
    ConvTable(95,0) = 148
    ConvTable(95,1) = 74
End Sub    

Function GetUnicode(iAscii)
Dim j, index
	
	index = -1
	For j = 0 to 100
		if ConvTable(j,0) = iAscii then
			index = j
			Exit for
		End if
	Next
	if index >= 0 then
		GetUnicode = ConvTable(index,1)	
	Else
		GetUnicode = iAscii
	End if		
End Function

Sub OnTextBoxFarsiKeyPress()
	Dim keyCode, unicode
		if bFarsi then	
			keycode = Window.event.keyCode
			Window.event.keyCode = 0
			unicode = GetUnicode(keyCode)
			Window.event.keyCode = unicode
			if (Window.event.shiftKey) then
				' Virtual space
				if keyCode = 32 then
					Window.event.keyCode = 8204
				End if	
			End if
		End if
End sub

	
Sub btnLang_OnClick()
	Dim str, objSrc
	Set objSrc = window.event.srcElement
	if bFarsi then
		str = chrW(1601) & chrw(1575) & chrW(1585) & Chrw(1587) & Chrw(1740)
		objSrc.value = str
		frmHosting.txtLang.value = "En"
		bFarsi = False
	Else
		str = "English"
		objSrc.value = str
		frmHosting.txtLang.value = "Fa"
		bFarsi = True	
	End if
End Sub

Function ConvertNumToFarsiText(iNum)
	Dim iSize, iOffsetDigit, sNum, i, iDigit, sNumUnicode
		iOffsetDigit = 1776
		sNumUnicode = ""
		sNum = CStr(iNum)
		iSize = Len(sNum)
		For i = 1 to iSize
			iDigit = CInt(Mid(sNum,i,1))
			sNumUnicode = sNumUnicode & "&#" & CStr(iOffsetDigit + iDigit) & ";"  
		Next
		ConvertNumToFarsiText = sNumUnicode		
End Function

Function ConvertNumToFarsi(iNum)
	Dim iSize, iOffsetDigit, sNum, i, iDigit, sNumUnicode
		iOffsetDigit = 1776
		sNumUnicode = ""
		sNum = CStr(iNum)
		iSize = Len(sNum)
		For i = 1 to iSize
			iDigit = CInt(Mid(sNum,i,1))
			sNumUnicode = sNumUnicode & ChrW(iOffsetDigit + iDigit)  
		Next
		ConvertNumToFarsi = sNumUnicode		
End Function

Function getUnicodeString(strF)

	Dim iSize, i, sUnicode, iUnicode
	' First convert Farsi News to unicode numbers
	iSize = Len(strF)
	sUnicode = ""
	for i = 1 to iSize
		iUnicode = AscW(Mid(strF,i,1))
		if iUnicode = 13 then
			sUnicode = sUnicode & "<BR>"
		Else
			sUnicode = sUnicode & "&#" & iUnicode & ";" 	
		End if  	
	Next
	getUnicodeString = sUnicode
	
End function
