function u_aaa() {return "bc|pink"}
function u_vanish(p,q,r,t) {
  eval("document.all."+p+".style.visibility='hidden'")
  eval("document.all."+q+".style.visibility='hidden'")
  if (r!="") eval("document.all."+r+".style.visibility='visible'")
  if (t>0) a_timer(t)
}
function u_parse(a,c,x) {
// returns xth substring in a, where these delimited by character(s) c
  var y,z; y=0,z=0
  for (var i=1; i<x; i++) {z=a.indexOf(c,y); if (z==-1) return ""; y=z+c.length}
  if (z>=0) z=a.indexOf(c,y)-y; else return ""
  if (z<0) return a.substr(y); else return a.substr(y,z)
}
function u_pa(a,x) {return u_parse(a,"@",x)}
function u_pr(a,x) {return u_parse(a,"|",x)}
function u_ps(a,x) {return u_parse(a,"*",x)}
function u_ph(a,x) {return u_parse(a,"#",x)}
function u_pe(a,x) {return u_parse(a,"=",x)}
function u_pc(a,x) {return u_parse(a,",",x)}
function u_pd(a,x) {return u_parse(a,"/",x)}
function u_pn(a,x) {return u_parse(a,";",x)}
function u_pu(a,x) {return u_parse(a,"_",x)}
function u_pz(a,x) {return u_parse(a,"+",x)}
function u_po(a,x) {return u_parse(a,":",x)}
function u_pb(a,x) {return u_parse(a," ",x)}
function u_py(a,x) {return u_parse(a,"-",x)}
function u_pt(a,x) {return u_parse(a,"~",x)}
function u_pk(a,x) {return u_parse(a,"!",x)}
function u_pp(a,x) {return u_parse(a,".",x)}
function u_fc(a,x) {return u_pF(u_parse(a,",",x))}
function u_pos(a,c,x) {
// returns position of xth substring c in a
  var y=0,z=0,j=c.length
  for (var i=1; i<=x; i++) {z=a.indexOf(c,y); if (z==-1) return -1; y=z+j} return z
}
function u_i(a,c,x) {
  var e=u_parse(a,c,x)
  if (e=="") return 0; if (isNaN(e)) return NaN; return parseInt(e)
}
function u_ix(a,c,x) {
  var e=u_parse(a,c,x), y=parseInt(e); if (isNaN(y)) return 0; return y
}
function u_j(a,x) {
  var e=u_parse(a,"|",x); if (e=="") return 0; return parseInt(e)
}
function u_k(a,x) {
  var e=u_parse(a,"|",x); if (e=="") return 0; return parseFloat(e)
}
function u_ss(n) {if (n<0) return n.toString(); else return "+"+n.toString()}
function u_look(e,a,c) {
  var i=0,d=""; do {i++; d=u_parse(a,c,i); if (d==e) return i; if (d=="") break} while (true)
  return 0} 
function u_insert(a,c,e) {
// if ch/str c is in string a, inserts str e in its place, else unchng
  while (2>1) {
    x=a.indexOf(c); if (x<0) return a
    a=a.substr(0,x)+e+a.substr(x+c.length)
    }
}
function u_off(a,z) {
  var s=eval("document.all."+a+".style")
  var x=parseInt(s.left), y=parseInt(s.top)
  if (z==1) {y-=5; s.top=y+"px"; var b=y>-100}
  if (z==2) {y+=5; s.top=y+"px"; var b=y<450}
  if (z==3) {x+=5; s.left=x+"px"; var b=x<780}
  if (z==4) {x-=5; s.left=x+"px"; var b=x>-200}
  if (z==5) {s.visibility="hidden"; var b=false}
  if (b) setTimeout("u_off('"+a+"',"+z+")",10)
    else {s.visibility="hidden"; s.left="0px"; s.top="0px"}
}
function u_on(a,z,n) {
  var s=eval("document.all."+a+".style")
  var x=parseInt(s.left), y=parseInt(s.top)
  if (z==1) {y+=20; s.top=y+"px"}
  if (z==2) {x+=20; s.left=x+"px"}
  if (z==3) {x-=20; s.left=x+"px"}
  n-=1; if (n>0) setTimeout("u_on('"+a+"',"+z+","+n+")",10)
}
function u_temppos(n) {
  posy[n]+=380
}
function u_f(n) {
  document.write("<form>")
  for (var i=1; i<=n; i++) 
    document.write("<input id=f"+i+" type=hidden>")
  document.write("</form>")
}
function u_u(a,c,n) {
  var b="",e,s,p="",i=0; if (a=="" || a=="|") return
  do {i++; b=u_parse(a,"|",i); if (b=="") break; e=u_dId(b)
  var f=(u_ie() && u_iO(e.tagName.toLowerCase(),"roundrect"))

//f=false
    if (c.charAt(0)=="{") {e.className=u_brac(c,"{}"); continue}
    s=e.style; p="px" 
    if (n=="tran") n="transparent"; if (n=="j") n="justify"
    if (n=="a") {n="auto"; p=""}; if (n=="p") n="pointer"
    if (c=="a") s.position="absolute"
    if (c=="r") s.position="relative"
    if (c=="h") s.visibility="hidden"
    if (c=="v") s.visibility="visible"
    if (c=="" || c=="o") s.visibility="inherit"
    if (c=="l") s.left=n+"px"
    if (c=="x") s.left=n+"px"
    if (c=="t") s.top=n+"px"
    if (c=="y") s.top=n+"px"
    if (c=="w") s.width=n+p
    if (c=="d") s.height=n+p
//    if (c=="w") s.width=u_fx(b,n,-1)+p
//    if (c=="d") s.height=u_fx(b,n,-2)+p
    if (c=="ff") s.fontFamily=n
    if (c=="fw") s.fontWeight=n
    if (c=="fs") s.fontSize=n+"pt"
    if (c=="fy") s.fontStyle=n
    if (c=="c") s.color=n
    if (c=="bc") if (!f) s.backgroundColor=n; else e.fillcolor=n
    if (c=="bi") s.backgroundImage=n
    if (c=="td") s.textDecoration=n
    if (c=="ta") s.textAlign=n
    if (c=="lh") s.lineHeight=n+"px"
    if (c=="rc") if (!f) s.borderColor=n; else e.strokecolor=n
    if (c=="rs") if (!f) s.borderStyle=n
    if (c=="pt") {if (n=="c") n=(u_g(b,"d")-u_g(b,"fs"))/2
                    s.paddingTop=n+"px"; s.paddingBottom=n+"px"}
    if (c=="pd") {s.paddingLeft=n+"px";s.paddingRight=n+"px"
                  s.paddingTop=n+"px";s.paddingBottom=n+"px"}
    if (c=="rt") {s.borderTopWidth=n+p; s.borderBottomWidth=n+p}
    if (c=="rb") s.borderBottomWidth=n+p
    if (c=="rw") if (!f) {s.borderLeftWidth=n+p; s.borderRightWidth=n+p
                s.borderTopWidth=n+p; s.borderBottomWidth=n+p} else e.strokeweight=n+p
    if (c=="ov") {s.overflowX=n; s.overflowY=n}
    if (c=="zi") s.zIndex=u_pI(n)
    if (c=="vv") {m=0; s.visibility="visible"; a=u_seg(a,"|",1,"").substr(1)
                    if (a!="") u_t("u_u('"+a+"','vv')",0.1); else m=1; return}
    if (c=="op") u_opac(b,n)
    if (c=="rr") {if (u_fx()) s.MozBorderRadius=n+p; if (u_sa()) s.webkitBorderRadius=n+p}

// if (u_ie()) s.arcSize="10%"}
    if (c=="cu") s.cursor=n
  } while (true)
/*
align backgroundImage borderStyle clear display fontStyle 
lineHeight listStyleType textIndent textTransform whiteSpace

borderWidths Specifies the width of the borders of an HTML element.
margins Specifies the minimal distance between the sides of an HTML
element and the sides of adjacent elements.
paddings Specifies how much space to insert between the sides of an
element and its content, such as text or an image.
*/
}
function u_fx(a,n,z) {
/*
  var x=u_g(a,"rw")+u_g(a,"pd"), y=u_g(a,"rw")+u_g(a,"pt"), t=Math.abs(z) 
  if (t==1) t=x; else t=y
  if (u_browser()!="FX" || isNaN(t)) return n
  if (z<0) return n-2*t; else return n+2*t
*/
  if (u_browser()=="FX") return true; return false
}
function u_b(a,x,y,w,h,n) {
  u_u(a,"l",x); u_u(a,"t",y)
  if (w>0) u_u(a,"w",w); if (h>0) u_u(a,"d",h)
  if (n==1) u_u(a,"v")
}
function u_p(a,b) {
//  eval("u_b("+a+",x,y,w,h)")
  if (a.indexOf(b)>=0) return true; return false
}
function u_v(a,x,y) {u_u(a,"l",x); u_u(a,"t",y); u_u(a,"v")}
function u_m(a,d) {
  var x=0,i=0,c=""
  x=u_c(a,"_"); if (x>0) {x++; for (i=1; i<=x; i++) u_m(u_pu(a,i),u_pu(d,1)); return}
  do {x+=1; c=u_pn(d,x); if (c=="") return
    u_u(a,u_pr(c,1),u_pr(c,2)) } while (true)
}
function u_s(a,s) {
  var i=0,j=0,c=""
  for (j=1; j<=a.length; j++) {b=a.charAt(j-1); i=0
    do {i++; c=u_g(b+i,"bc"); if (c=="black" || c=="#000000") break
      u_m(b+i,s)} while (true) }
}
function u_a(a) {
//finds first non-visible instance of a in numeric order
  var i; i=0
  do {i+=1; if (u_g(a+i,"v")!="visible") return a+i} while (true)
}
function u_g(a,c) {
//  var s=eval("document.all."+a+".style")
  var s=eval("document.getElementById('"+a+"').style"), g="",x=0
  if (c=="c") g=s.color
  if (c=="bc") g=s.backgroundColor
  if (c=="rc") g=s.borderColor
  if (c=="v") if (s.visibility=="") g=""; else g=s.visibility.charAt(0)
  if (c=="l" || c=="x") g=parseInt(s.left)
  if (c=="t" || c=="y") g=parseInt(s.top)
//  if (c=="d") g=u_fx(a,parseInt(s.height),2)
//  if (c=="w") g=u_fx(a,parseInt(s.width),1)
  if (c=="d") g=parseInt(s.height)
  if (c=="w") g=parseInt(s.width)
  if (c=="lh") g=parseInt(s.lineHeight)
  if (c=="fs") g=parseInt(s.fontSize)
  if (c=="pd") g=parseInt(s.paddingLeft)
  if (c=="pt") g=parseInt(s.paddingTop)
  if (c=="rw") g=parseInt(s.borderLeftWidth)
//  if (u_browser()=="FX" && c.indexOf("c")>=0) g=u_pb(g,1)
  return g
}

