<!--

/*
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= 200;
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= "#E9FECB"; 
var tipBorderColor= "#70CC43";
var tipBorderWidth= 2;
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('','Disk Space is used to store files such as your web site pages and images. Disk space is also used to store email messages.','#E9FECB','#000000');
messages[1] = new Array('','Data Transfer is the uploading and down loading of information from your domain. It includes web, ftp and email traffic.','#E9FECB','#000000');
messages[2] = new Array('','At HostPromo, you will have your own unique place on the web. With this feature you can select a domain that encompasses you interests or a distinctive home on the web for your business. When ordering you will have the ability to pick you home on the web.','#E9FECB','#000000');
messages[3] = new Array('','Websites allowed signifies the number of different websites that can be served from your account. This allows you to have multiple websites under your account. Please note that this is different than domain aliases. Domain Aliases allows you to point other domains to yours. So if you owned yourdomain.com and yourdomain.net but only wanted one site you could point yourdomain.net to yourdomain.com.','#E9FECB','#000000');
messages[4] = new Array('','All accounts come with unlimited POP3 accounts. POP email is a private secure storage location for your email that has to be accessed through a third party email program such as Eudora or Outlook. Our online tutorial provides detailed instructions on how to setup and use POP email.','#E9FECB','#000000');
messages[5] = new Array('','HostPromo provides spam filtering through the control panel. You can block email based upon email address, email domain or even ip address. By entering in the information all emails sent from these unwanted sources will be blocked.','#E9FECB','#000000');
messages[6] = new Array('','With this feature, you can check your email using your web browser from anywhere around the world where you have access to the Internet.','#E9FECB','#000000');
messages[7] = new Array('','Email Forwarding: All plans include unlimited use of email forwarding. With this, messages sent to a certain email address are forwarded to another address. For example, John sends an email to webmaster@yourdomain.com. If you choose, this message is then automatically forwarded to you@yourisp.com. Email Autoresponders: All plans include the unlimited use of email autoresponders. An email autoresponder sends an automated email response to each incoming message that is sent to a specific address. Each email address on your account can have a different autoresponder. For example, John sends an email to sales@yourdomain.com. The autoresponder sends your prewritten message back to John automatically. With this feature, you can improve your company’s image. Your customers know you have received their e-mail.','#E9FECB','#000000');
messages[8] = new Array('','Email Aliases: All plans include unlimited use of email forwarding. With this, messages sent to a specific email address are forwarded to another. For example, John sends an email to webmaster@yourdomain.com. This message is then automatically forwarded to you@yourisp.com or you@yourdomain.com. Catch-all Email Account: A catch-all account collects email that is sent to your domain to accounts that do not exist.','#E9FECB','#000000');
messages[9] = new Array('','Mailing lists simplify sending email to a group of people, i.e. sending a weekly newsletter out to 20 people is simplified to just one address.','#E9FECB','#000000');
messages[10] = new Array('','Most Companies make you pay to talk to them whether it is long distance charges or per incident fees. At HostPromo, we do not believe in making you pay twice for the service that you purchased. We are here 24 hours a day 7 days a week to service your needs with one simple 800 number to call.','#E9FECB','#000000');
messages[11] = new Array('','At HostPromo we are here 24 hours a day 7 days a week. Whether you have a question at 3pm or 3am our staff will be here to assist you.','#E9FECB','#000000');
messages[12] = new Array('','Network Reliability & Performance:100% network uptime - one day credit for each hour of downtime - no packet loss from us to our Tier 1 backbone bandwidth providers - one day credit for each 1% of packet loss - below 3 ms latency from us to our Tier 1 backbone bandwidth providers - one day credit for each additional 3 ms of latency - Server Uptime: 99.99% server Uptime - one day credit for each hour of downtime','#E9FECB','#000000');
messages[13] = new Array('','With our easy to use web site submission tool you can submit your site to 7 major search engines.','#E9FECB','#000000');
messages[14] = new Array('','Our Web Based Control Panel is easy to navigate and simple to use','#E9FECB','#000000');
messages[15] = new Array('','Click Here for a Demo','#E9FECB','#000000');
messages[16] = new Array('','Click Here for more information','#E9FECB','#000000');
messages[17] = new Array('','Click Here for more details','#E9FECB','#000000');
messages[18] = new Array('','SSH (Secure Shell) is a program that enables you to log into your account securely. SSH provides strong authentication and secure communications over unsecured channels. With SSH, you can log onto your home computer, which is considered a remote terminal, and feel safe, because SSH secures the connection as if that terminal was directly attached to our server.','#E9FECB','#000000');
messages[19] = new Array('','Hiring a professional web site designer is very expensive. There is a do-it-yourself alternative of using programs such as Microsoft FrontPage, one of the most popular and easy to use web site design and management tools for average people like us. All Unix web hosting and ecommerce plans support FrontPage2002(and older) extensions, and all Windows2000 web hosting plans support FrontPage2002(and older) extensions free of charge so that you can utilize all the advanced FrontPage functionalities','#E9FECB','#000000');
messages[20] = new Array('','All HostPromo accounts include unlimited subdomains. A subdomain is an extension of your domain that helps you to manage your site. It allows you to have additional, easily memorized hostnames (such as "products.yourdomain.com") which people can use to access specialized areas of your web site.','#E9FECB','#000000');
messages[21] = new Array('','CGI, SSI, PHP, PERL, PYTHON','#E9FECB','#000000');
messages[22] = new Array('','Custom Error pages allow you to provide a error page when someone requests/goes to a page that has been moved or changed.','#E9FECB','#000000');
messages[23] = new Array('','Digital certificates encrypt data using Secure Sockets Layer (SSL) technology, the industry-standard method for protecting web communications. The SSL security protocol provides data encryption for a TCP/IP connection. Because SSL is built into all major browsers and web servers, simply installing a digital certificate turns on their SSL capabilities.','#E9FECB','#000000');
messages[24] = new Array('','MySQL, the most popular Open Source SQL database, is a very fast, reliable relational database management system. You can use MySQL as the database layer for your dynamically generated web pages. Like most Open Source programs and languages, MySQL has a very practical set of features developed with contribution from many users worldwide. The connectivity, speed, and security make MySQL highly suited for accessing databases on the Internet. MySQL is provided as is, i.e. HostPromo does not provide technical support beyond installation of MySQL database on your account.','#E9FECB','#000000');
messages[25] = new Array('','Easily protect information or data on your site. You can restrict access to these areas by setting a username and password with our simple web based control panel.','#E9FECB','#000000');
messages[26] = new Array('','Allow uses to listen to files and watch videos on your site.','#E9FECB','#000000');
messages[27] = new Array('','Flash allows designers and developers to integrate video, text, audio, and graphics into immersive, rich experiences that deliver superior results for interactive marketing and presentations, e-learning, and application user interfaces. Flash is the world’s most pervasive software platform, used by over one million professionals and reaching more than 97% of Internet-enabled desktops worldwide, as well as a wide range of devices.','#E9FECB','#000000');
messages[28] = new Array('','A cron job is an automated process which is set up to run automatically at a scheduled time of day, week, month, or hour. Example: run my backup at 7:30 p.m. everyday. To do this, you need to create a cron table, or “crontab,” which is a file of the times and commands you want to run. This file instructs your system to run your cron jobs. You can run unlimited cron jobs a day. In order to have a cron file enabled for your domain, please contact our support department.','#E9FECB','#000000');
messages[29] = new Array('','Easily provide an area for visitors to upload, download and share information without the use of a password.','#E9FECB','#000000');
messages[30] = new Array('','Web-based file manager system provides full control to maintain and modify your accounts files and subdirectories. This also includes the ability to upload files.','#E9FECB','#000000');
messages[31] = new Array('','You have unlimited access to your account, 24 hours a day, 7 days a week, 365 days a year. This allows you to set up, change, or maintain your web site at any time of the day or night.','#E9FECB','#000000');
messages[32] = new Array('','You are in full control of your site. At no time will we or anyone else place forced advertising, banners or links on your site.','#E9FECB','#000000');
messages[33] = new Array('','Our systems are backed up on a daily and weekly basis. We take great steps to ensure that your site data is secure in case your site needs to be restored. To protect the data even further we ship our weekly backups offsite to further ensure your data is never lost.','#E9FECB','#000000');
messages[34] = new Array('','Detailed Site Statistics to see who is visiting your site, when and where they are from','#E9FECB','#000000');
messages[35] = new Array('','A sophisticated monitoring systems keeps a watchful eye on your site 24x7x365. Even the smallest "hiccup" in the system is reported to our network operations staff to ensure that your site remains up and available on the web.','#E9FECB','#000000');
messages[36] = new Array('','Our OC-48 SONET Rings provide self healing technology so that in the unlikely event of a fiber cut or hardware failure your site will still be accessible and performance will not be degraded.','#E9FECB','#000000');
messages[37] = new Array('','We operate a high-capacity Liebert UPS system, augmented by a number of smaller per-rack UPS. Both UPS systems are able to power all the servers for over 45 minutes in case of a power outage.','#E9FECB','#000000');
messages[38] = new Array('','Our network was designed by Cisco and boasts a high availability core so that your site is accessible 24 hours a day 7 days a week.','#E9FECB','#000000');
messages[39] = new Array('','Our data center is monitored and staffed 24 hours a day which provides instant to response to any items which require attention.','#E9FECB','#000000');
messages[40] = new Array('','Web Based Tutorials will guide you through all of the features of our software','#E9FECB','#000000');
messages[41] = new Array('','By Default all Promo Plans are billed quarterly. Non Promotional plans are availble in monthly and annual billing cycles. As a bonus all annual plans recieve 2 months free.','#E9FECB','#000000');
messages[42] = new Array('','At HostPromo, we believe in our service so strongly that we offer 30 day money back guarantee.','#E9FECB','#000000');
messages[43] = new Array('','Click Here for more information','#E9FECB','#000000');
messages[44] = new Array('','As our fiscal quarter is closing to an end we have waived all setup fees. Hurry as this offer will end soon!','#E9FECB','#000000');
messages[45] = new Array('','All accounts are setup within 15 minutes of payment or you receive 1 month of hosting for free.','#E9FECB','#000000');
messages[46] = new Array('','Disk','#E9FECB','#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) {
	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;
}



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->


