// $Header: /home/cvsroot/CVSROOT/OVLSs/static/scripts/Attic/vifapol.js,v 1.1.2.1 2006/04/19 15:11:37 manske Exp $

imgCache = new Array();
recStyle = '';
riStyle = '';
done = 0;

function check_form(sw) {
  var f = document.f;
  if (f) {
    switch (sw) {
      case 'bugreport':
        if (!f.m.value.length) {
          alert('Bitte nennen Sie uns den beobachteten Fehler.');
          f.m.focus();
        }
        else if (f.i.checked && !f.e.value.length) {
          alert('Sie müssen eine Email-Adresse angeben, wenn Sie eine Rückmeldung erhalten wollen.');
          f.e.focus();
        }
        else
          return true;
        break;
      case 'contact':
        if (f.v.checked && !f.e.value.length) {
          alert('Sie müssen eine Email-Adresse angeben, wenn Sie die ViFaPol-News erhalten wollen.');
          f.e.focus();
        }
        else if (!f.v.checked && !f.m.value.length) {
          alert('Sie müssen noch eine Nachricht eingeben.');
          f.m.focus();
        }
        else if (!f.e.value.length && !f.p.value.length) {
          alert('Bitte geben Sie Ihre Email-Adresse oder Ihre Telefonnummer an.');
          f.e.focus();
        }
        else
          return true;
        break;
      case 'flyer':
        if (!f.n.value.length) {
          alert('Bitte geben Sie Ihren Namen ein.');
          f.n.focus();
        }
        else if (!f.i.value.length) {
          alert('Sie müssen für die Bestellung der Flyer uns Ihre Institution nennen.');
          f.i.focus();
        }
        else if (!f.c.value.length) {
          alert('Für die Zusendung der Flyer benötigen wir noch die Postleitzahl.');
          f.c.focus();
        }
        else if (!f.l.value.length) {
          alert('Bitte nennen Sie uns den Ort.');
          f.l.focus();
        }
        else if (!f.e.value.length && !f.p.value.length) {
          alert('Bitte geben Sie Ihre Email-Adresse oder Ihre Telefonnummer an.');
          f.e.focus();
        }
        else
          return true;
        break;
    }
  }
  return false;
}

function init() {
  var a = arguments.length;
  if (a) {
/*  var i, j, k = 0;
    for (i = 0; i < arguments.length; i++)
      for (j = 0; j < 2; j++) {
        imgCache[k] = new Image;
        imgCache[k++].src = '/img/' + arguments[i] + (j + 1) + '.gif';
      }
*/
    var i;
    for (i = 0; i < arguments.length; i++) {
      imgCache[i] = new Image;
      imgCache[i].src = '/img/' + arguments[i] + '2.gif';
    }
  }
  if (document.s) document.s.q.focus();
}

function swap(imgName) {
  var s = document.images[imgName].src;
  if (s.charAt(s.length - 5) == '1')
    document.images[imgName].src = s.substring(0, s.length - 5) + '2.gif';
  else
    document.images[imgName].src = s.substring(0, s.length - 5) + '1.gif';
}

function rec_info() {
  if (arguments.length) {
    var el = document.getElementById('rec' + arguments[0]);
    el.style.display = el.style.display == 'block' ? 'none' : 'block';
  }
  else {
    var i = 0, el, text;
    if (recStyle == 'block') {
      recStyle = 'none';
      text = 'Anzeige erweitern';
    }
    else {
      recStyle = 'block';
      text = 'Anzeige reduzieren';
    }
    while (el = document.getElementById('rec' + i++))
      el.style.display = recStyle;
    i = 0;
    while (el = document.getElementById('toggle' + i++))
      el.firstChild.nextSibling.nodeValue = text;
  }
}

function res_info() {
  if (arguments.length) {
    var el = document.getElementById('ri' + arguments[0]);
    el.style.display = el.style.display == 'block' ? 'none' : 'block';
  }
  else {
    riStyle = riStyle == 'block' ? 'none' : 'block';
    var i = 0, el;
    while (el = document.getElementById('ri' + i++))
      el.style.display = riStyle;
  }
}

