/* main.js.2004-06-20 - Copyright by Sigrist Consulting GmbH */

if(top.frames.length > 0) top.location.replace(self.location);

var sw = 0;  // allgemeiner Switch, z.B. für box()
var d = document

if((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) <= 4 )) {
  location.href = "/old_browser.html";
}

/* PopUp Box öffnen (was=1) oder schliessen (was=0) */
function box(id,was) { // <a onMouseOver="box('id1',1)" onMouseOut="box('id1',0)" ....
  var m,vis,hid;
  if(document.getElementById) {
    if(document.getElementById(id) == null) return;
    m = document.getElementById(id).style;
    vis = "visible";
    hid = "hidden";
  } else if(document.all) {
    m = document.all[id].style;
    vis = "visible";
    hid = "hidden";
  } else if(document.layers) {
    m = document.layers[id];
    vis = "show";
    hid = "hide";
  }
  if(was) m.visibility=vis; else m.visibility=hid;
}

// onClick="if(check_selected('f1','auswahl','Auswahl Typ')) submit();"
function check_selected(form,ele,elenam) {
  var errortxt = "Bitte eine Auswahl treffen:";
  if(typeof error_txt != "undefined")  errortxt = error_txt;
  if(document[form][ele].selectedIndex == 0) {
    if(typeof(elenam) == "undefined") elenam = ele;
    alert(errortxt + ": \n\n     " + elenam + "\n");
    document[form][ele].focus();
    return false;
  } else {
    return true;
  }
}

function clock() {
  var dm = new Date();
	var hh = dm.getHours(); mm = dm.getMinutes(); ss = dm.getSeconds();
  hh += "";
	if(hh.length == 1) hh = '0' + hh;
  mm += "";
	if(mm.length == 1) mm = '0' + mm;
  ss += "";
  if(ss.length == 1) ss = '0' + ss;
  tim = hh + ":" + mm + ":" + ss;
  if(document.getElementById) {
	  document.getElementById("rdxsClock").innerHTML = tim;
  } else {
    if(document.layers) {
      document["rdxsClock"].document.write(tim);
      document["rdxsClock"].document.close();
    }
  }
  setTimeout("clock()",1000);
}

/* ----- Dia Show ----- */
/* usage: diashow(bildname,anzahl,millisek);
Die Bilder müssen alle den gleichen Pfad haben und sind an der letzten Stelle
(vor der Erweiterung) nummeriert, beginnend mit '1'. Im folgenden Bsp. werden
die dia1.jpg bis dia4.jpg im Abstand von 2 Sekungen angezeigt:
<img name="bild1" src="/pfad/dia1.jpg" width="100" height="100" alt="Dia Show">
<script type="text/javascript">
  diashow('bild1',4,2000);
</script>
*/
var diashow_no; // global
function diashow(img,n,ela) {
  if(img == null) return;
  var pttrn = /(\S*)(\d+)\.(\w\w\w)$/;
  pttrn.exec(document.images[img].src);
  var pfad = RegExp.$1;
  diashow_no = RegExp.$2;
  var erw = RegExp.$3;
  eval("setInterval(\"diashow_it('"+img+"','"+pfad+"','"+erw+"','"+n +"')\","+ela+")");

}
function diashow_it(img,pfad,erw,n) {
  ++diashow_no;
  document.images[img].src=pfad + diashow_no + "." + erw;
  if(diashow_no >= n) diashow_no = 0;
}

function doc_date(sw) {
  var dm = new Date(document.lastModified);
  var dd = dm.getDate(); 
  var mm = dm.getMonth()+1; 
  var yy = dm.getYear();
  if(yy < 60) {
    yy += 2000;
  } else {
    if(yy < 1900) yy += 1900;
  }
  var mod = dd + "." + mm + "." + yy;
  if(sw == null) {
    document.write(mod);
  } else if(sw == 'ret') {
    return mod;
  } else {
    return dm.getTime();
  }
}

