$(function(){
	if($('body').hasClass('specifications')){
		specifications.activateSpecifications();
		specifications.activateComparison();
		specifications.showDifferences();
	}
});

var specifications = {
	activateComparison: function(){
		function showComparison(oBlock){		
			oBlock.find('.content').bgiframe();
			oBlock.find('span a').unbind('click').click(function(){
				hideComparison(oBlock);
				return false;
			});
				
			oBlock.addClass('open-comparison-content');
			
			oBlock.find('.content').show().click(function(){
				compareClicked = true;
			});
			$('body').click(function(){
				if(compareClicked == false){
					hideComparison(oBlock);
					return false;
				}
				compareClicked = false;
			});
			
			/*TRACKING*/
			tracking.event.activate('trackingevent', {EventClass:"CompareGrades",Action:"Start",Vehicle: VEHICLE_ABBR, Source: PAGE_NAME});	
		}
		
		function hideComparison(oBlock){
			oBlock.find('span a').unbind('click').click(function(){
				showComparison(oBlock);
				return false;
			});
			oBlock.removeClass('open-comparison-content');
			oBlock.find('.content').hide().unbind('click');
			$('body').unbind('click');
		}
		
		$('.specifications .grade-comparison span a').live('click', function(){
			showComparison($(this).parents('.grade-comparison'));
			return false;
		});
	},
	activateSpecifications: function(){
		$('.specification-group').each(function(i,n) {
			$(n).find('.heading').click(function() {
				if($(n).hasClass('expanded')) {
					$(n).find('.list').fadeTo('fast', '0',function() {
						$(n).find('.list').slideUp('fast', function() {
							main.adjustSEOSEMLinkLocation();
						});
						$(n).addClass('collapsed');
						$(n).removeClass('expanded');
					});} else
				if($(n).hasClass('collapsed')) {
					$(n).find('.list').slideDown('fast', function() {
						$(n).find('.list').fadeTo('fast', '1');
						main.adjustSEOSEMLinkLocation();
					});
					$(n).addClass('expanded');
					$(n).removeClass('collapsed');
					var specHeading = $(n).find('.heading h3').text();
					
					/*TRACKING*/
					tracking.event.activate('trackingevent', {EventClass:"Specifications",Action:"Expand",Vehicle: VEHICLE_ABBR, Heading: specHeading});
				}
			});
		});
		
		$('.toolbar .close-all').click(function() {
			windowScrollTop = $(window).scrollTop('180');
			$('.specification-group').each(function(i,n) {
				if($(n).hasClass('expanded')) {
					$(n).find('.list').fadeTo('fast', '0',function() {
						$(n).find('.list').slideUp('fast', function() {
							$(n).find('.list').hide();
						});
						$(n).addClass('collapsed');
						$(n).removeClass('expanded');
						
					});
				}
			});
			/*TRACKING*/
			tracking.event.activate('trackingevent', {EventClass:"Specifications",Action:"collapseall",Vehicle: VEHICLE_ABBR});
		});
	
		$('.toolbar .expand-all').click(function() {
			$('.specification-group').each(function(i,n) {
				if($(n).hasClass('collapsed')) {
					$(n).find('.list').slideDown('fast', function() {
						$(n).find('.list').fadeTo('fast', '1', function() {
							$(n).find('.list').show();
						});
					});
					$(n).addClass('expanded');
					$(n).removeClass('collapsed');
				}
			});
			/*TRACKING*/
			tracking.event.activate('trackingevent', {EventClass:"Specifications",Action:"expandall",Vehicle: VEHICLE_ABBR});
		});
		
		$('.grade-specifications .jump-to select').change(function () {
			var selected = $(this).val();
			$('.specification-group .heading h3').each(function(i,n) {
				if ($(n).text() == selected) {
					var headerOffset = $(n).offset();
					if($('body').hasClass('compare-grades')) {
						var sToolbarHeight = $('.car-title-bar').height() + 40;
						$(window).scrollTop(headerOffset.top - sToolbarHeight);
					} else {
						$(window).scrollTop(headerOffset.top - 50);
					}
					return;
				}
			});
	    });
		/*
		 * When scrolling down the page, the toolbar will follow down on the page. 
		 * There is a check done for the position of the grade-specification div, and 
		 * This feature has been disabled for IE 6. Only work if there is grade specs
		 * 
		 * */
		if($('.grade-specifications').length != 0) {
			jQuery.each(jQuery.browser, function(i, val) {
				if(i != "msie" && jQuery.browser.version.substr(0,3) != "6.0") {
					
					//build new header
					if($('.car-title-bar').length == 0) {
						if($('.compare-grades > .selected-grades').hasClass('two-column') == true) {
							var sColumnClass = 'two-column';
						} else {
							var sColumnClass = 'three-column';
						}	
						$('#content .compare-grades .grade-nav').after('<div class="car-title-bar"><div class="selected-grades '+sColumnClass+'"></div></div>');
						$('#content .compare-grades .selected-grades .grade').each(function(i,n) {
							var sCarHeading = $(n).find('h3').text();
							var hCloseButton = $(n).find('.close').html();
							$('#content .compare-grades .car-title-bar .selected-grades').append('<div class="grade"><div class="close">'+hCloseButton+'</div><h3>'+sCarHeading+'</h3></div>');
						});
					}
					
					$(window).scroll(function() {
						specToolbarHeight = $('.grade-specifications .toolbar').height();
						specWidgetOffset = $('.grade-specifications').offset();
						selectGradesOffset = $('.compare-grades > .selected-grades').offset();
						
						windowScrollTop = $(window).scrollTop();	
						
						if($('body').hasClass('compare-grades')) {
							
							if(windowScrollTop >= (selectGradesOffset.top - 10)) {
								var windowWidth = $(window).width();
								var titleBarLeft = (windowWidth - 960)/2;
								$('.compare-grades > .selected-grades h3, .compare-grades > .selected-grades .close').css('visibility', 'hidden');
								$('.car-title-bar').show().css({
									'top': '0',
									'position': 'fixed',
									'width': '760px',
									'padding-left': '200px',
									'left': titleBarLeft
								});
							} else {
								$('.compare-grades > .selected-grades h3, .compare-grades > .selected-grades .close').css('visibility', 'visible');
								$('.car-title-bar').hide().css({
									'position': '',
									'width': '',
									'height': ''
								});
							}
							var sCarTitleBarHeight = $('.car-title-bar').height();
							if (windowScrollTop >= (specWidgetOffset.top - sCarTitleBarHeight)) {
								$('.grade-specifications .toolbar').css({
									'top': sCarTitleBarHeight,
									'position': 'fixed',
									'width': '940px',
									'height': '39px'
								});
								$('.grade-specifications').css({
									'padding-top': '59px'
								});
							}
							else {
								$('.grade-specifications .toolbar').css({
									'position': '',
									'width': '',
									'height': ''
								});
								$('.grade-specifications').css({
									'padding-top': ''
								});
							}
							
						} else {
							if (windowScrollTop >= (specWidgetOffset.top - 10)) {
								$('.grade-specifications .toolbar').css({
									'top': '10px',
									'position': 'fixed',
									'width': '718px',
									'height': '39px'
								});
								$('.grade-specifications').css({
									'padding-top': '59px'
								});
							}
							else {
								$('.grade-specifications .toolbar').css({
									'position': '',
									'width': '',
									'height': ''
								});
								$('.grade-specifications').css({
									'padding-top': ''
								});
							}
						}
						
					});		
				}
			});
		}
	},
	showDifferences: function() {
		$('.show-differences-activate').click(function() {
			if($(this).find('a').hasClass('show')) {
				$(this).find('a').text('Show all');
				$(this).find('a').removeClass('show');
				$('.grade-specifications .toolbar .jump-to select option.similar').hide();
				$('.grade-specifications .toolbar .jump-to select option:selected').attr('selected', '');
				$('.specification-group').each(function(a,b) {
					if($(b).hasClass('similar')) {
						$(b).fadeTo('fast', '0',function() {
							$(b).slideUp('fast', function() {
								$(b).hide();
							});
						});
					} else {
						$(b).find('.list > ul').each(function(c,d) {
							if($(d).hasClass('similar')) {
								$(d).fadeTo('fast', '0',function() {
									$(d).slideUp('fast', function() {
										$(d).hide();
									});
								});
							} else {
								$(d).find('ul').each(function(e, f) {
										if($(f).hasClass('similar')) {
											$(f).fadeTo('fast', '0',function() {
												$(f).slideUp('fast', function() {
													$(f).hide();
												});
											});
										}
								});					
							}
						});					
					}
				});
				/*TRACKING*/
				tracking.event.activate('trackingevent', {EventClass:"CompareGrades",Action:"ShowDifferences",Vehicle: VEHICLE_ABBR});
			
			} else {
				$(this).find('a').text('Show differences');
				$(this).find('a').addClass('show');
				$('.grade-specifications .toolbar .jump-to select option.similar').show();
				$('.specification-group').each(function(a,b) {
					if($(b).hasClass('similar')) {
						$(b).slideDown('fast', function() {
							$(b).fadeTo('fast', '1');
						});
					} else {
						$(b).find('.list > ul').each(function(c,d) {
							if($(d).hasClass('similar')) {
								$(d).slideDown('fast', function() {
									$(d).fadeTo('fast', '1');
								});
							} else {
								$(d).find('ul').each(function(e, f) {
										if($(f).hasClass('similar')) {
											$(f).slideDown('fast', function() {
												$(f).fadeTo('fast', '1');
											});
										}
								});					
							}
						});	
					}
				});
				/*TRACKING*/
				tracking.event.activate('trackingevent', {EventClass:"CompareGrades",Action:"ShowAll",Vehicle: VEHICLE_ABBR});
				
			}
			return false;
		});
	}
}
