var Site = {
		
	loginState: 'collapsed',
	loginElem: null,

	
	start: function(){
		MooTools.lang.setLanguage("en-US");

		// 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 ) {
			var navElems = $$('#navigation li a');
			navElems.each(function(elem, idx) {
				elem.set('title', '');
			});
		}
		

    // Form validation automagic
		var valForms = $$('form.validate-form');
		if ( valForms.length ) {
			valForms.each(function(elem, idx) { 
				new FormValidator.Inline(elem, {
					'onFormValidate': Site.formHandler,
					'errorPrefix': '',
					'useTitles': true
				});
			});
		}
		
		
		
		Site.attachResizeButtons();
		
		// Attach login slider
		if ( $('login-button') ) {
			Site.attachLoginSlider($('login-button'));
		}
		
		// IE6 height fix for CC Controls
		if ( navigator.userAgent.toLowerCase().indexOf('msie 6') != -1 ) {
			if ( $('cc-ctoc-slider-control') ) {
				$('cc-ctoc-slider-control').setStyle('height', (parseInt($('cc-ctoc-slider-outer').getStyle('height')) - 20) + 'px');
				$('cc-ctoc-slider-control-anchor').setStyle('height', (parseInt($('cc-ctoc-slider-outer').getStyle('height')) - 20) + 'px');
			}
		}
	},
	
	setSelection: function(dropdown_name, value) {   
    var opts = $$('#' + dropdown_name + ' option');
    opts.each(function (item, idx) {
      if ( item.value == value ) { item.selected = true; }
    });
  },
  
	setChecked: function(cbx_name, is_checked) {   
    var cbx = $(cbx_name);
    cbx.checked = is_checked;    
  },
  

	
	attachResizeButtons: function() {
		if ( $('text_smaller') ) {
			$('text_smaller').addEvent('click', function() {
				scaleDown();
			});
		}
		if ( $('text_bigger') ) {
			$('text_bigger').addEvent('click', function() {
				scaleUp();
			});
		}
	},
	
	
	attachLoginSlider: function(elem) {
		Site.loginElem = $('login');
		Site.loginElem.fx = new Fx.Morph(Site.loginElem, {	'duration': 500, 
															'transition': Fx.Transitions.Quad.easeOut
														});
		
		elem.addEvent('click', function() { Site.toggleSlider(); });
	},
	toggleSlider: function() {
		if ( Site.loginState == 'collapsed' ) {
			Site.loginState = 'expanded';
			Site.loginElem.fx.start({'top': '0'});
		} else {
			Site.loginState = 'collapsed';
			Site.loginElem.fx.start({'top': '-92px'});
		}
	}
	
	
};


// Do stuff on load
window.addEvent('load', Site.start);


// ***********
// digits only
// ***********
   function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : evt.keyCode;
         //alert(evt.which + ' ' + charCode);
         return (
             (charCode >= 48 && charCode <= 57) // digits
             || (evt.which == 0 && charCode == 46) // <delete> button
             || (evt.which == 0 && charCode == 37) // <left> button
             || (evt.which == 0 && charCode == 39) // <right> button
             || charCode == 8 // <backspace> button
         );
    }