// <script type="text/javascript">e_mail0("webmaster","sigrist","ch")</script>
function e_mail0(n,d,l,sw) { // Link, E-Mail-Adr und Link-Text identisch
	if(d == null) d = "sigrist";
	if(l == null) l = "ch";
	var e = n + "\100" + d + "." + l;
  var str = "<a href=\"mailto:" + e + "\">" + e + "</a>";
  if(sw == null) {
	  document.write(str); 
  } else {
    return str;
  }
}

function e_mail1(n,d,l) { // kein Link, nur E-Mail-Adresse
	if(d == null) d = "sigrist";
	if(l == null) l = "ch";
	var e = n + "\100" + d + "." + l;
  document.write(e); 
}

function e_mail2(n,d,l,t) { // Link, separater Linkt-Text als 4. Parm
	if(d == null) d = "";
	if(l == null) l = "ch";
	var e = n + "\100" + d + "." + l;
	document.write("<a href=\"mailto:" + e + "\">" + t + "</a>"); 
}

/* ----- Ueberprüfung von Formularen -----
<script type="text/javascript">
  var error_txt = "Bitte dieses Feld nicht leer lassen";
  must_fields = new Array("fld1","fld2");
  must_field_names = new Array("Name","Adresse"); // optional 2001-11-14
  or_fields = new Array(); 
  or_fields = [["Id","Adresse"],["Id","Name"]]; // wenn 'Id' dann muss Adresse nicht, sonst schon
  or_field_names = [["Id","Adresse"],["Id","Name"]]; // optional wenn 'or_fields' nicht sprechend
</script>
<FORM onSubmit="return form_check(this)" .....>
*/
function form_check(form) {
  var nam = "";
  var tnam = "";
  var j = 0;
  var errortxt = "Bitte dieses Feld nicht leer lassen";
  if(typeof error_txt != "undefined")  errortxt = error_txt;
  // --- these fields must all be completed ---
  if(typeof must_fields != "undefined") { // 'normale' MUSS-Felder
    for(var i=0; i<must_fields.length;i++) {
      if(form[must_fields[i]].value == "") {
        nam = must_fields[i];
        tnam = (typeof(must_field_names) == "undefined") ? nam.replace(/_/g," ") : must_field_names[i];
        alert(errortxt + ": \n\n     " + tnam + "\n");
        form[must_fields[i]].focus();
        return false;
      }
    }
  }
  if(typeof or_fields != "undefined") { // 'entweder/oder' Felder
    for(var i=0; i<or_fields.length;i++) {
      if(form[or_fields[i][0]].value == "") {
        if(form[or_fields[i][1]].value == "") {
          nam = or_fields[i][1];
          tnam = (typeof(or_field_names) == "undefined") ? nam.replace(/_/g," ") : or_field_names[i][1];
          alert(errortxt + ": \n\n     " + tnam + "\n");
          form[or_fields[i][1]].focus();      
          return false;
        }
      }
    }    
  }
  return true;
}

function getmsg(m) { // aus msg.js entspr. dem Sprachcode eine msg zurückgeben
  var rdxslan = getCookie("rdxslan");
  if(rdxslan) if(msgtab[rdxslan] != null) return msgtab[rdxslan][m]; else return ""; else if(msgtab["de"][m] != null) return msgtab["de"][m]; else return "";
}

function getCookie(Name) {
  var search = Name + "="
  if (document.cookie.length > 0) { // if there are any cookies
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // if cookie exists
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset)
      // set index of end of cookie value
      if (end == -1)
        end = document.cookie.length
      return unescape(document.cookie.substring(offset, end))
    }
  }
}

function mySubmit() { // wegen HTMLAREA
  if(typeof config != "undefined" && document.f1.body != null) {
    document.f1.body.form.onsubmit();    
    document.f1.body.form.submit();     
  } else {
    document.f1.submit();
  }
}

