(function($) {
	$(document).ready(function() {

		$("#batterySearchInput").focus(function() {
			$(this).removeClass('faded');
			if($(this).val() == 'enter a model, make or battery type') {
				$(this).val('');
			}
		});
		

		$("#batterySearchInput").blur(function() {
			if($(this).val() == '') {
				$(this).addClass('faded');
				$(this).val('enter a model, make or battery type');
			}
		});

		
		$("#findARetailer").focus(function() {
			$(this).removeClass('faded');
			if($(this).val() == 'enter suburb or postcode') {
				$(this).val('');
			}
		});


		$("#findARetailer").blur(function() {
			if($(this).val() == '') {
				$(this).addClass('faded');
				$(this).val('enter suburb or postcode');
			}
		});
		
		
		if($("#advancedSearch") != null && $("#advancedSearch").length > 0) {
			var base		= "#advancedSearch ul li";
			var ajaxUrl		= '/search/index.php';
	
			$(base + ' .application').val(0);
			$(base + ' .manufacture').attr('disabled', 'disabled').html('<option value="0"></option>');
			$(base + ' .model').attr('disabled', 'disabled').html('<option value="0"></option>');
			$(base + ' .year').attr('disabled', 'disabled').html('<option value="0"></option>');				
	
	
			function toggleBold(location, action) {
				var label	= $(location).parent().children('label');
				var info	= label.text();
				
				switch(action) {
					case 'show':
						label.html('<strong>' + info + '</strong>');
						break;
						
					case 'hide':
						label.html(info);
						break;
				}			
			}
		
	
			$(base + ' .application').change(function() {
				$("#advancedSearch").attr('action', 'javascript:void(0);');
				$(base + ' .model').attr('disabled', 'disabled').html('<option value="0"></option>');
				$(base + ' .year').attr('disabled', 'disabled').html('<option value="0"></option>');				
				$(base + ' .submitButton').attr('src', $(base + ' .submitButton').attr('src').replace('find.jpg', 'find_faded.jpg'));			
				toggleBold(base + ' .manufacture', 'hide');
				toggleBold(base + ' .model', 'hide');
				toggleBold(base + ' .year', 'hide');
				
				if($(this).val() == 0) {
					$(base + ' .manufacture').attr('disabled', 'disabled').html('<option value="0"></option>');
				} else {
					$(base + ' .manufacture').html('<option value="0">Loading...</option>').attr('disabled', 'disabled');
					
					$.post(ajaxUrl + '/advanced/', 
						{
							isAjax:			true,
							get:			'manufacture',
							applicationID:	$(this).val()
						},
						
						function(response) {
							$(base + ' .manufacture').html('<option value="0">Please Select</option>');
							
							for(i in response) {
								if(response[i].ID != undefined) {
									$(base + ' .manufacture').append('<option value="' + response[i].ID + '">' + response[i].name + '</option>');
								}
							}
							
							$(base + ' .manufacture').attr('disabled', '');
							toggleBold(base + ' .manufacture', 'show');
						}, "json"
					);			
				}
			});
			
			
			$(base + ' .manufacture').change(function() {
				$("#advancedSearch").attr('action', 'javascript:void(0);');
				$(base + ' .year').attr('disabled', 'disabled').html('<option value="0"></option>');			
				$(base + ' .submitButton').attr('src', $(base + ' .submitButton').attr('src').replace('find.jpg', 'find_faded.jpg'));			
				toggleBold(base + ' .model', 'hide');
				toggleBold(base + ' .year', 'hide');
	
				if($(this).val() == 0) {
					$(base + ' .model').attr('disabled', 'disabled').html('<option value="0"></option>');
				} else {
					$(base + ' .model').html('<option value="0">Loading...</option>').attr('disabled', 'disabled');
					
					$.post(ajaxUrl + '/advanced/', 
						{ 
							isAjax:			true,
							get:			'model',
							manufactureID:	$(this).val()
						},
						
						function(response) {
							$(base + ' .model').html('<option value="0">Please Select</option>');
							
							for(i in response) {
								if(response[i].ID != undefined) {
									$(base + ' .model').append('<option value="' + response[i].ID + '">' + response[i].name + '</option>');
								}
							}
							
							$(base + ' .model').attr('disabled', '');
							toggleBold(base + ' .model', 'show');
						}, "json"
					);			
				}
			});		
			
			
			$(base + ' .model').change(function() {
				$("#advancedSearch").attr('action', 'javascript:void(0);');
				$(base + ' .submitButton').attr('src', $(base + ' .submitButton').attr('src').replace('find.jpg', 'find_faded.jpg'));			
				toggleBold(base + ' .year', 'hide');
	
				if($(this).val() == 0) {
					$(base + ' .year').attr('disabled', 'disabled').html('<option value="0"></option>');				
				} else {
					$(base + ' .year').html('<option value="0">Loading...</option>').attr('disabled', 'disabled');
					
					$.post(ajaxUrl + '/advanced/', 
						{ 
							isAjax:			true,
							get:			'year',
							modelName:		$(base + ' .model option:selected').text(),
							manufactureID:	$(base + ' .manufacture').val()
						},
						
						function(response) {
							$(base + ' .year').html('');
							
							for(i in response) {
								if(response[i].ID != undefined) {
									var description	= '';
									var start		= response[i].start;
									var end			= response[i].end;
									
									if(start == 0 && end == 0) {
										description = 'All';
									} else if(end == 0) {
										description = start + ' onwards';
									} else if(start == 0) {
										description = 'until ' + end;
									} else {
										description = start + ' - ' + end;
									}
									
									$(base + ' .year').append('<option value="' + response[i].ID + '">' + description + '</option>');
								}
							}
	
							$(base + ' .year').attr('disabled', '');
							$("#advancedSearch").attr('action', ajaxUrl + '/models/ID-' + $(base + ' .year').val());
							$(base + ' .submitButton').attr('src', $(base + ' .submitButton').attr('src').replace('find_faded.jpg', 'find.jpg'));									
							toggleBold(base + ' .year', 'show');
	
						}, "json"
					);			
				}
			});
			
			
			$(base + ' .year').change(function() {
				$("#advancedSearch").attr('action', ajaxUrl + '/models/ID-' + $(this).val());
			});		
		}
		
	});

})(jQuery);



