var submenu = new Array();
var tmr = new Array();
var adj = new Array();
var last_zIndex = 10000;


// EXAMPLE CONFIG
var menuWidth 		= 150;			//width of submenu in pixels
var alignSubmenu 	= 'bottom';		//bottom or right side of the main button.
var useLastItemCSS	= false;			//generate last menu item too
									//if false, it will behave as a normal item
									//and the css menuItemLast class will not be used

// Tapes
submenu['menu0'] = new Array();
submenu['menu0'][0] = menuItem('Packaging Tape >');
	submenu['menu0_0'] = new Array();
	submenu['menu0_0'][0] = menuItem('Carton Sealing Tape','Carton-Sealing-Tape.htm');
	submenu['menu0_0'][1] = menuItem('Colored Carton Sealing Tape','Colored-Carton-Sealing-Tape.htm');
submenu['menu0'][1] = menuItem('Specialty Tape >');
	submenu['menu0_1'] = new Array();
	submenu['menu0_1'][0] = menuItem('Double-Coated Paper Tape','Double-Coated-Paper-Tape.htm');
	submenu['menu0_1'][1] = menuItem('Duct Tape','Duct-Tape.htm');	
	submenu['menu0_1'][2] = menuItem('Colored Electrical Vinyl Tape','Colored-Electrical-Vinyl-Tape.htm');
	submenu['menu0_1'][3] = menuItem('Filament Tape','Filament-Tape.htm');
	submenu['menu0_1'][4] = menuItem('Flatback Tape','Flatback-Tape.htm');
	submenu['menu0_1'][5] = menuItem('Masking Tape','Masking-Tape.htm');
	submenu['menu0_1'][6] = menuItem('Strapping Tensilized Polypropylene Tape','Strapping-TTP-Tape.htm');
	submenu['menu0_1'][7] = menuItem('Water Activated Gummed Tape','Water-Activated-Gummed-Tape.htm');
	submenu['menu0_1'][8] = menuItem('Flagging Tape','Flagging-Tapes.htm');
	submenu['menu0_1'][9] = menuItem('Reflective Tape &#40;Bird Scare Flash Tape&#41;','Bird-Scare-Tapes.htm');
submenu['menu0'][2] = menuItem('Printed Tape >');
	submenu['menu0_2'] = new Array();
	submenu['menu0_2'][0] = menuItem('Pre-Printed Polypropylene Carton Sealing Tape','Pre-Printed-Polypropylene-Carton-Sealing-Tape.htm');
	submenu['menu0_2'][1] = menuItem('Pre-Printed Water Activated Reinforced Gummed Tape','Pre-Printed-Water-Activated-Reinforced-Gummed-Tape.htm');
	submenu['menu0_2'][2] = menuItem('Custom Printed Polypropylene Carton Sealing Tape','Custom-Printed-Polypropylene-Carton-Sealing-Tape.htm');
	submenu['menu0_2'][3] = menuItem('Custom Printed Water Activated Reinforced Gummed Tape','Custom-Printed-Water-Activated-Reinforced-Gummed-Tape.htm');
submenu['menu0'][3] = menuItem('Tape Dispensers >');
	submenu['menu0_3'] = new Array();
	submenu['menu0_3'][0] = menuItem('Hand Held Tape Dispenser','Tape-Dispensers.htm');
	submenu['menu0_3'][1] = menuItem('Table Top Tape Dispenser','Tape-Dispensers.htm');
	
// Stretch Wrap
submenu['menu1'] = new Array();
submenu['menu1'][0] = menuItem('Stretch Film >');
	submenu['menu1_0'] = new Array();
	submenu['menu1_0'][0] = menuItem('Bundling Film','Bundling-Film.htm');
	submenu['menu1_0'][1] = menuItem('Blown Film','Blown-Film.htm');
	submenu['menu1_0'][2] = menuItem('Cast Film','Cast-Film.htm');
	submenu['menu1_0'][3] = menuItem('Cast Film With Handles','Cast-Film-with-handles.htm');
	submenu['menu1_0'][4] = menuItem('Machine Film','Machine-Film-Rotary.htm');
	submenu['menu1_0'][5] = menuItem('Stretch Film Dispenser','Stretch-Film-Dispenser.htm');
	submenu['menu1_0'][6] = menuItem('Pallet Stretch Wrapping Machine','Pallet-Stretch-Wrapping-Machine.htm');
