//-- FILENAME: mapper.js --//
//-- $Name: Release_7-8 $ --//
//-- $Header: /CVSRepositories/TSI_WebSite/JS_Repository/mapper.js,v 1.7 2011/01/13 17:17:11 TSI Exp $ --//
//--              Copyright 2004 - 2011 TurnSignal Inc. All Rights Reserved.                           --//
//--===================================================================================================--//
/* input is mapped into set of reserved characters between "!" (33) and "0" (48) */
/* this string is then "escaped"                                             */

function encode16(inpChrs) {
  //alert("Entering encode16()..........");
  var lmit = inpChrs.length;
  var output = "";
  var chr1 = "";
  var cde1 = 0;
  var enc1, enc2 = 0;
  var oChr1, oChr2 = "";
  var i = 0;
  do {
    chr1 = inpChrs.charAt(i);
    cde1 = inpChrs.charCodeAt(i++);
    //alert("Next Char in String--:" + chr1 + ":-- code=" + cde1);
    enc1 = (cde1 >> 4) & 15;
    enc2 = (cde1 & 15);
    //alert("Encodes to: code1=" + enc1 + " code2=" + enc2);
    oChr1 = String.fromCharCode(enc1 + 40);
    oChr2 = String.fromCharCode(enc2 + 40);
    //alert("Converets to: oChr1--:" + oChr1 + ":-- oChr2--:" + oChr2 + ":--");
    output = output + oChr1 + oChr2;
    //alert(Output:" + output);
  } while (i < lmit);
  var rtnVal = encodeURIComponent(output);
  //alert("..........................encode16() Returning--|" + rtnVal + "|---");
  return rtnVal;
} // end function TSI_encode16()

//==============================================================================
function decode16(input) {
  //alert("Entering decode16()..........");
  var inpChrs = decodeURIComponent(input);
  var lmit = inpChrs.length;
  var cde1, cde2, oCde = 0;
  var output = "";
  var oChr = "";
  var i = 0;
  do {
    cde1 = inpChrs.charCodeAt(i++) - 40;
    cde2 = inpChrs.charCodeAt(i++) - 40;
    //alert("decodes to: code1=" + cde1 + " code2=" + cde2);
    oCde = (cde1 << 4) & 240 | (cde2 & 15);
    //alert("ReComb=" + oCde);
    oChr = String.fromCharCode(oCde);
    output = output + oChr;
  } while (i < lmit);
  //alert("..........................decode16() Returning");
  return output;
} // end of decode16()

//==============================================================================




