var Site = {
	floatBear: null,
	bearStartPosition: null,
	headTurn: null,
	headTurnChain: null,
	
	start: function(){
		MooTools.lang.setLanguage("en-US");
		
		Site.preloadImages();
		Site.attachPageActions();
		Site.attachCartoonAnimations();

	},
	attachPageActions: function(){

		// Launch-in-new-window links automagically created
		var extLinks = $$('a.external');
		if ( extLinks.length ) {
			extLinks.each(function(elem, idx) { 
				elem.setProperty('target', '_blank');
			});
		}
		
		
		// Safari Suckerfish 'fix'
		if ( navigator.appVersion.toLowerCase().indexOf('safari') != -1 ) {
			$$('#navigation li a').each(function(elem, idx) {
				elem.set('title', '');
			});
		}
		
		if ( $('text_smaller_link') ) {
			$('text_smaller_link').addEvent('click', function() {
				scaleDown();
				return false;
			});
		}
		if ( $('text_bigger_link') ) {
			$('text_bigger_link').addEvent('click', function() {
				scaleUp();
				return false;
			});
		}
		
		// Homepage Feature
		if ( $('home_feature') ) {
			var so = new SWFObject('/swfs/hero.swf','hero-swf','628','245','9');
			so.addParam("wmode","opaque");
			
			var location_parts = window.location.href.split(/\//);
			
			if (location_parts[2]) {
				var xmlfile = location_parts[0] + "//" + location_parts[2];
			} else {
				var xmlfile = location_parts[0] + "//" + location_parts[1];
			}
			
			so.addVariable("xmlfile", escape(xmlfile + "/?action=view&view=277&rtemplate=52"));
			so.useExpressInstall("/swfs/expressinstall.swf");
			so.write('home_feature');
			$('home_feature').style.backgroundImage = 'none';
		}
		
		// Form validation automagic
		var valForms = $$('form.validate-form');
		if ( valForms.length ) {
			valForms.each(function(elem, idx) { 
				new FormValidator.Inline(elem, {
					onFormValidate: Site.formHandler
				});
			});
		}
		
		if ( $('query') ) {
			$('query').addEvent('focus', function() {
				if ($('query').value == 'Search') {
					$('query').value = '';
				}
			});
			$('query').addEvent('blur', function() {
				if ($('query').value == '') {
					$('query').value = 'Search';
				}
			});
		}
		
		if ( $('accordion') && $$('h3.toggler')[0] && $$('h3.toggler').length == $$('div.element').length ) {
			
			//create our Accordion instance
			var myAccordion = new Accordion($('accordion'), 'h3.toggler', 'div.element', {
				alwaysHide: true,
				display: -1,
				opacity: false,

				onActive: function(toggler, element){
					toggler.addClass('toggler_active');
				},
				onBackground: function(toggler, element){
					toggler.removeClass('toggler_active');
				}
			});
			
			// Change the cursor to a hand-pointer
			$$('h3.toggler').each(function(elem, idx) {
				elem.addEvent('mouseenter', function() {
					this.style.cursor = 'pointer';
				});
			});
			
		}
		
		// Adding bookmarks
		if ( $('bookmark_link') ) {
			
			if (window.opera) {
				$('bookmark_link').rel = 'sidebar'; // this makes it work in Opera 7+
				$('bookmark_link').title = "Bookmark: " + document.title;
				$('bookmark_link').href = $('bookmark_link').href.substring(0, $('bookmark_link').href.indexOf("#"));
			} else {
				$('bookmark_link').addEvent('click', function() {
					var ua = navigator.userAgent.toLowerCase();
					var isKonq = (ua.indexOf('konqueror') != -1);
					var isSafari = (ua.indexOf('webkit') != -1);
					var isMac = (ua.indexOf('mac') != -1);
					var buttonStr = isMac ? 'Command/Cmd' : 'CTRL';
					try {
						if(window.external && (!document.createTextNode ||
							(typeof(window.external.AddFavorite)=='unknown'))) {
							window.external.AddFavorite(window.location, document.title); // IE/Win
						} else if(isKonq) {
							alert('Please press CTRL + B to bookmark this page.');
						} else if(window.opera) {
							void(0); // do nothing here (Opera 7+)
						} else if(window.home || isSafari || !window.print || isMac) { // Firefox, Netscape, Safari, iCab, IE5/Mac and Safari 1.0
							alert('Please press ' + buttonStr + ' + D to bookmark this page.');
						} else {
							alert('In order to bookmark this page you need to do so manually through your browser.');
						}
					} catch(err) {
						// IE might error out
						alert("Error: " + err.description);
					}
					return false;
					
				});	
			}
		}
		
	},
	
	attachCartoonAnimations: function() {

		if ( $('caterpillar') ) {
			$('caterpillar').makeDraggable({container :  $('outer_container')});
			
			$('caterpillar').addEvent('mouseenter', function() {
				$('caterpillar').addClass("hover");
			});
			$('caterpillar').addEvent('mouseleave', function() {
				$('caterpillar').removeClass("hover");
			});
			
			$('caterpillar').store('tip:text',  'Click and drag to move me around the page!');
			
			var caterpillarTip = new Tips($('caterpillar'), {
				fixed: false,
				className: 'cater-tip-container',	
				offsets: {x: 30, y: -10 }
			});
		}
			
		if ( $('balloon_bear') ) {
			Site.floatBear = new Fx.Tween('balloon_bear', {property: 'marginTop', duration: 1000});
			
//			Site.bearStartPosition = (isIE6() || isIE7() ? -47 : 16); no longer used
			Site.bearStartPosition = 16;
			Site.floatBear.addEvents({
				'complete': function() {
					if ( $('balloon_bear').style.marginTop == Site.bearStartPosition + 'px' )
						setTimeout("Site.floatBear.start('" + Site.bearStartPosition + "px', '" + (Site.bearStartPosition-8) + "px')", 5000);
					else
						setTimeout("Site.floatBear.start('" + (Site.bearStartPosition-8) + "px', '" + Site.bearStartPosition + "px')", 500);
				}
			});
			setTimeout("Site.floatBear.start('" + Site.bearStartPosition + "px', '" + (Site.bearStartPosition-8) + "px')", 5000);
		
		}
		
		if ( $('book_owl') ) {
			var headTurner = new Class({
			    Extends: Events,
				start: function() {
					this.addEvent('complete', setTimeout("Site.headTurn.start();", 10000));
					this.newChain();
					Site.headTurnChain.callChain();
					
				},
				newChain: function() {
					Site.headTurnChain = new Chain();
					Site.headTurnChain.chain(
						function(){ 
							$('book_owl').toggleClass('head_turn');
							setTimeout("Site.headTurnChain.callChain()", 200);
						 },
						function(){ 
							$('book_owl').toggleClass('head_turn');
							setTimeout("Site.headTurnChain.callChain()", 200);
						 },
						function(){ $('book_owl').toggleClass('head_turn') }
					);
				}
			});

			
			
			Site.headTurn = new headTurner();
			setTimeout("Site.headTurn.start()", 7000);
		}
		
		if ( $('tree_left') ) {
			var so = new SWFObject('/swfs/tree.swf','tree-swf','281','326','9');
			so.addParam("wmode","transparent");
			so.useExpressInstall("/swfs/expressinstall.swf");
			so.write('tree_left');

			
		}

	},
	
	preloadImages: function() {
	
		if (document.images) {
			preload_image_object = new Image();
			
			image_paths = new Array();
			var x=0;
			
			image_paths[x++] = "/images/interface/book_owl_top2.png";
			
			for(var i=0; i<x; i++) 
				preload_image_object.src = image_paths[i];
		}
	},
	
	
	formHandler: function(pass, form, submitEvent) {
		// Do anything necessary here
	}
	
};



function isIE6() {
	return (navigator.appVersion.indexOf("MSIE 6.")==-1 ? false : true);
}

function isIE7() {
	return (navigator.appVersion.indexOf("MSIE 7.")==-1 ? false : true);
}


// Do stuff on load
window.addEvent('load', Site.start);