function check_res(group, from, to) {
  var checked = document.getElementById('g' + group).checked;
  while (from <= to)
    document.getElementById('r' + from++).checked = checked;
}

function result(resname, nor, uri) {
  var el = document.getElementById('nor_' + resname);
//  alert (el.className);
  if (el) {
    var child = el.firstChild.nextSibling;
    if (nor > 0) {
      if (uri) {
//        el.removeChild(el.firstChild.nextSibling);
        var a = document.createElement('a');
        a.setAttribute('href', uri);
//        a.setAttribute('class', 'd_rlink');
        a.className = 'd_rlink';
        if (uri.charAt(0) != '/')
          a.setAttribute('target', '_blank');
        a.appendChild(el.firstChild);
//        var span = document.createElement('span');
//        span.setAttribute('class', 'c_hits');
//        span.className = 'c_hits';
//        span.appendChild(document.createTextNode(nor + ' Treffer'));
        child.firstChild.nodeValue = nor + ' Treffer';
//        a.appendChild(span);
        a.appendChild(child);
        el.appendChild(a);
      }
      else {
        child.firstChild.nodeValue = nor + ' Treffer';
        child.style.color = '#888888';  // todo: change to class usage
      }
    }
    else {
      child.firstChild.nodeValue = nor ? 'n/a' : 'kein Treffer';
      child.className = 'c_nohit';
    }
  }
  el = document.getElementById('done');
  if (el)
    el.firstChild.nodeValue = ++done;
}

function finish() {
  var el = document.getElementById('status');
  if (el) {
    el.removeChild(el.firstChild.nextSibling);
    el.removeChild(el.firstChild.nextSibling);
    el.firstChild.nodeValue = 'Suche abgeschlossen';
  }
}

function mailto(n, s1, s2) {
  var el = document.getElementById('m' + n);
  if (el) {
    var s = s1 + '%40' + s2;
    var a = document.createElement('a');
    a.setAttribute('href', unescape('%6d%61%69%6c%74%6f%3a' + s));
    a.setAttribute('class', 'xx_link');
    a.appendChild(document.createTextNode(unescape(s)));
    el.appendChild(a);
  }
}

function ins_code(v) {
  var el = document.getElementById('code');
  if (el) {
    var host = 'www.vifapol.de';
    var x = v == 1 || v == 3;
    var code = '<div\u00A0style="width:160px;height:77px;background:url(http://' + host + '/img/x/';
    if (v == 1 || v == 2)
      code += 'orange';
    else
      code += 'blue';
    code += '.gif);border:1px\u00A0solid\u00A0#51a7d4;font-family:Arial,sans-serif">\n';
    code += '\u00A0\u00A0<form\u00A0style="font-size:10px;margin:25px\u00A010px\u00A00"\u00A0action="http://' + host + '/suchen/aktuell"\u00A0method="get"\u00A0target="_blank">\n';
    code += '\u00A0\u00A0\u00A0\u00A0<input\u00A0type="hidden"\u00A0name="m"\u00A0value="and"';
    if (x) code += '\u00A0/';
    code += '>\n\u00A0\u00A0\u00A0\u00A0<input\u00A0type="text"\u00A0name="q"\u00A0size="15"\u00A0maxlength="50"\u00A0style="width:108px;border:1px\u00A0solid\u00A0#ff6600;margin-bottom:5px;padding:1px\u00A03px;color:#0e2732;font-size:14px"';
    if (x) code += '\u00A0/';
    code += '>\n\u00A0\u00A0\u00A0\u00A0<input\u00A0type="image"\u00A0src="http://' + host + '/img/x/go.gif"\u00A0alt="Suche\u00A0starten"';
    if (x) code += '\u00A0/';
    code += '>\n\u00A0\u00A0\u00A0\u00A0<a\u00A0style="color:#0e2732;text-decoration:none"\u00A0href="http://www.vifapol.de/vifaplus/"\u00A0target="_blank">Website\u00A0vorschlagen\u00A0&gt;&gt;&gt;</a>\n';
    code += '\u00A0</form>\n';
    code += '</div>';
    el.value = code;
    el.focus();
    el.select();
    // copy to clipboard, IE only?
    // var sel = document.selection.createRange();
    // sel.execCommand('Copy');
  }
}

