
var PageSize;
var Ergebnis = '';
var newLocation = '';
var oldLocation = '';
var error;

hashListener.init();

hashListener.onHashChanged = function () { 
    loctemp = oldLocation;
    oldLocation = newLocation;
    newLocation = document.location.hash;
    newLocation = newLocation.substr(1, newLocation.length);
    
    Ergebnis = newLocation.search(/detail.+/);
    Schnaeppchen = newLocation.search(/Schnaeppchen.+/);
    oldDet = oldLocation.search(/detail.+/);
    
    
    if(oldLocation != newLocation)
    {
      if(oldDet != -1)
      {
        if(Ergebnis != -1){
          oldDet = -1;
          oldLocation = loctemp;
        }
      }
      
      if (Schnaeppchen != -1 || Ergebnis != -1) {
        $('Details').innerHTML = '<img src="gfx/ajaxload.gif" alt="" style="margin: 256px 359px 257px 359px;" />';
      }
      else
      {
        $('overlay').style.display = 'none';
        $('Details').style.display = 'none';
        $('Details').innerHTML = '';
        $('Filter').style.visibility = 'visible';
      }
      
      if(oldDet == -1){
        if (Schnaeppchen != -1) {
          if (Ergebnis != -1) {
            create_overlay(newLocation, 'Schnaeppchen');
          }
          else {
            if(newLocation != "") {
              if($('Filter') && $('Filter').style.visibility == 'hidden') {
              delete_overlay();}
              change('schnaeppchen.php?'+newLocation,'content');
            }
            else {
              if($('Filter') && $('Filter').style.visibility == 'hidden') {
              delete_overlay();}
              change('schnaeppchen.php?ajax=1','content');
            }
          }
        }
        else
        {
          if (Ergebnis != -1) {
            create_overlay(newLocation, 'Artikel');
          }
          else {
            if(newLocation != "") {
              if($('Filter') && $('Filter').style.visibility == 'hidden') {
              delete_overlay();}
              change('produkt.php?'+newLocation,'content');
            }
            else {
              if($('Filter') && $('Filter').style.visibility == 'hidden') {
              delete_overlay();}
              change('produkt.php?gruppe=101&ajax=1','content');
            }
          }
        }
      }
    }
}

window.onload = function() {
  anker = document.location.hash;
  anker = anker.substr(1, anker.length);
  usephppara = anker.search(/initial.+/);
  if(anker != ""){
    if(anker.substr(0, 6) != "ini=1&"){
      anker = anker+'&Initial=1';
      if(usephppara == -1){jumpTo(anker);}
    }
  }
}

function chkMenge(id){
	$(id).value = $(id).value.replace(/[^\.^,\d]/g, '');
}

function chkKasseFrm(){
  error = 0;
	if(document.kontaktformular.Firma.value == ""){error = 1; $("Firma").style.border = "2px solid red";} else {$("Firma").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Nachname.value == ""){error = 1; $("Nachname").style.border = "2px solid red";} else {$("Nachname").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Strasse.value == ""){error = 1; $("Strasse").style.border = "2px solid red";} else {$("Strasse").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.PLZ.value == ""){error = 1; $("PLZ").style.border = "2px solid red";} else {$("PLZ").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Ort.value == ""){error = 1; $("Ort").style.border = "2px solid red";} else {$("Ort").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Telefon.value == ""){error = 1; $("Telefon").style.border = "2px solid red";} else {$("Telefon").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Fax.value == ""){error = 1; $("Fax").style.border = "2px solid red";} else {$("Fax").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Mail.value == ""){error = 1; $("Mail").style.border = "2px solid red";} else {$("Mail").style.border = "2px solid darkgreen";}
	if(!document.kontaktformular.Lieferbedingungen.checked){error = 1; $("chkLieferbed").style.border = "2px solid red";} else {$("chkLieferbed").style.border = "none";}
  if(error == 1){$("KasseHinweis").style.fontWeight = 'bold'; $("KasseHinweis").style.fontSize = '16px'; $("KasseHinweis").style.color = 'red'; return false;}
}
function rechkKasseFrm(frmelementid){
  if(error == 1)
  {
    if(document.kontaktformular.Firma.value == ""){error = 1; $("Firma").style.border = "2px solid red";} else {$("Firma").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Nachname.value == ""){error = 1; $("Nachname").style.border = "2px solid red";} else {$("Nachname").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Strasse.value == ""){error = 1; $("Strasse").style.border = "2px solid red";} else {$("Strasse").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.PLZ.value == ""){error = 1; $("PLZ").style.border = "2px solid red";} else {$("PLZ").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Ort.value == ""){error = 1; $("Ort").style.border = "2px solid red";} else {$("Ort").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Telefon.value == ""){error = 1; $("Telefon").style.border = "2px solid red";} else {$("Telefon").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Fax.value == ""){error = 1; $("Fax").style.border = "2px solid red";} else {$("Fax").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Mail.value == ""){error = 1; $("Mail").style.border = "2px solid red";} else {$("Mail").style.border = "2px solid darkgreen";}
    if(!document.kontaktformular.Lieferbedingungen.checked){error = 1; $("chkLieferbed").style.border = "2px solid red";} else {$("chkLieferbed").style.border = "none";}
    if(error == 1){$("KasseHinweis").style.fontWeight = 'bold'; $("KasseHinweis").style.fontSize = '16px'; $("KasseHinweis").style.color = 'red'; return false;}
  }
}

