
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_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_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_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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


// window pop up function
function sb_popWindow(url) {
	var optionListing = "HEIGHT=480,WIDTH=462,innerHeight=480,innerWidth=462,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,screenX=10,screenY=20"
	remote = window.open(url,"Popup",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}

function sb_popWindowLarge(url) {
	var optionListing = "HEIGHT=500,WIDTH=660,innerHeight=500,innerWidth=660,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,screenX=10,screenY=20"
	remote = window.open(url,"Popup",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}


function sb_init(){
	sb_setNavState();
}

function sb_validateForm() { //v4.0
  	var i,p,q,nm,test,num,min,max,errors='',args=sb_validateForm.arguments;
  	for (i=0; i<(args.length-2); i+=3) { 
	
		test=args[i+2]; 
		val=MM_findObj(args[i]);
		if (val) { 
	
			var temp_nm=val.name;
			temp_nm=args[i];
			nm = eval(temp_nm+'_label'); 
		
			if ((val=val.value)!="") {
    	  		if (test.indexOf('isEmail')!=-1) { 
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1)) {
						errors+='- '+nm+' '+emailError+'\n';
     				}
				} else if (test!='R') { 
					num = parseFloat(val);
       				if (isNaN(val)) {
       					errors+='- '+nm+' '+numericError+'\n';
	   				}
					if (test.indexOf('inRange') != -1) { 
						p=test.indexOf(':');
        	  			min=test.substring(8,p); 
          				max=test.substring(p+1);
         				if (num<min || max<num) {
         					errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    					}
					} // end if in range
    			} // end if 
    		} else if (test.charAt(0) == 'R') {
    			errors += '- '+nm+' '+nullError+'.\n'; 
			} // end if value != ""
		} // end if val
  	} // end for loop
	
  	if (errors) {
  		alert(validationMessage+'\n'+errors);
	}
	
  document.MM_returnValue = (errors == '');
}

function sb_read_cookie(cname) {
        var c = document.cookie
        if (c.indexOf(cname)==-1) return null
        else {
            var start = c.indexOf(cname)+cname.length+1
            for (var end=start;end<c.length;end++) if (c.charAt(end)==";") break
            return c.substring(start,end)
        }
}

function sb_saveCookie(name,cvalue,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000))
            var expires = "; expires="+date.toGMTString()
        }
        else expires = ""
        document.cookie = name+"="+cvalue+expires+"; path=/"
}   

//document.write('<div id="veil" style="position:absolute; width:'+(screen.width-35)+'; height:4000; z-index:999999999; left: 0; top: 0; visibility: hidden; background-color: #FFFFFF; layer-background-color: #FFFFFF; background-image: url(/site_images/white_pixel.gif); layer-background-image: url(/site_images/white_pixel.gif); border: 1px none #000000;"><image src="/site_images/white_pixel.gif" width="'+(screen.width-35)+'" height="4000"/></div>');

function sb_isUserDirectory() {
	currLoc = location.href;
	lastSlash = currLoc.lastIndexOf('/');
	currLoc = currLoc.substring(0,lastSlash);
	return(currLoc.indexOf('_user') != -1)
}

function sb_popup_closing(pcvalue) {
	popClose = pcvalue;
}

function sb_validate_closure() {
	if (popClose == false) {
		sb_validate_user(false);
	}
}

function sb_show_disclaimer() {
	if ((sb_read_cookie('MSD_PRODUCT_SITE') == null) && (sb_isUserDirectory())) {
		MM_showHideLayers('veil','','show');
		sb_popup_closing(false);
		sb_popWindow('/secure/validate_user.html');
	}
	
}

function sb_validate_user(agree) {
	sb_popup_closing(true);
	if (agree) {
		MM_showHideLayers('veil','','hide');
		sb_saveCookie('MSD_PRODUCT_SITE','PRODUCT_USER',false);
	} else {
		sb_saveCookie('MSD_PRODUCT_SITE','PRODUCT_USER',-1);
		location.href = '/secure';
	}
}


/* *********************************** */
// This popWindow function is added by Vishnu on 20OCT2005.
// This function is used in EMail a Friend Function.
// window pop up function
/* *********************************** */


