
// define texts for javascript alerts
var msg_product_form = 'Bitte w\u00E4hlen Sie ein Produkt. Tragen Sie dazu die\nAnzahl bei der gew\u00FCnschten Packungsgr\u00F6sse ein';
var msg_forgot_password = 'Geben Sie einen g\u00FCltigen Benutzernamen ein!';
form_msg_pre = 'Bitte f\u00FCllen Sie die folgenden Felder korrekt aus:\n\n';


// set eventhandlers to all input fields
function init_forms()
  {
  if(!document.forms) return;

  var form, obj;
  var get_data = read_querystring();

  for(var f=0; f<document.forms.length; f++)
    {
    form = document.forms[f];
    for(var i=0; i<form.elements.length; i++)
      {
      obj = form.elements[i];
      if(get_data && get_data[obj.name] && window.set_value)
        set_value(obj, get_data[obj.name]);

      if(!document.getElementById || bw.linux || obj.type=='hidden' || obj.type=='radio' || obj.type=='checkbox') continue;
      if(obj.className=='required') obj.isrequired = true;

      obj.old_onfocus = obj.onfocus;
      obj.onfocus = function(e)
        {
        focus_input(this);
        
        if(this.old_onfocus)
        this.old_onfocus(e);
        }

      obj.onblur = blur_input;
      }

    // check if loginform and focus the first field
    if(form.name=='loginform')
      {
      if(form.elements[2] && !form.elements[2].value)
        form.elements[2].focus();
      else if(form.elements[4] && form.elements[4].type=='password')
        form.elements[4].focus();
      }
    }
  }

// onfocus event handling function
function focus_input(id)
  {
  if(!document.getElementById) return;
  id.className = 'highlight';
  }

// onblur event handling function
function blur_input(e)
  {
  if(!document.getElementById) return;
  this.className = this.isrequired ? 'required' : 'cool';
  return true;
  }

// check if a least one product item field has a number entered
function check_product_form(form, send)
  {
  var ok_count = 0;
  var first_field = null;
  var p_form = eval(form);
  var send_flag = (send!=null) ? send : true;

  for(var i=0; i<p_form.elements.length; i++)
    {
    obj = p_form.elements[i];
    if(obj.type!='text') continue;
    if(obj.value && !isNaN(obj.value) && parseInt(obj.value)>0) ok_count++;
    if(!first_field) first_field = obj;
    }

  if(ok_count==0)
    {
    alert(msg_product_form);
    if(first_field!=null) first_field.focus();
    if(!send_flag) return false;
    }
  else
    {
    if(send_flag) p_form.submit();
    else return true;
    }
  }

// set the action of a form then check and submit it
function submit_form(form, action, send)
  {
  if(action && form)
    form.action = action;

  return check_form(form, '', send);
  }

// go to the forgot password page and take the username
function new_password(form, action)
  {
  if(!form || !form.elements['uname']) return;

  var mail = form.elements['uname'].value;
  var reg = /^[^\s\n]+\@[a-z0-9\-\.]+\.[a-z]{2,4}$/i;
  if(!reg.test(mail))
    alert(msg_forgot_password);
  else
    {
    var delm = action.indexOf('?')>0 ? '&' : '?';
    window.location.href = action+delm+'uname='+mail;
    }
  }
    
// count issues of subproduct in abo-shop  
function count_issues(product_id, allowed_issues)
  {
  var num_checked = 0;
  
  form = document.forms.issues;
  for(var i=0; i<form.elements.length; i++)
    {
    var name = form.elements[i].name;
    var pos = name.indexOf('_issue_for_pid_');
    if(pos!=-1)
      {
      var a_elements = name.split('_');
                      
      if(a_elements[4]==product_id && form.elements[i].checked)
        num_checked++;
      }
    }
    
  for(var c=0; c<form.elements.length; c++)
    {
    var name = form.elements[c].name;
    var pos = name.indexOf('_issue_for_pid_');
    
    if(pos!=-1)
      {
      var a_elements = name.split('_');
                      
      if(a_elements[4]==product_id && !form.elements[c].checked)
        {
        if(num_checked>=allowed_issues)
          form.elements[c].disabled = true;
        else
          form.elements[c].disabled = false;
        } 
      }
    }
  }
  
  
function check_issues_form(allowed_issues)
  {
  var num_checked = 0;
  
  form = document.forms.issues;
  for(var i=0; i<form.elements.length; i++)
    {
    var name = form.elements[i].name;
    var pos = name.indexOf('_issue_for_pid_');
    if(pos!=-1)
      {
      if(form.elements[i].checked)
        num_checked++;
      }
    }
    
  if(num_checked==allowed_issues)
    document.forms.issues.submit();
  else
    alert('Bitte wählen Sie insgesamt '+allowed_issues+' Ausgaben aus.');
  }
  

