(function($){

	this.PricePlanBar = new Class({
		Implements: [Options, Events],
		options: {
			elements: 'div.priceplan-background',
			blocks: 'div.priceplan',
			elementClass: 'priceplan-background',
			additionals: ['div#boosters','div#step2header']
		},
		initialize: function(elements, options){
			
			this.setOptions(options);
			this.elements = $$(this.options.elements);

			this.blocks = $$(this.options.blocks);
			this.additionals = $$(this.options.additionals);

			this.radios = this.elements.getElement('input');
			this.radios.setStyle('display','none');
			
			this.elements.addEvents({
				mouseover: this._mouseoverHandler.bind(this),
				mouseout: this._mouseoutHandler.bind(this),
				mousedown: this._mousedownHandler.bind(this),
				mouseup: this._mouseupHandler.bind(this),
				click: this._clickHandler.bind(this)				
			});
			
			if(Cookie.read('pp-tabs')){
			
				this.elements.each(function(container, index){
											
					if(Cookie.read('pp-tabs') == index){
						
						this.radios[index].set('checked','checked');
						this.blocks[index].setStyle('display','block');
						this._addShadow(container, index);
						this.additionals.setStyle('display','block');
						
					}
				
				}.bind(this));
			
			}			
			
		},
		_mouseoverHandler: function(event){
			var target = $(event.target).getParent(this.options.elements) || $(event.target);
			target.addClass(this.options.elementClass + '-over');	
		},
		
		_mouseoutHandler: function(event){
			var target = $(event.target).getParent(this.options.elements) || $(event.target);
			target.removeClass(this.options.elementClass + '-over');			
		},
		
		_mousedownHandler: function(event){
			var target = $(event.target).getParent(this.options.elements) || $(event.target);
			target.addClass(this.options.elementClass + '-down');		
		},
		
		_mouseupHandler: function(event){
			var target = $(event.target).getParent(this.options.elements) || $(event.target);
			target.removeClass(this.options.elementClass + '-down');			
		},
		
		_clickHandler: function(event){
			event.stop();
			this.additionals.setStyle('display','block')
						
			var target = $(event.target).getParent(this.options.elements) || $(event.target);

			this.elements.each(function(container, index){

				if(container === target){
					this.radios[index].set('checked','checked');
					this.blocks[index].setStyle('display','block');

					var siblings = container.getSiblings('div');

					siblings.each(function(el){
						if(el.hasClass(this.options.elementClass)){
							el.getFirst('div').set('class', '');
						} else {
							el.set('class', '');
						}
					}.bind(this));
					
					this._addShadow(container, index);
					var cookie = Cookie.write('pp-tabs', index, {duration: 10000})
					
				} else {
					this.radios[index].removeAttribute('checked');
					this.blocks[index].setStyle('display','none');
					
					container.removeClass(this.options.elementClass + '-selected');					
				}
				

			}.bind(this));
		},
		
		_addShadow : function(el, i){
			if(i == 0){
				el.addClass(this.options.elementClass + '-selected');
				((el.getNext()).getFirst('div')).addClass("selected-direct-sibling-bottom");
				(el.getPrevious()).addClass("selected-direct-sibling-first-top");
				
			} else if((i+1) == this.elements.length){
				el.addClass(this.options.elementClass + '-selected');
				((el.getPrevious()).getFirst('div')).addClass("selected-direct-sibling-top");
				(el.getNext()).addClass("selected-direct-sibling-last-bottom");
				
			} else {
				el.addClass(this.options.elementClass + '-selected');
				((el.getPrevious()).getFirst('div')).addClass("selected-direct-sibling-top");
				((el.getNext()).getFirst('div')).addClass("selected-direct-sibling-bottom");
			}
		}
	});
	
	//load jsenabled css 
	if(Asset) Asset.css('/common/redesign-css/priceplans_jsenabled.css', {type : "text/css", rel : "stylesheet"})
		else throw new Error('Mootools Asset Class is required!');
		
})(document.id)

window.addEvent('domready', function(){

	if($$('.datatable .selectFlexibleBooster select') != null){
		
		 $$('.datatable .selectFlexibleBooster select').each(function(element){
				
			   for (var i = 0; i < element.options.length; i++) {
					//alert( "|" + element.getPrevious().getPrevious().get('text') + "|" + element.options[i].get('text'))
					if( element.getParent().getPrevious() != null && element.getParent().getPrevious().getPrevious() != null ){
						if (element.options[i].firstChild.data === element.getParent().getPrevious().getPrevious().get('text') ) {
							element.selectedIndex = i; 
						}
					}
				 }
			
		   if($$('.selectedSCOHead') != null || $$('.selectedSCOContent') != null){     
				element.addEvent('change', function(event){
					var selectedInd = this.selectedIndex ;
					var datacontainer = this.getParent().getParent().getElements('div.allowance-info');
					
					var selectedSCOHead = '<strong>'+ datacontainer[selectedInd].getElement('h4').get('text') + '</strong>';
					var selectedInfo =datacontainer[selectedInd].getElement('span').get('text');
					this.getParent().getPrevious().getPrevious().set('html', selectedSCOHead);
					this.getParent().getPrevious().set('html',  datacontainer[selectedInd].get('text'));
				});
		   }
		  }); 
		   
	}
	$$('#offer1, #offer2, #offer3').addEvent('click', function(event){
		$$('.callout-second-chance li').each(function(element){
				if(element.hasClass('current')){
					element.removeClass('current')
					}							   
			});
		this.addClass('current');
	});

});
