var len=0;var leng=0; var iflag=true; var end=0;
var text_El='';
function storeCaret(textEl)/*store the caret position in a text field or text area. */
 
{
       if (textEl.createTextRange)
         textEl.caretPos = document.selection.createRange().duplicate();
		text_El=textEl;


 }


 function insertAtCaret (ch)//Insert char at the cursor position
 {
	if (text_El.caretPos) 
  	  {
       // var caretPos = text_El.caretPos;
	  }	

	/*%%%%%%%%%%%%%*/
	//var parent=caretPos.parentElement();
	/*%%%%%%%%%%%%%*/
//if (parent.type=='textarea'|| parent.type=='text' )
// {/*avoid printing icdre when we select document (outside textbox)*/
  var prev='';var prev1=''; var flag=false;var ch1='';
  var txt='';

  /*********/
  	var txt1='icdre';
  	if ( text_El.caretPos) /*get the index of the cursor position in the textbox*/
  	{
        var caretPos = text_El.caretPos;
        caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?txt1 +' ' : txt1;
        var s=new String(text_El.value);
	  len=s.indexOf(txt1);  
	  text_El.value=s.replace(txt1,'');
  	}
/*********/
/*-----*/

	if(len-2>=0)
	{
		prev=text_El.value.charAt(len-1);
		ch1=text_El.value.charAt(len-2);
	}
	if(prev=='³' && ch=='d')//nRa
		{ch='â';}
	
	if(prev=='v')//chandrakala
	{	
		flag=true;//for koottaksharam
		
		if(ch1=='I' && ch=='I')
			{txt='¡';}//kka
		else if(ch1=='I' && ch=='e')
			{txt='¢';}//kla
		else if(ch1=='I' && ch=='j')
			{txt='£';}//ksha
		else if(ch1=='K' && ch=='K')
			{txt='¤';}//gga
		else if(ch1=='K' && ch=='e')
			{txt='¥';}//gla
		else if(ch1=='M' && ch=='I')
			{txt='¦';}//nka
		 else if(ch1=='M' && ch=='M')
			{txt='§';}//nga
		else if(ch1=='N' && ch=='N')
			{txt='Ñ';}//chcha
		 else if(ch1=='R' && ch=='N')
			{txt='ô';}//ncha
		else if(ch1=='R' && ch=='R')
			{txt='ª';}//njha
		else if(ch1=='S' && ch=='S')
			{txt='«';}//tta
		else if(ch1=='W' && ch=='S')
			{txt='ï';}//nda
		else if(ch1=='W' && ch=='W')
			{txt='®';}//NNa
		else if(ch1=='X' && ch=='X')
			{txt='¯';}//ththa
		else if(ch1=='Z' && ch=='Z')
			{txt='±';}//dda
		else if(ch1=='Z' && ch=='[')
			{txt='²';}//ddha
		else if(ch1=='\\' && ch=='X')
			{txt='´';}//ntha
		else if(ch1=='\\' && ch=='Z')
			{txt='µ';}//nda
		else if(ch1=='\\' && ch=='\\')
			{txt='ó';}//nna
		else if(ch1=='\\' && ch=='a')
			{txt='ò';}//nma
		else if(ch1==']' && ch==']')
			{txt='¸';}//ppa
		else if(ch1==']' && ch=='e')
			{txt='¹';}//pla
		else if(ch1=='_' && ch=='_')
			{txt='º';}//bba
		else if(ch1=='_' && ch=='e')
			{txt='»';}//bla
		else if(ch1=='\\' && ch==']')
			{txt='¼';}//npa
		else if(ch1=='a' && ch=='a')
			{txt='½';}//mma
		else if(ch1=='a' && ch=='e')
			{txt='¾';}//mla
		else if(ch1=='b' && ch=='b')
			{txt='¿';}//yya
		else if(ch1=='d' && ch=='d')

			{txt='Á';
			 if(text_El.value.charAt(len-4)=='k' && text_El.value.charAt(len-3)=='¸')txt='Ì';//sta
			}//rara
		else if(ch1=='e' && ch=='e')
			{txt='ñ';}//lla
		else if(ch1=='f' && ch=='f')
			{txt='Å';}//LLa
		else if(ch1=='h' && ch=='h')
			{txt='Æ';}//vva
		else if(ch1=='i' && ch=='e')
			{txt='È';}//shla
		else if(ch1=='i' && ch=='i')
			{txt='Ç';}//shsha
		else if(ch1=='k' && ch=='e')
			{txt='É';}//sla
		else if(ch1=='k' && ch=='k')
			{txt='Ê';}//ssa
		else if(ch1=='l' && ch=='e')
			{txt='Ë';}//hla
		else if(ch1=='U' && ch=='U')
			{txt='Í';}//DDa
		else if(ch1=='I' && ch=='S')
			{txt='Î';}//kTa
		else if(ch1=='_' && ch=='[')
			{txt='Ï';}//bdha
		else if(ch1=='_' && ch=='Z')
			{txt='Ð';}//bda
		else if(ch1=='N' && ch=='O')
			{txt='Ñ';}//chchha
		else if(ch1=='P' && ch=='P')
			{txt='Ö';}//jja
		else if(ch1=='W' && ch=='a')
			{txt='a×';}//Nma
		else if(ch1=='k' && ch=='Y')
			{txt='Ø';}//stha
		else if(ch1=='\\' && ch=='Y')
			{txt='Ù';}//ntha
		else if(ch1=='P' && ch=='R')
			{txt='Ú';}//jNja
		else if(ch1=='X' && ch=='`')
			{txt='Û';}//Tbha
		else if(ch1=='K' && ch=='a')
			{txt='Ü';}//gma
		else if(ch1=='i' && ch=='N')
			{txt='Ý';}//shcha
		else if(ch1=='W' && ch=='U')
			{txt='Þ';}//NDa
		else if(ch1=='X' && ch=='a')
			{txt='ß';}//Tma
		else if(ch1=='I' && ch=='X')
			{txt='à';}//kTa
		else if(ch1=='K' && ch=='\\')
			{txt='á';}//gna
		else if(ch1=='³' && ch=='d')
			{txt='ú';}//nRa

		else if(ch1=='j' && ch=='S')
			{txt='ã';}//ShTa

		else
			{txt=ch;flag=false;}/*flag=false,if chandrakala is there,not delete previous two char */
	}	
	else
	{
	txt=ch;	
	}	
/*@@@@@@@@@@*/

/*@@@@@@@@@@*/

/***********/
	      //place the cursor at the correct position in the text box to insert the selected char
		var r = text_El.createTextRange();  
		var v = new String(text_El.value); 
		var tot_line=v.split('\n');

		var temp=new String(v.substring(0,len));
		var ent=temp.split('\n');
		if(ent.length>1)
		{
			
		 leng=len-ent.length+1;
		}
		else
		{
		leng=len;				
		}
		end=-v.length+len;
		//end=-v.length+leng+(ent.length-1);
		if(tot_line.length>ent.length)
		end =end+(tot_line.length-ent.length);
		/*chandrakala
		if(prev=='¸')
		{
		leng=leng-0.5;
		end=end+0.5;
		}
		chandrakala*/
		r.moveEnd('character',end );
		if(flag)
		{
		if(txt=='è')
          		r.moveStart('character', leng-4);//if sTa then delete left four char
		else
			r.moveStart('character', leng-2);//chandrakala then delete left two char
		}
		else
		{
                if (ch=='ú')//nRa
		        r.moveStart('character', leng-1);
		    else
		        r.moveStart('character', leng);
		}
		r.select();
 		text_El.caretPos =document.selection.createRange().duplicate();
/*********/

/*-------*/
	/*if(flag || ch=='ú')
	{
	text='icdre';
	if ( text_El.caretPos)
		{
         	var caretPos = text_El.caretPos;
         	caretPos.text =caretPos.text.charAt(caretPos.text.length -1) == ' ' ?text +' ' : text;
		}
		var s=new String(text_El.value);
	      len=s.indexOf(text);
	      text_El.value=s.replace(text,'');

		var r = text_El.createTextRange(); 
		var v = new String(text_El.value); 
		var temp=new String(v.substring(0,len));
		var ent=temp.split('\n');
		var tot_line=v.split('\n');
		if(ent.length>1)
		{
		 leng=len-ent.length+1;
		}
		else
		{
		leng=len;
		}
		end=-v.length+leng+(ent.length-1);
		if(tot_line.length>ent.length)
		end =end+(tot_line.length-ent.length);
		r.moveEnd('character',end );
           	r.moveStart('character', leng);//-1);
		r.select();
		text_El.caretPos =document.selection.createRange().duplicate();
	}*/
/*------*/

		text=txt;
             if ( text_El.caretPos)
		 {
         		var caretPos = text_El.caretPos;
         		caretPos.text =caretPos.text.charAt(caretPos.text.length -1) == ' ' ?text +' ' : text;
		 }
     	  	else
         	text_El.value  = text;
flag=false;
//}//if document.selection
}//fun insertAt

function here(str)
{
text_El='';
}

