var txtCustomerNo = "Kundennummer";
var txtUserName = "Benutzername";
var txtPassword = "Passwort";
var txtSearch = "Suchbegriff";

var txtDateFormat = "TT.MM.JJJJ";

function init() {
  if (window.location.href.indexOf('sLanguage=English') != -1) {
    txtCustomerNo = "Customer number";
    txtUserName = "User name";
    txtPassword = "Password";
    txtSearch = "Search string";
    
    txtDateFormat = "DD-MM-YYYY";
  }

  // Subnavi (linkes Menue) 
  initSubnav();
  
  // Formulare
  initTextInputFields();
  
  // Produkt-Details
  if (document.getElementById("tabs") != null) {
    initTabs();
  }
  
  // Warenkorb Schritt 1, Favoriten, Bestelluebersicht-Detailseite
  if (document.getElementById("items") != null) {
    setItemSelectOnclick();
  }
  
  // Auftragsuebersicht
  if (document.getElementById('show_other_accounts') != null) {
    setShowOtherAccountsOnClick();
  }
  
  // Kategorie-Box-Scrollbars
  if (document.getElementById("product_category") != null) {
    initCatBoxScrollbars();
  }
  
  // Warenkorb Optionen
  if (document.getElementById('cartform') != null && document.getElementById('options') != null) {
    hideSubmitButton('options', 'set_option');
  }
  
  // Produktlistenpager
  if (document.getElementById('pager') != null) {
    hideSubmitButton('pager', 'submit');
  }
}

function usingIE() {
  return (navigator.appName == 'Microsoft Internet Explorer');
}

function usingLegacyIE() {
  if (usingIE()) {
    versionNoIndex = navigator.appVersion.indexOf('MSIE') + 5;
    return (navigator.appVersion.substr(versionNoIndex,1) <= 6);
  }
  
  return false;
}

function hideSubmitButton(wrapperId, className) {
  var inputElements = document.getElementById(wrapperId).getElementsByTagName('input');
  
  for (var i=0; i<inputElements.length; i++) {
    if (inputElements[i].className.indexOf(className) != -1) {
      inputElements[i].style.visibility = 'hidden';
      break;
    } 
  }
}


// Home

function frontboxOnMouseOver(obj) {
  var divs = obj.getElementsByTagName('div');
  var spans = obj.getElementsByTagName('span');

  obj.className = 'box box_hover';
  
  for (var i=0; i<spans.length; i++) {
    if (spans[i].className == 'list') {
      req_height = spans[i].offsetHeight;
      
      for (var j=0; j<divs.length; j++) {
        if (divs[j].className == 'layernav') {
          divs[j].style.height = (req_height + 15) + 'px';
          break;
        }
      }
      break;
    }
  }
}


// Ausklapp-Suche

var mouseOverExpSearch = false;

function showExpandableSearch(obj) {
  obj.className = 'search hover';
  mouseOverExpSearch = true;
}

function hideExpandableSearch(obj) {
  var c = document.getElementsByName('queryp')[0];
  
  if (c.form.className == 'expsearch_form' && c.value == txtSearch) {
    obj.className = 'search';
  }
  
  mouseOverExpSearch = false;
}

function expSearchTextInputOnFocus() {
  if (this.value == txtSearch) {
    this.value = '';
  }
}

function expSearchTextInputOnBlur() {
  var metanav2_spans = document.getElementById('metanav2').getElementsByTagName('span');

  if (!mouseOverExpSearch) {
    for (var i=0; i<metanav2_spans.length; i++) {
      if (metanav2_spans[i].className == 'search') {break;}
    
      if (metanav2_spans[i].className == 'search hover') {
        metanav2_spans[i].className = 'search';
        this.value = txtSearch;
        break;
      }
    }
  }
  
  if (this.value == "") {
    this.value = txtSearch;
  }
}


// Tabs

var tabBaseId = "tab";
var tabs = null;
var tabNum = 0;
          
function initTabs() {
  tabs = document.getElementById("tabs").getElementsByTagName("li");
  tabNum = tabs.length;
  
  resetTabs();
  for (var i=0; i<tabNum; i++) {
    tabs[i].firstChild.href = "javascript:switchToTab(" + i + ")";
  }
  
  showTab(0);
}
          
