/*
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= true; 
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 240;
var offX= 20; // how far from mouse to show tip
var offY= -50; 
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "13px";
// 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= "#ffffff"; 
var tipBorderColor= "#d84519";
var tipBorderWidth= 1;
var tipBorderStyle= "solid";
var tipPadding= 7;

// tooltip content goes here (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('The Register Page',//for our reference only
						'Your password will keep your Numberfox account information private', 
						'If you have some exact letters or numbers you would like to match, please enter them here. We will do our best match these.',//defunct
						'If you have some specific words or names, or perhaps initials, you would like us to search for, please enter them here. You may wish to consider a few different options. We will try find number plates which will match these as closely as possible',
						'We may be able to match with your birthday, e.g. CAZ 1166.',
						'These registrations are pre-1963, so they will be more expensive. We may send you dateless number plates that are outside your budget.',
						'If you would like to limit the number of digits on your number plate, please let us know. Please give this some careful thought as it limits your options and usually increases the cost of your number plate.',
						'Please give us a realistic price range. Bear in mind whether you have restricted the number of digits or asked for a dateless registration as these can make a number plate more expensive.',
						'Please make sure your budget is realistic. Bear in mind whether you have restricted the number of digits, or requested only dateless registrations. If you are unsure, please take a look at \'<b>What do number plates cost?</b>\' to help you plan your budget.');
messages[1] = new Array('The Checkout - Stage 1 Page',//for our reference only
						'You must not assign a number plate to a vehicle that will make the vehicle look newer than it is. You can check the month / year a registration plate was issued in the Useful Info section. If you are unsure, please tick "unknown". We will need this information later when we transfer the registration for you.', 
						'We need the exact name, as it appears on the vehicle V5 log book. This is the name that will appear on your confirmation certificate. Subsequent changes are charged at £25 by the Department of Transport.',
						'You can assign a registration to a vehicle straightaway. Alternatively, we can provide you with a V750 certificate, to be assigned at a later date. You will then have up to 1 year to assign the registration to a vehicle.<br /> REMEMBER: You must assign the registration to a vehicle within 1 year, or renew the certificate for a further year. The Department of Transport will charge &pound;25 for renewal. If you do not assign the registration, or allow the certificate to expire, you will lose your registration mark.',
						'If this is a surprise gift, we will do our best to make sure we don`t let the cat out of the bag! We will use plain envelopes and packaging.',
						'You will need your logbook and further identification when you have your acrylic plates made up. As we will already have your documents, we can arrange your plates to be made for you.');
messages[3] = new Array('The Checkout - Stage 3 Page',//for our reference only
						'We have to pay the card company\'s fees for credit card payments. We ask you to pay some of that cost. We do not charge a fee for payments via debit cards, cheques, or electronic transfer.');






//////////////////// END OF CUSTOMIZATION AREA ///////////////////

// 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 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,section,num,userX,userY) {
if (!tooltip) return;
if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
tipOn = true;
// set colors if included in messages array
//if (messages[num][1]) var curBgColor = messages[num][1];
curBgColor = tipBgColor;
//if (messages[num][2]) var curFontColor = messages[num][2];
curFontColor = tipFontColor;
if(!userX) userX=0;
if(!userY) userY=0;
userX2 = userX;
userY2 = userY;

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 + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[section][num] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
tooltip.write(tip);
tooltip.close();
} else if (ie4||ie5||ns5) {
var tip = startStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[section][num] + '</span>' + endStr;
tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt,userX2,userY2);
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,userX,userY) {
//user-defined position, tip-specific
UoffX = offX+userX2;
UoffY = offY+userY2;

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+UoffX+tpWd)>winWd) 
tipcss.left = (ns4)? mouseX-(tpWd+UoffX): mouseX-(tpWd+UoffX)+"px";
else tipcss.left = (ns4)? mouseX+UoffX: mouseX+UoffX+"px";
if ((mouseY+UoffY+tpHt)>winHt) 
tipcss.top = (ns4)? winHt-(tpHt+UoffY): winHt-(tpHt+UoffY)+"px";
else tipcss.top = (ns4)? mouseY+UoffY: mouseY+UoffY+"px";
if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
if (!tooltip) return;
t2=setTimeout("tipcss.visibility='hidden'",100);
tipOn = false;
}
