
// 	Author: Joju John	
// 	$Date: 2007-10-29 	
<!-- 	Modified: 	 -->
<!-- 	$Date: 	 -->
//   misc_dictionary.js


//////////////////////////
var unnecessary_clicks = 0;
var max_unnecessary_clicks =25;


////------------

//browser vars
var ua = navigator.userAgent.toLowerCase();
var isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
var ieVersion = parseFloat(ua.substring(ua.indexOf('msie ') + 5));
var isGecko = (ua.indexOf("gecko") != -1);
var GeckoVersion = parseFloat(ua.substring(ua.indexOf('rv:') + 3));

function browsertype()
{

   //alert ('ua=' + ua);
   if (isIE ) {
     if (ieVersion < 6 ){
        alert ('For better Performance, please upgrade your Internet explorer to version 6 or above');
     } else {
        //alert ('IE version 6+');
     }
     return;
   } 
   if (isGecko ) {
      if (GeckoVersion < 1.9){
          alert ('For better Performance, please upgrade your Firefox to version 3 or above');
      } else {
          //alert ('firefox version 3+');
      }
      return;
   } 
   alert ('For better Performance, please use IE6+ or Firefox3+');
   //alert('ie='+ieVersion + ' isGecko='+ GeckoVersion);
   
}


///-------------

function get_date_timezone_str()
{
   var mydate=new Date()
   var year=mydate.getYear()
   if (year < 1000)
      year+=1900
   var day=mydate.getDay()
   var month=mydate.getMonth()
   var daym= mydate.getDate()
   if (daym<10)
      daym="0"+daym
   var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

   var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
   
   var hours = mydate.getHours()
   var minutes = mydate.getMinutes()
   if (minutes < 10)
       minutes = "0" + minutes
   if (hours > 12 ) {
       ampm = "PM";
       hours -=12;
   } else {
       ampm = "AM";
   }
   return hours + "H" + minutes +ampm +"-"+dayarray[day]+"-"+montharray[month]+"-"+daym+"-"+year + "-TZONE"+ mydate.getTimezoneOffset()/60 + ".";

}
function get_date_str()
{
   var mydate=new Date()
   var year=mydate.getYear()
   if (year < 1000)
      year+=1900
   var day=mydate.getDay()
   var month=mydate.getMonth()
   var daym= mydate.getDate()
   if (daym<10)
      daym="0"+daym
   var dayarray=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")

   var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
   
   var hours = mydate.getHours()
   var minutes = mydate.getMinutes()
   if (minutes < 10)
       minutes = "0" + minutes
   if (hours > 12 ) {
       ampm = "PM";
       hours -=12;
   } else {
       ampm = "AM";
   }
   return dayarray[day]+", "+montharray[month]+" "+daym+", "+year ;

}

function get_matching_str()
{
    
  if (html_page=="nighantu"){ 
  
    where = which_place();
    if (where == 'google' ) {
        norecorded_result('Now you are in Google mode. You may type Malayalam words and press search button');
        return;
    }
    if (is_eng_dict()) {
        document.getElementById("mal_box_id").value = document.getElementById("main-search-field").value.toLowerCase();
        eng_get_matches(document.getElementById("mal_box_id").value);
    } else {
        document.getElementById("mal_box_id").value = convert_manglish(document.getElementById("main-search-field").value + " ");
        get_matches(covert_exp_mal(document.getElementById("mal_box_id").value));
    }
  }
  if (html_page == 'addwords') {
     if (add_word_mode == 0) {
          get_matches(covert_exp_mal(convert_manglish(document.getElementById("word_box_id").value)));
     } else {
          eng_get_matches(document.getElementById("word_box_id").value);
     }
  }
}

function find_meaning()
{
    if (check_input_box()) {
         return; 
    }   
    //alert ('dict_mode=' + dict_mode + 'is_eng?'+is_eng_dict() + 'word=' + document.getElementById("mal_box_id").value);
    
    if (is_eng_dict()) {        
        document.getElementById("mal_box_id").value = document.getElementById("main-search-field").value.toLowerCase() + " ";
    } else {
        document.getElementById("mal_box_id").value = convert_manglish(document.getElementById("main-search-field").value + " ");
    }     
   
    if (need_change_mode_suggestion() == 1) {
        norecored_result("Hint: Please change the dictionary mode (Choose the correct Radio button)");
        return;
    }

    if (is_eng_dict()) {
        eng_get_both_meaning_n_matching(document.getElementById("mal_box_id").value);
    } else {
        get_both_meaning_n_matching(covert_exp_mal(document.getElementById("mal_box_id").value));
    }
}

