// Consolidated javascript routines v.1
// Copyright (c) Allagraf Limited 2008, except where indicated. All rights reserved.
//
// standard DOM functions
function d_mk(el,par,tx,cl,ats){var ch=d_ce(el);if(tx)d_st(ch,tx);if(cl)d_cn(ch,cl);
if(ats){for(var i in ats)d_sa(ch,i,ats[i]);}if(par)d_ac(par,ch);return ch;}
function d_ac(par,ch){par.appendChild(ch);}
function d_ae(el,ev,fn){if(el.addEventListener){el.addEventListener(ev,fn,false);
return true;}else if(el.attachEvent){var r=el.attachEvent("on"+ev,fn);return r; 
}else{return false;}}
function d_cd(e){if(!e)e=window.event;e.returnValue=false;
if(e.preventDefault)e.preventDefault();if(e.stopPropagation)e.stopPropagation();
return false;}
function d_ce(el){return document.createElement(el);}
function d_cl(ob){while(ob.firstChild)ob.removeChild(ob.firstChild);}
function d_cn(el,cl){el.className=cl;}
function d_cs(st,ru,de){var x=d_gs(st);if(x)x.style[ru]=de;}
function d_de(el,ev,fn){if(el.removeEventListener){el.removeEventListener(ev,fn,false); 
}else if(el.detachEvent){el.detachEvent("on"+ev,fn);}else{el["on"+ev]=null;}}
function d_ex(ob){return (typeof ob!='undefined');}
function d_gb(){return document.getElementsByTagName('body')[0];}
function d_ge(id){return document.getElementById(id);}
function d_gp(ob,pn){var p=ob.parentNode;while(p&&p.nodeName.toLowerCase()!=pn)
p=p.parentNode;return p;}
function d_gs(st){var term=(document.styleSheets[0].rules)?'rules':((document.styleSheets[0].cssRules)?'cssRules':null);
if(term){for(var i=0;i<document.styleSheets.length;i++){var dst=document.styleSheets[i][term];
for(var j=0;j<dst.length;j++){if(dst[j].selectorText=='.'+st)return dst[j];}}}return null;}
function d_gt(e){if(!e)e=window.event;var te=null;if(e.target)te=e.target;
else te=e.srcElement;while(te.nodeType==3&&te.parentNode!=null)te=te.parentNode;return te;}
function d_rh(e){if(!e)e=window.event;if(e.which)return(e.which==3);
else if(e.button)return(e.button==2);else return false;}
function d_rm(id){var o=d_ge(id);if(o)o.parentNode.removeChild(o);} 
function d_rp(ob,nb){ob.parentNode.replaceChild(nb,ob);} 
function d_sa(par,att,val){par.setAttribute(att,'');par[att]=val;} 
function d_sd(e){e.returnValue=false;if(e.preventDefault)e.preventDefault();}
function d_ss(el,st,de){el.style[st]=de;}  
function d_st(el,tx){var t=document.createTextNode(unescape(tx));d_ac(el,t);}
function d_tb(par){var t=d_mk('table',par);t.cellSpacing=0;t.cellPadding=0;
d_mk('thead',t);d_mk('tfoot',t);return d_mk('tbody',t);} 
function d_tt(el,tx,cl,sc){var st=d_ge(el);if(st){d_cl(st);if(tx){d_st(st,tx);
if(cl)d_cn(st,cl);if(sc)setTimeout("d_tt('"+el+"')",sc);}else{d_st(st,'%a0');d_cn(st,'');}}}
function d_tx(){if(document.getSelection)return document.getSelection();
else if(document.selection&&document.selection.createRange)
return document.selection.createRange().text;else return false;}
// standard DHTML functions
// note uses some standard element IDs
var win_maxz = 1;
function dh_dia(wi,ix,ti,tx,fl,bt,ifrsrc,ifrht){var di=d_ge('dia');if(d_ex(di))
dh_can();di=dh_dia_top(wi);d_ae(document,'keypress',dh_keys);var dttl=d_mk('p',di,ti,'diattl');
var clim=d_mk('img',dttl,'','diabt1',{'src':Config.dht.closebtn});clim.style.top='10px';
clim.style.left=(wi-30)+'px';clim.onclick=dh_can;var diatx=d_mk('div',di,'','diatxt');
diatx.innerHTML=fst_nl2br(tx);if(ifrsrc){
var ifr=d_mk('iframe',di,'','',{'id':'ifr','width':di.offsetWidth-12,'src':ifrsrc,'frameborder':'no'});
if(ifrht)ifr.height=ifrht;ifr.frameborder='0';d_ss(ifr,'borderWidth','0px');dh_dia_bot(di);
return true;}else{d_mk('table',di,'','',{'width':di.offsetWidth*0.8,'align':'center','id':'tbl'+ix});
var tb=new Jstable(ix,fl);tb.setpagebtns(bt);tb.setsingle(true);tb.writetable();
dh_dia_bot(di);if(fl[0])d_ge(tb.fmt.geth(0,1) + ':' + tb.fmt.geth(0,2)).select();
return tb;}}
function dh_dia_top(wi){var sp=dh_gsp();var vs=dh_gvs();var ps=dh_gps();
if(vs[1]>ps[1])ps[1]=vs[1];var bd=d_gb();var cn=d_mk('div',bd,'','curtain',{'id':'cur'});
d_ss(cn,'position','absolute');d_ss(cn,'left',0);d_ss(cn,'top',0);d_ss(cn,'width',ps[0]+'px');
d_ss(cn,'height',ps[1]+'px');var diwi=(wi)?wi:ps[0]*0.4;
var di=d_mk('div',bd,'','dialog',{'id':'dia'});d_ss(di,'width',diwi+'px');
d_ss(di,'visibility','hidden');d_ss(di,'position','absolute');return di;}
function dh_dia_bot(di){var sp=dh_gsp();var vs=dh_gvs();
d_ss(di,'left',sp[0] + parseInt(vs[0]/2) - parseInt(di.offsetWidth/2) + 'px');
d_ss(di,'top',sp[1] + parseInt(vs[1]/2) - parseInt(di.offsetHeight/2) + 'px');
d_ss(di,'visibility','visible');}
function dh_gsp(){var pos=[0,0];if(d_ex(window.pageXOffset))pos=[window.pageXOffset,window.pageYOffset];
else if(d_ex(document.documentElement.scrollLeft)&&document.documentElement.scrollTop>0)
pos=[document.documentElement.scrollLeft,document.documentElement.scrollTop];
else if(d_ex(document.body.scrollLeft))pos=[document.body.scrollLeft,document.body.scrollTop];
return pos;}
function dh_dndstart(e,t){if(!e)e=window.event;if(!d_ex(e.pageX)){
e.pageX=e.clientX+dh_gsp()[0];e.pageY=e.clientY+dh_gsp()[1];}document.curtgt=t;
var cl=parseInt(t.style.left);var ct=parseInt(t.style.top);if(isNaN(cl))cl='0';
if (isNaN(ct))ct='0';if(!d_ex(t.originLeft)){t.originLeft=cl;t.originTop=ct;} 
t.cox=e.pageX;t.coy=e.pageY;t.dx=cl-e.pageX;t.dy=ct-e.pageY;
d_ae(document,'mousemove',dh_dndchkmove);d_ae(document,'mouseup',t.fnclick);
d_cd(e);return false;}
function dh_dndchkmove(e){if(!e)e=window.event;if(!d_ex(e.pageX)){
e.pageX=e.clientX+dh_gsp()[0];e.pageY=e.clientY+dh_gsp()[1];}var t=document.curtgt;
if(Math.abs(t.cox-e.pageX)>3||Math.abs(t.coy-e.pageY)>3){ 
d_de(document,'mousemove',dh_dndchkmove);d_de(document,'mouseup',t.fnclick); 
d_ae(document,'mousemove',t.fnmove);d_ae(document,'mouseup',t.fndrop); 
d_ae(document,'click',dh_dndclick);}d_cd(e);return false;}
function dh_dndcanmove(){var t=document.curtgt;d_de(document,'mousemove',dh_dndchkmove); 
d_de(document,'mouseup',t.fnclick);d_de(document,'click',dh_dndclick);return false;}
function dh_dnddomove(e){if(!e)e=window.event;if(!d_ex(e.pageX)){
e.pageX=e.clientX+dh_gsp()[0];e.pageY=e.clientY+dh_gsp()[1];}var t=document.curtgt;
if(t.style.zIndex<win_maxz)t.style.zIndex=++win_maxz;t.style.left=e.pageX+t.dx+'px';
t.style.top=e.pageY+t.dy+'px';d_cd(e);return true;}
function dh_dndendmove(e){var t=document.curtgt;d_de(document,'mousemove',t.fnmove); 
d_de(document,'mouseup',t.fndrop);return true;} 
function dh_dndclick(e){if(!e)e=window.event;d_de(document,'click',dh_dndclick); 
d_cd(e);return true;} 
function dh_gvs(){var sz=[0,0];if(d_ex(window.innerWidth))sz=[window.innerWidth,window.innerHeight];
else if(d_ex(document.documentElement.clientWidth)&&document.documentElement.clientWidth>0)	
sz=[document.documentElement.clientWidth,document.documentElement.clientHeight];else
sz=[document.getElementsByTagName('body')[0].clientWidth,document.getElementsByTagName('body')[0].clientHeight];
return sz;}
function dh_gps(){var bd=d_gb();var bow=bd.offsetWidth;var boh=bd.offsetHeight;
var bsw=bd.scrollWidth;var bsh=bd.scrollHeight;var ps=[0,0];if(d_ex(document.documentElement.scrollWidth))
ps=[document.documentElement.scrollWidth,document.documentElement.scrollHeight];
if(bow>ps[0])ps[0]=bow;if(boh>ps[1]);ps[1]=boh;if(bsw>ps[0]);ps[0]=bsw;
if(bsh>ps[1]);ps[1]=bsh;return ps;}
function dh_gpo(el){var px=0;var py=0;while(el!=null){px+=el.offsetLeft;
py+=el.offsetTop;el=el.offsetParent;}return[px,py];}
function dh_gsc(){var vs=dh_gvs();var ps=dh_gps();if(vs[1]>ps[1])ps[1]=vs[1];return ps;}
function dh_to(o){return(typeof o != 'undefined');}
function dh_can(){d_de(document,'keypress',dh_keys);d_rm('dia');d_rm('cur');}
function dh_keys(e){if(!e)e=window.event;if(e.keyCode==27)dh_can();}
// Fieldset object and functions
function Fset(hdrs){if(!hdrs)hdrs=new Array();this.hary=hdrs;this.hct=hdrs.length;
this.hdr43=new Array();this.wwg;
this.geth=function(hno,pos){if(pos==1&&this.hary[hno][2]==43)
return this.hary[hno][4]['fld'];else return this.hary[hno][pos];}
this.mklb=function(hno){var hdr=this.hary[hno];var td=d_mk("td",'',unescape(hdr[0]));
if(hdr[4]["tdclass"])d_cn(td,hdr[4]["tdclass"]);return td;}
this.mkfm=function(rw){var fm='';if(this.wwg)this.wwg.downdate();
var inps=rw.getElementsByTagName('INPUT');var txts=rw.getElementsByTagName('TEXTAREA');
var sels=rw.getElementsByTagName('SELECT');for(i=0;i<inps.length;i++){
if(inps[i].className==Config.css.invalid)return false;var ptr=inps[i].id.indexOf(":");
var typ=inps[i].id.substr(ptr+1);if(typ=='40')
fm+=inps[i].name+'='+this.conv(inps[i].checked,typ)+'&';else 
fm+=inps[i].name+'='+this.conv(inps[i].value,typ)+'&';}for(i=0;i<txts.length;i++){
var ptr=txts[i].id.indexOf(":");var typ=txts[i].id.substr(ptr+1);
if(txts[i].className==Config.css.invalid&&typ!='33')return false;
fm+=txts[i].name+'='+this.conv(txts[i].value,typ)+'&';}for(i=0;i<sels.length;i++){
if(sels[i].className==Config.css.invalid)return false;var ptr=sels[i].id.indexOf(":");
var typ=sels[i].id.substr(ptr+1);fm+=sels[i].name+'='+this.conv(sels[i].value,typ)+'&';}
return fm.substr(0,fm.length-1);}
this.mkdt=function(v,hno){var hdr=this.hary[hno];if(!v&&hdr[4]["default"])
v=hdr[4]["default"];v=unescape(v);var td;var ttl;if(hdr[2]>12&&hdr[2]<16&&hdr[4]["cols"]){
if(v.length>hdr[4]["cols"]){ttl=v;v=v.substr(0,hdr[4]["cols"]-3)+ '...';}}
switch(hdr[2]){case 3:td=d_mk("td",'',fst_curr(v,hdr));d_ss(td,'textAlign','right');
break;case 4:if(hdr[4]["debit"]){if(v<0)td=d_mk("td",'',fst_curr(Math.abs(v),hdr));
else td=d_mk("td");}else{if(v>=0)td=d_mk("td",'',fst_curr(v,hdr));else
td=d_mk("td");}d_ss(td,'textAlign','right');break;case 7:td=d_mk("td",'',fst_curr(v,hdr)+'%');
d_ss(td,'textAlign','right');break;case 15:td=d_mk("td",'',v.toUpperCase());break;
case 21:td=d_mk("td",'',fst_date(v,false));break;case 22:if(v==0||v=='0')v=false;	
td=d_mk("td",'',fst_date(v,true));break;case 23:var h=Math.round(v/3600,0);
var m=Math.round(v/60-h*60,0);if(m<10)m='0'+m;td=d_mk("td",'',h+':'+m);
d_ss(td,'textAlign','right');break;case 24:td=d_mk("td");
var w=(hdr[4]["href"])?hdr[4]["href"]+v:v;if(hdr[4]["link"])
d_mk("a",td,hdr[4]["link"],'',{"href":w});else d_mk("a",td,v,'',{"href":w});break;
case 25:td = d_mk("td"); var sp=d_mk("span",td,v);if(hdr[4]["class"])
d_cn(sp,hdr[4]["class"]);if(hdr[4]["onclick"])sp.onClick=hdr[4]["onclick"];break;
case 26:td=d_mk("td",'',v);d_ss(td,'textAlign','center');break;
case 27:td=d_mk("td",'',v);d_ss(td,'textAlign','right');break;
case 28: case 29:td = d_mk("td",'','****');break;
case 30: case 31: case 32: case 33:if(v.length>200){v=v.substr(0,200)+'...';}
td=d_mk("td");di=d_mk("div",td);di.innerHTML=v;break;case 40:if(v!=0){if(hdr[4]["istrue"])
td=d_mk("td",'',hdr[4]["istrue"]);else td=d_mk("td",'','yes');}else{if(hdr[4]["isfalse"])
td=d_mk("td",'',hdr[4]["isfalse"]);else td=d_mk("td",'','no');}d_ss(td,'textAlign','center');
break;case 41:var t=Config.fst.nochoice;if(v){if(hdr[4]["values"]){var i=fst_log2(v);
if(hdr[4]["values"][i])t=hdr[4]["values"][i];}}td=d_mk("td",'',t);break;
case 42:var t='';if(v&&v!='0'){if(hdr[4]["values"]){for(var i=0;i<hdr[4]["values"].length;i++){
if(fst_pow2(i)&v){if(t.length)t+=', ';t+=hdr[4]["values"][i];}}}else t=Config.fst.nochoice;
}else t=Config.fst.nochoice;td=d_mk("td",'',t);break;default:td=d_mk("td",'',v);} 
if(hdr[4]["tdclass"])d_cn(td,hdr[4]["tdclass"]);if(ttl)td.title=ttl;return td;}
this.mkfd=function(v,hno){var hdr=this.hary[hno];if((v=='%a0')&&hdr[4]["default"])
v=hdr[4]["default"];v=(v=='%a0')?'':unescape(v);if(1&hdr[3]){var td=d_mk("td");
d_sa(td,'vAlign','top');var act;switch(hdr[2]){case 3: case 7:if(hdr[4]["curr"])
d_st(td,hdr[4]["curr"]);act=d_mk("input",td,'','',{"type":"text"});
act.size=(hdr[4]["cols"])?hdr[4]["cols"]:8;var c='*'+(v*0.01);
var j=c.indexOf('.');if(j>-1){c+='0';c=c.substr(1,j+2);}else c=c.substr(1)+'.00'; 
act.value=c;d_ss(act,'textAlign','right');if(hdr[2]==7)d_st(td,'%');break;
case 21:act=d_mk("input",td,'','',{"type":"text"});act.size=12;act.maxLength=11;
act.value=fst_date(v,false,true);break;case 22:act=d_mk("input",td,'','',{"type":"text"});
act.size=21;act.maxLength=20;act.value=fst_date(v,true,true);break;case 23:
var h=Math.round(v/3600,0);var m=Math.round(v/60-h*60,0);if(m<10)m='0'+m;
act=d_mk("input",td,h+':'+m,'',{"type":"text"});d_ss(act,'textAlign','right');
break;case 28: case 29:act=d_mk("input",td,'','',{"type":"password"});
act.size=(hdr[4]["cols"])?hdr[4]["cols"]:8;act.value=v;break;
case 30: case 31: case 32: case 33:act=d_mk("textarea",td);
act.rows=(hdr[4]["rows"])?hdr[4]["rows"]:5;act.cols=(hdr[4]["cols"])?hdr[4]["cols"]:8;
act.value=v;break;case 40:act=d_mk("input",td,'','',{"type":"checkbox"});if(v!=0){
act.checked=true;}break;case 41: case 42:act=d_mk("select",td);if(hdr[2]==42){
act.multiple=true;act.size=5;}for(var i=0;i<hdr[4]["values"].length;i++){
var opt=d_mk("option",act,hdr[4]["values"][i]);opt.value=fst_pow2(i);
if(fst_pow2(i)&v)opt.selected='selected';}break;case 43:act=d_mk("select",td);
if(!this.hdr43[hdr[1]])fst_get43(this.hdr43,hdr,v);else
fst_set43(this.hdr43[hdr[1]],hdr[1],v,act);break;case 51:
act=d_mk("input",td,'','',{"type":"file"});break;default:
act=d_mk("input",td,'','',{"type":"text"});act.size=(hdr[4]["cols"])?hdr[4]["cols"]:8;
act.value=v;}if(hdr[4]["maxlen"])act.maxLength=hdr[4]["maxlen"];act.name=hdr[1]; 
act.id=hdr[1]+':'+hdr[2];act.onblur=function(){var x=fst_vali(this.value,hdr);
if(x){d_cn(this,'invalid');d_sa(this,'title',x)}else{d_cn(this,'');
d_sa(this,'title','');if(hdr[4]["action"])eval(unescape(hdr[4]["action"]));}};
var x=fst_vali(act.value,hdr);if(x){d_cn(act,'invalid');d_sa(act,'title',x);}
if(hdr[4]["tdclass"])d_cn(td,hdr[4]["tdclass"]);if(hdr[4]["hint"])d_st(td,' '+hdr[4]["hint"]); 
if(hdr[2]==33){if(!this.wwg)this.wwg=Wysiwyg();var _this=this;var _id=act.id;
setTimeout(function(){_this.wwg.init(_id,Config.wwg.imgdir)},250);}return td;
}else{if(!v&&hdr[2]<40)v=unescape('%a0');var td=this.mkdt(v,hno);if(2&hdr[3]) 
d_mk("input",td,'','',{"type":"hidden","name":hdr[1],"value":v});return td;}}
this.conv=function(v,typ){var r;switch(typ){case '3': case '4': case '7':
r=Math.round(v*100);break;case '15':r=v.toUpperCase();break;case '21': case '22':
var d=Date.parse(v);r=(isNaN(d))?0:d*0.001;break;case '23':var col=v.indexOf(':');
if(col>-1){var h=v.substring(0,col);var m=v.substring(col+1);r=h*3600+m*60;}else
r=0;break;case'28': case '29':r=md5(v);break;case '40':r=(v)?1:0;break;
default:r=v;}return escape(r);}} // end Fset object
//Fst helper functions 
function fst_vali(v,hdr){if(hdr[2]>=40)return false;if((hdr[2]>9)&&(2&hdr[3])&&(!v))
return Config.fst.nbmandatory;if(hdr[4]["minlen"]&&(v.length<hdr[4]["minlen"]))
return Config.fst.nbminlength+hdr[4]["minlen"];if(hdr[4]["maxlen"]&&(v.length>hdr[4]["maxlen"]))
return Config.fst.nbmaxlength+hdr[4]["maxlen"];if((hdr[2]>0)&&(hdr[2]<5)){
if(hdr[4]["min"]&&(v<hdr[4]["min"]))return Config.fst.nbminimum+hdr[4]["min"];
if(hdr[4]["max"]&&(v>hdr[4]["max"]))return Config.fst.nbmaximum+hdr[4]["max"];
}else if((hdr[2]==5)&&(v<1))return Config.fst.nbinvalid;switch(hdr[2]){case 0:
return false;case 1:return (v.match(/^-?\d+$/))?false:Config.fst.nbintegers;
case 2:	case 3:	case 4:	case 6:	case 7:
return (v.match(/^-?\d+(\.\d+)?$/))?false:Config.fst.nbnumbers;case 5:
return (v.match(/^[0-9]*$/) && v>0)?false:Config.fst.nbrecids;case 10: 
return (v.match(/^[a-zA-Z]*$/))?false:Config.fst.nbletters;case 11:
return (v.match(/^[a-zA-Z ]*$/))?false:Config.fst.nbletspace;case 12:
return (v.match(/^[0-9a-zA-Z ]*$/))?false:Config.fst.nbletdigspace;case 13:
return (v.match(/^[0-9a-zA-Z \-\'\"\.,\/()&]*$/))?false:Config.fst.nbaddress;	   //'
case 14: case 15: case 31: return (v.match(/<.*>/))?Config.fst.nbnotags:false;
case 16: return (v.match(/^[0-9 +\-()]*$/))?false:Config.fst.nbphone;
case 20:
return (v.match(/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[0-9a-zA-Z]{1,9})$/))?false:Config.fst.nbemail;
case 21:
if(!v||v=='0'||v=='---'||v.substr(0,6)=='00 mth')return false;else 
return (v.match(/^([0-3][0-9] (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4}|---)$/i))?false:Config.fst.nbdate; 
case 22:
return (v.match(/^([0-3][0-9] (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]|---)$/i))?false:Config.fst.nbdatetime; 
case 23: return (v.match(/^[0-9]*:[0-5][0-9]$/i))?false:Config.fst.nbhhmm; 
case 29: return (v.match(/^(?=.*[0-9]+.*)(?=.*[a-z]+.*)(?=.*[A-Z]+.*)[0-9a-zA-Z]{6,}$/))?false:Config.fst.nbstrpwd;
case 32: return (v.match(/<.*=.*>/))?Config.fst.nbnoattr:false;	default: return false;}}
function fst_curr(v,hdr){var c='*'+(v*0.01);var j=c.indexOf('.');if(j>-1){
c+='0';c=c.substr(1,j+2);}else c=c.substr(1)+'.00'; 
for(var i=c.length-6;i>0;i-=3)c=c.substr(0,i)+','+ c.substr(i);
if(hdr[4]["curr"])c=hdr[4]["curr"]+c;return c;}
function fst_cur2(v,sym){
return fst_curr(parseInt(Math.round(v,0)),[null,null,null,null,{'curr':sym}]);}
function fst_log2(v) {return Math.round((Math.log(v)/Math.LN2),0)}
function fst_nl2br(v) {return v.replace(/\n/g,"<br />");}
function fst_pow2(i) {return Math.round(Math.pow(2,i),0)}
function fst_date(v,w,x) {var mths=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var d=new Date();if(v!=''){if(v!=0 && v!='0' && v!='%a0')d.setTime(v*1000);
else{if(x)return '00 mth '+d.getFullYear();else return '---';}}if (d.getDate()<10)
var t='0'+d.getDate()+' '+mths[d.getMonth()]+' '+d.getFullYear();
else var t=d.getDate()+' '+mths[d.getMonth()]+' '+d.getFullYear();if(w){t+=' ';
if(d.getHours()<10)t+='0';t+=d.getHours()+':';if(d.getMinutes()<10)t+='0';
t+=d.getMinutes()+':';if(d.getSeconds()<10)t+='0';t+=d.getSeconds();}return t;} 
function fst_get43(hdr43,hdr,v){var xhr=new Xhrwrap();
xhr.post(hdr[4]['script'],'hdr='+hdr[1],function(rtxt){rdat=eval(rtxt);hdri=rdat.shift();hdr43[hdri]=rdat;fst_set43(rdat,hdri,v);});
xhr = null;} 
function fst_set43(optary,hdr,v,act){if(!act)var act=d_ge(hdr+':43');var noopt=optary.length;
for(var i=0;i<noopt;i++){var opt=d_mk("option",act,optary[i][1]);opt.value=optary[i][0];
if(optary[i][1]==v)opt.selected='selected';}}
// User functions
var tblu;var xhru=null;
function usr_login(){var reg=[Config.usr.regis,'usr_regis'];
var un=[Config.usr.username,'uname',14,3,{'cols':20,'maxlen':20}];
var pw=[Config.usr.password,'pword',28,3,{'cols':20,'maxlen':20}];
var ent=[Config.usr.enter,'usr_login2'];var can=[Config.usr.cancel,'dh_can'];
var fgt=[Config.usr.forget,'usr_forget'];var chp=[Config.usr.chpwd,'usr_chpwd'];
tblu=dh_dia(240,'u',Config.usr.login_t,'',[un,pw],[ent,can,fgt,chp,reg]);
return false;}
function usr_login2(){var fm=usr_prep(tblu);if(fm)
xhru.post(Config.usr.script+'?a=login',fm,usr_login3);}
function usr_login3(rtxt){dh_can();if(rtxt.match(/OK/))usr_complete();else
d_tt(Config.usr.statdivid,rtxt,Config.css.error,Config.css.msgtime);xhru=null;}
function usr_chpwd(){dh_can();
var un=[Config.usr.username,'uname',14,3,{'cols':20,'maxlen':20}];
var ow=[Config.usr.curpwd,'oword',28,3,{'cols':20,'maxlen':20}];
var nw=[Config.usr.newpwd,'nword',28,3,{'cols':20,'maxlen':20}];
var cw=[Config.usr.cnfpwd,'nword2',28,3,{'cols':20,'maxlen':20}];
var ent=[Config.usr.enter,'usr_chpwd2'];var can=[Config.usr.cancel,'dh_can'];
tblu=dh_dia(240,'u',Config.usr.chpwd,Config.usr.pwdinstr,[un,ow,nw,cw],[ent,can]);}
function usr_chpwd2(){var fm=usr_prep(tblu);if(fm)
xhru.post(Config.usr.script+'?a=chpwd',fm,usr_chpwd3);}
function usr_chpwd3(rtxt){dh_can();if(rtxt.match(/OK/)){alert(Config.usr.pwdchg);
usr_complete();}else d_tt(Config.usr.statdivid,rtxt,Config.css.error,Config.css.msgtime);
xhru=null;}
function usr_forget(){dh_can();
var un=[Config.usr.username,'uname',14,3,{'cols':20,'maxlen':20}];
var em=[Config.usr.email,'email',20,3,{'cols':20,'maxlen':100}];
var ent=[Config.usr.enter,'usr_forget2'];var can=[Config.usr.cancel,'dh_can'];
tblu=dh_dia(240,'u',Config.usr.forgot,Config.usr.fgtinstr,[un,em],[ent,can]);}
function usr_forget2(){var fm=usr_prep(tblu);if(fm)
xhru.post(Config.usr.script+'?a=forget',fm,usr_forget3);}
function usr_forget3(rtxt){dh_can();if(rtxt.match(/@/))alert(Config.usr.fgtmsg+rtxt);
else d_tt(Config.usr.statdivid,rtxt,Config.css.error,Config.css.msgtime);xhru=null;}
function usr_regis(){dh_can();
var pn=[Config.usr.pname,'propername',14,3,{'cols':30,'maxlen':50}];
var or=[Config.usr.org,'orgname',14,1,{'cols':30,'maxlen':50}];
var em=[Config.usr.email,'email',20,3,{'cols':20,'maxlen':100}];
var un2=[Config.usr.usern2,'username',12,3,{'cols':20,'maxlen':30}];
var pw=[Config.usr.password,'pword',28,3,{'cols':20,'maxlen':20}];
var cw=[Config.usr.cnfpwd,'nword2',28,3,{'cols':20,'maxlen':20}];
var op=[Config.usr.optin,'optin',40,1,{}]
var ent=[Config.usr.enter,'usr_regis2'];var can=[Config.usr.cancel,'dh_can'];
tblu=dh_dia(360,'u',Config.usr.regis,Config.usr.reginstr,[pn,or,em,un2,pw,cw,op],[ent,can]);}
function usr_regis2(){var fm=usr_prep(tblu);if(fm)
xhru.post(Config.usr.script+'?a=regis',fm,usr_regis3);}
function usr_regis3(rtxt){dh_can();if(rtxt.match(/OK/)){alert(Config.usr.regmsg);
usr_complete();}else d_tt(Config.usr.statdivid,rtxt,Config.css.error,Config.css.msgtime);
xhru=null;}
function usr_contact(){
var nm=[Config.usr.pname,'nm',14,3,{'cols':40,'maxlen':50}];
var or=[Config.usr.org,'or',14,1,{'cols':40,'maxlen':50}]; 
var ad=[Config.usr.postad,'ad',31,1,{'cols':40,'rows':6}];
var tl=[Config.usr.tel,'tl',16,1,{'cols':20,'maxlen':30}];
var em=[Config.usr.email,'em',20,3,{'cols':40,'maxlen':100}];
var ms=[Config.usr.message,'ms',31,1,{'cols':50,'rows':6}];
if(udetails){nm[4]["default"]=udetails[0];or[4]["default"]=udetails[1];em[4]["default"]=udetails[2];}
var snd=[Config.usr.send,'usr_contact2'];var can=[Config.usr.cancel,'dh_can'];
tblu = dh_dia(540,'u',Config.usr.contfm,Config.usr.continstr,[nm,or,ad,tl,em,ms],[snd,can]);}
function usr_contact2(){var fm=usr_prep(tblu);if(fm)
xhru.post(Config.usr.script+'?a=contact',fm,usr_contact3);}
function usr_contact3(rtxt){if(rtxt.match(/OK/)){dh_can();alert(Config.usr.contmsg);}
else d_tt(Config.usr.statdivid,rtxt,Config.css.error,Config.css.msgtime);xhru=null;}
function usr_complete(){var wlh=window.location.href;var hash=wlh.indexOf("#");
if(hash>=0)wlh=wlh.substring(0,hash);if(wlh.match(/\?/))
window.location.href=wlh+'&login';else window.location.href=wlh+'?login';}
function usr_prep(tbl){if(!xhru)xhru=new Xhrwrap();var fm=tbl.fmt.mkfm(tbl.tb);
if(!fm)alert(Config.fst.flderr);return fm;}
// WYSIWYG text editor
// NB now called Wysiwyg with capital W, and has config for imgdir
var Wysiwyg=function(){var tx;var wpa;var ifr;var ifd;var tbar;var sbar;var stxt;
function calcsize(){return[tx.offsetWidth,tx.offsetHeight,tx.offsetLeft,tx.offsetTop];}
function i2t(){if(wpa.style.display!='none')tx.value=ifd.getElementsByTagName('body')[0].innerHTML;}
function t2i(){ifd.getElementsByTagName('body')[0].innerHTML=tx.value;}
function sbtog(){if(wpa.style.display!='none'){i2t();d_ss(wpa,'display','none');
d_ss(ifr,'display','none');d_ss(tx,'display','block');stxt.innerHTML=Config.wwg.viewed;
sbar.style.width=(sbar.offsetWidth-100)+'px';sbar.style.left='50px';}else{t2i();
d_ss(tx,'display','none');d_ss(wpa,'display','block');d_ss(ifr,'display','block');
stxt.innerHTML=Config.wwg.viewht;sbar.style.width=(sbar.offsetWidth+100)+'px';sbar.style.left='0px';}}
function buildwp(){var sz=calcsize();var fm=d_gp(tx,'form');if(fm)d_ae(fm,'submit',i2t);
d_ss(tx,'display','none');var par=tx.parentNode;wpa=d_mk('div',par,'',"wwg_wpa");
sbar=d_mk('div',par,'',"wwg_sbar");stxt=d_mk('span',sbar,Config.wwg.viewht);d_ae(sbar,'click',sbtog);
d_ss(wpa,'width',sz[0]);d_ss(sbar,'width',sz[0]);d_ss(sbar,'top',-15);
tbar=d_mk('div',wpa,'',"wwg_tbar");ifr=d_mk('iframe',wpa,'',"wwg_ifr");d_ss(ifr,'width',sz[0]-2);
d_ss(ifr,'height',sz[1]-40);
makebtn('Heading 1','formatblock','<h1>');makebtn('Heading 2','formatblock','<h2>');
makebtn('Heading 3','formatblock','<h3>');makebtn('Body text','formatblock','<p>');
makebtn('Insert horizontal rule');makesep();makebtn('Bold');makebtn('Italic');makebtn('Underline');
makebtn('Strike through');makesep();makebtn('Superscript');makebtn('Subscript');makesep();
makebtn('Justify left');makebtn('Justify center');makebtn('Justify right');makesep();
makebtn('Indent');makebtn('Outdent');makesep();makebtn('Insert unordered list');
makebtn('Insert ordered list');makesep();makebtn('Create link');makebtn('Insert image');
makesep();makebtn('Highlight','','ff0');makesep();makebtn('Remove format');
d_ss(wpa,'height',sz[1]);d_ss(wpa,'display','block');d_ss(sbar,'display','block');
var ds='<html><body>'+tx.value+'</body></html>';
ifd=ifr.contentWindow.document;ifd.open();ifd.write(ds);ifd.close();ifd.designMode='on';}
function makesep(){d_mk('span',tbar,' ');}
function makebtn(tx,cd,va){var ty=tx.replace(/\s/g,'');ty=ty.toLowerCase();if(!cd)cd=ty;
if(!va)va=null;var btn=d_mk('img',tbar,'','wwg_btn',{'src':Config.wwg.imgdir+ty+'.gif','title':tx});
d_ss(btn,'cursor','pointer');btn.onmousedown=function(){return false;};
if(ty=='highlight'){if((/MSIE/gi).test(navigator.userAgent))cd='backcolor';else cd='hilitecolor';}
if(ty=='createlink')btn.onclick=function(){url=prompt(Config.wwg.enturl,'');
if(url)ifd.execCommand(cd,false,url);i2t();ifr.contentWindow.focus();return false;};
else if (ty=='insertimage')btn.onclick=function(){url=prompt(Config.wwg.entimg,'');
if(url)ifd.execCommand(cd,false,url);i2t();ifr.contentWindow.focus();return false;};
else btn.onclick=function(){ifd.execCommand(cd,false,va);i2t();ifr.contentWindow.focus();return false;};}
function init(txid){tx=d_ge(txid);if(!tx)alert(txid);
if(d_ex(document.designMode))buildwp();return true;}return{init:init,update:t2i,downdate:i2t};};
// XHR
function Xhrwrap() {
 this.xhr=false;this.deb=0;try{this.xhr=new XMLHttpRequest();}catch(ms2){try{this.xhr=new ActiveXObject("Msxml2.XMLHTTP");}catch(ms1){
 try{this.xhr=new ActiveXObject("Microsoft.XMLHTTP");}catch(nix){this.xhr=false;}}}if(!this.xhr)alert(Config.xhr.noxhr);
 this.debug=function(b){this.deb=b;}
 this.post=function(url,fm,cb,ix){if(!ix)ix=0;if(!this.xhr){alert(Config.xhr.notset);return false;}this.xhr.open("POST", unescape(url));
 this.xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');var _xhr=this.xhr;
 this.xhr.onreadystatechange=function(){if(_xhr.readyState==4){if(_xhr.status==200){if(cb){var txt=_xhr.responseText;
 if(txt.substr(0,9)=="while(1);")txt=txt.substring(9);if(this.deb)alert(txt.substring(0,this.deb));cb(txt);} 
 }else if(_xhr.status==404)alert(Config.xhr.e404+url);else if(_xhr.status==403)alert(Config.xhr.e403);
 else if(_xhr.status==0)alert(Config.xhr.noconn);else alert(Config.xhr.gen+_xhr.status);}};
 if(fm)fm+='&isxhr='+ix;else fm='isxhr='+ix;if(document.cookie)fm+='&'+document.cookie;this.xhr.send(fm);}}
// MD5
/*
 * Compressed version of MD5 for javascript,
 * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for more info.
 */
var chrsz=8;
function md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz));}
function md5_vm_test(){return md5("abc")=="900150983cd24fb0d6963f7d28e17f72";}
function core_md5(x,len){
 x[len>>5]|=0x80<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;
 var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16)
 {var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);
 d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);
 b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);
 d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);
 b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);
 d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);
 b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);
 d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);
 b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);
 d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);
 b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);
 d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);
 b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);
 d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);
 b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);
 d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);
 b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);
 d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);
 b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);
 d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);
 b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);
 d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);
 b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);
 d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);
 b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);
 d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);
 b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);
 d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);
 b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);
 d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);
 b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);
 d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);
 b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);
 c=safe_add(c,oldc);d=safe_add(d,oldd);}return Array(a,b,c,d);}
function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b);}
function md5_ff(a,b,c,d,x,s,t){return md5_cmn((b&c)|((~b)&d),a,b,x,s,t);}
function md5_gg(a,b,c,d,x,s,t){return md5_cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t);}
function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|(~d)),a,b,x,s,t);}
function safe_add(x,y){var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);
 return(msw<<16)|(lsw&0xFFFF);}
function bit_rol(num, cnt){return(num<<cnt)|(num>>>(32-cnt));}
function str2binl(str){var bin=Array();var mask=(1<<chrsz)-1;
 for(var i=0;i<str.length*chrsz;i+=chrsz)bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(i%32);
 return bin;}
function binl2hex(binarray){var hex_tab = "0123456789abcdef";var str="";
 for(var i=0;i<binarray.length*4;i++){str+=hex_tab.charAt((binarray[i>>2]>>((i%4)*8+4))&0xF)+
 hex_tab.charAt((binarray[i>>2]>>((i%4)*8))&0xF);}return str;}