function name_check(frm,fld) { // auf einen gültigen Dateinamen prüfen
  var validchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_-./";
  var field = document[frm][fld].value;
  var OK = true;
  for (i = 0;  i < field.length;  i++) {
    ch = field.charAt(i);
    for (j = 0;  j < validchars.length;  j++)
      if (ch == validchars.charAt(j))
        break;
    if (j == validchars.length) {
      OK = false;
      break;
    }
  }
  if (!OK) {
    var txta = getmsg("DateiNamen");
    var txtb = getmsg("KeineUmlaute");
    alert(txta + ":\n" + txtb + ".");
    document[frm][fld].focus();
    return (false);
  }
  return (true);
}

function new_win(url,w,wi,he) {
  if (wi == null) wi = 800;
  if (he == null) he = 500;
  var win = window.open(url,w,"location,menubar,toolbar,status,scrollbars,resizable,width="+wi+",height="+he+"");
  win.focus();
}

/* ----- Navigationsknöpfe: Dokumente nummerieren: dok1.html, dok2.htm, ... ----- */
function prev_up_next(max) {
  var out;
  var pttrn = /(\D+)(\d+)\.(\w+)$/;
  pttrn.exec(location.pathname);
  var nam = RegExp.$1;
  var n = RegExp.$2 * 1;
  var ext = RegExp.$3
  var prev = n - 1;
  var next = n + 1;
  var str = '"><img border="0" width="16" height="16" src="/shared/images/';
  var url = prev < 1 ? '<a href="index.html' + str + 'back.gif"></a>' : '<a href="' + nam + prev + '.' + ext + str + 'back.gif"></a>'
  out = url;
  out += '<a href="index.html' + str + 'up.gif"></a>';
  if(max == 'undefined') max = 10;
  url = next <= max ? '<a href="' + nam + next + '.' + ext + str + 'forward.gif"></a>' : '<img border="0" width="16" height="16" src="/shared/images/transp.gif">';
  out += url;
  return out;
}

function print_button(w) {
  if(w == null) var w = 640;
  document.write("<span class=noprint><button title='print' class=rdxsprint type='button' onClick='redaxis_print(" + w + ")'><img src='/media/shared/print.gif' width=16 height=16></button></span>");
}

/* progress_bar(0,"progressid",1000,100)
                No des Forms   intv,anz 
   intv: Intervall in Millisekungen (wenn 0: ausschalten) - anz: Anzahl Zeichen pro Zeile/Durchgang
   <script type="text/javascript">
   progress_bar(0,"progressid",1000,100)
   </script>
   <form id="progressid"><input style="border:0; background:black;" size=1></form> 
*/
var progress_bar_run,progress_bar_count,progress_bar_str; // global
function progress_bar(frm,id,intrv,l) {
  if(intrv) {
    progress_bar_str = unescape("%bb");
    if(l == null) l = 100;
    progress_bar_run = eval("window.setInterval(\"progress_show_bar(" + frm + "," + l + ")\",intrv)");
    progress_bar_count = 1;
  } else {
    window.clearInterval(progress_bar_run);
    if(document.getElementById(id) != null) {
      document.getElementById(id).style.visibility = 'hidden';
    }
  }
}
function progress_show_bar(frm,l) {
  var str = progress_bar_str;
  ++progress_bar_count;
  document.forms[frm].elements[0].size = progress_bar_count;
  if(progress_bar_count > l) progress_bar_count = 1;
}

// Passwort überprüfen
function pw_check(form,a,b,txt) {
  if(txt == null) var txt = "Sie haben sich vermutlich vertippt.\nBitte zweimal das gleiche Passwort eingeben.";
  if(document[form][a].value != "" && document[form][a].value == document[form][b].value) {
    return true;
  } else {
    alert(txt);
    document[form][a].value = '';
    document[form][b].value = '';
    document[form][a].focus();
    return false;
  }
}

function redaxis_print(w) {
  if(w == null) var w = 640;
  if(document.getElementById("main")) {
    var s = document.getElementById("main").width;
    document.getElementById("main").width = w;
    window.print();
    document.getElementById("main").width = s;
  } else {
  window.print();
  }
}

function select_all(frm) {
  for(var i=0;i<document[frm].length;++i) {
    if(document[frm].elements[i].type == "checkbox") document[frm].elements[i].checked = true;
  }
}

