<!--

/*
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= 300;
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= "#F2F3F5"; 
var tipBorderColor= "#669933";
var tipBorderWidth= 1;
var tipBorderStyle= "solid";
var tipPadding= 2;

// 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('','Storage space is the amount of memory on our servers that we provide to you for your Web files. Your Web files can include html pages, images, audio and video files, log files, data from on-line forms, and anything else you wish to load to your account.');
messages[1] = new Array('','Transfer - Transfer refers to the amount of data you can transfer to and from your server. In the web hosting industry, the word bandwidth is also used to describe transfer. Transfer, short for Data Transfer, is measured anytime a file is uploaded/downloaded to/from your account.<br><br> Every time that file is downloaded/uploaded, the equivalent of the space it takes is subtracted from your remaining transfer. If a file downloaded from your website is 100MB in size, then 100MB of transfer will be used up from your monthly allowance.');
messages[2] = new Array('','Websites Allowed - this is the total number of UNIQUE websites that you can host on your account. All plans include the ability to point multiple domains to a single website; this feature allows you to have multiple websites with different content.');
messages[3] = new Array('','Domain Name - Your-Domainname.com means you can use your very own domain name. This makes your Web presence more professional and more memorable to visitors. <br><br>We can help you register a new domain or transfer your existing domain to SurfSpeedy nameservers.');
messages[4] = new Array('','Our staff is available 24 hours, 7 days a week to assist you with your support needs and questions.');
messages[5] = new Array('','SurfSpeedy provides you with the ability to use web based email and POP3 email. Web-based email is referred to email that you can access by logging into a website. POP3 email is email accessed through software such as Outlook, Mac Mail, Eudora, etc.<br><br>Every email account you create in your control panel allows access through webmail (web based email) or POP3 (email client).');
messages[6] = new Array('','With every email account you create, you have the ability to set up a forwarder or an auto responder. This means that you can forward all email from one account to another email account. The auto responder is used when you want the sender of an email to receive a message back from you as soon as they send you can email.');
messages[7] = new Array('','You can create an alias, allowing different email addresses to send email to the same email account inbox.');
messages[8] = new Array('','Both the control panel and webmail provide options for filtering emails. This is especially helpful to reduce the receiving of SPAM or to block certain addresses from emailing you.');
messages[9] = new Array('','All email account provides web-based email capability. You can check your email from anywhere in the world, even if you are not in front of your computer.');
messages[10] = new Array('','This refers to any given software application that a user uses to download/access email from the mail server of their choosing. This is also referred to as POP3 email.<br><br>Users can use their favorite desktop email applications such as Outlook, Mac Mail, Eudora, and Thunderbird to access their email from the comfort of their desktop.');
messages[11] = new Array('','You can run a mailing list where subscribers can talk to each other over group email, or you can set it so only you can send out emails to your site patrons.');
messages[12] = new Array('','A feature rich online HTML website building wizard. Build your own website without knowing anything about FTP or HTML.');
messages[13] = new Array('','SurfSpeedy offers support for FrontPage 2000/2002 extensions. Users of FrontPage 2003 may also use the provided extensions to upload their FrontPage built sites. As FrontPage uses proprietary code, 100% compatibility is not guaranteed.');
messages[14] = new Array('','FTP - Abbreviated for File Transfer Protocol. FTP is a high-level standard for file transfer between computers. It allows the user to transfer text and binary data to a local or foreign host, as well as control over permissions settings and file management (such as deleting and renaming of files). ');
messages[15] = new Array('','SSL Secure Server');
messages[16] = new Array('','Database - MySQL is most commonly used for Web applications and for embedded applications and has become a popular alternative to proprietary database systems because of its speed and reliability. Surfspeedy provides customers with the MySQL Database and the phpMyAdmin interface.');
messages[17] = new Array('','<table border="0"><tr><td>Blogs:<li>b2evolution<li>Nucleus<li>pMachineFree<li>WordPress<br><br>Portals/CMS:<li>Drupal<li>Geeklog<li>Joomla!<li>Mambo Open Source<li>PHP-Nuke<li>phpWCMS<li>phpWebSite<li>Post-Nuke(visitsite)<li>Siteframe<li>Typo3<li>Xoops<br><br>Customer Support:<li>Crafty Syntax LiveHelp<li>Help Center Live<li>osTicket<li>PerlDesk<li>PHP Support Tickets<li>Support Logic Helpdesk<li>Support Services Manager<br><br>Discussion Boards:<li>phpBB2<li>SMF<br><br>E-Commerce:<li>CubeCart<li>OSCommerce<li>ZenCart<br><br>FAQ:<li>FAQMaster Flex</td><td>Guestbooks: <li>ViPER Guestbook<br><br>Hosting Billing:<li>Account Lab Plus<li>phpCOIN<br><br>Image Galleries:<li>4images Gallery<li>Coppermine Photo Gallery<li>Gallery<br><br>Mailing List:<li>PHPlist<br><br>Polls and Surveys:<li>AdvancedP oll<li>phpESP<li>PHPSurveyor<br><br>Project Management:<li>PHProjekt<li>dotProject<br><br>Wiki:<li>PhpWiki<li>TikiWiki<br><br>Other Scripts:<li>Dew-New PHPLinks<li>Moodle<li>Noahs Classifieds<li>Open-Realty<li>phpAdsNew<li>PHPauction<li>phpFormGenerator<li>WebCalendar<br><br></td></tr></table>');
messages[18] = new Array('','Blog scripting allows anyone to make an instantaneous post to a website. It is reserved typically as a comment page by the author on any given topic, to which users may, or may not, reply to. Many users choose this to be a means of an online journal. <br><br>Surfspeedys blogware is powered by Word Press, a PHP blogware that supports multiple users, categories, comments, and more.');
messages[19] = new Array('','SurfSpeedys Web-based Control Panel gives you the option of setting up a photo gallery. Many users opt to include this in their websites (or sometimes, the photo gallery itself becomes their website). This feature gives the user unlimited freedom to create and customize a grid of image thumbnails that, when clicked, expand to show the larger version of the image. This is a great tool for art, family, and organization-based websites that showcase their everyday photos.');
messages[20] = new Array('','PHP is a programming language that has proven very useful, so SurfSpeedy has included PHP in our server configurations to allow you to use PHP in your site. ');
messages[21] = new Array('','CGI - Some services limit your ability to use scripts to customize your site. SurfSpeedy provides you with your very own CGI-BIN to allow you to develop your site to the fullest. <br><br>We not only include a CGI-BIN with your account, but we also provide helpful scripts for you to use to improve your site in our CGI Library.');
messages[22] = new Array('','Perl is a programming language designed for processing text. It has strong text processing abilities making it one of the most popular languages for writing CGI scripts.<br><br>Python is an interpreted, interactive, high-level object-oriented programming language comparable to Tcl, Perl, or Java.');
messages[23] = new Array('','ImageMagick is a collection of tools and libraries to read, write, and manipulate an image in any of the more popular image formats including GIF, JPEG, PNG, PDF, and Photo CD.');
messages[24] = new Array('','We guarantee that our network will be available 100% of the time and that your site will be available 99.9% of the time. If your site isn\'t up 99.9% in any one month we will credit your account for the downtime.');
messages[25] = new Array('','Web developers can take advantage of server side includes to built better-organized and more efficient websites. Server Side Includes are especially helpful when building navigation guides for your website');
messages[26] = new Array('','SurfSpeedy offers support for FrontPage 2000/2002 extensions. Users of FrontPage 2003 may also use the provided extensions to upload their FrontPage built sites. As FrontPage uses proprietary code, 100% compatibility is not guaranteed.');
messages[27] = new Array('','Website Backup Software - The control panel offered includes the ability to back up your site. Once backed up, the site may be restored as long as the same control panel is used for restoration.');
messages[28] = new Array('','SurfSpeedy provides an automated shopping cart installer for OS Commerce. OS Commerce is one of the leading online e-commerce shopping carts. For more information on OS Commerce, please visit http://www.oscommerce.com.');
messages[29] = new Array('','ZenCart provides a user-friendly interface and is one of the leading e-commerce shopping carts available today. For more information please visit http://www.zencart.com');
messages[30] = new Array('','PayPal users can set up shopping carts for their products and tie them directly with their PayPal accounts. When products are purchased from the PayPal carts, the money is deposited into the user\'s PayPal account.');
messages[31] = new Array('','This handy tool checks the placement of your URL with major search engines, based on keyword phrases. You can see how successful your search engine submissions have been, letting you know if you need to resubmit them or possible change keywords, etc.');
messages[32] = new Array('','Keyword and Meta-Tags are very important to receive visitors to your website. Our tools make it easy for you to generate them and to place them on your website.');
messages[33] = new Array('','Receive a Free online markets credit with Yahoo and Google when you sign up today.');
messages[34] = new Array('','A popular and desirable web site access statistics program offering graphical charts/tables and representation of site accesses, the most popular pages accessed and so on.');
messages[35] = new Array('','A popular and desirable web site access statistics program offering graphical charts/tables and representation of site accesses, the most popular pages accessed and so on.');
messages[36] = new Array('','SurfSpeedy provides the raw data generated by the server from your site to you in the form of log files. This gives you the flexibility to manage and analyze your own site data.  We Also include Error Logs file which list errors encountered by the server in trying to provide services requested - eg, files not found, broken scripts, denied access to files.');
messages[37] = new Array('','Each month you are allowed to upload/download/serve files to a certain limit. When you log into the admin system, you can immediately see what percentage of this month\'s bandwidth you have used up (rounded up to the nearest percent).');
messages[38] = new Array('','You can host other web sites on top of your domain as a sub domain. For example you can have a domain called business.com and host another site called anotherbusiness.business.com or shop.business.com, each with its own content and web root.');
messages[39] = new Array('','Parked domains allow you to "point" or "park" additional domain names to your existing hosting account. This will allow users to also reach your website when entering the "parked" or "pointed" domain into their browsers.');
messages[40] = new Array('','You can customize documents returned when the server encounters an error. In effect, this is what users see when they go to a link on your site that doesn\'t exist or not allowed to go into. In effect, they will then see your custom error page.');
messages[41] = new Array('','Password Protected Directories - Set up password protection on any directory in your account from within your account\'s control panel. By doing this, a viewer of your website will have to input a password that you designate in order to access files, pages, or directories.');
messages[42] = new Array('','Provide the ability for your users to download and view Real Media files from your web site. Such advantages based on the visitor\'s settings are streaming video and audio.');
messages[43] = new Array('','You can use Shockwave/Flash media on your web site to make it more interactive. This is an extremely popular and entertaining way to offer presentations on your web site.');
messages[44] = new Array('','Set a cronjob to automate a task to run a command at a specified time.');
messages[45] = new Array('','Secure Shell (SSH)');
messages[46] = new Array('','Tier-1 Bandwidth');
messages[47] = new Array('','Surfspeedy runs UPS power backups along with a backup generation system to make sure your site doesn\'t go down, even in a power outage!  ');
messages[48] = new Array('','Redundant CISCO Network');
messages[49] = new Array('','Surfspeedy\'s System Administration team monitors the network 24 hours a day, 7 days a week to ensure your site is up and running at all times.  ');
messages[50] = new Array('','Accounts are backed up daily to ensure your data is never lost.');
messages[51] = new Array('','Domain Registration');

////////////////////  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);
//-->


