CRYPT_SIZE = 4;
playfair_tab = new Array;
playfair_tab[1] = new Array("","5","A","2","9");
playfair_tab[2] = new Array("","B","4","7","6");
playfair_tab[3] = new Array("","1","E","C","8");
playfair_tab[4] = new Array("","0","D","3","F");
pos = new Array;

function findLoc(row,col){
  return(playfair_tab[row][col]);
}

function find_symbol(symbol){
  for (row=1; row<=CRYPT_SIZE; row++) {
    for (col=1; col<=CRYPT_SIZE; col++) {
      if (playfair_tab[row][col] == symbol) {
        pos['row'] = row;
        pos['col'] = col;
        return(pos);
      }
    }
  }
}

function SMgetCookie(name) {
    //alert('inside SMgetCookie');  
  var arg = name.toUpperCase() + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j).toUpperCase() == arg) {
          var endstr = document.cookie.indexOf (";", j);
          if (endstr == -1)
            endstr = document.cookie.length;
          return unescape(document.cookie.substring(j, endstr));
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break;
  }
  return null;
}

function rawtohex(s){
  var hex=''
  var i
  for (i=0; i<s.length; i++){
    hex += hexfromdec( s.charCodeAt(i) )
  }
  return hex
}

function hexfromdec(num) {
  if (num > 65535) { return ("err!") }
  first = Math.round(num/4096 - .5);
  temp1 = num - first * 4096;
  second = Math.round(temp1/256 -.5);
  temp2 = temp1 - second * 256;
  third = Math.round(temp2/16 - .5);
  fourth = temp2 - third * 16;
  return (""+getletter(third)+getletter(fourth));
}

function pf_encrypt (pi_string) {
  var source = rawtohex(pi_string);
  var target = '';
  while (source.length > 0) {
    in2 = source.substring(0,2);
    source = source.substring(2,source.length);
    find_symbol(in2.charAt(0))
    row1 = pos['row'];
    col1 = pos['col'];
    pos = find_symbol(in2.charAt(1))
    row2 = pos['row'];
    col2 = pos['col'];
    if (row1 == row2){
      (col1==CRYPT_SIZE)?col1=1:col1++;
      (col2==CRYPT_SIZE)?col2=1:col2++;
    }
    if (col1 == col2){
      (row1==CRYPT_SIZE)?row1=1:row1++;
      (row2==CRYPT_SIZE)?row2=1:row2++;
    }
    target += findLoc(row1,col2) + findLoc(row2,col1);
  }
  return(target);
}

function getletter(num) {
  if (num < 10) {
    return num;
  }
  else {
    if (num == 10) { return "A" }
    if (num == 11) { return "B" }
    if (num == 12) { return "C" }
    if (num == 13) { return "D" }
    if (num == 14) { return "E" }
    if (num == 15) { return "F" }
  }
}

function pf_decrypt (pi_string) {
  if (pi_string == null)
    {return(pi_string)};
  var source = pi_string;
  var target = '';
  while (source.length > 0) {
    in2 = source.substring(0,2);
    source = source.substring(2,source.length);
    find_symbol(in2.charAt(0))
    row1 = pos['row'];
    col1 = pos['col'];
    pos = find_symbol(in2.charAt(1))
    row2 = pos['row'];
    col2 = pos['col'];
    if (row1 == row2){
      (col1==1)?col1=CRYPT_SIZE:col1--;
      (col2==1)?col2=CRYPT_SIZE:col2--;
    }
    if (col1 == col2) {
      (row1==1)?row1=CRYPT_SIZE:row1--;
      (row2==1)?row2=CRYPT_SIZE:row2--;
    }
    target += '%' + findLoc(row1,col2) + findLoc(row2,col1);
  }
  return unescape(target);
}

