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_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_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.getElementById(n); return x;
}

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 openIt2(url) {
 varnewWin=window.open(url,"","left=20,top=20,resizable=no,menubar=no,toolbar=no,width=600,height=400,scrollbars=yes");
}

// verifyIssue is used to verify that proper content is selected in the Select an Issue select menu.
// function verifyIssue() {
// 	if ((jamestown.issue.value == '') || (jamestown.issue.value == '0')) {
// 		alert('Please Select an Issue.');
// 		return false;
// 	}
// 	return true;
// }

// isblank and verify are used in an example example from OReilly JavaScript The Definitive Guide pages 311-314.
// Please refer to the above reference for further explanation.
// This verification is limited to checking text and textarea fields.  
// Used in this case to verify the content of the ISBN entry field.
function isblank(s) {
	for(var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != '') && (c != '\n') && (c != '\t')) return false;
	}
	return true;
}	
	
function verify(f) {
	var msg;
	var empty_fields = "";
	var errors = "";
	// combs through all the elements of the form
	for(var i = 0; i < f.length; i++) {
		var e = f.elements[i];
		// Checks to see if any of the required fields are blank
		// In this specific example, checkes the e-mail Address field
		if (((e.type == "text") || (e.type == "textarea") || (e.type == "file")) && !e.optional) {
			if ((e.value == null) || (e.value == "") || isblank(e.value)) {
				empty_fields += "\n          " + e.name;
				continue;
			}
			// checks to see if the numeric values are within the desired range
			
			// Not used in this specific example
			if (e.numeric || (e.min != null) || (e.max != null)) {
				var v = parseFloat(e.value);
				if (isNaN(v) || ((e.min != null) && (v < e.min)) || ((e.max != null) && (v > e.max))) {
					errors += e.name + " must be a number";
					if (e.min != null)
						errors += " between " + e.min;
					if (e.max != null && e.min != null)
						errors += " and " + e.max;
					else if (e.max != null)
						errors += " that is less than or equal to " + e.max;
					errors += ".\n";
				}
			}
			
			// calculates the length of the ISBN field to ensure that it is 10 characters long
			
			// Not used in this specific example
			if (e.name == "ISBN") {
				var l = parseFloat(e.value.length);
				if (l != 10) {
					errors += e.name + " must have 10 characters";
				}
			}

		}
		if (e.name == "issue") {
			if (e.value == 0) {
				errors += "Please select an issue";
			}
		}
	}
	// continues the form submission process if there are no errors
	// Checks that an Issue has been selected from the issue select list in this specific example

	if (!empty_fields && !errors) {
		if (document.jamestown.name == "jamestown") {
			return verifyIssue(this);
		} else {
			return true;
		}
	}
	
	// alerts the user if there are any errors in their form
	msg  = "______________________________________________________\n\n"
	msg += "The form was not submitted because of the following error(s).\n";
	msg += "Please correct these error(s) and re-submit.\n";
	msg += "______________________________________________________\n\n";
	
	if (empty_fields) {
		msg += "- The following required field(s) are empty:" + empty_fields + "\n";
		if (errors) msg += "\n";
	}
	msg += errors;
	alert(msg);
	return false;
}

