var Cases = new Class({
	
	initialize: function(name){
		this.init();
	},
	
	caseList: function() {
		return (this.caseList.length > 0) ? this.caseList : $$('#cases > h3');
	},
	
	init: function(){
		var self = this;
		this.caseList().each( function(case_container) {
			case_container.addEvent('click', function(event){
				self.toggleCase(case_container);
			});
		});
	},
	
	toggleCase: function(target) {
		if(!target.hasClass('active')) {
			this.clearAll();
			target.addClass('active');
		}
		else {
			this.closeAll();
		}		
	},
	
	toggleCaseExtention: function(show,id) {
		var case_extended = $('case_extended');
		var slideShow = null;
		var self = this;
		if(show){
			case_extended.setStyle('width', this.toggleCaseExtention_width());
			var idArr = id.split('-');
			var req = new Request.HTML({
				method: 'post',
				url: '/index9,150.htm?cId=' + idArr[idArr.length-1],
				update: case_extended,
				onComplete: function(response) {
					if(! case_extended.isDisplayed() )
						new Fx.Reveal(case_extended).reveal();

					new Fx.Scroll(window).toElement(case_extended);
					slideShow = self.initSlides();
				}
			}).send();
		}
		else
			new Fx.Reveal(case_extended).dissolve();
	},
	
	clearAll: function() {
		this.caseList().removeClass('active');
	},
	
	closeAll: function() {
		this.clearAll();
		this.toggleCaseExtention(false);
	},
	
	initSlides: function() {
		var case_gallery = $('case_gallery');
		if(case_gallery && case_gallery.getElements('li').length > 1 ) {
			new slideGallery(case_gallery, {
				steps: 1,
				duration: 5000,
				autoplay: true,
				paging: true
			});
		}
		else {
			$$('.next,.prev').hide();
		}
	},
	
	toggleCaseExtention_width: function() {
		var right_pos = 0;
		$$('#cases > h3').each( function(case_container){
			if(case_container.getCoordinates().right > right_pos )
				right_pos = case_container.getCoordinates().right;
		});
		return ( right_pos < 940 ) ? 940 : (right_pos - 40);
	}
	
});

document.addEvent('domready', function() {
	
	//	Set extend view width on resize
	
	window.addEvent('resize', function() {
		$('case_extended').setStyle('width', AS.Cases.toggleCaseExtention_width());
	});
	
	// Set up hash listener
	
	var url = '';

	function dp_check_hash() {

		if( url !== location.hash ) {
			url = location.hash;
			if(url.indexOf('#close') != -1)
				AS.Cases.closeAll();
			else
				AS.Cases.toggleCaseExtention(true, url.substring(1) );
	    }
	}

	setInterval( dp_check_hash, 100 );
	

	// Set up page tags
	
	$$('#filter a').addEvent('click', function(event) {
		event.preventDefault();
		AS.Cases.closeAll();
		var a = event.target;
		var view_all = $('view-all-tags');
		if( a.get('id') != 'view-all-tags' ) {
			var selector = '.' + a.get('href').replace('#!','').toLowerCase();
			if( !a.hasClass('active') ) {
				$$('#filter a').removeClass('active');
				a.addClass('active');
				$$('#cases h3').addClass('tag_hide');
				$$(selector).each( function(element) { element.removeClass('tag_hide') } );
			}
			else {
				$$('.tag_hide').each( function(element) { element.removeClass('tag_hide') } );
				$$('#filter a').removeClass('active');
				view_all.addClass('active');
			}
		}
		else {
			$$('.tag_hide').each( function(element) { element.removeClass('tag_hide') } );
			$$('#filter a').removeClass('active');
			a.addClass('active');
		}
	});
	
	var AS = AS || {};
		AS.Cases = new Cases();
	
});

var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-740737-22']);
	_gaq.push(['_trackPageview']);
	
(function() {
	var ga = document.createElement('script');
		ga.type = 'text/javascript';
		ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
   	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
