var onLoadHandlers = new Array();


var innerSize = new Object();
innerSize.width = 0;
innerSize.height = 0;

function getClientSize() {
  if(self.innerHeight) {
	innerSize.width = self.innerWidth;
	innerSize.height = self.innerHeight;
  }
  else if(document.documentElement && document.documentElement.clientHeight) {
	innerSize.width = document.documentElement.clientWidth;
	innerSize.height = document.documentElement.clientHeight;
  }
  else if (document.body) {
	innerSize.width = document.body.clientWidth;
	innerSize.height = document.body.clientHeight;
  }
}

var scrollPos = new Object();
scrollPos.x = 0;
scrollPos.y = 0;

function getScrollPos() {
  if(self.pageYOffset) {
	scrollPos.x = self.pageXOffset;
	scrollPos.y = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {
	scrollPos.x = document.documentElement.scrollLeft;
	scrollPos.y = document.documentElement.scrollTop;
  }
  else if (document.body) {
	scrollPos.x = document.body.scrollLeft;
	scrollPos.y = document.body.scrollTop;
  }
}

function findObjLeft(obj) {
  var objLeft = 0;
  var tempObj = obj;
  while(tempObj.offsetParent) {
    objLeft += tempObj.offsetLeft;
    tempObj = tempObj.offsetParent;
  } 
  return objLeft;
}

function findObjTop(obj) {
  var objTop = 0;
  var tempObj = obj;
  while(tempObj.offsetParent) {
    objTop += tempObj.offsetTop;
    tempObj = tempObj.offsetParent;
  } 
  return objTop;
}

function hideSelects(destObj) {
  if(!document.all) {
    return;
  }
  var selectObjs = document.getElementsByTagName('select');
  for(var i = 0; i < selectObjs.length; i++) {
    selectObjs[i].style.visibility = 'visible';
  }  
  var suggestLeft = findObjLeft(destObj);
  var suggestTop = findObjTop(destObj);
  var suggestWidth = destObj.offsetWidth;
  var suggestHeight = destObj.offsetHeight;
  var selectObjs = document.getElementsByTagName('select');
  for(var i = 0; i < selectObjs.length; i++) {
    var selectLeft = findObjLeft(selectObjs[i]);
    var selectTop = findObjTop(selectObjs[i]);
    var selectWidth = selectObjs[i].offsetWidth;
    var selectHeight = selectObjs[i].offsetHeight;    
    if(!(suggestLeft > selectLeft + selectWidth || suggestLeft + suggestWidth < selectLeft ||
      suggestTop > selectTop + selectHeight || suggestTop + suggestHeight < selectTop)) {
      selectObjs[i].style.visibility = 'hidden';
    }
  }
}

function showSelects() {
  if(!document.all) {
    return;
  }
  var selectObjs = document.getElementsByTagName('select');
  for(var i = 0; i < selectObjs.length; i++) {
    selectObjs[i].style.visibility = 'visible';
  }  
}

function getAbsoluteY(infoObj) {
  var position = 0;
  var obj = infoObj;
  while(obj) {
    position += obj.offsetTop;
    obj = obj.offsetParent;
  }
  return position;
}  
  
var activeInfoBox = -1;
  
function showInfoBox(sender, index) {
  var infoObj = document.getElementById('ibox-' + index);
  activeInfoBox = index;
  if(infoObj) {     
    getClientSize();
    getScrollPos();      
    var posX = sender.offsetLeft;
    var posY = sender.offsetTop;
    
    if(posX == 0) {
      return;
    }
    
    infoObj.style.left = posX  + sender.offsetWidth + 'px';      
    infoObj.style.top = posY + 'px';   
    infoObj.style.display = 'block';
    if(getAbsoluteY(infoObj) + infoObj.offsetHeight - scrollPos.y > innerSize.height) {
      infoObj.style.top = posY - infoObj.offsetHeight + sender.offsetHeight + 'px';      
    }    
  }
  hideSelects(infoObj);
}
    
function hideInfoBox() {
  if(activeInfoBox != -1) {
    var infoObj = document.getElementById('ibox-' + activeInfoBox);
    if(infoObj) {
      infoObj.style.display = 'none';
    }
  }
  showSelects();
}
	
var defaultText = '';
	
function hideKeywordText() {	 
  var keyWordObj = document.getElementById('suche');
  if(defaultText == '') {
    defaultText = keyWordObj.value;
  }
  if(keyWordObj.value == defaultText) {
    keyWordObj.value = '';
  }
}
	
function showKeywordText() {
  var keyWordObj = document.getElementById('suche');	  
  if(keyWordObj.value == '') {
    keyWordObj.value = defaultText;
  }
}

var defaultMail = '';
	
function hideEmailText() {	 
  var eMailObj = document.getElementById('newsletter-email');
  if(defaultMail == '') {
    defaultMail = eMailObj.value;
  }
  if(eMailObj.value == defaultMail) {
    eMailObj.value = '';
  }
}
	
function showEmailText() {
  var eMailObj = document.getElementById('newsletter-email');	  
  if(eMailObj.value == '') {
    eMailObj.value = defaultMail;
  }
}	

function openWindow(url, name, width, height, left, top, locationBar, menuBar, resizable, scrollbars, statusbar, toolbar) {
  if(left == -1) {
    var left = Math.round((screen.width - width) / 2);
  }
  if(top == -1) {
    var top = Math.round((screen.height - height) / 2);
  }
  var features = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',location=' + 
    (locationBar?'yes':'no') + ',menubar=' + (menuBar?'yes':'no') + ',resizable=' + (resizable?'yes':'no') +
     ',scrollbars=' + (scrollbars?'yes':'no') + ',status=' + (statusbar?'yes':'no') + 
     ',toolbar=' + (toolbar?'yes':'no');
  var win = window.open(url, name, features);
  win.focus();
}

function displayCover(sender) {
  openWindow(sender.href, 'dvdsexpress_image', 455, 663, -1, -1, false, false, false, false, true, false);
}

function showBrand() {
  var brandList = document.getElementById('produzent');
  if(brandList && brandList.options[brandList.selectedIndex].value != '-') {
    location.href = '?produzent=' + brandList.options[brandList.selectedIndex].value;
  }
}

function navigateDropDown(sender) {
  if(sender.options[sender.selectedIndex].value != '-') {
    location.href = sender.options[sender.selectedIndex].value;
  }
}

function easeInOutCubic(t, b, c, d) {
	t /= d / 2;
	if (t < 1) {
	  return c / 2 * t * t * t + b;
	}
	t -= 2;
	return c / 2 * (t * t * t + 2) + b;
}

var slideObjects = new Array();

function slideIn(obj) {

}

function showItemImage(id, sender) {
  var overlayObj = document.getElementById('imgoverlay' + id);  
  overlayObj.style.display = 'block';
  
  var senderTop = sender.offsetTop + sender.offsetHeight;
  overlayObj.style.top = senderTop + 'px';
}

function hideItemImage(sender) {

}

window.onload = function() {
  for(var i = 0; i < onLoadHandlers.length; i++) {
    onLoadHandlers[i]();
  }
}