var uB='??', uP='???', nua=navigator.userAgent.toLowerCase(); if (nua.indexOf("opera")!=-1) uB='op'; 
if (nua.indexOf("firefox")!=-1) uB='ff'; if (nua.indexOf("gecko")!=-1) uB='ff'; 
if ((uB=='??') && (nua.indexOf("msie")!=-1)) uB='ie'; if (nua.indexOf("mac")!=-1) uP='mac';
if (nua.indexOf("inux")!=-1) uP='unx'; if (nua.indexOf("deb")!=-1) uP='unx';
if (uP='???' && nua.indexOf("win")!=-1) uP='win';
function w(s) { document.write(s); }
function brs(n) { var s=''; for (var i=1; i<=n; i++) s=s+'<br>'; return s; }
function indent(n) { var s=''; for (var i=1; i<=n; i++) s=s+'&nbsp;'; return s; }
function rnd(x) { var d=new Date(), n=(d.getTime()*9301+49297)%233280; return Math.ceil((n/(233280.0))*x); }
function fmt(n,dp) { var z=n*Math.pow(10,dp); var y=Math.round(z); var x=y/Math.pow(10,dp); return zpad(x,dp); }
function zpad(x,dp) {
  var n=x.toString(), dpn=0; var dpp=n.indexOf(".");
  if (dpp==-1) { dpn=0; n+=dp>0 ? ".":""; } else dpn=n.length-dpp-1;
  var p=dp-dpn; if (p>0) { for (var i=1; i<=p; i++) n+="0"; }
  return n;
}
function pp() { var f=location.href; return f.substring(0,f.lastIndexOf('/')+1); }
function pn() { var f=location.href; return f.substring(f.lastIndexOf('/')+1,f.lastIndexOf('htm')+3); }
function getl(e) { return document.getElementById(e); }
function gets(e) { return getl(e).style; }
function getx(e) { return parseInt(gets(e).top); }
function gety(e) { return parseInt(gets(e).left); }
var bwh=document.body.clientHeight; 
window.onload = function() { document.onkeydown=nks; } // FF : add key scrolling
function nks(e) {
  if (!e) e = window.event; // IE : needed to stop it falling over
  var did=getl("cn"); if (e.keyCode==38) did.scrollTop -= 5;
  if (e.keyCode==40) did.scrollTop += 5; if (e.keyCode==33) did.scrollTop -= 100;
  if (e.keyCode==34) did.scrollTop += 100; if (e.keyCode==36) did.scrollTop =  0;
  if (e.keyCode==35) did.scrollTop = did.scrollHeight;
}
var iok=false;
function checkFile(path) {
  var i = new Image(); i.onload = function(){ievt(i, true);};
  i.onerror = function(){ievt(null, false)}; i.src = path;    
}
function ievt(img, loaded) { loaded ? iok=true : iok=false; }
var eli, lel, poz=0, hpz=0; lf='left', cn='center', np='justify', rt='right';

