
// Feld für weitere Product-Eigenschaft aufbauen (Request)
var choice = new Object()
function callNextProps(prod_id,prop,that){
  for(i=0;i<that.options.length;i++){
    if (that.options[i].selected == true){
      var wert = that.options[i].value;
      break;
    }
  }
  choice[prop.substring(2)] = wert;
  
  auswahl = '['
  for (p in choice){
    auswahl += '["'+p+'",'
    auswahl += '"'+choice[p]+'"],'
  }
  auswahl = auswahl.slice(0,auswahl.length-1)
  auswahl += ']'
  // alert(auswahl.length)
  req_obj_vers = getHTTPReq();
  req_path = 'shop_scripts/getNextProp?prod_id='+prod_id+'&choice='+auswahl+'&sel_elem='+that.name
  req_obj_vers.open('GET',req_path,true);
  req_obj_vers.onreadystatechange = writeVariField;
  req_obj_vers.send(null)
}


// Feld für weitere Product-Eigenschaft aufbauen (Response-Verarbeitung)
function writeVariField() {
  if (req_obj_vers.readyState == 4){
    resp = eval("("+req_obj_vers.responseText+")");
    for(i=0;i<resp[2].length;i++){
      html = '<select class="auswahl" name="'+resp[2][i].substring(9)+'"></select>';
      sp_elem = document.getElementById(resp[2][i]);
      sp_elem.innerHTML = html
      //alert(sp_elem)
    }
    elem = document.getElementById(resp[0]);
    elem.innerHTML = resp[1];
  }
}

//Mengenberechnung
function calc_pos(form,preis) {

  anz = parseFloat(form.menge.value);
  preis = parseFloat(preis)
  summe = anz*preis
  summe = Math.round(summe * 10000) / 10000
  summe = summe.toString()
  summe += (summe.indexOf('.') == -1)? '.00' : '0';
  form.summe.value = summe.substring(0, summe.indexOf('.') + 3);
}

function validateCartAdd(prod_id,form){
  req_obj = getHTTPReq();
  req_path = 'shop_scripts/getVariants?prod_id='+prod_id
  req_obj.open('GET',req_path,false);
  req_obj.send(null)
  variants = eval("("+req_obj.responseText+")");
  err = 0
  felder = '';
  
  if(form.menge.value=='0'){
    felder += 'Menge\n'
    err++
  }
  
  for(v in variants){
    elem_name = variants[v][0];
    if(!form[elem_name].value){
      felder += variants[v][1]+'\n'
      err++
    }
  }
  if(err){
    text= 'Bitte treffen Sie eine Auswahl für folgende Felder:\n\n'
    text += felder
    alert(text)
    return false;
  }else{
    return true;
  }
}

function validateCartForm(form){
  var fields = new Object()
  fields['n_name'] = 'Nachname';
  fields['v_name'] = 'Vorname';
  fields['strasse'] = 'Straße';
  fields['plz'] = 'PLZ';
  fields['ort'] = 'Ort';
  
  var error = false;
  var agb = false;
  var f_namen = ''
  for(prop in fields){
    if(form[prop].value==''){
      f_namen += fields[prop]+'\n'
      error = true;
    }
  }
  
  var pattern = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/i
  var test = pattern.test(form['email'].value)
  if(!test) {
    f_namen += 'Email\n'
    error = true;
  }
  
  var plz_pattern = /^[0-9]{5}$/i
  var plz_test = plz_pattern.test(form['plz'].value)
  if(!plz_test) {
    f_namen += 'PLZ\n'
    error = true;
  }
  
  if(!form['agb'].checked){
    agb = true;
  }
  
  
  if(error && !agb){
    text = 'Bitte machen sie korrekte Angaben in folgenden Feldern:\n\n'
    text += f_namen
    text += '\nIhre Bestellung kann sonst nicht bearbeitet werden.'
    alert(text)
    return false;
  }else if(error && agb){
    text = 'Bitte machen sie korrekte Angaben in folgenden Feldern:\n\n'
    text += f_namen
    text += '\nAkzeptieren Sie auch die allgemeinen Geschäftsbedingungen.\n'
    text += '\nIhre Bestellung kann sonst nicht bearbeitet werden.'
    alert(text)
    return false;
  }else if(!error && agb){
    text = 'Akzeptieren Sie die allgemeinen Geschäftsbedingungen.'
    text += '\nIhre Bestellung kann sonst nicht bearbeitet werden.'
    alert(text)
    return false;
  }else{
    return true;
  }

}