function resetTabs() {
  if (tabs == null) {return;}
            
  for (var i=0; i<tabNum; i++) {
    document.getElementById(tabBaseId + i).className = "tab_body";
    document.getElementById(tabBaseId + i).style.display = "none";

    tabs[i].className = "";
    if (tabs[i].firstChild.href == undefined) {
      tabs[i].innerHTML = "<a href=\"javascript:switchToTab(" + i + ")\">" + tabs[i].innerHTML + "</a>";
    }
  }
}
          
function showTab(no) {
  if (tabs == null) {return;}
  
  document.getElementById(tabBaseId + no).className = "tab_body active_tab_body";
  document.getElementById(tabBaseId + no).style.display = "block";
  
  tabs[no].className = "active";
}

function switchToTab(no) {
  resetTabs();
  showTab(no);
}


// Forms

function initTextInputFields() {
  var inputFields = document.getElementsByTagName('input');
  
  var loginFieldNo = document.getElementById('customer_no');
  var loginFieldName = document.getElementById('customer_name');
  var loginFieldPassword = document.getElementById('customer_password');
  
  for (var i=0; i<inputFields.length; i++) {
    if ((inputFields[i].type == 'text') || (inputFields[i].type == 'password')) {
      if ((inputFields[i] == loginFieldNo) || (inputFields[i] == loginFieldName) || (inputFields[i] == loginFieldPassword)) {
        
        if (((inputFields[i] == loginFieldNo) && (inputFields[i].value == txtCustomerNo)) ||
            ((inputFields[i] == loginFieldName) && (inputFields[i].value == txtUserName)) ||
            (inputFields[i] == loginFieldPassword)) {
          inputFields[i].style.color = '#999999';
        }
        
        inputFields[i].onfocus = loginTextInputOnFocus;
        inputFields[i].onblur = loginTextInputOnBlur;     
        
        if (!usingIE() && (inputFields[i] == loginFieldPassword)) {
          inputFields[i].type = 'text';
        } 
      }
      else if (inputFields[i].name == 'queryp' || inputFields[i].name == 'searchfor') {
        inputFields[i].style.color = '#999999';
        if (inputFields[i].value == '') {
          inputFields[i].value = txtSearch;
        }  
        if (inputFields[i].form.className == 'expsearch_form') {
          inputFields[i].onfocus = expSearchTextInputOnFocus;
          inputFields[i].onblur = expSearchTextInputOnBlur;
        }
        else {
          inputFields[i].onfocus = searchTextInputOnFocus;
          inputFields[i].onblur = searchTextInputOnBlur;   
        }
        inputFields[i].form.onsubmit = function() {
          for (var i=0; i<this.elements.length; i++) {
            if (this.elements[i].name != undefined && (this.elements[i].name == 'queryp' || this.elements[i].name == 'searchfor') && this.elements[i].value == txtSearch) {
              this.elements[i].value = '';
            }
          }
        };  
      }
      else if (inputFields[i].name.indexOf('_dlvdate_') != -1) {
        if (inputFields[i].value == '') {
          inputFields[i].value = txtDateFormat;
          inputFields[i].style.color = '#999999';
        }
        else if (inputFields[i].value != txtDateFormat && !isValidDate(inputFields[i].value)) {
          inputFields[i].style.color = '#ff0000';
        }
        
        inputFields[i].onfocus = dlvdateTextInputOnFocus;
        inputFields[i].onblur = dlvdateTextInputOnBlur;     
        inputFields[i].form.onsubmit = function() {
          for (var i=0; i<this.elements.length; i++) {
            if (this.elements[i].name != undefined && this.elements[i].name.indexOf('_dlvdate_') != -1 && this.elements[i].value == txtDateFormat) {
              this.elements[i].value = '';
            }
          }
        };
      }
      else if (inputFields[i].name.indexOf('_amount_') != -1) {
        if (inputFields[i].value == '') {
          inputFields[i].value = 1;
          inputFields[i].style.color = '#999999';
        }
        else if (inputFields[i].value <= 0) {
          inputFields[i].style.color = '#ff0000';
        }
        else {
          validNo = true;
          
          for (var j=0; j<inputFields[i].value.length; j++) {
            switch (inputFields[i].value.charAt(j)) {
              case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': 
                break;
              default:
                validNo = false;
            }
            
            if (!validNo) {break;}
          }
          
          if (!validNo) {
            inputFields[i].style.color = '#ff0000';
          }
        }
        
        inputFields[i].onfocus = amountTextInputOnFocus;
        inputFields[i].onblur = amountTextInputOnBlur;     
      }
      else {
        inputFields[i].onfocus = textInputOnFocus;
        inputFields[i].onblur = textInputOnBlur;
      }
      
      inputFields[i].style.backgroundImage = 'url(/img/input_bg.gif)';
    }
  }
}

