$.extend($.ford, {vehicle: {}});
$.extend($.ford, {Vehicle: $.ford.vehicle});
$.extend($.ford.vehicle, {init: function() {
	$('li[data-key="specs"]').bind('click', function() {
		$.ford.vehicle.modal.specs.open();
	});
	
	$('.js_modal_compare').live('click', function(e) {
		e.preventDefault();
		$.ford.vehicle.modal.compare.open(e);
	});
	$('.js_modal_experience').live('click', function(e) {
		e.preventDefault();
		$.ford.vehicle.modal.experience.open(e);
	});
	
}});
$.extend($.ford.vehicle, {modal: {}});
$.extend($.ford.vehicle.modal, {specs: {
	obj: null,
	load: function() {
		$.ford.vehicle.modal.specs.obj = $('<div>').attr('id','saoModal').dialog(
			{
				autoOpen: false, 
				modal: true,
				resizable: false,
				width: 930,
				position: 'top'
			}
		);
		
		//the modal.specs.obj gets re-purposed into its own preloader
		var preloaderText = (_F.lang == 'en') ? 'Loading...' : 'Chargement...';
		var preloader = $("<div style='text-align:center;background:#fff;width:330px;height:40px; padding:40px 0;margin:0 auto'>" + preloaderText + "<br /><img src='/images/ajax-loader-white.gif' /></div>");
		$.ford.vehicle.modal.specs.obj.html( preloader );
		//...and centered
		$('#saoModal').closest('.ui-widget').css({'background':'none', 'margin-top':($(window).height()-120)/2 + $(window).scrollTop()+"px"});
		
		$.ajax({
			url: _F.root + '/' + _F.lang + '/modal/specs.html',
			data: {acode: $.ford.vehicle.baseAcode},
			success: function(data) {
				//reposition the modal.specs.obj now that the data has arrived
				$('#saoModal').closest('.ui-widget').css('margin-top', 0);
				
				$.ford.vehicle.modal.specs.obj.html(data);
				$('.js_modal_close').bind('click', function() {
					$.ford.vehicle.modal.specs.close();
				});
			}
		});
	},
	open: function() {
		if($.ford.vehicle.modal.specs.obj == null) {
			$.ford.vehicle.modal.specs.load();
		}
		
		/*Chrome Fix, allowing scrollbar to be grabbed, RB 8/8/11*/ $.ford.vehicle.modal.specs.obj.dialog({open: function(event, ui) { window.setTimeout(function() { jQuery(document).unbind('mousedown.dialog-overlay').unbind('mouseup.dialog-overlay');},100)},modal:true});
		
		$.ford.vehicle.modal.specs.obj.dialog('open');
	},
	close: function(setCookie) {
		if($.ford.vehicle.modal.specs.obj != null) {
			$.ford.vehicle.modal.specs.obj.dialog('close');
		}
	}
}});
$.extend($.ford.vehicle.modal, {compare: {
	obj: null,
	load: function(url) {
		var modalWidth = parseInt($('.js_modal_compare').data('width'));
		$.ford.vehicle.modal.compare.obj = $('<div>').dialog(
			{
				autoOpen: false, 
				modal: true,
				resizable: false,
				width: modalWidth,
				position: 'top',
				closeText: 'hide'
			}
		);
		$.ford.vehicle.modal.compare.obj.html('Loading...');
		$.ajax({
			url: '/app/' + _F.lang + '/modal/' + url,
			success: function(data) {
				$.ford.vehicle.modal.compare.obj.html(data);
				$('.js_modal_close').bind('click', function() {
					$.ford.vehicle.modal.compare.close();
				});
			}
		});
	},
	open: function(e) {
		if($.ford.vehicle.modal.compare.obj == null) {
			$.ford.vehicle.modal.compare.load($(e.currentTarget).data('page'));
			
		}
		$.ford.vehicle.modal.compare.obj.dialog('open');
	},
	close: function(setCookie) {
		if($.ford.vehicle.modal.compare.obj != null) {
			$.ford.vehicle.modal.compare.obj.dialog('close');
		}
	}
}});
$.extend($.ford.vehicle.modal, {experience: {
	obj: null,
	load: function(url) {
		
		$.ford.vehicle.modal.experience.obj = $('<div>').dialog(
			{
				autoOpen: false, 
				modal: true,
				resizable: false,
				width: 900,
				position: 'top',
				closeText: 'hide'
			}
		);
		$.ford.vehicle.modal.experience.obj.html('Loading...');
		$.ajax({
			url: '/app/' + _F.lang + '/modal/' + url,
			success: function(data) {
				$.ford.vehicle.modal.experience.obj.html(data);
				$('.js_modal_close').bind('click', function() {
					$.ford.vehicle.modal.experience.close();
					
				});
			}
		});
	},
	open: function(e) {
		if($.ford.vehicle.modal.experience.obj == null) {
			
			$.ford.vehicle.modal.experience.load($(e.currentTarget).data('page'));
			
		}
		
		
		$.ford.vehicle.modal.experience.obj.dialog('open');
	},
	close: function(setCookie) {
		if($.ford.vehicle.modal.experience.obj != null) {
			
			$.ford.vehicle.modal.experience.obj.dialog('close');
			$("#example_video_1")[0].pause();
			$("#example_video_1")[0].currentTime = 0;
			
			
		}
		
	}
	
}});

