<!--

/*
Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
Copyright 2002 by Sharon Paine
Visit http://www.dynamicdrive.com for this script
*/

/* IMPORTANT: Put script after tooltip div or 
	 put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

// resize fix for ns4
var origWidth, origHeight;
if (ns4) {
	origWidth = window.innerWidth; origHeight = window.innerHeight;
	window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= false;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 432;
var offX= 20;	// how far from mouse to show tip
var offY= 60; 
var tipFontFamily= "arial, helvetica, verdana, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "white";
var tipBgColor= "#669966"; 
var tipBorderColor= "#000080";
var tipBorderWidth= 2;
var tipBorderStyle= "ridge";
var tipPadding= 4;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
messages[0] = new Array('01.jpg','Joseph Rospini, Vienna, Newton Historical Society');
messages[1] = new Array('02.jpg','Bailey, Optician to the Eye Hospital, Birmingham');
messages[2] = new Array('03.jpg','Wenzel Prokesch, Opticus Mechanicus, Vienna');
messages[3] = new Array('04.jpg','McAllister, No. 48 Chesnut Street, Philadelphia');
messages[4] = new Array('05.jpg','McAllister, Maker, 48 Chesnut St., Philadadelphia');
messages[5] = new Array('06.jpg','Edmund Tarbell, So. Boston, Newton Historical Society');
messages[6] = new Array('07.jpg','Alexander Adie, 0ptician, Edinburgh');
messages[7] = new Array('08.jpg','Fishers, No. 58 Chesnut St., Philad, Old Sturbridge Village');
messages[8] = new Array('09.jpg','John Pierce, Optician, No. 21 Marlboro St., Boston, Old Sturbridge Village');
messages[9] = new Array('10.jpg','Working jeweler, London, Peabody Essex Museum');
messages[10] = new Array('11.jpg','John Pierce, Optician, 162 Washington St., Boston, Peabody Essex Museum');
messages[11] = new Array('12.jpg','John Peirce,Optician, 162 Washington St., Boston, Dedham Historical Society');
messages[12] = new Array('13.jpg','John Pierce, Optician, 164 Washington St., Boston, Peabody Essex Museum');
messages[13] = new Array('14.jpg','John Pierce, Optician, 213 Washington St., Boston, Historic New England');
messages[14] = new Array('15.jpg','Widdifield, 141 Washington St. Boston, Concord Museum');
messages[15] = new Array('16.jpg','Northen, optician, Hull');
messages[16] = new Array('17.jpg','Fortunato Quercetti, Ottico, Milan, New Haven Colony  Historical Society');
messages[17] = new Array('18.jpg','Optician Bianchi father and son, 1787-1855');
messages[18] = new Array('19.jpg','Solerl, Paris');
messages[19] = new Array('20.jpg','Camprecht & Klindmorth, Hannover');
messages[20] = new Array('21.jpg','Lerebours, Paris, Pierre Marly’s book');
messages[21] = new Array('22.jpg','Dolland, London, Colonial Williamsburg');
messages[22] = new Array('25.jpg','Josef Rospini, Opticus, Wien');
messages[23] = new Array('A/1.jpg','The Moderate Benefits, Depot of glasses with surface of cylinder, G.Gagnet, Housewares Dealer & Optician, Chandellery street, La Rochelle", paper label, Vascellari Collection. This publicizes most probably the first lenses for the correction of astigmatism. It accompanies original French-made silver spectacles with a Paris date mark 1819 - 1835. The lens for astigmatism, invented in 1825, is thus advertised and an earlier example has not yet surfaced.');
messages[24] = new Array('A/2.jpg','Label on a magic lantern box, Carl Mueller, Vienna, second half 19th century. Notice the 1st floor shop with objects on the windows, established 1848.');
messages[25] = new Array('A/3.jpg','Duvaldestin, optician, Dijon, France, c. 1830s');
messages[26] = new Array('30.jpg','Duca di San Marco Capece Zurlo, associated with the unique carved case showing the Last Supper and other religious symbols, E. Cl 21.072 at the Musée National de la Renaissance, Le Chateau d\'Ecouen');
messages[27] = new Array('31.jpg','Ducatillon, Opticien, Paris, for a long-handled lorgnette case, Musee Carnavalet');
messages[28] = new Array('32.jpg','T. Rubergall, London, for a lorgnette case, Oppenheimer Collection');

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles for all but ns4. 
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ns4)? document.tipDiv.document: (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = (ns4)? document.tipDiv: tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		if (ns4) document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ns4) {
		var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '"width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>'+ startStr + messages[num][0] + midStr + '<center>' + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
		tooltip.write(tip);
		tooltip.close();
	} else if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<center>' + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
		mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft;
	var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
	else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
	else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

//-->