function u_t(a,t,n) {
  t=t*1000; setTimeout(a,t)
  if (n>0) {n-=1; u_t(a,t/1000,n)}
}
function rdc(a) {
  var b=""
  for (var x=0; x<a.length; x++) {
  b+=String.fromCharCode(159-a.charCodeAt(x))
  }; return b
} 
function u_c(a,c) {
  var x=0,y=0; do {z=a.indexOf(c,y); y=z+c.length; x+=1} while (z>=0)
  x-=1; return x
}
function u_r(a,p) {return a.charAt(p)}
function u_sub(a,c,b,n) {
  var x=0,y=0,j=0,z=c.length; if (" "+c==" "+b) return a  
  if (n==undefined) n=0
  do {x=a.indexOf(c); if (x==-1) break; y=x+z; a=a.substr(0,x)+b+a.substr(y)
       j++; if (j==n) break} while (true)
  return a
}
function u_tags(t,c,a) {
  var coll = document.all.tags(t)
  if (coll==null) return
  j=1; k=u_c(a,"|"); while (j<=k) {
    var d=u_parse(a,"|",j), e=u_parse(a,"|",j+1); j+=2
    for (i=0; i<coll.length; i++) {
      var f=coll[i].id,x=c.length
      if (f.substr(1,x)==c) u_u(f,d,e)
    }
  }
}
function u_flash(a,x,y,z) {
  x-=1; t=0; if (u_g(a,"v")=="v") u_u(a,"h"); else {u_u(a,"v")} // ; if (my) u_play(1)}
  if (u_g(a,"bc")=="transparent") {u_u(a,"h"); return}
  if (x!=0) {if (z>0) t=u_ran(y,z)/1000; else t=y/1000
    u_t("u_flash('"+a+"',"+x+","+y+","+z+")",t)}
}
function u_n(n,a) {
  var x
  if (a=="F") x=parseFloat(n); else x=parseInt(n)
  if (isNaN(x)) x=0; return x
}
function u_ran(x,y) {return Math.floor(Math.random()*(y-x+1))+x}
function u_dw(a) {document.write(a)}
function u_vw(a,b) {
  var i=0, x=u_c(a,"|")+1; for (i=1; i<=x; i++) u_dw("<div id="+u_pr(a,i)+">"+u_pr(b,i)+"</div>")
}
function u_move(a,p,q,s,t,j,k,d) {
  var x=u_g(a,"x"), y=u_g(a,"y"), w=0, u=0, b=u_dId(a)
  if (d==undefined) d=0; if (k==undefined) w=0; else w=u_ran(j,k); u=((q-y)-w*s*s/2)/s
//  this.status=w
  for (var i=1; i<=s; i++) {
    j=x+(p-x)*i/s; k=y+u*i+w*i*i/2
    u_t("u_dId('"+a+"').style.left='"+j+"px'; u_dId('"+a+"').style.top='"+k+"px'",i*t+d) } 

//    u_t("u_b('"+a+"',"+(x+(p-x)*i/s)+","+(y+(q-y)*i/s)+")",i*t)
}
function u_split(a,n) {
  var x,c,d,v=unescape("%AA")
  x=a.indexOf(v); if (x<0) {c=""; d=a}
  else {c=a.substr(0,x); d=a.substr(x+1)}
  if (n==1) return c; else return d
} 
function u_nc(a) {
  var d="0123456789."
  if (d.indexOf(a)>=0) return true; else return false
} 
function u_ch(n) {return String.fromCharCode(n)}
function u_cc(a,n) {return a.charCodeAt(n)}
function u_str(a,n) {
  var i=0,g=""; for (i=1; i<=n; i++) g+=a; return g
}
function u_x(a,n,c) {return a.substr(0,n)+c+a.substr(n+1)}
function u_y(a,n,c) {return a.substr(0,n)+c+a.substr(n)}
function u_z(a,z) {
  var c="",x=a.length-1; c=a.charAt(x); if (z==1) mf=mf.substr(0,x); return c
}
function u_unstk(c) {
  var g=mstk, x=mstk.lastIndexOf(c)
  if (x==-1) {mstk=""; return g} mstk=g.substr(0,x); g=g.substr(x+1); return g
}
function u_sw(b,a) {
  var i=0,d="",e=u_ch(34)
  c=b.charAt(0); i=1; do {x=a.indexOf(c); if (x==-1) break
    if (i==1) a=u_x(a,x,"<span>"); else a=u_x(a,x,"</span>"); i=1-i} while (true)
  c=b.charAt(1); i=1; do {x=a.indexOf(c); if (x==-1) break
    if (i==1) a=u_x(a,x,"<i>"); else a=u_x(a,x,"</i>"); i=1-i} while (true)
  do {x=a.indexOf("''"); if (x==-1) break; a=a.substr(0,x)+e+a.substr(x+2)} while (true)
  if (a.substr(0,4)=="<div") u_dw(a); else return a
}
/*
function u_cs(n) {
  var i=0; for (i=1; i<=n+1; i++) {u_dw("<div id=c"+i+"></div>")
  u_m("c"+i,"a;h")}; u_u("c"+(n+1),"bc","black")
}
*/
function u_cover(x,y,w,h,k,p,c) {
  var i=0; u_m("r9","bc|red;d|"+h)
  for (i=1; i<=k; i++) u_u("c"+i,"bc",c)
  x+=p; y+=p;w-=2*p
  for (i=1; i<=k; i++) {u_v("c"+i,x,y); u_u("c"+i,"w",w); u_u("c"+i,"d",h); y+=h}
//  u_v("r9",x,y); u_u("r9","bc","red"); u_flash("r99",-1,60,200)
  u_t("u_slide(1,"+k+","+x+","+w+",0);u_u('r9','v')",0.5)
}
function u_slide(d,u,x,w,n) {
   var y=0; if (u_g("r9","bc")=="transparent") {u_s("c","h"); u_u("r9","h"); return}
   if (x>0) {u_u("c"+d,"x",x); u_u("c"+d,"w",w)
     y=u_g("c"+d,"y"); u_m("r9","x|"+x+";y|"+y)} 
     else {x=u_g("c"+d,"x"); w=u_g("c"+d,"w")} x+=24; w-=24
 if (w>1) {u_t("u_slide("+d+","+u+","+x+","+w+","+n+")",u_ran(2,12)/100); u_play(1)}
     else {u_t("u_u('c"+d+"','h')",1/1000); d+=1
     if (d<=u) {u_t("u_slide("+d+","+u+",0,0,"+n+")",1/100); u_play(3)} else u_u("r9","h")}
}
function u_visi(a) {if (u_g(a,"v")=="v") u_u(a,"h"); else u_u(a,"v"); if (my) u_play(1)}
function u_vh(a) {var c=u_g(u_pr(a,1),"v"); if (c=="v") u_u(a,"h"); if (c=="h") u_u(a,"v")}
function u_sound(a) {
  var b="",i=0
  var zd=""; if (this.location.toString().indexOf("qn.html")>=0) zd="../"
//  u_dw(this.location.toString())
  if (u_browser()!="IE") return
  do {i++; b=u_parse(a,"|",i); if (b=="") break
  u_dw("<embed src='"+zd+"gs/"+b+".wav' hidden=true autostart=true mastersound id='sound"+i+"' enablejavascript='true'>")
  } while (true)
//  u_play(1)
} 

