/** extract from VietInterfaceIE5.js V1.1 10/01/1999
* MViet70.js   or BViet  by SonPham ca46617@csun.edu 6/15/2002
* Copyright (c) 1999, 2000,2001, 2002, 2003 MDSS Inc. All Rights Reserved.
* check 8.4 LN iHN[4]
**/
var MVhnVal= 31; var iHN = new Array(1,1,1,1,1);//8.1 
var hnNew=0; var MVtmVal= 0; 
	var iTM = new Array(0,0,0,0,0);//8.2
var BoDauMV=""; var currElm; 
var mvframe=null; 
var MVOff =1; var tempOff=1; var MVsrc=null; 
var TatTamMV=""; var TatTamW; var offP = false; var TroVeMV=""; var TocKyMV="0|"; 
var tkType="0|"; var elm; var ready=false; var HNWindow=0;

function SetiHN(){  
MVhnVal=0;var Pow=1;
for (var i = 0; i < iHN.length; i++){if (iHN[i] == 1) MVhnVal += iHN[i] * Pow;Pow=Pow+Pow;}
}

function checkBoDau(){
 BoDauMV=getMV("BoDau", "\'1|`2|?3|~4|5.|^6|+*7|(8|d9-||\\") ;
 MVtmVal =  parseInt(getMV("tmVal", 1));
 var t=  MVtmVal; for (var i =0; i< 5; i++){ iTM[i] = t%2; t =  Math.floor(t/2);}

var tatTam = getMV("TatTamMV","http|@|www|[*]" ) ; 
var indTT=tatTam.indexOf('*');
if (indTT>-1){
TatTamMV= tatTam.substring(0, indTT); TatTamW=TatTamMV.split('|'); TroVeMV= tatTam.substring(indTT+1);} 
TocKyMV= getMV("TocKyMV", "0|") ;
}

document.onclick= function(){   
if ( (event.srcElement.type == 'textarea' || event.srcElement.type == 'text') && currElm != event.srcElement)  { currElm=event.srcElement; }             
}

document.onkeydown= function(){
elm = event.srcElement;
ready = elm.type=='textarea' || (elm.type=='text' && elm.name!="BoDau"
&& elm.name!="Email" && elm.name!="Email2" && elm.name!="Email3");
}

document.onkeypress= function(){
var key = event.keyCode; 
if (ready){ currElm = elm; var src = document.selection.createRange(); 
if (src.text.length ==0 && BoDauMV !="" && MVOff ==1) processLet(elm); }
} 

function openWindowMV (url,name,widgets) {           
if (mvframe!=null) mvframe.close(); mvframe = window.open (url,name,widgets);
mvframe.opener.top.name="opener"; mvframe.moveTo(0, 0); mvframe.focus();
}

function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) +((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") +((domain) ? "; domain=" + domain : "") +((secure) ? "; secure" : ""); document.cookie = curCookie;}
function getCookie(name) {var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix);
if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) return null; } else begin += 2; var end = document.cookie.indexOf(";", begin); if (end == -1) end = dc.length; return unescape(dc.substring(begin + prefix.length, end)); }
function fixDate(date) { var base = new Date(0); var skew = base.getTime(); if (skew > 0) date.setTime(date.getTime() - skew); }

function setMV(mvVal, mvName) 
{ var now = new Date(); fixDate(now);  now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); setCookie(mvName, mvVal , now); }
function getMV(mvName, mvDef){ var t = getCookie(mvName); var temp=mvDef; if (t) temp = t; return temp;}

function substitute(txtArea, newWord, src){
var indBar = newWord.indexOf('|'); 
if (indBar > -1) { 
      var n = parseInt(newWord.substring(0, indBar));     
      src.moveStart("character", -n); //for keypress
      txtArea.curWord=src.duplicate();
      txtArea.curWord.text = newWord.substring(indBar+1);
      txtArea.curWord.collapse(); 
      event.returnValue= true; }
}

//make sure the frame is on: window.mvframe
function hnQuick(word, ihn) {  //them = true (add more)
if (MVhnVal > 0 && mvframe && !mvframe.closed && mvframe.document.BViet75) { 
 var HNList ="";
 if (ihn==0) HNList = mvframe.document.BViet75.duyetHN(word, 0 );  //8.3P
 else if (ihn==1) HNList = mvframe.document.BViet75.duyetSX(word, 0);    //consider to restrict to s and x
 else if (ihn==2) {  HNList = mvframe.document.BViet75.duyetCT(word, 0);}//consider to restrict to -c and -t
 else if (ihn==3) {  HNList = mvframe.document.BViet75.duyetChTr(word, 0);}//consider to restrict to -c and -t
 else if (ihn==4) {  HNList = mvframe.document.BViet75.duyetLN(word, 0);}//consider to restrict to ch- and tr-  
 var hnIndex= HNList.indexOf('|',4); 
 if (hnIndex> -1  && HNList.substring(hnIndex+1) !="") 
 if (hnNew==0) {  hnNew=1; mvframe.document.MVietForm.HNMsg.value = HNList.substring(hnIndex+1);}
 else { mvframe.MVietForm.HNMsg.value += "\n----------\n"+ HNList.substring(hnIndex+1);}
} 
}

function  processWord1(txtArea){ var key = event.keyCode; var prefix = ''; 
  if (key==5){ if (offP) {  processLet(txtArea); offP = false; document.postmodify.mvnut.checked=true; } else { document.postmodify.mvnut.checked=false; offP = true;}
  }else if (BoDauMV=="" || (MVOff ==0) || offP ) return; else processLet(txtArea); }

