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= 200;
var offX= 20;	// how far from mouse to show tip
var offY= -10; 
var tipFontFamily= "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= "#003399";//
var tipBgColor= "#CCE5FB"; 
var tipBorderColor= "#0E749A";//
var tipBorderWidth= 1;//
var tipBorderStyle= "solid";//
var tipPadding= 5;//

// 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('','Signing up is quick and easy! Your account will automatically created within 10 minutes of signing up. Please consult your Welcome E-Mail after purchase for your account login information.','#CCE5FB','#000000');
messages[1] = new Array('','If for any reason during the first 30 days you are not completely satisfied with our hosting services, we will cancel your account and refund your money for that month\'s\ service provided you have purchased the plan at full price. Promotions, specials and discounted purchases are excluded from this offer. All fees paid for domain registration are nonrefundable, without exception.','#CCE5FB','#000000');
messages[2] = new Array('','eFastservers does not charge a setup fee for hosting.','#CCE5FB','#000000');
messages[3] = new Array('','The is the amount of data storage space used to host your account and files in your account, usually measured in Megabytes (MB).','#CCE5FB','#000000');
messages[4] = new Array('','Bandwidth is a measure of the amount of data that can be sent across a connection per unit of time. Bandwidth is normally measured in megabits per sec (Mbps); a megabit being one million bits. The amount of bandwidth your web site requires depends on the applications that will be running. Simple HTML Web pages do not require a large amount of bandwidth, but full-motion video requires a large amount of bandwidth.','#CCE5FB','#000000');
messages[5] = new Array('','Create as many web sites as you wish, up to your available disk space limit.','#CCE5FB','#000000');
messages[6] = new Array('','The number of POP3 mailboxes that you can create in your account. You have the option to retrieve email directly from POP3 mailboxes on the mail server using an email program such as Outlook or use webmail to view your messages.','#CCE5FB','#000000');
messages[7] = new Array('','A subdomain is a subdivision of a larger domain. E.g., "forums.yourdomain.com" is a subdomain of yourdomain.com.','#CCE5FB','#000000');
messages[8] = new Array('','To upload files to your web site, you will need to use an FTP client to upload your files. You can do this with an FTP client such as CuteFTP or WSFTP Pro. Each website is automatically set up with an FTP account at the time of site creation. Depending on the number of accounts you are allowed, you can create additional FTP accounts for other users, and grant them read only, or write only privileges.  If your FTP client supports secure file transfers, you can also transmit your data securely with our servers.','#CCE5FB','#000000');
messages[9] = new Array('','ODBC DSN is a simple way to connect, call a database stored in your db folder.','#CCE5FB','#000000');
messages[10] = new Array('','Microsoft\'s\ high-end database is very powerful and robust database designed for high volume sites. To administer MS SQL 2000, you should have a copy of MS Enterprise Manager installed on your development PC so you can administor and connect to your database on your web site. MS SQL can tricky to use in a shared hosting environment, so this is typcially for the advanced user.','#CCE5FB','#000000');
messages[11] = new Array('','MySQL is a powerful database that\'s\ very popular, especially with PHP users.','#CCE5FB','#000000');
messages[12] = new Array('','All our servers are protected by FireSlayer. When a DoS attack is launched against any server on our network, FireSlayer automatically allows the maximum amount of legitimate traffic through to the server while rejecting the maximum amount of illegitimate traffic.','#CCE5FB','#000000');
messages[13] = new Array('','TippingPoint Intrusion Prevention System (IPS), delivers the most powerful network protection in the world. As packets pass through the IPS, they are fully inspected to determine whether they are legitimate or malicious. New filters are continuously fed to the IPS to keep it up-to-date against the latest vulnerabilities. Each filter can be thought of as a "Virtual Software Patch" that is created within the network to protect servers from attack.','#CCE5FB','#000000');

////////////////////  END OF CUSTOMIZATION AREA  ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var h=0; h<messages.length; h++) {
  	theImgs[h] = new Image();
		theImgs[h].src = messages[h][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 + '">';
var midStr = '<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) {
	initTip();
	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 + '<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 + '<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;
}