// <div id=A0 style= "position:absolute; top:A1px; left:A2px;'; width:A3px;" >
//   <table width=A3| bgcolor=A8~background=A8 cellpadding=A9 cellspacing=0>
//     <tr><td style="font-family: Verdana, Arial, sans-serif; line-height:1.5em; 
//                  font-size:A4|12px; color:A5|#000000; text-align:A6| ;
//                  border:A7|0px solid A10|'#ffffff'; ">
//       [>>> THE CONTENT <<<]
//     <\/td><\/tr>
//   <\/table>
// <\/div>
function eln(n,x,y) {
  elx=x; ely=y; var ds=' position:absolute; top:'+x+'px; left:'+y+'px;';
  if (arguments.length>=4 && eval(arguments[3])>0) { ds+=' width:'+arguments[3]+'px; '; }
  var tds='font-family: Verdana, Arial, sans-serif; '; 
  (uB=='ff') ? tds+='line-height:1.5em; ' : tds+='line-height:1.5em; '; 
  if (arguments.length>=5) { tds+='font-size:'; (arguments[4]>0) ? tds+=arguments[4]+'px; ' : tds+='12px; '; } 
  if (arguments.length>=6) { tds+='color:'; (arguments[5]!='') ? tds+=arguments[5]+'; ' : tds+='#000000; '; }
  if (arguments.length>=7) { if (arguments[6]!='') tds+='text-align:'+arguments[6]+'; '; } 
  var tb='', tdb='#ffffff'; if ((arguments.length>=8) && (arguments[7]>0)) tb=arguments[7];
  if ((arguments.length>=11) && (arguments[10]!='')) tdb=arguments[10];
  if (tb=='') tds+='border:0px none; '; if (tb!='') tds+='border:'+tb+'px solid '+tdb+'; '; 
  var tc=' '; if (arguments.length>=9 && arguments[8].indexOf('.')==-1) tc='bgcolor='+arguments[8]+' ';
  if (arguments.length>=9 && arguments[8].indexOf('.')!=-1) tc='background='+arguments[8]+' ';
  var tpd=0; if ((arguments.length>=10)&&(arguments[9]>0)) tpd=arguments[9]; 
  if (n!='') eli=n; else eli='id_'+arguments[0]+arguments[1]; if (getl(eli)) eli+=rnd(999); 
  var z='<div id="'+eli+'" style="'+ds+'">'; z+='<table ';
  if (arguments.length>=4 && eval(arguments[3])>0) z+=' width='+arguments[3]+' ';
  z+=tc+' '+'cellpadding='+tpd+' cellspacing=0><tr><td style="'+tds+'">'; 
  z+=es+'<\/td><\/tr><\/table><\/div>'; w(z); lel=getl(eli);
  hpz=lel.offsetTop+lel.offsetHeight; if (poz<hpz) poz=hpz; hpz+=10;
}
function el(x,y) {
  elx=x; ely=y; var ds=' position:absolute; top:'+x+'px; left:'+y+'px;';
  if (arguments.length>=3 && eval(arguments[2])>0) { ds+=' width:'+arguments[2]+'px; '; }
  var tds='font-family: Verdana, Arial, sans-serif; '; 
  (uB=='ff') ? tds+='line-height:1.5em; ' : tds+='line-height:1.5em; '; 
  if (arguments.length>=4) { tds+='font-size:'; (arguments[3]>0) ? tds+=arguments[3]+'px; ' : tds+='12px; '; } 
  if (arguments.length>=5) { tds+='color:'; (arguments[4]!='') ? tds+=arguments[4]+'; ' : tds+='#000000; '; }
  if (arguments.length>=6) { if (arguments[5]!='') tds+='text-align:'+arguments[5]+'; '; } 
  var tb='', tdb='#ffffff'; if ((arguments.length>=7) && (arguments[6]>0)) tb=arguments[6];
  if ((arguments.length>=10) && (arguments[9]!='')) tdb=arguments[9];
  if (tb=='') tds+='border:0px none; '; if (tb!='') tds+='border:'+tb+'px solid '+tdb+'; '; 
  var tc=' '; if (arguments.length>=8 && arguments[7].indexOf('.')==-1) tc='bgcolor='+arguments[7]+' ';
  if (arguments.length>=8 && arguments[7].indexOf('.')!=-1) tc='background='+arguments[7]+' ';
  var tpd=0; if ((arguments.length>=9)&&(arguments[8]>0)) tpd=arguments[8]; 
  eli='id_'+arguments[0]+arguments[1]; if (getl(eli)) eli+=rnd(999);
  var z='<div id="'+eli+'" style="'+ds+'">'; z+='<table ';
  if (arguments.length>=3 && eval(arguments[2])>0) z+=' width='+arguments[2]+' ';
  z+=tc+' '+'cellpadding='+tpd+' cellspacing=0><tr><td style="'+tds+'">'; 
  z+=es+'<\/td><\/tr><\/table><\/div>'; w(z); lel=getl(eli);
  hpz=lel.offsetTop+lel.offsetHeight; if (poz<hpz) poz=hpz; hpz+=10;
}
function uf(n,p,pp,ty,req,vl,mn,mx,t,l,s,c) {
  es=p; if (pp=='a') { el(t,l,'',s,c); t+=14; }  
  if (pp=='l') { t-=3; el(t,l,'',s,c); t-=2; var pw=lel.offsetWidth; l+=pw+5; }
  var ob=' onBlur="ehide();" '; var nob=' name=\"'+n+'\" id=\"'+n+'\" '+ob; 
  if (ty=='tT') { es='<input '+nob+' type=text size='+mx+' maxlength='+mx+'>'; }
  if (ty.charAt(0)=='a') { 
    var rws=parseInt(ty.charAt(1)); if (uB=='ff') rws-=1; // FF - textarea rows=+1 cf IE
    es='<textarea '+nob+' rows='+rws+' cols='+mx+'><\/textarea>';
  }
  if (ty=='cB') { es='<input '+nob+' type=checkbox>'; if (pp=='l') t+=1; } 
  if (ty=='dH') { 
    es='<select '+nob+' ><option value=\' \'>&nbsp;'+
       '<option value=Mr>Mr<option value=Mrs>Mrs<option value=Miss>Miss<\/select>';
    if (uB=='ie') t+=1; // IE - options t=-1px cf FF
  }		
  if (ty=='dD' || ty=='dZ') {
    es='<select '+ob+' name="'+n+'dd'+'" id="'+n+'dd'+'"><option value=\' \'>&nbsp;'; 
    for (var dy=1;dy<32;dy++) { es+='<option value='+dy+'>'+dy }; es+='<\/select>';
    es+='<select '+ob+' name="'+n+'mm'+'" id="'+n+'mm'+'"><option value=\' \'>&nbsp;'+
	    '<option value=JAN>JAN<option value=FEB>FEB<option value=MAR>MAR<option value=APR>APR'+
		'<option value=MAY>MAY<option value=JUN>JUN<option value=JUL>JUL<option value=AUG>AUG'+
		'<option value=SEP>SEP<option value=OCT>OCT<option value=NOV>NOV<option value=DEC>DEC'+
		'<\/select>';
    var yr=new Date(); yr=yr.getFullYear(); es+='<select '+ob+' name="'+n+'yy'+'" id="'+n+'yy'+'">'+
    '<option value=\' \'>&nbsp;<option value='+yr+'>'+yr+'<option value='+(yr+1)+'>'+(yr+1)+'<\/select>'; 
    if (uB=='ie') t+=1; // IE - options t=-1px cf FF
  }  
  if (ty=='dT' || ty=='dZ') {
    (ty=='dZ') ? es+=indent(3)+'at'+indent(3) : es='';
    es+='<select '+ob+' name="'+n+'h'+'" id="'+n+'h'+'"><option value=\' \'>&nbsp;<option value=00>00'; 
    for (var hrs=1;hrs<10;hrs++) { es+='<option value=0'+hrs+'>0'+hrs };
    for (var hrs=10;hrs<24;hrs++) { es+='<option value='+hrs+'>'+hrs }; es+='<\/select>';
    es+='<select '+ob+' name="'+n+'m'+'" id="'+n+'m'+'"><option value=\' \'>&nbsp;<option value=00>00'; 
    for (var mn=1;mn<4;mn++) { es+='<option value='+(mn*15)+'>'+(mn*15) }; es+='<\/select>';
	if (ty=='dT' && uB=='ie') t+=1; // IE - options t=-1px cf FF (not duped for dZ)
  }
  if (ty=='dC') { 
    es='<select '+nob+' ><option value="XX">&nbsp;';
    var cotw=new Array("GB","United Kingdom","US","USA","XX","--------------",
	"AL","Albania","DZ","Algeria","AS","American Samoa","AD","Andorra","AO","Angola","AI","Anguilla","AG","Antigua",
    "AN","Antilles","AR","Argentina","AM","Armenia","AW","Aruba","AU","Australia","AT","Austria","AZ","Azerbaijan",
    "BS","Bahamas","BH","Bahrain","BD","Bangladesh","BB","Barbados","BE","Belgium","BZ","Belize",
    "BJ","Benin Peoples Rep","BM","Bermuda","BO","Bolivia","BA","Bosnia","BW","Botswana","BR","Brazil",
    "VI","British Virgin Is","BN","Brunei","BG","Bulgaria","BF","Burkina Faso","BI","Burundi","KH","Cambodia",
    "CA","Canada","KY","Cayman Islands","CF","Central African Rep","TD","Chad","CL","Chile","CN","China",
    "CO","Colombia","CG","Congo","CK","Cook Islands","CR","Costa Rica","HR","Croatia","CU","Cuba","CY","Cyprus",
    "CZ","Czech Republic","DK","Denmark","DJ","Djibouti","DM","Dominica","DO","Dominican Rep","EC","Ecuador",
    "EG","Egypt","SV","El Salvador","GQ","Equatorial Guinea","ER","Eritrea","EE","Estonia","ET","Ethiopia",
    "FO","Faeroe Islands","FK","Falkland Islands","FJ","Fiji","FI","Finland","FR","France","GF","French Guyana",
    "PF","French Polynesia","GA","Gabon","GM","Gambia","GE","Georgia","DE","Germany","GH","Ghana","GI","Gibraltar",
    "GR","Greece","GL","Greenland","GD","Grenada","GP","Guadeloupe","GT","Guatemala","GN","Guinea","GW","Guinea Bissau",
    "GY","Guyana","HT","Haiti","HN","Honduras","HK","Hong Kong","HU","Hungary","IS","Iceland","IN","India",
    "ID","Indonesia","IR","Iran","IE","Ireland","IL","Israel","IT","Italy","CI","Ivory Coast","JM","Jamaica",
    "JP","Japan","JO","Jordan","KZ","Kazakhstan","KE","Kenya","KI","Kiribati","KW","Kuwait","KG","Kyrgyzstan",
    "LA","Laos","LV","Latvia","LB","Lebanon","LS","Lesotho","LR","Liberia","LY","Libya","LI","Liechtenstein",
    "LT","Lithuania","LU","Luxembourg","MO","Macau","MK","Macedonia","MG","Madagascar","MW","Malawi","MY","Malaysia",
    "MV","Maldives","ML","Mali","MT","Malta","MP","Mariana Islands","MH","Marshall Islands","MQ","Martinique",
    "MR","Mauritania","MU","Mauritius","MX","Mexico","MC","Monaco","MS","Montserrat","MA","Morocco","MZ","Mozambique",
    "MM","Myanmar","NA","Namibia","NR","Nauru","NP","Nepal","NL","Netherlands","NC","New Caledonia","NZ","New Zealand",
    "NI","Nicaragua","NE","Niger","NG","Nigeria","NO","Norway","OM","Oman","PK","Pakistan","PA","Panama",
    "PG","Papua New Guinea","PY","Paraguay","KP","Peoples Rep Korea","PE","Peru","PH","Philippines","PL","Poland",
    "PT","Portugal","PR","Puerto Rico","QA","Qatar","CM","Republic Cameroon","RE","Reunion","RO","Romania",
    "RU","Russia","RW","Rwanda","SA","Saudi Arabia","SN","Senegal","CS","Serbia &amp; Montenegro","SC","Seychelles",
    "SL","Sierra Leone","SG","Singapore","SK","Slovakia","SI","Slovenia","SB","Solomon Islands","SO","Somalia",
    "ZA","South Africa","KR","South Korea","ES","Spain","LK","Sri Lanka","KN","St Kitts Nevis","LC","St Lucia",
    "VC","St Vincent","SD","Sudan","SR","Suriname","SZ","Swaziland","SE","Sweden","CH","Switzerland","SY","Syria",
    "TW","Taiwan","TJ","Tajikistan","TZ","Tanzania","TH","Thailand","TG","Togo","TO","Tonga","TT","Trinidad & Tobago",
    "TN","Tunisia","TR","Turkey","TM","Turkmenistan","TC","Turks & Caicos","TV","Tuvalu","UG","Uganda","UA","Ukraine",
    "AE","United Arab Emirates","UY","Uruguay","UM","US Minor Islands","UZ","Uzbekistan","VU","Vanuatu",
    "VE","Venezuela","VN","Vietnam","YE","Yemen Republic","ZM","Zambia","ZW","Zimbabwe");
	for (var c=0;c<cotw.length-1;c+=2) { es+='<option value='+cotw[c]+'>'+cotw[c+1]+'</option>'; }
    es+='</select>'; if (uB=='ie') t+=1; // IE - options t=-1px cf FF}
  }		
  eln('el_'+n,t,l,'',s,c); var few=lel.offsetWidth; // FF - no dupe names
  if (req=='r' || req=='y') {
    var rpz=16; if (uB=='ff') { rpz=14; } ;    // FF : push up all u/l by 2
	if (uB=='ie' && ty.charAt(0)=='d') rpz=15; // IE : push up drop u/l by 1
    es='<hr style=\"background-color:#ff0000; height:3px;\">'; el(t+rpz,l+2,few-4); // Safari fudge
  } 
}
function einit() {
  es="<img src='g_ert.gif'>"; eln('ert',ln,tl); hide(eli); 
  es="<img src='g_erb.gif'>"; eln('erb',ln,tl); hide(eli); 
  es="<span id='err'></span>"; eln('erm',ln,tl,182,12,'#ff5555',cn,0,'g_erm.gif'); hide(eli); }
