$(document).ready(function() {
 	/* SEARCH */
 	$('#search').keyup(function(event) {
  	if (event.keyCode == '13') {
			$('#search-form').submit();
   	}
	});
 	
 	/* LOGIN */
 	var login_flag = $('#login-flag').val();
 	var category_id = $('#category-id').val();
 	if (login_flag == 1) {
 		var htmltext = 'Logged In&nbsp;&nbsp;&nbsp;<input type="button" onclick="add_vehicle('+category_id+')" value="Add New Vehicle" />&nbsp;&nbsp;&nbsp;<input type="button" onclick="logout()" value="Logout" />';
 		$('#login-panel').html(htmltext);
		$('#login-panel').show();
 	}

	/* MODALS */ 	
 	$('#detailspanel').jqm({
 		trigger: '.detailspaneltrigger',
		modal: false,
		onShow: function(h) {
			h.w.slideDown('slow'); 
			h.o.css('opacity', 0.5); 
		},
		onHide: function(h) {
			$('#popup-thumbnail-large').unbind();
			for (i = 0; i <= 5; i = i + 1) {
	 			photo_num = i + 1;
				$('#popup-thumbnail'+photo_num).unbind();
			}
			h.w.slideUp('slow', function() {
			if (h.o)
				h.o.remove();
			});
			window.location.reload();
		}
	});
});

/* GENERAL */
function add_vehicle(cat) {
	$.ajax({
		url: 'vehicle.php',
  	type: 'post',
		contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
  	data: ({mode : 'add', category1 : cat, reg : '', reg_year : '', manufacturer : '', model : '', descr : '', engine_size : '', transmission : 'manual', fuel_type : 'petrol', mileage : '', colour : '', price : ''}),
  	success: function(response) {
  		var response_arr = response.split('|');
			if (response_arr[0] == 'OK') {
  			window.location.reload();
  		}
		}
	});
}

function vehicle_details(ref) {
 	var login_flag = $('#login-flag').val();
	$('#popup-thumbnail-large').attr('src', '/photo.php?type=main&id='+ref);
	$.ajax({
		url: 'popup_lookup.php',
  	data: ({type : 'info', id : ref}),
  	success: function(response) {
    	var response_arr = response.split('|');
 			$('#vehicle-id').val(ref);
 			if (login_flag == 1) {
				// BIND PHOTOGRAPH UPLOAD EVENTS
				new AjaxUpload('#popup-thumbnail-large', {
					action: 'upload.php',
					name: 'mainphoto',
					data: { vehicle_id : ref },
					onSubmit: function(file, ext) {
						if (!(ext && /^(jpg|jpeg)$/i.test(ext))) {
							alert('Error: invalid file format');
							return false;
						}
					},
					onComplete: function(file, response) {
						var response_arr = response.split('|');
						if (response_arr[0] == 'error') {
							alert('There was a problem uploading your photograph.\nPlease try again.');
						} else {
							var random_number = Math.floor(Math.random()*1001);
							$('#popup-thumbnail-large').attr('src', '/photo.php?type=main&id='+response_arr[1]+'#'+random_number);
						}
					}
				});

 				for (i = 0; i <= 5; i = i + 1) {
	 				photo_num = i + 1;
					new AjaxUpload('#popup-thumbnail'+photo_num, {
						action: 'upload.php',
						name: 'thumbnail',
						data: { vehicle_id : ref, pos : photo_num },
						onSubmit: function(file, ext) {
							if (!(ext && /^(jpg|jpeg)$/i.test(ext))) {
								alert('Error: invalid file format');
								return false;
							}
						},
						onComplete: function(file, response) {
							var response_arr = response.split('|');
							if (response_arr[0] == 'error') {
								alert('There was a problem uploading your photograph.\nPlease try again.');
							} else {
								var random_number = Math.floor(Math.random()*1001);
								$('#popup-thumbnail'+response_arr[0]).attr('src', '/photo.php?type=thumb&size=small&id='+response_arr[1]+'#'+random_number);
							}
						}
					});
 				}

				// EDITABLE FIELDS
				if (ref == 0) {
	 				$('#popup-reg').val('');
	 				$('#popup-reg-year').val('');
	 				$('#popup-model').val('');
	 				$('#popup-description').val('');
	 				$('#popup-price').val(0);
	 				$('#popup-manufacturer').val(0);
	 				$('#popup-category1').val(0);
	 				$('#popup-category2').val(0);
					$('#popup-engine-size').val('');
					$('#popup-transmission').val('manual');
					$('#popup-fuel-type').val('petrol');
					$('#popup-mileage').val('');
					$('#popup-colour').val('');
				} else {
	 				$('#popup-reg').val(response_arr[1]);
	 				$('#popup-reg-year').val(response_arr[2]);
	 				$('#popup-model').val(response_arr[3]);
	 				$('#popup-description').val(response_arr[4]);
	 				$('#popup-price').val(response_arr[5]);
	 				$('#popup-manufacturer').val(response_arr[7]);
	 				$('#popup-category1').val(response_arr[8]);
	 				$('#popup-category2').val(response_arr[9]);
					$('#popup-engine-size').val(response_arr[10]);
					$('#popup-transmission').val(response_arr[11]);
					$('#popup-fuel-type').val(response_arr[12]);
					$('#popup-mileage').val(response_arr[13]);
					$('#popup-colour').val(response_arr[14]);
				}
 			} else {
 				$('#popup-title').html(response_arr[15]);
 				$('#popup-description').html(response_arr[4]);
				if (parseInt(response_arr[10]) > 0) {
					$('#popup-engine-size').text(response_arr[10]+' CC');
				} else {
					$('#popup-engine-size').text('N/A');
				}
				$('#popup-transmission').text(response_arr[11]);
				$('#popup-fuel-type').text(response_arr[12]);
				if (response_arr[13] != '') {
					$('#popup-mileage').text(response_arr[13]);
				} else {
					$('#popup-mileage').text('N/A');
				}
				if (response_arr[14] != '') {
					$('#popup-colour').text(response_arr[14]);
				} else {
					$('#popup-colour').text('N/A');
				}
    		$('#popup-price').html('&pound;'+response_arr[5]);
    	}
	  }
	});

	// LOAD VEHICLE PHOTOGRAPHS
	$.ajax({
		url: 'popup_lookup.php',
  	data: ({type : 'photo', id : ref}),
  	success: function(data) {
 			var response_arr = data.split('|');
 			for (i = 0; i <= 5; i = i + 1) {
 				photo_num = i + 1;
 				if (response_arr[i] == undefined) {
					$('#popup-thumbnail'+photo_num).attr('src', '/images/no-photo.gif');
				} else {
					$('#popup-thumbnail'+photo_num).attr('src', '/photo.php?type=thumb&size=small&id='+response_arr[i]);
					$('#popup-thumbnail'+photo_num).bind('click', {id: response_arr[i]}, function(event) {
  					$('#popup-thumbnail-large').attr('src', '/photo.php?type=thumb&size=large&id='+event.data.id);
					});
				}
 			}
  	}
 	});
}

