function doNotDelete(){
	alert('This function should never be called.');
}

var timeOn = null;
numMenus = 7;
document.onmouseover = hideAllMenus;
document.onclick = hideAllMenus;

//prevent js errors from showing (doesn't work in IE)
window.onerror = null;

// initialize hacks whenever the page loads
window.onload = initializeHacks;

function showMenu(menuNumber, eventObj) {
    hideAllMenus();
	if(document.layers) {
	img = getImage("img" + menuNumber);
 	x = getImagePageLeft(img);
 	y = getImagePageTop(img);
 	menuTop = y + 22; // LAYER TOP POSITION - should be set to the height of the image button
	eval('document.layers["menu'+menuNumber+'"].top="'+menuTop+'"');
 	eval('document.layers["menu'+menuNumber+'"].left="'+x+'"');
	}
	eventObj.cancelBubble = true;
    var menuId = 'menu' + menuNumber;
    if(changeObjectVisibility(menuId, 'visible')) {
		return true;
    } else {
		return false;
    }
}

// MENU MOUSE OVER 
function menuOver() {
 clearTimeout(timeOn);
}

// MENU MOUSE OUT 
function menuOut() {
 if(document.layers) {
 	timeOn = setTimeout("hideAllMenus()", 400);
  }
}

function hideAllMenus() {
    for(counter = 1; counter <= numMenus; counter++) {
		changeObjectVisibility('menu' + counter, 'hidden');
    }
}

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;
    }
} 

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;
    }
} 

// SET BACKGROUND COLOR 
function getImage(name) {
  if (document.layers) {
    return findImage(name, document);
  }
  return null;
}

function findImage(name, doc) {
  var i, img;
  for (i = 0; i < doc.images.length; i++)
    if (doc.images[i].name == name)
      return doc.images[i];
  for (i = 0; i < doc.layers.length; i++)
    if ((img = findImage(name, doc.layers[i].document)) != null) {
      img.container = doc.layers[i];
      return img;
    }
  return null;
}

function getImagePageLeft(img) {
  var x, obj;
  if (document.layers) {
    if (img.container != null)
      return img.container.pageX + img.x;
    else
      return img.x;
  }
  return -1;
}

function getImagePageTop(img) {
  var y, obj;
  if (document.layers) {
    if (img.container != null)
      return img.container.pageY + img.y;
    else
      return img.y;
  }
  return -1;
}

/*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;
    }
} */



// ***********************
// hacks and workarounds *
// ***********************

// setup an event handler to hide popups for generic clicks on the document
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;
    }
}

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 mClk(src){ 
	if(event.srcElement.tagName=='TD')
		src.children.tags('A')[0].click();
}*/

function addEvent(obj, evtName, fn) {
	try{removeEvent(obj, evtName, fn)}catch(e){}
	if (obj.addEventListener) {
		obj.addEventListener(evtName, fn, false);
	} else if (obj.attachEvent) {
		obj.attachEvent('on' + evtName, fn);
	} else {
		obj['on' + evtName] = fn;
	}
}
						
function removeEvent(obj, evtName, fn) {
	try {
		if (obj.removeEventListener) {
			obj.removeEventListener(evtName, fn, false);
		} else if (obj.detachEvent) {
			obj.detachEvent('on' + evtName, fn);
		} else {
			obj['on' + evtName] = null;
		}
	} catch(e){}
}

/*********************
* FLASH DISPLAY CODE
*
**********************/

var UseFlash = 0;
if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] ) {
	// Check for Flash version 4 or greater in Netscape
	var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
	if (plugin && parseInt(plugin.description.substring(plugin.description.indexOf(".")-1))>=4)
		UseFlash = 1;
} else if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && 
	  navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1) {
	// Assume any Windows IE except for Windows 3.1 supports the OBJECT tag
	UseFlash = 1;
}
// Allow the cookie to override
if (document.cookie && (document.cookie.indexOf("FlashRenderOption=P") >= 0)) {
	UseFlash = 1;
} else if (document.cookie && (document.cookie.indexOf("FlashRenderOption=I") >= 0)) {
	UseFlash = 0;
}
function displayFlash(sFlashSource, sStaticSource, iWidth, iHeight) {
	if (UseFlash) {
		// Use Flash player
		document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+ iWidth +'" height="' + iHeight + '">');
		document.write('<PARAM name="movie" value="' + sFlashSource  + '">');
		document.write('<PARAM name="quality" value="high">');
		document.write('<PARAM name="wmode" value="transparent">');
		document.write('<PARAM name="LOOP" value="false">');
		document.write('<PARAM name="MENU" value="false">');
		document.write('<EMBED src="' + sFlashSource  + '" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" WMODE="transparent" type="application/x-shockwave-flash" width="'+ iWidth +'" height="' + iHeight + '" loop="false" menu="false">');
		document.write('</EMBED>');
		document.write('</OBJECT>');
		} else {
		document.write('<IMG src="' + sStaticSource + '" width="' + iWidth + '" height="' + iHeight + '" alt="">');
	}
}

/*********************
* END FLASH DISPLAY CODE
*
**********************/

function checkMyQuantity(field){
	if(field.value > 0){
		return true;
	}else{
		alert("No items selected to add to cart.  Please make sure the item you have chosen has been selected and has a quantity greater than zero.");
		return false;
	}
}

/*
get the value of a cookie by 
 name - cookie name
 value - value to set
 expire days - number of days after which this should expire
*/
function setCookieValue(name, value, expiredays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie=name + "=" +escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString() + '; path=/');
}

function forgotPassword(email)
{
    if (email == '' || email == undefined)
    {
        alert('Please enter your email address.  Your password will be emailed to that address.');
    }
    else
    {
        new Ajax.Request('/default.asp?processor=asp&asp_processor=store&action=requestpassword', {
            method: 'post',
            parameters: { rngn: 'xml', sender: email },
            onSuccess: function(t) { forgotPasswordComplete(t, email); }
        });
    }
}
function forgotPasswordComplete(t, email)
{
    var xml = t.responseXML;
    var errors = xml.getElementsByTagName('error');
    
    if (errors.length == 0)
    {
        alert('Your password has been sent to ' + email);
    }
    else
    {
        alertUserErrors(errors);
    }
}
function alertUserErrors(errors)
{
    var sMessage = '';
    for (var i = 0; i < errors.length; i++)
    {
        sMessage += errors[i].childNodes[0].nodeValue;
        sMessage = sMessage.replace(/\\n/g, '\r\n');
    }
    alert(sMessage);
}
