var numSplit=2;
function myCmdOver(){
  this.style.textDecoration='underline';
}
function myCmdOut(){
  this.style.textDecoration='none';
}
function addComment(subject,subid,curid,replyto){
  var oComWnd=window.open("/addComment.php?subject="+subject+"&subid="+subid+"&curid="+curid+"&cid="+replyto,"Comment","top=100,left=300,width=400px,height=620px,resizable=yes,titlebar=yes,status=yes,toolbar=no,menubar=no,location=no");
  oComWnd.focus();
}
function doLogin(){
  var oComWnd=window.open("/doLogin.php","Login","top=100,left=300,width=400px,height=620px,resizable=yes,titlebar=yes,status=yes,toolbar=no,menubar=no,location=no");
  oComWnd.focus();
}
function showDocumentMap(source,urknr){
  window.location.href="/resolver.php?signum="+source+"&docnr="+urknr;
}
function embedGBS(sid){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/embedGBS.php?sid="+sid+"&target=1";
  doAjax(surl,"left",false,"");
}
function getSourceUrl(sid){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/getSourceUrl.php?sid="+sid+"&target=x";
  document.getElementById("extra").innerHTML="Page is loading...";
  document.getElementById("extra").style.display="block";
  document.getElementById("extra").focus();
  doAjax(surl,"extra",false,"");
}
function getUrk(sid){if(!sid)exit;var surl="/lib/getUrk.php?sid="+sid+"&target=1";doAjax(surl,"left",false,"");}
function getUrkByID(uid){
  if(bAjaxBusy==true)
    return;
  if(uid<2)
    return;
  var offset=0;
  var target=1;
  var surl="/lib/getUrkByID2.php?uid="+uid+"&offset="+offset+"&target="+target;
  if(document.getElementById("leftscroll"))
    document.getElementById("leftscroll").scrollTop=0;
  doAjax(surl,"left",false,"");
}
function onSourceType(sel){
  var ityp=sel[sel.selectedIndex].value;
  if(ityp==0){
    document.getElementById("sourcemap").innerHTML="";
  }
  if(ityp==1){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/page.gif'><img src='http://static.ahlfeldt.se/pics/book.gif'> Show on map</a>";
  }
  else if(ityp>=100&&ityp<=119){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/page.gif'> Show on map</a>";
  }
  else if(ityp>=120&&ityp<=129){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/book.gif'> Show on map</a>";
  }
  else if(ityp>=130&&ityp<=139){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/image.gif'> Show on map</a>";
  }
  else if(ityp>=140&&ityp<=149){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/world.gif'> Show on map</a>";
  }
  if(ityp==161){
    document.getElementById("sourcemap").innerHTML="<a href='maps.php?zoom=45&city=52&divisio=2&layer1=s"+ityp+"'><img src='http://static.ahlfeldt.se/pics/wikipedia.gif'> Show on map</a>";
  }
}
function closeExtra(){
  document.getElementById("extra").style.display="none";
  document.getElementById("extra").innerHTML="&nbsp;";
}
function showFileByName(xid,sid,urn,target){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/showFileByName.php?xid=&sid="+sid+"&urn="+urn+"&target="+target;
  if(target==1){
    if(document.getElementById("leftscroll"))
      document.getElementById("leftscroll").scrollTop=0;
    doAjax(surl,"left",false,"");
  }
  else{
    if(document.getElementById("rightscroll"))
      document.getElementById("rightscroll").scrollTop=0;
    doAjax(surl,"right",false,"");
  }
}
function getSourceByID(sid){
  var surl="/lib/getSourceByID.php?sid="+sid;
  if(leftTarget==1){
    surl+="&target=1";
    if(document.getElementById("leftscroll"))
      document.getElementById("leftscroll").scrollTop=0;
      doAjax(surl,"left",false,"");
  }
  else{
      doAjax(surl,"right",false,"");
      if(document.getElementById("rightscroll"))
        document.getElementById("rightscroll").scrollTop=0;
  }
}
function getSourceByCity(oid,target){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/getSourceByCity.php?oid="+oid+"&target="+target;
  if(target==1){
    doAjax(surl,"left",false,"");
    if(document.getElementById("leftscroll"))
      document.getElementById("leftscroll").scrollTop=0;
  }
  else{
    doAjax(surl,"right",false,"");
      if(document.getElementById("rightscroll"))
        document.getElementById("rightscroll").scrollTop=0;
  }
}
function getSourceByPerson(pid,target){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/getSourceByPerson.php?pid="+pid+"&target="+target;
  if(target==1){
    doAjax(surl,"left",false,"");
    if(document.getElementById("leftscroll"))
      document.getElementById("leftscroll").scrollTop=0;
  }
  else{
    doAjax(surl,"right",false,"");
    if(document.getElementById("rightscroll"))
      document.getElementById("rightscroll").scrollTop=0;
  }
}
function getLatestSource(offset,count){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/getLatestSource.php?offset="+offset+"&count="+count;
  doAjax(surl,"right",false,"");
  if(document.getElementById("rightscroll"))
    document.getElementById("rightscroll").scrollTop=0;
}
function getLatestComment(offset,count){
  if(bAjaxBusy==true)
    return;
  var surl="/lib/getLatestComment.php?offset="+offset+"&count="+count;
  doAjax(surl,"right",false,"");
  if(document.getElementById("rightscroll"))
    document.getElementById("rightscroll").scrollTop=0;
}
function doSearchComments(offset){
  action="/lib/getComments.php";
  if(offset==-1){
    var sexpr=getFormValues(document.getElementById("qsearch"));
    var surl=action+"?"+sexpr+"&offset=0";
  }
  else{
    var sexpr=getFormValues(document.getElementById("findcomment"));
    var surl=action+"?"+sexpr+"&offset="+offset;
  }
  doAjax(surl,"right",false,"");
  if(document.getElementById("rightscroll"))
    document.getElementById("rightscroll").scrollTop=0;
}
function doSearchSources(offset){
  var sexpr=getFormValues(document.getElementById("findsource"));
  if(offset==-1){
    var surl="/lib/SourceSearch.php?"+sexpr;
  }
  else{
    var surl="/lib/getSourceByCategory.php?"+sexpr+"&offset="+offset;
  }
  doAjax(surl,"right",false,"");
  if(document.getElementById("rightscroll"))
    document.getElementById("rightscroll").scrollTop=0;
}
function doSearchText(offset){
  var sexpr="";
  var action="browse_document.php";
  if(document.getElementById("findtext"))
    sexpr=getFormValues(document.getElementById("findtext"));
  if(offset==-1){
    onWidth(2);
    var surl="/lib/FulltextSearch.php";
    if(sexpr)
    surl+="?"+sexpr;doAjax(surl,"right",false,"");
  }
  else if(offset=-2){
    oForm=document.getElementById("findtext");
    oForm.method="GET";
    oForm.action=action;
    oForm.totnum.value=0;
    oForm.offset.value=0;
    oForm.submit();
  }
  else{
    oForm=document.getElementById("findtext");
    oForm.method="GET";
    oForm.action=action;
    oForm.submit();
  }
}
function getDoc(qid){
  if(bAjaxBusy==true)
    return;
  surl="/lib/preview_xmltext.php?qid="+qid;
  surl+="&pane=1";
  document.getElementById("leftscroll").scrollTop=0;
  doAjax(surl,"left",false,"");
}

