function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;

  // kill the timer
  if (_timer) clearInterval(_timer);

  // do stuff
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
  document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
  document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
  var script = document.getElementById("__ie_onload");
  script.onreadystatechange = function() {
    if (this.readyState == "complete") {
      init(); // call the onload handler
    }
  };
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
  var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      init(); // call the onload handler
    }
  }, 10);
}

/* for other browsers */
window.onload = init;

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

function addUnloadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
		window.onunload = func;
	} else {
		window.onunload = function() {
			oldonunload();
			func();
		}
	}
}

function suckerfish(type, tag, parentId) {
	if (window.attachEvent) {
		window.attachEvent("onload", function() {
			var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
			type(sfEls);
		});
	}
}

sfHover = function(sfEls) {
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

function showhide(id) {
	var elementStyle = document.getElementById(id).style.display;
	if (elementStyle == 'none') {
		document.getElementById(id).style.display = 'block';
		document.getElementById('showlink').innerHTML = 'hide';
		document.getElementById('showimage').src = 'http://www.sciencedaily.com/images/up.gif';
	} else if (elementStyle == 'block') {
		document.getElementById(id).style.display = 'none';
		document.getElementById('showlink').innerHTML = 'show';
		document.getElementById('showimage').src = 'http://www.sciencedaily.com/images/down.gif';
	}
}

function printpage() {
	var options = "scrollbars,resizable"; 
	var url = '', top = '', text = '', bottom = '', seealso = '', googletop = '', googlebottom = '', googleend = '', googleside = '', googlesearch = '';
		url += document.location.href.replace(/#.*$/,'');
		if (url.length > 50) {
			urlarray = url.split('http://www.sciencedaily.com/');
			url = '';
			for (var i=0; i<urlarray.length; i++) {
				if ((url + '/' + urlarray[i]).length > 50) {
					url += '/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + urlarray[i];
				} else {
					url += '/' + urlarray[i];
				}
			}
			url = url.substring(1);
			url = url.replace('<br>','<br />');
		}
		top += '<table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>' + "\n";
		top += '<td valign="top"><img src="/images/logo-print.gif" width="275" height="90"></td>' + "\n";
		top += '<td valign="middle" align="left"><em>Web address:</em><br /><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + url + '</strong></td>' + "\n";
		top += '<td valign="middle" align="right" id="printbutton"><input type=button value="Print this page" onClick="window.print()"></td>' + "\n";
		top += '</tr></table>' + "\n";
		text += '<div id="wrapper">' + "\n";
		if (document.getElementById('story')) {
			text += '<h1>' + document.getElementsByTagName('h1')[1].innerHTML + '</h1>' + "\n";
			if (document.getElementById('photo')) {
				text += '<div style="float: right; width: 300px; margin: 0 0 20px 20px">' + "\n";
				text += document.getElementById('photo').innerHTML;
				text += '</div>' + "\n";
			}
			text += '<div>';
			text += document.getElementById('story').innerHTML;
		} else {
			if (document.getElementById('title')) {
				text += '<div id="title">' + document.getElementById('title').innerHTML + '</div>' + "\n";
				text = text.replace(document.getElementById('titleside').innerHTML,'');
				text += '<div style="clear: both"></div>' + "\n";
			}
			text += '<div id="content">';
			text += document.getElementById('content').innerHTML;
		}
		if (document.getElementById('seealso')) {
			seealso += document.getElementById('seealso').innerHTML;
		}
		if (document.getElementById('googletop')) {
			googletop += document.getElementById('googletop').innerHTML;
		}
		if (document.getElementById('googleend')) {
			googleend += document.getElementById('googleend').innerHTML;
		}
		if (document.getElementById('googlebottom')) {
			googlebottom += document.getElementById('googlebottom').innerHTML;
		}
		if (document.getElementById('googleside')) {
			googleside += document.getElementById('googleside').innerHTML;
		}
		if (document.getElementById('googlesearch')) {
			googlesearch += document.getElementById('googlesearch').innerHTML;
		}
		text += '</div>' + "\n";
		text += '<div style="clear: both"></div>' + "\n";
		text += '</div>' + "\n";
		text = text.replace(seealso,'');
		text = text.replace(googletop,'');
		text = text.replace(googlebottom,'');
		text = text.replace(googleend,'');
		text = text.replace(googleside,'');
		text = text.replace(googlesearch,'');
		text = text.replace(/<scr\ipt[^>]*?>[.\s\S]*?<\/scr\ipt>/gi,'');
	var winprint = window.open("","",options);
		winprint.document.open();
		winprint.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' + "\n");
		winprint.document.write('<html>' + "\n");
		winprint.document.write('<head>' + "\n");
		if (document.getElementById('story')) {
			winprint.document.write('<style type="text/css">@media print { #printbutton {display: none;} }</style>' + "\n");
		} else {
			winprint.document.write('<link href="/styles/print.css" rel="stylesheet" type="text/css" />' + "\n");
			winprint.document.write('<style type="text/css">@media print { #printbutton {display: none;} }</style>' + "\n");
		}
		winprint.document.write('</head>' + "\n");
		winprint.document.write('<body>' + "\n");
		winprint.document.write(top + "\n" + text + "\n" + bottom + "\n");
		winprint.document.write('</body></html>' + "\n"); 
		winprint.document.close();
}

/*
function emailpage() {
	var recipient = prompt("Recipient's email address:","");
	if (recipient == null) {
		alert("You must enter an email address.")
	} else {
		var subject = document.title;
		var url = document.location.href;
		var body = "Please see the following page ...\n\n" + "Title:   " + subject + "\n" + "Link:    " + url + "\n";
		var message = "mailto:" + recipient + "?subject=" + escape(subject) + "&body=" + escape(body);
		window.location = message;
		window.focus();
	}
}
*/

function bookmarkpage() {
	var url = document.location.href;
	var title = document.title;
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
		window.external.AddFavorite(url,title);
	} else if (navigator.appName == "Netscape") {
		window.sidebar.addPanel(title,url,"");
	} else {
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}
}

function sharepage() {
	var form = document.getElementById('share_form');
	
	if (form.style.display == 'block') {
		form.style.display = 'none';
		return;
	}
	
	var url = escape(document.location.href);
	var title = escape(document.title);
	var link = document.getElementById('share_link');

	document.getElementById("share_delicious").href = share_url("http://del.icio.us/post?url={url}&amp;title={title}", url, title);
	document.getElementById("share_digg").href = share_url("http://digg.com/submit?phase=2&amp;url={url}&amp;title={title}", url, title);
	document.getElementById("share_furl").href = share_url("http://furl.net/storeIt.jsp?u={url}&amp;t={title}", url, title);
	document.getElementById("share_netscape").href = share_url("http://www.netscape.com/submit/?U={url}&amp;T={title}", url, title);
	document.getElementById("share_yahoo_myweb").href = share_url("http://myweb2.search.yahoo.com/myresults/bookmarklet?u={url}&amp;t={title}", url, title);
	document.getElementById("share_stumbleupon").href = share_url("http://www.stumbleupon.com/submit?url={url}&amp;title={title}", url, title);
	document.getElementById("share_google_bmarks").href = share_url("http://www.google.com/bookmarks/mark?op=edit&amp;bkmk={url}&amp;title={title}", url, title);
	document.getElementById("share_technorati").href = share_url("http://www.technorati.com/faves?add={url}", url, title);
	document.getElementById("share_blinklist").href = share_url("http://blinklist.com/index.php?Action=Blink/addblink.php&amp;Url={url}&amp;Title={title}", url, title);
	document.getElementById("share_newsvine").href = share_url("http://www.newsvine.com/_tools/seed&amp;save?popoff=0&amp;u={url}&amp;h={title}", url, title);
	document.getElementById("share_magnolia").href = share_url("http://ma.gnolia.com/bookmarklet/add?url={url}&amp;title={title}", url, title);
	document.getElementById("share_reddit").href = share_url("http://reddit.com/submit?url={url}&amp;title={title}", url, title);
	document.getElementById("share_facebook").href = share_url("http://www.facebook.com/share.php?u={url}", url, title);
	document.getElementById("share_tailrank").href = share_url("http://tailrank.com/share/?link_href={url}&amp;title={title}", url, title);
	document.getElementById("share_slashdot").href = share_url("http://slashdot.org/bookmark.pl?url={url}&amp;title={title}", url, title);
	document.getElementById("share_fark").href = share_url("http://cgi.fark.com/cgi/fark/edit.pl?new_url={url}&amp;new_comment={title}", url, title);

	var offset = Position.cumulativeOffset(link);
	form.style.left = (offset[0] - 20) + 'px';
	form.style.top = (offset[1] + link.offsetHeight + 3) + 'px';
	form.style.display = 'block';
}

function share_url(base, url, title) {
	base = base.replace('{url}', url);
	return base.replace('{title}', title);
}

function blogpage() {
	var form = document.getElementById('blog_form');
	
	if (form.style.display == 'block') {
		form.style.display = 'none';
		return;
	}

	var title = document.getElementById('blog_headline');
	var link = document.getElementById('blog_url');
	if (document.getElementById('metadate')) {
		var metadate = document.getElementById('metadate').content;
	} else {
		var metadate = '';
	}
	var summary = document.getElementById('blog_summary');
	title.value = document.title;
	link.value = document.location.href;
	if (typeof summary.innerText != 'undefined') {
		summary.innerText = 'ScienceDaily (' + metadate + ') -- ' + document.getElementById('metasummary').content;
	} else if (typeof summary.textContent != 'undefined') {
		summary.textContent = 'ScienceDaily (' + metadate + ') -- ' + document.getElementById('metasummary').content;
	}

	var link = document.getElementById('blog_link');

	var offset = Position.cumulativeOffset(link);
	form.style.left = (offset[0] - 170) + 'px';
	form.style.top = (offset[1] + link.offsetHeight + 3) + 'px';
	form.style.display = 'block';
}

function copyit() {
	var title = document.getElementById('blog_headline').value;
	var link = document.getElementById('blog_url').value;
	var metadate = document.getElementById('metadate').content;
	var summary = document.getElementById('blog_summary');
	if (typeof summary.innerText != 'undefined') {
		summary = summary.innerText;
	} else if (typeof summary.textContent != 'undefined') {
		summary = summary.textContent;
	} else {
		summary = '';
	}
	var text = '<p><strong><a href="' + link + '">' + title + '</a></strong><br />' + "\n" + summary + ' ... <em>&gt; <a href="' + link + '">read full article</a></em></p>';
	copy_clip(text,text);
}

function citepage() {
	var form = document.getElementById('cite_form');
	
	if (form.style.display == 'block') {
		form.style.display = 'none';
		return;
	}

	var metadate = document.getElementById('metadate').content;
	var source = document.getElementById('source').innerHTML;
	var title = document.title;
	var link = document.location.href;

	var cite_apa = document.getElementById('cite_apa');
	var cite_mla = document.getElementById('cite_mla');
	var meta = new Date(getDateFromFormat(metadate,'y-MM-dd'));
	var today = new Date();
	var apa = '<p>' + source + ' (' + formatDate(meta,'y, MMM d') + '). ' + title + '. <em>ScienceDaily</em>. Retrieved ' + formatDate(today,'MMM d, y') + ', from ' + link + '</p>';
	var mla = '<p>' + source + '. "' + title + '." <u>ScienceDaily</u> ' + formatDate(meta,'d MMM y') + '. ' + formatDate(today,'d MMM y') + ' &lt;' + link + '&gt;.' + '</p>';
	cite_apa.innerHTML = apa;
	cite_mla.innerHTML = mla;

	var link = document.getElementById('cite_link');

	var offset = Position.cumulativeOffset(link);
	form.style.left = (offset[0] - 170) + 'px';
	form.style.top = (offset[1] + link.offsetHeight + 3) + 'px';
	form.style.display = 'block';
}

function citeit() {
	if (document.getElementById('cite_style_apa').checked) {
		html = document.getElementById('cite_apa').innerHTML;
	} else {
		html = document.getElementById('cite_mla').innerHTML;
	}
	plain = html.replace(/<[^>]+>/ig,"");
	plain = plain.replace("&lt;","<");
	plain = plain.replace("&gt;",">");
	copy_clip(html,plain);
}

function citation() {
	var metadate = document.getElementById('metadate').content;
	var source = document.getElementById('source').innerHTML;
	var title = document.title;
	var link = document.location.href;
	var citationapa = document.getElementById('citationapa');
	var citationmla = document.getElementById('citationmla');
	var citationtext = document.getElementById('citationtext');
	link = link.replace('http://www.sciencedaily.com/releases/','&shy;<span style="font-size: 1px"> </span>/releases/');
	var meta = new Date(getDateFromFormat(metadate,'y-MM-dd'));
	var today = new Date();
	var apa = source + ' (' + formatDate(meta,'y, MMM d') + '). ' + title + '. <em>ScienceDaily</em>. Retrieved ' + formatDate(today,'MMM d, y') + ', from ' + link;
	var mla = source + '. "' + title + '." <u>ScienceDaily</u> ' + formatDate(meta,'d MMM y') + '. ' + formatDate(today,'d MMM y') + ' &lt;' + link + '&gt;.';
	if (citationapa.checked) {
		citationtext.innerHTML = apa;
	} else {
		citationtext.innerHTML = mla;
	}
}

function copy_clip(html,plain) {
	var textHTML = html;
	var textPlain = plain;
	if (window.clipboardData && window.clipboardData.setData) {
		window.clipboardData.setData("Text", textPlain);
	} else if (window.netscape) {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
		if (!trans) return false;
		trans.addDataFlavor("text/html");
		var htmlstring = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		if (!htmlstring) return false;
		htmlstring.data = textHTML;
		trans.setTransferData("text/html", htmlstring, textHTML.length * 2);
		trans.addDataFlavor("text/unicode");
		var unicodestring = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
		unicodestring.data = textPlain;
		trans.setTransferData("text/unicode", unicodestring, textPlain.length * 2);
		var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
		if (!clipboard) return false;
		clipboard.setData(trans, null, Components.interfaces.nsIClipboard.kGlobalClipboard);
	} else {
		alert("Your browser does not support automatic copying to the clipboard. Please select the text and copy it manually (e.g., Ctrl-C).");
		return false;
	}
	alert("The following was copied to your clipboard:\n\n" + textPlain);
	return false;
}

function emailpage() {
	var form = document.getElementById('email_form');
	
	if (form.style.display == 'block') {
		form.style.display = 'none';
		return;
	}

	var link = document.getElementById('email_link');

	var offset = Position.cumulativeOffset(link);
	form.style.left = (offset[0] - 170) + 'px';
	form.style.top = (offset[1] + link.offsetHeight + 3) + 'px';
	form.style.display = 'block';
}

function getxmlhttp() {
	var xmlhttp = false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch(E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function email_process() {
	email_obj = document.getElementById('email_fields');
	emailHTML = email_obj.innerHTML;
	var emailer = 'http://www.sciencedaily.com/emailer.php';
	var url = document.location.href;
	var title = document.title;
	var summary = document.getElementById('metasummary').content;
	var to_address = document.getElementById('email_to').value;
	var from_address = document.getElementById('email_from').value;
	var from_name = document.getElementById('email_name').value;
	var email_self = (document.getElementById('email_self').checked == true)?1:0;
	var variables = 'url=' + escape(url) + '&title=' + escape(title) + '&summary=' + escape(summary) + '&to=' + escape(to_address) + '&from=' + escape(from_address) + '&name=' + escape(from_name) + '&self=' + email_self;
	xmlhttp = getxmlhttp();
	xmlhttp.open("POST", emailer, true);
	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	xmlhttp.onreadystatechange = email_change;
	xmlhttp.send(variables);
}

function email_change() {
	if (xmlhttp.readyState==4) {
		if (xmlhttp.status==200) {
			email_obj.innerHTML = xmlhttp.responseText;
			setTimeout('email_obj.innerHTML = emailHTML',2999);
		} else {
			email_obj.innerHTML = 'A problem was encountered -- email not sent.';
			setTimeout('email_obj.innerHTML = emailHTML',2999);
		}
	} else {
		email_obj.innerHTML = 'Sending ...';
	}
}

function feedback() {
	var form = document.getElementById('feedback_form');
	feedback_obj = document.getElementById('feedback_response');
	var feedbacker = 'http://www.sciencedaily.com/feedback.php';
	var url = document.location.href;
	var title = document.title;
	var email = document.getElementById('feedback_email').value;
	var name = document.getElementById('feedback_name').value;
	var comments = document.getElementById('feedback_comments').value;
	var useragent = navigator.userAgent;
	var variables = 'url=' + escape(url) + '&title=' + escape(title) + '&from=' + escape(email) + '&name=' + escape(name) + '&comments=' + escape(comments) + '&useragent=' + escape(useragent);
	xmlhttp = getxmlhttp();
	xmlhttp.open("POST", feedbacker, true);
	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
	xmlhttp.onreadystatechange = feedback_change;
	xmlhttp.send(variables);
}

function feedback_change() {
	if (xmlhttp.readyState==4) {
		if (xmlhttp.status==200) {
			feedback_obj.innerHTML = xmlhttp.responseText;
		} else {
			feedback_obj.innerHTML = 'Problem encountered -- feedback not sent.';
		}
	} else {
		feedback_obj.innerHTML = 'Sending ...';
	}
}

function redirect(arg) {
	url = arg.replace(/^http[^?]*?\?url=/,'');
//	alert(url);
	location = url;
}

function gotostory(num) {
	for (var i=1; i<=stories.length; i++) {
		if (i == num) {
			document.getElementById('story'+i).style.display = 'block'
		} else {
			document.getElementById('story'+i).style.display = 'none';
		}
	}
}

var currentPanel = 1;
function changepanel(change) {
	currentPanel += change;
	if (currentPanel < 1) {
		currentPanel = 1;
	} else if (currentPanel > panels.length) {
		currentPanel = panels.length;
	}
	for (var i=1; i<=panels.length; i++) {
		if (i == currentPanel) {
			document.getElementById('panel'+i).style.display = 'block'
			document.getElementById('edition').innerHTML = document.getElementById('edition' + i).innerHTML;
		} else {
			document.getElementById('panel'+i).style.display = 'none';
		}
	}
}

function setActiveStyleSheet(title) {
	var i, a, main;
	for (i=0; (a=document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 
		&& a.getAttribute("title")) {
			a.disabled = true;
			if (a.getAttribute("title") == title) a.disabled = false;
		}
	}
}

function getActiveStyleSheet() {
	var i, a;
	for (i=0; (a=document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 
		&& a.getAttribute("title") 
		&& !a.disabled) 
			return a.getAttribute("title");
	}
	return null;
}

function getPreferredStyleSheet() {
	var i, a;
	for (i=0; (a=document.getElementsByTagName("link")[i]); i++) {
		if (a.getAttribute("rel").indexOf("style") != -1 
		&& a.getAttribute("rel").indexOf("alt") == -1 
		&& a.getAttribute("title")) 
			return a.getAttribute("title");
	}
	return null;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime() + (days*24*60*60*1000));
		var expires = "; expires=" + date.toGMTString();
	} else expires = "";
	document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i=0; i<ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ)==0)
			return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// Take content in a div with id="defer-xyz" and move it to a div with id="xyz"
