function validate_form(form)
{ 
	var inputFields = form.getElementsByTagName('input');
	var selectFields = form.getElementsByTagName('select');
	var textFields = form.getElementsByTagName('textarea');
	var submitCheck = 0;
	var j = 0, RequiredInputFields = new Array(), RequiredSelectFields = new Array(), 
		k = 0,	RequiredTextAreaFields = new Array(), EmailValidateFields = new Array(),
		l = 0,	RequiredNumberFields = new Array();	
	
	// for input fields class
	for(i=0;i<(inputFields.length);i++)
	{
		if(inputFields[i].className.indexOf('required') > -1 ) // required class
			RequiredInputFields[j++] = inputFields[i];

		if(inputFields[i].className.indexOf('validate-email') > -1 ) // validate - email class
			EmailValidateFields[k++] = inputFields[i];
		
		if(inputFields[i].className.indexOf('validate-number') > -1 ) // valid number class
			RequiredNumberFields[l++] = inputFields[i];
	}
	
	for(i=0;i<(RequiredInputFields.length);i++) // for required fields
	{
		if(RequiredInputFields[i].value == '' )
		{
			if(RequiredInputFields[i].className.indexOf('error-border') < 0 )
			{	
				var cn = RequiredInputFields[i].className;
				cn = cn + ' error-border';
				RequiredInputFields[i].className = cn;
			}
			submitCheck = 1;
		}
		else
			removeClassName(RequiredInputFields[i],'error-border');
	}

	for(i=0;i<(EmailValidateFields.length);i++) // for valid email fields 
	{
		var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		var str = EmailValidateFields[i].value;
		if(EmailValidateFields[i].value != '')
		if(!filter.test(str))
		{
			if(EmailValidateFields[i].className.indexOf('error-border') < 0 )
			{	
				var cn = EmailValidateFields[i].className;
				cn = cn + ' error-border';
				EmailValidateFields[i].className = cn;
			}
			submitCheck = 1;
		}
		else
			removeClassName(EmailValidateFields[i],'error-border');
	}
	
	for(i=0;i<(RequiredNumberFields.length);i++) // for valid number fields
	{
		var filter = /^([+0-9])/;
		if(RequiredNumberFields[i].value != '')
		if(!filter.test(RequiredNumberFields[i].value))
		{
			if(RequiredNumberFields[i].className.indexOf('error-border') < 0 )
			{	
				var cn = RequiredNumberFields[i].className;
				cn = cn + ' error-border';
				RequiredNumberFields[i].className = cn;
			}
	 		submitCheck = 1;
		}
		else
			removeClassName(RequiredNumberFields[i],'error-border');
	}

	// for dropdown menu
	j=0;
	for(i=0;i<(selectFields.length);i++)
	{
		if(selectFields[i].className.indexOf('required') > -1 )
			RequiredSelectFields[j++] = selectFields[i]; 
	}
	
	for(i=0;i<(RequiredSelectFields.length);i++)
	{
		if(RequiredSelectFields[i].value == '' )
		{
			if(RequiredSelectFields[i].className.indexOf('error-border') < 0 )
			{	
				var cn = RequiredSelectFields[i].className;
				cn = cn + ' error-border';
				RequiredSelectFields[i].className = cn;
			}
			submitCheck = 1;
		}
		else
			removeClassName(RequiredSelectFields[i],'error-border');
	}

	// for textarea fields
	j=0;
	for(i=0;i<(textFields.length);i++)
	{
		if(textFields[i].className.indexOf('required') > -1 )
			RequiredTextAreaFields[j++] = textFields[i];
	}
	
	for(i=0;i<(RequiredTextAreaFields.length);i++)
	{	
		if(RequiredTextAreaFields[i].value == '' )
		{
			if(RequiredTextAreaFields[i].className.indexOf('error-border') < 0 )
			{	
				var cn = RequiredTextAreaFields[i].className;
				cn = cn + ' error-border';
				RequiredTextAreaFields[i].className = cn;
			}
			submitCheck = 1;
		}
		else
			removeClassName(RequiredTextAreaFields[i],'error-border');
	}
	
	// if there is  error then return false else return true
	if(submitCheck == 1)
		return false;	
	else
		return true;
}

function removeClassName(e,t) {

    if (typeof e == "string")
        e = xGetElementById(e);

    //code to change and replace strings
	var ec = ' ' + e.className.replace(/^s*|s*$/g,'') + ' ';
	var nc = ec;
	t = t.replace(/^s*|s*$/g,'');

    //check if not already there

    if (ec.indexOf(' '+t+' ') != -1) {
	    //found, so lets remove it
	    nc = ec.replace(' ' + t.replace(/^s*|s*$/g,'') + ' ',' ');
	}

    //return the changed text!
	e.className = nc.replace(/^s*|s*$/g,''); //trimmed whitespace

    return true;
}