/* Debug to Firebug's console */
l = function( v ) {
	console.log( v );
}

/*****************************************************************
	Visuals Class
	-------------
	Sets all the tiny details important for visual quality
*****************************************************************/

Visuals = new Class({
	
	initialize: function() {
	},
	
	/*
	*	Takes care of how submenu looks and works
	*/
	
	submenu: function() {
		if (window.ie6) {
			/* setting up event handlers for submenu */
			$E('#menu ul').getChildren().each(function(el){
				if (el.getElement('ul')) {
					el.addEvent('mouseenter',function(e){
						el.addClass('selected');
						this.getElement('ul').setStyle('display','block');
					});
					el.addEvent('mouseleave',function(e){
						el.removeClass('selected');
						this.getElement('ul').setStyle('display','none');
					});
				}
			});
			/* disabling last border on each submenu */
			$$('#menu ul li ul').each(function(el){
				var lis = el.getChildren();
				lis[lis.length-1].addClass('last');
			});
		}
	},
	
	/*
	*	Displays/hides prompt in search input
	*	@param prompt (string) the prompt to display/hide
	*/
	
	search: function( prompt ) {
		$E('#search .text').value = prompt;
		$E('#search .text').addEvent('focus',function(){
			if (this.value == prompt) this.value = '';
		});
		$E('#search .text').addEvent('blur',function(){
			if (this.value == '') this.value = prompt;
		});
	},
	
	/*
	*	Sets up carousel for featured articles at home
	*/
	featured: function() {
		var maxH = 0;
		var amount = $$('#featured-article dl').length;
		$$('#featured-article dl').each(function(el){
			if (el.getSize().size.y > maxH) maxH = el.getSize().size.y;
		});
		$('featured-article').setStyle('height',maxH+'px');
		$('carousel-nav').setStyle('opacity',0.8);
		
		App.ffmac(); //engaging FF/mac detection
		if (window.ffmac) {
			ffmacCarousel.initialize(); //ff/mac requires simpler carousel (flash/opacity is a baaaad combination for him)
		} else {
			HomeCarousel = new CNETcarousel($('featured-article'), {
				slideInterval: 8000,
				slidesSelector: '.slide',
				buttonsSelector: '#carousel-nav li a',
				buttonOffClass: '',
				transitionDuration: 700,
				rotateAction: 'click'
			});
			var links = $$('#carousel-nav a');
			links.addEvent('click',function(e){
				if (e) new Event(e).stop();
			});
		}
		
		// If there's #aubrey_welcome - attach video launching events
		//if ($('video-welcome')) {
		//	var so = new SWFObject('/sites/all/themes/imminst/flash/flvplayer.swf','mpl','519','202','7');
		//	so.addParam("allowfullscreen","false");
		//	so.addParam("wmode","transparent");
		//	so.addParam("bgcolor","#255686");
		//	so.addVariable("file","/files/video/aubrey_welcome.flv");
		//	so.addVariable("displayheight","202");
		//	so.addVariable("autostart","true");
		//	so.addVariable('volume','100');
		//	var newHTML = so.getSWFHTML();
		//	$E('#video-welcome a').addEvent('click',function() {
		//		if (window.ffmac) {
		//			Home.ffmacCarousel.stop();
		//		} else {
		//			HomeCarousel.stop();
		//		}
		//		$('video-welcome').setHTML(newHTML);
		//	})
		//	var oldHTML = $('video-welcome').innerHTML;
		//}
		
	},
	
	announcements: function() {
		var maxH = 0;
		var amount = $$('#announcements .slide').length;
		$$('#announcements .slide').each(function(el){
			if (el.getSize().size.y > maxH) maxH = el.getSize().size.y;
		});
		$('announcements-carousel').setStyle('height',maxH+'px');
		if (announcements_amount > 2) {
			AnnouncementsCarousel = new CNETcarousel($('announcements-carousel'), {
				slideInterval: 5000,
				slidesSelector: '.slide',
				buttonsSelector: '.slide',
				transitionDuration: 300,
				buttonOffClass: ''
			});
		}
	}
	
});

/**
 * Various functions needed thorought the app
*/
 
App = {
	initialize: function() {
		this.hash();
	},
	hash: function() {
		var loc = window.location.toString();
		if (loc.lastIndexOf('#') != -1) {
			window.hash = loc.substr(loc.lastIndexOf('#')+1);
		} else {
			window.hash = null;
		}
	},
	ffmac: function() {
		window.ffmac = (navigator.userAgent.indexOf('Firefox') != -1 && navigator.userAgent.indexOf('Mac') != -1) ? true : false;
	}
}

/*
*	Carousel version for FF/Mac
*/

ffmacCarousel = {
	
	carousel: null,
	slides: null,
	links: null,
	
	initialize: function() {
		this.slides = $$('#featured-article .slide');
		this.links = $$('#carousel-nav a');
		this.links[0].addClass('selected');
		this.links.addEvent('click',function(e){
			if (e) new Event(e).stop();
			ffmacCarousel.links.removeClass('selected');
			this.addClass('selected');
			ffmacCarousel.stop();
			ffmacCarousel.slides.setStyle('display','none');
			ffmacCarousel.slides[parseInt(this.getProperty('id').substr(5))].setStyle('display','block');
			ffmacCarousel.start();
		});
		this.slides.setStyle('display','none');
		this.slides[0].setStyle('display','block');
		this.start();
	},
	
	start: function() {
		this.carousel = this.rotate.periodical(8000,this);
	},
	
	stop: function() {
		$clear(this.carousel);
	},
	
	rotate: function() {
		for (var i=0;i<this.slides.length;i++) {
			if (this.slides[i].getStyle('display') == 'block') {
				var index = 0;
				if (i+1==this.slides.length) {
					this.slides[0].setStyle('display','block');
				} else {
					this.slides[i].getNext().setStyle('display','block');
					index = i+1;
				}
				this.slides[i].setStyle('display','none');
				this.links.removeClass('selected');
				this.links[index].addClass('selected');
				break;
			}
		}
	}
}







v = new Visuals();

window.addEvent('domready',function(){
	v.submenu();
	v.search('search');
});

window.addEvent('load',function(){
	if (is_front) {
		v.featured();
		v.announcements();
	}
});
