<!-- // JavaScript1.1 for Olson front page, by Tom Loredo, 2000.// Start with basic cookie functions borrowed from the Javascript Doc.function setCookie(name, value, expires, path, domain, secure) {  var curCookie = name + "=" + escape(value) +      ((expires) ? "; expires=" + expires.toGMTString() : "") +      ((path) ? "; path=" + path : "") +      ((domain) ? "; domain=" + domain : "") +      ((secure) ? "; secure" : "");  document.cookie = curCookie;}function getCookie(name) {  var dc = document.cookie;  var prefix = name + "=";  var begin = dc.indexOf("; " + prefix);  if (begin == -1) {    begin = dc.indexOf(prefix);    if (begin != 0) return null;  } else    begin += 2;  var end = document.cookie.indexOf(";", begin);  if (end == -1)    end = dc.length;  return unescape(dc.substring(begin + prefix.length, end));}function deleteCookie(name, path, domain) {  if (getCookie(name)) {    document.cookie = name + "=" +     ((path) ? "; path=" + path : "") +    ((domain) ? "; domain=" + domain : "") +    "; expires=Thu, 01-Jan-70 00:00:01 GMT";  }}// date - any instance of the Date object// * hand all instances of the Date object to this function for "repairs"// [Some browser versions don't start counting milliseconds at 1-Jan-00.]function fixDate(date) {  var base = new Date(0);  var skew = base.getTime();  if (skew > 0)    date.setTime(date.getTime() - skew);}// Now my stuff; the following is Copyright 2000 by Tom Loredo.// Visit-tracking cookies expire in 90 days.var expDays = 90;var msDay = 86400000; // ms in a dayvar expires = new Date();fixDate(expires);expires.setTime(expires.getTime() + expDays*msDay);// ************************* Update this for announcements *********************// The welcome message was changed at this time.  Original: "30 Nov 2000 02:22:00"var welcomeDate = new Date("21 Feb 2002 02:40:00");fixDate(welcomeDate);// A session expires in ~1 minute; TOC images will change after that.// (Navigator 4.0 on MacOS 8.6 appears to add 24 sec to this.)var duration = 5*1000; // 45svar sessionEnd = new Date();fixDate(sessionEnd);sessionEnd.setTime(sessionEnd.getTime() + duration);// Setup globals.var numVisits = null;var lastVisit = null;var leftImage = null;var centerImage = null;var rightImage = null;// The setup function, executed once before loading the page contents.function setup() {  // If we are in a session, retrieve the session's data.  var imNums = getCookie('imNums');  if (imNums) {    // window.alert('Existing session... ');    imNums = 1 * imNums;    leftImage = Math.floor(imNums/100);    imNums -= 100*leftImage;    centerImage =Math.floor(imNums/10);    rightImage = imNums - 10*centerImage;    numVisits = getCookie('numVisits');    lastVisit = getCookie('lastVisit');    lastVisit = 1 * lastVisit;    leftImage = "l" + leftImage;    centerImage = "c" + centerImage;    rightImage = "r" + rightImage;  }  // Otherwise, start a new session.  else {    // window.alert('New session...');    // If this is the first visit, initialize numVisit; otherwise, increment it.    numVisits = getCookie('numVisits');    if (numVisits == null) {      numVisits = 1;    }    else{      numVisits++;      lastVisit = getCookie('lastVisit');      lastVisit = 1 * lastVisit;    }        // In either case, store the number and time of this visit.    setCookie('numVisits', numVisits, expires);    var now = new Date();    fixDate(now);    setCookie("lastVisit", now.getTime(), expires);    //window.alert('set cookies:' + numVisits +'  '+now.getTime());    // If the welcome message changed since last visit, display it.    since = lastVisit ? (lastVisit - welcomeDate) : -1;    if (since < 0) {      //showWelcome()    }    // For the 1st visit, use default TOC image numbers...    if (numVisits == 1) {       leftImage = 2;		// Headstock       centerImage = 4;		// JT       rightImage = 1;		// Brochure portrait    }        // ...else, generate new TOC image numbers.    else {      leftImage = pickLeft();      centerImage = pickCenter();      rightImage = 1;  // Portrait    }    // Store TOC image numbers for this session; make image names.    imNums = 100*leftImage + 10*centerImage + rightImage;    setCookie('imNums', imNums, sessionEnd);    leftImage = "l" + leftImage;    centerImage = "c" + centerImage;    rightImage = "r" + rightImage;  }}var win = null;function newWindow(mypage,myname,w,h,scroll){    // Adapted from Eric King's function at dynamicdrive.com, a function    // at Linda Manzer's site, and Ronnie Moore's remote control at JS Source.    self.name = "main"; // names current window as "main"    var LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;    var TopPosition = (screen.height) ? (screen.height-h)/2 : 0;    // TopPosition = Math.max(TopPosition,0);    var settings = 'toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=1,'+      'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll;    win = window.open(mypage,myname,settings);    // if (win.window.focus) {win.window.focus();}  This causes problems on IE4.01!    if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }    return win;}function showWelcome() {    // Open the popup window. stick a timestamp to foil caching.    // Partly borrowed from Linda Manzer's web site.    var popupURL = "welcome.html";    var popup = newWindow(popupURL,"Welcome",500,350,1);    // set the opener if it's not already set.  it's set automatically    // in netscape 3.0+ and ie 3.0+.    if( navigator.appName.substring(0,8) == "Netscape" )    {                popup.location = popupURL;    }}function pickLeft() {    var u = Math.random();    if (u < 0.3) {       // Draped 30%      return 6;    }    else if (u < 0.6) { // Headstock 30%      return 2;    }    else if (u < 0.8) { // 3 gtrs 20%      return 4;    }    else if (u < 0.95) { // SJ 15%      return 1;    }    else {               // 2 backs 5%      return 5;    }}function pickCenter() {    var u = Math.random();    if (u < 0.2) {       // JT 20%      return 4;    }    else if (u < 0.45) { // PK 25%      var u2 = Math.random();      if (u2 < 0.4) {        return 3 // PK SJ2      } else if (u2 < 0.8) {        return 1 // PK live      } else {        return 2 // PK "O"      }    }    else if (u < 0.65) { // DW 20%      return 7;    }    else if (u < 0.75) { // LK 10%      return 6;    }    else if (u < 0.85) { // PL 10%      return 8;    }    else if (u < 0.95) { // KM 10%      return 5;    }    else {               // JH 5%      return 9;    }}// Use this as a "javascript:reset()" URL to reset the cookies & reload// the page as if it was a first visit.function reset() {    deleteCookie('numVisits');    deleteCookie('lastVisit');    deleteCookie('imNums');    history.go(0);}setup();//------------------------------------------------------------------------------// Now start the rollover scripting; this is borrowed but heavily modified.// Get the base URL for this page//with (this.location) {baseURL = href.substring (0,href.lastIndexOf ("/") + 1)}// A "graphic" here is an image with suplemental info, including the// locations of source for "off" and "on" states.var totalGraphics=0;	     // Counts the number of graphics loaded; 3 herevar graphics = new Array();   // Array of graphic objects// CREATE NEW GRAPHIC OBJECTfunction graphic (width, height, name, map) {  // SET GRAPHIC DIMENSIONS  this.height   = height;  this.width    = width;  // GRAPHIC NAME PREFIX - USED FOR SEARCHING  this.name     = name;  // Associated image map  this.map		= map;  // PLAIN VERSION OF THE GRAPHIC - "off"  this.off      = new Image (width, height);  this.off.src  = imageSubdirectory + imagePrefix + name + offSuffix;  this.offname  = imageSubdirectory + imagePrefix + name + offSuffix;  // HIGHLIGHTED (MOUSEOVER) VERSION OF GRAPHIC - "on"  this.on         = new Image (width, height);  this.on.src     = imageSubdirectory + imagePrefix + name + onSuffix;}// Create and store a new graphic object; keep track of how many we havefunction createGraphic (width, height, name, map) {    graphics[totalGraphics] = new graphic(width, height, name, map);    totalGraphics++;}// On an image's mouseOver event, switch to the "on" version of the graphicfunction doMouseOver(num) {    document.images[graphics[num].name].src = graphics[num].on.src;    // If somehow some other graphic was left "on" (e.g. by fast mouse motion),    // turn it off.    if (highlighted != num) {        document.images[graphics[highlighted].name].src = graphics[highlighted].off.src;    }    // Keep track of which graphic was just highlighted    highlighted = num;}// On a mouseOut event, turn "off" the currently highlighted image  function doMouseOut (num) {    document.images[graphics[highlighted].name].src = graphics[highlighted].off.src;}var highlighted=0;    // Will keep track of highlighted graphic// IMAGE NAME DEFAULTS - The graphics are in//  imageSubdirectory, start with imagePrefix, and end//  with offSuffix or onSuffix.  imageSubdirectory = "front/";imagePrefix       = "";offSuffix         = "_off.jpg";onSuffix          = "_on.gif";// Define the graphics here: width, height, basename, map, labelcreateGraphic(160, 210, leftImage, "art_map");createGraphic(180, 210, centerImage, "artists_map");createGraphic(160, 210, rightImage, "artisan_map");//-->