var XTsell = {
  Browser: {
    IE:     !!(window.attachEvent && !window.opera),
    Opera:  !!window.opera,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1
    }
  }
//
// FONT Tags mit class="_" im IE auszeichnen (andernfalls werden neue Klassen nicht angezeigt - IE6)
//
function XTmodFont() {
  if (XTsell.Browser.IE) {
    var allFont = document.getElementsByTagName("FONT");
    for (var i=0; i<allFont.length; i++) {
      allFont[i].className = "_";
      }
    }
  }
//
// MouseMove Handler
//
function XTmm (e) {
  var x = (e)?e.pageX:event.x+document.body.scrollLeft;
  var y = (e)?e.pageY:event.y+document.body.scrollTop;
  try {
    for (var i=0;i<XTmoved.length;i++) {
      XTmoved[i].style.left = x;
      XTmoved[i].style.top = y;
      }
    } catch(e) {};
  };

//
// XTmsg DIV füllen und anzeigen
//
function XTmsgShow(msg) {
  document.getElementById("XTmsg").innerHTML = msg;
  document.getElementById("XTmsg").style.display = "block";
  };
//
// XTmsg DIV ausblenden
//
function XTmsgKill() {
  document.getElementById("XTmsg").style.display = "none";
  };

//
// Cookie auslesen
//
function XTgetCookie(name) {
  var prefix = name + "=";
  var csi = document.cookie.indexOf(prefix);
  if (csi==-1) return null;
  var cei = document.cookie.indexOf(";",csi + prefix.length);
  if(cei==-1) cei = document.cookie.length;
  return unescape(document.cookie.substring((csi + prefix.length),cei));
  }
//
// Cookie setzen
//
function XTsetCookie(name,value,expires){
  document.cookie = name + "=" + escape(value) + ((expires)?";expires=" + expires.toGMTString():"" + ";path=/");
  }
//
// Element mit bestimmter ID in anderen Frames finden (Katalog, Kopf, Navigation)
//
function XTgetElementById(id) {
  var elem = null;
  elem = document.getElementById(id);
  if (elem) return elem;
  for (var i=0; i<parent.frames.length; i++) {
    elem = parent.frames[i].document.getElementById(id);
    if (elem) return elem;
    }
  return elem;
  }
