/* 
JavaScript Document for CCDB
Author: James Nicol, Glossopteris Web Designs, www.glossopteris.com. July 2006
*/

/*----- Behaviour Registers to assign actions to page elements on load -----*/
var ccdb_rules = {

	'#boli_logo' : function (el) {
		el.onclick = function() { window.location = ('http://barcoding.si.edu'); }
	},
	'.page_links' : function(el) {
		el.onclick = function() { page_scroll(el); return false; }
	},
	'#calendar p a' : function(el) {
		el.onclick = function() { ajax_calendar(el); return false; }
	}
}

Behaviour.register(ccdb_rules);

/*----- Sons Of Suckerfish Dropdown (applying sfhover class to IE) -----*/
sfHover = function() 
{
	var sfEls = document.getElementById("top_nav").getElementsByTagName("LI");
	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"), ""); }
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

/*----- Some Scriptaculous effects -----*/
function page_scroll(el)
{
	var ref = el.href.split('#');
	new Effect.ScrollTo(ref[1]);
}

/*----- Code for Inserting pngs into IE (sigh.....) 
var objMyImg = null;

function opacity_fix() 
{
	objMyImg = new OpacityObject('boli_logo',domainroot+'images/boli_images/boli_corner_logo');
	objMyImg.setBackground();
}

Behaviour.addLoadEvent(opacity_fix);
-----*/

/*----- AJAX Calendar -----*/
function ajax_calendar(el) 
{
	var url = siteroot + 'ajax/calendar';
	var links = el.href.split('/');
	var date = links[links.length-1];
	date = date.split('_');
	var pars = 'year=' + date[0] + '&month=' + date[1];
	
	var div_height = Element.getHeight('cal_div') - 14;
	$('cal_div').innerHTML = '<table width="100%" height="' + div_height + 'px"><tr align="center"><td valign="middle"><img src="' + domainroot + 'images/indicator_medium.gif" /></td></tr></table>';

	new Ajax.Updater('calendar', url, {
			  method:'post',
			  parameters:pars,
              onSuccess: function() {
					Element.setOpacity('calendar', 0.0); //Fade out calendar
					Effect.Appear('calendar', { duration: 2.0 }); //Fade in calendar
              }
        }
  	);
	
}


