//resume.js adk 2/2002 code for various versions of online resume
  function skill(strN, strL){
    this.strName = strN;
    this.strLongName = strL;
    this.strDesc='';
    this.strDescRef = null;//if not null, string to find strName for Description
    this.getDesc = new Function('return ((this.strDescRef == null) ? this.strDesc : findDesc(this.strDescRef))');
  }

  function findDesc(strName){
    for (var s=0; s<numSkills; s++){
      if (strName == skillArray[s].strName){
        return skillArray[s].strDesc;
        break;
      }
    }//endfor s
  }//findDesc

  var skillArray = new Array();
  var numSkills = 0;
  // *** Load skills ***

  skillArray[numSkills] = new skill('','Visual Basic, VBA, VB.NET');
  skillArray[numSkills].strDescRef = 'Basic'; // use Basic description
  numSkills++;

  skillArray[numSkills] = new skill('Basic','MS Basic, HP Basic');
  skillArray[numSkills].strDesc =  "High level expertise:<br />- Most recently, I've worked with VBA under Access, before that Visual Basic 5 for a short project, and even earlier I used VB3 for several database and user interface projects.";
  skillArray[numSkills].strDesc += "<br />- My first Basic was Microsoft's AppleSoft Basic in 1980, writing graphical simulations in Psych labs.";
  skillArray[numSkills].strDesc += "<br />- In 1984, began using HP Basic for real-time robotic controls and interfaces";
  skillArray[numSkills].strDesc += "<br />- In 1987, returned to Microsoft with QB3, 4, and Basic Professional.";
  skillArray[numSkills].strDesc += "Developed CAD interfaces, pop-up, mouseable text menus, interactive graphical design systems, and business systems";
  skillArray[numSkills].strDesc += "<br />- Used the Media Cybernetics HALO graphical libraries until the VGA standard converged. Used the Novell Btrieve database libraries to write both stand-alone and client-server engineering and business database systems.";
  numSkills++;

  skillArray[numSkills] = new skill('C', 'C/C++/VC++/MFC');
  skillArray[numSkills].strDesc = "High level expertise:<br />Self-taught C from original Kernighan/Ritchie Blue Book in 1986 and developed factory conveyor systems controls";
  skillArray[numSkills].strDesc += "<br />Took Classes in C/VC++ in 1993 and began maintaining the mega-line Alpine Integrated Engineering System";
  skillArray[numSkills].strDesc += "<br />Through 11/2000, developed with Visual C++, ADO and MFC, writing a script interpreter, business database units and user interfaces, and some engineering modules.";
  numSkills++;

  skillArray[numSkills] = new skill('','MS SQL Server');
  skillArray[numSkills].strDescRef = 'SQL'; // use SQL description
  numSkills++;

  skillArray[numSkills] = new skill('','MS Access 97-2k');
  skillArray[numSkills].strDescRef = 'SQL'; // use SQL description
  numSkills++;

  skillArray[numSkills] = new skill('MySQL','MySQL');
  skillArray[numSkills].strDesc =  "Dabbled in this open source, scalable database environment in 2002 but began using it in earnest for a suite of websites in 2004.";
  skillArray[numSkills].strDesc += "<br />Some examples of sites I developed using this database engine are <a href=\"http://www.patiosupplyshop.com\">patiosupplyshop.com</a> ";
  skillArray[numSkills].strDesc += "and <a href=\"http://www.stopandgotires.com\">StopAndGoTires.com</a>"
  numSkills++;

  skillArray[numSkills] = new skill('SQL','DAO, ADO, SQL');
  skillArray[numSkills].strDesc = "Began using MS Access 97 and DAO in 1997. Gained facility in manually editing SQL queries.";
  skillArray[numSkills].strDesc += "<br />Moved to SQL Server 7 in 1999, then SQL2000, SQL2003, SQL2005, developing and enhancing business modules";
  skillArray[numSkills].strDesc += "<br />Have written databases in Visual C++, Visual Basic, via Access, ASP, and under SQL Server";
  numSkills++;

  skillArray[numSkills] = new skill('VisualStudio','MS Visual Studio');
  skillArray[numSkills].strDesc =  "I have worked in many language development environments:";
  skillArray[numSkills].strDesc += "<br />Simple text editors, stand-alone program editors (like KEdit, REXX), interactive editors (Borland Turbo languages), interpreters (Basics, Javascript), and the much ballyhooed Microsoft Visual Studio integrated development environment for many languages (QuickBasic, VB, VC++, MSPascal, Fortran)";
  skillArray[numSkills].strDesc += "<br />I've even had to write my own code generators for industrial ladder-logic, micro-controllers, and html for database-generated web pages";
  numSkills++;

  skillArray[numSkills] = new skill('','HTML DHTML');
  skillArray[numSkills].strDescRef = 'Web'; // use Web description
  numSkills++;

  skillArray[numSkills] = new skill('','Javascript');
  skillArray[numSkills].strDescRef = 'Web'; // use Web description
  numSkills++;

  skillArray[numSkills] = new skill('','CGI/Perl, ASP');
  skillArray[numSkills].strDescRef = 'Web'; // use Web description
  numSkills++;

  skillArray[numSkills] = new skill('Web','FrontPage, etc');
  skillArray[numSkills].strDesc += "<b>HTML</b>: Originally self-taught from a book about the proposed HTML2.0 standard in 1995 to develop the FolkFire web site.";
  skillArray[numSkills].strDesc += " I still code mostly by hand in a color-coding text editor, although I have used FrontPage for prototyping, or large text runs.";
  skillArray[numSkills].strDesc += "<br /><b>CGI/Perl</b>: Self-taught Perl in 1995 for FolkFire. Re-learned it recently.";
  skillArray[numSkills].strDesc += "<br /><b>DHTML</b>: Added style sheets to my repertoire in 2000. This (hand coded) resume uses them.";
  skillArray[numSkills].strDesc += "<br /><b>ASP</b>: In 2002 I did the first job in which I discovered the ease of ASP development. With my strong SQL and Basic backgrounds, creating web pages containing graphs and tables from complex queries on 4-dimensional data with user input is a breeze.";
  skillArray[numSkills].strDesc += "<br /><b>Javascript</b>: Self taught in 2000. My resume, personal page, and my client-side e-commerce solutions use quite a bit of JavaScript.";
  skillArray[numSkills].strDesc += "I've completed web pages for clients with over a thousand lines of optimized, tight code between server and client machines.";
  numSkills++;

  skillArray[numSkills] = new skill('Pascal/Fortran','Pascal, Fortran');
  skillArray[numSkills].strDesc += "<b>Pascal</b>: From Borland Turbo Pascal to Microsoft Pascal, I have developed graphical engineering analysis units, and business tracking systems.";
  skillArray[numSkills].strDesc += "<br /><b>Fortran</b>: My first computer language, self taught on a 1977 minicomputer for fun. Later, had the dubious opportunity of porting a graphical program from DOS Fortran to Windows C++";
  numSkills++;

  skillArray[numSkills] = new skill('Prolog', 'Prolog, Fourth');
  skillArray[numSkills].strDesc += "Prolog and Fourth: Just dabbled, to learn fourth generation AI languages back in the days before the term &quot;object-oriented&quot; was coined.";
  numSkills++;

  skillArray[numSkills] = new skill('Java', 'Java');
  skillArray[numSkills].strDesc += "Java: Self taught by &quot;Teach Yourself Java in 21 Days&quot;. Just dabbled. No serious projects, yet.<br />Have done some serious Javascript Development, though.";
  numSkills++;

  skillArray[numSkills] = new skill('','MS Office, Word');
  skillArray[numSkills].strDescRef = 'Office'; // use Office description
  numSkills++;

  skillArray[numSkills] = new skill('','Outlook, Excel');
  skillArray[numSkills].strDescRef = 'Office'; // use Office description
  numSkills++;

  skillArray[numSkills] = new skill('Office', 'Lotus 123, Visicalc');
  skillArray[numSkills].strDesc += "<b>Word processors</b>: From a home-made assembly language editor through Wordstar on CP/M, WordPerfect, and finally MS Word. I have a deeper than average understanding of these tools.";
  skillArray[numSkills].strDesc += "<br /><b>Spread sheets</b>: Started with Visicalc, then Lotus 1-2-3, Lotus Symphony, and then to MS Excel and Access. VB macros, etc.";
  skillArray[numSkills].strDesc += "<br /><b>Email/Online</b>: Started with Compuserve around 1983, when it was all there was. Tried AOL when it first came out (and still keep an active account for travel), then MSN, AT&amp;T, Earthlink, and currently have <b>ADSL</b> and use Outlook for email";
  numSkills++;

  skillArray[numSkills] = new skill('Notes', 'Lotus Notes');
  skillArray[numSkills].strDesc += "<b>Groupware:</b> Lotus Notes power user. Did some minor forms and scripts development.";
  numSkills++;

  skillArray[numSkills] = new skill('Images','Adobe Photoshop, GiMP, etc');
  skillArray[numSkills].strDesc += "Many different image editors and picture processing tools including Adobe PhotoDeluxe and Photoshop, Dr. Halo, MS PhotoPaint, ThumbsPlus, and others.";
  skillArray[numSkills].strDesc += "<br />I have the talent and patience for image enhancement and manipulation. Don't forget my college minor in Fine Arts. ";
  skillArray[numSkills].strDesc += "I became a serious amateur B&amp;W photographer in high school, so I know quite a bit about images from before the easy click-and-change world of today.";
  skillArray[numSkills].strDesc += "<br />I am now using an 8 Megapixel super-zoom Camera for most of my needs, and am stretching my digital acquisition and processing capabilities.";
  numSkills++;

  skillArray[numSkills] = new skill('','PageMaker, ');
  skillArray[numSkills].strDescRef = 'Layout'; // use Layout description
  numSkills++;

  skillArray[numSkills] = new skill('Layout', 'Ventura Publisher');
  skillArray[numSkills].strDesc += "I learned the technical skill of page layout while learning to use those skills in <b>Ventura Publisher</b> in 1993. I have been the editor and/or Layout artist for FolkFire on and off since 1993. We moved to <b>Adobe Pagemaker</b> in 1995.";
  numSkills++;

  skillArray[numSkills] = new skill('Assembly Language', 'Assembly Language');
  skillArray[numSkills].strDesc += "I started learning Assembly language in 1980 for the Apple ][ computer. I used it for hardware controls and fast graphics. I learned Motorola 68000 assembler in a computer building lab on the way to my BSEE. I used 8088 assembler occasionally in the DOS 3.2 and 4.0 days.";
  numSkills++;

  skillArray[numSkills] = new skill('Remote', 'pcAnyWhere');
  skillArray[numSkills].strDesc += "<br />As a frequent telecommuter, I have had ample occasions to use remote-ware such as <b>ReachOut</b>, <b>PcAnywhere</b>, <b>NetMeeting</b>, <b>LapLink</b>, and <b>Remote Control</b>. I have ADSL, multiple phone lines, remote console programs, and email, so telecommuting is quite comfortable.";
  skillArray[numSkills].strDesc += "<br />With firewalls everywhere, I now use GoToMeeting and/or GoToAssist regularly to help clients in distress.";
  numSkills++;

  skillArray[numSkills] = new skill('','MS Dos, Win3.1,');
  skillArray[numSkills].strDescRef = 'Computers';
  numSkills++;

  skillArray[numSkills] = new skill('','Win95,98,NT,2K');
  skillArray[numSkills].strDescRef = 'Computers';
  numSkills++;

  skillArray[numSkills] = new skill('','CP/M, QNX, etc');
  skillArray[numSkills].strDescRef = 'Computers';
  numSkills++;

  skillArray[numSkills] = new skill('Computers', 'PC Assembly and Repair');
  skillArray[numSkills].strDesc += "I've used and supported most flavors of DOS, Windows since 3.1, NT4 and Windows 2000, XP. I've written many batch files, regedit'ed all over the place, and have a toolbox full of system utilities I've collected over the years.";
  skillArray[numSkills].strDesc += "<br />I've also worked under CP/M and QNX (a unix clone).";
  skillArray[numSkills].strDesc += "<br />I've used and supported LanTastik, Microsoft Networking, Novell, and LapLink and PcAnywhere to communicate between machines (mostly before everyone had Windows networking).";
  skillArray[numSkills].strDesc += "<br />In general, I know computers inside and out, from semiconductor quantum physics, chip layout, board design, box assembly, add-on boards, drives, operating systems, and software design and use.";
  numSkills++;

  skillArray[numSkills] = new skill('Alpine', 'Alpine Engineered Products');
  skillArray[numSkills].strDesc += "<p>I started with the Lumbermate Company, St Louis in 1987 for a 4 week project during which I learned another programming language,";
  skillArray[numSkills].strDesc += " and started designing a bulletin-board communications system; this was before 3rd party comm ";
  skillArray[numSkills].strDesc += " software was easy to come by for MS-DOS. &quot;While you're at its&quot;, feature creep, and continuing information industry flux";
  skillArray[numSkills].strDesc += " has kept me well employed there for over 13 years.";
  skillArray[numSkills].strDesc += "</p><p> Lumbermate was purchased by <a href=\"http://www.alpeng.com\">Alpine Engineered Products</a> around 1989.";
  skillArray[numSkills].strDesc += "</p><p> Over the past 12 years I designed and wrote Cad systems, communications systems,";
  skillArray[numSkills].strDesc += " client-server database applications, and business software for Alpine.";
  skillArray[numSkills].strDesc += " I also worked with a robotic saw system and a laser guided truss assembly system.";
  skillArray[numSkills].strDesc += "</p><p>Languages in chronological order while at Lumbermate/Alpine: MS QuickBasic, BTrieve, Basic Professional, MS (UCSD) Pascal,";
  skillArray[numSkills].strDesc += "Visual Basic, C, Visual C++, and MS Access (VBA, DAO, ADO) and SQL Server. ";
  skillArray[numSkills].strDesc += "Working on and maintaining Win95, Win98, and NT4.0 systems.";
  skillArray[numSkills].strDesc += "</p><p>Among the more interesting projects were: Developing a font and font generator for an early laser printer, ";
  skillArray[numSkills].strDesc += " barcode writing software, a network fax manager,";
  skillArray[numSkills].strDesc += " and a client-server engineering database system tied into a home-brew bulletin board.";
  skillArray[numSkills].strDesc += "</p><p>The more mundane projects include: A cad system to re-design structural trusses and buildings, a ";
  skillArray[numSkills].strDesc += "friendly order entry system compatible with both our salesman's promises and the customers needs,";
  skillArray[numSkills].strDesc += "and a networked, secure bulletin board system for software upgrades and engineering project submissions.</p>";
  numSkills++;

  skillArray[numSkills] = new skill('Facts', 'Failure Analysis and Consulting Technical Services');
  skillArray[numSkills].strDesc += " <p>Facts, Inc initially hired me in 1984 for a quick 2 week project during which I learned HP Basic and the 9816 microcomputer OS, and reprogrammed a real-time data acquisition system, integrating components from several industrial and engineering manufacturers.";
  skillArray[numSkills].strDesc += " One thing led to another, salaried position, that is.";
  skillArray[numSkills].strDesc += "</p><p>Over the course of 3 years I worked on robotic quality control testing systems for a major appliance manufacturer,";
  skillArray[numSkills].strDesc += " designed a control system for a copper refinery casting ladle, developed noise and vibration analysis systems for consumer product testing,";
  skillArray[numSkills].strDesc += " developed simulation software for assembly line conveyor systems, and designed high-tech instrumentation systems for testing low-tech military hardware (trucks &amp; bridges).";
  skillArray[numSkills].strDesc += " Visiting a nuclear installation in Argentina to consult with their controls engineers was fun, too.</p>";
  numSkills++;

  numSkills -= 2; // remove the last two from the display list

  var popup=null;//static

  function show(what){
    if (popup==null || popup.closed){
      popup = window.open("","Details","top=0,left=300,width=600,height=200,toolbar=no,resizable,scrollbars");
    }
    with (popup.document){
      open;
      write("<html><head><title>Dan Klarmann details about ",what,"</title></head><body>");
      write(findDesc(what));
      write("</body></html>");
      close();
    } // endwith
    popup.focus();
  }//show

