function validateform() {


	if (document.contactform[18].value == "")
	{
		alert("Please enter your email address.");
		document.contactform[18].focus()
		return false;
	}

   var retValue = true;
   var myString = document.contactform[18].value;
   var newString = myString.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
   if (!newString) {
   		alert("Invalid email address. Please re-enter.");
		document.contactform[18].focus();
		retValue = false;
   }
   if (retValue == true) {

   }
   return retValue;

}

/*Example message arrays for the two demo scrollers*/

var pausecontent=new Array()
pausecontent[0]='<a href="">Lorem ipsum dolor sit amet consetetur sadipscing elitr, sed diam nonumy</a><br />25 June 2008<br /><br />At vero eos et accusam et justo duo dolores et ea rebum vero eos et accusam et justo duo dolores et ea rebum'
pausecontent[1]='<a href="">At vero eos et accusam et justo duo dolores et ea rebum</a><br />21 June 2008<br /><br />At vero eos et accusam et justo duo dolores et ea rebum vero eos et accusam et justo duo dolores et ea rebum'
pausecontent[2]='<a href="">Stet clita kasd gubergren</a><br />15 June 2008<br /><br />At vero eos et accusam et justo duo dolores et ea rebum vero eos et accusam et justo duo dolores et ea rebum'

/***********************************************
* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function pausescroller(content, divId, divClass, delay){
this.content=content //message array content
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
this.hiddendivpointer=2 //index of message array for hidden div
document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
var scrollerinstance=this
if (window.addEventListener) //run onload in DOM2 browsers
window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
else if (window.attachEvent) //run onload in IE5.5+
window.attachEvent("onload", function(){scrollerinstance.initialize()})
else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
this.hiddendiv=document.getElementById(this.tickerid+"2")
this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
this.getinline(this.visiblediv, this.hiddendiv)
this.hiddendiv.style.visibility="visible"
var scrollerinstance=this
document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
var scrollerinstance=this
if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
setTimeout(function(){scrollerinstance.animateup()}, 50)
}
else{
this.getinline(this.hiddendiv, this.visiblediv)
this.swapdivs()
setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
var tempcontainer=this.visiblediv
this.visiblediv=this.hiddendiv
this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
div1.style.top=this.visibledivtop+"px"
div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
var scrollerinstance=this
if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
setTimeout(function(){scrollerinstance.setmessage()}, 100)
else{
var i=this.hiddendivpointer
var ceiling=this.content.length
this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
this.animateup()
}
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}



//--------------------------------------------------------------------------------------------------------

var smooth_timer;
var OrigHeightArray	= new Array();
function servOC(i) {
	var MaxHeight = 0;
	var trObj = (document.getElementById) ? document.getElementById('ihtr' + i) : eval("document.all['ihtr" + i + "']");
	var ifObj = (document.getElementById) ? document.getElementById('ihif' + i) : eval("document.all['ihif" + i + "']");

	if (trObj != null) { //trObj is the id of the table row
		MaxHeight = OrigHeightArray[i];
		if (trObj.style.display=="none") {
			//Show the new row
			ifObj.style.height = "0px";
			trObj.style.display="";

			smoothHeight('ihif' + i, 0, MaxHeight, 10, 'o');
			document.getElementById('MoreInfoLnk'+i).innerHTML = "<a href='#' onclick='return false;'>Less Info...</a>";
		}else{     
			//Hide the new row
			smoothHeight('ihif' + i, MaxHeight, 0, 30, 'ihtr' + i);
			document.getElementById('MoreInfoLnk' + i).innerHTML = "<a href='#' onclick='return false;'>More Info...</a>";
		}
	}
}

//------------------------------------------------------------------------------------------------------------------------
function smoothHeight(id, curH, targetH, stepH, mode) {
	diff = targetH - curH;
	if (diff != 0) {
		newH =  diff > 0  ? curH + stepH : curH - stepH;
		if (diff > 0){
			newH = newH > targetH ? targetH : newH;
		}else{
			newH = newH < targetH ? targetH : newH;
		}
		((document.getElementById) ? document.getElementById(id) : eval("document.all['" + id + "']")).style.height = newH + "px";
		if (smooth_timer){
			window.clearTimeout(smooth_timer);
		}
		smooth_timer = window.setTimeout( "smoothHeight('" + id + "'," + newH + "," + targetH + "," + stepH + ",'" + mode + "')", 50 );
	}else if (mode != "o"){
		((document.getElementById) ? document.getElementById(mode) : eval("document.all['" + mode + "']")).style.display="none";
	}
}
//------------------------------------------------------------------------------------------------------------------------

function HideAllRows(){
	var NumDivs = document.getElementById('NumDivs').value;
	for (var i = 1; i <= NumDivs; i++){
		OrigHeightArray[i]	= document.getElementById('ihif' + i).offsetHeight;
		//alert("Setting OrigHeightArray for "+i+" to "+OrigHeightArray[i]);
		document.getElementById('ihtr'+i).style.display = "none";
	}
}

//------------------------------------------------------------------------------------------------------------------------
var domain = "dawson-marketing.co.uk";
function do_email (domain, name, enquiry, LinkClass) {
	document.write ("<a ");
	if (LinkClass != "") {
		document.write ("class='"+LinkClass+"' ");
	}
	document.write (" href=\"mailto:");
	document.write (name + "@" + domain);
	if (enquiry != "") {
		document.write ("?subject="+enquiry)
	}
	document.write ("\">")
	document.write (name + "@" + domain);
	document.write ("</a>")
}
//---------------------------------------------------------------------------------------------------
function displayobj(onoff, element) {
	//alert (onoff);
	var obj = "";
	obj=document.getElementById(element);
	obj.style.display=( (onoff==1) ? '' : 'none');
}
//---------------------------------------------------------------------------------------------------
function toggledisplayobj(element) {
	var obj = "";
	obj=document.getElementById(element);
	var onoff = obj.style.display;
	//alert (onoff);
	if (onoff == 'none') {
		onoff = 1;
	} else {
		onoff = 0;
	}
	obj.style.display=( (onoff==1) ? '' : 'none');
}
//---------------------------------------------------------------------------------------------------
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
//---------------------------------------------------------------------------------------------------
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//---------------------------------------------------------------------------------------------------
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//---------------------------------------------------------------------------------------------------
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; 
	document.MM_sr=new Array; 
	for(i=0;i<(a.length-2);i+=3)
		if ((x=MM_findObj(a[i]))!=null){
			document.MM_sr[j++]=x; 
		if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
	}
}
//---------------------------------------------------------------------------------------------------
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
//---------------------------------------------------------------------------------------------------
function MM_swapLabel() { //v3.0
  var i,j=0,x,a=MM_swapLabel.arguments; 
  document.MM_sr=new Array; 
  for(i=0;i<(a.length-2);i+=3)
   	if ((x=MM_findObj(a[i]))!=null){
		document.MM_sr[j++]=x; 
		x.oSrc=x.innerHTML; 
		x.innerHTML=a[i+2];
	}
}
//---------------------------------------------------------------------------------------------------