function hide (overlay)
{
	$.ford.vehicle.modal.experience.obj.dialog('close');
}
$.extend($.ford.vehicle, {get: function(acode, color, state) {
	if(acode == undefined  || acode.length != 13) {
		throw "acode undefined";
	}
	var obj;
	$.ajax({
		  url: _F.root + '/' + _F.lang + '/' + _F.prov + '/' + acode + '/vehicle.json',
		  async: false,
		  dataType: 'json',
		  data: "color=" + color + "&state=" + state,
		  success: function(data) {
			  obj = data.vehicle;
		  }
	});
	return obj;
}});
$.extend($.ford.vehicle, {getFromModelYearId: function(modelYearId, type) {
	var obj;
	$.getJSON(_F.root + '/type/' + type + '/modelyear/' + modelYearId +
			'/baseacode.json', function(data) {
		var acode = data.acode;
			// Ford.Vehicle.Selector.load_vehicle(_F.acode, true);
	});
}});
$.extend($.ford.vehicle, {Acode: {
	modelYearId: function(modelYear) {
		var obj;
		$.ajax({
			  url: _F.root + '/type/' + _F.type + '/modelyear/' + modelYear + '/baseacode.json',
			  async: false,
			  dataType: 'json',
			  success: function(data) {
				  obj = data.acode;
			  }
		});
		return obj;			
	}
}});
$.extend($.ford.vehicle, {msrp: {}});
$.extend($.ford.vehicle, {Msrp: $.ford.vehicle.msrp});
$.extend($.ford.vehicle.msrp, {get: function(acode) {
	if(acode == undefined || acode.length != 13) {
		throw "acode undefined";
	}
	
	var obj;
	$.ajax({
		  url: _F.root + '/' + _F.lang + '/' + _F.prov + '/' + acode + '/msrp.json',
		  async: false,
		  dataType: 'json',
		  success: function(data) {
			  obj = data.msrp;
		  }
	});
	return obj;
}});
$.extend($.ford.vehicle.msrp, {display: function(acode) {
	return $.ford.vehicle.msrp.get(acode).display;
}});
$.extend($.ford.vehicle.msrp, {value: function(acode) {
	return $.ford.vehicle.msrp.get(acode).value;
}});
$.extend($.ford.vehicle.msrp, {load: function() {
	$.each($($.ford.vehicle.msrp._tag), function(key, object) { 
		$(object).html($.ford.vehicle.msrp.display($(object).data('acode')));
	});
}});
$.extend($.ford.vehicle.msrp, {validation: {}});
$.extend($.ford.vehicle.msrp, {Validation: $.ford.vehicle.msrp.validation});
$.extend($.ford.vehicle.msrp.validation, {hasTags: function() {
	return $(Ford.Vehicle.Msrp._tag).length > 0;
}});

