﻿
/* HinKhoj TypePad -  http://www.hinkhoj.com
Copyright (c) HinKhoj

Permission is hereby granted to any person obtaining a copy of this software and associated 
the rights to use, copy, modify, merge copies of the Software for personal non-commercial use only and 
to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions 
of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED 
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.
 */
var isEng=false;
var keyBoardType='indoAnglo';
var topHide=false;
var showKBLink=true;
var showIH=true;
var baseUrl="http://www.hinkhoj.com";

/* Visual Keyboard related */
function writeLetter(letterValue)
{
	var txtBox=document.getElementById('sbi');
	txtBox.focus();
	txtBox.value+=letterValue;
}

function letterButtonText(letterValue) 
{
	if(isEng)
	{
		writeLetter(letterValue);
	}
	else
	{
		switch(letterValue)
		{
		case 'a':
			writeLetter('अ');
			break;
		case 'aa':
		case 'A':
			writeLetter('आ');
			break;
		case 'i':
			writeLetter('इ');
			break;
		case 'I':
		case 'ee':
			writeLetter('ई');
			break;
		case 'u':
			writeLetter('उ');
			break;
		case 'U':
			writeLetter('ऊ');
			break;
		case 'e':
			writeLetter('ए');
			break;
		case 'E':
			writeLetter('ऍ');
			break;
		case 'ai':
			writeLetter('ऐ');
			break;
		case 'O':
			writeLetter('ऑ');
			break;
		case 'o':
			writeLetter('ओ');
			break;
		case 'au':
			writeLetter('औ');
			break;
		case 'aM':
			writeLetter('अं');
			break;
		case 'a:':
			writeLetter('अः');
			break;
		case 'R':
			writeLetter('ऋ');
			break;
		case 'mA':
			writeLetter('ा');
			break;
		case 'mi':
			writeLetter('ि');
			break;
		case 'mI':
			writeLetter('ी');
			break;
		case 'mu':
			writeLetter('ु');
			break;
		case 'mU':
			writeLetter('ू ');
			break;
		case 'me':
			writeLetter('े');
			break;
		case 'mai':
			writeLetter('ै');
			break;
		case 'mE':
			writeLetter('ॅ');
			break;
		case 'mo':
			writeLetter('ो');
			break;
		case 'mau':
			writeLetter('ौ');
			break;
		case 'mO':
			writeLetter('ॉ');
			break;
		case 'maM':
			writeLetter('ं');
			break;
		case 'ma^':
			writeLetter('ँ');
			break;
		case 'ka':
			writeLetter('क');
			break;
		case 'kha':
			writeLetter('ख');
			break;
		case 'ga':
			writeLetter('ग');
			break;
		case 'gha':
			writeLetter('घ');
			break;
		case 'NGa':
			writeLetter('ङ');
			break;
		case 'cha':
			writeLetter('च');
			break;
		case 'Cha':
			writeLetter('छ');
			break;
		case 'ja':
			writeLetter('ज');
			break;
		case 'za':
			writeLetter('झ');
			break;
		case 'NYa':
			writeLetter('ञ');
			break;
		case 'Ta':
			writeLetter('ट');
			break;
		case 'Tha':
			writeLetter('ठ');
			break;
		case 'Da':
			writeLetter('ड');
			break;
		case 'Dha':
			writeLetter('ढ');
			break;
		case 'Na':
			writeLetter('ण');
			break;
		case 'ta':
			writeLetter('त');
			break;
		case 'tha':
			writeLetter('थ');
			break;
		case 'da':
			writeLetter('द');
			break;
		case 'dha':
			writeLetter('ध');
			break;
		case 'na':
			writeLetter('न');
			break;
		case 'pa':
			writeLetter('प');
			break;
		case 'fa':
			writeLetter('फ');
			break;
		case 'ba':
			writeLetter('ब');
			break;
		case 'bha':
			writeLetter('भ');
			break;
		case 'ma':
			writeLetter('म');
			break;
		case 'ya':
			writeLetter('य');
			break;
		case 'ra':
			writeLetter('र');
			break;
		case 'la':
			writeLetter('ल');
			break;
		case 'va':
			writeLetter('व');
			break;
		case 'sha':
			writeLetter('श');
			break;
		case 'Sha':
			writeLetter('ष');
			break;
		case 'sa':
			writeLetter('स');
			break;
		case 'ha':
			writeLetter('ह');
			break;
		case 'La':
			writeLetter('ळ');
			break;
		case 'kSha':
			writeLetter('क्ष');
			break;
		case 'xa':
			writeLetter('क्ष');
			break;
		case 'Jha':
			writeLetter('ज्ञ');
			break;
		case 'tra':
			writeLetter('त्र');
			break;
		case 'LLa':
			writeLetter('ऴ');
			break;
		case 'NNa':
			writeLetter('ऩ');
			break;
		case 'Ka':
			writeLetter('क़');
			break;
		case 'Kha':
			writeLetter('ख़');
			break;
		case 'Ga':
			writeLetter('ग़');
			break;
		case 'Za':
			writeLetter('ज़');
			break;
		case 'DDa':
			writeLetter('ड़');
			break;
		case 'DHa':
			writeLetter('ढ़');
			break;
		case 'Fa':
			writeLetter('फ़');
			break;
		case 'Ya':
			writeLetter('य़');
			break;
		case '0':
			writeLetter('०');
			break;
		case '1':
			writeLetter('१');
			break;
		case '2':
			writeLetter('२');
			break;
		case '3':
			writeLetter('३');
			break;
		case '4':
			writeLetter('४');
			break;
		case '5':
			writeLetter('५');
			break;
		case '6':
			writeLetter('६');
			break;
		case '7':
			writeLetter('७');
			break;
		case '8':
			writeLetter('८');
			break;
		case '9':
			writeLetter('९');
			break;
		default:
			writeLetter(letterValue);
		}
	}
}

