


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 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 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_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 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);
}

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 originalSMcheckCookie ()
{
  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?");
     }
  else
     {confirmed = true;
     }
  if (confirmed)
     {
      if (document.login.USERNAME.value=="")
         {alert("Please enter your email address.");
          document.login.USERNAME.focus();
          return(false);
         }
      else if (document.login.PASSWORD.value=="")
         {alert("Please enter your password.");
          document.login.PASSWORD.focus();
          return(false);
         }
      else
         {
          SMsetCookie("tekSMid",pf_encrypt(document.login.USERNAME.value),exp);
          document.login.submit();
         }
     }
}

function SMcheckCookie()
{
  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?");
  }
  else {
     confirmed = true;
  }
  if (confirmed) {
     if (document.login.PROFILE[0].checked) { 
        if (document.login.USERNAME.value=="") {
           alert("Please enter your email address.");
           document.login.USERNAME.focus();
           return(false);
        }
        else if (document.login.PASSWORD.value=="") {
           alert("Please enter your password.");
           document.login.PASSWORD.focus();
           return(false);
        }
        else {
           SMsetCookie("tekSMid",pf_encrypt(document.login.USERNAME.value),exp);
           document.login.submit();
        }
     }
     else if (document.login.PROFILE[1].checked) {
        if (document.register.p_emailaddress.value=="") {
           alert("Please enter your email address.");
           document.register.p_emailaddress.focus();
           return(false);
        }
        if (! isValidEmail(document.register.p_emailaddress.value)){ 
            alert("Please enter a valid email address.\nThe one you entered is not properly formatted.\nOnly a-z,A-Z,0-9 and +-_@. allowed.");
            return(false);
 }
        else {
           document.register.submit();
        }
     } 
  }
}

function 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?");
  }
  else {
     confirmed = true;
  }
  if (confirmed) {
     if (document.login.PROFILE[1].checked) { 
        if (document.login.USERNAME.value=="") {
           alert("Please enter your email address.");
           document.login.USERNAME.focus();
           return(false);
        }
        else if (document.login.PASSWORD.value=="") {
           alert("Please enter your password.");
           document.login.PASSWORD.focus();
           return(false);
        }
        else {
		   document.login.method = "post";
           SMsetCookie("tekSMid",pf_encrypt(document.login.USERNAME.value),exp);
           document.login.submit();
        }
     }
     else if (document.login.PROFILE[0].checked) {
        if (document.login.USERNAME.value=="") {
           alert("Please enter your email address.");
           document.login.USERNAME.focus();
           return(false);
        }
        if (! isValidEmail(document.login.USERNAME.value)){ 
            alert("Please enter a valid email address.\nThe one you entered is not properly formatted.\nOnly a-z,A-Z,0-9 and +-_@. allowed.");
            return(false);
 }
        else {
		   document.login.p_emailaddress.value = document.login.USERNAME.value;
   		   document.login.action="/oapp/wwwsmadm/!wso_auth.req_access";
           document.login.submit();
        }
     } 
  }
}

function SMgetCookie(name) {
  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;
}

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

function SMsetCookie (name, value) {
  var argv = SMsetCookie.arguments;
  var argc = SMsetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : "/";
  var domain = (argc > 4) ? argv[4] : ".tek.com";
  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("it changed");
}

/*
function SMdeleteCookie (name) {
  var exp = new Date();
  exp.setTime (exp.getTime() - 1000);
  var cval = "";
  document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
  alert("help");
}
*/

// delete cookie.
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();
//    var value = "Test_for_Cookies";
//    if (SMgetCookie(name) == value) {
//        return true;
//    } else {
     document.cookie = name + "=" + escape (value) + "; path=/";
        if (SMgetCookie(name) == value) {
            return true;
        }
        return false;
//    }
}

