/*

JavaScript for soft version of Devnagari, kannada and telugu Key board.
Author Arun
Date 10/25/2004
*/
/*
This file (js/postkb.js) must be save as UTF-8 bcoz key's values are in unicode.
Do not change the order/index of key values in array "key".
*/
/*
Function KeyVal(): declare array for values of each key. Noraml mode: 0 to 82 key and Shift Mode: 83 to 164 and 164 = \n.
Called by onLoad (body attribute) of HTML.
Function Addtext(Input): adds value of pressed keys in sequence. Input is index of array.
Called by onClick (input type=button tag for each key) of HTML
Function Clear(): When user pressed Backspace key, it clears last pressed key value form current value.
Called by onClick of Backspace key.
*/
var keyValueT = new Array("అ","ఆ","ఇ","ఈ","ఉ","ఊ","ఎ","ఏ","ఐ","ఒ","ఓ","ఔ"," "," ","్","ా","ి","ీ","ు","ూ","ె","ే","ై","ొ","ో","ౌ","౧","౨","క","ఖ","గ","ఘ","ఙ","చ","ఛ","జ","ఝ","ఞ"," "," ","౩","౪","ట","ఠ","డ","ఢ","ణ","త","థ","ద","ధ","న","ం","ః","౫","౬","ప","ఫ","బ","భ","మ","య","ర","ఱ","ల","ళ","ఋ","ౠ","౭","౮","వ","శ","ష","స","హ"," "," "," "," ","ఁ","ృ","ౄ","౯","౦"," ","\n");

var keyValueK = new Array("ಅ","ಆ","ಇ","ಈ","ಉ","ಊ","ಎ","ಏ","ಐ","ಒ","ಓ","ಔ"," "," ","್","ಾ","ಿ","ೀ","ು","ೂ","ೆ","ೇ","ೈ","ೊ","ೋ","ೌ","೧","೨","ಕ","ಖ","ಗ","ಘ","ಙ","ಚ","ಛ","ಜ","ಝ","ಞ","ಅಂ","ಅಃ","೩","೪","ಟ","ಠ","ಡ","ಢ","ಣ","ತ","ಥ","ದ","ಧ","ನ","ಂ","ಃ","೫","೬","ಪ","ಫ","ಬ","ಭ","ಮ","ಯ","ರ","ಱ","ಲ","ಳ","ಋ","ೠ","೭","೮","ವ","ಶ","ಷ","ಸ","ಹ","ಕ್ಷ","ತ್ರ","ಜ್ಞ","ಶ್ರ"," ","ೃ","ೄ","೯","೦"," ","\n");

var keyValueH = new Array("`","१","२","३","४","५","६","७","८","९","०","-","=","/","य","र","ल","व","श","ष","क","ख","ग","घ","ङ","[","]","\\","ऽ","स","ह","ळ","क्ष","त्र","ज्ञ","च","छ",
"ज","झ","ञ","र्",";","ँ","ं","ि","ी","े","ै","ट","ठ","ड","ढ","ण","्र","र्‍र्‍",",","ॅ","ः","अ","ा","ो","ौ","त","थ","द","ध","न","ॐ","'","़","ु","ू","ृ"," ","","्","प","फ",
"ब","भ","म","श्र",".","~","!","@","#","$","%","^","&","*","(",")","_","+","?","य्‍"," र्‍","ल्‍","व्‍","श्‍","ष्‍","क्‍","ख्‍","ग्‍","घ्‍","ङ्‍","{","}","|","ऽ","स्‍","ह्‍","ळ्‍","क्ष्‍",
"त्र","ज्ञ्‍","च्‍","छ्‍","ज्‍","झ्‍","ञ्‍","र्",":","अँ","अं","इ","ई","ए","ऐ", "ट्","ठ्","ड्","ढ्","ण्‍","्र","र्‍","<","अँ","अः","अ","आ","ओ","औ","त्‍","थ्‍","द्‍","ध्‍","न्‍","ॐ",">",
"़","उ","ऊ","ृ"," ","्","प्‍","फ्‍","ब्‍","भ्‍","म्‍","श्र","\"","\n");



var flag=0; //if flag=1, shift is pressed else not.
var fieldFlag = 2; //1 for PostTopic and 2 for message field
var language =0;
var prevSelection = null;

