document.getElementsByClassName = function(cl) {
  var retnode = [];
  var myclass = new RegExp('\\b'+cl+'\\b');
  var elem = this.getElementsByTagName('*');
  for (var i = 0; i < elem.length; i++) {
    var classes = elem[i].className;
    if (myclass.test(classes))
      retnode.push(elem[i]);
  }
  return retnode;
};
function udPageQuery(asQuery) {
  if (asQuery.length > 1) 
    this.query = asQuery.substring(1, asQuery.length);
  else 
    this.query = null;
  this.keyValuePairs = new Array();
  if (asQuery) {
    for (var i=0; i < this.query.split("&").length; i++) {
      this.keyValuePairs[i] = this.query.split("&")[i];
    }
  }
  this.getKeyValuePairs = function() { 
    return this.keyValuePairs; 
  }
  this.getValue = function(asKey) {
    for (var j=0; j < this.keyValuePairs.length; j++) {
      if(this.keyValuePairs[j].split("=")[0] == asKey)
        return this.keyValuePairs[j].split("=")[1];
    }
    return '';
  }
  this.getParameters = function() {
    var a = new Array(this.getLength());
    for(var j=0; j < this.keyValuePairs.length; j++) {
      a[j] = this.keyValuePairs[j].split("=")[0];
    }
    return a;
  }
  this.getLength = function() { 
    return this.keyValuePairs.length; 
  }
}
function udQueryString(asKey) {
  var page = new udPageQuery(window.location.search);
  return unescape(page.getValue(asKey));
}
/********************************************************************
  Product view
*********************************************************************/
var udProductViewCategory1Count = 0;
var udProductViewCategory2Count = 0;
var udProductViewCategory3Count = 0;
function udWriteProductViewEnd() {
  if (udProductViewCategory3Count > 0) {
    document.write('</div>');
    udProductViewCategory3Count = 0;
  }
  if (udProductViewCategory2Count > 0) {
    document.write('</div>');
    udProductViewCategory2Count = 0;
  }
  if (udProductViewCategory1Count > 0) {
    document.write('</div>');
    udProductViewCategory1Count = 0;
  }
}
function udWriteProductViewCategory1(asText, asNo, asImage) {
  if (udProductViewCategory3Count > 0) {
    document.write('</div>');
    udProductViewCategory3Count = 0;
  }
  if (udProductViewCategory2Count > 0) {
    document.write('</div>');
    udProductViewCategory2Count = 0;
  }
  if (udProductViewCategory1Count > 0) {
    document.write('</div>');
    udProductViewCategory1Count = 0;
  }
  asNo = asNo.substr(2, asNo.length);
  var expand = asNo.split('.');
  if (udQueryString('Expand') != '') {
    var expanded = udQueryString('Expand').split('.');
    var collapsed = new Array();
  } else if (udQueryString('Collapse') != '') {
    var expanded = new Array();
    var collapsed = udQueryString('Collapse').split('.')
  } else {
    var expanded = new Array();
    var collapsed = new Array();
  }
  var viewRestrictToCategory = udQueryString('RestrictToCategory');
  var viewStart = udQueryString('Start');
  var viewCount = udQueryString('Count');
  var linkStr = '<a href="' + location.pathname + '?OpenView&amp;Start=' + viewStart + '&amp;Count=' + viewCount + '&amp;RestrictToCategory=' + viewRestrictToCategory;
  if (expanded[0] == expand[0])
    linkStr = linkStr + '&amp;Collapse=' + asNo + '">';
   else if (collapsed[0] == expand[0])
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  else
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  document.write('<div class="ProdViewCat1" id="ProdView' + asNo.replace('.', '-') + '">' + linkStr + '<img src="' + webPath + '/' + asImage + '" alt="' + asText + '" onMouseOver="udMouseOverView(this);" onMouseOut="udMouseOutView(this);">' + asText + '</a>')
  udProductViewCategory1Count = udProductViewCategory1Count + 1;
}
function udWriteProductViewCategory2(asText, asNo) {
  if (udProductViewCategory3Count > 0) {
    document.write('</div>');
    udProductViewCategory3Count = 0;
  }
  if (udProductViewCategory2Count > 0) {
    document.write('</div>');
    udProductViewCategory2Count = 0;
  }
  asNo = asNo.substr(2, asNo.length);
  var expand = asNo.split('.');
  if (udQueryString('Expand') != '') {
    var expanded = udQueryString('Expand').split('.');
    var collapsed = new Array();
  } else if (udQueryString('Collapse') != '') {
    var expanded = new Array();
    var collapsed = udQueryString('Collapse').split('.')
  } else {
    var expanded = new Array();
    var collapsed = new Array();
  }
  var viewRestrictToCategory = udQueryString('RestrictToCategory');
  var viewStart = udQueryString('Start');
  var viewCount = udQueryString('Count');
  var linkStr = '<a href="' + location.pathname + '?OpenView&amp;Start=' + viewStart + '&amp;Count=' + viewCount + '&amp;RestrictToCategory=' + viewRestrictToCategory;
  if (expanded[1] == expand[1])
    linkStr = linkStr + '&amp;Collapse=' + asNo + '">';
  else if (collapsed[1] == expand[1])
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  else
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  if (linkStr.indexOf('Expand=') != -1)
    document.write('<div class="ProdViewCat2" id="ProdView' + asNo.replace('.', '-') + '">' + linkStr + '<img src="' + webPath + '/icon_plus.gif" alt="' + asText + '" onMouseOver="udMouseOverView(this);" onMouseOut="udMouseOutView(this);">' + asText + '</a>')
  else
    document.write('<div class="ProdViewCat2 ProdViewCatExpanded" id="ProdView' + asNo.replace('.', '-') + '">' + linkStr + '<img src="' + webPath + '/icon_minus.gif" alt="' + asText + '" onMouseOver="udMouseOverView(this);" onMouseOut="udMouseOutView(this);">' + asText + '</a>')
  udProductViewCategory2Count = udProductViewCategory2Count + 1;
}
function udWriteProductViewCategory3(asText, asNo) {
  if (udProductViewCategory3Count > 0) {
    document.write('</div>');
    udProductViewCategory3Count = 0;
  }
  asNo = asNo.substr(2, asNo.length);
  var expand = asNo.split('.');
  if (udQueryString('Expand') != '') {
    var expanded = udQueryString('Expand').split('.');
    var collapsed = new Array();
  } else if (udQueryString('Collapse') != '') {
    var expanded = new Array();
    var collapsed = udQueryString('Collapse').split('.')
  } else {
    var expanded = new Array();
    var collapsed = new Array();
  }
  var viewRestrictToCategory = udQueryString('RestrictToCategory');
  var viewStart = udQueryString('Start');
  var viewCount = udQueryString('Count');
  var linkStr = '<a href="' + location.pathname + '?OpenView&amp;Start=' + viewStart + '&amp;Count=' + viewCount + '&amp;RestrictToCategory=' + viewRestrictToCategory;
  if (expanded[2] == expand[2])
    linkStr = linkStr + '&amp;Collapse=' + asNo + '">';
  else if (collapsed[2] == expand[2])
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  else
    linkStr = linkStr + '&amp;Expand=' + asNo + '">';
  if (linkStr.indexOf('Expand=') != -1)
    document.write('<div class="ProdViewCat3" id="' + asNo.replace('.', '-') + '">' + linkStr + '<img src="' + webPath + '/icon_plus.gif" alt="' + asText + '" onMouseOver="udMouseOverView(this);" onMouseOut="udMouseOutView(this);">' + asText + '</a>')
  else
    document.write('<div class="ProdViewCat3" id="' + asNo.replace('.', '-') + '">' + linkStr + '<img src="' + webPath + '/icon_minus.gif" alt="' + asText + '" onMouseOver="udMouseOverView(this);" onMouseOut="udMouseOutView(this);">' + asText + '</a>')
  udProductViewCategory3Count = udProductViewCategory3Count + 1;
}
/********************************************************************
  Customer service
*********************************************************************/
function udCustomerServiceMouseOver(e, img) {
  e.src = img;
}
function udCustomerServiceMouseOut(e, img) {
  e.src = img;
}
/********************************************************************
  Views
*********************************************************************/
function udMouseOverView(e) {
  e.src = leftBack(e.src, '.') + '_mo.' + rightBack(e.src, '.');
}
function udMouseOutView(e) {
  e.src = leftBack(e.src, '_') + '.' + rightBack(e.src, '.');
}
/********************************************************************
  Terms
*********************************************************************/
function writeTerm(aiTerm) {
  document.write(webTerms[aiTerm]);
}
/********************************************************************
  FAQ
*********************************************************************/
function udFAQMouseOverCategory(e) {
  var img = e.getElementsByTagName('img');
  if (img)
    if (img[0].src.indexOf('_mo.') == -1)
      udMouseOverView(img[0]);
  e.className = 'FAQCategoryAHover';
}
function udFAQMouseOutCategory(e) {
  if (e.parentNode.className == 'FAQCategory') {
    var img = e.getElementsByTagName('img');
    if (img)
      if (img[0].src.indexOf('_mo.') != -1)
        udMouseOutView(img[0]);
    e.className = 'FAQCategoryA';
  }
}
function udClickFAQCategory(e) {
  if (e.className == 'FAQCategory') {
      e.className = 'FAQCategoryExpanded';
      var content = document.getElementsByClassName(e.id + 'Content');
      for (var i = 0; i < content.length; i++)
        showElementEx(content[i]);
      var img = e.getElementsByTagName('img');
      if (img)
        img[0].src = img[0].src.replace('plus', 'minus');
  }  else {
      e.className = 'FAQCategory';
      var content = document.getElementsByClassName(e.id + 'Content');
      for (var i = 0; i < content.length; i++)
        hideElementEx(content[i]);
      var img = e.getElementsByTagName('img');
      if (img)
        img[0].src = img[0].src.replace('minus', 'plus');
  }
}
var idFAQExpanded = '';
function mouseOverFAQ(e) {
  if (idFAQExpanded != e.id) {
    e.className = 'FAQQuestionActivated';
    var item = getElement('I' + e.id);
    if (item) {
      item.src = webPath + '/icon_question_mo.gif';
    }
  }
}
function mouseOutFAQ(e) {
  if (idFAQExpanded != e.id) {
    e.className = 'FAQQuestion';
    var item = getElement('I' + e.id);
    if (item) {
      item.src = webPath + '/icon_question.gif';
    }
  }
}
function clickFAQ(e) {
  if (idFAQExpanded != '' && idFAQExpanded != e.id) {
    var item = getElement(idFAQExpanded);
    if (item) 
      item.className = 'FAQQuestion';
    item = getElement('I' + idFAQExpanded);
    if (item) 
      item.src = webPath + '/icon_question.gif';
    item = getElement('AI' + idFAQExpanded);
    if (item)
      hideElementEx(item);
    item = getElement('A' + idFAQExpanded);
    if (item)
      hideElementEx(item);
    idFAQExpanded = '';
  }
  var item = getElement('A' + e.id);
  if (item) {
    if (getElementDisplay(item) == 'none') {
      idFAQExpanded = e.id;
      showElementEx(item)
      item = getElement('AI' + e.id);
      if (item)
        showElementEx(item);
    } else {
      hideElementEx(item);
      idFAQExpanded = '';
      e.className = 'FAQQuestionActivated';
      item = getElement('AI' + e.id);
      if (item)
        hideElementEx(item);
    }
  }
}
/********************************************************************
  Open page with menu
*********************************************************************/
function openPageWithMenu(asPageKey) {
  location.href = webPath + '/pages/' + asPageKey + '?OpenDocument&MainMenu=' + webMenuItemLevel1Active + '&SubMenu=' + webMenuItemLevel2Active + '&MenuName=' + webMenuName;
}
/********************************************************************
  Main menu width computing
*********************************************************************/
function getTextWidth(asText) {
  document.getElementById('TextWidthComputer').innerHTML = asText;
  return document.getElementById('TextWidthComputer').offsetWidth;
}
function computeMenu() {
  var totalSize = 638;
  var size = 0;
  for (var i = 0; i < webMenuItemsLevel1.length; i++)
    size = size + getTextWidth(webMenuItemsLevel1[i]);
  size = Math.round((totalSize - size) / (webMenuItemsLevel1.length));
  var s = '<img src="/icons/ecblank.gif" height="1" width="30" alt="">';
  for (var i = 0; i < webMenuItemsLevel1Links.length; i++) {
    s = s + webMenuItemsLevel1Links[i] + (i == webMenuItemsLevel1Links.length - 1 ? '' : '<img src="/icons/ecblank.gif" height="1" width="' + size + '" alt="">');
  }
  document.getElementById('MainMenuItems').innerHTML = s;
}
/********************************************************************
  Sizing of elements
*********************************************************************/
var glUDEventOnWindowResize;
/* will be overwritten on the frontpage */
var isFrontPage = false; 
function onUDWindowResize() {
  resizeAll();
  glUDEventOnWindowResize();
}
function captureUDEvents() {
  glUDEventOnWindowResize=(window.onresize) ? window.onresize : new Function;
  window.onresize = onUDWindowResize;
  if (!browser.ns4)
    onUDWindowResize();
}
function resizeAll() {
return;
  var windowHeight = getWindowHeight() > 768 ? 768 : getWindowHeight();
  var topHeight = 100;
  if (isFrontPage) {
    /* Do nothing */
  } else {
    /* Left */
    var leftHeight = windowHeight - topHeight - 6;
    setElementHeight(getElement('LeftContainer'), leftHeight);
    var news = getElement('News');
    var customerService = getElement('CustomerService');
    var height = leftHeight - getElementHeight(news) - getElementHeight(customerService) - (browser.isIE ? 7 : 5);
    if (height > getElementHeight(getElement('LeftContainerInner')))
      setElementHeight(getElement('LeftContainerInner'), height - (browser.isIE ? 0 : 52));
    setElementTop(news, 3);
    setElementTop(customerService, 3);
    var leftInnerHeight = getElementHeight(getElement('LeftContainerInner')) + getElementHeight(news) + getElementHeight(customerService);
    /* Content */
    setElementHeight(getElement('ContentContainer'), leftHeight + (browser.isIE ? -19 : -25));
    /* Right */
    var tools = getElement('Tools');
    var rightSpacer = getElement('RightSpacer');
    if (leftInnerHeight > windowHeight - topHeight) {
      var height = (leftInnerHeight > leftHeight ? leftInnerHeight : leftHeight) + (browser.isIE ? 5 : 6);
      setElementHeight(getElement('RightContainer'), height);
      var height = leftInnerHeight - getElementHeight(tools) - getElementHeight(rightSpacer) + 27;
      setElementHeight(getElement('RightContainerInner'), height - (browser.isIE ? 68 : 33)); 
    } else {
      var height = windowHeight - topHeight - (browser.isIE ? 19 : 13)
      setElementHeight(getElement('RightContainer'), height);
//      var height = windowHeight - getElementHeight(tools) - getElementHeight(rightSpacer) - topHeight;
      var height = windowHeight - 192 - getElementHeight(rightSpacer) - topHeight;
      setElementHeight(getElement('RightContainerInner'), height - (browser.isIE ? 33 : 39)); 
    }
    setElementTop(tools, 0);
  }
}
/********************************************************************
  Open sitemap page
*********************************************************************/
function showSitemap() {
  var sitemapUrl = "";
  if(typeof(webMenuName) != 'undefined'){
    sitemapUrl = webPath + '/pages/sitemap_' + webLanguage  + '.html?opendocument&Count=1000/' + '&MainMenu=' + webMenuItemLevel1Active + '&SubMenu=' + webMenuItemLevel2Active + '&MenuName=' + webMenuName;
  }else{
    // frontpage
    sitemapUrl = webPath + '/pages/sitemap_' + webLanguage  + '.html?opendocument&Count=1000/';
  }
  window.location.href = sitemapUrl ;
}