function getCheckedValue(radioObj,hinKB) {
	searchBoxFocus(); 
	if(!radioObj)
	{
		setHindi(hinKB);
		return;
	}
	var radioLength = radioObj.length;
	if(radioLength == undefined)
	{
		if(radioObj.checked)
		{
			if(radioObj.value=="Hindi")
			{
				setHindi(hinKB);
			}
			else
			{
				setEnglish(hinKB);
			}
		}
		return ;
	}

	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			if( radioObj[i].value=="Hindi")
			{
				setHindi(hinKB);
			}
			else
			{
				setEnglish(hinKB);
			}
		}
	}
	return "";
}

function setHindi(hinKB){
	// document.write("setting hindi");
	hinKB.isEng=false;
}

function setEnglish(hinKB)
{
	hinKB.isEng=true;

}
function setIndoAnglo()
{
	// document.write("setting hindi");
	keyBoardType='indoAnglo';
	showIndoAngloKeyBoard();
}

function hideKeyBoard()
{
	switch(keyBoardType)
	{
	case 'indoAnglo':
		if(showIH)
		{
			hideIndoAngloKeyBoard();
		}
		break;
	}
}

function showKeyBoard()
{
	switch(keyBoardType)
	{
	case 'indoAnglo':
		if(!showIH)
		{
			showIndoAngloKeyBoard();
		}
		break;
	}

}

function displayShowKBLink()
{

	showKBLink=true;
	var hideKBText=document.getElementById('hideKB');
	if(document.all)
	{
		hideKBText.innerText="";
	}
	else
	{
		hideKBText.textContent="";
	}
	var showKBText=document.getElementById('showKB');
	if(document.all)
	{
		showKBText.innerText="कुंजीपटल दिखायें";
	}
	else
	{
		showKBText.textContent="कुंजीपटल दिखायें";
	}

}
function hideShowKBLink()
{
	showKBLink=false;
	var hideKBText=document.getElementById('hideKB');
	if(document.all)
	{
		hideKBText.innerText="कुंजीपटल हटायें";
	}
	else
	{
		hideKBText.textContent="कुंजीपटल हटायें";
	}
	var showKBText=document.getElementById('showKB');
	if(document.all)
	{
		showKBText.innerText="";
	}
	else
	{
		showKBText.textContent="";
	}
}
function hideIndoAngloKeyBoard()
{
	if(!showIH)
	{
		return ;
	}

	var tableKB=document.getElementById('kb');
	tableKB.style.display='none';
	showIH=false;
	displayShowKBLink();

} 