submenu['menu1'][1] = menuItem('Shrink Film >');
	submenu['menu1_1'] = new Array();
	submenu['menu1_1'][0] = menuItem('Polyolefin','Polyolefin.htm');
	submenu['menu1_1'][1] = menuItem('PVC','PVC.htm');
	submenu['menu1_1'][2] = menuItem('Heat Gun','Heat-Gun.htm');
	submenu['menu1_1'][3] = menuItem('Sealer','Sealer.htm');
	
//Packaging & Shipping Supplies
submenu['menu2'] = new Array();
submenu['menu2'][0] = menuItem('Strapping >');
	submenu['menu2_0'] = new Array();
	submenu['menu2_0'][0] = menuItem('Polyester Strapping','Polyester-Strapping.htm');
	submenu['menu2_0'][1] = menuItem('Seals for Polyester Strapping','Seals-For-Poly-Strapping.htm');
	submenu['menu2_0'][2] = menuItem('Polypropylene Strapping','Polypropylene-Strapping.htm');
	submenu['menu2_0'][3] = menuItem('Seals and Wire Buckles for Poly Strapping','Seals-And-Wire-Buckles-For-Poly-Strapping.htm');
	submenu['menu2_0'][4] = menuItem('Steel Strapping','Steel-Strapping.htm');
	submenu['menu2_0'][5] = menuItem('Open Metal Seals for Steel Strapping','Open-Metal-Seals-For-Steel-Strapping.htm');
submenu['menu2'][1] = menuItem('Kraft Wrapping Paper >','#');
	submenu['menu2_1'] = new Array();
	submenu['menu2_1'][0] = menuItem('Natural Kraft Rolls','Kraft-Wrapping-Paper.htm');
submenu['menu2'][2] = menuItem('Cushioning Products >');
	submenu['menu2_2'] = new Array();
	submenu['menu2_2'][0] = menuItem('AirMold &#40;Air Bag&#41;','Airmold-Air-Bag.htm');
	submenu['menu2_2'][1] = menuItem('Bubble Rolls','Bubble-Rolls.htm');
	submenu['menu2_2'][2] = menuItem('Foam Rolls','Foam-Rolls.htm');
	submenu['menu2_2'][3] = menuItem('Loose Fill &#40;Peanuts&#41;','Loose-Fill-Peanuts.htm');
submenu['menu2'][3] = menuItem('Edge Protectors &#40;V-Board&#41;','Edge-Protection.htm');
submenu['menu2'][4] = menuItem('Shipping Supplies >','#');
	submenu['menu2_4'] = new Array();
	submenu['menu2_4'][0] = menuItem('Pre-Printed Labels','Pre-Printed-Labels.htm');
	submenu['menu2_4'][1] = menuItem('Invoice Enclosed','Packing-List-Envelopes.htm');
	submenu['menu2_4'][2] = menuItem('Packing List Enclosed','Packing-List-Envelopes.htm');
	submenu['menu2_4'][3] = menuItem('Staples','Staples-and-Staplers.htm');
	submenu['menu2_4'][4] = menuItem('Staplers','Staples-and-Staplers.htm');
submenu['menu2'][5] = menuItem('Agricultural Supplies >','#');
	submenu['menu2_5'] = new Array();
	submenu['menu2_5'][0] = menuItem('Green Tye Tape','Green-Tye-Tape.htm');
	submenu['menu2_5'][1] = menuItem('Produce Packaging Tape','Produce-Packaging-Tape.htm');
	submenu['menu2_5'][2] = menuItem('White Paper Vine Ties','White-Paper-Vine-Ties.htm');
	submenu['menu2_5'][3] = menuItem('Produce Barcode Ties','Produce-Barcode-Ties.htm');
	submenu['menu2_5'][4] = menuItem('Precuts','Precuts.htm');
	submenu['menu2_5'][5] = menuItem('Pallet Net Wrap','Pallet-Net-Wrap.htm');
