/*
  dvev.js
*/

Dvev={};

Dvev.init=function(){
  
  //Suchfunktion:
  $('suchtext').observe("keypress", checkSearchText);
  
  function checkSearchText(event){
    var el=event.element();
    switch(event.keyCode){
      case 0:
        el.setStyle("color:black");
        break;    
      case 13:

        var t=el.value;
        if (t.length > 3){
          el.setStyle("color:gray");
          Dvev.search(t, el.name);
        }

//        Dvev.update();
        break;
    }
  }
  
  // Evtl. Suchmarkierungen setzen:
  var st = $('suchtext').value;
  if (st) Dvev.markSearchResults(st);
   
};

/* Funktion zur Bearbeitung der Datenbank / Dateien der Seite ******************************************/
Dvev.update=function(){
  var url=location.protocol+"//"+
          location.hostname+"/dvev-erbrecht/update.php";
  location=url;
};

/* Suchfunktionen - Verzweigung auf die zwei Seitenbereiche ********************************************/
Dvev.search=function(t, site){
  var url = location.protocol+"//"+location.hostname;
  if (site == "wiwe"){
    url += "/dvev-erbrecht/search.php?st="+t;
  }
  else {
    url += "/dvev-profi/search.php?st="+t;
  }
  location=url;
};

/* Suchfunktionen für Wissenswertes zum Erbrecht *******************************************************/
// Allgemeiner Suchaufruf:
Dvev.searchWiwe=function(st){
  Dvev.searchLex(st);
  Dvev.searchKap(st);
  Dvev.searchFua(st);
  Dvev.searchTxt(st);
};

// Lexikonsuche:
Dvev.searchLex=function(st){
  var url="php/search_lex.php?st="+st;
  new Ajax.Request(url, {
    method:'get',
    onSuccess:function(data){
      $('lexikonsuche').innerHTML=data.responseText;
    }
  });
};

// Kapitelsuche:
Dvev.searchKap=function(st){
  var url="php/search_kap.php?st="+st;
  new Ajax.Request(url, {
    method:'get',
    onSuccess:function(data){
      $('kapitelsuche').innerHTML=data.responseText;
    }
  });
};

// Fragen + Antwortensuche:
Dvev.searchFua=function(st){
  var url="php/search_fua.php?st="+st;
  new Ajax.Request(url, {
    method:'get',
    onSuccess:function(data){
      $('fuasuche').innerHTML=data.responseText;
    }
  });
};

// Textsuche:
Dvev.searchTxt=function(st){
  var url="php/search_text.php?st="+st;
  new Ajax.Request(url, {
    method:'get',
    onSuccess:function(data){
      $('textsuche').innerHTML=data.responseText;
    }
  });
};

/* Suchfunktionen für Profi-Seite *********************************************************************/
// Allgemeiner Suchaufruf:
Dvev.searchProfi=function(st){
  var url="php/search_text.php?st="+st;
  new Ajax.Request(url, {
    method:'get',
    onSuccess:function(data){
      $('textsuche').innerHTML=data.responseText;
    }
  });
};


/* Hilfsfunktion: Überprüfung auf leeren Text ********************************************************/
Dvev.isEmpty=function(s){
  var s1=s;
  var s1=s1.replace(/\s/g,'');
  return (s1.length == 0);
};

/* Änderung des Textknotens **************************************************************************/
Dvev.changeTextNode=function(n, st, muster){
  var parent=n.parentNode;
  var text=n.data;
  var res=text.split(muster);
  if (res.length == 1) return;
  
  // IE liefert bei split nicht den übereinstimmenden Teilstring im Array zurück
  // also neues Array herstellen
  var res_str=res.join('');
  if (res_str.search(muster)==-1){
/*    var ie_res=new Array();
    var z=0;
    for (var j=0; j<res.length; ++j){
      ie_res[z++]=res[j];
      if (j<res.length-1) ie_res[z++]=st;
    }
    res=ie_res; */
    
    var htm=parent.innerHTML;
    var rst='<span class="st">'+st+'</span>';
    parent.innerHTML=htm.replace(muster, rst);
    return;
  }
  var df=document.createDocumentFragment();
  var l=res.length;
  for (var i=0; i<l; ++i){
    if (res[i].length > 0) {
      if (i % 2){
        var tn=document.createElement("span");
        tn.className="st";
        var sp=document.createTextNode(res[i]);
        tn.appendChild(sp);
      }
      else {
        var tn=document.createTextNode(res[i]);
      }
      df.appendChild(tn);
    }
  }
  parent.replaceChild(df,n);
};

/* Markierung der Suchbegriffe auf der Seite *********************************************************/
Dvev.mark = function(n, st, muster){
  if (n.nodeType == 3){
    if (Dvev.isEmpty(n.data)) return;
    Dvev.changeTextNode(n, st, muster);
  }
  else {
    var childs=n.childNodes;
    for (var i=0; i < childs.length; i++){
      Dvev.mark(childs[i], st, muster);
    }
  }
};

Dvev.markSearchResults=function(st){
  var muster=new RegExp("("+st+"){1}", "gi");
  var co=$('content');
  Dvev.mark(co,st,muster);
  var sts=document.getElementsByClassName('st');
  if (sts.length > 0) sts[0].scrollIntoView();
};

/* Formularüberprüfung *******************************************************************************/
Dvev.checkForm=function(els){
  var ok=true;
  var first=true; 
  for (var i=0; i<els.length; i++){
    var elname=els[i];
    var el=$(elname);
    if (el){
      if (el.value=="" || (elname=="AGB" && el.checked == false)){
        el.setStyle("background:#fed");
        if (elname == "AGB") alert("Sie müssen die Vertragsbedingungen akzeptieren!");
        if (first) {
          el.activate();
          first=false;
        }
        ok=false;
      }
      else {
        el.setStyle("background:white");
      }
    }
  }  
  return ok;
};

Dvev.calcBrosch=function(){
  var ev=$('brosch').value =='Infobroschüre "Erbrecht verständlich"'; 
  var anz=parseInt($('anzahl').value);
  var preis;
  if (ev){
    preis=anz * 5;
    if (anz > 499) preis=anz * 1.5; 
    else if (anz > 199) preis=anz * 1.8; 
    else if (anz > 49) preis=anz * 2.05; 
    else if (anz > 9) preis=anz * 2.3; 
  }
  else {
    preis=anz * 2.5;
    if (anz > 49) preis=anz * .6; 
    else if (anz > 24) preis=anz * .75; 
  }
  preis=Number(preis).toFixed(2);
  $('betrag').value=preis;
};

Dvev.plz_suche=function(plz)
{
  document.forms[0].plz.value = plz;
  document.forms[0].ort.value = "";
  document.forms[0].name.value = "";
  document.forms[0].order.value = "plz";
  document.forms[0].submit();
};