function chkAngebotFrm(){
  error = 0;
	if(document.kontaktformular.Firma.value == ""){error = 1; $("Firma").style.border = "2px solid red";} else {$("Firma").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Vorname.value == ""){error = 1; $("Vorname").style.border = "2px solid red";} else {$("Vorname").style.border = "2px solid darkgreen";}	
	if(document.kontaktformular.Nachname.value == ""){error = 1; $("Nachname").style.border = "2px solid red";} else {$("Nachname").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Strasse.value == ""){error = 1; $("Strasse").style.border = "2px solid red";} else {$("Strasse").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.PLZ.value == ""){error = 1; $("PLZ").style.border = "2px solid red";} else {$("PLZ").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Ort.value == ""){error = 1; $("Ort").style.border = "2px solid red";} else {$("Ort").style.border = "2px solid darkgreen";}
	if(document.kontaktformular.Mail.value == ""){error = 1; $("Mail").style.border = "2px solid red";} else {$("Mail").style.border = "2px solid darkgreen";}
  if(error == 1){$("AngebotHinweis").style.fontWeight = 'bold'; $("AngebotHinweis").style.fontSize = '16px'; $("AngebotHinweis").style.color = 'red'; return false;}
}
function rechkAngebotFrm(frmelementid){
  if(error == 1)
  {
    if(document.kontaktformular.Firma.value == ""){error = 1; $("Firma").style.border = "2px solid red";} else {$("Firma").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Nachname.value == ""){error = 1; $("Nachname").style.border = "2px solid red";} else {$("Nachname").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Vorname.value == ""){error = 1; $("Vorname").style.border = "2px solid red";} else {$("Vorname").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Strasse.value == ""){error = 1; $("Strasse").style.border = "2px solid red";} else {$("Strasse").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.PLZ.value == ""){error = 1; $("PLZ").style.border = "2px solid red";} else {$("PLZ").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Ort.value == ""){error = 1; $("Ort").style.border = "2px solid red";} else {$("Ort").style.border = "2px solid darkgreen";}
    if(document.kontaktformular.Mail.value == ""){error = 1; $("Mail").style.border = "2px solid red";} else {$("Mail").style.border = "2px solid darkgreen";}
    if(error == 1){$("AngebotHinweis").style.fontWeight = 'bold'; $("AngebotHinweis").style.fontSize = '16px'; $("AngebotHinweis").style.color = 'red'; return false;}
  }
}

function jumpTo (anker) {
  hashListener.setHash(anker);
}

function change(script,element)
{
  new Effect.Fade(element, {duration: 0.5, from: 1, to: 0.1, afterFinish: function (obj) 
  {
    new Ajax.Updater(element,script, 
    {
    method: 'get',
    onComplete: function (obj){
    Effect.Appear(element,{duration: 0.5, from: 0, to: 1});
    }
    });
  }});
  ResetExplo();
}

function wkaktion(artnr, aktion, Parameter)
{
  change('includes/wkfunktionen.php?artnr='+artnr+'&aktion='+aktion+'&Parameter='+Parameter,'content');
}

