
function na_restore_img_src(name, nsdoc) {
	var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
	if (name == '')
	    return;
	if (img && img.altsrc) {
		img.src    = img.altsrc;
		img.altsrc = null;
	}
}

function na_preload_img() { 
	var img_list = na_preload_img.arguments;
  
	if (document.preloadlist == null) 
		document.preloadlist = new Array();
	var top = document.preloadlist.length;
  
	for (var i=0; i < img_list.length; i++) {
		document.preloadlist[top+i]     = new Image;
		document.preloadlist[top+i].src = img_list[i+1];
	} 
}

function na_change_img_src(name, nsdoc, rpath, preload) { 
	var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
	if (name == '')
    return;

	if (img) {
		img.altsrc = img.src;
		img.src    = rpath;
	} 
}

function dateCheck(date) {
	var filter = "/^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]/";
	return filter.test(date);
}

function checkMail(email) {
	var filter  = "/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/";
	return filter.test(email);
}

function emailCheck (emailStr) {

	var emailPat="/^(.+)@(.+)$/";
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat="/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/";
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	//if (matchArray==null) {
	  /* Too many/few @'s or something; basically, this address doesn't
		 even fit the general mould of a valid e-mail address. */
	 /*	alert("Email address seems incorrect (check @ and .'s)");
		return false;
	} */
	var user=matchArray[1];
	var domain=matchArray[2];

	// See if "user" is valid 
	if (user.match(userPat)==null) {
		// user is not valid
		alert("The username doesn't seem to be valid.");
		return false;
	}

	/* if the e-mail address is at an IP address (as opposed to a symbolic
	   host name) make sure the IP address is valid. */
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		// this is an IP address
		  for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Destination IP address is invalid!");
			return false;
			}
		}
		return true;
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("Please enter a valid domain name.");
		return false;
	}

	/* domain name seems valid, but now make sure that it ends in a
	   three-letter word (like com, edu, gov) or a two-letter word,
	   representing country (uk, nl), and that there's a hostname preceding 
	   the domain or country. */

	/* Now we need to break up the domain to get a count of how many atoms
	   it consists of. */
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
	   // the address must end in a two letter or three letter word.
	   alert("The address must end in a three-letter domain, or two letter country.");
	   return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len < 2) {
	   var errStr="This address is missing a hostname!";
	   alert(errStr);
	   return false;
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function setCheckboxes(the_form, do_check) {
	var elts      = (typeof(document.forms[the_form].elements['isOk[]']) != 'undefined')
				  ? document.forms[the_form].elements['isOk[]']
				  : document.forms[the_form].elements['selected_tbl[]'];
	var elts_cnt  = (typeof(elts.length) != 'undefined')
				  ? elts.length
				  : 0;

	if (elts_cnt) {
		for (var i = 0; i < elts_cnt; i++) {
			elts[i].checked = do_check;
		}
	} else {
		elts.checked        = do_check;
	}

	return true;
}
function Fullscreen(url) {
	window.open(url,"DHFS","fullscreen=1");
}
function confirm_delete(){
	if(confirm('Are you sure you want to delete these entries?')){
		return true;
	}else{
		return false;
	}
}

function confirmation(msg){
	if(confirm(msg)){
		return true;
	}else{
		return false;
	}
}

function MM_preloadImages() {
	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_swapImgRestore() {
	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_findObj(n, d) {
	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 && d.getElementById) 
		x=d.getElementById(n); 
	return x;
}

function MM_swapImage() {
	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 MM_jumpMenu(targ,selObj,restore){ 
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) 
		selObj.selectedIndex=0;
}

function RWindow(TITLE, BODY, CONTACT_NAME, CONTACT_EMAIL_URL, DATE) { 
	var notice_link = 'library/notice.php?TITLE='+TITLE+'&BODY='+BODY+'&CONTACT_NAME='+CONTACT_NAME+'&CONTACT_EMAIL_URL='+CONTACT_EMAIL_URL+'&DATE='+DATE;
	window.open(notice_link,'win','width=500, height=380, scrollbars=yes,resizable=1,status=no,menubar=0');
} 
function SWindow(URL,WD,HT) { 
	var specs = 'width='+WD+', height='+HT+', scrollbars=no,resizable=1,status=no,menubar=0';
	window.open(URL,'counter',specs); 
} 
function SSWindow(URL,WD,HT) { 
	var specs = 'width='+WD+', height='+HT+', scrollbars=yes,resizable=no,status=no,menubar=0';
	window.open(URL,'counter',specs); 
}



function toggleAll(obj) {



	if (obj.closed) {



		for ( var i = 0; i < obj.subtoggles.length; i++ ) {



		  tgl = obj.subtoggles[i].hs.parent;



			killClass(tgl,"closed"); tgl.closed=false;



			addClass(obj,"closeall");



			obj.closed = false;



		}



	} else {



		for ( var i = 0; i < obj.subtoggles.length; i++ ) {



			tgl = obj.subtoggles[i].hs.parent;



			addClass(tgl,"closed"); tgl.closed=true;



			killClass(obj,"closeall");



			obj.closed = true;



		}



	}



}







 function updateStatus() {



 	if(typeof(mtoggles) != "undefined") {



		for ( var i = 0; i < mtoggles.length; i++ ) {



			var numClosed = 0;



			var numOpen = 0;



			stoggles = mtoggles[i].a.subtoggles;



			for ( var j = 0; j < stoggles.length; j++ ) {



				if (stoggles[j].closed) numClosed++;



				else numOpen++; 



			}



			if (numClosed == stoggles.length) {



				killClass(mtoggles[i].a,"closeall");



				mtoggles[i].a.closed = true;



			} else if (numOpen == stoggles.length) { 



				addClass(mtoggles[i].a,"closeall");



				mtoggles[i].a.closed = false;



			}



		}



	}



} 







function toggle(obj) {



	tgl = obj.parent;



	if (hasClass(tgl,"closed")) { killClass(tgl,"closed"); tgl.closed=false; }



	else { addClass(tgl,"closed"); tgl.closed = true; }



	updateStatus();



}







function initToggles() {



	toggles = getElementsByClass( "div","tag","toggle","primary" );



	hotspots = getElementsByClass( "a","tag","hotspot","primary" );



	



	for (var i=0; i < toggles.length; i++) {



	  toggles[i].hs = toggles[i].getElementsByTagName('a')[0];



		toggles[i].hs.parent = toggles[i];



		toggle(toggles[i].hs);



		toggles[i].closed = true; 



  	toggles[i].hs.onclick = function() { toggle(this); };



	}



}







function initMToggles() {



	mtoggles = getElementsByClass( "div","tag","mtoggle","primary" );



	



	for (var i=0; i < mtoggles.length; i++) {



		mtoggles[i].a = mtoggles[i].getElementsByTagName('a')[0];



		mtoggles[i].a.subtoggles = getElementsByClass( "div","tag","toggle",mtoggles[i] );



		mtoggles[i].a.closed = true;



		mtoggles[i].a.onclick = function() { toggleAll(this); };



		for (var j=0; j< mtoggles[i].a.subtoggles.length; j++) {



			if (j%2 == 0) mtoggles[i].a.subtoggles[j].style.backgroundColor = evenColor;



			else mtoggles[i].a.subtoggles[j].style.backgroundColor = oddColor;



		}



	}



}







addLoadEvent(initToggles);



addLoadEvent(initMToggles); 





