function slideshow() {
		// load arguments as objects and set defaults
		var a = { objName:"ss", fadeSpeed:20 };
		for (var n in arguments[0]) 
		{ a[n]=arguments[0][n]; }
		
		this.slideBaseId = 'slide';
		this.numberBaseId = 'slide_number';
		this.slideImageBaseId = 'slide_image';
		/*this.slideLinksBaseId = 'slidelinks_container';*/
		this.slides = [];
		/*this.slideLinks = [];*/
		this.last = 0;
		this.current = 1;
		this.fadeTimers = []; 
		this.hashNumber = 1;
		
		// loads all the slide images. This is run with addLoadEvent at the end
		this.loadSlides = function()
		{
			function loadMe(elem_id,array_num) {
				var elem = document.getElementById(elem_id);
				
				if (elem != null) {
					elem.src = slide_images[array_num];
				}
			}
			
			// load image after
			loadMe(this.slideImageBaseId + (parseInt(this.hashNumber)+1),this.hashNumber);
			// load image before
			loadMe(this.slideImageBaseId + (parseInt(this.hashNumber)-1),this.hashNumber-2);
			// load the rest
			for (i=1;i<=slide_images.length;i++) {
				loadMe(this.slideImageBaseId + (String(i)),i-1);
			}
		};
		
		// this is used to move to a slide without a fade if need be
		this.showSlide = function()
		{
			this.current = this.hashNumber;
			
			this.slides[this.current].style.visibility = 'visible';
			
			// add in your slide numbers to the navigation areas
			document.getElementById(this.numberBaseId).innerHTML = this.current;
		};

		// registers a page view
		this.pageView = function()
		{
			var URLFull,URL,pageURL;
			// Register Pageview
			try {
			var pageNumber = this.current;
			
			// Removes hash for slides
			//location.hash = pageNumber;
			
			URLFull=String(document.location).split("?"); 
			pageURL=URLFull[0];

			if (this.current == 1) {
				URLFull=String(pageURL).split("#");
				pageURL = URLFull[0];
			}
			
			// Adds in fake page URL since we removed hash
			pageURL = pageURL + '#' + pageNumber;

			// Makes each page a pageview
			wmdPageview(pageURL, this.current);
			}
			catch(e) {}
		};
		
		// refreshes the banner and right side ads
		this.refreshAllAds = function()
		{
			function refreshAd(strAd,transTileId) {
				
				var objAd = document.getElementById(strAd);
				var okToLoop = 0;

				if (objAd) {
		
					var theObjects = objAd.getElementsByTagName("*");

					/* Makes sure there is an approved iframe before running a possible infinte loop */
					for (i=0;i<=theObjects.length-1;i++)
						{
							if (theObjects[i].id.indexOf("Ad_Iframe") != -1) {
								okToLoop+=1;
							}
						}
					
					/* Runs two loops that remove all other objects other then the original webmd iframe */
					if (okToLoop == 1)
					{
						while(theObjects.length > 1) {
							for (i=0;i<=theObjects.length-1;i++)
							{
								if (theObjects[i].id.indexOf("Ad_Iframe") < 0) {
									try {objAd.removeChild(theObjects[i]);} catch (e) {}
								}
							}
						}
					}
		
					/* Grabs the src of either the iframe or script whichever on is in the div */
					iframe = objAd.getElementsByTagName('iframe')[0];
					adScript = objAd.getElementsByTagName('script')[0];
					
					if(!iframe) {
						var strHTML = adScript.src;
					}
					else {
						var strHTML = iframe.src;
					}
						
					/* Refreshes the other variables in the src */ 
					strHTML = strHTML.replace(new RegExp("transactionID=[0-9]+"), "transactionID=" + transTileId);
					strHTML = strHTML.replace(new RegExp("tile=[0-9]*"), "tile=" + transTileId);
			
					if(!iframe) {
						adScript.src = strHTML;
					}
					else {
						iframe.src = strHTML;
					}
				}
			}
			
			var transTileId = Math.round(99999999*Math.random());
			refreshAd('slideshow_ad_300x250',transTileId);
			refreshAd('rightAd_fmt',transTileId);
			refreshAd('bannerAd_fmt',transTileId);
			
		};
		
		// moves to the next slide using the fade
		this.fadeNext = function() 
		{
			// if this.current has moved past the number of slides, bring it back to the beginning, otherwise, pick next slide
			if (this.current >= this.slides.length-1) 
			{this.current = 1;this.last = this.slides.length-1;}
			else 
			{this.last = this.current;this.current++;}
			
			// fade in current slide, fade out last one
			this.initFade(this.current,0,this.slides[this.current],true,100); 
			/*this.slideLinks[this.current].style.visibility = 'visible';*/
			
			this.initFade(this.last,100,this.slides[this.last],false,0); 
			/*this.slideLinks[this.last].style.visibility = 'hidden';*/
			
			
			// add in your slide numbers to the navigation areas
			document.getElementById(this.numberBaseId).innerHTML = this.current;
			//document.getElementById(this.numberBaseId + '_right').innerHTML = this.current;
			
			// unhide the previous links
			if (document.getElementById("playControlLast").className == "disabled")
			{document.getElementById("playControlLast").className = "";}
			
			// count page view and refresh ads
			this.pageView();
			this.refreshAllAds();
			window.xmlFrame.getFile();
			
		}; 
		
		// backs up a slide using the fade
		this.fadePrev = function() 
		{
			
			// if you are on slide 1, go back to last slide, otherwise, pick previous slide
			if (this.current == 1) 
			{this.current = this.slides.length-1;;this.last = 1;}
			else 
			{this.last = this.current;this.current--;}
			
			// fade out current slide, fade in last one
			this.initFade(this.current,0,this.slides[this.current],true,100); 
			
			this.initFade(this.last,100,this.slides[this.last],false,0); 
			
			// add in your slide numbers to the navigation areas
			document.getElementById(this.numberBaseId).innerHTML = this.current;
			
			// count page view and refresh ads
			this.pageView();
			this.refreshAllAds();
			window.xmlFrame.getFile();
		}; 
		
		// set absolute position on an element
		this.position = function(id, t, r, b, l) {
			var ele = document.getElementById(id);
			ele.style.top = t;
			ele.style.right = r;
			ele.style.bottom = b;
			ele.style.left = l;
		}
			
		// this initiaties a fade from one image to another
		this.initFade = function(i,opacity,theObject,fadeIn,fadeLimit) 
		{
			// i = which timer you are using. I'm using the image numbers as its timer. This allows for multiple fades at once.
			// opacity = the opacity at which you start your fades. For example, you can start at 10 if you want. 
			// theObject = which object you are fading
			// fadeIn = true for a fade in, false for a fade out
			// fadeLimit = opacity at which you stop. For example, you could stop with the object at 90
			
			// clear timer in case another fade with same timer is going on
			clearInterval(this.fadeTimers[i]);
			// set object to chosen opacity before starting fade, and make sure its visible
			this.setOpacity(i,opacity,theObject);
			theObject.style.visibility = 'visible';

			// fade in, or fade out depending on arguments
			if (fadeIn) {
				setTheInterval = 'window.setInterval(function() { ' + a.objName + '.setOpacity(i,opacity,theObject,fadeIn,fadeLimit); opacity = opacity + 4;},a.fadeSpeed)';
				this.fadeTimers[i] = eval(setTheInterval);
			}
			else {
				setTheInterval = 'window.setInterval(function() { ' + a.objName + '.setOpacity(i,opacity,theObject,fadeIn,fadeLimit); opacity = opacity - 4; if (opacity == 0) theObject.style.visibility = "hidden"; },a.fadeSpeed)';
				this.fadeTimers[i] = eval(setTheInterval);}
				
			// we need to move the navigation and email link to a different spot in the last frame
			switch(this.current) {
				case (slide_images.length+1):
					this.position('slideshowControls', '9px', '15px', 'auto', '0px');
					break;
				default:
					this.position('slideshowControls', '9px', 'auto', 'auto', '0px');
					break;
			}
		}; 
		
		// function that is run on an interval to do the actual fade work
		this.setOpacity = function(i,opacity,theObject,fadeIn,fadeLimit) {
			// if you have reached whatever limit, clear timer
			if (opacity == fadeLimit) {clearInterval(this.fadeTimers[i]);}
			
			// set the opactity to whatever out of 100 and perform cross browser opacity move
			var setOpacity = opacity/100;
			theObject.style.filter = "alpha(opacity:"+opacity+")";
			theObject.style.KHTMLOpacity = setOpacity;
			theObject.style.MozOpacity = setOpacity;
			theObject.style.opacity = setOpacity;
		}; 
		
		this.init = function() {
			var count = 1;
			var s;
			// setup slides and texts arrays
			while (s = document.getElementById(this.slideBaseId + count)) {
				this.slides[count] = s;
				count++;
			}
			count = 1;
			/*while (s = document.getElementById(this.slideLinksBaseId + count)) {
				this.slideLinks[count] = s;
				count++;
			}*/
			
			// preload the first image based on the URL from which you enter
			if (location.hash) {
				var imageNumber = URLFull=String(location.hash).split("#");
				this.hashNumber = imageNumber[1];
				
				// grab only the image slide number from hash
				var imageSlide = document.getElementById(this.slideImageBaseId + this.hashNumber);
				
				// make sure we are on an image and not the text slide
				if (imageSlide) {
					// go ahead and load the image now
					document.getElementById(this.slideImageBaseId + this.hashNumber).src = slide_images[this.hashNumber-1];
				}
			}
			else {
				// hide the previous buttons if loading the first slide
				document.getElementById("playControlLast").className = "disabled";
				
				// if no hash, we just load the first image and set the hashNumber to 1
				document.getElementById(this.slideImageBaseId + '1').src = slide_images[0];	
	
			}
			
			/* insert iframe to ajax call for pageview */
			document.domain = 'webmd.com';
			var iframePane = document.getElementById('ContentPane3');
			var iframeDiv = document.createElement('div');
			iframeDiv.setAttribute('id','ajaxFrame');
			iframeDiv.setAttribute('style','display:none;');
			var iframeDivContent = '<iframe src="http://img.webmd.com/slideshow_fp/slideshow_fp_frame.html" width="0" height="0" id="xmlFrame" name="xmlFrame"></iframe>';
			iframeDiv.innerHTML = iframeDivContent;
			if (iframePane) {
				iframePane.insertBefore(iframeDiv,iframePane.firstChild);
			}
			// shows whichever slide you are supposed to go to based on hash
			this.showSlide();
		}; 
}
/* Repeating Functions from WebMD scripts.js to create a standalone slideshow */
/* function to add an onload event */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') 
  {
    window.onload = func;
  } else 
    {
       window.onload = function() 
    {
      oldonload();
      func();
    }
  }
}	
/* function to change a class */
function setClass(objectID,newClass) {
	var object = document.getElementById(objectID);
	if (object) {
		object.className = newClass;
	}
}
function popInterstitial() {
	var interstitial = window.open("/privacy_window.html","privacy_window","width=325,height=175,resizable=no,toolbar=no,left=350,top=300"); 
	if (interstitial) {
		interstitial.focus();
	}
	return false;
}

/* function to switch tabs in the last frame */
function showTab(n) {
	var content1 = document.getElementById('more_ss_content1');
	var content2 = document.getElementById('more_ss_content2');
	var content3 = document.getElementById('more_ss_content3');
	content1.style.display = 'none';
	content2.style.display = 'none';
	content3.style.display = 'none';
	eval("content"+n+".style.display = 'block'");
	var tab1 = document.getElementById('more_ss_tab1');
	var tab2 = document.getElementById('more_ss_tab2');
	var tab3 = document.getElementById('more_ss_tab3');
	setClass(tab1.id, 'more_ss_tab_inactive_fmt');
	setClass(tab2.id, 'more_ss_tab_inactive_fmt');
	setClass(tab3.id, 'more_ss_tab_inactive_fmt');
	eval("tab"+n+".className = 'more_ss_tab_active_fmt'");
	return false;
}

/* cache the back and forward images */
var back_on = new Image();
back_on.src = 'http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/alt_slideshow/slideshow_alt2_back_on.gif';
var fwd_on = new Image();
fwd_on.src = 'http://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/modules/alt_slideshow/slideshow_alt2_forward_on.gif';