function  processLet(txtArea){ 
var strOri = String.fromCharCode(event.keyCode); 
var src = document.selection.createRange();
var src2 = src.duplicate();  src2.moveStart("word", -1); //van
var textIn=src2.text;  
//window.mvframe.doc &windowframe is not visible if typing in pop

//if(mvframe && !mvframe.closed) alert(mvframe);

if (mvframe && !mvframe.closed && mvframe.document.DungCu) {TocKyMV=tkType+window.mvframe.MVietForm.KhungTK.value;}
else if (document.DungCu) {var temp = "0|";
if(document.MVietForm.ChuVan[1].checked)temp = "1|";
else if(document.MVietForm.ChuVan[2].checked)temp = "2|";
else if(document.MVietForm.ChuVan[3].checked)temp = "3|";
else if(document.MVietForm.ChuVan[4].checked)temp = "4|";
TocKyMV=temp+document.MVietForm.KhungTK.value;}

hnNew=0;  //for retaining info hn 8.3

//1:chu 2:van 3:instant 4:auto 
if ( " .?:,;-\n\r".indexOf(strOri)>-1 && BoDauMV.indexOf(strOri)==-1){ //blank  

//check sx: 1 word 
var n = textIn.length;
if (iHN[1]==1 && " .?:,;-\n\r".indexOf(textIn.charAt(n-1))==-1) {hnQuick(textIn, 1);}  //check iHN[1]: 8.1  see the end
if (iHN[4]==1 && " .?:,;-\n\r".indexOf(textIn.charAt(n-1))==-1) {hnQuick(textIn, 4);}  //check iHN[4]: 8.4  see the end : l/n
if (iHN[2]==1 && (textIn.charAt(n-1)=='c' ||textIn.charAt(n-1)=='t') ) {if (iHN[1]==1) hnQuick(textIn, 2); else hnQuick(textIn, 2);} //8.2  
if (iHN[3]==1 && (textIn.indexOf('ch')==0 ||textIn.indexOf('tr')==0 ) ) {hnQuick(textIn, 3); } //8.3  
//now tocky 124 : try tocky direct via window
if  (TocKyMV.charAt(0)=='1' || TocKyMV.charAt(0)=='2'|| TocKyMV.charAt(0)=='4' )  
{ tempOff = 1; 
var newWord = null;
if ((TocKyMV.charAt(0)=='2'|| TocKyMV.charAt(0)=='4') && textIn.length>0) {
       if ( "`^".indexOf(textIn)>-1) src2.moveStart("word", -1);   //-2  get 1 more word
       textIn=src2.text; n =textIn.length; 
         newWord = document.VietInterface.scanVan2(textIn, TocKyMV); 
         if (newWord.length !=0) { 
            substitute(txtArea, newWord, src);
            return;
         }

} //if 24 
//put length > 0 to prevent double enter
if ((TocKyMV.charAt(0)=='1'|| TocKyMV.charAt(0)=='4')&& textIn.length>0){
    
    for (var k=0; k < 6; k++){ 
       newWord = document.VietInterface.scanChu(textIn,TocKyMV );  
       if (newWord.length !=0) { 
         substitute(txtArea, newWord, src);
         return;
       }
       src2.moveStart("word", -1); textIn=src2.text;       
    } //for k

} //if 14 
 
} //if  124 
}//blank

//3:instant down here
var src3 = src.duplicate();  src3.moveStart("word", -1); //van 
textIn=src3.text;
if (("  \n\r"+TroVeMV).indexOf(strOri) > -1) {tempOff = 1; return;} 
 
if(tempOff==0) return;
if (textIn.length > 0){   //remove blankbefore .
 var pLet=textIn.charAt(textIn.length-1); 
 if (pLet ==' ' && (".?'".indexOf(strOri)>-1)  )  { //7.713
   src.moveStart("character", -1); 
   txtArea.curWord=src.duplicate();
   txtArea.curWord.text = ""; 
   txtArea.curWord.collapse(); 
   return;
 }
 if (("  \n\r"+TroVeMV).indexOf(pLet)>-1) textIn="";
}  //textIn


for (var i=0; i < TatTamW.length; i++) { 
if (TatTamW[i].length>0 && (textIn+strOri).indexOf(TatTamW[i] ) >-1) 
{tempOff = 0; return;}}

if (textIn.length<1) return;

var textInHoa=""; 
if ( iTM[1]==1) { src3.moveStart("character", -3); textInHoa=src3.text; if (textInHoa.length==1) textInHoa = textInHoa.toUpperCase(); var newWord = document.VietInterface.getVietOneWord(textInHoa+strOri, -1, TocKyMV, BoDauMV, MVtmVal);}
else {var newWord = document.VietInterface.getVietOneWord(textIn+strOri, -1, TocKyMV, BoDauMV, MVtmVal);  }

if (newWord.length<1) {
    if (iHN[0]==1 && " ,'.?:;-\n\r".indexOf(strOri)==-1 ) hnQuick(textIn+strOri, 0);  
    else if (iHN[4]==1 && " ,'.?:;-\n\r".indexOf(strOri)==-1 ) hnQuick(textIn+strOri, 0);  
    return;} 
else { 
   var indBar = newWord.indexOf('|'); if (iHN[0]==1) hnQuick(newWord.substring(indBar+1), 0);
   if (indBar > -1) { var n = parseInt(newWord.substring(0, indBar)); src.moveStart("character", -n+1); 
       txtArea.curWord=src.duplicate(); txtArea.curWord.text = newWord.substring(indBar+1); 
       txtArea.curWord.collapse(); event.returnValue= false; 
   }else return;
}
}