<!-- this is external javascript
function trim(str) {
  return str.replace(/^\s+|\s+$/g,'');
}

function isEmail(str) {
  var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
  return regex.test(str);
}

var isvalid_numb = '0123456789';
var isvalid_deci = '0123456789.';
var isvalid_lwr = 'abcdefghijklmnopqrstuvwxyz';
var isvalid_upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
if (parm == "") return true;
for (i=0; i<parm.length; i++) {
if (val.indexOf(parm.charAt(i),0) == -1) return false;
}
return true;
}

function isNum(parm) {return isValid(parm,isvalid_numb);}
function isDec(parm) {return isValid(parm,isvalid_deci);}
function isLower(parm) {return isValid(parm,isvalid_lwr);}
function isUpper(parm) {return isValid(parm,isvalid_upr);}
function isAlpha(parm) {return isValid(parm,isvalid_lwr+isvalid_upr);}
function isAlphanum(parm) {return isValid(parm,isvalid_lwr+isvalid_upr+isvalid_numb);}

function load() {

}

function isEven(num) {
  return !(num % 2);
}
function isOdd(num) {
  return !isEven(num);
}

// added 09/01/2008 - clintl
function verify_submit(submsg) {
    msg = "Are you absolutely sure that you want to submit this form?";
    if (typeof submsg != "undefined") {
    msg = msg + "\n\nWARNING: " + submsg;
    }
    //all we have to do is return the return value of the confirm() method
    return confirm(msg);
}

// added 20/03/2008 - clintl
function date_padout(number) { 
	return (number < 10) ? '0' + number : number;
}

// added 07/04/2008 - clintl
function toggleLayer( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

// added 07/04/2008 - clintl
function toggleToggler( whichToggler )
{
  if ( document.getElementById( whichToggler ).innerHTML.search(/minus/) != -1 )
    document.getElementById( whichToggler ).innerHTML = '<img src="./img/plus.gif">';
  else if ( document.getElementById( whichToggler ).innerHTML.search(/plus/) != -1 )
    document.getElementById( whichToggler ).innerHTML = '<img src="./img/minus.gif">';
}

// written 07/05/2009 - clintl
function resize_iframe(){
document.getElementById("iframe_id").height="" // required for Moz bug, value can be "", null, or integer
document.getElementById('iframe_id').height=window.frames["iframe_name"].document.body.scrollHeight+(moz?mozHeightOffset:0)
}

-->
