$(function() {
	var condition_id_map = {
		n: '10425',
		preowned: '10426',
		pre: '10426'
	};
	var body_type_id_map = {
		'Other': '-12',
		'Coupe': 2048,
		'Sedan': 2045,
		'Convertible': 2041,
		'Wagon': 2043, 
		'Mini van': 2049,
		'Minivan': 2049,
		'Pickup': 2047,
		'SUV': 2042
	};
	var ajax_display = {
		base_url: '',
		list_header: {
			model: 'Select Model',
			body_type: 'Body Type',
			price: 'Price Range',
			color: 'Colors'
		},
		new_make: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var model_list = ajax_display.build_list({ data: data.models, type: 'model', base_url: $(a_link).attr('href') });
			var body_type_list = ajax_display.build_list({ data: data.body_type, type: 'body_type', base_url: $(a_link).attr('href') });
			var price_list = ajax_display.build_list({ data: data.price, type: 'price', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(model_list).append(body_type_list);
			$('#searchInv_cat_new_make > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		new_body: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var make_list = ajax_display.build_list({ data: data.makes, type: 'make', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(make_list);
			$('#searchInv_cat_new_body_type > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		new_price: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var make_list = ajax_display.build_list({ data: data.makes, type: 'make', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(make_list);
			$('#searchInv_cat_new_price > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		new_store: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var model_list = ajax_display.build_list({ data: data.models, type: 'model', base_url: $(a_link).attr('href'), full_url: true });
			var body_type_list = ajax_display.build_list({ data: data.body_type, type: 'body_type', base_url: $(a_link).attr('href'), full_url: true });
			var price_list = ajax_display.build_list({ data: data.price, type: 'price', base_url: $(a_link).attr('href'), full_url: true });
			results_right.addClass('searchInv_result_right').append(model_list).append(body_type_list);
			$('#searchInv_cat_new_location > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		pre_make: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var model_list = ajax_display.build_list({ data: data.models, type: 'model', base_url: $(a_link).attr('href') });
			var body_type_list = ajax_display.build_list({ data: data.body_type, type: 'body_type', base_url: $(a_link).attr('href') });
			var price_list = ajax_display.build_list({ data: data.price, type: 'price', base_url: $(a_link).attr('href') });
			var color_list = ajax_display.build_list({ data: data.color, type: 'color', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(model_list).append(color_list).append(body_type_list);
			$('#searchInv_cat_pre_make > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		pre_body: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var make_list = ajax_display.build_list({ data: data.makes, type: 'make', base_url: $(a_link).attr('href') });
			var price_list = ajax_display.build_list({ data: data.price, type: 'price', base_url: $(a_link).attr('href') });
			var color_list = ajax_display.build_list({ data: data.color, type: 'color', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(make_list).append(color_list);
			$('#searchInv_cat_pre_body_type > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		pre_price: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var make_list = ajax_display.build_list({ data: data.makes, type: 'make', base_url: $(a_link).attr('href') });
			var body_type_list = ajax_display.build_list({ data: data.body_type, type: 'body_type', base_url: $(a_link).attr('href') });
			results_right.addClass('searchInv_result_right').append(make_list).append(body_type_list);
			$('#searchInv_cat_pre_price > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		pre_store: function(data, a_link){
			var results_left = $('<div/>');
			var full_results_link = $(a_link).clone();
			var link_html = full_results_link.html();
			var link_make = link_html.split('<span>')[0];
			link_html += '<span>View All ' + link_make + '</span>';
			full_results_link.html(link_html);
			results_left.addClass('searchInv_result_left').append(full_results_link);
			var results_right = $('<div/>');
			var model_list = ajax_display.build_list({ data: data.models, type: 'model', base_url: $(a_link).attr('href'), full_url: true });
			var body_type_list = ajax_display.build_list({ data: data.body_type, type: 'body_type', base_url: $(a_link).attr('href'), full_url: true });
			var price_list = ajax_display.build_list({ data: data.price, type: 'price', base_url: $(a_link).attr('href'), full_url: true });
			var color_list = ajax_display.build_list({ data: data.color, type: 'color', base_url: $(a_link).attr('href'), full_url: true });
			results_right.addClass('searchInv_result_right').append(model_list).append(color_list).append(body_type_list);
			$('#searchInv_cat_pre_location > .items > .searchInv_result').addClass('si_results_active').append(results_left).append(results_right);
		},
		build_list: function(obj){
			if( obj.data.length < 1 ){
				return;
			}
			ajax_display.base_url = obj.base_url.split('/');
			var list_ele = $('<ul/>');
			var list_header = $('<li/>');
			list_header.addClass('si_result_head').html(ajax_display.list_header[obj.type]);
			list_ele.addClass('si_result_' + obj.type).append(list_header);
			for( var i = 0; i < obj.data.length; i++ ){
				var list_item = ajax_display.build_list_item[obj.type]({ data: obj.data[i], type: obj.type, full_url: obj.full_url });
				list_ele.append(list_item);
			}
			return list_ele;
		},
		build_list_item: {
			model: function(obj){
				var list_item = $('<li/>');
				var item_link = $('<a/>');
				item_link.attr({
					href: ajax_display.build_url[obj.type](obj),
					id: 'si_result_model_' + obj.data.model
				}).html(obj.data.model + ' <span>(' + obj.data.model_count + ')</span>');
				list_item.append(item_link);
				return list_item;
			},
			make: function(obj){
				var list_item = $('<li/>');
				var item_link = $('<a/>');
				item_link.attr({
					href: ajax_display.build_url[obj.type](obj),
					id: 'si_result_make_' + obj.data.make_name
				}).html(obj.data.make_name + ' <span>(' + obj.data.make_count + ')</span>');
				list_item.append(item_link);
				return list_item;
			},
			body_type: function(obj){
				var list_item = $('<li/>');
				var item_link = $('<a/>');
				item_link.attr({
					href: ajax_display.build_url[obj.type](obj),
					id: 'si_result_body_type_' + obj.data.body_type_name
				}).html(obj.data.body_type_name + 's <span>(' + obj.data.body_type_count + ')</span>');
				list_item.append(item_link);
				return list_item;
			},
			price: function(obj){
				var list_item = $('<li/>');
				var item_link = $('<a/>');
				obj.data.min_price = obj.data.min_price || obj.data.min_retail_price;
				obj.data.max_price = obj.data.max_price || obj.data.max_retail_price;
				item_link.attr({
					href: ajax_display.build_url[obj.type](obj)
				}).html('$' + obj.data.min_price + ' - $' + obj.data.max_price + ' <span>(' + obj.data.price_count + ')</span>');
				list_item.append(item_link);
				return list_item;
			},
			color: function(obj){
				var list_item = $('<li/>');
				var item_link = $('<a/>');
				item_link.attr({
					href: ajax_display.build_url[obj.type](obj),
					id: 'si_result_color_' + obj.data.ecolor_name
				}).html(obj.data.ecolor_name + ' <span>(' + obj.data.ecolor_count + ')</span>');
				list_item.append(item_link);
				return list_item;
			}
		},
		build_url: {
			model: function(obj){
				var offset = 5;
				if( obj.full_url ){
					offset = 7;
				}
				var base_url = ajax_display.base_url;
				base_url[offset] = obj.data.model;
				return base_url.join('/');
			},
			make: function(obj){
				var offset = 4;
				if( obj.full_url ){
					offset = 6;
				}
				var base_url = ajax_display.base_url;
				base_url[offset] = obj.data.make_name;
				return base_url.join('/');
			},
			body_type: function(obj){
				var offset = 6;
				if( obj.full_url ){
					offset = 8;
				}
				var base_url = ajax_display.base_url;
				var body_type_name_map = {
					'Minivan/Van': 'Mini Van',
					'Pickup Truck': 'Truck'
				};
				var body_type_name = body_type_name_map[obj.data.body_type_name] || obj.data.body_type_name;
				if( body_type_name != 'Other' ){
					body_type_name += 's';
				}
				base_url[offset] = body_type_name;
				return base_url.join('/');
			},
			price: function(obj){
				var base_url = ajax_display.base_url.join('/');
				base_url += '?min_price=' + obj.data.min_price;
				base_url += '&max_price=' + obj.data.max_price;
				return base_url;
			},
			color: function(obj){
				var base_url = ajax_display.base_url.join('/');
				base_url += '?color=' + obj.data.ecolor_name;
				return base_url;
			}
		}
	};
	var initial_load = true;
	var specials = $ec("div#specials_tabs").tabs(".special_image", { 
		effect: 'fade', 
		fadeOutSpeed: "slow", 
		rotate: true 
	}).slideshow({
		interval: 4000,
		autoplay: true
	});
	var play_specials = function(){
		specials.tabs().play();
	};
	var inv_tabs = $ec("#content").tabs(".toppane", {
		tabs: '.toptab',
		effect: 'fade',
		onClick: function(e, i) {
			if( initial_load ){
				initial_load = false;
				return;
			}
			if( i == 0 ){
				setTimeout("play_specials()", 2000);
			} else {
				specials.tabs().stop();
			}
		}
	});
	var scroll_tracking = {};
	$ec("div.scrollable").each(function(){
		var id = $ec(this).attr('id');
		scroll_tracking[id] = $ec(this).scrollable({
			size: 1,
			api: true,
			clickable: false,
			keyboard: false,
			onBeforeSeek: function(){
				$('.searchInv_result').removeClass('si_results_active').empty();
			}
		});
		$ec(this).find('ul.searchInv_cat_links > li > a').click(function(){
			// AJAX CALL TO RETRIEVE VEHICLE INFO
			// SCROLL TO RESULTS PANE
			var a_link = this;
			var args_list = $(this).attr('id').split('_');
			var ajax_display_type = args_list[2] + '_' + args_list[3];
			condition_type = args_list[2];
			if( condition_type == 'new' ){
				condition_type = 'n';
			}
			args = {
				vehicle_status: 'website_unsold',
				mode: 'filters',
				include_group_inventory: 1,
				condition_id: condition_id_map[condition_type],
				stores: '1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1735, 1736, 1752, 1864, 1865'
			};
			if( args_list[3] == 'price' ){
				args.min_price = args_list[5];
				args.max_price = args_list[6];
			}else if( args_list[3] == 'store' ){
				args.stores = args_list[4];
			}else if( args_list[3] == 'body' ){
				args['body_types'] = [ body_type_id_map[args_list[5]] ];
			}else{
				args[args_list[3] + '_id'] = args_list[5];
			}

			$.getJSON('/web/ajax', args, function(data){
				ajax_display[ajax_display_type](data, a_link);
			});
			scroll_tracking[id].end();
			return false;
		});
	});
	$ec(".searchInv_tabs").tabs("> .searchInv_panes > div", {
		effect: 'fade',
		onBeforeClick: function(e, i){
			var panes = this.getPanes();
			if( $ec(panes[i]).attr('id') ){
				scroll_tracking[$ec(panes[i]).attr('id')].begin();
			}
		}
	});
	// DEALER INFO BOXES
	$ec("#dealer_info").tabs("#dealer_info div.pane", {
		tabs: 'h3', 
		effect: 'slide',
		onBeforeClick: function(event, tabIndex){
			var $pane = this.getCurrentPane();
			var id = $pane.find('.seoVideo_player > a').attr('id');
			if( typeof(id) !== 'undefined'){
				$f(id).unload();
			}
		},
		onClick: function(){
			var $pane = this.getCurrentPane();
			var id = $pane.find('.seoVideo_player > a').attr('id');
			var control_id = $pane.find('.ec_flowplayer_controlbar').attr('id');
			if( typeof(id) !== 'undefined' && $f(id) ){
				$f(id).controls(control_id);
				if( id == 'ec_flowplayer_parkplace' && $f(id) ){
					$f(id).play();
				}
			}
		}		
	});
	//setup callback events
	$ec('.back_to_specials').click(function(){
		inv_tabs.tabs().click(0);
		return false;
	});
	$ec('.ecl_video_unmute').click(function(){
		$f('ec_flowplayer_parkplace').unmute();
		return false;
	});

	//TOOLTIP EFFECT FOR SPECIALS BOXES
	$ec('.ecl_make_combined_list_trigger').tooltip({
		effect: 'slide',
		offset: [ 45, 0 ]
	});
	$ec('.ecl_make_combined_list_trigger').click(function(){
		$ec(this).tooltip().show();
		return false;
	});
	
	$ec("a[rel]").overlay({ 
		onBeforeLoad: function() { 
			var wrap = this.getContent().find("#parkplace_experience"); 
			wrap.load('/web/the_experience_frame');
		},
		onClose: function(){
			var wrap = this.getContent().find("#parkplace_experience"); 
			wrap.empty();
		}	
	}); 
});
