// Follow Link
function goTo(lnk)
{
  d.location.href = lnk;
}

function addLoadEvent(func)
{	
	var oldonload = win.onload;
	if (typeof win.onload != 'function'){
    	win.onload = func;
	} else {
		win.onload = function(){
		oldonload();
		func();
		}
	}
}

function trackMouse(e) 
{
  if(typeof(layer) == 'object')
  {
    var offsetX = (typeof(ttWidth)=='string') ? (parseInt(ttWidth)*(-1)-30) : -205;
    var offsetY = 12;
    var mLeft = 5;
    var mTop = -15;
    
	  x = (ns6) ? e.pageX-mLeft : window.event.clientX+d.documentElement.scrollLeft - mLeft;
	  y = (ns6) ? e.pageY-mTop  : window.event.clientY+d.documentElement.scrollTop  - mTop;
  
    var layerW = ((ie4) ? layer.clientWidth : layer.offsetWidth) - 3;
    var layerH = (ie4) ? layer.clientHeight : layer.offsetHeight;
 
    var winW   = (ns6) ? (window.innerWidth) + window.pageXOffset - 12 
               : d.documentElement.clientWidth + d.documentElement.scrollLeft;
      	
    var winH   = (ns6) ? (window.innerHeight) + window.pageYOffset 
               : d.documentElement.clientHeight + d.documentElement.scrollTop;
  
    layer.style.left = ((x+offsetX+layerW >= winW-offsetX) ? x-(layerW+offsetX)    : x+offsetX) + "px";
    layer.style.top  = ((y+offsetY+layerH >= winH-offsetY) ? y-(layerH+offsetY+10) : y+offsetY) + "px";
  }
  
	return true;
}

