
var decimalSep = ',';
var thousandSep = '.';

var thBilder_tooltip_maxWidth = 300;
var thBilder_lightbox_rel; var thBilder_lightbox_rel_A = new Array();
var thBilder_title_cBeg = "ddrivetip('";
var thBilder_title_cEnd = "',thBilder_tooltip_maxWidth)";

function openWindow(url, w, h, win, x, y) {
    var win_name = win ? win : 'popup';
    if (! x) x = 0;
    if (! y) y = 0;
    if (! w) w = 800;
    if (! h) h = 600;
    var new_win = window.open(url,win_name,'left='+x+',top='+y+',width='+w+',height='+h+',menubar=no,toolbar=no,location=no,scrollbars=yes,resizable=yes,status=yes',true);
    new_win.focus();
}

function Trim(s) {
    var tmp = new String(s);
    while (tmp.substr(0, 1) == ' ') tmp = tmp.substr(1);
    while (tmp.substr(tmp.length-1) == ' ') tmp = tmp.substr(0, tmp.length-1);
    return tmp;
}

function CheckEmailAddress(a){
    a = Trim(a);
    var re = /^[A-Za-z0-9_\-\.]+@[A-Za-z0-9\-\.]+\.[A-Za-z]+$/;
    if (re.exec(a)) return true;
    else return false;
}

function checkDigit(e) {
    var keynum;
    var keychar;
    var numcheck;
    if (window.event) { // IE
        keynum = e.keyCode;
    } else if (e.which) { // Netscape/Firefox/Opera
        keynum = e.which;
    }
    if (keynum > 31) {
        keychar = String.fromCharCode(keynum);
        numcheck = /\d/;
        return numcheck.test(keychar);
    } else {
        return true;
    }
}

function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? decimalSep + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + thousandSep + '$2');
    }
    return x1 + x2;
}

function addCommas_formatFloat(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? decimalSep + x[1] : decimalSep + '00';
    while (x2.length < 3) { x2 += '0'; }
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + thousandSep + '$2');
    }
    return x1 + x2;
}

function remCommas(nStr) {
    nStr += '';
    x = nStr.split(decimalSep);
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = new RegExp("\\"+thousandSep, "g");
    x1 = x1.replace(rgx, '');
    return x1 + x2;
}

function add_favorite() {
  if (document.all) {
    window.external.AddFavorite(location.href, document.title);
  } else if (window.sidebar) {
    window.sidebar.addPanel(document.title, location.href, "");
  }
}

function getSelectedValue(sb) {
    if (sb.options[sb.selectedIndex].value != '') {
        return sb.options[sb.selectedIndex].value;
    }
}

function array_elem_idx(arr, val) {
    for (idx in arr) if (arr[idx] == val) return idx;
    return -1;
}

function select_empty(id) {
    var oSel = document.getElementById(id);
    while(oSel.options.length) oSel.remove(0);
}

function select_fill(id , oData) {
    var oSel = document.getElementById(id);
    var oOption;
    for(var i = 0; i < oData.length; i++) {
        oOption = document.createElement('option');
        oOption.value = oData[i].v;
        oOption.text = oData[i].t;
        try { oSel.add(oOption); }
        catch(e) { oSel.add(oOption,null); }
    }
}

function resetForm(f) {
    for (var e = 0; e < f.length; e++) {
        if (f.elements[e].type == 'checkbox' || f.elements[e].type == 'radio') {
            f.elements[e].checked = false;
        }
        else if (f.elements[e].type == 'text' || f.elements[e].type == 'textarea') {
            f.elements[e].value = '';
        }
        else if (f.elements[e].type == 'select-one') {
            f.elements[e].selectedIndex = 0;
        }
        //else alert(f.elements[e].type);
    }
}

function nospam() {
    var a = document.getElementsByTagName("a");
    for (var i = a.length-1; i >= 0; i--) {
      if (a[i].className.search(/\bemail\b/) != -1) {
        var email = a[i].firstChild.data + "@" + a[i].lastChild.data;
        a[i].innerHTML = email;
        a[i].href = "mailto:" + email;
      }
    }
}
//window.onload=nospam;

function SendLink() {
    document.formSendLink.submit();
}

var tmp_img_src = '';
function swapImg(img1, img2) {
    if (typeof img2 == "undefined") {
        if (tmp_img_src != '') {
            document.getElementById(img1).src = tmp_img_src;
            tmp_img_src = '';
        }
    } else {
        if (tmp_img_src == '') {
            tmp_img_src = document.getElementById(img1).src;
            document.getElementById(img1).src = document.getElementById(img2).src;
        }
    }
}

function elem_bg(ep, ec, bgColor) { // change the backgroundColor of several (ec) elements with prefix (ep)
    for (var c = 1; c <= ec; c++) {
        document.getElementById(ep+'_c'+c).style.backgroundColor = bgColor;
    }
}

function IE_Ver() {
	var str = "MSIE ";
	var idx = navigator.appVersion.indexOf(str);
	if (idx > -1) return ver_num = navigator.appVersion.substr(idx+str.length,1);
}

