
         // Handler for STATE_CHANGED event which makes sure checkbox status
      // reflects the transliteration enabled or disabled status.
      function transliterateStateChangeHandler(e,elemId) {
        var elem=document.getElementById(elemId);
		if(elem!=null)
		{
		    elem.checked = e.transliterationEnabled;
		}
      }

var control;
var gTResult;
var updateId;
var isHindi=true;
function InitializeGKB(idArray)
{
 //alert("GKB");
 // Load the Google Transliteration API
      google.load("elements", "1", {
            packages: "transliteration"
          });
    google.load("language", "1");

      function onLoad() {
       
        var optionsEn2Hi = {
            sourceLanguage:
                google.elements.transliteration.LanguageCode.ENGLISH,
            destinationLanguage:
                google.elements.transliteration.LanguageCode.HINDI,
            shortcutKey: 'alt+k',
            transliterationEnabled: true
        };
        
        var optionsHi2En = {
            sourceLanguage:
                google.elements.transliteration.LanguageCode.HINDI,
            destinationLanguage:
                google.elements.transliteration.LanguageCode.ENGLISH,
            shortcutKey: 'alt+k',
            transliterationEnabled: true
        };

        // Create an instance on TransliterationControl with the required
        // options.
        
         control =
            new google.elements.transliteration.TransliterationControl(optionsEn2Hi);
        

        // Enable transliteration in the textbox with id
        // 'transliterateTextarea'.
        control.makeTransliteratable(idArray);
        // Add the STATE_CHANGED event handler to correcly maintain the state
        // of the checkbox.
        control.addEventListener(
            google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED,
            transliterateStateChangeHandler);
            
      if(isEng)
      {
	    control.toggleTransliteration();	
	   }

      }
      
      google.setOnLoadCallback(onLoad);

}
      // Handler for checkbox's click event.  Calls toggleTransliteration to toggle
      // the transliteration state.
      function checkboxClickHandler(elem) {
       
		   if(elem.checked)
		   {
		    //alert("checked");
		     isHindi=true;
			 isEng=false;	
		   }
		   else
		   {
		     isHindi=false;
			 isEng=true;	
		   }
       if(control!=null)
       {
        try
        {
         
         control.toggleTransliteration();
        
        }
        catch(Exception){}
        }
      }

function SetEnglish() {
       
		   
		     isHindi=false;
			 isEng=true;	
		   
       if(control!=null)
       {
        try
        {
         
         control.toggleTransliteration();
        
        }
        catch(Exception){}
        }
      }

      function setResult(result)
      {
       if (!result.error) {

       //alert("updateId"+updateId);
       //alert("result:"+result.transliterations.length);
       var elem=document.getElementById(updateId);
       if(elem!=null)
       {
       if (result.transliterations && result.transliterations.length > 0 &&
            result.transliterations[0].transliteratedWords.length > 0) {
             //alert(result.transliterations[0].transliteratedWords[0]);
            elem.value= result.transliterations[0].transliteratedWords[0];
          }
          }
        }
        //alert(result.error.message);
      }
      function translateHinWord(hin_word)
      {
       google.language.transliterate(hin_word, "en", "hi",setResult);       
      } 
      
      function ChangeHindi(elemId)
      {
       if(!isHindi)
       {
         return;
        }
       try
       {
       updateId=elemId;
       var elem=document.getElementById(elemId);
       var hin_word=elem.value;
       if(hin_word==null || hin_word=="")
       {
        return; 
       }
       if(hin_word.indexOf(' ')!=-1)
       {
         return;
       }
	   translateHinWord([hin_word]);
	   }
	   catch(Exception){}
      }