

	
var Cloud9 = (function($){
	
	var banners = [
		'san_diego.jpg',
		'los_angeles.jpg',
		'san_francisco.jpg'
	];
	
	// start with the second banner as the first is already loaded in css
	var bannerInc = 0;
	
	return {
		
		loopBanners: function(){
			$('#home #display_backdrop')
				.fadeOut(300, function(){
					$(this)
						.css('background-image', 'url(static/images/panos/' + banners[bannerInc] + ')')
						.fadeIn(500);
					if (bannerInc == ( banners.length - 1 )){
						bannerInc = 0;
					} 
					else {
						bannerInc++;
					}
				});
		},
		
		/** 
		* Loop through required fields 
		* append "*" to label
		*/
		setRequiredLabels: function(){
			var $required = $('.required');
			if ($required.length){
				$required.each(function(){
					$(this).find('label').append('&nbsp;*');
				});
			}
			return $required.length;
		},
		
		/** Dropdown abstract */
		dropDown: function(element, to_show, callback){
			$(element).hover(
				function(){ 
					$(this)
						.addClass('active')
						.find(to_show).show();
					if (callback && typeof callback == 'function'){
						var self = this;
						setTimeout(function(){
							if ($(self).hasClass('active')){
								callback();
							}
						}, 200);
					}
				},
				function(){ 
					$(this)
						.removeClass('active')
						.find(to_show).hide();
				}
			);
		},
		
		/** Control homepage product select box */
		productBox: (function(){
			
			var categoryTrigger = '#product_category_list a',
				productTrigger  = '#category_product_list a',
				categoryContent = '.product_category',
				productContent  = '.product';
			
			function switchContent($element, contentType){
				var targetID = $element.attr('id'),
					content = '#' + targetID + '_content',
					contentType = contentType || 'none';
				
				$element.parents('ul').find('a').removeClass('active');
				$element.addClass('active');
								
				if (contentType == 'category'){
					$(categoryContent).hide();
					$(productTrigger, content)
						.removeClass('active')
						.eq(0).addClass('active');
					$(productContent, content)
						.hide()
						.eq(0).show();
				} 
				else if (contentType == 'product'){
					$(productContent).hide();
				}
				$(content).show();
			}
			
			function setHandlers(element, contentType){
				$(element).bind('click', function(){
					switchContent($(this), contentType);
					return false;
				});
			}
			
			return {
				init: function(){
					switchContent($(categoryTrigger).eq(0), 'category');
					setHandlers(categoryTrigger, 'category');
					setHandlers(productTrigger, 'product');
				}
			};
		})(),
	
		/** init all */
		init: function(){
			var self = this;
			this.setRequiredLabels();
			this.dropDown('#display_services_dd', 'ul', function(){
				var offsetTop = $('#display').offset().top;
				if ($('html').scrollTop() != offsetTop){
					$('html, body').animate({ 'scrollTop': offsetTop }, 800);
				}
			});
			this.dropDown('#nav_services_dd', '.dd');
			this.productBox.init();
			this.loopBanners();
			setInterval(function(){
				self.loopBanners();
			}, 5000);
		}
	};
	
})(jQuery);

//try {
	Cloud9.init();
//} catch(e){}