function showIndoAngloKeyBoard()
{
	if(showIH)
	{
		return;
	}
	var tableKB=document.getElementById('kb');
	tableKB.style.display='';
	showIH=true;
	hideShowKBLink();
}

function drawHindiKeyBoard()
{
	document.write('<table align="center" class="bs1" border="1">');
	document.write('<tr style="background-color:#FAF8CC">');
//	first row cell
	writeHindiKeyFont('अ','a');
	writeHindiKeyFont('आ ','A');
	writeHindiKeyFont('इ','i');
	writeHindiKeyFont('ई ','I');
	writeHindiKeyFont('उ ','u');
	writeHindiKeyFont('ऊ','U');
	writeHindiKeyFont('ए','e');
	writeHindiKeyFont('ऍ ','E');
	writeHindiKeyFont('ऐ','ai');
	writeHindiKeyFont('ऑ','O');
	writeHindiKeyFont('ओ ','o');
	writeHindiKeyFont('औ','au');
	writeHindiKeyFont('अं','aM');
	writeHindiKeyFont('अः','a:');
	writeHindiKeyFontOnlyHindi('ॐ');
	writeHindiKeyFont('ऋ','R');
	document.write("</tr><tr style='background-color:#CFECEC;font-size:125%'>");

	writeHindiKeyFontOnlyHindi('्');
	writeHindiKeyFontMatra('ा','mA','aa/A');
	writeHindiKeyFontMatra('ि','mi','i');
	writeHindiKeyFontMatra('ी','mI','I');
	writeHindiKeyFontMatra('ु','mu','u');
	writeHindiKeyFontMatra('ू','mU','U');
	writeHindiKeyFontMatra('े','me','e');
	writeHindiKeyFontMatra('ै','mai','ai');
	writeHindiKeyFontMatra('ॅ','mE','E');
	writeHindiKeyFontMatra('ो','mo','o');
	writeHindiKeyFontMatra('ौ','mau','au');
	writeHindiKeyFontMatra('ॉ','mO','O');
	writeHindiKeyFontMatra('ं','maM','aM');
	writeHindiKeyFontMatra('ँ','ma^','a^');
	writeHindiKeyFontOnlyHindi('ः');
	writeHindiKeyFontOnlyHindi('़');
	writeHindiKeyFontOnlyHindi('ृ');
	writeHindiKeyFontOnlyHindi('ॄ');
	writeHindiKeyFontOnlyHindi('॑');
	document.write("</tr><tr style='background-color:#F9B7FF;'>");


	writeHindiKeyFont('क','ka');
	writeHindiKeyFont('ख','kha');
	writeHindiKeyFont('ग','ga');
	writeHindiKeyFont('घ','gha');
	writeHindiKeyFont('ङ','NGa');
	writeHindiKeyFont('च','cha');
	writeHindiKeyFont('छ','Cha');
	writeHindiKeyFont('ज','ja');
	writeHindiKeyFont('झ','za');
	writeHindiKeyFont('ञ','NYa');
	writeHindiKeyFont('ट','Ta');
	writeHindiKeyFont('ठ','Tha');
	writeHindiKeyFont('ड','Da');
	writeHindiKeyFont('ढ','Dha');
	writeHindiKeyFontOnlyHindi('ऌ');
	writeHindiKeyFontOnlyHindi('ऱ');
	writeHindiKeyFont('ऩ','NNa');
	writeHindiKeyFontOnlyHindi('ऴ');

	document.write("</tr><tr style='background-color:#F9B7FF;'>");

	writeHindiKeyFont('ण','Na');
	writeHindiKeyFont('त','ta');
	writeHindiKeyFont('थ','tha');
	writeHindiKeyFont('द','da');
	writeHindiKeyFont('ध','dha');
	writeHindiKeyFont('न','na');
	writeHindiKeyFont('प','pa');
	writeHindiKeyFont('फ','fa');
	writeHindiKeyFont('ब','ba');
	writeHindiKeyFont('भ','bha');
	writeHindiKeyFont('म','ma');
	writeHindiKeyFont('य','ya');
	writeHindiKeyFont('र','ra');
	writeHindiKeyFont('ल','la');
	writeHindiKeyFont('व','va');
	writeHindiKeyFont('श ','sha');
	writeHindiKeyFont('ष','Sha');
	writeHindiKeyFont('स','sa');
	writeHindiKeyFont('ह','ha');

	document.write("</tr><tr style='background-color:#F9B7FF;'>");

	writeHindiKeyFont('ळ','La');
	writeHindiKeyFont('क्ष','xa');
	writeHindiKeyFont('ज्ञ','Jha');
	writeHindiKeyFont('त्र','tra');
	writeHindiKeyFont('ऴ','LLa');
	writeHindiKeyFont('क़','Ka');
	writeHindiKeyFont('ख़','Kha');
	writeHindiKeyFont('ग़','Ga');
	writeHindiKeyFont('ज़','Za');
	writeHindiKeyFont('ड़','DDa');
	writeHindiKeyFont('ढ़ ','DHa');
	writeHindiKeyFont('फ़','Fa');
	writeHindiKeyFont('य़ ','Ya');
	writeHindiKeyFontOnlyHindi('₹');
	document.write("</tr><tr style='background-color:#E3E4FA;'>");
	
	writeHindiKeyFontOnlyHindi('ऽ');
	writeHindiKeyFontOnlyHindi('।');
	writeHindiKeyFontOnlyHindi('॥');
	writeHindiKeyFont('०','0');
	writeHindiKeyFont('१','1');
	writeHindiKeyFont('२','2');
	writeHindiKeyFont('३','3');
	writeHindiKeyFont('४','4');
	writeHindiKeyFont('५','5');
	writeHindiKeyFont('६','6');
	writeHindiKeyFont('७ ','7');
	writeHindiKeyFont('८','8');
	writeHindiKeyFont('९','9');
	writeHindiKeyFontOnlyHindi('॰');
	writeHindiKeyFontOnlyHindi('॔');
	writeHindiKeyFontOnlyHindi('ॢ');
	writeHindiKeyFontOnlyHindi('ॣ');
	writeHindiKeyFontOnlyHindi('॓');


	document.write("</tr></table>");

}