function search_plugin() {
  if ((typeof window.sidebar == 'object') && (typeof window.sidebar.addSearchEngine == 'function')) {
    window.sidebar.addSearchEngine(
      'http://mycroft.mozdev.org/external.php/vifapol.src',
      'http://mycroft.mozdev.org/external.php/vifapol.gif',
      '',
      ''
    );
  }
  else
    alert('Die Installation des Plugins ist in Ihrem Browser leider nicht möglich.');
}

var x_offset = 15;
var y_offset = 20;
var a = 0;
var ie  = document.all;
var w3c = document.getElementById;
// var ie4 = ie && !w3c;
var opera = window.opera;
var tooltip;
var iframe;
var t = -1;
var conf = 0;

function show_tip(text) {
  if (!conf) {
    tooltip = w3c ? document.getElementById('tooltip') : 0;
//    iframe = ie && !opera ? document.getElementById('ie_hack') : 0;
/*  div = document.createElement('div');
  id = document.createAttribute('id');
  id.nodeValue = 'tooltip';
  div.setAttributeNode(id);
  document.getElementsByTagName('body')[0].appendChild(div);
*/
    conf = 1;
  }

  if (tooltip && text) {
//    tooltip.innerHTML = text;
    tooltip.innerHTML = tip[text];
    a = 1;
//    t = setTimeout('show()', 400);
    t = -1;
    show();
  }
}

function show() {
  tooltip.style.display = 'block';
  if (iframe)
    iframe.style.display = 'block';
}

function hide_tip() {
  if (a) {
    if (t != -1) {
      clearTimeout(t);
      t = -1;
    }
    a = 0;
    tooltip.style.display = 'none';
    if (iframe)
      iframe.style.display = 'none';
  }
}

function move_tip(e) {
  if (a) {
    var x, y, right, bottom;
    if (ie) {
      x = event.x + document.body.scrollLeft;
      y = event.y + document.body.scrollTop;
      right  = document.body.clientWidth  - event.clientX - x_offset;
      bottom = document.body.clientHeight - event.clientY - y_offset;
    }
    else {
      x = e.pageX;
      y = e.pageY;
      right  = window.innerWidth  - e.clientX - x_offset - 20;
      bottom = window.innerHeight - e.clientY - y_offset - 20;
    }
    var left = x_offset < 0 ? x_offset*(-1) : -1;

    if (right < tooltip.offsetWidth)
      tooltip.style.left = ie ? document.body.scrollLeft + event.clientX - tooltip.offsetWidth + 'px'
                              : window.pageXOffset + e.clientX - tooltip.offsetWidth + 'px';
    else if (x < left)
      tooltip.style.left = '5px';
    else
      tooltip.style.left = x + x_offset + 'px';

    if (bottom < tooltip.offsetHeight)
      tooltip.style.top = ie ? document.body.scrollTop + event.clientY - tooltip.offsetHeight - y_offset + 'px'
                        : window.pageYOffset + e.clientY - tooltip.offsetHeight - y_offset + 'px';
    else
      tooltip.style.top = y + y_offset + 'px';
    if (iframe) {
      iframe.style.width = tooltip.offsetWidth;
      iframe.style.height = tooltip.offsetHeight;
      iframe.style.top = tooltip.style.top;
      iframe.style.left = tooltip.style.left;
    }
  }
}

