if($j == undefined)
  var $j = jQuery.noConflict();

function toggleDeliveryAddress(checkbox){
  if(checkbox.checked){
    $j('#deliveryaddress').css('display','block');
  }else{
    $j('#deliveryaddress').css('display','none');
  }
}

function escapeIdForJquery(id)
{

  //javascript:escapeIdForJquery();
  var regex = /([.:\[\]])/gi;
  //alert(id.search(regex));
  //alert(id.replace(regex,'\\$1'));
  return id.replace(regex,'\\$1');
}

function addErrorHighlight(id)
{
  var escapedId = escapeIdForJquery(id);
  var elem = $j('#'+escapedId);  
  elem.addClass('formerror');
  if(elem.attr('type') == 'checkbox')
  {
    //auch das mitm label machen
    $j('label[for='+escapedId+']').addClass('formerror');
  }
}

function removeAllErrorHighlights()
{
  $j('.formerror').removeClass('formerror');
}

function validateOrderField(field,settings)
{
  if(!settings.req)
    return true;

  //var val = field.value;

  var mailRegex = /^[a-z0-9_.-]+@[a-z0-9-]+\.[a-z]+$/i;
  switch(settings.type)
  {
    case 'int':
      var val = $j.trim(field.value);
      return (!isNaN(val) && (val != ''));
    case 'check':
      return field.checked;
    case 'mail':
      //regexp
      var val = $j.trim(field.value);
      return (val.search(mailRegex) != -1);
    default://case 'text':
      var val = $j.trim(field.value);
      return (val != '');
  }
}

function validateOrderFormPart(prefix)
{

  var fields = new Array(
    {field:"last_name", type:'text',  req:true},
    {field:"first_name",type:'text',  req:true},
    //{field:"name",      type:'text',  req:false},//das ist "firma"
    {field:"address",   type:'text',  req:true},
    {field:"zip",       type:'int',   req:true},
    {field:"city",      type:'text',  req:true},
    {field:"email",     type:'mail',  req:true},
    {field:"agb",       type:'check', req:true}
  );
  var errors = new Array();
  var hasError = false;
  for(var i=0;i<fields.length;i++)
  {
    var entry = fields[i];
    var id = prefix+'['+entry.field+']';
    var field = document.getElementById(id);//$j('#'+id);//FU!!!! dummes jquery!!!
    if(!validateOrderField(field,entry))
    {
      hasError = true;
      //alert(id);
      addErrorHighlight(id);
      errors.push(id);
    }
  }

  return !hasError;
}

function validateOrderForm()
{
  removeAllErrorHighlights();
  var okay = true;
  okay = validateOrderFormPart('recs[personinfo]');

  if($j('#lieferaddresse:checked').val() != undefined)
  {

    if(!validateOrderFormPart('recs[delivery]'))
      okay = false;
  }




  return okay;
  /*
  recs[personinfo][last_name]
  recs[personinfo][first_name]
  recs[personinfo][name]
  recs[personinfo][address]
  recs[personinfo][zip]
  recs[personinfo][city]
  recs[personinfo][email]
  */
}

function submitOrderForm()
{
  if(!validateOrderForm())
    alert('Bitte korrigieren Sie ihre Eingaben!');
  else
  {
    //alert('ja, würde nun gehen');
    submitForm('registrationForm','products_payment');
  }
}

$j(document).ready(function()
{
  if(!fff){
  	$j('#orderRecord_email_notify').before('<div style="color:#f00; margin: 1em 0;">Diese Bestellung ist bereits abgeschlossen. Deshalb können Sie keine Benachrichtigung über diesen abgeschlossenen Bestellvorgang erhalten!</div>');
  }
	
  if($j('#lieferaddresse:checked').val() == undefined)
  {
    //form resetten
    $j('form#registrationForm table#deliveryaddress input[type=text]').val('');
  }
  else
  {
    $j('#deliveryaddress').css('display','block');
  }
});
