var validChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
var toggled = false;

if ( document.all )
{ document.write('<link type="text/css" rel="stylesheet" href="CSS/JournalStyleIE_new.css"/>'); }
else
{ document.write('<link type="text/css" rel="stylesheet" href="CSS/JournalStyleNS_new.css"/>'); }

function spaceTrim (inString)
{ //this uses regular expression, which should be faster?
	var r = inString;
	if (r.length > 0)
	{
		r = r.replace (/\s+/g, " ");
		r = r.replace (/^\s/, "");
		r = r.replace (/\s$/, "");
	}
	return (r);
}

function validate ()
{
	if (arguments.length % 2 == 0)
	{
		var pos = 0;
		while (pos < arguments.length)
		{
			arguments[pos].value = spaceTrim (arguments[pos].value);
			if (arguments[pos].value.length == 0)
			{
				alert (arguments[pos + 1]);
				arguments[pos].focus ();
				arguments[pos].select ();
				return (false);
			}
			pos += 2;
		}
	}
	else
	{
		alert ("No. of arguments is not even (" + arguments.length + ").");
		return false;
	}
	
	return true;
}

function checkUserName (userName, pw1, pw2, email)
{
	userName.value = spaceTrim (userName.value);
	if (userName.value.length == 0)
	{
		alert ("Please enter a user name.");
		userName.focus ();
		userName.select ();
		return (false);
	}
	else
	{
		var t = (userName.value).toUpperCase ();

		var i = 1;
		if (validChars.substring (0, 26).indexOf (t.charAt (0)) == -1)
		{
			alert ("User name must start with an alphabet.");
			userName.focus ();
			userName.select ();
			return false;
		}
		while (i < t.length)
		{
			if (validChars.indexOf (t.charAt (i)) == -1)
			{
				alert ("\"" + t.charAt (i) + "\" is not a valid char.");
				userName.focus ();
				userName.select ();
				return false;
			}
			i++;
		}
	}
	
	if (pw1 && pw2 && (pw1.value != pw2.value))
	{
		alert ("The passwords are different.\nPlease reenter them.");
		pw1.value = "";
		pw2.value = "";
		pw1.focus ();
		return (false);
	}
	
	return true;
}

function checkYear (yearField)
{
	var v = yearField.value;
	if (!v.match ("^\-?[0-9]+$"))
	{
		alert ("Year must be all digits.");
		yearField.focus ();
		yearField.select ();
		return false;
	}
	return true;
}

//function checkFields (fields, from, rangeFromYear, rangeToYear)
function checkFields (fields, promptStr, jn, journalName, dbIDs)
{
	// 2-27-03 The following code is to differentiate between CSV and text
	if(document.searchForm.dFormat[2].checked) document.searchForm.isCSV.value = "true"; 		

	// Add 8-30
	// if(document.searchForm.dFormat[0].checked)
	//{ document.searchForm.dFormatEmail.value = document.searchForm.dFormat[0].value;
	// } 
	// else {document.searchForm.dFormatEmail.value = document.searchForm.dFormat[1].value; } 

	// Add 8-26
	if(dbIDs[0].selected)
	{ 
		alert("Please select a database."); 
		return false; 
	} 

	var fieldsSelected=0;
	var yearLimit = '';
	var pro = (fields.type == 'select-multiple') ? "selected" : "checked";
	
	for (i = fields.length - 1; i >= 0; i--)
	{
		if (eval ("fields[i]." + pro) == true)
		{
			fieldsSelected++;
		}
	}
	
	if (0 == fieldsSelected)
	{
		alert (promptStr);
		return false;
	}
	
	if (journalName)
	{
		journalName.value = spaceTrim (journalName.value);
	}
	
	if(jn)
	{ 
		journalName.value = spaceTrim(jn.value.replace(/&/g, "&amp;")); 	
	}
	
	if (dbIDs)
	{	

		if ('select-multiple' == dbIDs.type && dbIDs[1].selected)
		{ // select all other dbs and disselect ALL
			for (var i = dbIDs.length - 1; i >= 0; i--)
			{
				dbIDs[i].selected = true;
       
			}
			dbIDs[0].selected = false;
      
      //delete the following two lines once RGR is fixes
      //dbIDs[1].selected = false; 
			//dbIDs[18].selected = false; 
		}
	}
	
	/* not use any more
	// get the year limit
	for (i = from.length - 1; i >= 0; i--)
	{
		if (from[i].checked)
		{
			yearLimit = from[i].value;
		}
	}
	
	if ("range" == yearLimit)
	{ // check the year range
		if (!validate (rangeFromYear, 'Please enter a start year.') ||
				!validate (rangeToYear, 'Please enter the end year.') ||
				!checkYear (rangeFromYear) ||
				!checkYear (rangeToYear)
			)
		{
			return false;
		}

		if (rangeToYear.value < rangeFromYear.value)
		{
			var t = rangeToYear.value;
			rangeToYear.value = rangeFromYear.value;
			rangeFromYear.value = t;
		}
	}
	*/
	
/*** hbj 10-24-05
	// Add 9-09	
	
	var jname = document.searchForm.jn.value; 
  // alert("jname is: " + jname); 
  if(jname == "Core Journals" || jname == "core journals"){
			// alert("Limit to is: " + document.searchForm.limitTo[0].value); 
			document.searchForm.limitTo[0].checked = true; 			
			document.searchForm.limitTo[0].value = "core"; 
			document.searchForm.limitTo[1].checked = false;  
			document.searchForm.jName.value = ""; 
			// alert("Changes have been made."); 		 	
	} 
	
	if(jname == "Scanned Journals" || jname == "scanned journals"){
			// alert("Limit to is: " + document.searchForm.limitTo[0].value); 
			document.searchForm.limitTo[0].checked = true;
			document.searchForm.limitTo[0].value = "scjind"; 
			document.searchForm.limitTo[1].checked = false;  
			document.searchForm.jName.value = ""; 
			// alert("Changes have been made."); 		 	
	} 
 hbj 10-24-05 ****/  	  
	return true;
}

function toggleCB (toggleButton)
{
	var objs = toggleButton.form.elements;
	toggleButton.value = toggled ? "Select all" : "Unselect all";
	
	toggled = !toggled;
	
	for (var k = objs.length - 1; k >= 0; k--)
	{
		if (objs[k].type == "checkbox")
		{
			objs[k].checked = toggled;
		}
	}
}

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];}
}