function relocateDeferredContent() {
    var dc=document.getElementById("deferredContent");
    var divs=dc.getElementsByTagName("div");
    var replacements=new Array();
    for(var i=0;i<divs.length;i++){
        var deferredContent = divs[i];
        if (deferredContent.id.indexOf("defer-") == 0) {
            var placeHolder = document.getElementById(deferredContent.id.slice(6));
            replacements.push([deferredContent, placeHolder]);
        }
    }
    for(i=0;i<replacements.length;i++){
        replacements[i][0].parentNode.removeChild(replacements[i][0]);
        replacements[i][1].parentNode.replaceChild(replacements[i][0], replacements[i][1]);
        replacements[i][0].style.display = "block";
    }
    return true;
}

var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x) {return(x<0||x>9?"":"0")+x}

function isDate(val,format) {
	var date=getDateFromFormat(val,format);
	if (date==0) { return false; }
	return true;
	}

function compareDates(date1,dateformat1,date2,dateformat2) {
	var d1=getDateFromFormat(date1,dateformat1);
	var d2=getDateFromFormat(date2,dateformat2);
	if (d1==0 || d2==0) {
		return -1;
		}
	else if (d1 > d2) {
		return 1;
		}
	return 0;
	}

function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
		}
	return result;
	}
	
function _isInteger(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
	}
	