function update_vehicle() {
	var vehicle_id = parseInt($('#vehicle-id').val());
	if (vehicle_id == 0) {
		var mode = 'add';
	} else {
		var mode = 'update';
	}
	$.ajax({
		url: 'vehicle.php',
  	type: 'post',
  	contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
  	data: ({mode : mode, vehicle_id : vehicle_id, category1 : $('#popup-category1').val(), category2 : $('#popup-category2').val(), reg : $('#popup-reg').val(), reg_year : $('#popup-reg-year').val(), manufacturer : $('#popup-manufacturer').val(), model : $('#popup-model').val(), descr : $('#popup-description').val(), engine_size : $('#popup-engine-size').val(), transmission : $('#popup-transmission').val(), fuel_type : $('#popup-fuel-type').val(), mileage : $('#popup-mileage').val(), colour : $('#popup-colour').val(), price : $('#popup-price').val()}),
  	success: function(response) {
  		var response_arr = response.split('|');
  		if (response_arr[0] == 'OK') {
				$('#login-panel').text('Vehicle Details Updated');
				$('#vehicle-id').val(response_arr[1]);
			} else {
				$('#login-panel').text('Problem Updating Vehicle');
			}
		}
	});
}

function show_login() {
	$('#login-panel').show();
}

function login() {
	var password = $('#password').val();
	var category_id = $('#category-id').val();
	$.ajax({
		url: 'login.php',
  	type: 'post',
  	data: ({mode : 'login', password : password}),
  	success: function(data) {
  		if (data == 'OK') {
				var htmltext = 'Logged In&nbsp;&nbsp;&nbsp;<input type="button" onclick="add_vehicle('+category_id+')" value="Add New Vehicle" />&nbsp;&nbsp;&nbsp;<input type="button" onclick="logout()" value="Logout" />';
				$('#login-panel').html(htmltext);
			} else {
				$('#login-panel').text('Wrong Password');
			}
			window.location.reload();
		}
	});
}

function logout() {
	$.ajax({
		url: 'login.php',
  	type: 'post',
  	data: ({mode : 'logout'}),
  	success: function(data) {
  		if (data == 'OK') {
				window.location.reload();
			}
		}
	});
}