function SMloginPopulate() {
   var smid = SMgetCookie("tekSMid");
   var smpwd = SMgetCookie("tekSMpwd");
   document.login.USERNAME.value = (smid==null)?"":pf_decrypt(smid);
   document.login.PASSWORD.value = (smpwd==null)?"":pf_decrypt(smpwd);
   SMsetCookie("tekSMpwd","");
   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 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 SMnoCookieAlert()  {
  if (!SMcookieTest()) 
    alert('Use of this area of the site requires cookies,\nyou may have cookies disabled.');
}

function SMsetAction(formloc){
  if (formloc == "yes"){
   document.login.PROFILE[0].checked=true;
   document.login.PROFILE[1].checked=false;
   document.register.p_emailaddress.value="";
   }
  if (formloc == "no"){
   document.login.PROFILE[1].checked=true;
   document.login.PROFILE[0].checked=false;
   document.login.USERNAME.value="";
   document.login.PASSWORD.value="";
   }
 }

function SMloginID() {
	var smid = SMgetCookie("tekSMid");
	return (smid==null)?"":pf_decrypt(smid);
}
function callSearch(cat) {
   	if (cat.value == "") {
alert ("No category selected! Please select a category...");
	  return false;
   	}
   	document.wso.submit();
}

function validateKW( kw ) {
  	var txt = kw;
  	var found = true; 
   	for (i = 0; i < txt.length; i++) {
	 	if ((txt.charAt(i) != ' ') && (txt.charAt(i) != "")) {
	   	found = false;
	   	break;
}
}
if (found) {
alert ("The keyword field is empty!");
return false;
  	} 
  	return true;
}

//following functions starting with"x" are defunct, I think, thats why I put the "x" but left the code for now. jeffa 10/23/2004
function xtoggle_emailtype(targetId, form){
	target = document.getElementById( targetId );
	if (form.p_mkdw_answer6[0].checked || form.p_mkdw_answer5[0].checked) target.style.display = "inline";
	else target.style.display = "none";
}
function xtoggle_shaded( targetId ,targetId2, form ){
	target = document.getElementById( targetId );

  	if (form.p_mkdw_answer6[0].checked){
		target.style.color = "#000000";
		toggle_emailtype(targetId2, form);
		for (i=0; i<400; i++){
			target = document.getElementById('newslettercheck['+ i +']');
			if (target == null) break;
			target.disabled = false;
			}
  	}
	else {
		target.style.color = "#808080";
		toggle_emailtype(targetId2, form);
		for (i=0; i<400; i++){
			target = document.getElementById('newslettercheck['+ i +']');
			if (target == null) break;
			target.checked = false; 
			target.disabled = true;
			}
	}
}
var xdelimiter = ":";
function xMoveOption (MoveFrom, MoveTo, ToDo) {
  var SelectFrom = eval('document.wso.'+MoveFrom);
  var SelectTo = eval('document.wso.'+MoveTo);
  var SelectedIndex = SelectFrom.options.selectedIndex;
  var container;
  if (ToDo=='Add') {
    container=eval('document.wso.'+ToDo+MoveTo);
  }
  if (ToDo=='Remove') {
    container=eval('document.wso.'+ToDo+MoveFrom);
  }
  if (SelectedIndex == -1) {
    alert("Please make a selection.");
  } else {
    for (i=0; i<SelectFrom.options.length; i++) {
      if(SelectFrom.options[i].selected) {
        var name = SelectFrom.options[i].text;
        var ID = SelectFrom.options[i].value;
        SelectFrom.options[i] = null;
        SelectTo.options[SelectTo.options.length]=new Option (name,ID);
        i=i-1;
        if(ToDo=='Add'||ToDo=='Remove') {
          container.value=container.value+name+delimiter;
          //container.value=container.value+ID+delimiter;
        }
      }
    }
	}
}
function xCheckDuplicates (AddListContainer, RemoveListContainer) {
	var AddList = eval('document.wso.'+AddListContainer);
	var RemoveList = eval('document.wso.'+RemoveListContainer);
	var TempAddList = AddList.value;
	var TempRemoveList = RemoveList.value;
	if (TempAddList>''&&TempRemoveList>'') {
    TempAddList = TempAddList.substring(0,TempAddList.length-1);
    TempRemoveList = TempRemoveList.substring(0,TempRemoveList.length-1);
    var AddArray = TempAddList.split(delimiter);
    var RemoveArray = TempRemoveList.split(delimiter);
    for (i=0; i<AddArray.length; i++) {
      for (j=0; j<RemoveArray.length; j++) {
        if (AddArray[i]==RemoveArray[j]) {
          AddArray[i]='';
          RemoveArray[j]='';
          break;
        }
      }
    }
    AddList.value='';
    for (i=0; i<AddArray.length; i++) {
      if (AddArray[i]>'') {
        AddList.value = AddList.value + AddArray[i] + delimiter;
      }
    }
    RemoveList.value='';
    for (i=0; i<RemoveArray.length; i++) {
      if (RemoveArray[i]>'') {
        RemoveList.value = RemoveList.value + RemoveArray[i] + delimiter;
      }
    }
	}
}
function xLockChanges() {
	CheckDuplicates('AddChosen','RemoveChosen');
	CheckDuplicates('AddUsers','RemoveUsers');
}
function chkFields() {
     var focusset = false;
     msg="";

     if (msg != ""){
                    alert("The following information is required:\n" + msg); 
                    return false; 
                   }
     else          {
                    return true; 
                   }
}
function AltValue (ControlField, AltField, ParmField) {
      var vControlField = eval('document.wso.'+ControlField);
      var vAltField = eval('document.wso.'+AltField);
      var vParmField = eval('document.wso.'+ParmField);
      if (vControlField.checked)
      {
         vParmField.value=vControlField.value;
      }
      else
      {
         vParmField.value=vAltField.value;
      }
}

function EnableMKDWField( targetId ){
  for (i=0; i<400; i++)
	{
       nLTargetField = document.getElementById(targetId+'['+ i +']');
       if (nLTargetField == null) break;
       nLTargetField.disabled = false;
	}
}

function DisableMKDWField( targetId ){
  for (i=0; i<400; i++)
	{
      nLTargetField = document.getElementById(targetId+'['+ i +']');
      if (nLTargetField == null) break;
      nLTargetField.checked = false;
      nLTargetField.disabled = true;
      AltValue (nLTargetField.name, 'x_alt'+nLTargetField.name.substring(1), 'p'+nLTargetField.name.substring(1));
    }
}

function ManageEmailAccess( nLDivId, eMailDivId , form ){
  nLDiv          = document.getElementById(nLDivId);
  eMailDiv       = document.getElementById(eMailDivId);
  nLControlField = document.getElementById('NewsLetterAccessControlField');
  eUControlField = document.getElementById('EmailUpdateControlField');
  ePTargetField  = document.getElementById('EmailPermTargetField' );
  ePTNoField     = eval('document.wso.x_alt'+ePTargetField.name.substring(1));
  ePTYesField    = eval('document.wso.x'+ePTargetField.name.substring(1));

  if (nLControlField.checked)
  {
		nLDiv.style.color = "#000000";
		eMailDiv.style.color = "#000000";
		EnableMKDWField('newsletter');
		EnableMKDWField('emailtype');
     	ePTargetField.value = ePTYesField.value;
  }
  else
  {
		nLDiv.style.color = "#808080";
		DisableMKDWField('newsletter');
        if (eUControlField.checked)
        {
		    eMailDiv.style.color = "#000000";
	    	EnableMKDWField('emailtype');
            ePTargetField.value = ePTYesField.value;
        }
        else
        {
		    eMailDiv.style.color = "#808080";
	    	DisableMKDWField('emailtype');
            ePTargetField.value = ePTNoField.value;
        }
  }
}

function addOption (OptionBoxName, SelectionBoxName) {
  var OptionBox = eval('document.wso.'+OptionBoxName);
  var SelectionBox = eval('document.wso.'+SelectionBoxName);
  var SelectedIndex = OptionBox.options.selectedIndex;
  if (SelectedIndex == -1) {
    alert("Please make a selection.");
  } else {
    for (i=0; i<OptionBox.options.length; i++) {
      if(OptionBox.options[i].selected) {
        var name = OptionBox.options[i].text;
        var ID = OptionBox.options[i].value;
        var nodupe = true;
        for (j=0; j<SelectionBox.options.length; j++) {
          if ((SelectionBox.options[j].text == name) && (SelectionBox.options[j].value == ID)) {
            nodupe = false;
          }
        }
        if (nodupe) SelectionBox.options[SelectionBox.options.length]=new Option (name,ID);
      }
    }
  }
}

function removeOption (OptionBoxName, SelectionBoxName) {
  var OptionBox = eval('document.wso.'+OptionBoxName);
  var SelectionBox = eval('document.wso.'+SelectionBoxName);
  var SelectedIndex = SelectionBox.options.selectedIndex;
  if (SelectedIndex == -1) {
    alert("Please make a selection.");
  } else {
    for (i=0; i<SelectionBox.options.length; i++) {
      if(SelectionBox.options[i].selected) {
        SelectionBox.options[i]= null;
        i = i-1;
      }
    }
  }
}

function selectOptions(SelectionBoxName) {
  var SelectionBox = eval('document.wso.'+SelectionBoxName);
  for (i=0; i<SelectionBox.options.length; i++) {
    SelectionBox.options[i].selected=true;
  }
}