function ehide() { set('ert',0,0,0); set('erm',0,0,0); set('erb',0,0,0); } // move else still masks fields
function eshow(tn,n,e) {
  var x=parseInt(gets(tn).top), y=parseInt(gets(tn).left); 
  set('ert',x+25,y,0); fadein('ert',500);
  err.innerHTML="<b>"+n+"</b><br>"+e+"";
  set('erm',getx(tn)+76,gety(tn),0); fadein('erm',500);
  var mel=getl('erm'); var bpz=mel.offsetTop+mel.offsetHeight;
  set('erb',bpz,gety(tn),0); fadein('erb',500);
}
function vld8(s,r,t,m) {
  var chk, h, nos="0123456789", azu="ABCDEFGHIJKLMNOPQRSTUVWXYZ", azl="abcdefghijklmnopqrstuvwxyz";
  switch (t) {
    case "a": chk=" '-"+azu+azl;           h="can include only<br>apostrophes, hyphens<br>and letters"; break;
    case "n": chk=" -."+nos;               h="can include only<br>a minus sign, a period<br>and numbers"; break;
    case "m": chk=" £-,."+nos;             h="can include only<br>£ - , . and numbers"; break;
    case "p": chk=" -"+nos;                h="can include only<br>numbers and hyphens"; break;
    case "z": chk=" "+nos+azu+azl;         h="can include only<br>numbers and letters"; break;
    case "e": chk="@.-_"+nos+azu+azl;      h="is not a valid address"; break;
    default : chk=" @.,'-_&£"+nos+azu+azl; h="contains invalid characters (eg *()[] etc)"; break;
  }
  if (s=='' || s==' ') return (r=='r' || r=='y') ? "must be entered" : ""; 
  if (s.length<m) return "is not long enough";
  for (var i=0; i<s.length; i++) { if (chk.indexOf(s.charAt(i))<0) return h; } 
  switch (t) {
    case "a": 
      if (s.indexOf("  ")!=-1) return "has duplicated spaces";
      if ( (s.indexOf("''")!=-1) || (s.indexOf("--")!=-1) ) return "has duplicated punctuation";
      break;
    case "p": 
      var ns=''; for (var k=0; k<s.length; k++) { if (nos.indexOf(s.charAt(k))!=-1) ns+=s.charAt(k); } 
      if (ns.length<10 || ns.charAt(0)!="0") return "is not a valid<br>UK phone number";
	  break;
    case "e": 
      var ap=s.indexOf("@"); if (ap<1) return "must have an @ symbol"; 
	  if (s.indexOf("@",ap+1)>-1) return "cannot have<br>more than one @ symbol";
      if ( (s.indexOf(".")==0) || (s.indexOf("..")!=-1) || (s.indexOf(".@")!=-1) ) return "has a misplaced '.'";
      var dm=s.substring(ap+1); var fdp=dm.indexOf("."); if (fdp<1) return "is invalid<br>after the '@' symbol"; 
      if ( (dm.indexOf(".")==0) || (dm.indexOf("_")!=-1) ) return "has a misplaced<br>'.' or '_'";
      if ( (dm.indexOf("-")==0) || (dm.indexOf("-")==dm.length-1) ) return "has a misplaced '-'";
      var ldp=dm.lastIndexOf("."); if (ldp>dm.length-3) return "is invalid<br>after the last '.'";
      for (j=ldp+1; j<dm.length; j++) { if (nos.indexOf(dm.charAt(j))!=-1) return "has an invalid<br>numeric domain"; }
      break;
  }
  return "";
} // 27-07-07
function set(id,x,y,o) {
  var e=gets(id); e.top=x+'px'; e.left=y+'px'; // FF requires 'px' (not IE)
  e.filter="alpha(opacity="+o+")"; e.opacity=(o/100); } // IE requires alpha style (not FF)