var active_navId = 0;
function sL2(navId) {
    if (navId != 0) {
        active_navId = navId;
    } else { if (active_navId != 0) document.getElementById('L1a'+active_navId).className = "active"; }
    subIDs = eval('sub_'+active_navId);
    if (subIDs != "") {
        document.getElementById('nav_L2').style.display = 'block';
        document.getElementById('nav_L2b').style.visibility = 'visible';
        while (subIDs != "|" && subIDs != "") {
            var sep_pos = subIDs.indexOf("|");
            var oneID = subIDs.substr(0, sep_pos);
            subIDs = subIDs.substr(sep_pos+1);
            if (navigator.appName.indexOf("Explorer") > -1) document.getElementById('L2_'+oneID).style.display = 'inline';
            else document.getElementById('L2_'+oneID).style.display = 'table-cell';
        }
    } else {
        hL2();
    }
}
function hL2() {
    if (active_navId != 0) document.getElementById('L1a'+active_navId).className = "";
    document.getElementById('nav_L2').style.display = 'none';
    document.getElementById('nav_L2b').style.visibility = 'hidden';
    subIDs = eval('sub_'+active_navId);
    if (subIDs != "") {
        while (subIDs != "|" && subIDs != "") {
            var sep_pos = subIDs.indexOf("|");
            var oneID = subIDs.substr(0, sep_pos);
            subIDs = subIDs.substr(sep_pos+1);
            document.getElementById('L2_'+oneID).style.display = 'none';
        }
    }
}

function sL3(id) {
    document.getElementById('L3_'+id).style.display = 'block';
}
function hL3(id) {
    document.getElementById('L3_'+id).style.display = 'none';
}

  ////////////////////////////////////////////////////////////////
//
// Beschreibung: Überprüft das Vorhandensein eines Wertes
//
// @params form = das Formular; checkNewValue = der Wert, der getestet werden soll;
//              checkOldValues = die Werte gegen welche geprüft werden soll;
//              notAllowedString = der String, der nicht zugelassen ist (z.B. "")
//              valueTitle = der Titel des zu erzeugenden Parameters
//
////////////////////////////////////////////////////////////////

function checkValue(form, checkNewValue, checkOldValues, notAllowedString, valueTitle, checkOldValue){

  if(checkNewValue == null) checkNewValue = "Category";
  if(checkOldValues == null) checkOldValues = "cats";
  if(notAllowedString == null) notAllowedString = "";
  if(valueTitle == null) valueTitle = "Kategorie";

  // Returnvariable
  var ret = true;
  var alertStr = "";

  // Lese die neu anzulegende Kategorie aus
  var newValue= form.elements[checkNewValue].value;
  var oldValue;
  if(checkOldValue != null) oldValue= form.elements[checkOldValue].value;
  if(newValue == notAllowedString) alertStr = "Bitte geben Sie " + valueTitle + " an.";

  // Lese die vorhandenen Kategorien aus dem Formular aus
  else if(form.elements[checkOldValues].value != ""){
    var oldValues = form.elements[checkOldValues].value;

    // Strip first "|" if any
    if(oldValues.indexOf("|") == 0) oldValues = oldValues.substr(1,oldValues.length-1);

    var presentValues = oldValues.split("|");

    // Prüfe ob vorhanden
    for(var i=0; i <= presentValues.length-1; i++){
      if(checkOldValue != null) {
          if(presentValues[i].toUpperCase() == newValue.toUpperCase() && newValue.toUpperCase() != oldValue.toUpperCase()) alertStr = valueTitle + " schon vorhanden.";
      } else {
          if(presentValues[i].toUpperCase() == newValue.toUpperCase()) alertStr = valueTitle + " schon vorhanden.";
      }
    }
  }

  if(alertStr != ""){
    alert(alertStr);
    ret = false;
  }
  return ret;
}

function get_URL_Params() {
  var URL_Params = new Array();
  if (location.href.indexOf("?") > -1) {
    var aQueryString = location.href.substr(location.href.indexOf("?")+1).split("&");
    for (var iParam = 0; iParam < aQueryString.length; iParam++)
      URL_Params[iParam] = aQueryString[iParam].split("=");
  }
  return URL_Params;
}

//url(/de/wLayout/design/img/star_yellow.png)
//url(/de/wLayout/design/img/star_yellow_small.png)
function bewerten(id, pt, size) {
  if(size == null) size = "";
  if(pt == null || isNaN(pt)) {
      for(c=1; c<=5; c++) document.getElementById("bewerten_"+id+"_"+c).src = "/de/wLayout/design/img/star_grey"+size+".png";
  } else if(pt > 0 && pt <= 5) {
      for(c=1; c<=pt; c++) document.getElementById("bewerten_"+id+"_"+c).src = "/de/wLayout/design/img/star_yellow"+size+".png";
  }
}
function userTools(action,id,pt) {
    var URL_Params = get_URL_Params();
    var query_Str = "?id="+id+"&"+action+"="+pt;
    if (URL_Params.length > 0)
      for (var iParam = 0; iParam < URL_Params.length; iParam++)
        if (URL_Params[iParam][0] != "id" && URL_Params[iParam][0] != action)
          query_Str += "&"+URL_Params[iParam][0]+"="+URL_Params[iParam][1];
    location.href = query_Str;
}

var css_pics = new Array();
function preload_css_pics() {
    if (document.images) {
        document.preloaded_pics = new Array();
        for (var i=0; i<css_pics.length; i++) {
          if (css_pics[i]) {
            document.preloaded_pics[i] = new Image;
            document.preloaded_pics[i].src = css_pics[i];
          }
        }
    }
}


function highOn(elem) {
    var melem = elem.parentNode.parentNode;
    var ielem = elem.firstChild;
    new Effect.Morph(melem,{style:'border-color:#383c47;',duration:0.25});
    new Effect.Opacity(ielem, {duration:0.25, from:1.0, to:0.25});
}

function highOff(elem) {
    var melem = elem.parentNode.parentNode;
    var ielem = elem.firstChild;
    new Effect.Morph(melem,{style:'border-color:#565d70;',duration:0.25});
    new Effect.Opacity(ielem, {duration:0.25, from:0.25, to:1.0});
}

function check_key(e, f) {
	if (window.event) {
		keynum = e.keyCode;
	} else if (e.which) {
		keynum = e.which;
	}
	if (keynum == 13) f.submit();
	return true;
}

