var RANGE_REQUEST_URL = '/compare-specifications';

$(function(){
	var sVehicleCode = VEHICLE_CODE;
	if(sVehicleCode != null){
		RANGE_REQUEST_URL = '/'+sVehicleCode+'/compare-specifications';
	}
	
	if($('body').hasClass('specifications')){
		range.activateGradeComparason();
		range.activateVehicleSelection();
		range.activateSpecificationsCancel();
	}
	else if ($('body').hasClass('range')) {
		range.startGradeComparason();
		range.activateCancel();
		range.activateDeepLinking();
	}	
});

var range = {
	activateDeepLinking: function(){
		var sCurrentUrl = location.href;
		var aCurrentUrl = sCurrentUrl.split('#');
	
		if(aCurrentUrl[1] == 'compare') {
			$('#compare-activate').find('.feature-link').click();
		}
	},		
	activateGradeComparason: function(){
		$('#range').find('.compare').show();
		$('#range').find('.transmission').hide();
		$('#range').find('.info .links').hide();
		$('#compare-activate').hide();
		$('#compare-start').show();
		$('#bottom-controls').find('.text').show();
		$('#range .compare input').filter(':checked').parents('li').addClass('selected');		
		range.countSelectedItems();
	},			
	activateVehicleSelection: function(){
		$('#range').find('.compare').find('input').click(function(){
			var oContainer = $(this).parents('li').filter(':first');
			if(($('#range').find('.compare li.selected').length < 3) || oContainer.hasClass('selected')){
				if(oContainer.hasClass('selected')){
					oContainer.removeClass('selected');
				}else{
					oContainer.addClass('selected');
				}
				range.countSelectedItems();
			}else{
				range.displaySelectingHint(oContainer);
				return false;
			}
		});
		if ($('body').hasClass('fj-cruiser')) {
			$('#range .range-column').find('.compare').find('input').unbind('click').attr('disabled', 'disabled');
		}
		

		$('#range li.item').each(function(i,n) {
			$(n).find('.image').bind({
				click: function() {
					$(n).find('.compare input:first').click();
					console.log($(this).find('img').attr('src'));
				}
			});
			if ($('body').hasClass('fj-cruiser') && $(this).parents('.range-column').length == 1) {
				$(n).find('.image').unbind('click');
			}
		});
		
	},				
	startGradeComparason: function(){	
		$('#compare-activate').find('.feature-link').live('click', function(){
			range.activateGradeComparason();
			
			if ($('body').hasClass('coaster')) {
				$('#range').find('ul.list li.item').css('height','352px');
			}				
			else if ($('body').hasClass('hiace')) {
				$('#range').find('ul.list li.item').css('height','480px');
			}
			else if ($('body').hasClass('prius')) {
				$('#range').find('ul.list li.item').css('height','352px');
			}	
			else if ($('body').hasClass('landcruiser-200')) {
				$('#range').find('ul.list li.item').css('height','460px');
			}		
			else if ($('body').hasClass('rav4')) {
				$('#range').find('ul.list li.item').css('height','415px');
			}		
			else if ($('body').hasClass('hilux')) {
				$('#range').find('ul.list li.item').css('height','525px');
			}		
			else if ($('body').hasClass('yaris')) {
				$('#range').find('ul.list li.item').css('height','453px');
			}	
					
			var TopControlsOffset = $('#top-controls').offset();
			$(document).scrollTop(TopControlsOffset.top - 15);
			
			tracking.event.activate('trackingevent', {EventClass:"CompareGrades",Action:"Start",Vehicle: VEHICLE_ABBR, Source: PAGE_NAME});
			
			return false;
		}); 
		
		range.activateVehicleSelection();		
	},
	/** Counting selected vehicles and binding 'Next' and 'Cancel' actions if required
	 */
	countSelectedItems: function(){
		var sSelectedVehicles = $('#range').find('.compare li.selected').length;
		if(sSelectedVehicles > 1){
			range.activateNext();
		}else{
			range.disactivateNext();
		}
	},
	/** Displaying a hint if iten can't be selected
	 */
	displaySelectingHint: function(oItem){
		if (!oItem.hasClass('selecting-hint')) {
			oItem.addClass('selecting-hint')
			oItem.prepend('<div class="hint">Maximum of 3 cars can be compared. Please deselect one to add another car.</div>');
			oItem.mouseout(function(){
				oItem.find('.hint').remove();
				oItem.removeClass('selecting-hint');
			});
		}
	},
	/** Activating 'Cancel' button
	 */
	activateCancel: function(){
		$('.text').find('.link-c')
			.removeClass('link-unactive')
			.live('click',function(){
				$('#range').find('.compare li.selected input').click();
				
				$('#range').find('.compare').hide();
				$('#range').find('.transmission').show();
				$('#range').find('.info .links').show();
				$('#compare-activate').show();
				$('#compare-start').hide();
				$('#bottom-controls').find('.text').hide();				
				
				$('#range li.item').each(function(i,n) {
					$(n).find('.image').unbind('click;');
				});
				
				if ($('body').hasClass('hilux')) {
					$('#range').find('ul.list li.item').css('height','402px');
				}
				
				return false;
			});
	},
	/** Activating 'Cancel' button for specifications overlay
	 */
	activateSpecificationsCancel: function(){
		$('.text').find('.link-c')
			.removeClass('link-unactive')
			.click(function(){
				var oBlock = $('.specifications .grade-comparison');
				oBlock.find('.compare li.selected input').click();	
				oBlock.find('span a').click();	
				return false;
			});
	},	
	/** Activating 'Next' button
	 */
	activateNext: function(){
		$('.text').find('.link-d')
			.removeClass('link-unactive')
			.unbind('mouseover')
			.unbind('mouseout')
			.click(function(){
				range.addLinkNext(this);
			});
			
		
	},
	
	/* Add the next button event
	*/
	addLinkNext: function(el) {
		var sVehiclesList = '';
		$('#range').find('.compare li.selected input').each(function(){
			if(sVehiclesList != ''){
				sVehiclesList += ',';
			}
			sVehiclesList += $(this).attr('id').split('-')[1];
		});   
		window.location.assign(RANGE_REQUEST_URL+'?vehicleId='+sVehiclesList);
		tracking.event.activate('trackingevent', {EventClass:"CompareGrades",Action:"Complete",Vehicle: VEHICLE_ABBR, Source: PAGE_NAME});				
		return false;
	},	
	
	/** Disactivating 'Next' button
	 */
	disactivateNext: function(){
		$('.text').find('.link-d')
			.addClass('link-unactive')
			.unbind('click')
			.mouseover(
				function(){$(this).parents('.text').find('.hint').show();}
			)
			.mouseout(
				function(){$(this).parents('.text').find('.hint').hide();}
			)
			.click(function(){
				return false;
			});
	}
}