function writeHindiKeyFont(hinFont,engFont)
{
	document.write('<td class="td1" onClick="letterButtonText(\''+engFont+'\');"><b>'+hinFont+' </b></td>');
}


function writeHindiKeyFontMatra(hinFont,matraCode,engFont)
{
	document.write('<td class="td1" onClick="letterButtonText(\''+matraCode+'\');"><b>'+hinFont+' </b></td>');
}

function writeHindiKeyFontOnlyHindi(hinFont)
{
	document.write('<td class="td1" onClick="letterButtonText(\''+hinFont+'\');"><b>'+hinFont+' </b> </td>'); 
}

/* ajax utilities */

function createRequest() {
	var request=null;  
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = null;
			}
		}
	}

	if (request == null)
		alert("This site uses Ajax and we are not able to create request object!");
	return request;
}

/*main page management */
function hideMidLayer()
{
	var midDiv=document.getElementById('midlayer');
	midDiv.style.display='none';
	displayShowKBLink();
}

function showMidLayer()
{
	var midDiv=document.getElementById('midlayer');
	midDiv.style.display='';
	hideShowKBLink();
}

/* general utilities */
String.prototype.trim = function() {
	a = this.replace(/^\s+/, '');
	return a.replace(/\s+$/, '');
};
function checkQuery(query)
{
	if(query==null || query.length<1)
	{
		return false;
	}
	var trimmedQuery=query.trim();
	if(trimmedQuery==null || trimmedQuery.length<1)
	{
		return false;
	}   
	return true; 
}

/* display formatter */
function setWhiteBG(spanObj)
{

	spanObj.style.background='white';
}
function setYellowBG(spanObj)
{

	spanObj.style.background='yellow';
}