function HindiKeyboard(){
 	language =0;
	KeyValH();
	document.getElementById("shiftkey").disabled=false;
	//alert("Under construction");
	document.getElementById("keyboardurl").innerHTML="Hindi Keyboard&nbsp;&nbsp;&nbsp;<a href ='javascript:TeluguKeyboard();'>Telugu Keyboard</a>&nbsp;&nbsp;&nbsp;<a href ='javascript:KannadaKeyboard();'>Kannada Keyboard</a>";
}

function KannadaKeyboard(){
//	alert("inside fun");
//	alert(document.getElementById("keyboardurl").innerHTML);
	language =1;
	KeyValK();
	document.getElementById("shiftkey").disabled=true;
	document.getElementById("keyboardurl").innerHTML="<a href='javascript:HindiKeyboard();'>Hindi Keyboard</a>&nbsp;&nbsp;&nbsp;<a href ='javascript:TeluguKeyboard();'>Telugu Keyboard</a>&nbsp;&nbsp;&nbsp;Kannada Keyboard";
}

function TeluguKeyboard(){
	//alert("inside fun");<a href="javascript:alert('Testing Hindi');">Hindi Keyboard</a>&nbsp;&nbsp;&nbsp;<a href ="javascript:TeluguKeyboard();">Telugu Keyboard</a>&nbsp;&nbsp;&nbsp;<a href ="javascript:KannadaKeyboard();">Kannada Keyboard</a>
	//alert(document.getElementById("keyboardurl").innerHTML);
	language =2;
	KeyValT();
	document.getElementById("shiftkey").disabled=true;
	document.getElementById("keyboardurl").innerHTML="<a href='javascript:HindiKeyboard();'>Hindi Keyboard</a>&nbsp;&nbsp;&nbsp;Telugu Keyboard&nbsp;&nbsp;&nbsp;<a href ='javascript:KannadaKeyboard();'>Kannada Keyboard</a>";
}

function chkLanguage(input){
	if(language==0){
		AddtextH(input);
	}else if(language==1){
	//alert("Adding Kannada"+language);	
		AddtextK(input);
	}else if(language==2){
	//alert("Adding Telugu"+language);	
		AddtextT(input);
	}else{
		AddtextH(input);
	}
	//alert(language);
}

function KeyValT()
{	
	//if(flag==0) //shift key is not pressed.
	//{
		for(i=0; i<84; i++)
		{
			document.mvnform.btn[i].value = keyValueT[i];
		}
		//flag=1;		
	//}
	//else //shift key is pressed.
	/*{
		for(i=82,j=0; i<164,j<82; i++,j++)
		{			
			document.mvnform.btn[j].value = keyValueT[i];
		}
		flag=0;	
	}*/		
}

// adding key value for kannda

function KeyValK()
{	
	//if(flag==0) //shift key is not pressed.
	//{
		for(i=0; i<84; i++)
		{
			document.mvnform.btn[i].value = keyValueK[i];
		}
		//flag=1;		
	//}
	/*else //shift key is pressed.
	{
		for(i=82,j=0; i<164,j<82; i++,j++)
		{			
			document.mvnform.btn[j].value = keyValueK[i];
		}
		flag=0;	
	}	*/	
}

function KeyValH()
{	
	if(flag==0) //shift key is not pressed.
	{
		for(i=0; i<82; i++)
		{
			document.mvnform.btn[i].value = keyValueH[i];
		}
		flag=1;		
	}
	else //shift key is pressed.
	{
		for(i=82,j=0; i<164,j<82; i++,j++)
		{			
			document.mvnform.btn[j].value = keyValueH[i];
		}
		flag=0;	
	}		
}


//Set the flag for field value
function Flag(value)
{
	fieldFlag = value; 
}
function AddtextT(Input)
{
	if(Input == 164){
   	  if(document.selection){
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewChar("<br/>");		
	  }else{
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewCharMoz("<br/>");
	  }
	  return;
	}else if(Input == 73){
	  	if(document.selection){
			if(fieldFlag == 1)
				insertNewChar(" ");	    	
		    if(fieldFlag == 2)
			    insertNewChar("&nbsp;");
		}else{
			if(fieldFlag == 1)
				insertNewCharMoz(" ");	
		   	//if(fieldFlag == 2)
			//	tinyMCE.execCommand('mceInsertContent',false," ");
	    	return;		 
		 }		
    }else{	
	  // if(flag != 1)  
	  //    Input += 82;
	   //if(fieldFlag == 1)
		if(document.all)
		   insertNewChar(keyValueT[Input]);
		else
		   insertNewCharMoz(keyValueT[Input]);		
	  // if(fieldFlag == 2)
		//if(document.all)
	//	   insertNewChar(keyValueT[Input]);
	//	else
	//	   insertNewCharMoz(keyValueT[Input]);
	}
}
//adding new value for kannda