function skillTable(){
  var numRows = Math.round(numSkills / 4 + .49);//round up
  var n = 0;
  with (document) {
    writeln('<center><table border="0" cellpadding="5" cellspacing="0"><tr>');
    for (var c = 1; c<=4; c++){ //columns
      writeln('<td valign="top" nowrap>');
      for (var r = 0; r<numRows;r++){
        if (n < numSkills){
          var str = skillArray[n].getDesc();
          write('<a class="plain" href="javascript:void(0);" onMouseOver="overlib(skillArray[',n,'].getDesc(),WIDTH,500,CAPTION,\''+skillArray[n].strLongName+'\');" onMouseOut="nd();">',skillArray[n].strLongName,'</a>');
          if (r < numRows){
            write('<br />');
          }
          n++;
        }//endif
      }//endfor r
      document.writeln('</td><td>&nbsp;</td>');
    }//endfor c
    writeln('</tr></table></center>');
  }//endwith
}//skillTable

function skillLong(){
  var n = 0;
  with (document){
    write('<p class="margins">');
    for (var n = 0; n<numSkills;n++){
      if (n>0) {
        if (skillArray[n-1].strDescRef == null){
          write('</p><p class="margins">');
        } else {
          write(' -- ');
        }
      }
      write('<b>',skillArray[n].strLongName,'</b> ');
      if (skillArray[n].strDescRef == null){
        write('<ul>',skillArray[n].strDesc,'</ul>');
      }
    }
    writeln('</p>');
  }
}//skillLong