function borrow(param) {
  var el = document.getElementById('explain');
  if (el) {
    if (param) {
      var page_x, page_y, ww, wh;
      if (ie) {
        page_x = document.body.scrollLeft;
        page_y = document.body.scrollTop;
        ww =  document.body.clientWidth;
        wh =  document.body.clientHeight;
      }
      else {
        page_x = window.pageXOffset;
        page_y = window.pageYOffset;
        ww = window.innerWidth;
        wh = window.innerHeight;
      }
      var uri  = 'http://www.ubka.uni-karlsruhe.de/kvk.html?autosubmit=1&' + param + '&kataloge=SWB&kataloge=BVB&kataloge=NRW&kataloge=HEBIS&kataloge=KOBV&kataloge=GBV&kataloge=DDB';
      el.innerHTML = '<div class="r_exp_head"><div class="r_exp_htext">Verfügbarkeitsrecherche über den Karlsruher Virtuellen Katalog (KVK)</div><div class="align_r"><a href="javascript:borrow()" title="Schliessen"><img class="inline" src="/img/r/close.gif" width="13" height="13" alt="Schliessen" /></a></div></div><div class="r_exp_body"><p>Über eine Recherche im &bdquo;Karlsruher Virtuellen Katalog&ldquo; ist es möglich herauszubekommen, ob der gesuchte Titel auch in Ihrer lokalen Bibliothek oder einer Bibliothek in Ihrem näheren Umfeld vorhanden ist.</p><p>Der KVK ist ein Meta-Katalog für Bibliotheks- und Buchhandelskataloge. Die eingegebenen Suchanfragen werden an mehrere Bibliothekskataloge gleichzeitig weitergereicht und die jeweiligen Trefferlisten angezeigt.</p><p>Um nun herauszufinden, ob der Titel in Ihrer lokalen Bibliothek verfügbar ist, müssen Sie zunächst wissen, welchem Bibliotheksverbund Ihre Bibliothek angehört. Grob orientieren können Sie sich an der folgenden Liste:</p><ul class="r_exp"><li>Baden-Würtemberg (SWB)</li><li>Bayern (BSB)</li><li>Berlin (teilweise GBV / teilweise KOBV)</li><li>Brandenburg (KOBV, teilweise GBV)</li><li>Bremen (GBV)</li><li>Hamburg (GBV)</li><li>Hessen (HBIS)</li><li>Mecklenburg-Vorpommern (GBV)</li><li>Niedersachsen (GBV)</li><li>Nordrhein-Westfalen (HBZ)</li><li>Rheinland-Pfalz (teilweise HBZ, teilweise HBIS, teilweise SWB)</li><li>Saarland (SWB)</li><li>Sachsen (SWB)</li><li>Sachsen-Anhalt (GBV)</li><li>Schleswig-Holstein (GBV)</li><li>Thüringen (GBV)</li></ul><div class="align_r"><a class="r_exp_link" href="' + uri + '" target="_blank" onclick="borrow()">Suche starten</a></div></div>';
      el.style.display = 'block';
      var x = parseInt((ww - el.offsetWidth) / 2);
      var y = parseInt((wh - el.offsetHeight) / 2);
      if (x < 0) x = 0;
      if (y < 0) y = 0;
      el.style.left = (page_x + x) + 'px';
      el.style.top = (page_y + y) + 'px';
    }
    else
      el.style.display = 'none';
  }
}

function preview(i, uri) {
  var el = document.getElementById('pf' + i);
  if (el) {
    if (el.style.display == 'block') {
      el.style.display = 'none';
      document.getElementById('pb' + i).innerHTML = 'Vorschau';
    }
    else {
      el.style.display = 'block';
      if (!el.firstChild)
        el.innerHTML = '<iframe class="r_iframe" frameborder="0" height="300" width="100%" src="' + uri + '"></iframe>';
      document.getElementById('pb' + i).innerHTML = 'Vorschau schließen';
    }
  }
}

function popup(uri) {
  var x = 800
  var y = 500
  var win = window.open(uri, name, 'status=no,scrollbars=no,resizable=no,left=25,top=15,width='+x+',height='+y);
  win.focus();
}

document.onmousemove = move_tip;
