 	var ready   = false; //no rollovers until onLoad has loaded images
 	var menuNum = 0;     //track which menu is highlighted
 	
 	// Browser check
	var ns = navigator.appName == "Netscape";
	var factor = (ns) ? 6 : 5;
    var menuHeights = new Array(0,149,132,147,147,79);

	// the smaller the #, the longer it will take for the menu to turn 'off'
	var factorArr = (ns) ? new Array(0,29,24,23,25,33) : new Array(0,29,24,24,25.5,31);
	
	// resort bar positions
	var B_hide = -161;
	var B_show = 0;
	
	// First Nav positions
	// for M_hide, the smaller the number, the higher the layer will move up (and thus faster looking)
	var M_hide = new Array(0,-104,-104,-104,-104,-37);
	var M_show = 25;
	
	//globals for layer methods, timer
	var prefix, suffix, left, top, layerName, menuUpName, menuDownName, xPos, yUpPos, yDownPos,  debug;
	var active = "";
	
	// constructor for DOM
	if (ns) {
		prefix = 'document.layers[\"';
		suffix = '\"]';
		left = '.left';
		top = ".top";
	}
	else {
		prefix = 'document.all[\"';
		suffix = '\"].style';
		left = '.pixelLeft';
		top = ".pixelTop";
	}

// prefix for Netscape layers when needed

	function nameLayer(name) {
		var layer = '';
  		if(document.layers) {layer = 'document.layers[\"' + name + '\"].';}
  		return layer;
  	}

 // Preload images - is this not the mother of all rollover-loaders?? it loads about 70 images

	function loadImages() {
		if(document.images) {
			debug = "";
			var state = new Array("","_off","_on");
			var suffix = new Array("","","_h");
			var alpha = new Array("","a","b","c","d","e","f","g");
			for(var i=1;i<7;i++) {
				for(var j=1;j<3;j++) {
					// menu titles
					eval('A'+ i + state[j] + '= new Image()');
					eval('A'+ i + state[j] + '.src = \"img/nav_up_' + i + suffix[j] + '.gif\"');
					// menu items

				}
			}
			for(var i=1;i<7;i++) {
				for(var j=1;j<3;j++) {	
						for(var k=1;k<8;k++) {
						eval('M'+ i + alpha[k] + state[j] + '= new Image()');
						eval('M'+ i + alpha[k] + state[j] + '.src = \"img/nav' + i + '_' + alpha[k] + suffix[j] + '.gif\"');
					}
				}
			}
		}
		
	// image preloads for email-a-friend
		taf_off = new Image();
		taf_off.src = "img/email_friend_off.gif";
		taf_on = new Image();
		taf_on.src = "img/email_friend_on.gif"; 
		
		ready = true;
//		setTimeout("closeMenu()", 1000);
	}
	
	function RollOn(name, menu) {	
		if(ready) {
		
			if(menuNum != 0 && name.charAt(0) != "M")  { RollOff('A' + menuNum); }
			var layer = (name.charAt(0) == "M")? name.substring(0,2):name.substr(0,1);			
			eval(nameLayer(layer) + 'document.images[\"' + name + '\"].src = ' + name + '_on.src');			
			active = (name.charAt(0) == "A")? "M" + name.charAt(1): layer;
			drop();
			
			menuNum = menu;
			
		}	
	}
	
	function RollOff(name) {	
		if(ready) {
			active = "";
			var layer = (name.charAt(0) == "M")? name.substring(0,2):name.substr(0,1);
			eval(nameLayer(layer) + 'document.images[\"' + name + '\"].src = ' + name + '_off.src');
			setTimeout("closeMenu()", 2000);			
		}	
	}
	
	function closeMenu() {
		if (active.charAt(0) != "M") { drop(); }
	}
	
	function drop() {
		var menu = 0;
		var thing;
		//if(getX("B") == 0) { slideX ("B", B_hide); }	hide news tab if looking at menus
		if(active.charAt(0) == "M") {
			menu = active.charAt(1);
			if(getY(active) < M_show) { slideM(active); }
		}

        if (menuNum != 0) {
			thing = "M" + menuNum;
			if (getY(thing) > M_hide[menuNum]) { slideM(thing); }
		}
	}