function getPageSize() {
  var xScroll, yScroll;

  if (window.innerHeight && window.scrollMaxY) {
  xScroll = window.innerWidth + window.scrollMaxX;
  yScroll = window.innerHeight + window.scrollMaxY;
  } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
  xScroll = document.body.scrollWidth;
  yScroll = document.body.scrollHeight;
  } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
  xScroll = document.body.offsetWidth;
  yScroll = document.body.offsetHeight;
  }

  var windowWidth, windowHeight;

  if (self.innerHeight) { // all except Explorer
  if(document.documentElement.clientWidth){
  windowWidth = document.documentElement.clientWidth;
  } else {
  windowWidth = self.innerWidth;
  }
  windowHeight = self.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
  windowWidth = document.documentElement.clientWidth;
  windowHeight = document.documentElement.clientHeight;
  } else if (document.body) { // other Explorers
  windowWidth = document.body.clientWidth;
  windowHeight = document.body.clientHeight;
  }

  // for small pages with total height less then height of the viewport
  if(yScroll < windowHeight){
  pageHeight = windowHeight;
  } else {
  pageHeight = yScroll;
  }

  // for small pages with total width less then width of the viewport
  if(xScroll < windowWidth){
  pageWidth = xScroll;
  } else {
  pageWidth = windowWidth;
  }

  return [pageWidth,pageHeight];
}

function changeDetailImage(Bild, Bezeichnung) {
  if(Bezeichnung != ""){Bezeichnung = '<p style="width: 270px; text-align:center;font-weight:bold;">'+Bezeichnung+'</p>';}
  document.getElementById('DetailBilder').innerHTML = Bezeichnung+'<img style="margin: 5px; border: none;" src="bigthumbnail.php?file='+Bild+'&amp;newdimension=270" alt="" />';
}

function create_overlay(anker, ProduktArt){
  PageSize = getPageSize();
  $('overlay').style.height = PageSize[1]+'px';
  $('overlay').style.width = PageSize[0]+'px';
  $('Details').style.top = 30+'px';
  $('Details').style.left = PageSize[0]/2-375+'px';
  $('Filter').style.visibility = 'hidden';
  if($('overlay').style.display == 'none')
  {
    new Effect.Appear('overlay',{duration: 0.3, from: 0, to: 0.65});
    new Effect.Appear('Details',{duration: 0.3, from: 0, to: 1});
  }
  
  if (ProduktArt == 'Schnaeppchen')
  {
    AjaxFile = 'ajaxdetailschnaeppchen';
  }
  else if (ProduktArt == 'Artikel')
  {
    AjaxFile = 'ajaxdetail';
  }
  
  new Ajax.Updater('Details','includes/'+AjaxFile+'.php?'+anker, 
  {
  method: 'get'
  });
}
function delete_overlay(){
  $('Filter').style.visibility = 'visible';
  document.getElementById("Details").innerHTML = '';
  new Effect.Fade('overlay', {duration: 0.2, from: 0.65, to: 0});
  new Effect.Fade('Details', {duration: 0.2, from: 1, to: 0});
  if(oldLocation != ''){jumpTo(oldLocation);}else{jumpTo('initial=1&ajax=1');}
}
function askforET(Artnr, oArtNr, Explosionsgrafik) {
  new Ajax.Updater('ErsatzteilWindow','includes/ersatzteilanfrage.php?Position='+oArtNr+'&Explosion='+Explosionsgrafik+'&artnr='+Artnr, 
  {
    method: 'get',
    onComplete: function (obj){
      WKRefresh();
    }
  });
}

function openWKAdd(divid, arttd){
  new Ajax.Updater(divid,'includes/warenkorb.php?Aktion=Init&kat=Art&artnr='+arttd+'&divid='+divid, 
  {
    method: 'get'
  });
}
function openWKAddSchnaeppchen(divid, arttd){
  new Ajax.Updater(divid,'includes/warenkorb.php?Aktion=Init&kat=Schnaeppchen&artnr='+arttd+'&divid='+divid, 
  {
    method: 'get'
  });
}