function myCmdClick(e,arg1,arg2){
  var targ;
  if(!e.type)
    var e=window.event;
  if(e.target)
    targ=e.target;
  else if(e.srcElement)
    targ=e.srcElement;
  if(targ.nodeType==3)
    targ=targ.parentNode;
  var rightclick=false;
  if(e.which)
    rightclick=(e.which==3);
  else if(e.button)
    rightclick=(e.button==2);
  var posx=0;
  var posy=0;
  if(e.pageX||e.pageY){
    posx=e.pageX;posy=e.pageY;
  }
  else if(e.clientX||e.clientY){
    posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
    posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop;
  }
  var surl="";
  var fMap=false;
  var target="";
  var targetId=(targ.id)?targ.id:targ.parentNode.id;
  switch(targetId){
  case'cLeftPane':
    onWidth(11);
    break;
  case'cRightPane':
    onWidth(12);
    break;
  case'cLogin':
    doLogin();
    break;
  case'cStatC':
    alert("Statistics of News and Comments is not implemented.");
    break;
  case'cStat':
    surl="/lib/getSourceStatistics.php?target="+leftTarget;
    if(leftTarget==1)
      target="left";
    else
      target="right";
    break;
  case'cAddComment':
    addComment('w',0,0,0);
    break;
  case'cHelpComment':
    surl="/lib/getCommentsIntro.php?target="+leftTarget;
    if(leftTarget==1)
      target="left";
    else
      target="right";
    break;
  case'cHelpSearch':
    surl="/lib/getSourceIntro.php?target="+leftTarget;
    if(leftTarget==1)
      target="left";
    else
      target="right";
    break;
  case'cSearchC':
    doSearchComments(-1);
    break;
  case'cSearch':
    var ss=document.getElementById("ss");
    var stype=document.getElementById("stype");
    if(ss.value.length==0&&stype.value==0)
      surl="/lib/SourceSearch.php?ss="+ss.value+"&type="+stype.value+"&offset=&count=20";
    else
      surl="/lib/getSourceByCategory.php?ss="+ss.value+"&type="+stype.value+"&offset=0";
    target="right";
    break;
  case'cLatestC':
    getLatestComment(0,10);
    break;
  case'cLatest':
    surl="/lib/getLatestSource.php?offset=0&count=10";
    target="right";
    break;
  case'cSource':
    surl="/lib/getLatestSource.php?offset=0&count=10";
    target="right";
    break;
  case'cComments':
    alert("Under construction");
    break;
  case'cComment':
    alert("Under construction");
    break;
  default:
    mousepos=" mx: "+posx+" my: "+posy;document.getElementById("status2").innerHTML=mousepos+' target: '+targetId+' Rightclick: '+rightclick;
    break;
  }
  if(surl!=""){
    if(bAjaxBusy==true)
      return;
    if(target=="right"&&document.getElementById("rightscroll"))
      document.getElementById("rightscroll").scrollTop=0;
    if(target=="left"&&document.getElementById("leftscroll"))
      document.getElementById("leftscroll").scrollTop=0;
    doAjax(surl,target,false,"");
  }
}
function onBody(){
  onResize();
}
function onResize(){
  var oCont=document.getElementById("container");
  var oTop=document.getElementById("top");
  var oBottom=document.getElementById("bottom");
  if(document.getElementById&&!document.all)
    var ch=window.innerHeight-oTop.clientHeight-oBottom.clientHeight-21;
  else
    var ch=document.body.clientHeight-oTop.clientHeight-oBottom.clientHeight-21;
  document.getElementById("left").style.height=ch+"px";
  document.getElementById("right").style.height=ch+"px";
  if(document.getElementById("middle"))
    document.getElementById("middle").style.height=ch+"px";
  cch=ch-30+"px";
  if(document.getElementById("leftscroll"))
    document.getElementById("leftscroll").style.height=cch;
  if(document.getElementById("middle"))
    document.getElementById("middlescroll").style.height=cch;
  document.getElementById("rightscroll").style.height=cch;
  onWidth(numSplit);
}
function onWidth(ns){
  var bMiddle=false;
  if(document.getElementById("middle")){
    if(document.getElementById("middle").style.display=="inline")
      bMiddle=true;
  }
  if(ns==11){
    if(numSplit==3){
      alert("Already at maximum width");
      return;
    }
    ns=numSplit+1;
  }
  else if(ns==12){
    if(numSplit==1){
      alert("Already at maximum width");
      return;
    }
    ns=numSplit-1;
  }
  else if(ns==0)
    ns=numSplit;
  var oCont=document.getElementById("container");
  var cw=(oCont.clientWidth-74)/4;
  switch(ns){
  case 1:
    if(bMiddle){
      document.getElementById("middle").style.width=cw+"px";
      document.getElementById("right").style.width=cw+cw+"px";
    }
    else
      document.getElementById("right").style.width=cw+cw+cw+"px";
    document.getElementById("left").style.width=cw+"px";
    break;
  case 2:
    if(bMiddle){
      document.getElementById("middle").style.width=cw+"px";
      document.getElementById("right").style.width=cw+"px";
    }
    else
      document.getElementById("right").style.width=cw+cw+"px";
    document.getElementById("left").style.width=cw+cw+"px";
    break;
  case 3:
     document.getElementById("left").style.width=cw+cw+cw+"px";
     document.getElementById("right").style.width=cw+"px";
     break;
  }
  numSplit=ns;
  if(document.getElementById("bmap")){
    if(document.getElementById("bmap").clientWidth<document.getElementById("leftscroll").clientWidth){
      createMap(0,0,0);
    }
  }
}
function postCreate(){
  switch(iPostCreate){
  default:
    onResize();
  break;
  }
}

