// JavaScript Document

// generic error handler
function genericErrorHandler(e){
    // get form field
    var obj=document.getElementsByTagName('form')[0].elements
[e.message.split('|')[0]];
    if(!obj){return false}
    // get error message
    var errorMsg=e.message.split('|')[1];
    // display error message
    showError(obj,errorMsg);
}
// display errors
function showError(obj,errorMsg){
    if(!obj.errorNode){
        obj.onchange=hideError;
        var spn=document.createElement('span');
        spn.appendChild(document.createTextNode(errorMsg));
        obj.parentNode.appendChild(spn);
        obj.errorNode=spn;
        obj.focus();
    }
    valid=false;
}
// hide errors    
function hideError(){
  this.parentNode.removeChild(this.errorNode);
  this.errorNode=null;
  this.onchange=null;
}
// validate form
function validateForm(){
    valid=true;
    try{
        var fields=document.getElementsByTagName('form')[0].elements;   
        if(!fields){return false};
        // validate First Name field
        //if(!fields['name'].value){
            //throw new Error('fname|Enter your Name');
        //}
		
		if(!/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z])+$/.test
		(fields['email'].value)){
    	throw new Error('email|Enter a valid email');
		}		
        // validate Last Name field
        if(!fields['subject'].value){
            throw new Error('lname|Enter your subject');
        }
        // validate Email field
        
    }
    // catch all errors
    catch(e){
        genericErrorHandler(e);
    }
    return valid;
}
// execute 'validateForm()' when form is submitted
window.onload=function(){
    var W3CDOM=document.getElementById&&document.
getElementsByTagName&&document.createElement;
    // check if browser is W3CDOM compatible
    if(W3CDOM){
        document.getElementsByTagName('form')[0].onsubmit=function(){
            return validateForm();
        }
    }
}