insertar registros con llaves foraneas

Hola comunidad, lo que quiero hacer es insertar en un solo formulario varios registros que están relacionadas a través de claves foráneas. Este es mi código:

require_once ("../../Include/conexion.php");
$contacto="INSERT INTO contacto (id_contacto, telefono, celular, correo) VALUES (null,'".$_POST["telefono"]."','".$_POST["celular"]."','".$_POST["correo"]."')";
$res=mysql_query($contacto,$conexion);
$id_contacto = mysql_insert_id();
if(mysql_query($id_contacto)>0){
	$direccion="INSERT INTO direccion (id_direccion, calle, numero, entre_calles,manzana,piso,barrio,ciudad,provincia) 	VALUES(null,'".$_POST["calle"]."','".$_POST["numero"]."','".$_POST["entre_calles"]."','".$_POST["manzana"]."','".$_POST["piso"]."','".$_POST["barrio"]."','".$_POST["ciudad"]."','".$_POST["provincia"]."')";
	$res1=mysql_query($direccion,$conexion);
	$id_direccion = mysql_insert_id();
}elseif(mysql_query($id_direccion)>0){
	$personas="INSERT INTO personas (id_personas, nombre, apellido, fecha_nacimiento,fecha_nacimiento,dni,id_contacto,id_direccion) 	VALUES(null,'".$_POST["nombre"]."','".$_POST["apellido"]."','".$_POST["fecha_nacimiento"]."','".$_POST["dni"]."','".$id_contacto."','".$id_direccion."')";
	$res2=mysql_query($personas,$conexion);
	print "<meta http-equiv=Refresh content=\"2 ; url= control_personas.php\">"; 

}else{
	echo('Ocurrio un error!');
}

Me salta un error que es:

Notice: Undefined variable: id_direccion in C:\xampp\htdocs\sigvee\Gerente\Cliente2\alta_personas.php on line 10
Desde ya muchas gracias a todos.
Hola,

El error está claro: la variable $id_direccion no existe. Valida que exista y vuelve a revisar (usa echo, print_r, etc.).

Saludos.