// initPage
function initPage()
{
// Infodiv  / Tooltip
  var div = d.createElement('div');
      div.setAttribute('id','toolTip');
  d.body.appendChild(div);
  $('toolTip').style.width = '500px';

	layer = $('toolTip');
	d.body.onmousemove = trackMouse;
  
// input fields
  var formElements = new Array('input', 'textarea');
  for(var e=0;e<formElements.length;e++)
  {
    var input = d.getElementsByTagName(formElements[e]);
    for(var i=0; i<input.length;i++)
    {
      if(input[i].className.indexOf('of') != -1)
      {
        var t = input[i].value;
        input[i].onfocus = function() {
          this.value = '';
        };
      }
    }
  }
  
// Links abfangen
	var anchors = d.getElementsByTagName('a');
	for(var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
    
		if(anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")) {
			anchor.onclick = function () {showLightbox(this); return false;}
		} else if(anchor.getAttribute("href") && (anchor.getAttribute("rel") == "nav")) {
      if(anchor.firstChild.src.match(/_hover/)) {
        startNav = actNav = anchor;
      }
      anchor.onmouseover = function () { navigation(this); return false;}
      anchor.onclick = function() { this.onmouseout = function(){}; }
		} else if(anchor.getAttribute("href") && (anchor.getAttribute("rel") == "switch")) {
      anchor.lang = anchor.href.split(/\/images\//)[1];
      anchor.onclick = function () { 
        if(newSwitchImage.alt != 'loading')
        {
          var tID = parseInt(this.lang);
          var tName = this.lang.split('/')[1];
          var pID = this.lang.split(/full-/)[1];
              pID = (typeof(pID)=='string') ? '-' + parseInt(pID) : '';

          newSwitchImage.alt = 'loading';
          $('s'+tID).getElementsByTagName("img")[0].src = loadingImage;
          $('s'+tID).href = 'javascript:void(0)';
          $('s'+tID).onclick = function() {};
          $('s'+tID).style.cursor = 'default';
          $('s'+tID).target = '';

          newSwitchImage.src = baseURL + '/images/' + tID + '/' + tName + '/fit' + pID + '.jpg';
          newSwitchImage.onload = function() {
            $('s'+tID).href = baseURL + '/images/' + tID + '/' + tName + '/full' + pID + '.jpg';
            $('s'+tID).getElementsByTagName("img")[0].src = baseURL + '/images/' + tID + '/' + tName + '/fit' + pID + '.jpg';
            $('s'+tID).onclick = function() {showLightbox(this); return false;};
            $('s'+tID).style.cursor = 'pointer';
            $('s'+tID).target = '_blank';
            newSwitchImage.alt = '';
          }

          var c = document.getElementsByClassName('selIMG');
          for(i=0;i<c.length;i++) c[i].className = '';
          this.getElementsByTagName("img")[0].className = 'selIMG';
        }
      return false;
      }
		} else if(anchor.getAttribute("rel") == 'previewR') {
      anchor.title = '';
      anchor.onmouseover = function() {
        showPreview(this.getElementsByTagName('img')[0].src.replace(/small/g, 'fit'), this.parentNode.innerHTML.replace(/small/g, 'preview'));
      }
      anchor.onmouseout = function() {
        hidePreview();
      }
    }
	}
  
  // FAQ HIGHLICHT
    var faq = d.location.href.split('#');
    if(faq[1] && d.location.href.indexOf('faq') != -1) highlightFAQ('#' + faq[1])
  
  if(typeof(cL) == 'number')
  {
    clearTimeout(cL);
    $('loadingDiv').style.display = 'none';
    $('loadingImg').style.display = 'none';
  }
}

// PREVIEW BOX
function showPreview(img, html)
{
  layer.innerHTML = '<iframe id="ieFix" style="position:absolute;z-index:0;width:445px;height:270px" frameborder="0"></iframe>';
  layer.innerHTML += '<div class="previewBoxContent preview" style="width:100%;height:345px;padding:0;margin:0;overflow:hidden">' + html +'</div>';
  
  layer.style.width = '445px';
  layer.style.textAlign = 'justify';
  layer.style.display = 'block';
}

function hidePreview()
{
  layer.innerHTML = '';
  layer.style.display = 'none';
}

// FAQ
function highlightFAQ(obj,scr)
{
  var id = 'faq_' + obj.split('#')[1];
  var scrollBy = (id == 'faq_bestellung_abbruch' || id == 'faq_daten_an_dritte') ? 0 : -80;
  
  var tags = d.getElementsByTagName('div');
  for(var i=0;i<tags.length;i++)
  {
    if(tags[i].className == 'faq_highlight')
      tags[i].className ='';
  }
  
  $(id).className = 'faq_highlight';
  
  if(scr != 1) window.setTimeout("window.scrollBy(0,"+scrollBy+");",10);
  else         window.setTimeout("window.scrollBy(0,-1);",10);
}

// Usercenter
function switchPayOptions(e)
{
    var all = $('payForm').getElementsByTagName('fieldset')
    for(var i=0;i<all.length;i++)
    {
      all[i].className = all[i].className.replace(/disabled/g, '');
    }
    var alli = $('payForm').getElementsByTagName('input');

  if(e == 1)
  {
    for(var i=0;i<all.length;i++)
    {
      all[i].className = all[i].className + ' disabled';
    }

    $('pp').className = $('pp').className.replace(/disabled/g, '');
  } else {
    $('pp').className = $('pp').className + ' disabled';
  }
}

var defaultRatio = 6;
function genPrice(id, ratio)
{
  ratio = (ratio) ? parseInt(ratio) : defaultRatio;
  defaultRatio = (ratio) ? parseInt(ratio) : defaultRatio;

  if(id == 'ex')          $('single').value = parseInt($(id).value / ratio);
  else if(id == 'single') $('ex').value     = parseInt($(id).value * ratio);
  else {
    $('ex').value     = parseInt($('single').value * ratio);
    $('single').value = parseInt($('ex').value / ratio);
  }
}

function resizeFlashPreview()
{
  if($('flash') != null)
  {
    var w = $('flash').width;
    var h = $('flash').height;

    $('FlashPreview').style.width  = w + 'px';
    $('FlashPreview').style.height = h + 'px';
  }
}

function empty(str)
{
  str = str.replace(/ /g,'');
  return (str == '') ? true : false;
}

function toggleObj(objID, clickObj)
{
  $(objID).style.display = ($(objID).style.display == 'none') ? '' : 'none';
  
  if(clickObj)
  {
    var img = clickObj.getElementsByTagName('img');
    for(var i=0;i<img.length;i++)
    {
      if(img[i].src.indexOf('expand.gif') != -1) img[i].src = img[i].src.replace(/expand\.gif/g, 'collapse.gif');
      else                                       img[i].src = img[i].src.replace(/collapse\.gif/g, 'expand.gif');
    }
  }
}

function loadTemplate()
{
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	var objOverlay = $('overlay');
      objOverlay.innerHTML = '<img id="upload" src="' + baseURL + '/images/icons/uploadprogress.gif" alt="" />';

	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';
  setOpacity(objOverlay,8);
}

function resize(obj,h)
{
  var height = (h == 'auto') ? 'auto' : h + 'px';
  $(obj).style.height = height;
}

// CONFIRM DELETE
  function del(msg, form)
  {
    var r = confirm(msg.replace(/\+/g, ' '));
    return (r == true) ? (form ? checkForm(form) : true) : false;
  }
    
// CHECK FORMS  
  function in_array(arr, item)
  {
    for(p=0;p<arr.length;p++)
      if (item == arr[p])
        return true;
        
    if(arr == item) return true;
        
    return false;
  }
  
  function setLabelError(labelFor)
  {
    var label = d.getElementsByTagName('label');
    for(var i=0;i<label.length;i++)
    {
      if(label[i].htmlFor == labelFor)
        label[i].className = label[i].className + ' error';
    }
  }
  
  function checkForm(formObj, fileTransfer)
  {
  // reset errors
    var label = formObj.getElementsByTagName('label');
    for(var i=0;i<label.length;i++)
    {
      label[i].className = label[i].className.replace(/error/g, '');
    }
    
    var fileInput = '';
  // text, radio, checkbox
    var input = formObj.getElementsByTagName('input');
    for(var i=0;i<input.length;i++)
    {
      if(input[i].type == 'radio' || input[i].type == 'checkbox')
      {
        if(input[i].lang.indexOf(1) != -1 && input[i].checked == false)
        {
          setLabelError(input[i].id);
          alert(_form_error_field);
          input[i].focus();
          return false;
        }
      } else if(input[i].type == 'text' || input[i].type == 'password') {
        input[i].className = input[i].className.replace(/ error/g, '');
        if(input[i].lang.indexOf(1) != -1 && input[i].value.length == 0)
        {
          setLabelError(input[i].id);
          alert(_form_error_field);
          input[i].focus();
          return false;
        } else if (input[i].lang.indexOf('email') != -1 && (input[i].value.indexOf('@') == -1 || input[i].value.indexOf('.') == -1)) {
          setLabelError(input[i].id);
          alert(_form_error_email_syntax);
          input[i].focus();
          return false;
        }
      } else if(input[i].type == 'file') {
        var ext = input[i].value.split('.');
            ext = '.' + ext[ext.length-1].toLowerCase();
        var allowed_ext = input[i].lang.replace(/1\_(.*?)/g, '$1').replace(/\-/g, ',');

        fileInput += input[i].value;
        if(input[i].lang.indexOf(1) != -1 && input[i].value.length == 0)
        {
          setLabelError(input[i].id);
          alert(_form_error_field);
          input[i].focus();          
          return false;
        } else if(input[i].lang.indexOf(1) != -1 && !in_array(allowed_ext.split(','), ext)) {
          setLabelError(input[i].id);
          alert(_form_error_invalid_files + ' ' + allowed_ext.replace(/\,/g, ', '));        
          return false;
        }
      } else if(input[i].type == 'submit') var submitButton = input[i];
    }
    
  // select
    var input = formObj.getElementsByTagName('select');
    for(var i=0;i<input.length;i++)
    {
      if(input[i].lang.indexOf(1) != -1 && input[i].value.length == 0 && input[i].options[input[i].selectedIndex].innerHTML.length == 0)
      {
        setLabelError(input[i].id);
        alert(_form_error_field);
        input[i].focus();
        return false;
      }
    }
    
  // textarea
    var input = formObj.getElementsByTagName('textarea');
    for(var i=0;i<input.length;i++)
    {
      if(input[i].lang.indexOf(1) != -1 && input[i].value.length == 0)
      {
        setLabelError(input[i].id);
        alert(_form_error_field);
        input[i].focus();
        return false;
      }
    }

  // anti spam
    if(formObj.spm) formObj.spm.value = 1;
  // submit
    if(!submitButton) var submitButton = document.getElementById('submitButton');
    submitButton.disabled = true; submitButton.style.color = '#888'; submitButton.style.cursor = 'default';
    submitButton.blur();
    
    return true;
  }
  
// ADD REVIEW COMMENT
  function addComment(commentID, productID)
  {
    var admin = prompt('Admin Kommentar:');
    
    goTo(baseURL + '/bewertungen/?action=admin&id=' + commentID + '&product_id=' + productID + '&admin=' + admin);
  }
// DEL PRODUCT
  function delProduct(href)
  {
    var admin = prompt('Grund:');
    
    if(!admin) return false;
    
    goTo(href + '&grund=' + admin);
    return false;
  }
  
// UPDATE HITS
  function updateHits(formObj)
  {
    var input = formObj.getElementsByTagName('input');
    for(var i=0;i<input.length;i++)
    {
      if(input[i].type == 'submit')
      {
        var num = parseInt(input[i].value.replace(/(.*?) \(([0-9]+)x\)/g, "$2"));

        input[i].value = (num) ? input[i].value.replace('(' + num + 'x)', '(' + (num + 1) + 'x)') : input[i].value + ' (1x)';
      }
    }
    
    return true;
  }

// IE 6 PNG FIX
  if(window.clipboardData && document.compatMode && !window.XMLHttpRequest)
  {
    var blankImg = baseURL + '/inc/pngfix/blank.gif';
    d.styleSheets[0].addRule('img', 'behavior: url(' + baseURL + '/inc/pngfix/iepngfix.htc)');
    d.styleSheets[0].addRule('.png', 'behavior: url(' + baseURL + '/inc/pngfix/iepngfix.htc)');
  }
  
addLoadEvent(initPage);
if(baseURL.indexOf('127.0.0.1') == -1) onerror = function() { return true; };

// ADD FLASH OBJECT
  function addFlash()
  {
    var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); ret.objAttrs = new Object();
    var def = new Array('menu|false', 'quality|high', 'wmode|transparent', 'classid|clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', 'type|application/x-shockwave-flash');
  
    for(var i=0; i<arguments.length; i=i+2)
    {
      ret.objAttrs[arguments[i]]   = arguments[i+1];
      ret.embedAttrs[arguments[i]] = ret.params[arguments[i]] = arguments[i+1];
      ret.params[arguments[i]]     = arguments[i+1];
    }
  
    for(var i=0; i<def.length; i++)
    {
      var s = def[i].split('|');
      if(!ret.params[s[0]])
      {
        ret.objAttrs[s[0]]   = s[1];
        ret.embedAttrs[s[0]] = s[1];
        ret.params[s[0]]     = s[1];
      }
    }
  
    var str = '<object ';
    for(var i in ret.objAttrs)   str += i + '="' + ret.objAttrs[i] + '" '; str += '>';
    for(var i in ret.params)     str += '<param name="' + i + '" value="' + ret.params[i] + '" /> ';  str += '<embed ';
    for(var i in ret.embedAttrs) str += i + '="' + ret.embedAttrs[i] + '" '; str += ' ></embed></object>';
  
    return str;
  }

