/*
	Attach DOM Event listeners instead of HTML onclicks
	on page load
*/
	
// load all event listeners
// basically a big window.onload function
loadAll = function(){
	
	Homepage.set_background_image();

	$('lookup').clear();
	$('atoz_lookup').clear();
	
	// directories lookup
	new Form.Element.Observer(
			'lookup', 
			 0.5, 
			 do_lookup
			);

	// attach a to z lookup
	new Form.Element.Observer(
		'atoz_lookup', 
		 0.5,
		 function (e,v) {
			HomepageUtils.attach_script('http://' + Homepage.host + '/homepage/directories/atoz.js?callback=write_a_to_z&title=' + escape(v), 'atoz_script');
		 }

	);

	// attach close actions
	$$('.close_drawer_btn').each(
		function(img){
			Event.observe(img, 'click', Drawer.close);
		}
	)
	

	Tab.prototype.isOn = function(){return this.elem.className == 'tab_on'}
	Tab.prototype.isOff = function(){return (!this.on())}
	Tab.prototype.turnOn = function(){this.elem.className = 'tab_on'}
	Tab.prototype.turnOff = function(){this.elem.className = 'tab_off'}
	
	LookupTabs = {
		// toggle from JS, not event
		internal_toggle : function(elem){
			// people selected

			if (elem == LookupTabs.people.elem){
				LookupTabs.people.turnOn();
				LookupTabs.directories.turnOff();
				$('directory_instructions').update('Name: <i>(e.g. olson, jon)</i>')
			}
			else{
				LookupTabs.people.turnOff();
				LookupTabs.directories.turnOn();
				$('directory_instructions').update('Name: <i>(e.g. Registrar)</i>')
			}
			do_lookup($('lookup'), $F('lookup'))
		},
		
		// method for swapping elements	
		toggle : function(e){
			LookupTabs.internal_toggle(Event.element(e));
		}
	}
	
	LookupTabs.people = new Tab(0)
	LookupTabs.directories = new Tab(1)
	
	// attach directory/people lookup swap code
	$A($('tab_swapper_left').getElementsBySelector('a')).each(
		function(a){ 
			// observe each tab link onclick event with LookupTabs.toggle()
			Event.observe(a, 'click', LookupTabs.toggle.bindAsEventListener(a) ) 
		} );

	
	 
	// attach drawer functions
	var drawer_buttons = $('drawer_buttons')
		// add toggle to each drawer
		Event.observe(drawer_buttons, 'click', Drawer.toggle.bindAsEventListener(drawer_buttons));
		// add hover 
		Event.observe(drawer_buttons, 'mouseover', Drawer.hover.bindAsEventListener(drawer_buttons));
		// add mouse out behavior
		Event.observe(drawer_buttons, 'mouseout', Drawer.stop_hover.bindAsEventListener(drawer_buttons));
	
	

	Drawer.remove_hrefs();

	// attach scripts
	HomepageUtils.attach_script('http://' + Homepage.host + '/homepage/json.js?callback=write_news&feed=http://www.stthomas.edu/news/newsfeed.xml', 'news_json');
	HomepageUtils.attach_script('http://' + Homepage.host + '/homepage/json.js?callback=write_events&feed=http://weblintest.stthomas.edu/rss/evtfeed.xml', 'events_json');
	HomepageUtils.attach_script('http://' + Homepage.host + '/homepage/directories/atoz.js?callback=write_a_to_z', 'atoz_script');

} // end onload

// Prototype idiom for window.onload (big difference is that it 
// adds it to a queue, so you don't have to manage pages 
// that would contain body onload="someFunc()"
Event.observe(window, 'load', loadAll) 