function WKPlus(aInputFieldId) { 
  var inputField = window.document.getElementById(aInputFieldId); 
  if(parseInt(inputField.value) < 50) {
    inputField.value = parseInt(inputField.value) + 1; 
  }
  
  return false; 
}  
function WKMinus(aInputFieldId) { 
  var inputField = window.document.getElementById(aInputFieldId); 
  if(parseInt(inputField.value) > 1) {
    inputField.value = parseInt(inputField.value) - 1; 
  }

  return false; 
}  
function WKBestellen(aInputFieldId, ArtNr, Kat, divid) { 
  var inputField = window.document.getElementById(aInputFieldId);
  new Ajax.Updater(divid,'includes/warenkorb.php?Aktion=Order&kat='+Kat+'&artnr='+ArtNr+'&Menge='+parseInt(inputField.value), 
  {
    method: 'get',
    onComplete: function (obj){
      WKRefresh();
    }
  });
}  
function WKRefresh() { 
  new Ajax.Updater('Warenkorb','includes/warenkorb.php?Aktion=RefreshWK', 
  {
    method: 'get'
  });
}  
function ChangeDetailBild(Artikel, Bild, Bildnr) {
  new Ajax.Updater('DetailBilder','includes/artikelbilder.php?Artikel='+Artikel+'&Bild='+Bild+'&BildNr='+Bildnr, 
  {
    method: 'get'
  });
}
function OrderErsatzteil(Referenz, Menge, Explosion){
  new Ajax.Updater('ErsatzteilWindow','includes/warenkorb.php?Aktion=PreOrder&kat=Ersatzteil&artnr='+Referenz+'&Explosion='+Explosion+'&Menge='+Menge, 
  {
    method: 'get'
  });
  $('Staffelpreis').innerHTML = "";
  new Ajax.Request('includes/warenkorb.php?Aktion=PreOrder&kat=GetStaffelpreis&artnr='+Referenz+'&Explosion='+Explosion+'&Menge='+Menge, 
  {
    method: 'get',
    onComplete: function(require) 
    {         
      if(require.responseText == "1")
      {
        new Ajax.Updater('Staffelpreis','includes/warenkorb.php?Aktion=PreOrder&kat=ShowStaffelpreis&artnr='+Referenz+'&Explosion='+Explosion+'&Menge='+Menge, 
        {
          method: 'get'
        });
        $('Staffelpreis').style.display = "block";
      }
      else
      {
        $('Staffelpreis').style.display = "none";
      }
    }

  });
  if(Explosion != "no")
  {
    document.EBestellen.ArtNr.value = "";
    document.EBestellen.MengeErsatzteil.value = 1;
  }
  $('ErsatzteilWindow').style.display = 'block';
}
function RealOrderErsatzteil(Referenz, Menge, Explosion){
  new Ajax.Updater('ErsatzteilWindow','includes/warenkorb.php?Aktion=Order&kat=Ersatzteil&artnr='+Referenz+'&Explosion='+Explosion+'&Menge='+Menge, 
  {
    method: 'get',
    onComplete: function (obj){
      WKRefresh();
      if(Explosion != "no")
      {
        $('Bestellleiste').style.visibility = 'visible';
        closeWKDTSlowly();
      }
      else
      {
        window.location.href = "warenkorb.php";
      }
    }
  });
  if(Explosion != "no")
  {
    document.EBestellen.ArtNr.value = "";
    document.EBestellen.MengeErsatzteil.value = 1;
  }
}
function OrderErsatzteilDirekt(Referenz, Menge){
  if($('DirektErsatzNr'))
  {
    $('DirektErsatzNr').style.visibility = "hidden";
  }
  new Ajax.Updater('ErsatzteilWindow','includes/warenkorb.php?Aktion=PreOrder&kat=Ersatzteil&Explosion=no&artnr='+Referenz+'&Menge='+Menge, 
  {
    method: 'get'
  });
  new Ajax.Request('includes/warenkorb.php?Aktion=PreOrder&kat=GetStaffelpreis&Explosion=no&artnr='+Referenz+'&Menge='+Menge, 
  {
    method: 'get',
    onComplete: function(require) 
    {         
      if(require.responseText == "1")
      {
        new Ajax.Updater('Staffelpreis','includes/warenkorb.php?Aktion=PreOrder&Explosion=no&kat=ShowStaffelpreis&artnr='+Referenz+'&Menge='+Menge, 
        {
          method: 'get'
        });
        $('Staffelpreis').style.display = "block";
      }
      else
      {
        $('Staffelpreis').style.display = "none";
      }
    }

  });
  $('ErsatzteilWindow').style.display = 'block';
}
function RealOrderErsatzteilDirekt(ArtNr, Menge){
  new Ajax.Updater('ErsatzteilWindow','includes/warenkorb.php?Aktion=Order&kat=Ersatzteil&artnr='+Referenz+'&Explosion='+Explosion+'&Menge='+Menge, 
  {
    method: 'get',
    onComplete: function (obj){
      WKRefresh();
      $('Bestellleiste').style.visibility = 'visible';
      closeWKDTSlowly();
    }
  });
}
function closeWKDT () {
  new Effect.Fade('ErsatzteilWindow', {duration: 0.8, from: 1, to: 0, afterFinish: function (obj) 
  {
    $('ErsatzteilWindow').style.display = 'none';
    document.getElementById("ErsatzteilWindow").innerHTML = '';
  }});
  $('Staffelpreis').style.display = "none";
  if($('DirektErsatzNr'))
  {
    $('DirektErsatzNr').style.visibility = "visible";
  }
}
function closeWKDTSlowly () {
  new Effect.Fade('ErsatzteilWindow', {duration: 2.5, from: 1, to: 0, afterFinish: function (obj) 
  {
    $('ErsatzteilWindow').style.display = 'none';
    document.getElementById("ErsatzteilWindow").innerHTML = '';
  }});
  $('Staffelpreis').style.display = "none";
}


    var imgWidth=850, imgHeight=1150;	 // Bild-Maße
    var x=0, y=0;			 // relative Position des Ausschnitts zu Beginn
    var clipWidth=438, clipHeight=350; // Ausschnitts-Maße
    
    var oldposx = 0, oldposy = 0;
    var newposx = 0, newposy = 0;
    
    var pos = new Object(); 
    
    var klick = 0;
    
    function mouse_pos(evt) 
    { 
      if(!evt) evt = window.event; 
      
      pos.left = evt.clientX; 
      pos.top = evt.clientY; 
      var b = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?  
      window.document.documentElement : window.document.body || null; 
      if (b) 
      { 
        pos.scrollLeft= pos.left + b.scrollLeft; 
        pos.scrollTop = pos.top + b.scrollTop; 
      } 
      else if(document.layers) 
      { 
        // Netscape 4. 
        pos.scrollLeft = evt.pageX; 
        pos.scrollTop = evt.pageY; 
        pos.left = evt.pageX - window.pageXOffset; 
        pos.top = evt.pageY - window.pageYOffset; 
      } 
    } 

    function mdown() {
      klick = 1;
      
      oldposx = pos.left;
      oldposy = pos.top;
    }
    
    function mup() {
      klick = 0;
    }
    
    function move() {
      
      newposx = pos.left;
      newposy = pos.top;
      if(klick == 1)
      {
        //links
        if(newposx - oldposx < 0 && x > clipWidth - imgWidth)
        {
          x = x + (newposx - oldposx);
        }
        //rechts
        if(newposx - oldposx > 0 && x <= 0)
        {
          x = x + (newposx - oldposx);
        }
        //oben
        if(newposy - oldposy < 0 && y >= clipHeight - imgHeight)
        {
          y = y + (newposy - oldposy);
        }
        //unten
        if(newposy - oldposy > 0 && y <= 0)
        {
          y = y + (newposy - oldposy);
        }
        
        oldposx = pos.left;
        oldposy = pos.top;
            
        document.getElementById("explosion").style.backgroundPosition=x+"px "+y+"px";
      }
    }
    
    function ResetExplo() {
      oldposx = 0;
      oldposy = 0;
      newposx = 0;
      newposy = 0;
      x = 0;
      y = 0;
    }
    
    function openTreeView(WGR, AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, AWG7, AWG8, AWG9){
      AWG = new Array(AWG1, AWG2, AWG3, AWG4, AWG5, AWG6, AWG7, AWG8, AWG9);
      for(Warengruppen = 101; Warengruppen < 110; Warengruppen++)
      {
        if(Warengruppen == WGR)
        {
          Klasse = document.getElementById("WGR"+Warengruppen).className;
          if(Klasse.substr(0,1) != "o")
          {
            document.getElementById("WGR"+Warengruppen).className = "o"+Klasse;
          }
          else
          {
            document.getElementById("WGR"+Warengruppen).className = Klasse.substr(1,Klasse.length);
          }
        }
        else
        {
          Klasse = document.getElementById("WGR"+Warengruppen).className;
          if(Klasse.substr(0,1) == "o")
          {
            document.getElementById("WGR"+Warengruppen).className = Klasse.substr(1,Klasse.length);
          }
        }
        
        for(i = 1; i < AWG[Warengruppen-101]+1; i++)
        {
          if(Warengruppen == WGR)
          {
            if(document.getElementById("SN"+Warengruppen+"E"+i).style.display != "block")
            {
              document.getElementById("SN"+Warengruppen+"E"+i).style.display = "block";
            }
            else
            {
              document.getElementById("SN"+Warengruppen+"E"+i).style.display = "none";
            }
          }
          else
          {
            document.getElementById("SN"+Warengruppen+"E"+i).style.display = "none";
          }
        }
      }
    }
      
function warten(prmSec)
{
  prmSec *= 1000;
  var eDate = null;
  var eMsec = 0;
  var sDate = new Date();
  var sMsec = sDate.getTime();

  do {
      eDate = new Date();
      eMsec = eDate.getTime();

  } while ((eMsec-sMsec)<prmSec);
}
