// === General ===
function ge()
{
 var ea;
 for( var i = 0; i < arguments.length; i++ ) {
 var e = arguments[i];
 if( typeof e == 'string' )
 e = document.getElementById(e);
 if( arguments.length == 1 )
 return e;
 if( !ea )
 ea = new Array();
 ea[ea.length] = e;
 }
 return ea;
}


function addEvent(obj, type, fn, name_hash)
{
 if (obj.addEventListener)
 obj.addEventListener( type, fn, false );
 else if (obj.attachEvent)
 {
 obj["e"+type+fn+name_hash] = fn;
 obj[type+fn+name_hash] = function() { obj["e"+type+fn+name_hash]( window.event ); }
 obj.attachEvent( "on"+type, obj[type+fn+name_hash] );

 }
}


function removeEvent(obj, type, fn, name_hash)
{
 if (obj.removeEventListener)
 obj.removeEventListener( type, fn, false );
 else if (obj.detachEvent)
 {
 obj.detachEvent( "on"+type, obj[type+fn+name_hash] );
 obj[type+fn+name_hash] = null;
 obj["e"+type+fn+name_hash] = null;
 }
}



function PopupPic(sPicURL) {      window.open( "popup.htm?"+sPicURL, "",       "resizable=0,HEIGHT=200,WIDTH=200"); } <!--//  //-->function MM_jumpMenu(targ,selObj,restore){ //v3.0  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");  if (restore) selObj.selectedIndex=0;}<!--//  //-->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_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_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_displayStatusMsg(msgStr) { //v1.0  status=msgStr;  document.MM_returnValue = true;}<!--//  //-->function MM_reloadPage(init) {  //reloads the window if Nav4 resized  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();}<!--//  //-->function MM_openBrWindow(theURL,winName,features) { //v2.0  window.open(theURL,winName,features);}<!--// MM Form Validation //-->function MM_validateForm() { //v4.0  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);    if (val) { nm=val.name; if ((val=val.value)!="") {      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';      } else if (test!='R') { num = parseFloat(val);        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');          min=test.substring(8,p); max=test.substring(p+1);          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }  } if (errors) alert('The following error(s) occurred:\n'+errors);  document.MM_returnValue = (errors == '');}
/*******************************************
             STRING FUNCTIONS
*******************************************/

function strtoupper(what){
  what.value = what.value.toUpperCase().replace(/([^0-9ABCDEFGHIJKLMNOPRSTUWYZ ])/g,"");
}

function strtopostcode(what){
  return what.toUpperCase().replace(/([^0-9ABCDEFGHIJKLMNOPRSTUWYZ ])/g,"");
}

function strtophone(what){
  return what.replace(/([^0-9 \(\)\+])/g,"");
}

function strtolower(what){
  what.value = what.value.toLowerCase().replace(/([^0-9a-z ])/g,"");
}

function strtofloat(what){
	return what.replace(/([^0-9\.])/g,"");
}

function strtoweblink(what){
  what = what.toLowerCase().replace(/([^0-9a-z\_\-])/g,"_");
  what = what.toLowerCase().replace(/^_/,"");
  return what.replace(/__/,"_");
  }
	
function GoMap(){
// local ABQIAAAAgJQOh4hDlki3px3aEeuKBxRlpk4tQAe7-mR9tz1sFsZwBYolwBQe95zaQ5YVJ4UJn8JGct2kPPJuJQ
// demo  ABQIAAAAgJQOh4hDlki3px3aEeuKBxT8EsadxXJUmaFX8feRF9AVBJQW4RSp1K3c0q1ppLKEWq3saMP6P2GZww	

    // Check to see if this browser can run the Google API
    if (GBrowserIsCompatible()) {

      var gmarkers = [];
      var htmls = [];
      var to_htmls = [];
      var from_htmls = [];
      var i=0;

      // A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);

        gmarkers[i] = marker;
        htmls[i] = html;
        i++;
        return marker;
      }

      // Display the map, with some controls and set the initial location
      var map = new GMap(document.getElementById("map"));
      map.addControl(new GSmallMapControl());
      map.centerAndZoom(new GPoint(-2.358992,53.397967),2);

      // Set up three markers with info windows

      var point = new GPoint(-2.358992,53.397967);
      var html = "";
      var marker = createMarker(point, 'Impact',html)
      map.addOverlay(marker);

    }

    else {
      ge('map').style.display = 'none';
    }

}

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_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_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_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

<!--//  //-->
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