//
// Elemente mit bestimmter Klasse zurückgeben (adaptiert aus prototype)
//
function XTgetElementsByClassName(className, parent) {
  var children = (parent || document.body).getElementsByTagName('*');
  var elements = [], child;
  for (var i = 0, length = children.length; i < length; i++) {
    child = children[i];
    if (child.className.length == 0) continue;
    if (child.className == className ||
        child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
      elements.push(child);
    }
  return elements;
  }
//
// Linkbereich bearbeiten
//
function XTsetLinkarea(show,srch) {
  var linkarea = null;
  try {linkarea = XTgetElementById("linkarea")} catch(e) {};
  if (linkarea) {
    var linklist = "";
    if (srch) {
      linklist = linkarea.innerHTML;
      if (linklist.indexOf(srch) > 0) return;
      } else {
      try {linklist = startlink} catch(e) {};
      }
    try {linklist += link2link + "<a href=\"" + location.href + "\">" + show + "</a>"} catch(e) {};
    linkarea.innerHTML = linklist;
    }
  }
//
// Kontobereich bearbeiten
//
function XTsetAcctarea() {
  var username = null;
  var angemeldet = null;
  try {username = XTgetElementById("username")} catch(e) {};
  try {angemeldet = XTgetElementById("angemeldet")} catch(e) {};
  if (username && angemeldet) {
    var kdnr = XTgetCookie("Kundennr");
    if (kdnr) {
      username.innerHTML = kdnr.replace(/.*User=(.*)/,"$1");
      angemeldet.style.display = "block";
      }
    else {
      angemeldet.style.display = "none";
      }
    }
  }

//
// Vorlagen einfügen
//
function XTgetVorlagen() {
  var vorlagen = XTgetElementsByClassName("vorlage");
  for (var i=0; i<vorlagen.length; i++) {
    var classNames = vorlagen[i].className.split(" ");
    if (classNames.length > 1) {
      var v = XTgetElementById(classNames[1]);
      if (v) {
        if (window.attachEvent && !window.opera)
          vorlagen[i].innerHTML += v.outerHTML;
        else
          vorlagen[i].appendChild(v.cloneNode(true));
        }
      }
    }
  }

//
// Katalog
//
function ABmodKatalog() {
  document.getElementsByTagName("TABLE")[0].removeAttribute("height");
  document.getElementsByTagName("FONT")[0].parentNode.id = "katalog_logo";
  var inp = document.forms[0].elements[0];
  inp.id = "katalog_eingabe";
  inp.value = "Suchbegriff(e)";
  inp.onfocus = function () {if(this.value=='Suchbegriff(e)')this.value = '';};
  inp.onblur = function () {if(this.value=='')this.value='Suchbegriff(e)';};
  }

//
// vergess.aspx
//
function ABmodVergess() {
  document.getElementsByTagName("TABLE")[0].id = "vergess_kopf";
  XTsetLinkarea("Zugangsdaten vergessen?","vergess.aspx");
  }

//
// myorders.aspx
//
function ABmodMyorders() {
  document.getElementsByTagName("TABLE")[0].id = "myorders_kopf";
  XTsetLinkarea("Meine Bestellungen","");
  }

//
// logout.aspx
//
function ABmodLogout() {
  document.getElementsByTagName("TABLE")[0].id = "logout_kopf";
  XTsetLinkarea("Abmelden","");
  }

//
// anmeldung.aspx
//
function ABmodAnmeldung() {
  document.getElementsByTagName("TABLE")[0].id = "anmeldung_kopf";
  XTsetLinkarea("Anmeldung","");
  }

//
// impressum.aspx
//
function ABmodImpressum() {
  document.getElementsByTagName("TABLE")[0].id = "impressum_kopf";
  XTsetLinkarea("Impressum","");
  }

//
// history.aspx
//
function ABmodHistory() {
  XTsetLinkarea("Verlauf","");
  var allTable = document.getElementsByTagName("TABLE");
  if (allTable.length == 1) {
    allTable[0].rows[1].id = "history_kopf";
    return;
    }
  var mainRows = allTable[1].rows;
  for (var i=0; i<mainRows.length; i++) {
    var h = mainRows[i].innerHTML;
    if (i == 0) {
      mainRows[i].getElementsByTagName("TABLE")[0].id = "history_kopf";
      mainRows[i].getElementsByTagName("TABLE")[1].className = "history_navigation";
      continue;
      }
    if (h.indexOf("jump=") > 0) {
      mainRows[i].className = "history_navigation";
      continue;
      }
    if (h.indexOf("ProduktID=") > 0) {
      mainRows[i].id = "history_produkte";
      var prodTable = mainRows[i].getElementsByTagName("TABLE")[0];
      var prodRows = prodTable.rows;
      for (var j=0; j<prodRows.length; j++) {
        if (j%2 == 1) {prodRows[j].className = "prod_sep"; continue;}
        if (j%4 == 0) {prodRows[j].className = "prod_odd"; continue;}
        prodRows[j].className = "prod_even";
        }
      continue;
      }
    }
  }

//
// storefront.aspx - Anzeige eines Katalogs
//
function ABmodStorefront() {
  // Verarbeitung der angezeigten Katalog-Hierarchie
  // Ergebnis vorbelegen
  var linkarea = null;

  try {linkarea = XTgetElementById("linkarea")} catch(e) {};
  if (linkarea) {
    var linklist = "";
    try {linklist = startlink} catch(e) {};
    var allA = document.getElementsByTagName("A");
    for (var i=0; i<allA.length; i++) {
      if (allA[i].parentNode.nodeName != "SMALL") break;
      var id = allA[i].href.replace(/.*katalogid=(\d+)/,"$1");
      try {if (i==0 && parent.shopframe.location.search.indexOf(id)==-1) parent.shopframe.location.href = "katalog.aspx?katalogid="+id} catch(e) {};
      try {linklist += link2link + "<a id=\"k" + id + "\" href=\"" + allA[i].href + "\">" + allA[i].innerHTML + "</a>"} catch(e) {};
      }
    linkarea.innerHTML = linklist;
    }
  var mainRows = document.getElementsByTagName("TABLE")[0].rows;
  mainRows[0].id = "storefront_hello";
  mainRows[2].id = "storefront_empty";
  document.getElementsByTagName("DIV")[0].id = "storefront_where";
  var katRows = document.getElementsByTagName("TABLE")[3].rows;
  for (var i=0; i<katRows.length; i++) {
    var h = katRows[i].innerHTML;
    if (i == 0 && katRows.length % 2 == 1) {
      katRows[0].id = "storefront_weitere";
      var navDiv = document.createElement("DIV");
      navDiv.id = "storefront_katlist";
      var navDivContent = "<ul>";
      continue;
      }
    if (h.indexOf("produktid=") > 0) {
      katRows[i].id = "storefront_produkte";
      var prodTable = katRows[i].getElementsByTagName("TABLE")[0];
      var prodRows = prodTable.rows;
      for (var j=0; j<prodRows.length; j++) {
        if (j%2 == 1) {prodRows[j].className = "prod_sep"; continue;}
        if (j%4 == 0) {prodRows[j].className = "prod_odd"; continue;}
        prodRows[j].className = "prod_even";
        }
      continue;
      }
    if (h.indexOf("jump=") > 0) {
      katRows[i].className = "storefront_navigation";
      continue;
      }
    if (h.indexOf("katalogid=") > 0) {
      katRows[i].className = "storefront_subkat";
      var allA = katRows[i].getElementsByTagName("A");
      var aLnk = allA[allA.length-1];
      var aSub = katRows[i].getElementsByTagName("SMALL")[0];
      aSub.innerHTML = aSub.innerHTML.replace(/([^\"]+)(.*)/,"$1");
      navDivContent += '<li><a href="' + aLnk.href + '"><span class="katitem">' + aLnk.innerHTML + '</span><span class="katdesc">' + aSub.innerHTML + '</span></a></li>';
      katRows[i+1].className = "storefront_trenner";
      i++;
      continue;
      }
    if (h.match(/Artikel\s+(\d+)\s+-\s+(\d+)\s+von\s+(\d+)/)) {
      katRows[i].className = "storefront_range";
      continue;
      }
    if (h.match(/\((\d+)\)/)) {
      katRows[i].id = "storefront_katname";
      }
    }
  var katID = (location.search.match(/katalogid=(\d+)/i))?RegExp.$1:0;
  document.body.className = "k" + katID;
  var v2Div = document.createElement("DIV");
  v2Div.className = "vorlage k" + katID + "sfx";
  document.body.insertBefore(v2Div,document.body.firstChild);
  if (navDiv) {
    navDiv.innerHTML = navDivContent + '</ul><div style="clear:both;"></div>';
    document.body.insertBefore(navDiv,document.body.firstChild);
    }
  var v1Div = document.createElement("DIV");
  v1Div.className = "vorlage k" + katID + "pfx";
  document.body.insertBefore(v1Div,document.body.firstChild);
  setTimeout("XTgetVorlagen()",100);
  if (document.getElementById("body")) {
    if (document.getElementById("body").className) {
      document.body.className = document.getElementById("body").className;
      }
    }
  }

//
// suche.aspx
//
function ABmodSuche() {
  XTsetLinkarea("Suche","");
  var allTable = document.getElementsByTagName("TABLE");
  if (allTable.length == 3) {
    allTable[0].rows[1].id = "suche_kopf";
    return;
    }
  var mainRows = allTable[1].rows;
  for (var i=0; i<mainRows.length; i++) {
    var h = mainRows[i].innerHTML;
    if (i == 0) {
      mainRows[i].getElementsByTagName("TABLE")[0].id = "suche_kopf";
      mainRows[i].getElementsByTagName("TABLE")[1].className = "suche_navigation";
      continue;
      }
    if (h.indexOf("(Katalog)") > 0) {
      mainRows[i].className = "suche_katalog_entry"; i++;
      mainRows[i].className = "suche_katalog_trenner"; i++;
      mainRows[i].className = "suche_katalog_dummy";
      continue;
      }
    if (h.indexOf("jump=") > 0) {
      mainRows[i].className = "suche_navigation";
      continue;
      }
    if (h.indexOf("ProduktID=") > 0) {
      mainRows[i].id = "suche_produkte";
      var prodTable = mainRows[i].getElementsByTagName("TABLE")[0];
      var prodRows = prodTable.rows;
      for (var j=0; j<prodRows.length; j++) {
        if (j%2 == 1) {prodRows[j].className = "prod_sep"; continue;}
        if (j%4 == 0) {prodRows[j].className = "prod_odd"; continue;}
        prodRows[j].className = "prod_even";
        }
      continue;
      }
    }
  }

//
// preisanfrage.aspx
//
function ABmodPreisanfrage() {
  document.getElementsByTagName("TABLE")[0].id = "preisanfrage_kopf";
  var big0 = document.getElementsByTagName("BIG")[0];
  var allFont = document.getElementsByTagName("FONT");
  if (big0.innerHTML == "Preisanfrage") {
    if (document.getElementById("kontaktformular")) {
      big0.innerHTML = "Kontaktformular";
      document.getElementById("kontaktformular").style.display = "none";
      XTsetLinkarea("Kontaktformular","");
      } else {
      XTsetLinkarea("Preisanfrage","Preisanfrage");
      }
    try {allFont[3].firstChild.data = preisanfrage_telefon} catch(e) {};
    try {allFont[11].innerHTML = preisanfrage_text} catch(e) {};
    }
  else {
    if (document.getElementById("kontaktformular")) {
      big0.innerHTML = "Vielen Dank!";
      allFont[1].style.display = "none";
      allFont[2].style.display = "none";
      allFont[3].style.display = "none";
      }
    }
  }
//
// produkt.aspx
//
function ABmodProdukt() {
  if (document.getElementById("description_only")) {
    var cnodes = document.body.childNodes;
    for (var i=0; i<cnodes.length; i++) if (cnodes[i].nodeType == 1) cnodes[i].style.display = "none";
    document.body.appendChild(document.getElementById("description_only").cloneNode(true));
    return;
    }
  if (parent.document.body.nodeName == "BODY") return; // stop for native and/or IFRAME
//  var allTable = document.getElementsByTagName("TABLE");
//  for (var i=0;i<allTable.length; i++) {
//    allTable[i].cellPadding = "0";
//    allTable[i].cellSpacing = "0";
//    }
  var allTD = document.getElementsByTagName("TD");
  for (var i=0;i<allTD.length; i++)
    if (allTD[i].vAlign == "bottom")
      allTD[i].id = "produkt_korb";
  var t0 = document.getElementsByTagName("TABLE")[0];
  t0.rows[1].id = "produkt_kopf";
  t0.rows[1].cells[0].id = "produkt_bild";
  t0.rows[1].cells[1].id = "produkt_name";
  t0.rows[2].id = "produkt_sep";
  var t1 = t0.rows[3].getElementsByTagName("TABLE")[1];
  for (var i=0;i<t1.rows.length; i++) {
    if (t1.rows[i].innerHTML.match(/>([\w-äöüßÄÖÜ]+):<\//)) t1.rows[i].id = "produkt_" + RegExp.$1.toLowerCase();
    }
  if(location.search) { // is not set for variations
    var big0 = document.getElementsByTagName("BIG")[0];
    var title = (big0.innerHTML)
                ?big0.getElementsByTagName("P")[0].innerHTML
                :document.getElementsByTagName("BIG")[1].innerHTML; // invalider Code wird von Firefox anders interpretiert
    XTsetLinkarea(title,location.search.replace(/.*produktid=(\d+).*/i,"$1"));
    }
  }
//
// Navigationsframe an den rechten Rand plazieren
//
//function ABmodStart() {
//  var FS0 = document.getElementsByTagName("FRAMESET")[0];
//  FS0.cols = "180,*,180";
//  var F3 = document.getElementsByTagName("FRAME")[3];
//  FS0.appendChild(F3);
//  var FS0 = document.getElementsByTagName("FRAMESET")[0];
//  var FS1 = document.getElementsByTagName("FRAMESET")[1];
//  var F0 = document.getElementsByTagName("FRAME")[0];
//  var F1 = document.getElementsByTagName("FRAME")[1];
//  var F2 = document.getElementsByTagName("FRAME")[2];
//  var F3 = document.getElementsByTagName("FRAME")[3];
//  FS0.rows= "91,*";
//  FS0.cols = "";
//  FS1.rows= "";
//  FS1.cols = "180,*,180";
//  FS0.insertBefore(F1,F0);
//  FS1.insertBefore(F0,F2);
//  }
//
// korb.aspx
//
function ABmodKorb() {
  document.getElementsByTagName("TABLE")[0].id = "korb_kopf";
  var allA = document.getElementsByTagName("A");
  allA[allA.length-6].id = "korb_quickorder";
  try {allA[allA.length-6].innerHTML = korb_quickorder_txt} catch(e) {};
  allA[allA.length-5].id = "korb_bestell1";
  try {allA[allA.length-5].innerHTML = korb_bestell1_txt} catch(e) {};
  allA[allA.length-4].id = "korb_bestell2";
  try {allA[allA.length-4].innerHTML = korb_bestell2_txt} catch(e) {};
  allA[allA.length-3].id = "korb_loeschen";
  try {allA[allA.length-3].innerHTML = korb_loeschen_txt} catch(e) {};
  allA[allA.length-2].id = "korb_weiter";
  try {allA[allA.length-2].innerHTML = korb_weiter_txt} catch(e) {};
  allA[allA.length-1].id = "korb_speichern";
  try {allA[allA.length-1].innerHTML = korb_speichern_txt} catch(e) {};
  XTsetLinkarea("Warenkorb","orb.asp");
  }
//
// korbleer.aspx
//
function ABmodKorbleer() {
  document.getElementsByTagName("TABLE")[0].id = "korbleer_kopf";
  var allA = document.getElementsByTagName("A");
  allA[allA.length-2].id = "korbleer_weiter";
  try {allA[allA.length-2].innerHTML = korbleer_weiter_txt} catch(e) {};
  allA[allA.length-1].id = "korbleer_speichern";
  try {allA[allA.length-1].innerHTML = korbleer_speichern_txt} catch(e) {};
  XTsetLinkarea("Warenkorb (leer)","");
  }
//
// korbsave.aspx
//
function ABmodKorbsave() {
  var allA = document.getElementsByTagName("A");
  if (location.search.indexOf("art=load") > 0) {
    location.href = allA[allA.length-2].href;
    }
  document.getElementsByTagName("TABLE")[0].id = "korbsave_kopf";
  XTsetLinkarea("Warenkorb speichern/laden","");
  }
//
// bestell.aspx
//
function ABmodBestell() {
  document.getElementsByTagName("TABLE")[0].id = "bestell_kopf";
  XTsetLinkarea("Bestellen","");
  //var allFont = document.getElementsByTagName("FONT");
  //for (var i=0; i<allFont.length; i++)
  //  if (allFont[i].innerHTML.indexOf("-") == 0)
  //    allFont[i-1].innerHTML = allFont[i-1].innerHTML.replace(/aufschlag/,"rabatt");
/*
  var a1 = document.getElementsByTagName("A")[1];
  try {a1.innerHTML = bestell_agb_txt} catch(e) {};
  var agb_frame = document.createElement("IFRAME");
  agb_frame.src = a1.href;
  agb_frame.width = "99%";
  agb_frame.height = "100";
  var agb_textarea = document.getElementsByTagName("TEXTAREA")[0];
  agb_textarea.parentNode.insertBefore(agb_frame,agb_textarea);
  agb_textarea.id = "bestell_agb";
*/
  }
//
function main() {
  if (location.pathname.search(/(\w+)\.asp/) != -1) {
    page = RegExp.$1.toLowerCase();
    XTmodFont();
    switch (page) {
      case "storefront":
        ABmodStorefront();
        break;
      case "suche":
        ABmodSuche();
        break;
      case "preisanfrage":
        ABmodPreisanfrage();
        break;
      case "produkt":
        ABmodProdukt();
        break;
      case "katalog":
        ABmodKatalog();
        break;
      case "start":
        try {mod_start();} catch(e) {};
        break;
      case "korb":
        ABmodKorb();
        break;
      case "korbleer":
        ABmodKorbleer();
        break;
      case "korbsave":
        ABmodKorbsave();
        break;
      case "bestell":
        ABmodBestell();
        break;
      case "impressum":
        ABmodImpressum();
        break;
      case "anmeldung":
        ABmodAnmeldung();
        XTsetAcctarea();
        break;
      case "vergess":
        ABmodVergess();
        break;
      case "logout":
        ABmodLogout();
        XTsetAcctarea();
        break;
      case "history":
        ABmodHistory();
        break;
      case "myorders":
        ABmodMyorders();
        break;
      default:
        break;
      }
    if (document.body) {
      document.body.style.visibility = "visible";
      document.body.id = page;
      // DIV Element für Mausbewegung erzeugen
      var XTmsg = document.createElement("DIV");
      // ans Ende anhängen
      document.body.appendChild(XTmsg);
      // id für Formatierung vergeben
      XTmsg.id = "XTmsg";
      // class für Erkennung vergeben
      XTmsg.className = "XTmove";
      }
    // get mouse moved elemens
    XTmoved = XTgetElementsByClassName("XTmove");
    // MouseMove Handler installieren
    document.onmousemove = XTmm;
    }
  }
var XTmoved =[];
//window.onload = main;
if(window.addEventListener)window.addEventListener('load',main,false);
  else if(window.attachEvent)window.attachEvent('onload',main);