submenu['menu2'][6] = menuItem('Mailers >','#');
	submenu['menu2_6'] = new Array();
	submenu['menu2_6'][0] = menuItem('Self-Seal Bubble Envelope','Mailers.htm');
	
	
	
	
	
//Poly Products
submenu['menu3'] = new Array();
submenu['menu3'][0] = menuItem('Poly Bag','Poly-Products.htm');
submenu['menu3'][1] = menuItem('Poly Sheeting','Poly-Sheeting.htm');
submenu['menu3'][2] = menuItem('Custom Print Poly Bag','Poly-Sheeting.htm');

//Construction
submenu['menu4'] = new Array();
submenu['menu4'][0] = menuItem('Mesh Fiberglass Drywall Tape','Mesh-Fiberglass-Drywall-Tape.htm');
submenu['menu4'][1] = menuItem('&#39;Caution&#39; Barricade PE Tape','Caution-Tapes.htm');
submenu['menu4'][2] = menuItem('Danger Asbestos Warning Tape','Asbestos-Warning-Tape.htm');
submenu['menu4'][3] = menuItem('Danger Asbestos Warning Label','Asbestos-Warning-Label.htm');
submenu['menu4'][4] = menuItem('Rubber Floats','Rubber-Floats.htm');
submenu['menu4'][5] = menuItem('Paper Towels','Sanitary-Products.htm');
submenu['menu4'][6] = menuItem('Toilet Tissue','Sanitary-Products.htm');

//Moving Supplies
submenu['menu5'] = new Array();
submenu['menu5'][0] = menuItem('Moving Pads');
	submenu['menu5_0'] = new Array();
	submenu['menu5_0'][0] = menuItem('Supreme Pad','Supreme-Pad.htm');
	submenu['menu5_0'][1] = menuItem('Deluxe Pad','Deluxe-Pad.htm');
	submenu['menu5_0'][2] = menuItem('Economy Pad','Economy-Pad.htm');
submenu['menu5'][1] = menuItem('Dollies','Dollies.htm');


//Safety
submenu['menu6'] = new Array();
submenu['menu6'][0] = menuItem('Coverall','Coveralls.htm');	
submenu['menu6'][1] = menuItem('Lab Coat','Labcoat.htm');
submenu['menu6'][2] = menuItem('Apron','Apron.htm');
submenu['menu6'][3] = menuItem('Shoe Cover','Shoe-Cover.htm');
submenu['menu6'][4] = menuItem('Boot Cover','Boot-Cover.htm');
submenu['menu6'][5] = menuItem('Sleeve Protector','Sleeve-Protector.htm');
submenu['menu6'][6] = menuItem('Bouffant Cap','Bouffant-Caps.htm');
submenu['menu6'][7] = menuItem('Beard Cover','Beard-Cover.htm');
submenu['menu6'][8] = menuItem('Men&#39;s Short &#40;Boxer&#41;','Mens-Short-Boxer.htm');
submenu['menu6'][9] = menuItem('Men&#39;s T-Shirt','Mens-Tshirt.htm');
submenu['menu6'][10] = menuItem('Women&#39;s Halter','Womens-Halter-Top.htm');
submenu['menu6'][11] = menuItem('Women&#39;s Panty','Womens-Panty.htm');


////////////////////////////////////////////////////////////

/*submenu['menu2'][5] = menuItem('Sanitary Products >','#');
	submenu['menu2_5'] = new Array();
	submenu['menu2_5'][0] = menuItem('Paper Towels','#');
	submenu['menu2_5'][1] = menuItem('Toilet Tissue','#');
	
	
	submenu['menu2'][4] = menuItem('Poly Products >','#');
	submenu['menu2_4'] = new Array();
	submenu['menu2_4'][0] = menuItem('Poly Bags','#');
	submenu['menu2_4'][1] = menuItem('Poly Sheeting','#');
	*/
// END OF EXAMPLE CONFIG