function power_search()
{

   clear_contentsHint();
   where = which_place();

   if ( where == 'mashithantu') {
       find_meaning(); 
       show_result_span();
       return;
   }
   
   if ( where == 'google') {
       make_google_url();
       window.open(google_url);
       return;   
   }
   
   alert ('Error : wrong search mode');
   return '';
}

function set_dict_mode(str)
{
        if (str == 'maleng') {
              set_dict_maleng();
        } else {
              set_dict_engmal();        
        }   
        document.getElementById("main-search-field").value = ''; 
        norecored_result( " ");
}


function emailcheck(str) 
{
    var at="@";
    var dot=".";
	var len_at=str.indexOf(at);
	var len_str=str.length;
	var len_dot=str.indexOf(dot);
	var alert_str  = "Invalid E-mail ID; Please Enter your Email ID again or leave it blank";
	
	if (len_str == 0 ){
	   return true;
	}
	
	reg = /[;~`'"!#$%^&*|<>(){}\[\]]/;

	if (reg.test(str)) {
	       alert(alert_str);
	   	   return;
	}

	if (str.indexOf(" ")!=-1 || len_at==-1 || len_at==0 || len_at==len_str || len_dot==-1 || len_dot==0 || len_dot==len_str){
	   alert(alert_str);
	   return false;
	}

	 if (str.indexOf(at,(len_at+1))!=-1){
	    alert(alert_str);
	    return false;
	 }

	 if (str.substring(len_at-1,len_at)==dot || str.substring(len_at+1,len_at+2)==dot){
	    alert(alert_str);
	    return false;
	 }

	 if (str.indexOf(dot,(len_at+2))==-1){
	    alert(alert_str);
	    return false;
	 }
	 return true;					
}

function urlcheck(str) 
{
    var dot=".";
	var len_str=str.length;
	var len_dot=str.indexOf(dot);
	var alert_str  = "Invalid URL; Please Enter your URL again or leave it blank";
	
	if (len_str == 0 ){
	   return true;
	}
	reg = /[;~`!@#$%^&*|<>(){}\[\]]/;

	if (reg.test(str)) {
	       alert(alert_str);
	   	   return;
	}

        if (str.indexOf("http://") == 0){
           alert("Please remove http:// from the URL");
           return false;
        }
	if (str.indexOf(" ")!=-1 || len_dot==-1 || len_dot==0 || len_dot==len_str){
	   alert(alert_str);
	   return false;
	}

	 return true;					
}
function hash_verification(str)
{
	reg = /[#]/;

	return reg.test(str);

}


function pr_submit_verification()
{

   if (document.getElementById("pr_expect_id").value.length < 3) { 
       alert ("Please Enter your comments (minimum 3 characters)");
       return false;
   }
   if (document.getElementById("pr_expect_id").value.length > 4000) {
       alert (document.getElementById("post_cmnt_id").value.length + " characters... Please restrict your comments to Maximum 4000 characters... Thank You");
       return false;  
   }

   return emailcheck(document.getElementById('pr_email_id').value);
}


function satisfied_report()
{

   norecorded_result('Thank you for chooing Mashithantu Dictionary...<br>'
                     + 'if you wish to support this dictionary, Please visit <a href="promote.htm" target="_blank" >Promote</a> page'
                     );
       
   discard_magic('IAMHAPPY' +":" + document.getElementById("main-search-field").value + ":" +document.getElementById("mal_box_id").value 
                         + ":" + dict_version + ":" + Gmode + ":" + is_eng_dict() );

}


function problem_report()
{      
      search_time_abort();
      unnecessary_clicks ++;
      if ( unnecessary_clicks > max_unnecessary_clicks) {
         norecorded_result('Please Refresh your browser');
         return;
      }
      pr_report_inline = document.getElementById("main-search-field").value + ":" +document.getElementById("mal_box_id").value 
                         + ":" + dict_version + ":" + Gmode + ":" + is_eng_dict() 
                         + ' got_result: '+got_result + ' timetaken:'+time_taken;
      ajax_magic('NO', 'PR_UNSATISFIED', 
                          document.getElementById("main-search-field").value + ":" +document.getElementById("mal_box_id").value,
                          dict_version,
                          Gmode,
                          'DICTMODE:'+is_eng_dict()+ ' got_result: '+got_result + ' timetaken:'+time_taken);
      disable_unsatisfied_no_but();
      disable_satisfied_yes_but();
      pr_show_submit();
}

function pr_submit_button()
{
     
     if (pr_submit_verification()) {
         ajax_magic('submit', 'PR_UNSATISFIED', 
                          document.getElementById("pr_expect_id").value,
                          dict_version,
                          document.getElementById("pr_email_id").value,
                          pr_report_inline);
         pr_report_inline = '';
         pr_hide_submit();
     }
}

function pr_cancel_button()
{
     pr_hide_submit();

}
function disable_prev_but()
{
     document.getElementById("prev_but_id").disabled=true;
}

function enable_prev_but()
{
     document.getElementById("prev_but_id").disabled=false;
}

function disable_next_but()
{
     document.getElementById("next_but_id").disabled=true;
}

function enable_next_but()
{
     document.getElementById("next_but_id").disabled=false;
}

function toggle_next_but_name(show)
{
     if (show == '1') {
          next_or_show_next = '1';
          document.getElementById("next_but_id").value = "Show Next >>";
     } else {
          next_or_show_next = '0';
          document.getElementById("next_but_id").value = ">>";
     }
}

function disable_unsatisfied_no_but()
{
   if (html_page=="nighantu") {
     document.getElementById("unsatisfied_no_id").disabled=true;
   } 
}

function enable_unsatisfied_no_but()
{

   if (html_page=="nighantu") {
     document.getElementById("unsatisfied_no_id").disabled=false;
     toggle_next_but_name('0');
     disable_next_but();
     
   }
}

function disable_satisfied_yes_but()
{
   if (html_page=="nighantu") {
     document.getElementById("satisfied_yes_id").disabled=true;
   } 
   
}
function enable_satisfied_yes_but()
{
   if (html_page=="nighantu") {
     document.getElementById("satisfied_yes_id").disabled=false;
   } 
   
}

function is_any_eng_letters(str)
{
    reg = /[a-zA-Z]/;
    if (reg.test(str)) {   
	   return 1; 
    }  
    return 0;
}

function is_any_mal_letters(str)
{
    reg = /[\u0d00-\u0d7f]/;
    if (reg.test(str)) {   
	   return 1; 
	   
    }  
    return 0;
}


function is_any_mix_caps_underscore(str)
{
 
    
    reg = /[_]/;
    if (reg.test(str)) {   
	   return 1; 
	   
    } 
    
    reg1 = /[A-Z]/;
    var caps_on = reg1.test(str);
    
    reg2= /[a-z]/;
    var small_on = reg2.test(str);
    
 
    if ( reg1.test(str) == reg2.test(str)  ) {
       return 1; // I don't know how this logic is working...
    } else {
       return 0; // logically worng ; but it serves my intention         
    }
}

//is_eng_dict() == 1 means ENG->MAL dictmode
function need_change_mode_suggestion()
{


   str = document.getElementById("mal_box_id").value;
   //alert(':' + str  + ':');
   if ( (is_eng_dict() == 1) && (is_any_eng_letters(str) == 0 )) {
       //alert('eng + change');
       return 1; // suggest a change mode and try again
   }
   if ( (is_eng_dict() == 0) && (is_any_eng_letters(str) == 1 )) {
       return 1; // suggest a change mode and try again
   }
   return 0;
  
}

//is_eng_dict() == 1 means ENG->MAL dictmode
function change_mode_if_require()
{

  // alert ('change_mode_if_require');
   str = document.getElementById("main-search-field").value;
   if ( is_any_eng_letters(str) == 0 ) {
       // change to Mal

       document.getElementById("dict_language_id").selectedIndex =1; //malayalam
       dict_mode = 0;         
   }
   if ( is_any_eng_letters(str) == 1 ) {
       // change to Eng
 
       document.getElementById("dict_language_id").selectedIndex =0; //English
       dict_mode = 1;
   }
  
}

function language_change()
{
   //hide_result_span();
//   var myindex = document.getElementById("dict_language_id").selectedIndex =1; //malayalam
//	 var myindex = document.getElementById("nighantu_malayalam").checked = true;
//	 console.log(myindex);
   
//   if (myindex == 0) {   // English Dictionary
       
//       set_dict_engmal();
//   } 
//   if (myindex == 1) {  // Malayalam Dictionary

       set_dict_maleng();
//   }
//   if (myindex == 2) {  // google malayalam
//       set_dict_maleng();
//       document.getElementById("mal_box_id").value = '';
//       document.getElementById("contentsHint").innerHTML =  'Google Search in Malayalam is Enabled Now';
//       return 'google';
//   }    

   return 'mashithantu';
   
}

function quicklinkchange_reset()
{

    document.getElementById("quicklinks_id").selectedIndex =0;
}

function quicklinkchange()
{

   var myindex = document.getElementById("quicklinks_id").selectedIndex;
   var myurl="";

   if (myindex == 1) {   // Add Words
      myurl = "add_words.html";
   }
   if (myindex == 2) {   // Post Comments

      myurl = "http://mashithantu.com/blog/?p=8#respond";
      
   }
   if (myindex == 3) {   // HTML buttons
      myurl = "html_buttons.htm";
      
   }   
   
   window.open(myurl);  //<<<<<<<<<<<<<<<<<<<<
   
   if (myindex == 4) {   // Search Plugin
      window.external.AddSearchProvider('http://mashithantu.com/malayalam-dictionary/public/mashithantu.xml')
      
   }
   quicklinkchange_reset();//<<<<<<<<<<<<<<<<<<<<
}
function which_place()
{

   var myindex = document.getElementById("dict_language_id").selectedIndex;

   if (myindex == 2) {  // google malayalam

       return 'google';
   }     

   // else it is Mashithantu Dictioanry
   return 'mashithantu';
   
}

function replace_comma_dot(str)
{
    return str.replace(/[,.]/g," ");
}

function delete_comma_dot_space(str)
{
    return str.replace(/[ ,.]/g,"");
}


function is_illegal_input(str)
{
    reg = /[;`!@#$%&*|<>(){}\[\]]/;
    if (reg.test(str)) {
	   return 1;
    } 
    return 0;
}

function is_illegal_text(str)
{
    reg = /[=`#$%&*|<>\[\]]/;
    if (reg.test(str)) {
	   return 1;
    } 
    return 0;
}


function check_input_box()
{
    delay_timer_stop();
    
    str 
      = document.getElementById("main-search-field").value 
      = replace_comma_dot(document.getElementById("main-search-field").value);
   
    

    reg = /[;`!@#$%&*|<>(){}\[\]"]/;
    if (reg.test(str)) {
	   document.getElementById("mal_box_id").value  = 'illegal key; check input for {*|<>`();"[]!@# etc';
	   return 1;
    }  
    if (!is_eng_dict()) {
          document.getElementById("mal_box_id").value = convert_manglish(    document.getElementById("main-search-field").value);
    } else {
          document.getElementById("mal_box_id").value = document.getElementById("main-search-field").value;
    }
    return 0;
}

function check_for_matching()
{
    turn_on_double_click();
    if (check_input_box() ==0) {
        if (is_eng_dict()) {
            document.getElementById("mal_box_id").value = document.getElementById("main-search-field").value;
        } else {
            document.getElementById("mal_box_id").value = convert_manglish(document.getElementById("main-search-field").value + " ");
        }        
 
        if (need_change_mode_suggestion() == 1) {
           norecored_result("Hint: Please change the dictionary mode (Choose the correct Radio button)");
        } else {
           delay_timer_start(); 
        }
    }
}




function google_define_search()
{   
   discard_magic('GOOGLE_DEFINE');
   loc = "http://www.google.com/custom?q="+'define+'+  encodeURIComponent(document.getElementById("mal_box_id").value)+"&sa=Google+Search&client=pub-5402794822190258&forid=1&ie=UTF-8&oe=UTF-8&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A00%0D%0A00FF%3BFORID%3A1&hl=en";
   window.open(loc);
   //window.location = "http://www.google.com/custom?q="+'define+'+  encodeURIComponent(document.getElementById("mal_box_id").value)+"&sa=Google+Search&client=pub-5402794822190258&forid=1&ie=UTF-8&oe=UTF-8&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A00%0D%0A00FF%3BFORID%3A1&hl=en"; 
}

function google_wiki_search()
{   
   discard_magic('GOOGLE_WIKI');
   window.location = "http://www.google.co.in/search?q="+ 'wiktionary+' +encodeURIComponent( document.getElementById("mal_box_id").value)+"&sa=Google+Search&client=pub-5402794822190258&forid=1&ie=UTF-8&oe=UTF-8&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A00%0D%0A00FF%3BFORID%3A1&hl=en"; 
}



function make_google_url()
{   
  google_url = "http://www.google.com/custom?q="+ encodeURIComponent(document.getElementById("mal_box_id").value)+"&sa=Google+Search&client=pub-5402794822190258&forid=1&ie=UTF-8&oe=UTF-8&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A00%0D%0A00FF%3BFORID%3A1&hl=en"; 
 
}

function google_search()
{   
   //discard_magic('GOOGLE_SEARCH');
   //window.location = "http://www.google.com/custom?q="+ encodeURIComponent(document.getElementById("mal_box_id").value)+"&sa=Google+Search&client=pub-5402794822190258&forid=1&ie=UTF-8&oe=UTF-8&cof=GALT%3A%23008000%3BGL%3A1%3BDIV%3A%23336699%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF%3BLBGC%3A336699%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A00%0D%0A00FF%3BFORID%3A1&hl=en"; 

   make_google_url();
   window.open(google_url);
}

function is_explorer() {
  return (document.selection != undefined && document.selection.createRange().isEqual != undefined);
}

function get_selected_text() {
  if (is_explorer()){
	var selectedText = document.selection;
	if (selectedText.type == 'Text') {
		var newRange = selectedText.createRange();
		return newRange.text;
	}
  } else {
        return document.getSelection();
  }
}


function on_key_up(evt) 
{
   var keyCode = null;

   if( evt.which ) {
      keyCode = evt.which;
   } else if( evt.keyCode ) {
      keyCode = evt.keyCode;
   }

   if( 13 == keyCode ) {
      power_search();
      return false;
   }
   on_key_up_handle();
   return true;
}

function on_key_up_handle()
{
   first_click_on_ketboard =1;
   check_for_matching(); 
 //  display_keyboard_if_req(); 
   make_google_url();
 
}
function on_body_load()
{
 //  disable_unsatisfied_no_but();
 //  disable_satisfied_yes_but();
 //  disable_next_but();
 //  disable_prev_but();
   refresh_if_req();
   language_change();
 //  get_query_word_if_any(); 
   browsertype();  

 
}

// ------------malayalam key board------------ functions


var kayboard_status =0;
var first_click_on_ketboard=0;

function set_keyboard_off()
{
    kayboard_status =0;
}

function set_keyboard_on()
{
    kayboard_status =1;
}

function is_keyboard_on()
{
   return kayboard_status;
}

// quit if mode in eng->mal
// quit if it is already ON
function display_keyboard_if_req()
{
   if (is_eng_dict() ==1){
      set_keyboard_off(); // just make sure
      return;
   }
   if (is_keyboard_on() ==1 ) {
      return;
   }
   get_malayalam_keyboard();
   
}


function over(x) {
	if (x.id.length > 0) {
		x.style.border = '1px solid blue';
		x.style.cursor = 'hand';
		x.style.cursor = 'pointer';
	}
}

function out(x) {
	if (x.id.length > 0) {
		x.style.border = '1px solid #000';
		x.style.cursor = 'default';
	}
}

function down(x) {
    if (x.id.length > 0) {
       
        if(x.id == "delete") {

        } else if(x.id == "backspace") {
              str= document.getElementById("main-search-field").value;
              str = str.substring(0, str.length-1);
              document.getElementById("main-search-field").value = str;
              document.getElementById("mal_box_id").value = convert_manglish(document.getElementById("main-search-field").value + " ");
              
        } else if(x.id == "enter") {
            call_enter();
        } else if(x.id == "clear_all") {
            call_clear();
        } else {
	  //window.opener.insertHTML(this.id);
          document.getElementById("main-search-field").value += x.id;
          document.getElementById("mal_box_id").value = convert_manglish(document.getElementById("main-search-field").value + " ");
        }
        document.getElementById("main-search-field").focus();
    }
}

function call_clear() {
   document.getElementById("main-search-field").value = '';
   //document.getElementById("mal_box_id").value = '';

}

function call_enter() {
   power_search();
}


function get_malayalam_keyboard() 
{
   var buffer ='';

   if (first_click_on_ketboard == 0) {
        first_click_on_ketboard =1;
        call_clear(); 
   }
    //  alert('keyboard checking1');
   set_keyboard_on();
   if (is_eng_dict()==1) {

   //    document.getElementById("dict_language_id").selectedIndex =1; //malayalam
   //    document.getElementById("nighantu_malayalam").checked; //malayalam

       set_dict_maleng();
       document.getElementById("main-search-field").value = '';
       //document.getElementById("mal_box_id").value = '';
       
       return;
       
   }
//   alert('keyboard checking');
   buffer = get_malayalam_keyboard_str() ;
   document.getElementById("txtHint").innerHTML = buffer 
     /*   + "<br><img border=\"0\" src=\"/images/info.png\" width=\"19\" height=\"18\">"
        + "<font color=\"green\">Hint:</font> Click letters to form words."
        + "<br><img border=\"0\" src=\"/images/info.png\" width=\"19\" height=\"18\">"
        + "<font color=\"green\">Example:</font> kEraLam_ = &#3349;&#3399;&#3376;&#3379;&#3330; = &#3349; + &#3399; + &#3376; + &#3379; + &#3330; "
        + "<br><img border=\"0\" src=\"/images/info.png\" width=\"19\" height=\"18\">"
        + "<font color=\"green\">Example:</font> thengng = &#3364;&#3398;&#3353;&#3405;&#3353;&#3405;  = &#3364; + &#3398; + &#3353; + &#3405; + &#3353; + &#3405;  "
        + "<br><img border=\"0\" src=\"/images/tips.png\" width=\"19\" height=\"19\">"
        + "<font color=\"green\">Tips:</font> Move your mouse over a Malayalam Letter to get its Manglish."        
         + "<br><img border=\"0\" src=\"/images/warning.png\" width=\"19\" height=\"19\">"
        + "<font color=\"red\">Warning:</font> Double Click feature is turned <b>OFF</b> for a moment.<br><br>";*/

 //  timer_stop();
 //  delay_timer_stop();
   turn_off_double_click();
   buttons_set_turn_off();
 //  document.getElementById("timeHint").innerHTML = '';
   show_result_span();
   //discard_magic("MALAYALAM_KEYBOARD");
   
}	
	
	
function get_malayalam_keyboard_str() 
{
  var buffer = "";
  callb = "onmouseover=\"over(this);\" onmouseout = \"out(this);\"  onmousedown = \"down(this);\" ";
  callbclear = "onmouseover=\"over(this);\" onmouseout = \"out(this);\"  onmousedown = \"call_clear();\" ";
  callbenter = "onmouseover=\"over(this);\" onmouseout = \"out(this);\"  onmousedown = \"call_enter();\" ";
  var cols = 15;
  var j = 0;
  buffer  = "<table class=\"key\" cellpadding=\"0\" cellspacing=\"0\">";
  
  var key_mal_letters_display =new Array( 
  
   "&#3333;","&#3334;","&#3335;","&#3336;","&#3337;","&#3338;","&#3339;","&#3342;","&#3343;","&#3344;","&#3346;","&#3347;","&#3348;","&#3333;&#3330;","&#3333;&#3331;"
  ,"&nbsp;", "&#3390;","&#3391;","&#3392;","&#3393;","&#3394;","&#3395;","&#3398;","&#3399;","&#3400;","&#3402;","&#3403;","&#3415;","&#3330;", "&#3331;"
  ,"&#3349;","&#3350;","&#3351;","&#3352;","&#3353;","&#3353;&#3405;&#3349;","&#3375;","&#3376;","&#3378;","&#3381;", "X","X","X","X", "&#3354;&#3368;&#3405;&#3366;&#3405;&#3376;&#3349;&#3378;&nbsp;&nbsp;(&#3405;)"
  ,"&#3354;","&#3355;","&#3356;","&#3357;","&#3358;","&#3358;&#3405;&#3354;","&#3360;&#3405;&#3375;","&#3360;&#3405;&#3376;","&#3360;&#3405;&#3378;","&#3360;&#3405;&#3381;", "&#3363;&#3405;&#8205;", "&#3368;&#3405;&#8205;", "&#3376;&#3405;&#8205;", "&#3378;&#3405;&#8205;", "&#3379;&#3405;&#8205;"
  ,"&#3359;","&#3360;","&#3361;","&#3362;","&#3363;","&#3363;&#3405;&#3359;","&#3382;","&#3383;","&#3384;","&#3385;", "X","X","X","X", "Clear&nbsp;All"
  ,"&#3364;","&#3365;","&#3366;","&#3367;","&#3368;","&#3368;&#3405;&#3364;","&#3377;","&#3379;","&#3380;", "X","X","&nbsp;","Y","Y", "Enter"
  ,"&#3370;","&#3371;","&#3372;","&#3373;","&#3374;","&#3374;&#3405;&#3370;","&#3377;&#3405;&#3377;","&#3349;&#3405;&#3383;", "X","X","X","Backspace"  
  );
  var key_mal_letters_value =new Array(
  
   "&#3333;","&#3334;","&#3335;","&#3336;","&#3337;","&#3338;","&#3339;","&#3342;","&#3343;","&#3344;","&#3346;","&#3347;","&#3348;","&#3333;&#3330;","&#3333;&#3331;"
  ,"",       "&#3390;","&#3391;","&#3392;","&#3393;","&#3394;","&#3395;","&#3398;","&#3399;","&#3400;","&#3402;","&#3403;","&#3415;","&#3330;",       "&#3331;"
  ,"&#3349;","&#3350;","&#3351;","&#3352;","&#3353;","&#3353;&#3405;&#3349;","&#3375;","&#3376;","&#3378;","&#3381;","X","X","X","X", "&#3405;"  
  ,"&#3354;","&#3355;","&#3356;","&#3357;","&#3358;","&#3358;&#3405;&#3354;","&#3405;&#3375;","&#3405;&#3376;","&#3405;&#3378;","&#3405;&#3381;", "&#3363;&#3405;&#8205;", "&#3368;&#3405;&#8205;", "&#3376;&#3405;&#8205;", "&#3378;&#3405;&#8205;", "&#3379;&#3405;&#8205;"
  ,"&#3359;","&#3360;","&#3361;","&#3362;","&#3363;","&#3363;&#3405;&#3359;","&#3382;","&#3383;","&#3384;","&#3385;", "X","X","X","X", "clear_all"
  ,"&#3364;","&#3365;","&#3366;","&#3367;","&#3368;","&#3368;&#3405;&#3364;","&#3377;","&#3379;","&#3380;", "X","X","delete","Y","Y", "enter"
  ,"&#3370;","&#3371;","&#3372;","&#3373;","&#3374;","&#3374;&#3405;&#3370;","&#3377;&#3405;&#3377;","&#3349;&#3405;&#3383;", "X","X","X","backspace" 
  );  

  var key_mal_letters_colour =new Array(
     "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black" 
   , "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black", "black" 
   , "blue" , "blue" , "blue" , "blue" , "blue" , "green", "black", "black", "black", "black", "black", "black", "black", "black", "red" 
   , "blue" , "blue" , "blue" , "blue" , "blue" , "green", "gray" , "gray" , "gray" , "gray" , "green", "green", "green", "green", "green" 
   , "blue" , "blue" , "blue" , "blue" , "blue" , "green", "black", "black", "black", "black", "black", "black", "black", "black", "black" 
   , "blue" , "blue" , "blue" , "blue" , "blue" , "green", "black", "black", "black", "black", "black", "black", "black", "black", "black" 
   , "blue" , "blue" , "blue" , "blue" , "blue" , "green", "green", "green", "black", "black", "black", "black", "black", "black", "black" 
  );  
  
  var key_mal_letters_manglish = new Array(
    "a",   "aa",   "i",   "ee",   "u",   "oo",   "r^",  "e",   "E",   "ai",   "o", "O", "au", "am_", "aH"
   ,"",    "aa",   "i",   "ee",   "u",   "oo",   "r^",  "e",   "E",   "ai",   "o", "O", "au", "m_", "H"
   ,"ka",  "kha",  "ga",  "gha",  "nga", "nKa",  "ya",  "ra",  "la",  "va",   "~(tilde)", "", "", "", "~(tilde)"
   ,"cha", "chha", "ja",  "jha",  "nja", "njcha", "~ya", "~ra", "~la", "~va",  "N_", "n_", "r_", "l_", "L_"
   ,"Ta",  "Tha",  "Da",  "Dha",  "Na",  "NTa",  "Sa",  "sha", "sa",  "ha",   "", "", "", "", "wipe the box"
   ,"tha", "thha", "da",  "dha",  "na",  "ntha", "Ra",  "La",  "zha", "", "", "", "", "", ""
   ,"pa",  "pha",  "ba",  "bha",  "ma",  "mpa",  "tta", "ksha", "", "", "", "", "", "", ""
   
  );
  
  col_span_count=0;
  row_span_count=0;
  colourb = "";
  for (var i = 0; i < 102; i++) {
	j++;
	colourb = "<font color=\""+ key_mal_letters_colour[i] + "\"> ";
	spanb   = "<span title=\""+ key_mal_letters_manglish[i] + "\"> ";
	colour_span_end = "</font></span>";
	if (j == 0) buffer  = buffer  + "<tr>";
	if (key_mal_letters_value[i] == "Y") {
			   col_span_count ++;
			   row_span_count=2;
	} else if (key_mal_letters_value[i] == "X") {
	   col_span_count ++;
	} else {
	   if (row_span_count > 0) {
	      col_span_count ++;
	      buffer  = buffer  + "<td id=\"" + key_mal_letters_value[i] + "\" "+ callb +" rowspan=\""+row_span_count+"\"  colspan=\""+col_span_count+"\" >" + spanb +colourb + key_mal_letters_display[i] + "</td>";
	      col_span_count=0;
	      row_span_count=0;
	   } else  if ( col_span_count > 0) {
	      col_span_count ++;
	      buffer  = buffer  + "<td id=\"" + key_mal_letters_value[i] + "\" "+ callb +" colspan=\""+col_span_count+"\" >" + spanb +colourb + key_mal_letters_display[i] + "</td>";
	      col_span_count=0;
	   } else {
	      buffer  = buffer  + "<td id=\"" + key_mal_letters_value[i] + "\" "+ callb +" >" + spanb + colourb + key_mal_letters_display[i] + colour_span_end+ "</td>";
	   }
	}
	
	if (j == cols) {
		buffer  = buffer  +"</tr>";
		j = 0;
	}
  }  
  buffer  = buffer  +"</tr>";
  buffer  = buffer  +"</table>";

  return buffer;
}


function cap_letters_test(str) 
{
   if (str.length < 4) 
      return "";
   var cap_letter = 0;
   for (var i=0; i<str.length; i++) {
      var char = str.charAt(i);
      if (char >= 'A' && char <= 'Z') {
        cap_letter++;
      } 
   }
   if ((cap_letter == str.length) && (str.length > 3)) {
       return "<BR> <img border=\"0\" src=\"img/info.PNG\" width=\"19\" height=\"18\"> <blink>Warning:</blink> Please change capital letters to small letters and try again...<br><br>";
   }   
   if ((cap_letter > (str.length-3)) && (str.length > 6)) {
       return "<BR> <img border=\"0\" src=\"img/info.PNG\" width=\"19\" height=\"18\"> <blink>Warning:</blink> Please avoid capital letters as possible as you could and try again...<br><br>";
   } 

   return "";
   
}


function  check_for_capitals (str, d_mode)
{
    if (d_mode == 0) {
        return cap_letters_test(str);
    }
    return "";
}


function unicode2html_base(utf8str) 
{
  var htmlstr = '';
  for(i=0; i<utf8str.length; i++)
  {
  
    if(utf8str.charCodeAt(i)>127)
    {
      htmlstr += '&#' + utf8str.charCodeAt(i) + ';';
    } else {
      htmlstr += utf8str.charAt(i);
    }
  }
  return htmlstr;
}
//--------------------------

function show_result_span()
{

 document.getElementById("result_span_id").style.visibility='visible'; 

  
}
function hide_result_span()
{

 document.getElementById("result_span_id").style.visibility='hidden'; 

  
}