function textInputOnFocus() {
  this.style.backgroundImage = 'url(/img/input_bg_inv.gif)';
}

function textInputOnBlur() {
  this.style.backgroundImage = 'url(/img/input_bg.gif)';
}

function loginTextInputOnFocus() {
  if ( ((this == document.getElementById('customer_no')) && (this.value == txtCustomerNo)) ||
       ((this == document.getElementById('customer_name')) && (this.value == txtUserName)) ) {
    this.value = '';
  }
  else if ((this == document.getElementById('customer_password')) && (this.value == txtPassword)) {
    if (!usingIE()) {this.type = 'password';}
    this.value = '';  
  }
  
  this.style.color = '#666666';
  this.style.backgroundImage = 'url(/img/input_bg_inv.gif)';
}

function loginTextInputOnBlur() {
  if ((this == document.getElementById('customer_no')) && (this.value == "")) {
    this.value = txtCustomerNo;
    this.style.color = '#999999';
  }
  else if ((this == document.getElementById('customer_name')) && (this.value == "")) {
    this.value = txtUserName;  
    this.style.color = '#999999';
  }
  else if ((this == document.getElementById('customer_password')) && (this.value == "")) {
    if (!usingIE()) {this.type = 'text';}
    this.value = txtPassword;  
    this.style.color = '#999999';
  }
  
  this.style.backgroundImage = 'url(/img/input_bg.gif)';
}

function amountTextInputOnFocus() {
  this.style.color = '#333333';
  this.style.backgroundImage = 'url(/img/input_bg_inv.gif)';
}

function amountTextInputOnBlur() {
  if (this.value == "") {
    this.value = 1;
  }
  else if (this.value <= 0) {
    this.style.color = '#ff0000';
  }
  else {
    validNo = true;
        
    for (var i=0; i<this.value.length; i++) {
      switch (this.value.charAt(i)) {
        case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': 
          break;
        default:
          validNo = false;
      }
            
      if (!validNo) {break;}
    }
          
    if (!validNo) {
      this.style.color = '#ff0000';
    }
  }
  
  this.style.backgroundImage = 'url(/img/input_bg.gif)';
}

function dlvdateTextInputOnFocus() {
  if (this.value == txtDateFormat) {
    this.value = '';
  }
  
  this.style.color = '#333333';
  this.style.backgroundImage = 'url(/img/input_bg_inv.gif)';
}

function dlvdateTextInputOnBlur() {
  if (this.value == "") {
    this.value = txtDateFormat;
    this.style.color = '#999999';
  }
  else if (this.value != txtDateFormat && !isValidDate(this.value)) {
    this.style.color = '#ff0000';
  }
  
  this.style.backgroundImage = 'url(/img/input_bg.gif)';
}