//build or unhide submenu div...
function buildSubmenu(obj){
	//get common part of div id
	menuPath = obj.id.split('_');

	//unset mousout of parent menus and make sure they are visible...
	x = "div";
	for(i=0;i<menuPath.length;i++){
		x+= '_' + menuPath[i];
		if(document.getElementById(x)){
			if(tmr[x])
				window.clearTimeout(tmr[x]);
			document.getElementById(x).style.visibility = 'visible';
		}
	}

	//check if we have a submenu of the obj...
	if(submenu[obj.id]){
		//check if allready build...
		c = document.getElementById('div_' + obj.id);
		if(c){
			//unhide...
			c.style.visibility = 'visible';
			c.style.zIndex = last_zIndex++;
		}else{
			//calc position of mouseover
			d = obj;
			if(d){
				L_pos = d.offsetLeft + d.offsetWidth + 1;
				T_pos = d.offsetTop - 1;
				while(d.offsetParent){
					d = d.offsetParent;
					L_pos+= d.offsetLeft;
					T_pos+= d.offsetTop;
				}
			}

			//patch first submenu to go right below the main buttons...
			if(obj.className.indexOf('menuItem') < 0 && alignSubmenu == 'bottom'){
				L_pos-= obj.offsetWidth;
				T_pos+= obj.offsetHeight;
			}

			//build new div
			subObj = document.createElement('div');
			subObj.id = 'div_' + obj.id;
			subObj.className = 'submenu';
			subObj.style.position = 'absolute';
			subObj.style.zIndex = last_zIndex++;
			subObj.style.width = menuWidth;
			subObj.style.top = T_pos;
			subObj.style.left = L_pos;

			//write div to the body...
			document.getElementsByTagName('body')[0].appendChild(subObj);

			//build html for submenu
			content = "";
			m = submenu[obj.id];
			for(i=0;i<m.length;i++){

				//determin target for onclick...
				//	(sorry, I should rewrite this routine...)
				if(!m[i][2] || m[i][2] == '_self'){
					act = "self.location.href='" + m[i][1] + "';";
				}else if(m[i][2] == '_top'){
					act = "top.location.href='" + m[i][1] + "';";
				}else if(m[i][2] == '_blank'){
                    act = "window.open('" + m[i][1] + "');";
				}else{
					//get javascript target (not tested yet)
					//TODO: check how to do this cleanly
					act = "window.frames['"+m[i][2]+"'].location.href='" + m[i][1] + "';";
				}

				//make item
				content+= "<div onmouseout=\"hideSubmenu(this)\" onmouseover=\"buildSubmenu(this)\" "+ (m[i][1] ? "onclick=\""+ act + "\" " : "") +"class=menuItem" + (i==0 ? 'First' : (i==(m.length -1) && useLastItemCSS ? 'Last' : '')) + " id=\"" + obj.id + "_" + i +"\">" + m[i][0] + "</div>";
				adj[i] = obj.id + "_" + i;
			}

			//insert new menu
			subObj.innerHTML = content;

			//make all just made div's the same width...
			for(i=0;i<adj.length;i++)
				document.getElementById(adj[i]).style.width = subObj.style.width;
		}
	}
}

//hide a submebu div
function hideSubmenu(obj){
	//get common part of div id
	closePath = obj.id.split('_');

	//hide path
	x = "div";
	for(i=0;i<closePath.length;i++){
		x+= '_' + closePath[i];
		if(document.getElementById(x))
			tmr[x] = window.setTimeout("document.getElementById('"+x+"').style.visibility = 'hidden';",200);
		//The timeout above is needed for MSIE browsers... Or else the menu's will disapear on EVERY mousout!!!
		//Please get a normal browser like Firefox, Mozilla or Opera!!
	}
}

//add an menu item to the config array (called in the config lines)
function menuItem(txt,url,tar){
	return new Array(txt,url,tar);
}

//*** Now a patch for MSIE lag of CSS2 compliance!!
if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')==-1){
	document.onmouseover = function(){
		obj = event.srcElement;
		if(obj.className == 'menuItemFirst' || obj.className == 'menuItem' || obj.className == 'menuItemLast')
			obj.className+='Over';
	}
	document.onmouseout = function(){
		obj = event.srcElement;
		if(obj.className == 'menuItemFirstOver' || obj.className == 'menuItemOver' || obj.className == 'menuItemLastOver')
			obj.className = obj.className.substring(0,(obj.className.length - 4));
	}
}
//*** End of msie patch