var aArgs=SearchDecompose();

// Communication
sjs=document.getElementById('jslib').src; // IE7- gives a relative path
sRoot=sjs.substr(0,sjs.length-10);
var iQuery;if ((iQuery=document.URL.indexOf('?'))==-1) iQuery=document.URL.length;

var oSrvV=false;
function oSrv() {if (oSrvV!==false) return oSrvV;try {oSrvV=new XMLHttpRequest();} catch(e){try{oSrvV=new ActiveXObject("Msxml2.XMLHTTP");} catch(e){try{oSrvV=new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {alert("No AJAX!");oSrvV=null;}}} return oSrvV;}
var ReadTxt,ReadPos,SessionUser=0,SessionCode,SessionID='',SessionPIN='',SessionChallenge=0,ReadMsg='',ReadNull='';
var ReadFlags=32; // 1 Err->ReadMsg  2 Err->PopUp  4 Exit   8 Has had Error  16 No Read (GetFirst)  32 Err->Log   64 Returned ReadNull   128 alert(Read)
var SrvGetFlags=0;

var guid=0;

function gebi(s) {return document.getElementById(s);}

function emailf(d,u,t) {s=u+unescape('%40')+d;document.write('<a href="mailto:'+s+'">'+((t>'')?t:toHtml(1,s))+'<\/a>');}

function toHtml(iFlags,s) { // consider using node.textContent=
if ((iFlags&2)>0) {if (s.substr(0,1)=='=') return s.substr(1);}
if ((iFlags&7)>0) s=s.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/\r\n/g,'<br>');
if ((iFlags&4)>0) s=s.replace(/\x27/g,'&#39;').replace(/\x22/g,'&#34;');
return s;
}

function enlarge(o) {
var r,s=o.src.toString(),i=s.lastIndexOf('/'),sLarge=o.src.substr(0,i+1)+'large'+s.substr(i);
SrvGet(0,"cmds.php",0,"Cmd="+lls('fileexists')+lls(encodeURIComponent(decodeURIComponent(sLarge))));
//ReadTxt='110';
//var oImg=new Image;
//oImg.src=(ReadTxt=='111')?sLarge:s;
//var v=domsg(512,null,'Enlarged Image','','',0.75,0.75);
//gebi('G'+v[0]+'msg').style.textAlign='center';
//if (oImg.naturalWidth) r=oImg.naturalHeight/oImg.naturalWidth; else r=oImg.height/oImg.width;
//gebi('G'+v[0]+'msg').innerHTML="<img style='"+(((v[2]/v[1])>r)?'width:100%;':'height:'+v[2]+'px;')+"' src='"+oImg.src+"' />";
}

var k=0;

function enlargee(e) {
var el;if (e===undefined) el=event.srcElement; else el=e.currentTarget;
enlarge(el);
}

function enlargeadd(o) {
if (o.tagName===undefined) o=gebi(o);
if (o.tagName.toLowerCase()=='img') {if (o.onclick===undefined||o.onclick===null) {o.onclick=enlargee;o.style.cursor='pointer';}}
for(var i=0;i<o.childNodes.length;i++) {
//alert(o.childNodes[i].tagName+' - '+o.childNodes[i].nodeType);
if (o.childNodes[i].nodeType==1) enlargeadd(o.childNodes[i]);
}
}