// TOGGLE TABLES
  function hideTableRows(objID, rows, txt)
  {
    var e = 0;
    var tr = d.getElementById(objID).getElementsByTagName('tr');
    for(var i=0;i<tr.length;i++)
    {
      if(tr[i].className != 'head' && tr[i].className != 'kat' && tr[i].className != 'legend' && tr[i].className != 'bottom')
      {
        e++;
        if((i) > rows) tr[i].style.display = 'none';
      }
    }

  // Klapplink
    if(e > rows)
    {
      var new_tr = d.createElement('tr');
          new_tr.className = 'toggleTable';
          new_tr.innerHTML = '';
          
      var c = d.createAttribute("colspan");
          c.nodeValue = 10;
          
      var new_td = d.createElement('td');
          new_td.setAttributeNode(c);
          new_td.innerHTML = '<a href="javascript:showTable(\'' + objID + '\')" title="' + txt + '">' + txt + '</a>';
          new_tr.appendChild(new_td);
          
      d.getElementById(objID).lastChild.insertBefore(new_tr, d.getElementById(objID).getElementsByTagName('tr')[e].nextSibling);
    }
  }
  
  function showTable(objID)
  {
    var tr = d.getElementById(objID).getElementsByTagName('tr');
    for(var i=0;i<tr.length;i++)
    {
      tr[i].style.display = '';
      if(tr[i].className == 'toggleTable') tr[i].parentNode.removeChild(tr[i]);
    }
  }
  
