function checkform(form){
   
    var fo = document.getElementById("" + form + "");
    var allElements=fo.elements;
    var sub = 1;
	var errors="";
	var emailError="";
	var curNode="";
	var preNode="";
	var http_somewhere = -1;
	var link_somewhere = -1;
	var checked0=false;
	for(i=0; i<allElements.length; i++){
		var curEl=allElements[i];
		if(curEl.type=="radio") {
			if(curNode!=curEl.name){
				curNode=document.getElementsByName(curEl.name);
				checked0=false;
				for (j=0; j<curNode.length; j++){
					if (curNode[j].checked) checked0=true;
				}
				if(!checked0) errors+=curEl.name.split("_").join(" ")+"\n";
			}
		}
		curNode=curEl.name;
		if(curEl.name.indexOf("Date")>0 && curEl.value.trim()=="dd/mm/yy") errors+=curEl.name.split("_").join(" ")+"\n";
		if (curEl.name.indexOf("*")>0 && curEl.value.trim()=="")
		{
			errors+=curEl.name.split("_").join(" ")+"\n";

		}
		else
		{
				if(curEl.name.indexOf("mail")>0)
				{					
					if(!validEmailAddress(curEl.value.trim())) emailError="email format is incorrect.\n";
				}
				var   subSection = curEl.value.substring(7,0); 
				if (subSection == "<a href" || subSection=="http://"){
				//return false;
                    sub = 0;
				}

				
		}
		//to check if there are any urls or <a> tage in the text
		http_somewhere = (curEl.value.search(/http/i));
		link_somewhere = (curEl.value.search(/<a/i));
		if ((http_somewhere != -1)||(link_somewhere!=-1)) {
		//alert ('foundit'+curEl.value);
		    //return false;
		   sub = 0;
		}
	}
	if (errors!="") errors="The following fields are required: \n\n"+errors;
	if (emailError!=""){
		if(errors!="") errors+="\nAlso, "
		errors+=emailError;
	}
	if (errors!="")	{
		alert(errors);
		//return false;
		sub = 0;
	}
	
	if (sub == 1)
	{
        //return true;
        
        	fo.submit();
          
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function validEmailAddress(emailStr)
{
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=emailStr.match(emailPat)
	var error="";
	var sub = 1;
	
	if (matchArray==null)
	{
//		alert("Email address seems incorrect (check @ and .'s)")
		return false
	    
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null)
	{
//		alert("The username doesn't seem to be valid.")
		return false
		
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null)
	{
		for (var i=1;i<=4;i++)
		{
			if (IPArray[i]>255)
			{
//				alert("Destination IP address is invalid!")
				//return false
				history.back();
			}
		}
		return true
		
	}

	var domainArray=domain.match(domainPat)
	if (domainArray==null)
	{
//		alert("The domain name doesn't seem to be valid.")
		return false
		
	}

	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3)
	{
//		alert("The address must end in a three-letter domain, or two letter country.")
		return false
	   
	}

	if (len<2)
	{
		var errStr="This address is missing a hostname!"
//		alert(errStr)
		return false
		
	}

    return true;
}