function domsg(iFlags,o,sTit,sSbj,sMsg,W,H) {
// 1 Title=Subject   2 Create New  4 Close 8 Hide 16 Clear 32 Del Item 64 [Random Displacement] 128 Add Top 256 Add Bottom
// 512 symbol Close
var iId=++guid;
if ((iFlags&1)>0||sTit===null) sTit=sSbj;
if (sTit==='') sTit='Message';
if ((iFlags&2)>0||o===null) {
document.body.appendChild(o=document.createElement("div"));
o.id='G'+iId;
if (SupportsFixed()) {
o.style.cssText="position:fixed;top:"+(1-H)*50+"%;height:"+H*100+"%;left:"+(1-W)*50+"%;width:"+W*100+"%;z-index:9999;padding:0px;overflow:auto;";
} else {
o.style.cssText="position:absolute;top:"+parseInt(getScrollXY()[1]+getWindowWH()[1]*(1-H)/2,10)+"px;height:"+getWindowWH()[1]*H+"px;left:"+(1-W)*50+"%;width:"+W*100+"%;z-index:99;padding:0px;overflow:auto;";
}
o.className='msgbox';
o.innerHTML="<div id='"+o.id+"head'>\n"
+"<div id='"+o.id+"tit' class='msgtit' style='padding:3px'>"+(((iFlags&512)>0)?"<div style='float:right;cursor:pointer;' onclick=\"gebi('"+o.id+"').parentNode.removeChild(gebi('"+o.id+"'));\">Close</div>\n":'')+sTit+"</div>"
+"<div id='"+o.id+"mnu' class='msgmenu'>"
+(((iFlags&4)>0)?"<span onclick=\"gebi('"+o.id+"').parentNode.removeChild(gebi('"+o.id+"'));\">Close</span>\n":'')
+(((iFlags&8)>0)?"<span onclick=\"gebi('"+o.id+"').style.display='none';\">Hide</span>\n":'')
+(((iFlags&16)>0)?"<span onclick=\"gebi('"+o.id+"inf').textContent='';\">Clear</span>\n":'')
+"</div>\n</div>"
+"<div id='G"+iId+"inf' style='padding:3px;overflow:auto;'>info</div>\n";
} else {
if (sTit>'') gebi(o.id+'tit').innerHTML=sTit;
}

oInf=gebi(o.id+'inf');
oInf.innerHTML=(((iFlags&256)>0)?oInf.innerHTML:'')+"<div class='msgpara' id='G"+iId+"msg'>"+((sSbj>'')?"<span class='msgsbj'>"+sSbj+'</span>':'')+((sSbj>''&&sMsg>'')?' - ':'')+((sMsg>'')?"<span class='msgtxt'>"+sMsg+'</span>':'')+(((iFlags&32)>0)?"&nbsp; <span class='msgitemx' onclick='this.parentNode.parentNode.removeChild(this.parentNode)'>x</span>":'')+"</div>"+(((iFlags&128)>0)?oInf.innerHTML:'');

return [iId,o.clientWidth,o.clientHeight-gebi(o.id+'head').offsetHeight-6];

}

function insertChildEnd(oInsertThis,oUnderThis) {return oUnderThis.appendChild(oInsertThis);}

function ImageFit(iFlags,ImgW,ImgH,TgtW,TgtH) {
// 1 Shrink  2 Enlarge
ImgR=ImgH/ImgW;TgtR=TgtH/TgtW;
if (ImgR>TgtR) {
if (ImgH>TgtH&&(iFlags&1)>0||ImgH<TgtH&&(iFlags&2)>0) {ImgW*=(TgtH/ImgH);ImgH=TgtH;}
} else {
if (ImgW>TgtW&&(iFlags&1)>0||ImgW<TgtW&&(iFlags&2)>0) {ImgH*=(TgtW/ImgW);ImgW=TgtW;}
}
return [ImgW,ImgH];
}

var SupportsFixedV=null;
function SupportsFixed() {
if (SupportsFixedV!==null) return SupportsFixedV;
SupportsFixedV=false;
if (document.createElement) {
var e=document.createElement("div");
if (e&&e.style) {e.style.width="1px";e.style.height="1px";e.style.position="fixed";e.style.top="10px";
var root=document.body;if (root&&root.appendChild&&root.removeChild) {root.appendChild(e);SupportsFixedV=e.offsetTop===10;root.removeChild(e);}
} e=null;}
return SupportsFixedV;
}

function offsetDif(iFlags,o,oStop) {
if ((iFlags&1)>0) o=gebi(o);
if ((iFlags&2)>0) oStop=gebi(oStop);
var iTop=0,iLeft=0;
if (o.offsetParent) {
do {
iTop+=o.offsetTop;iLeft+=o.offsetLeft;
} while ((o=o.offsetParent)); //||o.offsetParent===oStop
}
return [iTop,iLeft];
}