function isValidDate(dateString) {
  if (dateString.length != 10) {
    return false;
  }
  
  for (var i=0; i<dateString.length; i++) {
    c = dateString.charAt(i);
    
    if (i == 2 || i == 5) {
      if (c != '.' && c != '-') {
        return false;
      }
    }
    else {
      if (isNaN(parseInt(c))) {
        return false;
      }
    }
  }
  
  var today = new Date();
  var todayDay = today.getDate();
  var todayMonth = today.getMonth() + 1;
  var todayYear = today.getFullYear();
  
  var day_str = dateString.substr(0,2);
  var month_str = dateString.substr(3,2);
  var year_str = dateString.substr(6,4);
  
  var day = (day_str.charAt(0) == '0') ? parseInt(day_str.charAt(1)) : parseInt(day_str);
  var month = (month_str.charAt(0) == '0') ? parseInt(month_str.charAt(1)) : parseInt(month_str);
  var year = parseInt(year_str);
  
  var mdays = 31;
  
  switch (month) {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
      mdays = 31;
      break;
    case 4: case 6: case 9: case 11:
      mdays = 30;
      break;
    case 2:
      if ((y % 4) == 0) {mdays = 29;}
      else {mdays = 28;}
      break;
  }
  
  if (year >= todayYear && year < todayYear + 10) {
    if (year == todayYear && month >= todayMonth) {
      if (month == todayMonth && day < (todayDay + 1)) {
        return false;
      }
      
      if (day <= 0 || day > mdays) {
        return false;
      } 
    }
    
    if (month > 0 && month <= 12) {
      if (day <= 0 || day > mdays) {
        return false;
      }
    }
    else {
      return false;
    }
  }
  else {
    return false;
  }
  
  return true;
}

function searchTextInputOnFocus() {
  if (this.value == txtSearch) {
    this.value = '';
  }
  
  this.style.color = '#666666';
  this.style.backgroundImage = 'url(/img/input_bg_inv.gif)';
}

function searchTextInputOnBlur() {
  if (this.value == "") {
    this.value = txtSearch;
    this.style.color = '#999999';
  }
  
  this.style.backgroundImage = 'url(/img/input_bg.gif)';
}

function subnavL1OnMouseOver() {
  var images = this.getElementsByTagName('img');
  
  for (var i=0; i<images.length; i++) {
    if (images[i].className == 'gfxtext_subnav_active' || images[i].className == 'gfxtext_subnav_break_active') {
      break;
    }  

    if (images[i].className == 'gfxtext_subnav' || images[i].className == 'gfxtext_subnav_break') {
      images[i].width = '0';
      images[i].height = '0';
      images[i].style.position = 'absolute';
      images[i].style.left = '-9999px';
    }
    else {
      images[i].width = '162';
      if (images[i].src.indexOf('break') == -1) {images[i].height = '22';}
      else {images[i].height = '16';}
      images[i].style.position = 'static';
      images[i].style.left = '0';
    }
  }
}

function subnavL1OnMouseOut() {
  var images = this.getElementsByTagName('img');
  
  for (var i=0; i<images.length; i++) {
    if (images[i].className == 'gfxtext_subnav_active' || images[i].className == 'gfxtext_subnav_break_active') {
      break;
    }
  
    if (images[i].className == 'gfxtext_subnav' || images[i].className == 'gfxtext_subnav_break') {
      images[i].width = '162';
      if (images[i].className == 'gfxtext_subnav') {images[i].height = '22';}
      else {images[i].height = '16';}
      images[i].style.position = 'static';
      images[i].style.left = '0';
    }
    else {
      images[i].width = '0';
      images[i].height = '0';
      images[i].style.position = 'absolute';
      images[i].style.left = '-9999px';
    }
  }
}

function initSubnav() {
  var subnav = document.getElementById("subnav");
  if (subnav == null) {return false;}
  
  var liElements = subnav.getElementsByTagName("li");
  
  for (var i=0; i<liElements.length; i++) {
    if (liElements[i].className.substr(0,6) == 'level1') {
      var aTag = liElements[i].getElementsByTagName("span")[0].getElementsByTagName("a")[0];
      aTag.onmouseover = subnavL1OnMouseOver;
      aTag.onmouseout = subnavL1OnMouseOut;
    }
  }
  
  return true;
}


// Auftragsuebersicht

function setShowOtherAccountsOnClick() {
  hideSubmitButton('show_other_accounts', 'submit');
  
  document.getElementsByName('filter_alluser')[0].onclick = function() {
    var forms = document.forms;
    
    for (var i=0; i<forms.length; i++) {
      if (forms[i].action.indexOf('action=orders_action') != -1) {
        forms[i].submit();
        break;
      }
    }
  }
}