function lookup() {
	(function($) {		
		var ajaxUrl		= "/search/index.php"; 
		var inputString	= $("#batterySearchInput").val();
		
		if(inputString.length == 0 || inputString == 'search by model, make or battery type') {
			$('#batterySearch').fadeOut();
		} else {
			
			$.post(ajaxUrl, 
				{ 
					isAjax:		true,
					searchStr:	inputString
				},
				
				function(response) {
					var results		= "";

					if(response.batteries.length == 0 && response.vehicles.length == 0) {
						results += "<ul><li class='padded'>No results found.</li></ul>";	
					}
					
					if(response.vehicles.length > 0) {
						results += "<ul><li class='bold padded'>Vehicles</li>";
						
						$.each(response.vehicles, function(i, vehicle) {
							url		= ajaxUrl + (parseInt(vehicle.modelID) > 0 ? '/models/ID-' + vehicle.modelID + (vehicle.yearVariations > 1 ? '-all' : ''): '/manufactures/ID-' + vehicle.makeID);
							results	+= "<li class='" + (i % 2 == 1 ? 'alt ' : '') + "'><a href='" + url + "'>" + vehicle.make + ' ' + vehicle.name + "</a></li>";
							
							if(i == 6) {
								i++;
								url		= ajaxUrl + '/models/' + encodeURI($("#batterySearchInput").val());
								results += "<li class='" + (i % 2 == 1 ? 'alt ' : '') + "'><a href='" + url + "'><strong>View All</strong></a></li>";
								return false;
							}
						});
						
						results += "</ul>";
					}
										
					if(response.batteries.length > 0) {
						results += "<ul><li class='bold padded'>Batteries</li>";

						$.each(response.batteries, function(i, battery) {
							url		= ajaxUrl + '/batteries/ID-' + battery.xrefID;
							results += "<li class='" + (i % 2 == 1 ? 'alt ' : '') + "'><a href='" + url + "'>" + battery.name + "</a></li>";
							
							if(i == 6) {
								i++;
								url		= ajaxUrl + '/batteries/' + encodeURI($("#batterySearchInput").val());
								results += "<li class='" + (i % 2 == 1 ? 'alt ' : '') + "'><a href='" + url + "'><strong>View All</strong></a></li>";
								return false;
							}
						});
						
						results += "</ul>";
					}
					
					$('#batterySearchResults')
						.removeClass('show').addClass('show') // Keep this here, it fixes up a random bug...
						.html("<ul>" + results + "</ul>");
					$('#batterySearch').fadeIn();
				}, "json"
			);			
		}				
	})(jQuery);
}

function fill() {
	setTimeout("jQuery('#batterySearch').fadeOut();", 200);
}
	

