var checkFormSettingsMessage='Mindestes ein Formularelement wurde mit einem nicht zulässigen Wert besetzt. Bitte überprüfen Sie Ihre Eingaben.';
var checkPageAssetMessage='Es wurde kein Baustein (Asset) ausgewählt.\nBitte selektieren Sie ein bestehendes Asset oder legen\nSie zuerst über das Asset-Management ein neues Asset an.';
var FailMessages = new Array();

addFailMessage(1,"Bitte geben Sie Ihren vollständigen Namen an!");
addFailMessage(2,"Bitte geben Sie Ihren Firmennamen an!");
addFailMessage(3,"Bitte geben Sie Ihre vollständige und korrekte EMail-Adresse an!");
addFailMessage(4,"Bitte geben Sie einen Nachrichtentext an!");
addFailMessage(5,"Bitte geben Sie einen Betreff an!");
addFailMessage(6,"Bitte geben Sie Ihren korrekten Benutzernamen an!");


function addFailMessage(id,message) {
  FailMessages[id] = message;
}

function confirmDelete(what,url_redir) {
  var msg = "Wollen Sie den Eintrag wirklich löschen?\n\nBitte beachten Sie dabei, dass mit dem Löschvorgang\neventuell verknüpfte Daten aus anderen Tabellen\nverloren gehen können.";
  if (what>"") msg = "Wollen Sie den Eintrag '"+what+"' wirklich löschen?\n\nBitte beachten Sie dabei, dass mit dem Löschvorgang\neventuell verknüpfte Daten aus anderen Tabellen\nverloren gehen können.";
  var conf = confirm(msg);
  if (conf) {
    window.location.href = url_redir;
  }
}