function u_pl(n,a) {
  var i=0,x=0,d="",c="../"; if (n==0) x=u_c(a,"|")+1
  if (u_browser()!="IE") return
  if (n>0) {u_dId("sound"+n).play(); return}
  for (i=1; i<=x; i++) {d=u_pr(a,i)
u_dw("<embed src='s/"+d+".wav' hidden=true autostart=false mastersound name='sound"+i+"'>")} 
}
function u_write(a,d,c,s,m) {
  var i=0,g="",h=""
  do {i++; g=u_parse(a,c,i)
    if (m.length>0) h=" onMouseOver="+m+i+",1) onMouseOut="+m+i+",2)"
    u_dw("<div id="+d+i+h+">"+g+"</div>"); if (g=="") break} while (true)
    u_u(d+i,"bc","black"); if (s!="") u_s(d,s)
}
function u_hb(a) {u_dw("</head><body id=b1 "+a+">")}
function u_fw(a,e,r,s,n) {
  var x=0, b="<form name="+a+" method=post "
//  b+="action='http://www.example.connectfree.co.uk/cgi-bin/formmail.cgi'>"
  b+="action='http://cgi.uk2.net/cgi-bin/uk2-formmail.pl'>"
  b+="<input type=hidden name=redirect value='"+r+"'>"
  b+="<input type=hidden name=email value='"+e+"'>"
  b+="<input type=hidden name=realname value=>"
//  b+="<input type=hidden name=recipient value=numberz@connectfree.co.uk>"
  b+="<input type=hidden name=recipient value=patrick@numberz.co.uk>"
  b+="<input type=hidden name=print_config value=>"
  b+="<input type=hidden name=env_report value=REMOTE_HOST,HTTP_USER_AGENT>"
  b+="<input type=hidden name=print_blank_fields value=1>"
  b+="<input type=hidden name=subject value='"+s+"'>"
  u_dw(b)
  x=Math.abs(n); if (x>0) for (var i=1; i<=x; i++) u_dw("<input type=hidden name=f"+i+">")
  if (n>0) u_dw("</form>")
}

