/*	JavaScript Document
	ulwebsite.js
	Written by Keith Higgs, 2003
	Scripts used on CWRU University Library web pages.

	Design Notes:
	1) Source code commentary is like sex. 
			When it's good it's VERY good. 
			When it's bad it's still better than nothing.
	2) Menu functionality is provided by ulmenu.js
	3) Menu content for the homepage is provided by ulmainmanu.js
	4) Browser/OS detection is provided by ulsniffer.js
	5) URL parameter parsing is provided by ulparams.js
*/

	

function cutBox(message, max)//Cuts message to max number of chars
{
  if (message.value.length > max) message.value = message.value.substring(0, max);
}

function reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {
		if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    		document.pgW=innerWidth; document.pgH=innerHeight;
			onresize=reloadPage; 
	}	}
  else if (innerWidth!=document.pgW | innerHeight!=document.pgH) location.reload();
}

reloadPage(true);

function showDateYear() {
	var myDate = new Date();
	document.write(myDate.getFullYear());
}

var ul_supportPage = "http://www.cwru.edu/UL/browsersupport.html";
var supportErrorMsg = "<h6>Unsupported Browser!</h6>\n<p>Your browser does not meet our minimal support requirements. For additional information regarding supported browsers you will be redirected to our <a href='"+ul_supportPage+"'>Browser Support Page</a> in 20 seconds.<p>\n";

function DisappearingSidebarHandler() {
	var pgWidthNow, pgHeightNow, i, lyr;
	var args=DisappearingSidebarHandler.arguments, pgWidthLim=args[0], pgHeightLim=args[1]; 
	if (pgWidthLim == '') { pgWidthLim = '800'; }
	if (pgHeightLim == '') { pgHeightLim = '600'; }
	var pgWidthNow = (document.body)?document.body.clientWidth:window.innerWidth;
	var pgHeightNow = (document.body)?document.body.clientHeight:window.innerHeight;

	for (i=2; i<args.length; i++) {
		(pgWidthNow>=pgWidthLim) 
			? showHideLayers(args[i],'block','show')
			: showHideLayers(args[i],'none','hide');
	}
}

function hideOptions() {
	var args=hideOptions.arguments, is_required;
	var ULRequired = new Array('t_mainLayout', 'UL_MagicSidebar', 'UL_EditableBodyContent');
	for (i = 0; i < args.length; i++) {
		is_required="false";
		for (j = 0; j < ULRequired.length; j++) if (args[i] == ULRequired[j]) is_required="true";
		if (is_required!="true") showHideLayers(args[i],'none', 'hide');
	}
}
function showOptions() {
	var args=showOptions.arguments, is_required;
	var ULRequired = new Array('t_mainLayout', 'UL_MagicSidebar', 'UL_EditableBodyContent');
	for (i = 0; i < args.length; i++) {
		is_required="false";
		for (j = 0; j < ULRequired.length; j++) if (args[i] == ULRequired[j]) is_required="true";
		if (is_required!="true") showHideLayers(args[i],'block', 'show');
	}
}

function ul_swapImg() {
	// Swap an image by array index in ul_Pix[].
	// To swap by new image URL use ul_swapImage() instead.
	// Call with the NAME of the image to be changed and the img.src to insert.
	// The img.src argument is the index value in the array ul_Pix[].
	// Example: onMouseOver="ul_imgSwap('myPic',0);"
	var imgName, newSrc, args=ul_swapImg.arguments;
	imgName=args[0]; newSrc=args[1];
	document[imgName].src=ul_Pix[newSrc].src;
}

function ul_swapImage() { //v3.0
	// Swap an image by URL of the new image.
	// To swap by array index in ul_Pix[] use ul_swapImg() instead.
	// Arguments: objectID, unused, new img.src
	// j references the current object index in document.ul_sr[j]
	var i,j=0,x,a=ul_swapImage.arguments; 
	document.ul_Pix=new Array; // create an array to holds stuff
	for(i=0;i<(a.length-2);i+=3) if ((x=findObj(a[i]))!=null) {
		// step through the arguments by threes (a0, a1, a2, ...).
		// If a0 exists assign it to x, then to ul_sr[j], and increment j.
		document.ul_Pix[j++]=x; 
		// x.oSrc = the old source for this object.
		// if no o.Src then replace x.src with a2.
		if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
}	}