// Removes leading whitespaces
function LTrim( value ) {

	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {

	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {

	return LTrim(RTrim(value));

}

function validateEMail(frmobj) {
  if (validateMailAddress(frmobj.EMail.value)) {
  	return true;
  } else {
	alert('Bitte geben Sie Ihre korrekte Email-Adresse an');
  	return false;
  }
}

function validateSearch() {
  var phrase = trim(document.getElementById('searchform').suche.value);
  if (phrase.length > 2) return true;
  alert('Bitte geben Sie mindestens drei Zeichen als Suchbegriff an');
  return false;
}

function validateMailAddress(EMail) {
  var regmail = /^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+)(\.)([a-zA-Z]{2,4})$/gi;
  if (regmail.exec(EMail)==null) return false;
  return true;
}

function validateBankData(Data) {
  var regmail = /^[0-9]{8,8}$/gi;
  if (regmail.exec(Data)==null) return false;
  return true;
}

function validateAcctData(Data) {
  var regmail = /^[0-9]+$/gi;
  if (regmail.exec(Data)==null) return false;
  return true;
}

function validatePageAsset(frmobj) {
  var ok = true;
  if(frmobj.IDObjectType.value == 2 && frmobj.IDCntObject.value == 0) ok = false;
  if(frmobj.IDObjectType.value == 1 && frmobj.IDObject.value == 0) ok = false;
  if (!ok) {
    alert (checkPageAssetMessage);
    return false;
  }
  return true;
}

function checkFormDefaultSettings(frmobj) {
  /**
   * this function checks if form elements are not set to proper values (in other words sset to specific preset values)
   * the function takes an array of listbox element names and their default value
   *
   * e.g. checkFormDefaultSettings(this,'IDImage',0,'IDType','none')
   *
   * in the example above the function returns false if
   * - the form element named 'IDImage' is set to 0
   * and the form element named 'IDType' is set to 'none'
   *
   *
   */
  if (arguments.length < 3) return false;

  var elements = new Object();
  for (i=1;i<arguments.length;i+=2) {
    elements[arguments[i]] = arguments[i+1];
  }

  var frmel;
  var ok = true;
  for (i=0;i<frmobj.elements.length;i++) {
    frmel = frmobj.elements[i];
//    if (elements[frmel.name] > '') {
      if (frmel.type == 'select-one' && frmel.options[frmel.selectedIndex].value == elements[frmel.name]) ok = false;
      if (frmel.type == 'text' && frmel.value == elements[frmel.name]) ok = false;
      if (frmel.type == 'checkbox' && frmel.value == elements[frmel.name]) ok = false;
//    }
  }
  if (!ok) {
    alert (checkFormSettingsMessage);
    return false;
  }
  return true;
}

function popupfix(id,width,height,attr,ssl) {
  var url = "/popup/"+id;
  var winid = "popup"+id.replace(/[\\\/!]/,"_");
  if (ssl > '') url = "/"+ssl+url;
  var newin = window.open(url,winid,"height="+height+",width="+width+",left=100,top=50,status=no,toolbar=no,titlebar=no,menubar=no,scrollbars=yes,"+attr,true);
  newin.focus();
}

function overlay(id,attr,ssl,defwidth, defheight) {
  var url = "/popup/"+id;
  var winid = "popup"+id.replace(/[\\\/!]/,"_");
  if (ssl > '') url = "/"+ssl+url;
  var width = 620;
  var height = 516;
  if (defwidth > 0) width = defwidth;
  if (defheight > 0) height = defheight;

  var left=-(width/2);
  var top=-(height/2);
  //window.document.scroll = 'no';

  var browser = /MSIE 7/;
  
//  alert(navigator.appVersion);
  var oldbrowser = (navigator.appVersion.match(browser)) ? false : true;
  
  if(document.getElementById("overlay").currentStyle && !document.getElementById("overlay").style.marginLeft && oldbrowser) {
//    alert(document.getElementById("overlay").style.marginLeft);  	
  	document.getElementById("overlay").style.marginLeft="50px";
  	document.getElementById("overlay").style.marginTop="50px";
  } else {
//	alert(document.getElementById("overlay").style.left);  	
  	document.getElementById("overlay").style.marginLeft=left+"px";
  	document.getElementById("overlay").style.marginTop=top+"px";
  }
  document.getElementById("overlay").innerHTML = '<iframe frameborder=\"0\" allowtransparency=\"true\" src=\"'+url+'\" width=\"'+width+'\" height=\"'+height+'\"></iframe>';
  document.getElementById("overlay").innerHTML += '<div id=\"overlay_close\"><a href=\"javascript: overlay_hide()\"><img src=\"/service/images/spacer.gif\" width=\"35\" height=\"35\" border=\"0\"></a></div>';
  document.getElementById("overlay").style.display="block";
 // Element.extend('darkwindow');
  document.getElementById('darkwindow').style.width = '110%';
  document.getElementById('darkwindow').style.display = 'inline';
 // new Effect.Opacity('darkwindow', { from: 0.0, to: 0.5, duration: 0.5 });
}


function overlay_hide(){
  //window.document.scroll = 'yes';
 // new Effect.Opacity('darkwindow', { from: 0.5, to: 0.1, duration: 0.5 });
  document.getElementById('darkwindow').style.width = '110%';
  document.getElementById("darkwindow").style.display="none";
  document.getElementById("overlay").style.display="none";
 // window.document.getElementById('body').scroll = 'auto';
 // document.getElementById('body').style.width = '100%';
}

function popupvar(id,width,height,attr) {
  var url = "/popup/"+id;
  var winid = "popup"+id.replace(/[\\\/!]/,"_");
  var newin = window.open(url,id,"height="+height+",width="+width+",left=100,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes,"+attr,true);
  newin.focus();
}


function openPopup(url,title) {
  if (title=='agb') var newin = window.open(url,title,"height=500,width=530,left=100,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes",true);
  if (title=='campaigns') var newin = window.open(url,title,"height=600,width=620,left=50,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes",true);
  if (title=='sitemap')   var newin = window.open(url,title,"height=500,width=760,left=20,top=20,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes",true);
  newin.focus();
}

function previewObject(elementid) {
  var listobj = document.getElementsByName(elementid)[0];
  listvalue = listobj.options[listobj.selectedIndex].value;
  if (elementid=='IDCustomer') var popup = window.open('preview_customer.php?id='+listvalue,'Customer','height=300,width=300');
  popup.focus();
}

function previewData(elementid,arguments) {
  if (elementid=='IDTextblock') var popup = window.open('/admin/scripts/preview_textblock.php?'+arguments,'Textblock','height=400,width=530,resizable,scrollbars=yes');
  if (elementid=='IDContentblock') var popup = window.open('/admin/scripts/preview_contentblock.php?'+arguments,'Textblock','height=600,width=530,resizable,scrollbars=yes');
  popup.focus();
}

function previewPage(pageid) {
  var popup = window.open('/admin/scripts/preview_page.php?id='+pageid,'PagePreview','height=600,width=900,resizable,scrollbars=yes');
  popup.focus();
}

function previewPost(postid) {
  var popup = window.open('/admin/scripts/preview_post.php?id='+postid,'PostPreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewFAQ(faqid) {
  var popup = window.open('/admin/scripts/preview_faq.php?id='+faqid,'FAQPreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewKB(kbid) {
  var popup = window.open('/admin/scripts/preview_kb.php?id='+kbid,'KBPreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewBlockTemplate(templateid) {
  var popup = window.open('/admin/scripts/preview_blocktemplate.php?id='+templateid,'BlockTemplatePreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewBaseTemplate(templateid) {
  var popup = window.open('/admin/scripts/preview_basetemplate.php?id='+templateid,'BaseTemplatePreview','height=600,width=900,resizable,scrollbars=yes');
  popup.focus();
}

function setTopItemArrow() {
  if (document.getElementById) {
    var obj = document.getElementById('topitem');
    obj.src='/images/arrow_right_active.png';
  }
}

var origin_overlay_image;

	function showImg(img) {
    origin_overlay_image = document.mapoverlay.src;
	  document.mapoverlay.src = '/images/maps/'+img+'.gif';
//		document.mapoverlay.style.display = 'block';
	}
	function hideImg() {
		document.mapoverlay.src = origin_overlay_image;
	}

	function selectCountry(img) {
		document.countryoverlay.src = '/images/maps/'+img+'.gif';
		document.countryoverlay.style.display = 'block';
		showContact();
	}

	function showContact() {
	  var obj = document.getElementById('showcontact');
	  obj.innerHTML = "das ist mein Text"
	  obj.style.display = 'block';
	}

  function hideContact() {
	  var obj = document.getElementById('showcontact');
	  obj.style.display = 'none';
	}

function chk_newsletter(frmobj) {
  var fail=false;
  var regmail = /^([\w-\.]{2,})\@([\w-]{2,})\.([\w-\.]{2,})$/gi;

  if (!fail && frmobj.Anrede.options[frmobj.Anrede.selectedIndex].value==0) fail=true;
  if (!fail && frmobj.LastName.value=="") fail=true;
  if (!fail && frmobj.FirstName.value=="") fail=true;
  if (!fail && frmobj.Firma.value=="") fail=true;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=true;
  if (!fail && frmobj.IDLanguage.options[frmobj.IDLanguage.selectedIndex].value==0) fail=true;
  if (!fail && frmobj.VDMA_Code.options[frmobj.VDMA_Code.selectedIndex].value==0) fail=true;

  if (fail) {
    alert(checkFormSettingsMessage);
    return false;
  }
  return true;
}


function chk_profile(frmobj) {
  var fail=false;
  var regmail = /^([\w-\.]{2,})\@([\w-]{2,})\.([\w-\.]{2,})$/gi;

  if (!fail && frmobj.IDIndustry.options[frmobj.IDIndustry.selectedIndex].value==-1) fail=true;
  if (!fail && frmobj.Name.value=="") fail=true;
  if (!fail && frmobj.Phone.value=="") fail=true;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=true;
  if (!fail && frmobj.Company.value=="") fail=true;
  if (!fail && frmobj.Address.value=="") fail=true;
  if (!fail && frmobj.ZIPCode.value=="") fail=true;
  if (!fail && frmobj.City.value=="") fail=true;

  if (fail) {
    alert(checkFormSettingsMessage);
    return false;
  }
  return true;
}


function chk_posting(frmobj) {
  var fail=0;
  if (!fail && frmobj.Message.value=="") fail=4;
  if (fail > 0) {
    alert(FailMessages[fail]);
    return false;
  }
  return true;
}

function chk_posting2(frmobj) {
  var fail=0;
  if (!fail && frmobj.Subject.value=="") fail=5;
  if (!fail && frmobj.Message.value=="") fail=4;
  if (fail > 0) {
    alert(FailMessages[fail]);
    return false;
  }
  return true;
}

function chk_newpwd(frmobj) {
  var fail=0;
  var regmail = /^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+)(\.)([a-zA-Z]{2,4})$/gi;

  if (!fail && frmobj.Username.value=="")    fail=6;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=3;
  if (fail > 0) {
    alert(FailMessages[fail]);
    return false;
  }
  return true;
}


function chk_inquiry(frmobj) {
  var fail=0;
  var regmail = /^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+)(\.)([a-zA-Z]{2,4})$/gi;

  if (!fail && frmobj.Name.value=="")    fail=1;
  if (!fail && frmobj.Company.value=="") fail=2;
  if (!fail && frmobj.Message.value=="") fail=4;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=3;

  if (fail > 0) {
    alert(FailMessages[fail]);
    return false;
  }
  return true;
}


function chk_shoporder(frmobj) {
  var fail=false;
  var regmail = /^([\w-\.]{2,})\@([\w-]{2,})\.([\w-\.]{2,})$/gi;

  if (!fail && frmobj.VDMA_Code.options[frmobj.VDMA_Code.selectedIndex].value==0) fail=true;
  if (!fail && frmobj.Country.value=="") fail=true;
  if (!fail && frmobj.LastName.value=="") fail=true;
  if (!fail && frmobj.FirstName.value=="") fail=true;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=true;
  if (!fail && frmobj.Company.value=="") fail=true;
  if (!fail && frmobj.Address.value=="") fail=true;
  if (!fail && frmobj.ZIPCode.value=="") fail=true;
  if (!fail && frmobj.City.value=="") fail=true;

  if (fail) {
    alert(checkFormSettingsMessage);
    return false;
  }
  return true;
}


function chk_aliaspwd(frmobj) {
  return false;
}

function chk_productgroup(frmobj) {
  var selopt = frmobj.IDGroup.selectedIndex;
  if (selopt < 0) {
    alert(checkFormSettingsMessage);
    return false;
  }
  return true;
}

function enableDMSearchType(radio) {
  var searchtype = radio.value;
  for (i = 1; i <= 3; i++) {
    var foo = document.getElementById('Search'+i);

//    var foo = eval('document.searchform.search'+i);
    if (searchtype == i) {
      foo.disabled = false;
	  } else {
//      foo.value = '';
      foo.disabled = true;
    }
  }
}

function chk_search(frmobj) {
  var ok = true;
  if (frmobj.srchtxt.value=="") {
    alert (checkFormSettingsMessage)
    return false;
  }
  var ok = false;
  for (i=0;i<frmobj.elements.length;i++) {
    frmel = frmobj.elements[i];
    if (frmel.type == 'checkbox' && frmel.checked == true) ok = true;
  }
  if (!ok) alert (checkFormSettingsMessage);
  return ok;
}

function openfromsitemap(foo) {
  window.opener.top.document.location.href=foo;
  self.close();
}


function closePopup(id) {
  var popup = document.getElementById(id);
  popup.style.display = 'none';

}

function toggleImg(id,imgid) {
  var goback = document.getElementById('goback');
  var gonext = document.getElementById('gonext');
  var img1 = document.getElementById(id+'_1');
  var img2 = document.getElementById(id+'_2');
  if (imgid==2) {
    img2.style.display = 'block';
    img1.style.display = 'none';
    gonext.style.display = 'none';
    goback.style.display = 'block';
  } else {
    img2.style.display = 'none';
    img1.style.display = 'block';
    gonext.style.display = 'block';
    goback.style.display = 'none';
  }
}

      function stripeTabByRow(id) {
        var evenColor = arguments[1] ? arguments[1] : "#fff";
        var oddColor = arguments[2] ? arguments[2] : "#eee";
        var table = document.getElementById(id);
        if (!table) return 0;
        var even = false
        var trs = table.getElementsByTagName('tr');
        for (var i = 0; i < trs.length; i++) {
          if (!hasClass(trs[i])) trs[i].style.backgroundColor = even ? evenColor : oddColor;
          /*
          var tds = trs[k].getElementsByTagName('td');
          for (var k = 0; k < tds.length; k++) {
            tds[k].style.backgroundColor = even ? evenColor : oddColor;
          }
          */
          even = !even;
        }
      }

      function stripeTabByClass(id) {
        var evenClass = arguments[1] ? arguments[1] : "even";
        var oddClass = arguments[2] ? arguments[2] : "odd";
        var table = document.getElementById(id);
        if (!table) return 0;
        var even = false;
        var tbodies = table.getElementsByTagName('tbody');
        for (var q = 0; q < tbodies.length; q++) {
          var even = false;
          var trs = tbodies[q].getElementsByTagName('tr');
            for (var i = 0; i < trs.length; i++) {
            if (!hasClass(trs[i])) {
              trs[i].className = even ? evenClass : oddClass;
              even = !even;
            }
          }
        }
      }

      // this function is need to work around
      // a bug in IE related to element attributes
      function hasClass(obj) {
        var result = false;
        if (obj.getAttributeNode("class") != null) {
           result = obj.getAttributeNode("class").value;
        }
        return result;
      }

      function stripe(id) {
        var even = false;
        var evenColor = arguments[1] ? arguments[1] : "#fff";
        var oddColor = arguments[2] ? arguments[2] : "#eee";
        var table = document.getElementById(id);
        if (! table) { return; }
        var trs = table.getElementsByTagName("tr");
        for (var i = 0; i < trs.length; i++) {
    	    if (!hasClass(trs[i]) && ! trs[i].style.backgroundColor) {
            var tds = trs[i].getElementsByTagName("td");
            for (var j = 0; j < tds.length; j++) {
              var mytd = tds[j];
    	        if (! hasClass(mytd) && ! mytd.style.backgroundColor) {
      		      mytd.style.backgroundColor = even ? evenColor : oddColor;
              }
            }
          }
          even =  ! even;
        }
      }


function displayCallout(id,num) {
  for(i=1;i<=num;i++) {
    var obj = document.getElementById('callout_'+i);
    obj.style.display = 'none';
    if (i==id) obj.style.display = 'block';
  }
}

function displayArea(id,num) {
  for(i=1;i<=num;i++) {
    var obj = document.getElementById('area_'+i);
    obj.style.border = '0px';
    if (i==id) obj.style.border = '2px solid #99172A';
  }
}

function saveGlobalData() {
//  var foo = Form.serialize($('INQUIRY'));
//  alert(foo);
	new Ajax.Request("inquiry_egt.html?do=saveglobals", {
								method: 'post',
								postBody: Form.serialize($('INQUIRY'))
							});
}

function mytest() {
  var obj=document.getElementById('imgxyz');
  var framer=document.getElementById('framer');
  alert(obj.id+', '+obj.offsetLeft);
  framer.style.left = obj.offsetLeft + 20;
  framer.style.top  = obj.offsetTop + 20;
  framer.style.width = "100px";
  framer.style.height = "100px";
  framer.style.border = "2px solid red";
  framer.style.position = "absolute";

  // 59,50,84,92
}


function validateSchnelltest(obj) {
  var radioGrp1 = document.getElementsByName('frage1');
  var radioGrp2 = document.getElementsByName('frage2');
  var frage1 = false;
  var frage2 = false;
  var is_checked = false;


  for (var i=0; i < radioGrp1.length; i++) { if (radioGrp1[i].checked) frage1 = true; }
  for (var i=0; i < radioGrp2.length; i++) { if (radioGrp2[i].checked) frage2 = true; }
  for (var i=10; i < obj.elements.length; i++) { if (obj.elements[i].checked) is_checked=true }

  if (!frage1 || !frage2) {
    alert('Bitte kreuzen Sie zuerst eine Antwort bei den Fragen 1 und 2 an') ;
    return false;
  }
  if (!is_checked) {
    alert('Bitte kreuzen Sie mindestens einen Punkt bei Frage 3 an') ;
    return false;
  }

  return true;
}

function validateBMI(obj) {
  var weight = obj.weight.value;
  var height = obj.height.value;
  var fail = false;

  if (weight == '' || weight <= 0 || weight > 250) fail = true;
  if (height == '' || height <= 0 || height > 230) fail = true;
  if (fail) {
    alert('Bitte geben Sie vollständige und korrekte Daten an') ;
    return false;
  }
  return true;
}

function validateEnergiebedarf(obj) {
  var radioGrp1 = document.getElementsByName('pregnancy');
  var ssw = obj.ssw.value;
  var frage1 = false;
  for (var i=0; i < radioGrp1.length; i++) {
    if (radioGrp1[i].checked) frage1 = true;
  }
  if (!frage1) {
    alert('Bitte geben Sie an, ob Sie schwanger sind und wenn ja in welcher Schwangerschaftswoche Sie sich befinden') ;
    return false;
  }
  if (radioGrp1[1].checked && !obj.ssw.value.match(/^[0-9]+$/)) {
    alert('Bitte geben Sie an, in welcher Schwangerschaftswoche Sie sich befinden.') ;
    return false;
  }
  if (obj.age.value=='' || obj.height.value=='' || obj.weight.value=='') {
    alert('Bitte vervollständigen zuerst Ihre Daten zu Alter, Gewicht und Körpergröße.');
    return false;
  }
  if (obj.age.value>'' && (obj.age.value < 15 || obj.age.value > 45)) {
    alert('Die Ermittlungs des Kalorienbedarfs richtet sich an Personen zwischen 15 und 45 Jahre.') ;
    return false;
  }

  if (obj.weight.value>'' && (obj.weight.value < 50 || obj.weight.value > 100)) {
    alert('Die Ermittlungs des Kalorienbedarfs richtet sich an Personen mit einem Körpergewicht zwischen 50 und 100 Kg.') ;
    return false;
  }

  if (obj.height.value>'' && (obj.height.value < 120 || obj.height.value > 220)) {
    alert('Die Ermittlungs des Kalorienbedarfs richtet sich an Personen mit einem Körpergröße zwischen 120 und 220 cm.') ;
    return false;
  }

  return true;
}

function validateOrder(obj) {
  var fail = 0;
  var zahlung = false;
  var radioGrp1 = document.getElementsByName('zahlung');
  var elv = false;

  for (var i=0; i < radioGrp1.length; i++) {  if (radioGrp1[i].checked) zahlung = true;  }

//  if (obj.order.checked == false) fail = 1;
//  if (!fail && (trim(obj.exemplare.value) <= 0 || trim(obj.exemplare.value) == '')) fail = 5;
  if (!fail && trim(obj.nachname.value) == '') fail = 2;
  if (!fail && trim(obj.vorname.value) == '') fail = 2;
  if (!fail && trim(obj.strasse.value) == '') fail = 2;
  if (!fail && trim(obj.plz.value) == '') fail = 2;
  if (!fail && trim(obj.ort.value) == '') fail = 2;
  if (!fail && trim(obj.land.value) == '') fail = 2;
  if (!fail && trim(obj.email.value) > '' && !validateMailAddress(obj.email.value)) fail = 3;
  if (!fail && !zahlung) fail = 9;
  if (radioGrp1[0].checked) elv = true;
  if (elv) {
    if (!fail && trim(obj.inhaber.value) == '') fail = 4;
    if (!fail && trim(obj.institut.value) == '') fail = 4;
    if (!fail && !validateAcctData(trim(obj.konto.value))) fail = 4;
    if (!fail && !validateBankData(trim(obj.blz.value))) fail = 4;
  }

  if (!fail && obj.agb.checked == false) fail = 10;

  // check the voucher
  if (obj.voucher.value != "") {
	  var my_fail = true;
	  new Ajax.Request('/programm/order.php', {
		asynchronous: false,
		method: 'post',
		parameters: 'op=check_voucher&id='+obj.voucher.value,
		onSuccess: function(r) {
			if (r.responseText == "OK") {
				my_fail = false;
			}
		}
	  });
	  if (my_fail) {
		fail = 11;
	  }
	}
  
  if (fail > 0) {
    switch(fail) {
      case 1:  alert('Bitte bestätigen Sie zuerst, dass den planBaby-Ratgeber bestellen möchten.'); break;
      case 2:  alert('Bitte geben Sie Ihre vollständigen Adressdaten an.'); break;
      case 3:  alert('Bitte geben Sie eine gültige EMail-Adresse an.'); break;
      case 4:  alert('Bitte geben Sie Ihre vollständigen Bankdaten an.'); break;
      case 5:  alert('Bitte bestimmen Sie, wieviele Exemplare Sie bestellen möchten.'); break;
      case 9:  alert('Bitte bestimmen Sie, wie Sie den Ratgeber bezahlen möchten.'); break;
      case 10: alert('Bitte bestätigen Sie dass Sie die AGB gelesen haben und akzeptieren.'); break;
	  case 11: alert('Der von Ihnen eingegebene Gutscheincode ist nicht gültig!'); break;
    }
    return false;
  }
  return true;
}

function validateAerzteRequest(obj) {
  var fail = 0;

  if (obj.order.checked == false) fail = 1;
  if (!fail && trim(obj.nachname.value) == '') fail = 2;
  if (!fail && trim(obj.vorname.value) == '') fail = 2;
  if (!fail && trim(obj.strasse.value) == '') fail = 2;
  if (!fail && trim(obj.plz.value) == '') fail = 2;
  if (!fail && trim(obj.ort.value) == '') fail = 2;
  if (!fail && trim(obj.email.value) > '' && !validateMailAddress(obj.email.value)) fail = 3;

//  if (!fail && obj.agb.checked == false) fail = 10;

  if (fail > 0) {
    switch(fail) {
      case 1:  alert('Bitte bestätigen Sie zuerst, dass Sie weitere Informationsmaterial erhalten möchten.'); break;
      case 2:  alert('Bitte geben Sie Ihre vollständigen Adressdaten an.'); break;
      case 3:  alert('Bitte geben Sie eine gültige EMail-Adresse an.'); break;
      case 10: alert('Bitte bestätigen Sie dass Sie die AGB gelesen haben und akzeptieren.'); break;
    }
    return false;
  }
  return true;
}

function validateNewPassword(frmobj) {
  var fail=false;
  var regmail = /^([\w-\.]{2,})\@([\w-]{2,})\.([\w-\.]{2,})$/gi;
  if (!fail && frmobj.IDArzt.value=="") fail=true;
  if (!fail && frmobj.IDPatient.value=="") fail=true;
  if (!fail && regmail.exec(frmobj.EMail.value)==null) fail=true;
  if (fail) {
    alert('Bitte vervollständigen Sie zuerst Ihre Angaben und achten Sie auf eine korrekte Email-Adresse.');
    return false;
  }
  return true;
}



function validateQuestion(obj) {
  var fail = 0;
  if (!fail && trim(obj.nachname.value) == '') fail = 1;
  if (!fail && trim(obj.vorname.value) == '') fail = 1;
  if (!fail && trim(obj.alter.value) == '') fail = 3;
  if (!fail && trim(obj.email.value) == '') fail = 4;
  if (!fail && !validateMailAddress(obj.email.value)) fail = 4;
  if (fail > 0) {
    switch(fail) {
      case 1:  alert('Bitte geben Sie Ihren vollständigen Namen an.'); break;
      case 2:  alert('Bitte geben Sie Ihre vollständigen Adressdaten an.'); break;
      case 3:  alert('Bitte geben Sie Ihr Alter an.'); break;
      case 4:  alert('Bitte geben Sie eine gültige EMail-Adresse an.'); break;
    }
    return false;
  }
  return true;
}

function toggleCheckboxForderungen(obj) {
  var myfrm = document.forms[0];
  var status = obj.checked;
  for (var i=0; i <myfrm.elements.length; i++ ) {
    if (myfrm.elements[i].type == 'checkbox') myfrm.elements[i].checked = status;
  }
}


function toggleFAQTopic(id) {

  var topid = 'tt_'+id;
  var elid = 't_'+id;
  var foo = document.getElementsByClassName('faqsubtopics');
  for (var i=0; i <foo.length; i++ ) {
    if (foo[i].id != elid) Element.hide(foo[i].id);
    $('t'+foo[i].id).style.color = "#000000";
  }
  Element.toggle(elid);
  if ($(elid).style.display == 'none') {;
  	$(topid).style.color = "#000000";
  } else {
  	$(topid).style.color = "#FF7600";
  }
 
}

function toggleFAQSubtopic(id) {
  var stopid = 'sst_'+id;
  var elid = 'st_'+id;
  var foo = document.getElementsByClassName('faqitems');
  for (var i=0; i <foo.length; i++ ) {
    if (foo[i].id != elid) Element.hide(foo[i].id);
  	$('s'+foo[i].id).style.fontWeight = "normal";
  }
  Element.toggle(elid);
  if ($(elid).style.display == 'none') {;
  	$(stopid).style.fontWeight = "normal";
  } else {
  	$(stopid).style.fontWeight = "bold";
  }
}


// =============================================================
// AJAX
// =============================================================

var activeFAQ = 0;

function showFAQ(url,id) {
  if (activeFAQ > 0) Element.hide(eval('faq_'+activeFAQ));
  if (id != activeFAQ) {
    activeFAQ = id;
    var elid = 'faq_'+id;
    new Ajax.Request(url, {
       onSuccess: function( r ) {
         var res = r.responseText;
         $(elid).innerHTML = res;
         Element.show(eval(elid));
       }
    });
  }
}

function updateTopicList(url) {
  var id = $('IDTopic');
  url = url + '&tid='+id.value;
  new Ajax.Request(url, {
     onSuccess: function( r ) {
       var res = r.responseText;
       var subtopics = res.split(';');
       // hier beginnt dann der Teil der die Listbox neu befüllt
       // jeder Subtopic ist in der Form xxx_thema aufgebaut
       // xxx = ID des Subtopics
       // thema = Bezeichnung des Subtopic
       $('IDSubtopic').options.length=0;
       $('IDSubtopic').options[0] = new Option('Ohne Unterthema',0);
       for(i=0;i<subtopics.length;i++) {
         var topid = subtopics[i].split('_');
         $('IDSubtopic').options[i+1] = new Option(topid[1],topid[0]);
       }
     }
  });
}

function anti_spam_nachricht(maildom,mailnam,mailsvr,text)
{
  if(text=="")
    document.write('<a href="mailto:'+mailnam+'@'+mailsvr+'.'+maildom+'">'+mailnam+'@'+mailsvr+'.'+maildom+'</a>');
  else
    document.write('<a href="mailto:'+mailnam+'@'+mailsvr+'.'+maildom+'">'+text+'</a>');
}


function calcAlkoholTest(obj,row,rows,menge) {
  var value = 0;
  var row_anzahl_summe = 0;
  var row_menge_summe = 0;
  var anzahl_total = 0;
  var mengen_total = 0;
  for( var i=1;i<8;i++) {
    value = $('item_'+row+'_'+i).value;
    if (parseInt(value) > 0) row_anzahl_summe += parseInt(value);
  }
  row_menge_summe = row_anzahl_summe * menge;
  $('anzahl_'+row).innerHTML = row_anzahl_summe;
  $('alkohol_'+row).innerHTML = row_menge_summe;
  for (i=1;i<=rows;i++) {
    anzahl_total += parseInt($('anzahl_'+i).innerHTML);
    mengen_total += parseInt($('alkohol_'+i).innerHTML);
  }
  $('anzahl_summe').innerHTML = anzahl_total;
  $('alkohol_summe').innerHTML = mengen_total;
}