<!--

/*
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= false;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 425;
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= "#F5E5C1"; 
var tipBorderColor= "#BC0E18";
var tipBorderWidth= 4;
var tipBorderStyle= "ridge";
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/spacer.gif','<b><font color=#3A486B>COFFEE SHOP MANAGER LATTE STD</font></b><br><br><ul><li>INTEL E2140 CORE 2 Processor </li><li>In-Win V564T Mini Tower Case (2) 5.25\"; (2) 3.5\"; P4 Ready </li>	<li>Secondary Case Fan For Cooling  </li>	<li>Intel E2140 Core 2 Duo Processor w/ 1MB Cache & 800MHz FSB </li>	<li>1GB DDR2 PC667 Dual Channel Memory            </li>	<li>Intel® Desktop Board D946GZIS</li>	<li>Intel® Graphics Media Accelerator 3000 (Intel® GMA 3000)                         onboard graphics subsystem     </li>	<li>Intel Core 2 Duo Support; (1) PCI-e x 16</li>	<li>(2) Dimm sockets support up to 4GB       Dual Channel DDR2 667/533MHz FSB</li>	<li>(1) Serial Port</li>	<li>(8)  USB 2.0      6-channel (5.1) audio subsystem using the SigmaTel*                                               STAC9227 audio codec            </li>	<li>80GB Seagate 7200RPM SATA2-150 Hard Drive </li>	<li>Lian-Li RH-332 Removable SATA Hard Drive Kit    </li>	<li>Samsung Dual Layer DVD+/-RW Drive     </li>	<li>SIIG JJ-P02012 PCI Dual Serial Port Card            </li>	<li>Microsoft Internet Keyboard & Optical Wheel Mouse         </li>	<li>Microsoft Windows XP Professional </li></ul>');
messages[1] = new Array('../images/photos/newlatte_md.gif','LATTE PACKAGE');
messages[2] = new Array('../images/photos/latte-store.jpg','LATTE PACKAGE');
messages[3] = new Array('../images/spacer.gif','<strong>PioneerPOS/Stealthtouch Computer (Mocha Package)</strong><br><li>13.39\"W</li><li>11.02\"L</li><li>13\" H*</li>*Height dimension varies when swivel base is adjusted<br><br><strong>Cash Drawer (All Packages)</strong><br><li>19.0\"W</li><li>15.25\"L</li><li>4.5\"H</li><br><br><strong>Star TSP Thermal Printer (All Packages)</strong><br><li>5.68\"W</li><li>8\"L</li><li>5.28\"H</li><br><br><strong>POS Computer System (US Micro PC) (Latte Package)</strong><br><li>8\"W</li><li>17.5\"</li><li>16.5\"H</li><br><br><strong>Elo 15\" Touch Monitor (Latte Package)</strong><br><li>16.1\"W</li><li>10.2\"L</li><li>15.7\"H</li>');
messages[4] = new Array('../images/photos/Mocha M-5_md.gif','MOCHA PACKAGE');
messages[5] = new Array('../images/photos/mocha-store.jpg','MOCHA PACKAGE');
messages[6] = new Array('../images/screenshots/coffee1.jpg','ESPRESSO BUILDER');
messages[7] = new Array('../images/screenshots/custom1.jpg','CUSTOMIZABLE BUTTONS');
messages[8] = new Array('../images/screenshots/Registerlg.jpg','REGISTER SCREEN');
messages[9] = new Array('../images/screenshots/custmaint.jpg','CUSTOMER MAINTENANCE');
messages[10] = new Array('../images/screenshots/setup.jpg','SETUP OPTIONS');
messages[11] = new Array('../images/screenshots/sales.jpg','SALES REPORT');
messages[12] = new Array('../images/screenshots/salesbyhour.jpg','SALES BY THE HOUR');
messages[13] = new Array('../images/screenshots/custbyhour.jpg','CUSTOMERS BY THE HOUR');
messages[14] = new Array('../images/screenshots/zreport.jpg','Z REPORT');
messages[15] = new Array('../images/screenshots/inventory.jpg','INVENTORY REPORTING');
messages[16] = new Array('../images/screenshots/costofgoods.jpg','COST OF GOODS');
messages[17] = new Array('../images/screenshots/checkin.jpg','TIME CLOCK');
messages[18] = new Array('../images/screenshots/inventorymaint.jpg','INVENTORY MAINTENANCE');
messages[19] = new Array('../images/screenshots/employeehrs.jpg','EMPLOYEE HOURS SUMMARY');
messages[20] = new Array('../images/screenshots/custscreen.jpg','PREPAY ACCOUNT SYSTEM');
messages[21] = new Array('../images/spacer.gif','Exporting to Quickbooks is a process of printing a report, then exporting a group of sales records based on their Z number. The process is recommended to be run at the end of the shift along with the Z report itself, but may be run at any time thereafter. The export must cover at least one Z number, but any number may be consolidated together. The import into Quickbooks can be run at any time, each Z number will have a separate .IIF file to be imported. Quickbooks accounts will automatically be created if necessary. Each category you have defined on the sales report will be summarized with an entry under the Sales income account. For instance, a category titled Sales - Biscotti would be created if you had BISCOTTI as one of your inventory classes. The deposit portion will go to the bank account you have defined in the Coffee Shop Manager setup. The sales tax amount will import as an accounts payable liability.');
messages[22] = new Array('../images/spacer.gif','<h4>What is the Headquarters Module?</h4><p>Consolidate data from any or all locations automatically. Do most file maintenance and back office accounting from your headquarters and have the data automatically update the POS and the POS automatically update the headquarters.</p><p>The Coffee Shop Manager Headquarters Module (HM) is designed for the multi locational company that wants to consolidate daily transaction, inventory and customer information. This HM will allow for push from retail registers to a central \"Headquarters\" computer. This function is be done via the internet using our built in File Transfer protocol. (FTP).</p><h4>How does it work?</h4><p>Each location will run an end of day process, creating a file with all new and changed records for that day. In some cases the headquarters may also prepare a file for updating the POS. Each company will have its own discrete database on the Headquarters system which will allow for easy viewing of their master files and transactions. An option will be available to consolidate all locations transactional data into one database for export to Quickbooks.</p><p>At a predetermined time appropriate connections will be made between the POS & HQ and files will be transferred. Users will have the opportunity to either automatically have systems updated or manually do final updating. They can select which records to update. Your company may only want daily transactional data and not care about master file information. The update schedule is totally up to you. Update hourly, daily, weekly, monthly.</p>');
messages[23] = new Array('../images/spacer.gif','The Coffee Shop Manager Kitchen Module is designed for the environment where a customer orders an item to be prepared int he kitchen. A register operator keys the item in using POS buttons. The transaction is completed between the customer and cashier. The \"Order Ticket\" shows up on a Kitchen/Barista\'s Touch Screen, in the order it was received. This becomes a \"To-Do\" list of orders to be completed by the Kitchen/Barista\'s station.<br><br>The Coffee Shop Manager Kitchen Module monitors orders and allows you to select from a list of orders, when it was ordered and when it was finished.<br><br>The Coffee Shop Manager Kitchen Module requires that you are in a networked environment and have a touch screen monitor connected to a Windows PC. Our current Mocha and Latte packages can be modified to fit this need.');
messages[24] = new Array('../images/spacer.gif','As wireless networks become increasingly popular, more coffee shops incorporate internet service to attract customers. In most case. customers pay online with a credit card. Coffee shop owners are expected to share revenue with national companies who handle connections and collections. The new Coffee Shop Manager Internet Cafe Module solves this problem by allowing customers to pay upfront, with cash or credit cards.<br><br>Coffee shop owners retain 100% of the revenue.<br><br>We wanted our Coffee Shop Manager to control Internet srvice sales the very same way we control the sale of coffee, drinks and other purchasable items. We also wanted it to be easy to use, fast and hands off.<br><br><stront>There are many advantages for coffee shop owners who incorporate the Internet Cafe Module into Coffee Shop Manager including:</strong><br><li>Provide Secure Internet service to customers with wireless stations</li><li>Easily Access Coffee Shop Manager PrePaid Gift & Loyalty System</li><li>Option to provide as a fee for service or free but controllable service to customers</li><li>Track income generated from the Internet Cafe</li><br><br>As the customer pays for the Internet Service at the counter, they are given an access code. As Internet time is depleted, the system automatically ends the connection.');

////////////////////  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 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;
}

//-->