// groworganic.js
// Copyright 2005-2006 BrainScan Software
// 22Jan2006: Added popup timer functions
// 30Apr2007: Adjusted popup positioning (newYCoordinate) for moved-down navigation

var popupTimerID = null;
var popupTimerRunning = false;
var popupDelay = 1000;

if (document.images)
{
	xroot = "/"
	img1 = new Image();img1.src = xroot + "images/navbar/aboutus2.gif";
	img2 = new Image();img2.src = xroot + "images/navbar/checkout2.gif";
	img3 = new Image();img3.src = xroot + "images/navbar/home2.gif";
	img4 = new Image();img4.src = xroot + "images/navbar/links2.gif";
	img5 = new Image();img5.src = xroot + "images/navbar/myprofile2.gif";
	img6 = new Image();img6.src = xroot + "images/navbar/order2.gif";
	img7 = new Image();img7.src = xroot + "images/navbar/ordering2.gif";
	img8 = new Image();img8.src = xroot + "images/navbar/products2.gif";
	img9 = new Image();img9.src = xroot + "images/navbar/resources2.gif";
	img10 = new Image();img10.src = xroot + "images/navbar/search2.gif";
	img11 = new Image();img11.src = xroot + "images/askusicon2.gif";
	img12 = new Image();img12.src = xroot + "images/saleicon2.gif";
	img13 = new Image();img13.src = xroot + "images/inseasonicon2.gif";
	img14 = new Image();img14.src = xroot + "images/catalogicon2.gif";
	img15 = new Image();img15.src = xroot + "images/freeicon2.gif";
}
// Code for popup help layers, taken from Apple sample code
// ************************
// layer utility routines *
// ************************

function getStyleObject(objectId)
{
	// cross-browser function to get an object's style object given its id
	if(document.getElementById && document.getElementById(objectId))
	{
		// W3C DOM
		return document.getElementById(objectId).style;
	}
	else if (document.all && document.all(objectId))
	{
		// MSIE 4 DOM
		return document.all(objectId).style;
	}
	else if (document.layers && document.layers[objectId])
	{
		// NN 4 DOM.. note: this won't find nested layers
		return document.layers[objectId];
	}
	else
	{
		return false;
	}
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility)
{
	// get a reference to the cross-browser style object and make sure the object exists
	var styleObject = getStyleObject(objectId);
	if(styleObject)
	{
		styleObject.visibility = newVisibility;
		return true;
	}
	else
	{
		// we couldn't find the object, so we can't change its visibility
		return false;
	}
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate)
{
	// get a reference to the cross-browser style object and make sure the object exists
	var styleObject = getStyleObject(objectId);
	if(styleObject)
	{
		styleObject.left = newXCoordinate;
		styleObject.top = newYCoordinate;
		return true;
	}
	else
	{
		// we couldn't find the object, so we can't very well move it
		return false;
	}
} // moveObject

// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 0;
var yOffset = 15;

function showPopup (targetObjectId, eventObj)
{
	if(eventObj)
	{
		// hide any currently-visible popups
		hideCurrentPopup();
		// stop event from bubbling up any farther
		eventObj.cancelBubble = true;
		// move popup div to current cursor position
		// (add scrollTop to account for scrolling for IE)
		var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
		var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
		newXCoordinate = 24 * Math.floor(newXCoordinate/24);
		newYCoordinate = 12 * Math.floor(newYCoordinate/12);
// newYCoordinate=100;
		moveObject(targetObjectId, newXCoordinate, newYCoordinate);
		// and make it visible
		if( changeObjectVisibility(targetObjectId, 'visible') )
		{
			// if we successfully showed the popup
			// store its Id on a globally-accessible object
			window.currentlyVisiblePopup = targetObjectId;
			popupOutCount = 0;
			return true;
		}
		else
		{
			// we couldn't show the popup, boo hoo!
			return false;
		}
	}
	else
	{
		// there was no event object, so we won't be able to position anything, so give up
		return false;
	}
} // showPopup

function hideCurrentPopup()
{
	// note: we've stored the currently-visible popup in the global object window.currentlyVisiblePopup
	if(window.currentlyVisiblePopup)
	{
		changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
		window.currentlyVisiblePopup = false;
	}
} // hideCurrentPopup

function popupOver()
{
	if (popupTimerRunning)
		{
		clearTimeout(popupTimerID);
		popupTimerRunning = false;
		}
}

function popupOut()
{
	// cancel old timer
	popupOver();

	// start new timer
	self.status = "*";
	popupTimerRunning = true;
	popupTimerID = self.setTimeout("popupExpired()", popupDelay);
}

function popupExpired()
{
	popupTimerRunning = false;
	hideCurrentPopup();
}

// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hideCurrentPopup;

function initializeHacks()
{
	// this ugly little hack resizes a blank div to make sure you can click
	// anywhere in the window for Mac MSIE 5
	if ((navigator.appVersion.indexOf('MSIE 5') != -1)
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv'))
	{
		window.onresize = explorerMacResizeFix;
	}
	resizeBlankDiv();
	// this next function creates a placeholder object for older browsers
	createFakeEventObj();
}

function createFakeEventObj()
{
	// create a fake event object for older browsers to avoid errors in function call
	// when we need to pass the event object to functions
	if (!window.event)
	{
		window.event = false;
	}
} // createFakeEventObj

function resizeBlankDiv()
{
	// resize blank placeholder div so IE 5 on mac will get all clicks in window
	if ((navigator.appVersion.indexOf('MSIE 5') != -1)
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv'))
	{
		getStyleObject('blankDiv').width = document.body.clientWidth - 20;
		getStyleObject('blankDiv').height = document.body.clientHeight - 20;
	}
}

function explorerMacResizeFix ()
{
	location.reload(false);
}

function openWindow(theurl,thetarget)
{
	window.open(theurl,thetarget,"toolbar,location,directories,resizable,scrollbars,menubar,width=700,height=400")
}

function openSmallWindow(theurl,thetarget)
{
	// alert(theurl);
	// var theurl=theurl;
	// if (theurl == "testsend")
	// 	{
	// 		var theurl='recipient.html';
	// 	}
	window.open(theurl,thetarget,"toolbar,location,directories,resizable,scrollbars,menubar,width=470,height=500");
}

<!-- Fireworks Rollovers
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_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_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_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}


function jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}