function getScrollXY() {
var x=0,y=0;
if(typeof(window.pageYOffset)=='number') {
y=window.pageYOffset;x=window.pageXOffset;
} else if( document.body&&(document.body.scrollLeft||document.body.scrollTop)){
y=document.body.scrollTop;x=document.body.scrollLeft;
} else if( document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)) {
y=document.documentElement.scrollTop;x=document.documentElement.scrollLeft;
}
return [x,y];
}

function getWindowWH() {
var x=0, y=0;
if(typeof(window.innerWidth)=='number') {
x=window.innerWidth;y=window.innerHeight;
} else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)) {
x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;
} else if(document.body&&(document.body.clientWidth||document.body.clientHeight)) {
x=document.body.clientWidth;y=document.body.clientHeight;
}
return[x,y];
}

function IsImageErr(oImg) {
alert(oImg.complete);
alert(oImg.naturalWidth);
//if (!oImg.complete) return true;
if (oImg.naturalWidth!==undefined&&oImg.naturalWidth==0) return true;
return false;
}

// DATA READ

function SrvGet(iGFlags,sPhp,iFlags,s) {
// 1 XX Process Response Error   2 XX Process Records Affected   4 Send Challenge   8 Read Next Challenge 16 Read To First Data
var z=s;
iGFlags|=SrvGetFlags;
s='Rnd='+Math.random()+'&Flags='+iFlags+'&User='+SessionUser+(((iGFlags&4)>0)?'&Challenge='+hex_md5(SessionPIN+SessionChallenge):'')+'&'+s;
DebugAdd("<a target='"+Math.random()+"' href='"+toHtml(5,sPhp+'?'+s)+"'>SQL SrvGet</a>: "+toHtml(5,sPhp+'?'+s));
oSrv();
oSrvV.open('POST',sPhp,false);
oSrvV.setRequestHeader("Content-type","application/x-www-form-urlencoded");
oSrvV.setRequestHeader("Content-length",s.length);
oSrvV.setRequestHeader("Connection","close");
oSrvV.send(s);
ReadInit(oSrvV.responseText);

if ((iGFlags&16)>0) {ReadFlags|=16; ReadNxt();}
if ((iGFlags&8)>0) SessionChallenge=ReadNxt();
//if ((iGFlags&1)>0) {var iRtn=toInt(ReadNxt());
// if (iRtn>31) {z="Error "+ReadNxt()+" - \n\n"+ReadNxt();DebugAdd(z);alert(z);return iRtn;}
// if ((iGFlags&2)>0) DebugAdd("Records Affected : "+ReadNxt());return iRtn;
//}
}

function ReadInit(s) {ReadPos=(s>'')?0:-1;ReadTxt=s;ReadMsg='';ReadFlags=32;ReadNull='';}

function ReadNxt() {
var v;
if ((ReadFlags&7)>0) 
while (ReadTxt.substr(ReadPos,1)=='E'&&ReadPos>=0) {
ReadPos++; v=ReadNxtA(3); ReadFlags|=8;
if ((ReadFlags&1)>0) ReadMsg+=v[2]+' ['+v[0]+' / '+v[1]+']';
if ((ReadFlags&2)>0) alert(v[2]+' ['+v[0]+' / '+v[1]+']');
if ((ReadFlags&32)>0) DebugAdd(toHtml(1,v[2])+' <b>['+v[0]+' / '+v[1]+'</b>]');
if ((ReadFlags&4)>0) return; 
}
if (ReadPos<0) {ReadFlags|=64;return ReadNull;}
if ((ReadFlags&16)>0) {ReadFlags&=~16;return;}
var ll=toInt(ReadTxt.substr(ReadPos,1));var l=toInt(ReadTxt.substr(ReadPos+1,ll));ReadPos=ReadPos+1+ll;ll=ReadPos;ReadPos+=l;if (ReadPos>=ReadTxt.length) ReadPos=-1;
if ((ReadFlags&128)>0) alert(ReadTxt.substr(ll,l));
return ReadTxt.substr(ll,l);
}

