//**************************************//
var W3CDOM = (document.getElementsByTagName && document.createElement);
var ValidateSummary=true;

window.onload = function () {
	document.forms[0].onsubmit = function () {
		return validate();
	}
}

function validate() {
	//alert ("validate()");
	validForm = true;
	firstError = null;
	errorstring = '';
	var x = document.forms[0].elements;
	for (var i=0;i<x.length;i++) {
		
		if (x[i].tagName == 'SELECT')
		{
		    //if (x[i][iIndex].value == "Select Type")
            if (x[i].selectedIndex == 0)
		        writeError(x[i],'This field is required','*');
		}
		if (x[i].tagName!='SELECT' && x[i].name!= 'Credit' && x[i].name!= 'TaxId' )
	    {
	    //document.write(x[i].tagName + '<br>');
		if (!x[i].value)
			writeError(x[i],'This field is required','*');//writeError(x[i],);
		}
	
	}
    //if (x['email'].value.indexOf('@') == -1)
    var email_address = x['email'].value;            
    var xx =email_address;
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(xx)==false)
        writeError(x['email'],'This is not a valid email address','*'); 
        
    var sPhone = x['phone'].value;
    xx = sPhone;
    var sFilterPhone = /^[0-9]\d{2}-\d{3}-\d{4}$/;
	 if (sFilterPhone.test(xx)==false)
        writeError(x['phone'],'This is not a valid Phone Number e.g. 111-222-3333','*');
    
    if (x['fax'])
    {   
        var sFax = x['fax'].value;
        xx = sFax;
        var sFilterFax = /^[0-9]\d{2}-\d{3}-\d{4}$/;
	     if (sFilterFax.test(xx)==false)
            writeError(x['fax'],'This is not a valid Fax Number e.g. 111-222-3333','*');
     }   
	
	//if (ValidateSummary && errorstring !='')
	if (errorstring !='')
	alert(errorstring);
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	if (validForm)
	{
		//alert('All data is valid!');	
	}
	return validForm;
}

function writeError(obj,message,HTMLMessage) {
	validForm = false;
	//if (obj.hasError) return;
	if (obj.hasError)
	    {
	    HTMLMessage = '';
	    obj.onchange = removeError;
	    }
	if (W3CDOM) {
		obj.className += ' error';
		obj.onchange = removeError;
		//var Tag = document.createElement('span');
		if (!obj.hasError)
		{
		var Tag = document.createElement('b');
		Tag.className = 'error';
		Tag.appendChild(document.createTextNode(HTMLMessage));
		obj.parentNode.appendChild(Tag);
		obj.hasError = Tag;
		}
		errorstring += obj.name + ': ' + message + '\n';
	}
	else 
	{
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
		ValidateSummary=false;
	}
	if (!firstError)
		firstError = obj;
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
