function IsEmail(textObj)
{
	if (textObj.value.length >0)
	{
		/*
		at_loc = textObj.value.indexOf("@");
		dot_loc = textObj.value.indexOf(".", at_loc);	
		comma = textObj.value.indexOf(",");	
		spaces = textObj.value.indexOf(" ");	
		last_dot = textObj.value.lastIndexOf(".") + 1;	
		len = textObj.value.length;
	    if ((at_loc > 0) && (dot_loc > (at_loc + 1)) &&
		    (comma == -1) && (spaces == -1) &&
            (len - last_dot >= 2) && (len - last_dot <= 3))
			return false;
		else
			return true;
			
		*/
		// DMQ 11/03/05 - Use regular expression
		
		var reg = new RegExp("^[\\w-]+(?:\\.[\\w-]+)*@(?:[\\w-]+\\.)+[a-zA-Z]{2,7}$");
		return reg.test(textObj.value);
	}
	else
	{
		return false;
	}
}

String.prototype.trim = function()
{
    // Use a regular expression to replace leading and trailing 
    // spaces with the empty string
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

// DMQ 11/03/05 - Test PostCode using regular expression
function IsPostCode(textObj)
{
	if (textObj.value.length>0)
	{
		var reg = new RegExp("^(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW]) [0-9][ABD-HJLNP-UW-Z]{2})$");
		return reg.test(textObj.value.trim().toUpperCase());
	}
	else
	{
		return false;
	}
}
function emptyField(textObj)
{	
	if (textObj.value.length == 0) return true;
	for (var i = 0; i<textObj.value.length; ++i)
	{ 
		var ch = textObj.value.charAt(i);
		if (ch != ' ' && ch != '\t') return false;
	}
	return true;
}
function validateDLExceptionForm(formObj)
{
	if (emptyField(formObj.txtexceptiontext))
	{
		alert("Please enter Exception text, either an email address or domain name.");
		selectElement(formObj.txtexceptiontext);
		return false;
	}
	return true;
}

function validateDLSearchForm(formObj)
{
	if (formObj.txtemailaddress)
	{
	    if (emptyField(formObj.txtemailaddress))
    	{
    		alert("Please enter your email address.");
	    	selectElement(formObj.txtemailaddress);
    		return false;
	    }
	    else if (!IsEmail(formObj.txtemailaddress))
	    {
    		alert("Invalid email address. Please enter a valid email address");
    		selectElement(formObj.txtemailaddress);
	    	return false;
    	}
    }

	if (!IsPostCode(formObj.txtpostcode))
	{
		alert("Please enter a valid UK Postcode.");
		selectElement(formObj.txtpostcode);
		return false;
	}

	return true;
}
function selectElement(elem)
{
	if (elem!=null)
	{
		var tag = elem.tagName.toUpperCase();
		if (tag =="INPUT" || tag == "TEXTAREA")
			elem.select();
		elem.focus();
	}
}

