Event.observe(window,'load',function(){
	nu = new nu();
});

function nu()
{
	this.validate = new Array();
	this.featureInit();
	this.systemPulldown();
	this.breadcrumbDropdown();
	this.toggleAdvancedSearch();
	this.inputToggle($('site_search_input'),'Search...');
	this.inputToggle($('campusfinder_zip'),'Enter your ZIP code...');
	this.inputToggle($('programfinder_keywords'),'Enter keywords...');
	this.inputValidation();
	this.accordionTrigger = true;
	this.toggleAccordion();
};

nu.prototype.imgAlpha = function(img)
{
	src = img.src;
	img.style.width = img.width + "px";
	img.style.height = img.height + "px";
	img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "')";
	img.src = '/assets/img/x.gif';
};

nu.prototype.systemPulldown = function()
{
	if (trigger = $('national_university_system_toggle'))
	{
		Event.observe(trigger,'click',function() {
			new Effect.toggle('national_university_system','slide',{duration: .4});
		});
	}
	if (trigger = $('close_pulldown')) {
		trigger.onclick = function()
		{
			new Effect.toggle('national_university_system','slide',{duration: .4});
			return false;
		};
	}
};

nu.prototype.toggleAdvancedSearch = function()
{
	if (trigger = $('advanced_search_trigger')) {
		if ($('advanced_search').visible()) trigger.addClassName('selected');
		Event.observe(trigger,'click',function()
		{
			new Effect.toggle('advanced_search','blind',{duration: .2});
			this.toggleClassName('selected');
		});
	}
};

nu.prototype.breadcrumbDropdown = function()
{
	if (containers = $$('.breadcrumb')) {
		// Preload background images
		img_dropdown = new Image();
		img_dropdown.src = '/assets/img/dropdown.png';
		img_dropdown_bottom = new Image();
		img_dropdown_bottom.src = '/assets/img/dropdown_bottom.png';
		for (j=0;j<containers.length;j++) {
			if (breadcrumb_container = containers[j].down('ol')) {
				breadcrumb = breadcrumb_container.childElements();
				for (i=0;i<breadcrumb.length;i++) {
					if (breadcrumb[i].down('ul')) {
						breadcrumb[i].addClassName('dropdown').down(2).addClassName('first_child');
						breadcrumb[i].onmouseover = function()
						{
							this.addClassName('hover');
							nu.toggleBreadcrumbDropdown.delay(.6,this);
						};
						breadcrumb[i].onmouseout = function()
						{
							this.removeClassName('hover');
							nu.toggleBreadcrumbDropdown.delay(.6,this);
						};
					}
				}
			}
		}
	}
};

nu.prototype.toggleBreadcrumbDropdown = function(element,show)
{
	if (element.hasClassName('hover')) element.addClassName('selected');
	else element.removeClassName('selected');
};

nu.prototype.inputToggle = function(input,value,inputclass)
{
	if (input) {
		if (!input.value) input.value = value;
		Event.observe(input,'focus',function()
		{
			if (this.value == value) {
				this.value = '';
			}
			if (inputclass) this.removeClassName(inputclass);
		});
		Event.observe(input,'blur',function()
		{
			if (this.value == '') {
				this.value = value;
				if (inputclass) this.addClassName(inputclass);
			}
		});
	}
};

nu.prototype.inputValidation = function()
{
	if (this.validate = $$('form input[type="text"].validate')) {
		for (i=0;i<this.validate.length;i++) {
			if (!this.validate[i].value) this.validate[i].addClassName('required');
			this.inputToggle(this.validate[i],'required...','required');
		}
	}
};

nu.prototype.toggleAccordion = function()
{
	function toggle()
	{
		if (nu.accordionTrigger == true) {
			if (!this.hasClassName('selected')) {
				nu.accordionTrigger = false;
				active = $('module_accordion').select('.selected');
				for (i=0;i<active.length;i++) {
					active[i].removeClassName('selected');
					new Effect.BlindUp(active[i].next(),{duration: .4});
				}
				this.addClassName('selected');
				new Effect.BlindDown(this.next(),{duration: .4});
				setTimeout('nu.accordionTrigger = true',400);
			}
		}
	}
	if (element = $('module_accordion')) {
		sections = element.select('.section');
		for (i=0;i<sections.length;i++) {
			trigger = sections[i].previous();
			if (i>0) new Effect.BlindUp(sections[i],{duration: .4});
			else trigger.addClassName('selected');
			new Event.observe(trigger,'mousemove',toggle);
		}
	}
};

nu.prototype.featureInit = function()
{
	if (module = $('module_feature')) {
		this.slideShow;
		this.featureTabs;
		this.nextTab = 0;
		if (tabs = $('module_feature_tabs')) {
			this.featureTabs = tabs.select('a');
			tabs.addClassName('tabs_'+this.featureTabs.length);
			var section = $('module_feature_sections').select('.section');
			for (i=0;i<this.featureTabs.length;i++) {
				if (this.featureTabs[i].getHeight() > 33) this.featureTabs[i].setStyle({paddingTop: '3px',paddingBottom: '4px'});
				if (i==0) this.featureTabs[i].addClassName('selected');
				Event.observe(this.featureTabs[i],'click',this.featureToggle);
			}
			tabs.setStyle({bottom: 0, display: 'none'});
			setTimeout("new Effect.Appear(tabs,{duration: 0.4});",1000);
			this.slideShow = setInterval("nu.featureNext(nu.featureTabs)",15000);
		} else {
			module.addClassName('single');
		}
	}
};

nu.prototype.featureToggle = function(clicked)
{
	if (clicked) {
		nu.featureStop();
		Event.stop(arguments[0]);
		element = this;
	} else {
		nu.nextTab++;
		if (nu.nextTab == nu.featureTabs.length) nu.nextTab = 0;
		element = nu.featureTabs[nu.nextTab];
		
	}
	if (!element.hasClassName('selected')) {
		for (i=0;i<nu.featureTabs.length;i++) {
			if (nu.featureTabs[i] == element) {
				nu.featureTabs[i].addClassName('selected');
				new Effect.Move('module_feature_sections',
				{
					x: (-700*i),
					y: 0,
					duration: 0.8,
					transition: Effect.Transitions.sinoidal,
					mode: 'absolute'
				});
			}
			else nu.featureTabs[i].removeClassName('selected');
		}
	}
};

nu.prototype.featureNext = function()
{
	this.featureToggle();
	//alert('next');
};

nu.prototype.featureStop = function()
{
	//alert('stop');
	clearInterval(this.slideShow);
};

nu.prototype.jumpMenu = function(element)
{
	if (element.value) document.location = element.value;
};