

var markAll = location.search.substr(1);
var checkedColor = '#ffffaa';
var unCheckedColor = '#ffffff';

/*
Respond to user clicks... mark or unmark an item.
*/
function mark(checkItem) {
	if(checkItem.checked) {
		url = '/newacq/marker.php?add[]=' + checkItem.value;
		Ajax(url);
	} else {
		url = '/newacq/marker.php?del[]=' + checkItem.value;
		Ajax(url);
	}
}

function allMarked(checkItem) {
	
	if(checkItem.checked) {
		document.getElementById("markTag").innerHTML = 'unmark this page';
		url = '/newacq/marker.php?mode=all&' + markAll;
		Ajax(url);
	} else {
		document.getElementById("markTag").innerHTML = 'mark this page';
		url = '/newacq/marker.php?mode=none&' + markAll;
		Ajax(url);
	}
}

/*
Update the display of items, changing checked status, background color,
count and links as necessary.  Can accept one item to update (as when
marking or unmarking) or many (as when clearing).
*/
function updateMarked() {

	var args = updateMarked.arguments;
	
	count = args[0];
	mode = args[1];
	
	//alert("Mode: "+mode);
	
	for(i=2; i<args.length; i++) {
	//alert(args[i]);
		if(document.getElementById('p_'+args[i])) {
			document.getElementById('p_'+args[i]).style.background = 
				(mode == 'mark' ? checkedColor : unCheckedColor);
				
			document.getElementById('p_'+args[i]).style.border = 
				(mode == 'mark' ? '1px solid #999' : '1px solid #fff');
		}
		if(document.getElementById('f_'+args[i])) {
			document.getElementById('f_'+args[i]).checked = (mode == 'mark');
			document.getElementById('f_'+args[i]).blur();
			
		}
	}
	showMarkedInfo(count);
}

/*
Keep the count and links current.
*/
function showMarkedInfo(numberMarked) {
	clearLink = '<a href="javascript:clearMarked()" '+
		'onclick="return confirm(\'Are you sure you want to clear all '+
		'of your marked records?\')">clear</a>';
	emailLink = '<a href="javascript:showEmail()">e-mail</a>';
	viewLink = '<a href="?view=marked">view</a>';
	
	document.getElementById("numberMarked").innerHTML = 
		numberMarked + ' item' + (numberMarked == 1 ? '' : 's') + ' marked' +
		(numberMarked > 0 ? '&nbsp;&nbsp;'+viewLink+'&nbsp;&nbsp;'+
			emailLink+'&nbsp;&nbsp;'+clearLink : '');
	
}

/*
Clear all marked records.
*/
function clearMarked() {
	url = '/newacq/marker.php?mode=clear';
	Ajax(url);
}
/*
E-mail marked records to the user.
*/
function showEmail() {
	document.getElementById('emailBox').style.visibility='visible';
	document.getElementById('emailTo').select();
}
function emailMarked() {

	// Accept only Williams e-mail addresses
	var reg = /^\s?("?[\w\s]+"?\s+)?<*[a-zA-Z0-9\-\.]+@williams\.edu>*\s?$/i;
	
	var Fields = new Array('emailTo', 'emailFrom');
	for(j=0; j<Fields.length; j++) {
		
		var email = document.getElementById(Fields[j]).value;
		
		// Put the e-mails into an array
		if(email.indexOf(",") >= 0) {
			Emails = email.split(",");
		} else {
			Emails = new Array(email);
		}
		
		for(i=0; i<Emails.length; i++) {
			var regCheck = reg.exec(Emails[i]);
			if(regCheck == null) {
				alert("'" + Emails[i] + "' is not a valid Williams e-mail address.");
				document.getElementById(Fields[j]).select();
				return false;
			}	
		}
	}

	url = '/newacq/marker.php?mode=email'+
		'&to='+escape(document.getElementById('emailTo').value)+
		'&from='+escape(document.getElementById('emailFrom').value)+
		'&sub='+escape(document.getElementById('emailSubject').value)+
		'&msg='+escape(document.getElementById('emailMessage').value);

	//document.getElementById('emailMessage').value = url;

	Ajax(url);

	document.getElementById('emailBox').style.visibility='hidden';

}

// Show all the currently marked records when the page loads.
Ajax('/newacq/marker.php?mode=update');
