function showPopUp(element){
  //if(!document.all) document.body.setStyle({overflow:'hidden'});
  center(element);
  return false;
}


function clearMainIndicator()
{
  try{
    document.body.style.cursor = 'auto';
    $('spinner').hide();
  }catch(e){
    // don't do anything...
  }
}

function showIndicator(paramMessage)
{
  try {
    document.body.style.cursor = 'wait';
    var spinner = $('spinner')
    
    /*
    var width = typeof document.body.clientWidth != undefined ? document.body.clientWidth : window.innerWidth
    var height  = typeof document.body.clientHeight != undefined ? document.body.clientHeight : window.innerHeight

    //if the spinner gets bigger, we should subtract half of its size too.
    spinner.setStyle({ left: (width/2)+'px', top: (height/2)+'px', position: 'absolute', zIndex: 9999 });
    */
    
    center(spinner);
    spinner.show();
  }
  catch(e) {
    // don't do anything...
  }
}

function showMessage(paramMessage, paramWithCloseButton)
{
  var htmlText;
  var closeButton = '';
  if (paramWithCloseButton) {
    closeButton = '<br /><br /><br /><input type="button" value="Schliessen" class="button" onclick="closePopupZone(\'divMsgMain\'); return false;" />';
  }
  htmlText = paramMessage+closeButton;
  $('divMsgMain').innerHTML = '<div style="margin:30px;">'+htmlText+'</div>';
  Element.hide('divMsgMain');
  center('divMsgMain', 'nodisplay');
  new Effect.Appear('divMsgMain', {duration:.6});
  if (!paramWithCloseButton) {
    //window.setTimeout('new Effect.Puff(\'divMsgMain\', {duration:1})',1500);
    window.setTimeout('new Effect.Fade(\'divMsgMain\', {duration:1})',1500);
    showIndicator();
  }
}