// Warenkorb

function selectAllItems() {
  var inputNodes = document.getElementById("items").getElementsByTagName("input");
  
  for (var i=0; i<inputNodes.length; i++) {  
    if (inputNodes[i].getAttribute("type") == "checkbox") {
      inputNodes[i].checked = true;
    }
  }
}

function deselectAllItems() {
  var inputNodes = document.getElementById("items").getElementsByTagName("input");
  
  for (var i=0; i<inputNodes.length; i++) {  
    if (inputNodes[i].getAttribute("type") == "checkbox") {
      inputNodes[i].checked = false;
    }
  }
}

function uncheckSelectAll() {
  var selectAllCheckbox = document.getElementById("options").getElementsByTagName("input")[0];
   
  selectAllCheckbox.checked = false;
}

function setItemSelectOnclick() {
  var inputNodes = document.getElementById("items").getElementsByTagName("input");
  
  for (var i=0; i<inputNodes.length; i++) {  
    if (inputNodes[i].getAttribute("type") == "checkbox") {
      inputNodes[i].onclick = uncheckSelectAll;
    }
  }
}

function selectAllOnclick() {
  var selectAllCheckbox = document.getElementById("options").getElementsByTagName("input")[0];
   
  if (selectAllCheckbox.checked) {
    selectAllItems();
  }
  else {
    deselectAllItems();
  }
}


// Drucken- und Hilfeseiten

function showHelp(obj,language) {
  var helpPage = '/help.php?sLanguage=German';
  var screenHeight = (screen.availHeight < 834) ? screen.availHeight : 834;
  
  obj.href = '#';
  obj.target = '';
  
  if ((language == 'en') || (language == 'English')) {
    screenHeight = (screen.availHeight < 570) ? screen.availHeight : 570;
    helpPage = '/help.php?sLanguage=English';
  }

  window.open(helpPage, 'help', 'directories=no,location=no,resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no,width=620,height='+screenHeight);
}

function showPrintView(formNo) {
  var windowName = 'printview';
  var popup = null;
  
  document.forms[formNo].target = windowName;
  if (!usingLegacyIE()) {
    popup = window.open('', windowName, 'directories=no,location=no,resizable=no,scrollbars=yes,toolbar=no,status=no,menubar=yes,width=620,height=500'); 
  }
  document.getElementById('print_button').click();
  
  document.forms[formNo].target = '';
  
  //popup.print();
}


// JS-Scrollbars in den Kategorie-Boxen

// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// 
// Coded by Travis Beckham
// http://www.squidfingers.com | http://www.podlob.com
// If want to use this code, feel free to do so, but please leave this message intact.
//
// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// --- version date: 01/24/03 ---------------------------------------------------------

// ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
// Cross-Browser Functions

var dom = document.getElementById;
var iex = document.all;
var ns4 = document.layers;

function addEvent(event,method){
	this[event] = method;
	if(ns4) this.captureEvents(Event[event.substr(2,event.length).toUpperCase()]);
}
function removeEvent(event){
	this[event] = null;
	if(ns4) this.releaseEvents(Event[event.substr(2,event.length).toUpperCase()]);
}
function getElement(name,nest){
	nest = nest ? "document."+nest+"." : "";
	var el = dom ? document.getElementById(name) : iex ? document.all[name] : ns4 ? eval(nest+"document."+name) : false;
	el.css = ns4 ? el : el.style;
	el.getTop = function(){return parseInt(el.css.top) || 0};
	el.setTop = function(y){el.css.top = ns4 ? y: y+"px"};
	el.getHeight = function(){return ns4 ? el.document.height : el.offsetHeight};
	el.getClipHeight = function(){return ns4 ? el.clip.height : el.offsetHeight};
	el.hideVis = function(){el.css.visibility="hidden"};
	el.addEvent = addEvent;
	el.removeEvent = removeEvent;
	return el;
}
function getYMouse(e){
  // Abstand des Scrollbar-Containers vom oberen Rand vom absoluten y-Wert abziehen
	return iex ? (event.clientY-135) : (e.pageY-135); 
}