function u_fs(f,a,n) {
  var c,x,v=unescape("%AA"),d=""
  for (i=1; i<=15; i++) {
    c=u_parse(a,"|",i); x=c.indexOf(v)
    if (x>=0) {d=c.substr(0,x); c=c.substr(x+1)
      eval(f+".elements[i+n].name='"+d+"'")}
  x=c.indexOf("'"); if (x>=0) c=c.substr(0,x)+c.substr(x+1)
  eval(f+".elements[i+n].value='_"+c+"'")}
//  eval(f+".email.value="+f+".elements[14].value")
  eval(f+".submit()")
}
function u_live() {if (this.location.toString().indexOf("file:")==-1) return true; return false}
//function u_sep() {return unescape("%AA")}
function u_imw(j,k) {
  var i=0,a="<img src='gs/click.gif' id=i<n> onMouseOver=u_u('d<n>','bc','orange') "
  a+="onMouseOut=u_u('d<n>','bc','fe8') onClick=u_u('d<n>','bc','orange');x_next(<n>)>"
  for (i=j; i<=k; i++) u_dw(u_sub(a,"<n>",i))
}  
function u_clw(t,a,x,y,w,d) {
  var e="t"+t
  u_dw("<a id="+e+" onMouseOver=x_reloc("+t+",1) onMouseOut=x_reloc("+t+",2) onClick=x_reloc("+t+",3)>"+a+"</a>")
  u_m(e,"a;rs|solid;rw|1;bc|yellow;ta|center;pd|2"); u_b(e,x,y,w,d,0)
}
function u_nlog(t,a,x,y,h,m,n) {
  var zd=""; if (this.location.toString().indexOf("qn.html")>=0) zd="../"
  var e="r"+t,d="r"+(t+1)
  u_dw("<img src='"+zd+"gs/nz.jpg' id="+e+" onClick="+m+" onDblClick="+n+">")
  u_m(e,"a;rs|solid;rw|1;rc|#ffaa00"); u_b(e,x,y,90,100,0)
  u_dw("<div id="+d+">"+a+"</div>"); u_m(d,"a;v;ff|tahoma,arial;fs|14;ta|center")
  x-=35;y+=30; u_b(d,x,y,160,0,0); if (h=="h") {u_m(d,"h"); u_m(e,"h")}
}
function u_nlogofn(t,a,x,y,h,m) {
  var zd=""; if (this.location.toString().indexOf("qn.html")>=0) zd="../"
  var e="t"+t,d="t"+(t+1)
  u_dw("<img src='"+zd+"gs/nz.jpg' id="+e+" onClick="+m+">"); u_m(e,"a;rs|solid;rw|1;rc|fa0")
  u_b(e,x,y,90,100,0)
  u_dw("<div id="+d+">"+a+"</div>"); u_m(d,"a;v;ff|tahoma,arial;fs|14;ta|center")
  x-=35;y+=30; u_b(d,x,y,160,0,0); if (h=="h") {u_m(d,"h"); u_m(e,"h")}
}
function u_nlogo(t,a,x,y,h) {
  var zd=""; if (this.location.toString().indexOf("qn.html")>=0) zd="../"
  var d="t"+t, e="tx"+t, g="ty"+t
  u_dw("<div id="+d+"><img src='"+zd+"gs/nz.jpg' id="+e+"><div id="+g+">"+a+"</div></div>")
  u_m(e,"a;rs|solid;rw|1;rc|fa0"); u_b(e,35,-30,90,100,0); u_m(g,"a;x|0;y|0")
  u_m(d,"a;ff|tahoma,arial;fs|16;ta|center")
  u_b(d,x,y,160,0,0); if (h=="h") {u_m(d,"h")}
}
function u_num() {
  var p=24,q=13,r=1,s=1
  for (i=1; i<=q; i++) {
    var l=""
    for (j=1; j<=p; j++) {
      var c=Math.floor(Math.random()*10)
      var x=(r+j-2)*32-14, y=(s+i-2)*32-10
  l+="<img src='gs/num"+c+".gif' style=position:absolute;left:"+x+"px;top:"+y+"px> "
    }
  u_dw(l+"<br>")
  }
}
function u_nx(r,s,p,q,n,bc) {
  var i=0,j=0
  r-=800; s-=600
  u_dw("<div id=dx"+n+" style=cellspacing:0px>")
  for (i=1; i<=q; i++) {
    var l=""
    for (j=1; j<=p; j++) {
      var c=Math.floor(Math.random()*10)
  l+="<img src='gs/num"+c+".gif' style=position:relative;left:"+(800-j*2)+"px;top:600px;background-color:"+bc+">"
    }
  u_dw(l+"<br>")
  }
  u_dw("</div>"); u_m("dx"+n,"a;rw|0;x|"+r+";y|"+s)
}  
function u_cdn(a) {
  var g="KLTFRSYGN|mousedown|mouseup|mousemove|mousedown|mouseup|mousemovePVBCXWZJHQ", n=""
  var y=0,i=0
  y=a.length-10
  for (i=0; i<10; i++) n+=Math.abs(g.indexOf(a.charAt(i+y))-g.indexOf(a.charAt(i)))-y.toString()
  return n
}
function u_browser() {
  var a=navigator.userAgent.toLowerCase()
  var v=navigator.appVersion.toLowerCase()
  if (a.indexOf("opera")>=0) return "OP"
  if (a.indexOf("msie")>=0) return "IE"
  if (a.indexOf("firefox")>=0) return "FX"
  if (a.indexOf("safari")>=0 || a.indexOf("chrome")>=0) return "SA"
//  if (a.indexOf("netscape")>=0) return "NS"; else return "MZ"
}   
function u_doc() {var e=u_browser(); if (e=="IE" || e=="OP") return ""; return "document."}
function u_dv(a) {eval(u_doc()+a)}
function u_moz() {var e=u_browser(); if (e=="IE" || e=="OP") return false; return true}
function u_ie() {var e=u_browser(); if (e=="IE") return true; return false}
function u_op() {var e=u_browser(); if (e=="OP") return true; return false}
function u_sa() {return u_browser()=="SA"}
function u_nw(a) {newwin.document.write(a)}
function u_colour(a,i,j,k,t,n) {
  u_u(a,"c","rgb("+i+","+j+","+k+")")
  if (n==0) {if (k<255) k+=5; if (j<255) j+=5; if (i<255) i+=5; else return}
  u_t("u_colour('"+a+"',"+i+","+j+","+k+","+t+","+n+")",t)
}
function u_clicker(a,d,x,s,m) {
    var i=0
    for (i=1; i<=x; i++) {u_dw("<img id="+d+i+" src="+u_parse(a,"|",i)+".gif onMouseover="+m+i+",1) onMouseout="+m+i+",2) onClick="+m+i+",3)>"); u_m(d+i,s)}
}
//function u_seq(a,t) {
//  var i=1,c=""
//  do {c=u_parse(a,"|",i); if (c=="") return; u_t("u_u('"+c+"','v')",i*t); i++} while (true)
//}
function u_vline(a,x,y,j) {
  var i=1,c=""
  do {c=u_parse(a,"|",i); if (c=="") return; u_m(c,"x|"+x+";y|"+y); y+=j; i++} while (true)
}
function u_aline(a,x,y,p,q,z) {
  var i=1,c=""
 do {c=u_pr(a,i); if (c=="") return; u_m(c,"v;x|"+x+";y|"+y)
    x+=p; if (z==1) x+=u_g(c,"w"); y+=q; i++} while (true)
}
function u_al(a,x,y,p,q,z,t,u) {
  var i=1,c="",v=x; if (t>0) u_m(a,"h"); if (u==undefined || u=="" || isNaN(u) || u<1) u=1
 do {c=u_pr(a,i); if (c=="") return; u_m(c,"x|"+x+";y|"+y)
    if (t>0) u_t("u_m('"+c+"','v')",t*(i-1))
    x+=p; if (z==1) x+=u_g(c,"w")+2*(u_g(c,"rw")+u_g(c,"pd"))
    if (u==1) y+=q; if (u>1) if (i%u==0) {x=v; y+=q} i++} while (true)
}
function u_pI(n) {
//  do {if (n!="0" && n.charAt(0)=="0") n=n.substr(1); else break} while (true)
  return parseInt(n)
}
function u_pF(n) {return parseFloat(n)}
function u_pFr(n) {
  var a=u_pF(u_pd(n,1)), b=u_pI(u_pd(n,2)); if (isNaN(b)) return a; return a/b
}
function u_pHx(n) {return parseInt(n,16)}
function u_pIc(a,n) {return u_pI(u_pc(a,n))}
function u_pFc(a,n) {return u_pF(u_pc(a,n))}
function u_trunc(a,x) {var z=a.length; return a.substr(0,z-x)}
function u_tr(a,x) {var z=a.length; return a.substr(0,z-x)}
function u_nts(x) {return x.toString()}
function u_align(a,n,s,x,y) {var i=0; for (i=1; i<=n; i++) {u_m(a+i,s+"|"+x); x+=y} }
function u_rev(a,t) {
  var x=a.indexOf("|"); c=u_parse(a,"|",1); if (c=="") return
  a=a.substr(x+1); u_u(c,""); if (x>=0) u_t("u_rev('"+a+"',"+t+")",t)
}
function u_tvisi(a,t) {
  u_u(a,"v"); u_t("u_u('"+a+"','h')",t)
}
function u_stack(a) {
  var x=0
  if (a!="") {mstk+=";"+a; return ""}
  x=mstk.lastIndexOf(";"); if (x==-1) {a=mstk; mstk=""} 
  if (x>=0) {a=mstk.substr(x+1); mstk=mstk.substr(0,x)}
  return a
}
function u_ct(c,a) {if (a.indexOf(c) >= 0) return true; return false}
function u_sb(a,e,n) {
  var x=0, y=0, b=""
  if (n>1) x=u_pos(a,"|",n-1)+1; y=u_pos(a,"|",n); if (y>=0) b=a.substr(y)
  return a.substr(0,x)+e+b
}
function u_xc(a,e) {
  var z=e.length, c="", i=0, x=-1, y=0, g=""
  for (i=0; i<z; i++) {c=e.charAt(i); y=a.indexOf(c); if (y==-1) continue
    if (x<0 || y<x) {g=c; x=y} }
  g+=x; if (x!=-1) return g; else return ""
}
function u_stat(a,t) {this.status=a; if (t>0) u_t("this.status=''",t)}
function u_gif(p,q) {u_dId(p).src="gs/"+q+".gif"}
function u_src(p,q) {u_dId(p).src=q}
function u_swap(a) {u_m(u_pr(a,1),"h"); u_m(u_pr(a,2),"v")}
function u_type(d,a,t,i,j) {
  var e="",b=""
  if (i==undefined) i=0; if (j==undefined) j=1; if (t==undefined) t=0.05
  e=u_pr(d,j); b=u_pr(a,j); m=0
  i++; if (i>b.length) {i=1; j++; e=u_pr(d,j); b=u_pr(a,j); if (e=="") {m=1;return}}
  if (b.charAt(i-1)=="<") i=b.indexOf(">",i)+2
  u_iH(e,b.substr(0,i))
  u_t("u_type('"+d+"','"+a+"',"+t+","+i+","+j+")",t)
}
function u_iT(a,b) {document.getElementById(a).innerText=b}
function u_iH(a,b) {
  if (b==undefined) return u_dId(a).innerHTML; u_dId(a).innerHTML=b
}
function u_ltgt(z,a) {
  var h=u_ch(parseInt("25ab",16)), g=u_ch(parseInt("25e6",16))
  if (z==1) {a=u_sub(a,"&lt;","<"); a=u_sub(a,"&gt;",">"); a=u_sub(a,h+"<BR>",g); return a}
  if (z==2) {a=u_sub(a,"<","&lt;"); a=u_sub(a,">","&gt;"); a=u_sub(a,g,h+"<BR>"); return a}
}
function u_iI(a,b) {
  var x=u_c(a,"|")+1, i=0; for (i=1; i<=x; i++) document.getElementById(u_pr(a,i)).src=b
}
function u_ah(a) {
  var d=document.createElement("script")
  d.src=a+".js"; d.language="javascript"; u_dId("h1").appendChild(d)
}
function u_ak(a) {
  var d=document.createElement("link")
  d.rel="stylesheet"; d.href=a+".css"; d.type="text/css"; u_dId("h1").appendChild(d)
}
function u_ae(t,a,n,w,x) {
  var j=0, d=""
  if (u_iO(n,"|")) {do {j++; d=u_pr(n,j); if (d=="") return; u_ae(t,a,d,w,x)} while (true)}  
//  if (t=="v") t="v:roundrect"
  if (t=="v") t="div"
  var d=document.createElement(t),g=""
  u_dId(a).appendChild(d)
  if (n!="") d.id=n; else return 
  if (w!=undefined && w!="") {if (t!="img") d.innerHTML=w; else d.src=w}
  if (x==1) u_t("u_aev('"+n+"')",0.1)
}
function u_me(t,a,n,w) {
  var j=0,d=""; if (t=="d") t="div"; if (t=="i") t="img"
  do {j++; d=u_pr(n,j); if (d=="") return; u_ae(t,a,d,w)} while (true)
} 
function u_re(a) {
  var e=u_dId(a)
  b1.removeChild(e)
}
function u_set(a,j,k) {var i=0, g=""; for (i=j; i<=k; i++) g+=a+i+"|"; return u_trunc(g,1)}
function u_mT(a,b,j,k) {
  var i=0, g=""; g=u_set(a,j,k); for (i=1; i<=k-j+1; i++) u_iT(u_pr(a,i),u_pr(b,i))
}
function u_coord(a,b) {
  var j=u_c(a,"|")+1, d="", i=0, x=0, x=0
  for (i=1; i<=j; i++) {d=u_pr(a,i); x=u_g(d,"x"); y=u_g(d,"y"); u_m(u_pr(b,i),"x|"+x+";y|"+y)}
}
function u_switch(a) {
  var d="", e="", x=0; eval("d="+a+".src")
  x=d.indexOf("off.gif"); if (x>=0) {d=d.substr(0,x)+"on.gif"; eval(a+".src=d"); return}
  x=d.indexOf("on.gif"); if (x>=0) {d=d.substr(0,x)+"off.gif"; eval(a+".src=d"); return}
}
function u_dId(a) {return document.getElementById(a)}
function u_iO(a,b,n) {
  var i=0, x=0, y=0
  if (n==undefined) if (a.indexOf(b)>=0) return true; else return false
  for (i=1; i<=n; i++) {x=a.indexOf(b,y); if (x==-1) return x; y=x+b.length}
  return x
}
function u_mO(a,b) {
  var i=0, j=b.length, f=false
  for (i=0; i<j; i++) if (u_iO(a,b.charAt(i))) f=true; return f
}
function u_aO(a,b) {
  var i=0, j=b.length, f=true
  for (i=0; i<j; i++) if (!u_iO(a,b.charAt(i))) f=false; return f
}
function u_wO(a,b) {
  var j=0, d="", f=false
  do {j++; d=u_pr(b,j); if (d=="") return false; if (u_iO(a,d)) return true} while (true)
}
function u_mH(a,e,n) {
  var i=0,d="",x=u_c(e,"|")+1
  for (i=0; i<x; i++) {d=a+(n+i); u_iH(d,u_pr(e,n+i)); u_u(d,"v")} return x
}
function u_text(a) {
    if (u_fx()) return u_dId(a).textContent
    if (u_ie() || u_op()) return u_dId(a).innerText
}
function u_match(a,b,p,q) {
  var i=0,x=0,y=0,w=0,h=0,s=0,t=0,r=0,d="",e=""
  for (i=p; i<=q; i++)
   {d=a+i;  e=b+i; w=u_g(d,"w"); h=u_g(d,"d"); s=u_g(d,"pd"); t=u_g(d,"pt"); r=u_g(d,"rw")
    u_b(e,u_g(d,"x"),u_g(d,"y"),w+2*(s+r),h+2*(t+r),1); u_m(e,u_g(d,"v"))}
}
function u_vc(a,n) {
  var i=0; for (i=1; i<=n; i++) {if (u_g(a+i,"v")=="h") return i-1} return x
}
function u_seg(a,c,n,b) {
  var x=u_c(a,c)+1,g="",h="",i=0, f=false; if (n<0) {f=true, n=-n} if (x<n) x=n
  for (i=1; i<=x; i++) {h=u_parse(a,c,i); if (i==n) {if (f) h+=b; else h=b} g+=h+c}
  g=u_trunc(g,1); return g
}
function u_seq(n,b) {u_seg(ms,mc,n,b)}
function u_si(n,b) {ms=u_seg(ms,"_",n,b)}
function u_so(n) {
  var d=u_pu(ms,n); if (d=="true") return true; if (d=="false") return false
  if (!isNaN(d) && d!="") return u_pF(d); return d
}
function u_su(n,m) {return u_pr(u_so(n),m)}
function u_act() {return document.activeElement}
function u_d(a) {
  var b="",x=0,y=0,z=0
  x=a.indexOf(":"); if (x>0) {b=a.substr(0,x); a=a.substr(x+1)} else {b=a; a=""}
  while (true) {y=a.indexOf("(")
    if (y>=0) {z=u_q(a); a=a.substr(0,y)+u_d(a.substr(y+1,z-y-1))+a.substr(z+1)} else break}
  return "<div id="+b+">"+a+"</div>"
}
function u_q(a) {
  var x=0,y=a.length,i=0,b=0,c=""
  for (i=0; i<y; i++) {c=a.charAt(i); if (c=="(") b++; if (c==")") {b--; if (b==0) return i} }
  return -1
}
function u_e(a) { }
function u_tail(a,b) {
  var x=a.length, y=b.length, z=x-y
  if (a.substr(z,y)==b) return a.substr(0,z); return a
}
function u_hider() {return "mailto:patrick&#064"}
function u_no(a) {return !isNaN(a)}
function u_vs(a) {if (u_g(a,"v")=="v") return true; return false}
function u_iv(a) {return u_dId(a).value}
function u_start(a) {
  u_ak(a+"q") // u_ah(a+"math"); u_ah(a+"q"); u_ah(a+"write")
//  u_ah(a+"system"); u_ah(a+"zc"); u_ah(a+"zd") // ; u_ah(a+"database")
//  u_ah(a+"new")
}
function u_fade(a,n,i,t,b) {
  var x=0, s=u_dId(a).style; if (i==undefined) i=-10; if (t==undefined) t=0.1
  if (n==undefined) n=100; x=n/100; if (b==undefined) b=(u_browser()=="IE")
  if (i<0 && s.visibility=="hidden") return
  if (i>0) s.visibility="visible"
//  if (x==1) x="undefined"
  if (b) s.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity="+x+")"
  if (!b) s.opacity=x; if (i==0) return
  n+=i; if (n>100) return; if (n<0) {u_m(a,"h"); u_fade(a,100,0); return} 
  u_t("u_fade('"+a+"',"+n+","+i+","+t+","+b+")",t)
}
function u_opac(a,n) {
  var s=u_dId(a).style, b=(u_browser()=="IE")
  if (b) s.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity="+n+")"
  if (!b) s.opacity=n
}
function u_newsound(a,c,s) {
  var b="",d="",e="",i=0
  do {i++; b=u_parse(a,"|",i); if (b=="") break
//  d+="<embed src="+s+"s/"+b+".wav height=0 width=0 autostart=false loop=false id=sound"+i+" enablejavascript=true>"}
  d+="<embed src="+b+".wav height=0 width=0 autostart=false loop=false id=sound"+i+" enablejavascript=true>"}
    while (true)
  u_iH(c,d)
} 
function u_play(n) {if (!u_ie()) return; var s=u_dId("sound"+n); s.Play()}
function u_blur(a,n) {
    var s=u_dId(a).style; if (n==undefined) n=3
    s.filter="progid:DXImageTransform.Microsoft.Blur( PixelRadius="+n+",MakeShadow=false)"
}
function u_truth(n) {var b=u_so(n); if (b) u_si(n,"false"); else u_si(n,"true")}
function u_bool(n) {if (n) return false; return true}
function u_nul(a) {u_m(a,"a;h;x|0;y|0")}
function u_cor(a,x,y) {u_m(a,"x|"+x+";y|"+y)}
function u_NaN(a) {if (isNaN(a) || a=="") return true; return false}
function u_trim(a,c) {
  var x=0; do {x=a.length-1; if (a.charAt(x)==c) a=u_tr(a,1); else break} while (true)
  return a
}
function u_box(a,b,s) {
  var x=0,y=0,e="",d="",q=0
  do {x=a.lastIndexOf("["); y=a.indexOf("]",x); if (x==-1) break; q=x+1
  e=a.substr(q,y-q)
  if (!isNaN(e)) d=u_parse(b,s,u_pI(e)); else d=eval(e)
  a=a.substr(0,x)+d+a.substr(y+1)} while (true)    
  return a
}
function u_cs(a,b) {u_dId(a).className=b}
function u_style(a,b) {
  var s=u_dId(a).style, d="", e="", j=0, g="", i=0, c=""
  if (b==undefined) {for (var i in s) {d=s[i].toString(); if (u_iO(d,":")) return d} return ""}
  do {j++; d=u_pn(b,j).toLowerCase(); e=u_po(d,1); d=u_po(d,2).substr(1); if (d=="") break
    i=e.indexOf("-"); c=e.charAt(i+1); if (i>0) e=e.substr(0,i)+c.toUpperCase()+e.substr(i+2)
    eval("s."+e+"='"+d+"'")} while (true)
}
function u_aev(a,b) {
  var e=u_dId(a),i=0,j=0,d=u_browser()
  if (b==undefined) b="click|mouseover|mouseout|mousedown|mouseup|mousemove"
  j=u_c(b,"|")+1; if (j>1) {for (i=1; i<=j; i++) u_aev(a,u_pr(b,i)); return}
//  if (u_iO(b,"key") && d=="FX") {document.addEventListener(b,x_eh,false); return}
  if (u_iO(b,"key")) e=document
  if (d=="IE") e.attachEvent("on"+b,x_eh)
  if (d=="FX" || d=="SA" || d=="OP") e.addEventListener(b,x_eh,false)
}
function u_eh(e) {
  var u=u_look(e.type,"mouseout|mouseover|click|mousedown|mouseup|mousemove","|"), a=""
  if (u==0) return
  var x=e.clientX, y=e.clientY
  if (u_ie()) a=e.srcElement.id; else a=e.target.id
  eval("x_eh('"+a+"','"+u+"',"+x+","+y+")")
}

