	function changecss(theClass,element,value) {
	//documentation for this script at http://www.shawnolson.net/a/503/
	 var cssRules;
	 if (document.all) {
	  cssRules = 'rules';
	 }
	 else if (document.getElementById) {
	  cssRules = 'cssRules';
	 }
	 for (var S = 0; S < document.styleSheets.length; S++){
	  for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
	   if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
	    document.styleSheets[S][cssRules][R].style[element] = value;
	   }
	  }
	 }	
	}
	
	function tourswap(newhilite,newarrow,newcontent)
	{
		//I'm sure there's a more graceful way to do this, but oh, well
	    t1 = document.getElementById("tour1");
	    t2 = document.getElementById("tour2");
	    t3 = document.getElementById("tour3");
	    t4 = document.getElementById("tour4");
	    t5 = document.getElementById("tour5");						
	    txt1 = document.getElementById("tour-content1");
	    txt2 = document.getElementById("tour-content2");
	    txt3 = document.getElementById("tour-content3");
	    txt4 = document.getElementById("tour-content4");
	    txt5 = document.getElementById("tour-content5");
		arrow = document.getElementById("arrow-img");
		//I'm sure there's a more graceful way to do this, too, but... oh, well
		//get rid of hilite color on all titles
		cssjs('remove',t1,'tour-title-txt-hilite');
		cssjs('remove',t2,'tour-title-txt-hilite');
		cssjs('remove',t3,'tour-title-txt-hilite');
		cssjs('remove',t4,'tour-title-txt-hilite');
		cssjs('remove',t5,'tour-title-txt-hilite');
		//Now, add it where it's supposed to be, and move the arrow.
		cssjs('add',eval(newhilite),'tour-title-txt-hilite');
		arrow.className = newarrow;
		//Now, change the content based on the link they clicked.
		//First, get rid of visible class on all divs...
		txt1.className = 'txt-hide';
		txt2.className = 'txt-hide';
		txt3.className = 'txt-hide';
		txt4.className = 'txt-hide';
		txt5.className = 'txt-hide';
		//...Then, add it where it's supposed to be.
		cssjs('swap',eval(newcontent),'txt-show','txt-hide');
	}

	/*
	 * cssjs
	 * written by Christian Heilmann (http://icant.co.uk)
	 * eases the dynamic application of CSS classes via DOM
	 * parameters: action a, object o and class names c1 and c2 (c2 optional)
	 * actions: swap exchanges c1 and c2 in object o
	 *			add adds class c1 to object o
	 *			remove removes class c1 from object o
	 *			check tests if class c1 is applied to object o
	 * example:	cssjs('swap',document.getElementById('foo'),'bar','baz');
	 */
	function cssjs(a,o,c1,c2)
	{
		switch (a){
			case 'swap':
				o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
			break;
			case 'add':
				if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
			break;
			case 'remove':
				var rep=o.className.match(' '+c1)?' '+c1:c1;
				o.className=o.className.replace(rep,'');
			break;
			case 'check':
				return new RegExp('\\b'+c1+'\\b').test(o.className)
			break;
		}
	}	
	
	//Quick hack to make IE display the screenshot popups
	//without the right column showing on top of them.
	//The popup was supposed to be all CSS, but sadly
	//I've given up on that.
	function hideme()
	{
	document.getElementById("column-2-to-hide").style.visibility='hidden';
	}
	function showme()
	{
	document.getElementById("column-2-to-hide").style.visibility='visible';
	}