function lls(s) {
return ''+((''+((''+s).length)).length)+((''+s).length)+s;
}

function DebugAdd(s) {
//document.write("<div>"+s+"</div>");
}

function libtest() {alert('lib test');}

function SearchDecompose() {
// Decompose Search String into Parameters
// Example: b=SearchDecompose();document.write(b['end']);
var s=(location.search).substring(1);
var a=new Array();
if (s>"") {
var iAmpL=-1;
do {
var iAmpN=s.indexOf('&',iAmpL+1);
var iEq=s.indexOf('=',iAmpL+1);if (iEq>iAmpN&&iAmpN!=-1) iEq=-1;
var sWrd=(s.substring(iAmpL+1,(iEq>-1)?iEq:((iAmpN>-1)?iAmpN:s.length))).toLowerCase();
var sVal=(iEq>-1)?s.substring(iEq+1,(iAmpN>-1)?iAmpN:s.length):null;
a[sWrd]=sVal;
iAmpL=iAmpN;
} while(iAmpN!=-1)
} return a; }

function Serialise(v) {
var s='';
if (v===undefined) return 'undefined';
if (v.constructor===Number) return v;
if (v.constructor===String) return "'"+v.replace(/'/g,"\\'")+"'";
if (v.constructor===Array) {for(var i=0;i<v.length;i++) {s+=((i==0)?'':',')+Serialise(v[i]);} return '['+s+']';}
return "'"+v.replace(/'/g,"\\'")+"'";
}

function FilenameStd(s) {
var z='',ySpc=false;
for(var i=0;i<s.length;i++) {var k=s.charAt(i);
if (k>='a'&&k<='z'||k>='A'&&k<='Z'||k>='0'&&k<='9'||k=="'") {z+=((ySpc)?'-':'')+k;ySpc=false;} else if (z>'') ySpc=true;
} return z;
}

function toText(iFlags,s) { // consider using =node.textContent
// 2 Remove <[...]>  1 Remove HTML  4 Replace <br...> with space
if (s.replace) {
if ((iFlags&2)>0) s=s.replace(/<&#91;^>&#93;*>/g, "");
if ((iFlags&1)>0) return s.replace(/[\r\n\t]/g,' ').replace(/<br>/gi,(((iFlags&4)>0)?' ':"\r\n")).replace(/<br[^a-zA-Z][^>]*?>/gi,(((iFlags&4)>0)?' ':"\r\n")).replace(/<[^>]*>/g,'').replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&').replace(/&#39;/g,"'").replace(/&#34;/g,'"').replace(/ +/g,' ').replace(/&nbsp;/g,' ').replace(/&#160;/g,' '); else return s;
} else return s;
}

function getSubPath(iFlags,s,iLevel) {
// Level 0=Doc 1=Path 2=Parent Path etc
// 0-3 (Rtn : 0 String, 1 Pos)
var i,j,k; if ((i=(s.indexOf('?')-1))==-2) i=s.length-1;
for(j=0;j<iLevel;j++) {
k=s.substring(0,i).lastIndexOf('\\',i);i=s.substring(0,i).lastIndexOf('/',i);if (k>i) i=k;
} switch(iFlags&3) {case 0:return s.substring(0,i+1);case 1:return i+1;}
}

function SearchDecompose() {
// Decompose Search String into Parameters
// Example: b=SearchDecompose();document.write(b['end']);
var s=(location.search).substring(1), a={},j,l=-1,i;
if (s>'') {
s+='&';i=s.indexOf('&',l+1);
while (i!=-1) {j=s.indexOf('=',l+1);if (j>-1) a[(s.substring(l+1,j)).toLowerCase()]=s.substring(j+1,i); l=i;i=s.indexOf('&',l+1);}
} return a; }





<!--

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

//-->