// Add event handlers
if(window.addEventListener){
  window.addEventListener("load",onBody,false);
  window.addEventListener("resize",onResize,false);
  var x=document.getElementsByTagName('DIV');
  for(var i=0;i<x.length;i++){
    if(x[i].className=="cmd"){
      x[i].onmouseover=myCmdOver;x[i].onmouseout=myCmdOut;
      x[i].addEventListener('mousedown',myCmdClick,false);
    }
    if(x[i].className=="city"){
      x[i].addEventListener('mousedown',myCityClick,false);
    }
  }
}
else if(window.attachEvent){
  window.attachEvent("onload",onBody);
  window.attachEvent("onresize",onResize);
  var x=document.getElementsByTagName('DIV');
  for(var i=0;i<x.length;i++){
    if(x[i].className=="cmd"){
      x[i].attachEvent("onclick",myCmdClick);
      x[i].onmouseover=myCmdOver;
      x[i].onmouseout=myCmdOut;
    }
    if(x[i].className=="city"){
      x[i].attachEvent("onclick",myCityClick);
    }
  }
}
else if(document.getElementById){
  window.onload=onBody;
  window.onresize=onResize;
  document.getElementsByTagName('bmap').onclick=onMapClick;
  var x=document.getElementsByTagName('DIV');
  for(var i=0;i<x.length;i++){
    if(x[i].className=="cmd"){
      x[i].onclick=myCmdClick;
      x[i].onmouseover=myCmdOver;
      x[i].onmouseout=myCmdOut;
    }
    if(x[i].className=="city"){
      x[i].onclick=myCityClick;
    }
  }
}