// SET OPACITY
  function setOpacity(obj, value)
  {
    if(obj)
    {
    	obj.style.opacity = value/10;
    	obj.style.filter = 'alpha(opacity=' + value*10 + ')';
    }
  }

// ADD STYLESHEET FOR W3C-VALIDATION
  var w3cCSS = baseURL + '/no-w3c.css';
  if(d.createStyleSheet) d.createStyleSheet(w3cCSS);
  else {
    var headID    = d.getElementsByTagName("head")[0];         
    var cssNode   = d.createElement('link');
    cssNode.type  = 'text/css';
    cssNode.rel   = 'stylesheet';
    cssNode.href  = w3cCSS;
    cssNode.media = 'screen';
    headID.appendChild(cssNode);
  }
  
// ADD STYLESHEET FOR W3C-VALIDATION
  var paypalOrderID;
  function initPaypalTrans(orderID)
  {
    paypalOrderID = orderID;
    new Ajax.Request(baseURL + '/ajax.php?do=paypal&orderid=' + orderID, {method: 'get', onComplete: checkPayPal }); 
  }
  
  var ppcheck = 0;
  function checkPayPal(req)
  {
    ppcheck++;
    check = req.responseText.split('|');
    
    if(ppcheck == 10)                                  goTo(baseURL + '/account/?message=paypal_pending');
    else if(check[0].length == 0)                     window.setTimeout("initPaypalTrans(" + paypalOrderID + ");", 5000);
    else if(check[0] == 'Completed' && check[1] == 0) goTo(baseURL + '/account/?message=paypal_payed');
    else if(check[0] == 'Completed' && check[1] == 1) goTo(baseURL + '/account/?message=paypal_pending');
                       else if(check[0] == 'Pending') goTo(baseURL + '/account/?message=paypal_pending');
  }

  function checkLoading()
  {
  	if(window.innerHeight && window.scrollMaxY) {	
  		yScroll = window.innerHeight + window.scrollMaxY;
  	} else if (d.body.scrollHeight > d.body.offsetHeight){
  		yScroll = d.body.scrollHeight;
  	} else { 
  		yScroll = d.body.offsetHeight;
  	}
  	
  	if(self.innerHeight) {	
  		windowHeight = self.innerHeight;
  	} else if (d.documentElement && d.documentElement.clientHeight) { 
  		windowHeight = d.documentElement.clientHeight;
  	} else if (d.body) { 
  		windowHeight = d.body.clientHeight;
  	}	
  	
  	if(yScroll < windowHeight){
  		pageHeight = windowHeight;
  	} else { 
  		pageHeight = yScroll;
  	}
    d.getElementById('loadingDiv').style.height = pageHeight + 'px';
  } 
  
  function setKat(sel, objID)
  {
    if(objID == 'k' && (sel.value == 'Modifikationen' || sel.value == 'Leistungen'))
    {
      $('ratio').style.display = 'none';
      $('singleprice').style.display = 'none';
      $('singleOnly').checked = true;
      $('singleOnly').disabled = true;
    } else if(objID == 'k') {
      $('ratio').style.display = 'block';
      $('singleprice').style.display = 'block';
      $('singleOnly').checked = false;
      $('singleOnly').disabled = false;
    }
    
		return $(objID).style.display = (sel.value == 'new') ? 'inline' : 'none';
	}