function popWindow(url, myWidth, myHeight) {
	var winWidth, winHeight;
	if (myWidth) {
		winWidth = myWidth;
	} else {
		winWidth = 462;
	}
	
	if (myHeight) {
		winHeight = myHeight;
	} else {
		winHeight = 480;
	}
	
	var optionListing = "HEIGHT=" + winHeight + ",WIDTH=" + winWidth + ",innerHeight=480,innerWidth=462,channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=0,toolbar=0,screenX=10,screenY=20"
	remote = window.open(url,"sb_popup",optionListing);
	if (remote != null)  {
		remote.focus();
	} // end if
}



sb_show_disclaimer();


/* *********************************** */
// BEGIN POLL FUNCTIONS
/* *********************************** */


// Turn Display on/off
function poll_showHideLayers() {
	var i,p,v,obj,args=poll_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) 
	if ((obj=MM_findObj(args[i]))!=null) { 
		v=args[i+2];
		if (obj.style.display) { 
			obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; 
		} 
	obj.display=v; 
	}
}

// define the default number of days for cookie expiration
var expDays = 365;

// which page should be popped for the one-time survey
var page = "/secure/GeneralContent/survey/take_survey.html";
var windowprops = "width=600,height=500,location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=yes";

// get the specific value of the cookie
function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg)      
		return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}

// set the cookie with an expiration equal to what is defined above
function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}

// set the old cookie to an expired time to delete it if necessary
function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

// add 1 to the cookie if they've been here before
function amt() {
	var count = GetCookie('count')
	if(count == null) {
		SetCookie('count','1')
		return 1
	}
	else {
		var newcount = parseInt(count) + 1;
		DeleteCookie('count')
		SetCookie('count',newcount,exp);
		return count
   }
}

// get the value of the cookie, detect if it's null or not
function getCookieVal(offset) {
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

// see if they've received the cookie before now
function checkCount() { 
	var count = GetCookie('count');
	if (count == null) 
	{
		count=1;
		SetCookie('count', count, exp);
		window.open(page, "", windowprops);
	}
	else
	{
		count++;
		SetCookie('count', count, exp);
   }
}

var graphimageP="/site_images/poll/poll_bar.gif";
var thePollName="";

// set the cookie to show the poll has been taken
function takePoll() {
	SetCookie('poll_Name',thePollName, exp);
}

// show the correct DIV for the poll status
function miniInit() {
 setTimeout("setPollLayer();",500);
}

function setPollLayer() {
	SetCookie('cookieEnable', "yes", exp);
	if (GetCookie('cookieEnable') == null) {
		poll_showHideLayers('pollQuestion','','hide','pollResults','','show');
	}
	else {
		if (GetCookie('poll_Name') != thePollName) {
			poll_showHideLayers('pollQuestion','','show','pollResults','','hide');
		}
		else {
			poll_showHideLayers('pollQuestion','','hide','pollResults','','show');
		}
	}
}

//DEFINE GRAPH VALUES [Item name, Percentage value]

function graphitP(grapha, graphb, gwidth) {
	var arrLen = grapha.length;
	var graphc = new Array();
	for (var arrLoop = 0; arrLoop < arrLen; arrLoop++) {
		graphc[arrLoop] = [grapha[arrLoop], graphb[arrLoop]];
	}

	outputP='<table border="0" cellspacing="0" cellpadding="0" width="100%">'
	for (i=0;i<graphc.length;i++) {
		calwidthP=gwidth*(parseInt(graphc[i][1])/100)
		outputP+='<tr><td class="sidebarCopy" colspan="3">'+graphc[i][0]+'&nbsp;:&nbsp;'+graphc[i][1]+'</td></tr><tr><td width="1"><img src="/site_images/poll/poll_left.gif" width="1" height="11"></td><td width="144" background="/site_images/poll/poll_bg.gif"><img src="/site_images/s.gif" width="1" height="2"><img src="'+graphimageP+'" width="'+calwidthP+'" height="7"></td><td width="1"><img src="/site_images/poll/poll_left.gif" width="1" height="11"></td></tr>';
		outputP+='<tr><td colspan="3"><img src="/site_images/s.gif" width="3" height="4" alt="" /></td></tr>';
	}
	outputP+='</table>';
	document.write(outputP);
}

// Disclaimer Functions
function sb_disclaimer(disc,targ,label) {
	window.open(disc + '?targ=' + targ + '&label=' + label,'', 'width=460, height=275');
}

var qsParm = new Array();
function qs() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
   var pos = parms[i].indexOf('=');
   if (pos > 0) {
      var key = parms[i].substring(0,pos);
      var val = parms[i].substring(pos+1);
	  val = unescape(val);
      qsParm[key] = val;
      }
   }
}