function findObj(n, d) {
/* function findObj(n, d) {} 
	called by function showHideLayers() {} 
*/
	var p,i,x;  
	if(!d) d=document; // if
	if((p=n.indexOf("?")) >0 && parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	} // if
	if (!(x=d[n])&&d.all) x=d.all[n]; // if
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; // for
	for (i=0;!x&&d.layers&&i<d.layers.length;i++)
		x=findObj(n,d.layers[i].document); // for
	if (!x && document.getElementById) x=document.getElementById(n); // if
	return x;
} // function

function showHideLayers() { //v3.0
	// showHideLayers('layerid01','inline','show');
	var i,v,d,obj,args=showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { 
		d=args[i+1];
			// Display Values
			//	inline | block | list-item | run-in | compact | marker |
			//	table | inline-table | table-row-group | table-header-group |
			//	table-footer-group | table-row | table-column-group |
			//	table-column | tavle-cell | table-caption | none | inherit
		v=args[i+2];
			// Visibility Values
			//	visible | hidden | collapse | inherit
		if (obj.style) { 
			obj=obj.style; 
			obj.display=(d=='inline')?'inline':(d=='block')?'block':d;
			obj.visibility=(v=='show')?'visible':(v='hide')?'hidden':v; 
}	}	}

function ul_bgColor() {
	var divObj, idx, args=ul_bgColor.arguments;
	for (idx=0; idx < (args.length-1); idx+=2) {
		if ((divObj=findObj(args[idx]))!=null) {
			if (divObj.style) {
				divObj=divObj.style;
				divObj.backgroundColor = args[idx+1];
}	}	}	}

function ul_navTabColor() {
	var divObj, idx, args=ul_navTabColor.arguments;
	for (idx=0; idx < (args.length-3); idx+=4) {
		if ((divObj=findObj(args[idx]))!=null) {
			if (divObj.style) {
				divObj=divObj.style;
				divObj.backgroundColor=args[idx+1];
				divObj.color=args[idx+2];
				divObj.borderBottomColor=args[idx+3]
}	}	}	}


