// JavaScript Document

function Popup(id) {
  panel=document.getElementById(id);
  if (panel.style.display=='none') {
    panel.style.display='block';
  } else {
    panel.style.display='none';
  }
}

function getAbsolutePosition(element) {
  var coord={x:element.offsetLeft, y:element.offsetTop};
  if (element.offsetParent) {
    var tmp=getAbsolutePosition(element.offsetParent);
    coord.x+=tmp.x;
    coord.y+=tmp.y;
  }
  return coord;
}

// terminus technicus vocabulary ---------------------------------------------------------
function SelectTT(name, value) {
  var tt=document.getElementById(name);
  var tt_new_label=document.getElementById("LABEL_"+name+"_NEW");
  var tt_new=document.getElementById(name+"_NEW");
  var tt_caption=document.getElementById(name+"_CAPTION");
  var tt_used_word=document.getElementById(name+"_USED_WORD");

  AjaxStart();
  if (xmlHttp) {
    xmlHttp.onreadystatechange=function() {
      switch (xmlHttp.readyState) {
        case 4: // The request is complete
          tt_caption.value=xmlHttp.responseText;
          break;
      }
    }
  }

  tt_used_word.value="";
  if (tt.value==0) { // new terminus technicus
    tt_new.value="";
    tt_new_label.style.display="inline";
    tt_new.style.display="inline";
    tt_caption.value="";
  } else { // old terminus technicus
    tt_new_label.style.display="none";
    tt_new.style.display="none";
    xmlHttp.open(
      "POST",
      "ajax.php?GET_TT_CAPTION&tt="+encodeURI(tt.options[tt.selectedIndex].text),
      true
    );
    xmlHttp.setRequestHeader('Content-Type', 'charset=utf-8;');
    xmlHttp.send(null);
  }
}

function InsertTT(name, target) {
  var tt=document.getElementById(name);
  var tt_new_label=document.getElementById("LABEL_"+name+"_NEW");
  var tt_new=document.getElementById(name+"_NEW");
  var tt_caption=document.getElementById(name+"_CAPTION");
  var tt_used_word=document.getElementById(name+"_USED_WORD");
  var content=document.getElementById(target);
  
  AjaxStart();
  if (xmlHttp && (tt_caption.value!="")) {
    xmlHttp.onreadystatechange=function() {
      switch (xmlHttp.readyState) {
        case 4: // The request is complete
          tt.selectedIndex=tt.length-1;
          break;
      }
    }
    if ((tt.value==0) && (tt_new.value!="")) { // new terminus technicus
      var tt_text=tt_new.value;
      tt_new_label.style.display="none";
      tt_new.style.display="none";
      
      //add new terminus technicus to options
      var newOption=document.createElement('option');
      newOption.text=tt_new.value;
      try {
        tt.add(newOption, null); // standards compliant
      } catch (ex) {
        tt.add(newOption); // IE only
      }
    } else { // old terminus technicus
      var tt_text=tt.options[tt.selectedIndex].text;
    }
    content.value+="<tt "+tt_text+">"+tt_used_word.value+"</tt> ";
    xmlHttp.open(
      "GET",
      "ajax.php?INSERT_TT&tt="+tt_text+"&caption="+tt_caption.value,
      true
    );
    xmlHttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
    xmlHttp.send(null);
  }
}

function ShowTT(used_word, tt, loading) {
  tt_caption=document.getElementById("TT_CAPTION");

  AjaxStart();
  if (xmlHttp) {
    xmlHttp.onreadystatechange=function() {
      switch (xmlHttp.readyState) {
        case 1: // loading
          tt_caption.innerHTML=loading;
          var pos=getAbsolutePosition(used_word);
          if (pos.x>winW/2) {
            tt_caption.style.left=(pos.x+used_word.offsetWidth-
              tt_caption.offsetWidth)+"px";
          } else {
            tt_caption.style.left=pos.x+"px";
          }
          if (pos.y>winH/2) {
            tt_caption.style.top=(pos.y-tt_caption.offsetHeight)+"px";
          } else {
            tt_caption.style.top=(pos.y+used_word.offsetHeight)+"px";
          }
          tt_caption.style.display="block";
          break;
        case 4: // The request is complete
           if (xmlHttp.status==200) {
             tt_caption.innerHTML="<h1>"+tt+"</h1>"+xmlHttp.responseText;
             //eval(xmlHttp.responseText);
           } else {
             alert("Problem retrieving XML data");
           }
          break;
      }
    }
    xmlHttp.open(
      "GET",
      "ajax.php?GET_TT_CAPTION&tt="+encodeURI(tt),
      true
    );
    xmlHttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
    xmlHttp.send(null);
  }
}

function HideTT() {
  var tt_caption=document.getElementById("TT_CAPTION");
  tt_caption.style.display="none";
}


// pictures ------------------------------------------------------------------------------
function SetAlignment(name, radio) {
  var left=document.getElementById(name+"_ALIGN_LEFT");
  var middle=document.getElementById(name+"_ALIGN_MIDDLE");
  var right=document.getElementById(name+"_ALIGN_RIGHT");
  
  switch (radio.id) {
    case name+"_ALIGN_LEFT":
      left.checked=true;
      middle.checked=false;
      right.checked=false;
      break;
    case name+"_ALIGN_MIDDLE":
      left.checked=false;
      middle.checked=true;
      right.checked=false;
      break;
    case name+"_ALIGN_RIGHT":
      left.checked=false;
      middle.checked=false;
      right.checked=true;
      break;
  }
}

function InsertPic(name, target, id, kind) {
  var picture=document.getElementById(name+"_PICTURE");
  if (picture.value=="") return;
  
  document.forms.content_area.action="behind.php?UPLOAD_PIC&name="+name+"&"+kind+"="+id;
  document.forms.content_area.target="BEHIND_SCENES";
  document.forms.content_area.submit();
  document.forms.content_area.action="";
  document.forms.content_area.target="";

  var article=document.getElementById(target);
  var caption=document.getElementById(name+"_PICTURE_CAPTION");
  var left=document.getElementById(name+"_ALIGN_LEFT");
  var middle=document.getElementById(name+"_ALIGN_MIDDLE");
  var right=document.getElementById(name+"_ALIGN_RIGHT");
  
  var path=new String(picture.value);
  var image_name=path.substr(path.lastIndexOf("\\")+1);
  
  article.value+=
    "<pic "+
    (left.checked ? left.value : "")+
    (middle.checked ? middle.value : "")+
    (right.checked ? right.value : "")+
    " "+image_name+">"+
    caption.value+
    "</pic>";
}

function AddToGallery(name) {
  new_item=document.getElementById('NEW_ITEM');
  gallery=top.document.getElementById(name+"_GALLERY");
  gallery.appendChild(new_item);
}


