Array.prototype.push = function()
   {
   var i = 0;
   for ( i = 0; i < arguments.length; i++ )
      {
      this[this.length] = arguments[i];
      }
   return arguments[i-1];   
   }

Array.prototype.explode = function(inStr,sepChar)
   {
   var pos1 = 0;
   var pos2 = 0;
   var tmp_str = "";
   this.length = 0;

   if ( 0 == inStr.length )
      {
      return;
      }

   while ( -1 < (pos2 = inStr.indexOf(sepChar,pos1)) )
      {
      tmp_str = inStr.slice(pos1,pos2);
      pos1 = pos2 + 1;
      this.push(tmp_str);
      }

   this.push(inStr.slice(pos1,(inStr.length)));   

   return;                              
   }

String.prototype.ToCharCodeArray = function()
   {
   var arr = new Array(this.length);

   for ( var i=0; i < this.length; i++ )
      {
      arr[i] = this.charCodeAt(i);
      }
   return arr;   
   }      


function UnMaskArrStr( arrStr,sepChar,maskStr,mskSepChar )
   {
   if ( 1 > arrStr.length )
      {
      return "";
      }
      
   var mask_arr = new Array();
   mask_arr.explode(maskStr,mskSepChar);
   var mask_len = mask_arr.length;

   var in_arr = new Array();
   in_arr.explode(arrStr,sepChar);
   var in_arr_ln = in_arr.length;
         
   var tmp = "";      
   var out_str = "";        
   var i = 0;
   for ( i = 0; i < in_arr_ln; i++ )
      {
      tmp = in_arr[i] ^ mask_arr[(i % mask_len)];
      out_str += String.fromCharCode(tmp);
      }
   return out_str;                   
   }


function MaskStr( inStr, maskStr, sepChar )
   {      
   var mask_arr = new Array();
   mask_arr.explode(maskStr,sepChar);
   var mask_len = mask_arr.length;
   var in_arr = inStr.ToCharCodeArray();
   var msk_idx = 0;
   var arr_len = in_arr.length;
   var tmp = 0;
   var tmp2 = 0;
   var msk = 0;
   var mskidx = 0;
   for ( var i = 0; i < arr_len ; i++ )
      {
      in_arr[i] = in_arr[i] ^ mask_arr[(i % mask_len)];
      }
   var tmp = in_arr.toString();
   return tmp;
   }

function FrmOnSubmit(msk, frmNm, frmElems)
   {
   var tmp = "";    
   var i = 0;

   for ( i=0; i < frmElems.length; i++ )
      {        
      tmp = document.forms[frmNm].elements[frmElems[i]].value;
      if ( "" == tmp )
         {
         continue;
         }      
      tmp = MaskStr(tmp,msk,'.');
      document.forms[frmNm].elements[frmElems[i]].value = tmp;
      }
   return true;
   }

function FrmOnLoad(msk, frmNm, frmElems)
   {
   var tmp = "";    
   var i = 0;
   for ( i=0; i < frmElems.length; i++ )
      {        
      tmp = document.forms[frmNm].elements[frmElems[i]].value;
      if ( "" == tmp )
         {
         continue;
         }         
      tmp = UnMaskArrStr( tmp,',',msk,'.' );      
      document.forms[frmNm].elements[frmElems[i]].value = tmp;
      }
   return true;
   }   