function ul_swapImgRestore() { //v3.0
  var i,x,a=document.ul_Pix; 
  for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function ul_preloadImages() { //v3.0
	// Receives a list of image URLs to load into document.ul_Pix[].
	var d=document; if(d.images) { 
		if(!d.ul_Pix) d.ul_Pix=new Array();
	    var i,j=d.ul_Pix.length,a=ul_preloadImages.arguments; 
		for (i=0; i<a.length; i++) if (a[i].indexOf("#")!=0) { 
			// step through arguments array (a) and add images to ul_Pix[]
			d.ul_Pix[j]=new Image; 
			d.ul_Pix[j++].src=a[i]; // increment j after assignment is made.
}	}	}

function ul_getWindowInnerWidth() {
  var windowInnerWidth;
  //if browser supports window.innerWidth
  if (window.innerWidth) {
  	windowInnerWidth=window.innerWidth;
  }
  //else if browser supports document.all (IE 4+)
  else if (document.all) {
  	windowInnerWidth=document.body.clientWidth;
  }
	return windowInnerWidth;
}

function ul_getWindowInnerHeight() {
  var windowInnerHeight;
  //if browser supports window.innerWidth
  if (window.innerHeight) {
  	windowInnerHeight=window.innerHeight;
  }
  //else if browser supports document.all (IE 4+)
  else if (document.all) {
  	windowInnerHeight=document.body.clientHeight;
  }
	return windowInnerHeight;
}

function ul_setFrameWidth(ua, mn) {
	// ua == Width of area known to be in use
	// mn == Minimum width to return
	var fWidth=(getWindowInnerWidth()-ua);
	if (fWidth<mn) fWidth=mn;
	return fWidth
}

function ul_setFrameHeight(ua, mn) {
	// ua == Height of area known to be in use
	// mn == Minimum height to return
	var fHeight=(getWindowInnerHeight()-ua);
	if (fHeight<mn) fHeight=mn;
	return fHeight
}


function ulChangeFontFamily() {
	var ffam, obj, args=ulChangeFontFamily.arguments;
	for (i=0; i<(args.length-1); i+=2) {
		if ((obj=findObj(args[i]))!=null) { 
			ffam=args[i+1];
			if (obj.style) { 
				obj=obj.style; 
			    obj.fontFamily=ffam;
			}	
		}	
	}
}
function ul_spacerDiv() {
	var w = ul_spacerDiv.arguments[0], h = ul_spacerDiv.arguments[1];
	document.write('<div style="width: '+w+'px; height: '+h+'px; display: block;">&nbsp;</div>');
}


function ul_navtabBuffer(){
	var winWidth = ul_getWindowInnerWidth();
	var splitWidth = ((winWidth-716)/2);
	if (splitWidth < 0)
	{
		splitWidth = 0;
	}
	var tdString = '<td height="32"><div class="div_tab" style="width: '+splitWidth+'; background: none;"></div></td>';
	document.write(tdString);
}
function ul_navtabBufferAdmin(){
	var winWidth = ul_getWindowInnerWidth();
	var splitWidth = ((winWidth-806)/2);
	if (splitWidth < 0)
	{
		splitWidth = 0;
	}
	var tdString = '<td height="32"><div class="div_tab" style="width: '+splitWidth+'; background: none;"></div></td>';
	document.write(tdString);
}
function showTab() {
	var tab=showTab.arguments[0];
	switch (tab) {
		case "search" :
			ul_navTabColor('navtabsearch', '#9999ff', '#000066', '#9999ff', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'block', 'show', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "electronic" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#9999ff', '#000066', '#9999ff', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'block', 'show', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "subject" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#9999ff', '#000066', '#9999ff', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'block', 'show', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "about" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#9999ff', '#000066', '#9999ff', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'block', 'show', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "reference" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#9999ff', '#000066', '#9999ff', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'block', 'show', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "kslearn" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#9999ff', '#000066', '#9999ff', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'block', 'show', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "what" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#9999ff', '#000066', '#9999ff', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'block', 'show', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "give" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#9999ff', '#000066', '#9999ff',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'block', 'show', 'ksl_navUnder10', 'none', 'collapse');
		break;
		case "admin" :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099','navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#993333', '#FFFFFF', '#993333');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse',
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'block', 'show');
		break;
		default :
			ul_navTabColor('navtabsearch', '#FFFFFF', '#000099', '#000099', 
				'navtabelect', '#FFFFFF', '#000099', '#000099', 'navtabsubject', '#FFFFFF', '#000099', '#000099', 
				'navtabinforms', '#FFFFFF', '#000099', '#000099', 'navtabaskalib', '#FFFFFF', '#000099', '#000099', 
				'navtabreference', '#FFFFFF', '#000099', '#000099', 'navtabkslearn', '#FFFFFF', '#000099', '#000099', 
				'navtabnew', '#FFFFFF', '#000099', '#000099', 'navtabgive', '#FFFFFF', '#000099', '#000099',
				'navtabadmin', '#ffcc00', '#000099', '#000099');
			showHideLayers('ksl_navUnder00', 'none', 'collapse', 
				'ksl_navUnder01', 'none', 'collapse', 'ksl_navUnder02', 'none', 'collapse', 
				'ksl_navUnder03', 'none', 'collapse', 'ksl_navUnder04', 'none', 'collapse', 
				'ksl_navUnder05', 'none', 'collapse', 'ksl_navUnder06', 'none', 'collapse', 
				'ksl_navUnder07', 'none', 'collapse', 'ksl_navUnder08', 'none', 'collapse', 
				'ksl_navUnder09', 'none', 'collapse', 'ksl_navUnder10', 'none', 'collapse');
}	}

function repSpan() {
	var spanID, contSent, spanRef, contOld, contNew, args=repSpan.arguments;
//	for (i=0; i < args.length; i++) {
		spanID = args[0];
		contSent = args[1];
		spanRef = document.getElementById(spanID);
		contOld = spanRef.childNodes.item(0);
		contNew = document.createTextNode(contSent);
		spanRef.replaceChild(contNew,contOld);
//	}	
}


function getParentReferrer() {
 var myLocation, len, qpos, vpos, nqpos, vlen, rval;
 myLocation = location.href;
 len = myLocation.length;
 qpos = myLocation.indexOf('?');
 if (qpos < 0) {	// if there is no query string
  rval = 'User bookmarked form location ('+document.location+') No Referrer';
 } else {
  vpos = myLocation.indexOf('=',qpos); 	// get location of first value
  nqpos = myLocation.indexOf('?',vpos); // check to see if there are multiple queries
  if (nqpos < 0) { // if there is only one query string 
   rval = myLocation.substring(vpos+1,len);
//   if (vpos = len) {
//    rval = 'User followed circular link or, link does not provide referrer pass through.';
//   } 
  } else { // use the value from the first query string
   rval = myLocation.substring(vpos+1,nqpos);
  }
 }
 return rval;
}

function cleanReferrer() {
	var myLocation, len, qpos;
	myLocation = document.referrer;
	len = myLocation.length;
	qpos = myLocation.indexOf('?');
	if (qpos < 0) {
		qpos = len;
	}
	rval = myLocation.substring(0,qpos);
	return rval;	
}