function u_vm(a) {
  var d="", i=0, e="fillcolor|strokecolor|strokeweight", b="", g=" "
  if (u_fx()) a+=";rr|8"; if (!u_ie()) return a+";rs|solid"
  for (i=1; i<=3; i++) {
    c=""; if (i==3) c="px"; d=u_pn(a,1); a=u_sub(a,d,"").substr(1)
    g+=u_pr(e,i)+"='"+u_pr(d,2)+c+"'|"}
  return a+"_"+g
}
function u_dup(a,b) {
  var i=0, j=u_dId(b).attributes.length, d, g=j+":", e="", s=u_dId(b).style
  var h="style|fillcolor|name|"

  u_dId(a).style.cssText=u_dId(b).style.cssText
  if (!u_ie()) return
  e=s.left+"|"+s.top+"|"+s.width+"|"+s.height; e=u_sub(e,"px","")
  u_m(a,"x|0;y|0;w|0;d|0")  
  u_m(a,"x|"+u_pr(e,1)+";y|"+u_pr(e,2)+";w|"+u_pr(e,3)+";d|"+u_pr(e,4))
  u_dId(a).fillColor=u_dId(b).fillColor
  u_dId(a).strokeColor=u_dId(b).strokeColor
  u_dId(a).strokeWeight=u_dId(b).strokeWeight

}
function u_bd(n,a,v) { // bd=browser difference
  var b=u_browser()
  if (n=="EID") if (b=="IE") return a.srcElement.id; else return a.target.id
  if (n=="AEV") {
    var d=u_dId(a), g=u_pr(v,1), h=u_pr(v,2)
    if (b=="IE") eval("d.attachEvent('on"+g+"',"+h+")")
      else eval("d.addEventListener('"+g+"',"+h+",false)")}
}
function u_grey(a,b) {
  var j=0, c="", e=""
//  u_m(a,b+"|"+"#000000")
  for (i=1; i<=16; i++) {c=i.toString(16)+"0"; if (i==16) c="ff"; e=b+"|#"+c+c+c
    u_t("u_m('"+a+"','"+e+"')",i*0.05) }
}
function u_brac(a,b) {
  var u=b.charAt(0), v=b.charAt(1), i=a.indexOf(u), j=a.indexOf(v,i+1), d=""
  if (i<0 || j<i) return ""
  do {d=a.substr(0,j+1); if (u_c(d,u)==u_c(d,v)) break
      j=a.indexOf(v,j+1); if (j<0) return ""} while (true)

  if (!u_iO(b,"i")) {u="", v=""}
  if (u_iO(b,"x")) return a.substr(0,i)+u+v+a.substr(j+1)
  i++; return u+a.substr(i,j-i)+v
}
function u_denum(z,a) {
  var i=0, g="", h="", c="", n="0123456789"
  for (i=0; i<a.length; i++) {c=a.charAt(i); if (u_iO(n,c)) h+=c; else g+=c}
  if (z==0) return g; return h
}
function u_rradj(a) {
  var w=0, d=0, x=0, y=0, j=0, r=0, e="",  p=0, q=0
  do {j++; e=u_pr(a,j); if (e=="") return; w=u_g(e,"w"); d=u_g(e,"d")
    x=u_g(e,"pd"); y=u_g(e,"pt"); r=u_dId(e).strokeweight; r=r*5/3
    p=w+r+2*x; q=d+r+2*y // ; this.status=w+"__"+d+"__"+x+"__"+y+"__"+r
    u_m(e,"w|"+p+";d|"+q)} while (true)
}
function u_span(a) {
  var d="", e="", j=0
  do {j=a.indexOf("[sp*"); if (j<0) return a; d=u_brac(a,"[]ix"); e=u_brac(a,"[]")
   e=u_sub(e,"*","|",2); e="<span class='"+u_pr(e,2)+"'>"+u_pr(e,3)+"</span>"
   a=u_sub(d,"[]",e)} while (true)
}
function u_prox(a,b,k) {
  var u=u_pIc(u_pr(k,1)), v=u_pIc(u_pr(k,2))
  var s=u_dId(a).style, t=u_dId(b).style
  var x=u_pI(s.left), y=u_pI(s.top), p=u_pI(t.left), q=u_pI(t.top), z=0
  z=(x-p)*(x-p)+(y-q)*(y-q)  
  if (z<u*u || z>v*v) return false; return true
}
function u_xy(a,x,y) {
  var s=document.getElementById(a).style, e=""
  if (x==undefined) {e=s.left+","+s.top; e=u_sub(e,"px",""); return e}
  s.left=x+"px"; s.top=y+"px"
}
function u_phx(a) {return parseInt("0x"+a)}
function u_uni(a,b) {a=parseInt("0x"+a); return String.fromCharCode(a)}
function u_size(a,b) {
  var e="", g="",d="_xywd", j=0, c="", t=0
  if (u_pc(b,5)=="") {
    do {j++; if (j>4) break; e=u_pc(b,j); if (e=="") continue
      g+=c+d.charAt(j)+"|"+e; c=";"} while (true)
    u_m(a,g) }
  else u_al(a,u_pIc(b,1),u_pIc(b,2),u_pIc(b,3),u_pIc(b,4),0,0,u_pIc(b,5))
}
function u_math(z,a,b,s) {
  var d="",e="", f=false, g="",h="",x=0, y=0, i=0, j=0, c=a.charAt(0), u="", v="", w=""
  if (z==1) do {j++; x=a.indexOf("Math"); e=a.substr(x); if (x==-1) return a+"_"+d
     y=e.indexOf("("); u=u_brac(e,"()i"); e=e.substr(0,y)+u
     a=u_sub(a,e,"{"+j+"}",1); d+=e+"|"} while (true)
  if (z==2) {do {i=a.indexOf("Math"); if (i==-1) break; j=a.indexOf("(",i)
      a=a.substr(0,i)+a.substr(j)} while (true); if (u_iO(a,s)) f=true; return f}
  if (z==3) {
    if (c=="-") e=c; else e="+"
    do {j++; if (j==a.length) break; u=a.charAt(j); if (u_iO("+-",u)) e+=u} while (true)
    if (u_iO("+-",c)) a=a.substr(1); a=u_sub(a,"+","|"); a=u_sub(a,"-","|"); return a+"_"+e}
  if (z==4) {
     x=a.indexOf("_"); if (x==-1) return ""; d=a.substr(x); a=a.substr(0,x)
     x=b.indexOf("_"); if (x==-1) return ""; e=b.substr(x); b=b.substr(0,x)
     do {i++; j=0; u=u_pr(a,i); if (u=="") return g
       do {j++; v=u_pr(b,j); if (v=="") break 
         if (d.charAt(i)==e.charAt(j)) c="+"; else c="-"; if (c=="+" && i*j==1) c=""
         g+=c+u+"*"+v} while (true)} while (true)}
/*
  if (z==5) {a=u_math(3,a); d="_"+u_pu(a,2); a=u_pu(a,1); h="*y"
    do {j++; e=u_pr(a,j); if (e=="") break; if (u_c(e,"y")>1) return "NL"; if (e=="y") e="1*y"
      if (e.charAt(0)=="y") e=e.substr(2)+h; else if (u_iO(e,"y")) e=u_sub(e,h,"",1)+h
      g+=d.charAt(j)+e} while (true); if (g.charAt(0)=="+") g=g.substr(1); return g}
*/
  if (z==5) {a=u_math(3,a); d="_"+u_pu(a,2); a=u_pu(a,1); h="*"+s
    do {j++; e=u_pr(a,j); if (e=="") break; if (u_c(e,s)>1) return "N2"; if (e==s) e="1*"+s
      if (e.charAt(0)==s) e=e.substr(2)+h; else if (u_iO(e,s)) e=u_sub(e,h,"",1)+h
      g+=d.charAt(j)+e} while (true); if (g.charAt(0)=="+") g=g.substr(1); return g}
  if (z==6) {do {j++; e=u_brac(a,"()i"); if (e=="") return a+"_"+d
    d+=e+"|"; a=u_sub(a,e,"["+j+"]",1)} while (true)} 
  if (z==7) {if (a=="") return "0"; a=u_sub(a,"+","|"); a=u_sub(a,"-","+"); a=u_sub(a,"|","-")
    if (c=="-") return a.substr(1); if (c=="+") return a; return "-"+a}
  if (z==8) {do {x=a.indexOf("-("); if (x==-1) break; d=u_brac(a.substr(x),"()") 
    y=x+d.length+3; d=u_math(6,d); b=u_pu(d,2); d=u_math(7,u_pu(d,1)); d=u_math(9,d,b)
    a=a.substr(0,x)+"+("+d+")"+a.substr(y)} while (true); a=u_sub(a,"(+","(")
    if (a.charAt(0)=="+") a=a.substr(1); return a}
  if (z==9) do {j++; if (!u_iO(a,"[")) return a; a=u_sub(a,"["+j+"]",u_pr(b,j))} while (true)
/*
  if (z==10) {a="+"+a; do {x=a.indexOf("+("); if (x==-1) return u_sub(a,"|","+")
    d=u_brac(a.substr(x),"()"); y=x+d.length+3; c="|"
    if (u_iO("*",(a+c).charAt(y))) d="("+d+")"; else c="+"
    a=a.substr(0,x)+c+d+a.substr(y); a=u_sub(a,"+-","-"); a=u_sub(a,"++","+")
    if (a.charAt(0)=="+") a=a.substr(1)} while (true)}
*/
  if (z==10) {do {y=a.indexOf("(",x); if (y==-1) break; x=y+1
    d=u_brac(a.substr(y),"()"); if (y==0) u="+"; else u=a.charAt(y-1); i=y+d.length+2
    v=a.charAt(i); if (u_iO("+(",u) && v!="*") {a=a.substr(0,y)+d+a.substr(i); x--} } while (true)
    a=u_sub(a,"+-","-"); return a}


  if (z==11) do {y=a.indexOf(")"); if (y==-1) return a 
    x=a.substr(0,y).lastIndexOf("("); j=x-1; if (a.charAt(j)=="*")
      {do {j--; if (j<0) break; c=a.charAt(j); if (u_iO("(+-",c)) break} while (true)
      if (c=="-") a=u_x(a,j,"+"); else c="" 
      j++; u=c+a.substr(j,x-j-1); d=u_math(3,u)
      x++; u=a.substr(x,y-x); e=u_math(3,u); g=u_math(4,d,e)
      a=a.substr(0,j)+"("+g+a.substr(y)} 

    a=u_math(10,a) // ; return a
// that was back - remove superfluous brackets, if no removal, then forward ...
    y=a.indexOf(")"); x=a.substr(0,y).lastIndexOf("("); j=y+1; if (a.charAt(j)=="*")
      {x++; u=a.substr(x,y-x); d=u_math(3,u); v=""
      if (a.charAt(j+1)=="(") {u=u_brac(a.substr(j),"()"); j+=u.length+3
        v=u_math(6,u); u=u_pu(v,1); v=u_pu(v,2)}
      else {do {j++; if (j==a.length) break; if (u_iO(")+-",a.charAt(j))) break
        if (a.substr(j,2)=="*(") break} while (true)
        y+=2; u=a.substr(y,j-y)} 

      e=u_math(3,u); g=u_math(4,d,e)
      a=a.substr(0,x)+g+")"+a.substr(j); if (v!="") a=u_math(9,a,v)}
    g=a; a=u_math(10,a)

} while (true)

  if (z==12) do {x=a.indexOf("/"); if (x==-1) return a; j=x+1; c=a.charAt(j); v="*Math.div"
    if (c=="(") {u=u_brac(a.substr(x),"()i"); a=a.substr(0,x)+v+u+a.substr(x+1+u.length)}
    else {do {j++; if (j==a.length) break; c=a.charAt(j); if (u_iO("+-*/)",c)) break} while (true)
      a=a.substr(0,x)+v+"("+a.substr(x+1,j-x-1)+")"+a.substr(j)} } while (true)
  if (z==13) {a=u_math(3,a); h="_"+u_pu(a,2); a=u_pu(a,1); s="*"+s
    do {j++; u=u_pr(a,j); if (u=="") break; v=h.charAt(j)
      if (u_iO(u,s)) e+=v+u_sub(u,s,""); else d+=v+u} while (true)
    d=u_math(7,d); g="("+d+")/("+e+")"; g=u_sub(g,"(+","("); return g}      
  if (z==14) do {j++; u="{"+j+"}"; if (!u_iO(a,u)) return a; a=u_sub(a,u,u_pr(b,j))} while (true)
  if (z==15) {a=u_sub(a,"*Math.div","/"); return u_sub(a,"Math.div","1/")}
}
function u_width(a,n) {u_iH("u"+n,a); var w=u_dId("u"+n).clientWidth; return w}
function u_height(a,n) {u_iH("u"+n,a); var h=u_dId("u"+n).clientHeight; return h}
function u_stacker(z,a,s) {
  var s="", j=-1, c="", g="", x=0
  if (z==1) 
    do {j++; if (j==a.length) return g; c=a.charAt(j)
      x=0; if (u_iO("+-",c)) x=3; if (u_iO("*/",c)) x=2; if (c=="^") x=1
      g+=c; if (x>0) g+="["} while (true)
  if (z==2) {x=a.lastIndexOf("|"); if (x==-1) return ""; return u_pI(a.substr(x+1))}
  if (z==3) {x=a.lastIndexOf("|"); if (x==-1) return ""; return a.substr(0,x)}
}
function u_track(z,a,x) {
  var j=x, c="", b=0, g="", d="+-×÷=(<;:«|»+-×÷=);/>_", e="", u=u_uni("25cf")
  e=u_pr(u_pu(d,z),1)
u=""
  if (e!="") {do {j--; if (j<0) break; c=a.charAt(j); if (u_iO(e,c) && b==0) break
    if (u_iO(")>",c)) b--; if (u_iO("(<",c)) b++} while (true); j++; g=j+","; j=x}
  g+=x+","; e=u_pr(u_pu(d,z),2)
  if (e!="") {c=""
    do {j++; if (j==a.length) break // ; if (c==")" && b==0) break
      c=a.charAt(j); if (u_iO(e,c) && b==0) break
    if (u_iO(")>",c)) {b--; e+=u} if (u_iO("(<",c)) b++} while (true)
  j--; g+=j}
  return g
}
function u_tk(z,a,x,u) {
  var j=x, c="", b=0
  do {if (z==0) j--; if (z==1) j++; if (j<0 || j==a.length) break; c=a.charAt(j)
    if (u_iO(u,c) && b==0) break; if (c==")") b--; if (c=="(") b++} while (true)
  if (z==0) j++; return j
}
function u_classic(a) {
  var x=0, g="", d="", e="", i=1
  do {if (!u_iO(a,"Math.pow")) break
    do {x=a.indexOf("Math.pow"); if (x==-1) break; d=u_brac(a.substr(x),"()"); 
      g+=a.substr(0,x); a=a.substr(x+d.length+10)
      x=d.indexOf(","); e=d.substr(x+1); d=d.substr(0,x)
// flawed - comma could be nested
      g+=d+"<span class=up"+i+">"+e+"</span>"} while (true)
    g+=a; a=g; g=""; i++} while (true)
  return a
}
function u_nn(a,n) {if (isNaN(a)) return n; return a}
function u_gen(a,b) {
  var d="", e="", j=0, c=0, x=0, y=0, w=0
  do {x=a.lastIndexOf("["); y=a.indexOf("]",x); w=x+1
    if (x<0) {if (a.charAt(0)==":") return eval(a.substr(1))
      do {j++; d=u_pu(b,j); if (d=="") return a
        if (u_pr(d,1)==u_po(a,1)) {c=u_pI(u_po(a,2)); if (isNaN(c)) return u_pr(d,2)
        return u_pc(u_pr(d,2),c)} } while (true)}
     e=a.substr(w,y-w); a=a.substr(0,x)+u_gen(e,b)+a.substr(y+1)} while (true)
}
function u_base(a) {
  var b=d_base(), c="", f=false, d="", e="", g="", j=0, n=0, x=0, y=0

  do {x=a.lastIndexOf("["); y=a.indexOf("]",x)+1; d=u_brac(a.substr(x),"[]")
    if (x==-1) return a; c=d.charAt(0), f=(c==c.toUpperCase()); n=0; j=-1

    do {j++; if (j==d.length) break; c=d.charAt(j); if (isNaN(c)) continue
      n=u_pI(d.substr(j)); break} while (true); e=d.substr(0,j); j=0

      do {j++; d=u_pu(b,j); if (d=="") {g=e; break}
        if (u_pt(d,1)==e) {g=u_pt(d,2); if (n>0) g=u_pc(g,n); break} } while (true)

    g=u_base(g); if (f && u_mO("*+-/",g)) g=eval(g)
    a=a.substr(0,x)+g+a.substr(y)} while (true)
}
function u_bs(a) {return u_base("["+a+"]")}
function u_hex(n) {
  var h="0123456789ABCDEF", g="", c="", r=0
  do {if (n==0) break; r=n%16; g=h.charAt(r)+g; n-=r; n=n/16} while (true)
  if (g=="") g="0"; return g
}
function u_alph(a) {
  var b="abcdefghijklmnopqrstuvwxyx", j=0, f=false
  a=a.toLowerCase(); for (j=0; j<a.length; j++) if (u_iO(b,a.charAt(j))) f=true;  return f
}
function u_rem(a,b) {
  var j=-1; do {j++; if (j==b.length) return a; a=u_sub(a,b.charAt(j),"")} while (true)
}
function u_trst(f) {if (f) return "true"; return "false"}
function u_mub(a,c,b) {
  var j=0, d="", e=""
  do {j++; d=u_pr(c,j); e=u_pr(b,j); if (d=="") return a; a=u_sub(a,d,e)} while (true)
}
function u_seqsub(a,c,b) {
  var i=0, d=""
  do {i++; if (!u_iO(a,c)) return a; d=u_pr(b,i); a=u_sub(a,c,d,1)} while (true)
}
function u_whole(x) {if (x>0.5 && m_a(x-Math.round(x))<1e-14) return true; return false}
function u_int(x) {if (m_a(x-Math.round(x))<1e-14) return true; return false}
function u_teval(a) {try {x=eval(a)} catch(e) {return "X"} return x}
function u_last(a) {return a.charAt(a.length-1)}
function u_axeq(p,q) {
  var x=0; if (q==0 && p!=0) return false
  x=u_ndp(q)+6; if (x>14) x=14; x=1/Math.pow(10,x)
  if (Math.abs(p-q)<x) return true; return false
}
function u_top(a,x,b) {
  var i=0, d=a.substr(0,x)
  a=a.substr(x); if (b==undefined) return a; d=u_rem(d,b); return d+a
}
function u_ndp(a) {
  var x=0; a="_"+a; x=a.indexOf("."); if (x==-1) return 0
  a=a.substr(x+1); return a.length
}
function u_ins(a,b,x,y) {if (y==undefined) y=x; return a.substr(0,x)+b+a.substr(y)}
function u_sep(z,a) {
  if (z==1) {a=u_mub(a,"+|-|~","#|#~|-"); if (a.charAt(0)=="#") a=a.substr(1)}
  if (z==2) {a=u_sub(a,"#","+"); a=u_sub(a,"+-","-")}
  return a
}
function u_dpq(a) {
  var x=0, y=0, p=0, q=0, b="", h="0123456789"
  a=("_"+a).substr(1); a=u_sub(a,"Math.","M#")
  do {if (u_iO(a,").")) return "X"; p=a.indexOf("."); if (p==-1) break; x=p; y=p
    do {x--; if (x<0 || !u_iO(h,a.charAt(x))) break} while (true); q=x; x++
    do {q++; if (!u_iO("0.",a.charAt(q))) break} while (true)
    do {y++; if (y>=a.length || !u_iO(h,a.charAt(y))) break} while (true)
    b=a.substr(q,y-q); b="("+u_rem(b,".")+"/1"+u_str("0",y-p-1)+")"
    a=a.substr(0,x)+b+a.substr(y)} while (true)
  a=u_sub(a,"M#","Math."); return a
}
function u_close(a) {var x=u_c(a,"(")-u_c(a,")"); if (x>0) a+=u_str(")",x); return a}
function u_calc(a) {
  var b=d_calc(), j=-1, x=0, d=""
  var h="abcdefghijklmnopqrstuvwxyz"; h=h+h.toUpperCase() 

  do {j++; if (j==a.length) break; c=a.charAt(j); if (!u_iO(h,c)) continue
    j++; x=u_pI(a.substr(j)); j=b.indexOf(c+"|"); j+=2; d=u_pc(b.substr(j),x)
    a=u_sub(a,c+x,"("+d+")"); j=-1} while (true)
  x=u_teval(a); if (isNaN(x)) return "X"; return x
}
function u_balc(a) {
  var d="", e=""
  do {d=u_brac(a,"[]"); if (d=="") return a; e=u_rem(d,"#")
    a=u_sub(a,"["+d+"]",u_calc(e))} while (true)
}
function u_arg(z,a,x) {
  var p=x, b=0, c="", d=d_alph(), e="", h="1234567890."+u_so(31)
  if (z==1) {
    do {if (p==a.length) break; c=a.charAt(p)
      if (c=="(" && b==0 && p>x && !u_iO(d,e)) break
      if (u_iO("([<",c)) b++; if (u_iO(")]>",c)) b--
      if (u_iO("+-=/;)],~×"+d,c) && b<=0 && p>x) break; e=c; p++} while (true)
    if (u_iO(")]~",c) && b==0) p++}
  if (z==0) {
    do {p--; if (p<0) break; c=a.charAt(p); e="-"; if (p>0) e=a.charAt(p-1)
      if (u_iO("([",c)) b++; if (u_iO(")]",c)) b--
//      if (c=="(") b++; if (c==")") b--
      if ("*+-=/,¸;~×".indexOf(c)>=0 && b>=0) break
//      if (u_iO("([",c) && !u_iO(d,e) && b>=0) break} while (true)
      if (u_iO("([",c) && b>=0) break} while (true)
    if (u_iO("([~",c) && b==0) p--}
  if (z==6) 
    do {if (p==a.length) break; c=a.charAt(p)
      if (u_iO("([",c)) b++; if (u_iO(")]",c)) {b--; if (b<0) break}
      if (u_iO("+-÷×=,;",c) && b==0) break; p++} while (true)
  if (z==9) {
    c=a.charAt(p); if (u_iO("([",c)) p=u_arg(1,a,x)
      else {if (c=="-") p++
        do {if (p==a.length || !u_iO(h,a.charAt(p))) break; p++} while (true)} }
  return p
}
function u_debrac(a) {
  var b=u_mub(a,"[|]","(|)"), g=""
  do {g=u_brac(b,"()"); if (b=="("+g+")") b=g; else return b} while (true)
}
function u_ion(a,b,n) {
  var i=0, x=0
  if (n==undefined) return a.indexOf(b)
  do {i++; x=a.indexOf(b,x); if (i>=n || x==-1) return x; x++} while (true)
}
function u_rev(a) {
  var j=-1, g="", x=a.length
  do {j++; if (j==x) return g; g=a.charAt(j)+g} while (true)
}
function u_key(z,a,b) {
  var j=0, d="", e=""
  if (z==1) do {d=u_brac(a,"{}i"); if (d=="") return a
    e=u_key(2,u_rem(d,"{#}"),b); a=u_sub(a,d,e)} while (true)
  if (z==2) do {j++; d=u_pu(b,j); if (d=="") return d
    if (u_pr(d,1)==a) return u_pr(d,2)} while (true)
}
function u_ecol(a,n,s) {
  var c=u_g(a,"bc"), i=0, g="", h="", p=0, q=0, x=0
  var f=(u_iO(c,"rgb")); if (f) c=u_brac(c,"()"); else c=c.substr(1)
  for (i=0; i<3; i++) {if (f) p=u_pIc(c,i+1); else p=u_phx(c.substr(i*2,2))
    q=u_phx(n.substr(i*2,2))
    if (s=="+") x=p+q; else x=p-q; h=u_hex(x); if (h.length==1) h="0"+h
    g+=h} g="#"+g; return g
}
function u_styl(a,s) {
  var j=0, d="", b=""
//  if (u_iO(a,"|")) {if (s==undefined) s=a.charAt(0)
//    do {j++; d=u_pr(a,j); if (d=="") return; u_styl(d,s)} while (true)}
  if (s==undefined) s=a; d=u_py(a,1); u_m(d,d_styl(s))
}
function u_redun(a) {
  var d="", e="", x=0, y=0 
  a=u_sub(a,"/(1)","")
  do {x=a.indexOf("(",x); if (x==-1) break
    d=u_brac(a.substr(x),"()"); y=x+d.length+2
    do {e=u_brac(d,"()i"); if (e!=d) break; d=u_tr(d.substr(1),1)} while (true)
//    if (d.length>1 && (u_iO(d,"-") || isNaN(d))) d="("+d+")" 
    d="("+d+")"
    a=a.substr(0,x)+d+a.substr(y); x++} while (true)
  return a
}
function u_parent(e) {
  var v=""
  do {e=e.parentNode; v=e.id; if (v!="") return v} while (true)
}
function u_mbrac(z,a) {
  var d=""
  if (z==1) do {d=u_brac(a,"()i"); if (d=="") return a; a=u_sub(a,d,"")} while (true)
}


     