Quería darte pistas de lo que creo que es, en esta caso el fallo lo veo en el AS.
$contact_name = $_POST['name'];
$contact_email = $_POST['email'];
$contact_subject = $_POST['subject'];
esto recibe por via post el valor de las variables flash de name, email, subject...
Pero en tu código AS no veo escrito nada de name, email, subject.
Yo te pego como las suelo enviar
Código:
var envio = new LoadVars();
envio.name= name.text;
envio.email= email.text;
envio.sendAndLoad("email.php", envio, "POST");
envio.onLoad = function(exito)