var expDays = 1000;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function SMsetCookie (name, value) {
//alert("begin SMsetCookie");
  var argv = SMsetCookie.arguments;
//alert("in SMsetCookie: cookie name: " + name);  
  var argc = SMsetCookie.arguments.length;
//alert("in SMsetCookie: cookie value: " + value);  
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : "/";
  var domain = (argc > 4) ? argv[4] : ".tek.com";
//alert("in SMsetCookie: " + domain);  
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
//alert("end of SMsetCookie!");    
}

function SMloginPopulate() {
   var smid = SMgetCookie("tekSMid");
   var smpwd = SMgetCookie("tekSMpwd");
   SMsetCookie("tekSMpwd","");
    if (document.getElementById("regForm:countryLabel") && document.getElementById("regForm:countryLabel").value != "Select a Country") {
        document.getElementById("regForm:email").focus();
    }
    else if(document.getElementById("regForm:email").value != ""){
        document.getElementById("regForm:countryLabel").focus();
    }
    else {
        document.login.username.value = (smid==null || smid=='null')?"":pf_decrypt(smid);
        document.login.password.value = (smpwd==null)?"":pf_decrypt(smpwd);
   
        if (document.login.username.value == ""){
            document.login.username.focus();
        }
        else {
            if (document.login.password.value == "") {
                document.login.password.focus();
            }
            else {
                document.login.method = "post";
                document.login.submit();
            }
        }
    }
}

function SMdeleteCookie (name,path,domain) {
  
  if (SMgetCookie(name)) {
    document.cookie = name + "=null" +
    ((path == null) ? "" : "; path=" + path) +
    ((domain == null) ? "" : "; domain=" + domain) +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function SMcookieTest()  {
    var name = "CookieTest";
    var now = new Date();
    var value = now.getTime();
     document.cookie = name + "=" + escape (value) + "; path=/";   
        if (SMgetCookie(name) == value) {
            return true;
        }
        return false;
}

function SMnoCookieAlert()  {
  if (!SMcookieTest())
    alert('Use of this area of the site requires cookies,\nyou may have cookies disabled.');
}

function SMstripWhitespace (s)
{
  var i;
  var returnString = "";
  for (i = 0; i < s.length; i++)
  {
    var c = s.charAt(i);
    if (c != " ") returnString += c;
  }
  return returnString;
}

function SMcheckTek (s)
{
  if (s.value.toUpperCase().indexOf("\@TEK.COM") > -1
    ||s.value.toUpperCase().indexOf("\@TEKTRONIX.COM") > -1
    ||s.value.toUpperCase().indexOf("\@EXGATE.TEK.COM") > -1
    ||s.value.toUpperCase().indexOf("\@EXGATE.TEKTRONIX.COM") > -1)
     {alert("Tektronix employees log in with their Tektronix User ID instead of their email address.");
      s.focus();
     }
}

function SMmytekSubmitCheck()
{
        if (document.login.username.value=="") {
           alert(enterEmailMsg);           
           document.login.username.focus();        
           return(false);
        }
        else if (document.login.password.value=="") { 
           alert(enterPasswordMsg);
           document.login.password.focus();
           return(false);
        }
        return(true);
}

function SMmytekSubmit()
{
//alert("begin SMmytekSubmit!");
  if (!SMcookieTest()) {
     confirmed = confirm("Use of this area of the site requires cookies,\nyou may have cookies disabled.\n\nWithout cookies you may not be able to login.\n\nDo you want to continue?");
//alert("in SMmytekSubmit: cookie disabled!");     
  }
  else {
     confirmed = true;
  }
  if (confirmed) {
        if (document.login.username.value=="") {
           alert(enterEmailMsg);           
           document.login.username.focus();        
           return(false);
        }
        else if (document.login.password.value=="") { 
           alert(enterPasswordMsg);
           document.login.password.focus();
           return(false);
        }
        else {
         //alert("in SMmytekSubmit: go to SMsetCookie!");
            SMsetCookie("tekSMid",pf_encrypt(document.login.username.value),exp); 
            document.login.submit();
             //return(false);
        }
        //alert("end of SMmytekSubmit!"); 
  }
 
}