function show(id,pc) { var e=gets(id); e.filter="alpha(opacity="+pc+")"; e.opacity=(pc/100); }
function hide(id) { var e=gets(id); e.filter="alpha(opacity="+0+")"; e.opacity=0; }
function fadein(id,ms) { var t=0, s=Math.round(ms/100); for(i=0; i<=100; i++) { setTimeout("show('"+id+"',"+i+")",(t*s)); t++; } } 
function fadeout(id,ms) { var t=0, s=Math.round(ms/100); for(i=100; i>=0; i--) { setTimeout("show('"+id+"',"+i+")",(t*s)); t++; } } 
function autofade(id,ms) { var e=gets(id); if (e.opacity==0) fadein(id,ms); else fadeout(id,ms); } 
function ani(id,ex,ey,so,eo,d,ems) { 
  var e=gets(id), x=parseInt(e.top), y=parseInt(e.left); 
  if (ex<0) ex=0; if (ey<0) ey=0; if(ey>1250) ey=1250; 
  if (so<0) so=0; if(so!=100) show(id,so); if(so>100) so=100; if (eo<0) eo=0; if(eo>100) eo=100; 
  if (d<0) d=0; if (d>30000) d=30000; if (ems<1) ems=1; if (ems>30000) ems=30000; 
  var xm=(ex-x), ix=Math.abs(xm), ym=(ey-y), iy=Math.abs(ym), pxm=(ix>iy) ? ix : iy; if (pxm<1) return;
  var xi=xm/pxm, yi=ym/pxm, t=0, s=ems/pxm, oi=eo/pxm;
  for (var i=0; i<=pxm; i++) { setTimeout("set('"+id+"',"+(x+(i*xi))+","+(y+(i*yi))+","+(so+(i*oi))+")",d+(t*s)); t++; } 
} 