function AddtextK(Input)
{
	if(Input == 164){
   	  if(document.selection){
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewChar("<br/>");		
	  }else{
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewCharMoz("<br/>");
	  }
	  return;
	}else if(Input == 73){
	  	if(document.selection){
			if(fieldFlag == 1)
				insertNewChar(" ");	    	
		    if(fieldFlag == 2)
			    insertNewChar("&nbsp;");
		}else{
			if(fieldFlag == 1)
				insertNewCharMoz(" ");	
		  // 	if(fieldFlag == 2)
			//	tinyMCE.execCommand('mceInsertContent',false," ");
	    	return;		 
		 }		
    }else{	
	  // if(flag != 1)  
	 //     Input += 82;
	 //  if(fieldFlag == 1)
		if(document.all)
		   insertNewChar(keyValueK[Input]);
		else
		   insertNewCharMoz(keyValueK[Input]);		
	  // if(fieldFlag == 2)
	//	if(document.all)
	//	   insertNewChar(keyValueK[Input]);
	//	else
	//	   insertNewCharMoz(keyValueK[Input]);
	}
}

//adding new value for Hindi

function AddtextH(Input)
{
	if(Input == 164){
   	  if(document.selection){
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewChar("<br/>");		
	  }else{
		  if(fieldFlag == 1)
		  	return false;
		  else
		    insertNewCharMoz("<br/>");
	  }
	  return;
	}else if(Input == 73){
	  	if(document.selection){
			if(fieldFlag == 1)
				insertNewChar(" ");	    	
		    if(fieldFlag == 2)
			    insertNewChar("&nbsp;");
		}else{
			if(fieldFlag == 1)
				insertNewCharMoz(" ");	
		  // 	if(fieldFlag == 2)
		//		tinyMCE.execCommand('mceInsertContent',false," ");
	    	return;		 
		 }		
    }else{	
       if(flag != 1)  
	      Input += 82;
	   if(fieldFlag == 1)
		if(document.all)
		   insertNewChar(keyValueH[Input]);
		else
		   insertNewCharMoz(keyValueH[Input]);		
	   if(fieldFlag == 2)
		if(document.all)
		   insertNewChar(keyValueH[Input]);
		else
		   insertNewCharMoz(keyValueH[Input]);
	}
}

function insertNewChar(text){
	if(document.selection){
       document.mvnform.message.focus();
	   this.range = document.selection.createRange();	
	   this.range.text = text;
	   this.range.collapse (false);
	   this.range.select ();		
	}
}
function insertNewCharMoz(text){
		if (document.mvnform.message.selectionStart) {
			var textArea = document.mvnform.message;
			var startPos = textArea.selectionStart;
			var endPos = textArea.selectionEnd;
			textArea.value = textArea.value.substring(0, startPos)+ text	+ textArea.value.substring(endPos, textArea.value.length);
			textArea.selectionStart = textArea.selectionEnd = startPos + text.length;
		}else{		 
			document.mvnform.message.value =  document.mvnform.message.value+ text;
		}
}

function Clear()
{
	if(document.mvnform.message.value == ""){
			alert("Enter Text");
			return;
	}else{		
		if(document.selection){
		    document.mvnform.message.focus();
		    this.range = document.selection.createRange();
			var savedRange = this.range.duplicate ();
			this.range.moveStart("character", -1);
			this.range.text = "";
			this.range.collapse (false);
			this.range.select ();				
		}else if (document.mvnform.message.selectionStart) {
			var textArea = document.mvnform.message;
		   	var startPos = textArea.selectionStart;
		   	var endPos = textArea.selectionEnd;
		   	textArea.value = textArea.value.substring(0, startPos-1)+ textArea.value.substring(endPos, textArea.value.length);
		   	textArea.selectionStart = textArea.selectionEnd = startPos-1;
		}else{
			var bfclear = document.mvnform.message.value;
			var afclear = "";		
			if((bfclear.charAt(bfclear.length-1)) == "\n")
			{			
				var l = bfclear.length - 2;
			}
			else
			{			
				var l = bfclear.length - 1;
			}
			afclear = bfclear.substring(0,l);			
			document.mvnform.message.value = afclear;
		}
	}
}
//End of File
