/* findPos - Find the absolute location of a given construct, formatted as below
	<ilayer id="layerID"><div id="divID"><img src="/images/shim.gif" width="1" height="1"></div></ilayer>
*/
function findPos(layerID,divID){
  if(bw.ns4){   //Netscape 4
    x = document.layers[layerID].pageX
    y = document.layers[layerID].pageY
  }else{ //other browsers
    x=0; y=0; var el,temp
    el = bw.ie4?document.all[divID]:document.getElementById(divID);
    if(el.offsetParent){
      temp = el
      while(temp.offsetParent){ //Looping parent elements to get the offset of them as well
        temp=temp.offsetParent; 
        x+=temp.offsetLeft
        y+=temp.offsetTop;
      }
    }
    x+=el.offsetLeft
    y+=el.offsetTop
  }
  //Returning the x and y as an array
  return [x,y]
}

function findElPos(el){
	var x=0,y=0;
	var temp = el;
	while (temp.offsetParent){ //Looping parent elements to get the offset of them as well
		temp=temp.offsetParent; 
		x+=temp.offsetLeft
		y+=temp.offsetTop;
	}
	x+=el.offsetLeft;
	y+=el.offsetTop;
	return [x,y,x+el.offsetWidth,y+el.offsetHeight];
}

var aSelVis=new Array();;
var iSelVisElLength = 0;

function setSelVis(MenuObj,iVis) {
	// Hide any select boxes, OBJECTs, or EMBEDs covered up by this menu.
	var x,y;
	if (aSelVis.length==0) loadaSelVis();
	
	for (x=0;x<aSelVis.length;x++){
		if (
			((aSelVis[x][1][0]<=(MenuObj.x+MenuObj.w)) && (aSelVis[x][1][2]>=MenuObj.x)) && 
			(((aSelVis[x][1][1]<=(MenuObj.y+MenuObj.h)) || (MenuObj.h==0) || iVis<0) && (aSelVis[x][1][3]>=MenuObj.y))
			) {
			
			// track the number of menus covering up this object.
			if (aSelVis[x][2]<0) 
				aSelVis[x][2] = 0;
			aSelVis[x][2] += iVis;
			
			if (aSelVis[x][2]>0) {
				aSelVis[x][0].style.visibility="hidden";
			} else {
				aSelVis[x][0].style.visibility="visible";
			}
		} 
	}
}

function loadaSelVis() {
	aSelVis = new Array();
	var el
	var aTags = ['SELECT']
	var x,y
	var aEls
	for (x=0;x<aTags.length;x++) {
		aEls=document.getElementsByTagName(aTags[x]);
		for (y=0;y<aEls.length;y++) {
			aSelVis[aSelVis.length] = [aEls[y],findElPos(aEls[y]),0];
		}
	}
}

/*InitCMMenu - Initialize a CoolMenu with the default properties for www.BISSELL.com*/
function InitCMMenu(oMenu,ImgRoot,w,h){
	//Menu properties   
	oMenu.pxBetween=0;
	oMenu.rows=1;
	oMenu.menuPlacement="left";
	oMenu.offlineRoot="";
	oMenu.onlineRoot=""; 
	oMenu.resizeCheck=0; // Don't reload the page on resize... this could result in form data being lost.
	oMenu.wait=500;
	oMenu.fillImg=ImgRoot + "shim.gif";
	oMenu.zIndex=1;
	oMenu.useBar=0;
	//Level properties - ALL properties have to be specified in level 0
	//cm_makeLevel(width,height,regClass,overClass,borderX,borderY,borderClass,rows,align,offsetX,offsetY,arrow,arrowWidth,arrowHeight)
	oMenu.level[0]=new cm_makeLevel();
	oMenu.level[0].width=w;
	oMenu.level[0].height=h;
	oMenu.level[0].regClass="clLevel0";
	oMenu.level[0].overClass="clLevel0over";
	oMenu.level[0].borderX=0;
	oMenu.level[0].borderY=0;
	oMenu.level[0].borderClass="clLevel0border";
	oMenu.level[0].rows=0;
	oMenu.level[0].align="bottom";
	oMenu.level[0].offsetX=0;
	oMenu.level[0].offsetY=0;
	oMenu.level[0].arrow=0;
	oMenu.level[0].arrowWidth=0;
	oMenu.level[0].arrowHeight=0;
	oMenu.level[0].clip=0;
	oMenu.level[0].clippx=23;
	oMenu.level[0].cliptim=25;
	oMenu.level[0].filter="progid:DXImageTransform.Microsoft.Alpha(opacity=50)";
	oMenu.level[0].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.4)";

	//SUB LEVEL[1] PROPERTIES - You have to specify the properties you want different from LEVEL[0] - If you want all items to look the same just remove this
	oMenu.level[1]=new cm_makeLevel();
	oMenu.level[1].height=17;
	oMenu.level[1].regClass="clLevel1";
	oMenu.level[1].overClass="clLevel1over";
	oMenu.level[1].borderX=1;
	oMenu.level[1].borderY=1;
	oMenu.level[1].borderClass="clLevel1border";
	oMenu.level[1].offsetX=-1;
	oMenu.level[1].offsetY=-1;
	oMenu.level[1].align="right";
}
