/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* IMPORTANT: Put script after tooltip div or 
	 put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

var origWidth, origHeight;

// 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= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 280;
var offX= 20;	// how far from mouse to show tip
var offY= 12; 
var tipFontFamily= "Verdana, arial, helvetica, 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= "#000000";
var tipBgColor= "#DDECFF"; 
var tipBorderColor= "#000000";
var tipBorderWidth= 3;
var tipBorderStyle= "solid";
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('images/img1_large.jpg','<div align=center>News website for one of Gosports nicest districts - Alverstoke</div>','black','white');

messages[1] = new Array('images/img2_large.jpg','<div align=center>Car leasing company - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[2] = new Array('images/img3_large.jpg','<div align=center>Gosport carpet and florring shop established in 1989. We employ seven full time floor layers, carpet fitters and three administration staff. Contact Carpet Fayre for a home selection visit….</div>','black','white');

messages[3] = new Array('images/img4_large.jpg','<div align=center>Champagne flute and glass hire - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[4] = new Array('images/img5_large.jpg','<div align=center>State of the art purpose built childrens nursery in Gosport</div>','black','white');

messages[5] = new Array('images/img6_large.jpg','<div align=center>Are you looking for desk space, storage space or office commercial property in Gosport? Call us to view.</div>','black','white');

messages[6] = new Array('images/img7_large.jpg','<div align=center>We specialise in helping event managers locate a venue to hold meetings and seminars in Gosport. You will speak to a locally based person who actually lives and works in Gosport</div>','black','white');

messages[7] = new Array('images/img8_large.jpg','<div align=center>Hire Plate, side plates, teacup & saucers, mugs - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[8] = new Array('images/img9_large.jpg','<div align=center>Hire knives, forks, spoons and teaspoons - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[9] = new Array('images/img10_large.jpg','<div align=center>Hire white dinner plate & white side plates - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[10] = new Array('images/img11_large.jpg','<div align=center>Champagne, wine, water, glass hire - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[11] = new Array('images/img12_large.jpg','<div align=center>Specialists in both Wedding catering, Corporate Yacht and Powerboat Catering and Event catering….Visit Solent Caterers</div>','black','white');

messages[12] = new Array('images/img13_large.jpg','<div align=center>All about some of the businesses operating in Haslar Marina on the waterfront at Gosport</div>','black','white');

messages[13] = new Array('images/img14_large.jpg','<div align=center>The 1908 LODGE Gosport: A unique row of Edwardian dwellings in Gosport. (Newly refurbished) Sleeps 2-40</div>','black','white');

messages[14] = new Array('images/img15_large.jpg','<div align=center>Hire and rental of portable hot tubs - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[15] = new Array('images/img16_large.jpg','<div align=center>Thie website is ideal if you have been tasked to find a hotel room in Gosport. But never been here before?….. We take the strain out of surfing the web and will have you an availability quote very quickly….Born, bred and based in Gosport….</div>','black','white');

messages[16] = new Array('images/img17_large.jpg','<div align=center>Hire a beer keg for your party. Lagers and beers……- Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[17] = new Array('images/img18_large.jpg','<div align=center>Whether you want to staff the bar yourself or need a mobile bar fully stocked and staffed….we can help….</div>','black','white');

messages[18] = new Array('images/img19_large.jpg','<div align=center>Buffet lunches, platters and BBQ s arranged along with all types of outside catering requests….</div>','black','white');

messages[19] = new Array('images/img20_large.jpg','<div align=center>All types of party glass hire for your event or special occasion - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[20] = new Array('images/img21_large.jpg','<div align=center>The Goodwin Studio has been running for 25 years, and for the last 18 years it has been based at the present address. Northcross Street is just off the main High street.</div>','black','white');

messages[21] = new Array('images/img22_large.jpg','<div align=center>Gosports Largest Legal Office - Donnelly & Elliott</div>','black','white');

messages[22] = new Array('images/img23_large.jpg','<div align=center>Hire trestle tables for your event - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[23] = new Array('images/img24_large.jpg','<div align=center>Used car and van leasing company - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[24] = new Array('images/img25_large.jpg','<div align=center>Van leasing company - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[25] = new Array('images/img26_large.jpg','<div align=center>All types of vehicle leasing company - Hampshire based between Portsmouth and Southampton</div>','black','white');

messages[26] = new Array('images/img27_large.jpg','<div align=center>Gosport based caterers providing wedding catering throughout Hampshire - Based between Portsmouth and Southampton</div>','black','white');

messages[27] = new Array('images/img28_large.jpg','<div align=center>Hot Desking in Gosport</div>','black','white');



messages[28] = new Array('images/img29_large.jpg','<div align=center>Over sea or by road, boat and yacht deliveries - based in Haslar Marina Gosport</div>','black','white');

messages[29] = new Array('images/img30_large.jpg','<div align=center>Boats, yachts, RIBs - Whatever type of boat, we can organise a half day or full day charter on the Solent. Based in Haslar Marina Gosport</div>','black','white');

messages[30] = new Array('images/img31_large.jpg','<div align=center>We provide the tuition that leads to the RYA Day Skipper Shorebased certificate based at Haslar Marina Gosport</div>','black','white');

messages[31] = new Array('images/img32_large.jpg','<div align=center>Power Boat Cruising on two fantastic boats, with the reputation of being the very best available for charter hire on the south coast. Based in Haslar Marina Gosport</div>','black','white');

messages[32] = new Array('images/img33_large.jpg','<div align=center>Corporate rib days and treasure hunts in the Solent based in Haslar Marina Gosport</div>','black','white');

messages[33] = new Array('images/img34_large.jpg','<div align=center>Practical RYA Courses that run from our operating base at Haslar Marina Gosport.</div>','black','white');

messages[34] = new Array('images/img35_large.jpg','<div align=center>Weekend Sailing opportunities for Singles, Couples and Groups……………based in Haslar Marina Gosport</div>','black','white');



messages[35] = new Array('images/img36_large.jpg','<div align=center>Are you looking for desk space, storage space or office commercial property in Gosport? Call us to view</div>','black','white');

messages[36] = new Array('images/img37_large.jpg','<div align=center>Organisers of scattering ashes ceremonies in the Solent based in Haslar Marina Gosport</div>','black','white');

messages[37] = new Array('images/img38_large.jpg','<div align=center>FED UP WITH IRONING? Then let me do it for you! Reasonable rates. Fast efficent service - Call Pippa on 07581 629 148 </div>','black','white');

messages[38] = new Array('images/img39_large.jpg','<div align=center>Alverstoke based driving instructor, Sally Goodwin, Call her on 07813 770 893</div>','black','white');


////////////////////  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
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = 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) {
		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 (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<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) {
	standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
	mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.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) {
		standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
		mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
		mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
	var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = mouseX-(tpWd+offX)+"px";
	else tipcss.left = mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = winHt-(tpHt+offY)+"px";
	else tipcss.top = mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')