function discOpen() {
	window.open(qsParm['targ']);
	window.close();
}

qsParm['targ'] = null;
qsParm['label'] = null;
qs(); 

function checkVars(){
	if (qsParm['targ'] && qsParm['label']) {
		MM_showHideLayers('disclaimerLink','','show','error','','hide');
	} else {
		MM_showHideLayers('disclaimerLink','','hide','error','','show');
	}
}

// begin animation swap
function scAni(name,value,days) {
    document.cookie = name+"="+value+"; path=/"
}
function rcAni(name) {
    var c = document.cookie
    if (c.indexOf(name)==-1) return null
    else {
    	return('found');
    }
}
function aniSwap() {
	if(rcAni('headerAni') == null) {
		MM_swapImage('merckLogo','','/site_images/header/msd_logo.gif',1)
		scAni('headerAni','x');
	}
}
/*********************************************************************************
  dw_cookies.js - cookie functions for www.dyn-web.com
  Recycled from various sources 
**********************************************************************************/

// Modified from Bill Dortch's Cookie Functions (hidaho.com) 
// (found in JavaScript Bible)
function dw_setCookie(name,value,days,path,domain,secure) {
  var expires, date;
  if (typeof days == "number") {
    date = new Date();
    date.setTime( date.getTime() + (days*24*60*60*1000) );
		expires = date.toGMTString();
  }
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

// Modified from Jesse Chisholm or Scott Andrew Lepera ?
// (found at both www.dansteinman.com/dynapi/ and www.scottandrew.com/junkyard/js/)
function dw_getCookie(name) {
  var nameq = name + "=";
  var c_ar = document.cookie.split(';');
  for (var i=0; i<c_ar.length; i++) {
    var c = c_ar[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameq) == 0) return unescape( c.substring(nameq.length, c.length) );
  }
  return null;
}