document.addEvent = addEvent;
document.removeEvent = removeEvent;

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Scroller Class

ScrollObj = function(speed, dragHeight, trackHeight, trackObj, upObj, downObj, dragObj, contentMaskObj, contentObj){
	this.speed = speed;
	this.dragHeight = dragHeight;
	this.trackHeight = trackHeight;
	this.trackObj = getElement(trackObj);
	this.upObj = getElement(upObj);
	this.downObj = getElement(downObj);
	this.dragObj = getElement(dragObj);
	this.contentMaskObj = getElement(contentMaskObj);
	this.contentObj = getElement(contentObj,contentMaskObj);
	this.obj = contentObj+"Object";
	eval(this.obj+"=this");
	
	this.trackTop = this.dragObj.getTop();
	this.trackLength = this.trackHeight-this.dragHeight;
	this.trackBottom = this.trackTop+this.trackLength;
	this.contentMaskHeight = this.contentMaskObj.getClipHeight();
	this.contentHeight = this.contentObj.getHeight();
	this.contentLength = this.contentHeight-this.contentMaskHeight;
	this.scrollLength = this.trackLength/this.contentLength;
	this.scrollTimer = null;
	
	// added by M. Graf
	this.scrollNeeded = true;
	
	if(this.contentHeight <= this.contentMaskHeight){
		this.dragObj.hideVis();
		
		// added by M. Graf
		this.scrollNeeded = false;
	}else{
		var self = this;
		this.trackObj.addEvent("onmousedown", function(e){self.scrollJump(e);return false});
		this.upObj.addEvent("onmousedown", function(){this.src="/img/bsb_up.gif";self.scroll(self.speed);return false});
		this.upObj.addEvent("onmouseup", function(){this.src="/img/bsb_up.gif";self.stopScroll()});
		this.upObj.addEvent("onmouseout", function(){this.src="/img/bsb_up.gif";self.stopScroll()});
		this.downObj.addEvent("onmousedown", function(){this.src="/img/bsb_down.gif";self.scroll(-self.speed);return false});
		this.downObj.addEvent("onmouseup", function(){this.src="/img/bsb_down.gif";self.stopScroll()});
		this.downObj.addEvent("onmouseout", function(){this.src="/img/bsb_down.gif";self.stopScroll()});
		this.dragObj.addEvent("onmousedown", function(e){this.src="/img/bsb_drag.gif";self.startDrag(e);return false});
		this.dragObj.addEvent("onmouseup", function(){this.src="/img/bsb_drag.gif"});
		this.dragObj.addEvent("onmouseout", function(){this.src="/img/bsb_drag.gif"});
		if(iex) this.dragObj.addEvent("ondragstart", function(){return false});
	}
}
ScrollObj.prototype.startDrag = function(e){
	this.dragStartMouse = getYMouse(e);
	this.dragStartOffset = this.dragObj.getTop();
	var self = this;
	document.addEvent("onmousemove", function(e){self.drag(e)});
	document.addEvent("onmouseup", function(){self.stopDrag()});
}
ScrollObj.prototype.stopDrag = function(){
	document.removeEvent("onmousemove");
	document.removeEvent("onmouseup");
}
ScrollObj.prototype.drag = function(e){
	var currentMouse = getYMouse(e);
	var mouseDifference = currentMouse-this.dragStartMouse;
	var dragDistance = this.dragStartOffset+mouseDifference;
	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;
	this.dragObj.setTop(dragMovement);
	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);
	this.contentObj.setTop(contentMovement);
}
ScrollObj.prototype.scroll = function(speed){
	var contentMovement = this.contentObj.getTop()+speed;
	var dragMovement = this.trackTop-Math.round(this.contentObj.getTop()*(this.trackLength/this.contentLength));
	if(contentMovement > 0){
		contentMovement = 0;
	}else if(contentMovement < -this.contentLength){
		contentMovement = -this.contentLength;
	}
	if(dragMovement < this.trackTop){
		dragMovement = this.trackTop;
	}else if(dragMovement > this.trackBottom){
		dragMovement = this.trackBottom;
	}
	this.contentObj.setTop(contentMovement);
	this.dragObj.setTop(dragMovement);
	this.scrollTimer = window.setTimeout(this.obj+".scroll("+speed+")",25);
}
ScrollObj.prototype.stopScroll = function(){
	if(this.scrollTimer){
		window.clearTimeout(this.scrollTimer);
		this.scrollTimer = null;
	}
}
ScrollObj.prototype.scrollJump = function(e){
	var currentMouse = getYMouse(e);
	var dragDistance = currentMouse-(this.dragHeight/2);
	var dragMovement = (dragDistance<this.trackTop) ? this.trackTop : (dragDistance>this.trackBottom) ? this.trackBottom : dragDistance;
	this.dragObj.setTop(dragMovement);
	var contentMovement = -(dragMovement-this.trackTop)*(1/this.scrollLength);
	this.contentObj.setTop(contentMovement);
}