// not needed
// news bar open/close	
//function news() {
//	if(getX("B") < 0) { slideX ("B", B_show); }
//	else { slideX ("B", B_hide); }
//}	


	/*** layer methods, which include DOM differences ***/

	function show (myLayer) {
		eval(prefix + myLayer + suffix + '.visibility = "visible"');
	}
	function hide (myLayer) {
		eval(prefix + myLayer + suffix + '.visibility = "hidden"');
	}
	
	// get/set layer positions
	function getX(myLayer) {
		var here;
		//eval('here = ' + prefix + myLayer + suffix + left);
		here = eval( 'parseInt(document.getElementById("' + myLayer + '").style' + left + ')')
		return here;
	}
	function setX(myLayer, here) {
		eval(prefix + myLayer + suffix + left + ' = ' + here);
	}

	function getY(myLayer) {
		var here;
		here = eval( 'parseInt(document.getElementById("' + myLayer + '").style' + top + ')')
		return here;
	}
	function setY(myLayer, here) {
		eval('document.getElementById("' + myLayer + '").style' + top + ' = ' + here);
	}
	
	
	function slideX (myLayerName, xFinal) {
	
	    //- is move left, + is move right
		var dir = 1;
	    var xNow = getX(myLayerName);
		if(xNow > xFinal) dir = -1;	
		if(xNow != xFinal) {	
			setX(myLayerName, (xNow + (dir * Math.ceil(Math.abs(xNow - xFinal) / 4))) );
			eval('setTimeout(\"slideX(\'' + myLayerName + '\',' + xFinal + ')\",10)' );
		}
		else {
			//done
		}
	}
	
	function slideM (myLayerName) {
	
	    //- is move up, + is move down
		var dir = -1;
	    var yNow = getY(myLayerName);
		var menu = myLayerName.charAt(1);
		var isActive = false;

		if(myLayerName == active) {			
			 dir = 1;
			 yFinal = M_show;
			 isActive = true;
		} else {
			 dir = -1;
			 yFinal = M_hide[menu];
		}
		if(yNow != yFinal) {	
			setY(myLayerName, (yNow + (dir * Math.ceil(Math.abs(yNow - yFinal) / 4))) );
			eval('setTimeout(\"slideM(\'' + myLayerName + '\')\",25)' );
			yNow = getY(myLayerName);

			if ( (yNow + menuHeights[menu]) <= (M_show + factorArr[menu]) && !isActive) { simpleRollOff("A" + menu); }
			else { simpleRollOn("A" + menu); }
		}
		else {
			//done
		}
	}
	
	function simpleRollOn(name,imgName) {
		if (imgName == null) { imgName = name; }
		var layer = (name.charAt(0) == "M")? name.substring(0,2):name.substr(0,1);
		eval(nameLayer(layer) + 'document.images[\"' + imgName + '\"].src = ' + imgName + '_on.src');	
	}

	function simpleRollOff(name,imgName) {
		if (ready) {
			if (imgName == null) { imgName = name; }
			var layer = (name.charAt(0) == "M")? name.substring(0,2):name.substr(0,1);
			eval(nameLayer(layer) + 'document.images[\"' + imgName + '\"].src = ' + imgName + '_off.src');	
		}
	}

	function siteMapRollOn(name,imgName) {
		if (ready) {
			simpleRollOn(name,imgName);
			if (active != "" && active != "M6") {
				var tmp = active;
				active  = "M6";
				slideM(tmp);
			}
		} 
	}

	function forceMenuRollUp() {
		if (active != "" && active.charAt(0) == "M") {
			var tmp = active;
			active  = "";
			slideM(tmp);
		}
		parent.focus();
	} 

//resize bug in Netscape 4.0
NS4 = document.layers;
  if (NS4) {
     origWidth = innerWidth;
      origHeight = innerHeight;
   }

function reDo() {
  if (innerWidth != origWidth || innerHeight != origHeight) 
      location.reload();
}

if (NS4) onresize = reDo;
//end resize bug

 rnd.today=new Date();
 rnd.seed=rnd.today.getTime();

 function rnd() {
         rnd.seed = (rnd.seed*9301+49297) % 233280;
         return rnd.seed/(233280.0);
 };

 function rand(number) {
         return Math.ceil(rnd()*number);
 };

// Basic Rollover 
	
	function BRollOn(layer,imgName) {
		if (ready) {
			eval(nameLayer(layer) + 'document.images[\"' + imgName + '\"].src = ' + imgName + '_on.src');
		}	
	}

	function BRollOff(layer,imgName) {
		if (ready) {
			eval(nameLayer(layer) + 'document.images[\"' + imgName + '\"].src = ' + imgName + '_off.src');
		}
	}

// popup for email-a-friend
	function tafPop() {

		var myUrl = "taf/index.html";
		var eWin=window.open(myUrl, 'taf', 'width=450,height=420,screenX=250,screenY=250,left=250,top=250,scrollbars=yes,resize=no,status=no');

		if (eWin.opener == null) eWin.opener = self;
		eWin.focus();
	}
	
	
function en_last_modified() {
  months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); 
  
  if (Date.parse(document.lastModified) != 0 ) {
    mod_date = new Date(document.lastModified); 
    document.write("<br>This site is published by McNeil Consumer Healthcare which is solely responsible for its content.<br>This site is intended for visitors from Canada only.<br>Last modified: "+months[mod_date.getMonth()]+" "+mod_date.getDate()+", "+mod_date.getFullYear()+" <br><br>"); 
  }

}


function fr_last_modified() {
  months = new Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", " novembre", "décembre"); 
  
  if (Date.parse(document.lastModified) != 0 ) {
    mod_date = new Date(document.lastModified); 
    document.write("<br>Ce site est publié par &copy; Soins-santé grand public McNeil, qui est entièrement responsable de son contenu.<br> Il s’adresse aux visiteurs Canadiens seulement.<br> Dernière mise-à-jour: "+mod_date.getDate()+" "+months[mod_date.getMonth()]+", "+mod_date.getFullYear()+" <br><br>"); 
  }


}