function suggestnewkats(v, oid) {
	if(oid == 'k' && v.value == 'new') {	
		document.getElementById(oid).style.display='inline';
	}
	else if (v.value != 'new') {
		document.getElementById(oid).style.display='none';
	}
}
  
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////

  function disableExtras(objID, checked)
  {
    oID = objID.replace(/l/g, '');
    
    var cl = ($(objID).lang == 'read') ? 'read' : 'i';
    
    if(checked == false)
    {
      $(objID).removeAttribute('checked');
      if(cl == 'i') { $('desc' + oID).disabled = true;  $('desc' + oID).className = cl + ' disabled'; }
      $('price' + oID).disabled = true; $('price' + oID).className = 'i disabled';
    } else {
      $(objID).setAttribute('checked', 'checked');
      if(cl == 'i') { $('desc' + oID).disabled = false;  $('desc' + oID).className = cl; }
      $('price' + oID).disabled = false; $('price' + oID).className = 'i';
    }
  }
  
  function addExtra()
  {
    pe = (pe) ? pe : 1;
    pe++;

    var div = document.createElement('div');
      
    div.innerHTML += '<input id="l' + pe + '" name="extras[]" type="checkbox" class="checkbox" value="' + pe + '" checked="checked" onchange="disableExtras(this.id, this.checked)" />'
     + ' <input id="desc' + pe + '" name="desc' + pe + '" type="text" class="i" value="' + _extra_desc + '" style="margin-left:14px" onfocus="this.value=\'\';this.onfocus=function(){return true;}" /> '
     + '+ <input id="price' + pe + '" name="price' + pe + '" type="text" class="i" value="10" style="width:25px;text-align:right" /> EUR</b><br /><br />';
     
     $('extras').appendChild(div);
     
  }
  
  function initNavigation() {
    var tags = $('navi').getElementsByTagName('a');
    for(var i=0;i<tags.length;i++) {
      if(tags[i].nextSibling) {
        tags[i].onclick = function() {
          var ul = this.nextSibling;
          if(ul) {
            ul.style.display = (ul.style.display == 'block') ? 'none' : 'block';
            this.className = (ul.style.display == 'block') ? 'a' : '';
            return false;
          }
        }
      }
    }
  }
  
  function setTopProduct(obj) {
    new Ajax.Request(baseURL + '/admin/produkte/?action=top&id=' + obj.value + '&top=' + (obj.checked ? 1 : 0), {method: 'get'}); 
  }
  
  function togglePrice(type) {
    var n = $('ratio').style.display;
    
    if(type == 1) {
      if(!n || n == 'block') {
        toggleObj('ratio');
        toggleObj('singleprice');
      }
    } else if(type == 0) {
      if(n == 'none') {
        toggleObj('ratio');
        toggleObj('singleprice');
      }
    }
    
  }
  
  function toplist(id) {
    new Ajax.Request(baseURL + '/toplist/out/?id=' + id, {method: 'get'});
  }
  
  function maxLength(obj, maxLength) {
    if(obj.value.length >= maxLength) {
      obj.value = obj.value.substring(0,maxLength);
    }
  }