// ||||||||||||||||||||||||||||||||||||||||||||||||||
// Misc Functions

function fixNetscape4(){
	if(ns4origWidth != window.innerWidth || ns4origHeight != window.innerHeight){
		window.location.reload();
	}	
}
if(document.layers){
	ns4origWidth = window.innerWidth;
	ns4origHeight = window.innerHeight;
	window.onresize = fixNetscape4;
}
// ||||||||||||||||||||||||||||||||||||||||||||||||||


function jumpTo(scrollObj,id,ele) {
	var	contentBorder = getElement('content_border'),
		idObject = getElement(id),
		contentObject = getElement("content"),
		contentTop = -(idObject.offsetTop);

	if(ele && contentTop < (-1*(contentObject.offsetHeight-contentBorder.offsetHeight))) {
		ele.href = "#";
		contentTop += 191;
	}

	contentObject.setTop(contentTop);
	var dragMovement = scrollObj.trackTop-Math.round(contentTop*(scrollObj.trackLength/scrollObj.contentLength));

	if(dragMovement < scrollObj.trackTop)
		dragMovement = scrollObj.trackTop;
	else if(dragMovement > scrollObj.trackBottom)
		dragMovement = scrollObj.trackBottom;

	scrollObj.dragObj.setTop(dragMovement);
}


function initCatBoxScrollbars() {
  var bcElements = document.getElementById('product_category').childNodes;
  var boxNum = 0;
  
  var scrollbars = new Array();
	
	for (var i=0; i<bcElements.length; i++) {
    if (bcElements[i].className == 'box') {
      boxNum++;
    }
  }
	
  for (var i=0; i<boxNum; i++) {
    var scrollbar = getElement("scrollbar"+(i+1));
    var scrollbar_drag = getElement("scrollbar_drag"+(i+1));
    var layer_content = getElement("layer_content"+(i+1));
    
    scrollbar_drag.css.top = '7px';
    layer_content.css.overflow = 'hidden';
    layer_content.css.width = '156px';
    
    scrollbars[i] = new ScrollObj(10,107,132,"scrollbar_track"+(i+1),"scrollbar_up"+(i+1),"scrollbar_down"+(i+1),"scrollbar_drag"+(i+1),"layer_content"+(i+1),"layer_content_body"+(i+1));
    
    if (!scrollbars[i].scrollNeeded) {
      scrollbar.hideVis();
      layer_content.css.width = "171px";
    }
  }
}


// IE6-Hack um zu verhindern, dass Select-Boxen (z.B. beim GB Schritt 1) 
// die Aufklappmenues ueberlagern

function showIFrame(obj) {
  if (!usingLegacyIE()) {return;}
  
  var iFrame = obj.getElementsByTagName('iframe')[0];
  var menu = obj.getElementsByTagName('ul')[0];
  
  iFrame.style.top = '23px';
  iFrame.style.width = menu.offsetWidth + 'px';
  iFrame.style.height = menu.offsetHeight + 'px';
  iFrame.style.visibility = 'visible';
}

function hideIFrame(obj) {
  if (!usingLegacyIE()) {return;}
  
  var iFrame = obj.getElementsByTagName('iframe')[0];
  
  if (iFrame != null) {
    iFrame.style.visibility = 'hidden';
  }
}