function setCookie(name, value, days) {
  var expire = new Date();
  expire.setTime(expire.getTime() + (60*60*24*days*1000));
  document.cookie = name + "=" + escape(value) + "; path=/"
  + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
}

function surfnedit() {
  if(getCookie('login')) {
    var txta = getmsg("archivieren");
    var txtl = getmsg("loeschen0");
    var txte = getmsg("EinAusBlenden");
    var txtb = getmsg("KeineBerechtigung");
    var login = getCookie('login');
    var dir1 = getCookie('dir1');
    var b1 = '<button style="padding-left:0; padding-right:0;" type="button" onClick=\'';
    var b2 = 'location.href="/cgi-bin/redaxis.pl?next=';
    var b3 = 'if(confirm("';
    var b4 = '") == false) return;'; 
    var r =  "&amp;relpath=" + location.pathname;
    var s = "<div id='surfandedit' style='left:760px;top:100px;position:absolute;z-index:250; width:170px; padding:5px;background:#347392;border:4px solid orange;'>";
    s += "<table cellpadding=7 width='100%' style='background:#347392;'><tbody style='background:#347392;'><tr><td align=center style='background:#347392;' colspan=2><b style='background:#347392;color:white;'>RedAXIS Toolbox</b></td></tr><tr><td style='background:#347392;' align=center colspan=2>";
    s += "<div align=center style='color:#006600; background:#ccffcc; border:1px solid #006600;'>" + login + "</div><p style='background:#347392;'>";
    if(dir1 != null) {
      dir1 = dir1.replace(/\//g,".");
    }
    if(dir1 == null || eval("location.pathname.match(/^" + dir1 + "/)") != null) {    
      s += b1 + b2 + "doku_file" + r + "\"'><img src='/shared/images/edit.gif' width=16 height=16 alt='edit'></button>";
      s += b1 +b3 + txta + b4 + b2 + "doku_archive&amp;what=copy" + r + "\"'><img src='/shared/images/arch.gif' width=16 height=16 alt='archive'></button>";
      s += b1 + b2 + "doku_rename" + r + "\"'><img src='/shared/images/rename.gif' width=16 height=16 alt='rename'></button>";
      s += b1 + b2 + "doku_add" + r + "\"'><img src='/shared/images/new.gif' width=16 height=16 alt='add'></button>";
      s += b1 +b3 + txtl + b4 + b2 + "doku_del" + r + "\"'><img src='/shared/images/delete.gif' width=16 height=16 alt='delete'></button>";
    } else {
      s += "<div style='background:#ffff00;color:#990000;'>" + txtb + "</div>";
    }
    s += "</td></tr><tr><td style='background:#347392;'>" + b1 + b2 + "logoff\"'>logoff</button></td>";
    s += "<td style='background:#347392;' align='right'>";
    s += b1 + b2 + "doku_list" + r + "\"'><img src='/shared/images/list.gif' width=16 height=16 alt='document list'></button>";
    s += b1 + b2 + r + "\"'><img src='/shared/images/redaxis.gif' width=16 height=16 alt='RedAXIS'></button>";
    s += "<button style='padding-left:0; padding-right:0;' type='button' onClick='location.href=\"/cgi-bin/redaxis_search.pl?lang=de&amp;idx=help_de&amp;idx_s=1&amp;query=_intro\"'><img src='/shared/images/qm.gif' width=16 height=16 alt='help'></button></td></tr>";
    s += "<tr><td style='background:#000000;' colspan=2 align=center><b><small style='background:#000000;color:white'>" + txte + "</small></b></td></tr>";
    s += "</tbody></table>";
    s += "</div>";
    s += "<div style='position:absolute;top:0;left:0;'><button style='border:0;background:transparent;' type='button' accesskey='x' onClick='box(\"surfandedit\",sw);sw=sw == 1 ? 0 : 1;'></button></div>";
    document.write(s);
    //floatInit('surfandedit',100,760,100,50);
  }
}

function wrapper(txt,clss) {
  return "<span class='" + clss + "'>" + txt + "</span>";
}