function validateEmail(email, err_holder)
{
  /* if($(email).value.trim().match(/^[0-9]*[a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w\.]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/i)) { */
  if($(email).value.trim().match(/^[0-9a-zA-Z]*([-.+\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w\.]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/i)) {
    $(err_holder).innerHTML = '';
    return true;
  }
  else {
    $(err_holder).innerHTML = 'Bitte geben Sie hier eine g&uuml;ltige Mail-Adresse an.';
    $(err_holder).className= 'formfehler errorMsgWidth';
    $(email).className='input7 fehlerInput';
    $(email).focus();
    return false;
  }
}

function validateBday()
{
  ret = true;
  $('error_for_bday').innerHTML = '';
  $('bday_day').className  ='select4';
  $('bday_month').className='select4';
  $('bday_year').className ='select4';

  if ($('bday_day').value || $('bday_month').value || $('bday_year').value){
    if (!$('bday_day').value || !$('bday_month').value || !$('bday_year').value){
      $('error_for_bday').innerHTML = 'Bitte geben Sie Ihren vollst&auml;ndigen Geburtstag an.';
      $('error_for_bday').className= 'formfehler errorMsgWidth';
      if (!$('bday_day').value) {
        $('bday_day').className='select4 fehlerInput';
      }
      if (!$('bday_month').value) {
        $('bday_month').className='select4 fehlerInput';
      }
      if (!$('bday_year').value) {
        $('bday_year').className='select4 fehlerInput';
      }
      ret = false;
    }
  }
  return ret;
}


function validateRequired(fieldName, message)
{
  if(!message) {
    message = "Pflichtangabe"
  }

  if ( $(fieldName).value ) {
    $('error_for_'+fieldName).innerHTML = '';
    $('error_for_'+fieldName).className= 'hideitem';
    $(fieldName).className='input7';
    return true;
  }
  else {
    $('error_for_'+fieldName).innerHTML = message;
    $('error_for_'+fieldName).className= 'formfehler errorMsgWidth';
    $(fieldName).className='input7 fehlerInput';
    return false;
  }
}

function validatePass(passField, matchPassField, isRequired)
{
  var ret  = true;

  $('error_for_'+passField).innerHTML = '';
  if (isRequired==true && $(passField).value.length<1) {
    $('error_for_'+passField).innerHTML = 'Bitte geben Sie ein Passwort mit mindestens 5 Zeichen ein.';
    ret = false;
  }
  else if ($(passField).value.length<5 && $(passField).value.length>0){
    $('error_for_'+passField).innerHTML = 'Bitte geben Sie ein Passwort mit mindestens 5 Zeichen ein.';
    ret = false;
  }
  else if ($(passField).value.length>30){
    $('error_for_'+passField).innerHTML = 'Bitte geben Sie ein Passwort mit maximal 30 Zeichen ein.';
    ret = false;
  }
  else if ($(matchPassField).value.length>0) {
    if ($(passField).value != $(matchPassField).value) {
      $('error_for_'+passField).innerHTML = 'Passw&ouml;rter sind nicht gleich.';
      $('error_for_'+passField).className= 'formfehler errorMsgWidth';
      $(passField).className='input7 fehlerInput';
      ret = false;
    }
    else {
      $('error_for_'+matchPassField).className= 'hideitem';
      $(matchPassField).className='input7';
    }
  }

  if (ret==true) {
    $('error_for_'+passField).className= 'hideitem';
    $(passField).className='input7';
    return true;
  }
  else {
    $('error_for_'+passField).show();
    $('error_for_'+passField).className= 'formfehler errorMsgWidth';
    $(passField).className='input7 fehlerInput';
    return false;
  }

}

function show_AGB(file)
{
  var flags = '';
  window.open(file, '_blank', flags);
}

function loginpass2md5(prefix, prefix_use_js, key) {
  if (prefix_use_js == '') {
    // used by change password
    $('HMAC_use_js').value = 'true';
  }
  else {
    $(prefix_use_js+'_HMAC_use_js').value = 'true';
  }

  if (prefix == 'n') {
    if ($('npassword').value) {
      $('npass_md5').value = hex_md5(hex_md5($('npassword').value)+$('pw_salt').value);
      $('npassword').value = $('npass_md5').value.substring(0,$('npassword').value.length);
    }
    if ($('npasswordconf').value) {
      $('npassconf_md5').value = hex_md5(hex_md5($('npasswordconf').value)+$('pw_salt').value);
      $('npasswordconf').value = $('npassconf_md5').value.substring(0,$('npasswordconf').value.length);
    }
    if (prefix_use_js == '') {
      // used by change password
      if ($('noldpassword').value) {
        $('noldpass_md5').value = hex_md5(hex_md5($('noldpassword').value)+$('pw_salt').value);
        $('noldpassword').value = $('noldpass_md5').value.substring(0,$('noldpassword').value.length);
      }
    }
  }
  else {
    if ($(prefix+'password').value){
      var e_md5 = hex_md5(hex_md5($(prefix+'password').value)+$('pw_salt').value);
      $(prefix+'pass_md5').value = hex_md5(e_md5+key);
      $(prefix+'password').value = e_md5.substring(0,$(prefix+'password').value.length);
    }
  }
}

function pass2md5(pass_fld, pass_fld_md5, use_js_fld, key) {
  if ($(pass_fld).value){
    var e_md5 = hex_md5(hex_md5($(pass_fld).value)+$('pw_salt').value);
    $(pass_fld_md5).value = hex_md5(e_md5+key);
    $(pass_fld).value = e_md5.substring(0,$(pass_fld).value.length);
    $(use_js_fld).value = 'true';
  }
}

function closePopupZone(popup_name)
{
  $(popup_name).hide();
  //Effect.Fade(popup_name, {duration:.5});
  clearMainIndicator();
}

function showAlternatives(request, _names, _caller)
{

  if(_names) {
    var newSelect = $('layerUsernameUsed').innerHTML;
    var SelectLines = "";
    var prefix = newSelect.substr(0, newSelect.indexOf("<!--START") -1);
    if(prefix.length > 0) {                                                     // Determine if formatting was used
      var suffix = newSelect.substr(newSelect.indexOf("END-->") + 6);

      // Extract Formatting String
      var format_string = newSelect.match(/<!--{(.*)}-->/i, newSelect)[1];


      for(var i=0; i < _names.length; i++) {                                     // Create line entry for each username suggestion
        SelectLines += format_string.replace(/%name%/gi,_names[i]).replace(/%count%/gi, i);
      }

      newSelect = prefix + "<!--START--><!--{" + format_string +"}-->" + SelectLines + "<!--END-->"+ suffix;

      $('layerUsernameUsed').innerHTML = newSelect;
      $('nusername').className = 'input7 fehlerInput';

    }
    if (_caller=='fullReg') {
      _anchor = 'fusernameLink';
    }
    else {
      _anchor = 'usernameLink';
    }
    overlay(_anchor, 'layerUsernameUsed', 'bottom', 'xlinkUsername', 'xlinkUsername', 'buttonIsLeft');
    return false;
  }
  else {
    $('nusername').className = 'input7';
    overlaycloseOnChange('usernameLink', 'layerUsernameUsed', ' ', 'xlinkUsername', 'layerUsernameUsed', 'bottom', 'xlinkUsername', 'xlinkUsername', 'buttonIsLeft');
  }
}