// from Bill Dortch's Cookie Functions (hidaho.com) 
function dw_deleteCookie(name,path,domain) {
  if (dw_getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

/*
    dw_sizerdx.js version date: March 2005
    requires dw_cookies.js
    
    Revisions: added setDefaults method, 
    set method now accepts array of selectors,
    reset fn now sets adjustList el's font-sizes to empty string,
    fixed bugs in dw_getElementsBySelector fn
*/

/*************************************************************************
  This code is from Dynamic Web Coding at dyn-web.com
  Copyright 2004-5 by Sharon Paine 
  See Terms of Use at www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

var dw_fontSizerDX = {
    sizeUnit:    "px",
    defaultSize: 11,
    maxSize:     24,
    minSize:     8,
    adjustList: [], // set method populates

    setDefaults: function(unit, dflt, mn, mx, sels) {
        this.sizeUnit = unit;       this.defaultSize = dflt;
        this.maxSize = mx;          this.minSize = mn;
        if (sels) this.set(dflt, mn, mx, sels);
    },

    set: function (dflt, mn, mx, sels) { 
        var ln = this.adjustList.length;        
        for (var i=0; sels[i]; i++) {
            this.adjustList[ln+i] = [];
            this.adjustList[ln+i]["sel"]  = sels[i];
            this.adjustList[ln+i]["dflt"] = dflt;
            this.adjustList[ln+i]["min"]   = mn || this.minSize;
            this.adjustList[ln+i]["max"]   = mx || this.maxSize;
            // hold ratio of this selector's default size to this.defaultSize for calcs in adjust fn 
            this.adjustList[ln+i]["ratio"] = this.adjustList[ln+i]["dflt"] / this.defaultSize;
        }
    },

    init: function() {
        if ( !document.getElementById || !document.getElementsByTagName ) return;
        var size, sizerEl, i;
        size = window.location.search? window.location.search.slice(1): dw_getCookie("fontSize");
        size = !isNaN( parseFloat(size) )? parseFloat(size): this.defaultSize;
        // in case default unit changed or size passed in url out of range
        if ( size > this.maxSize || size < this.minSize ) size = this.defaultSize;
        this.curSize = this.defaultSize;  // create curSize property to use in calculations 
        sizerEl = document.getElementById('sizer');
        if (sizerEl) sizerEl.style.display = "block";
        // if neither set nor setDefaults populates adjustList, apply sizes to body and td's
        if (this.adjustList.length == 0) {
            this.setDefaults( this.sizeUnit, this.defaultSize, this.minSize, this.maxSize, ['body', 'td'] );
        }
        if ( size != this.defaultSize ) this.adjust( size - this.defaultSize );
    },

    adjust: function(n) {
        if ( !this.curSize ) return; // set in init
        var alist, size, list, i, j;
        // check against max/minSize
        if ( n > 0 ) {
            if ( this.curSize + n > this.maxSize ) n = this.maxSize - this.curSize;
        } else if ( n < 0 ) {
            if ( this.curSize + n < this.minSize ) n = this.minSize - this.curSize;
        }
        if ( n == 0 ) return;
        this.curSize += n;
        // loop through adjustList, calculating size, checking max/min
        alist = this.adjustList;
        for (i=0; alist[i]; i++) {
            size = this.curSize * alist[i]['ratio']; // maintain proportion 
            size = Math.max(alist[i]['min'], size); size = Math.min(alist[i]['max'], size);
            list = dw_getElementsBySelector( alist[i]['sel'] );
            for (j=0; list[j]; j++) { list[j].style.fontSize = size + this.sizeUnit; }
        }
        dw_setCookie( "fontSize", this.curSize, 180, "/" );
    },

    reset: function() {
        var alist = this.adjustList, list, i, j;
        for (i=0; alist[i]; i++) {
            list = dw_getElementsBySelector( alist[i]['sel'] );
            for (j=0; list[j]; j++) { 
                // Reset adjustList elements to their default sizes
                //list[j].style.fontSize = alist[i]['dflt'] + this.sizeUnit;
                list[j].style.fontSize = '';  // restores original font size
            } 
        }
        this.curSize = this.defaultSize;
        dw_deleteCookie("fontSize", "/");
    }

}

// resource: simon.incutio.com/archive/2003/03/25/getElementsBySelector
function dw_getElementsBySelector(selector) {
    if (!document.getElementsByTagName) return [];
    var nodeList = [document], tokens, bits, list, col, els, i, j, k;
    selector = selector.normalize();
    tokens = selector.split(' ');
    for (i=0; tokens[i]; i++) {
        if ( tokens[i].indexOf('#') != -1 ) {  // id
            bits = tokens[i].split('#'); 
            var el = document.getElementById( bits[1] );
            if (!el) return []; 
            if ( bits[0] ) {  // check tag
                if ( el.tagName.toLowerCase() != bits[0].toLowerCase() ) return [];
            }
            for (j=0; nodeList[j]; j++) {  // check containment
                if ( nodeList[j] == document || dw_contained(el, nodeList[j]) ) 
                    nodeList = [el];
                else return [];
            }
            continue; 
        } else if ( tokens[i].indexOf('.') != -1 ) {  // class
            bits = tokens[i].split('.'); col = [];
            for (j=0; nodeList[j]; j++) {
                els = dw_getElementsByClassName( bits[1], bits[0], nodeList[j] );
                for (k=0; els[k]; k++) { col[col.length] = els[k]; }
            }
            nodeList = [];
            for (j=0; col[j]; j++) { nodeList.push(col[j]); }
            continue; 
        } else {  // element 
            els = []; 
            for (j = 0; nodeList[j]; j++) {
                list = nodeList[j].getElementsByTagName(tokens[i]);
                for (k = 0; list[k]; k++) { els.push(list[k]); }
            }
            nodeList = els;
        }
    }
    return nodeList;
}

function dw_getElementsByClassName(sClass, sTag, oCont) {
    var result = [], list, i;
    var re = new RegExp("\\b" + sClass + "\\b", "i");
    oCont = oCont? oCont: document;
    if ( document.getElementsByTagName ) {
        if ( !sTag || sTag == "*" ) {
            list = oCont.all? oCont.all: oCont.getElementsByTagName("*");
        } else {
            list = oCont.getElementsByTagName(sTag);
        }
        for (i=0; list[i]; i++) 
            if ( re.test( list[i].className ) ) result.push( list[i] );
    }
    return result;
}

// returns true of oNode is contained by oCont (container)
function dw_contained(oNode, oCont) {
    if (!oNode) return; // in case alt-tab away while hovering (prevent error)
    while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
    return false;
}

if (!Array.prototype.push) {  // ie5.0
	Array.prototype.push =  function() {
		for (var i=0; arguments[i]; i++) this[this.length] = arguments[i];
		return this[this.length-1]; // return last value appended
	}
}

String.prototype.normalize = function() {
	var re = /\s\s+/g;
	return this.trim().replace(re, " ");
}

String.prototype.trim = function() {
	var re = /^\s+|\s+$/;
	return this.replace(re, "");
}