function getDateFromFormat(val,format) {
	val=val+"";
	format=format+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm="";
	
	while (i_format < format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=_getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"||token=="NNN"){
			month=0;
			for (var i=0; i<MONTH_NAMES.length; i++) {
				var month_name=MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=="MMM"||(token=="NNN"&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="EE"||token=="E"){
			for (var i=0; i<DAY_NAMES.length; i++) {
				var day_name=DAY_NAMES[i];
				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}

function parseDate(val) {
	var preferEuro=(arguments.length==2)?arguments[1]:false;
	generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d');
	monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d');
	dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M');
	var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst');
	var d=null;
	for (var i=0; i<checkList.length; i++) {
		var l=window[checkList[i]];
		for (var j=0; j<l.length; j++) {
			d=getDateFromFormat(val,l[j]);
			if (d!=0) { return new Date(d); }
			}
		}
	return null;
	}

function typeScroller() {
	if (typeInt == 0) {
		totalInt = 1;
	} else {
		totalInt++;
		if (totalInt > 24) return;
	}
	typeInt++;
	if (typeInt > 8) {
		typeInt = 1;
	}
	displayText = document.getElementById("justin" + typeInt).innerHTML;
	strippedText = displayText.replace(/<[^>]*>/g,'');
	if (strippedText.length > 47) {
		truncatedText = strippedText.substring(0,44);
		lastspace = truncatedText.lastIndexOf(' ');
		truncatedText = truncatedText.substring(0,lastspace);
		displayText = displayText.substring(0,displayText.indexOf('>')+1) + truncatedText + ' ...</a>';
	}
	document.getElementById("justindisplay").innerHTML = displayText;
	setTimeout('typeScroller()',5000);
}

addLoadEvent(function() {
	suckerfish(sfHover, "LI", "nav");
});

addLoadEvent(function() {
	suckerfish(sfHover, "LI", "sectiontabs");
});

/*
addLoadEvent(function() {
	var cookie = readCookie("style");
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
});

addUnloadEvent(function() {
	var title = getActiveStyleSheet();
	createCookie("style",title,365);
});

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);
*/

addLoadEvent(function() {
	var excludedomains=["localhost", "127.0.0.1", "sciencedaily", "local.sciencedaily", "www.sciencedaily.com", "www.sciencedaily.net", "new.sciencedaily.com", "www.sciencedaily.org", "sciencedaily.com", "sciencedaily.net", "sciencedaily.org", "healthology.sciencedaily.com", "sciencedaily.healthology.com", "mediwire.sciencedaily.com", "sciencedaily.mediwire.com", "healthcare.careerbuilder.com", "sciencebiotech.careerbuilder.com", "engineering.careerbuilder.com", "informationtechnology.careerbuilder.com", "www.careerbuilder.com"];
	var excludedomains = excludedomains.join("|");
	rexcludedomains = new RegExp(excludedomains, "i");
	for (i=0; i<=(document.links.length-1); i++) {
		if (document.links[i].hostname.search(rexcludedomains)==-1 && document.links[i].href.indexOf("http://www.sciencedaily.com/news/matter_energy/physics/")!=-1 && document.links[i].rel.indexOf("thumbnail")==-1) {
			document.links[i].target="_blank";
		}
		if (document.links[i].href.indexOf("http://www.sciencedaily.com/goto.php")!=-1) {
			document.links[i].onclick=new Function("redirect(this.href); return false;");
		}
	}
});


