$(function() {
  // handle newsletter submition externaly
  $('a.newsletter').click(function () {
    window.open(this.href, 'newsletter', 'height=680,width=910');
    return false;
  });

  /**
   * open linkto products in a new browser window
   * and send an event to the ajaxEvent listener
   */
  $('a[rel=linkto]').click(function () {
    $.post('ajaxEvents.php', {
      action      : 'post',
      namespace   : 'cart',
      event       : 'add',
      product_id  : this.rev,
      product_url : escape(window.location.href)
    });
    window.open(this.href);
    return false;
  });

  /**
   * handle form submitions from links marked with rel="submit"
   */
  $('form a[rel=submit]').click(function () {
    var parents = $(this).parents();
    for (i=0, max=parents.length; i<max; i++)
    {
      if ($(parents[i]).get(0).tagName == 'FORM')
      {
        $(parents[i]).submit();
        break;
      }
    }
    return false;
  });

  /**
   * handle tip-a-friend submitions.
   */
  $("#tip-a-friend form").submit(function() {

    var to_name = $('#tip-a-friend form #taf_to_name').val();
    var to_email = $('#tip-a-friend form #taf_to_email').val();

    var from_name = $('#tip-a-friend form #taf_from_name').val();
    var from_email = $('#tip-a-friend form #taf_from_email').val();

    var product_id = $('#tip-a-friend form #taf_products_id').val()

    var mailFilter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i

    var error = '';
    if (!mailFilter.test(to_email))
    {
      error += '<li>- Den indtastede modtager e-mailadresse er ikke gyldig</li>';
      $('#tip-a-friend form #taf_to_email').val('');
    }
    if (to_name == '')
    {
      error += '<li>- Du har ikke indtastet et navn på  modtageren.</li>';
    }
    if (!mailFilter.test(from_email))
    {
      error += '<li>- Din e-mailadresse er ikke gyldig</li>';
      $('#tip-a-friend form #taf_from_email').val('');
    }
    if (from_name == '')
    {
      error += '<li>- Du har ikke indtastet dit navn.</li>';
    }

    if (error != '')
    {
      $("#tip-a-friend div.boxbody").prepend('<ul class="error">' + error + '</ul>');
      return false;
    }

    var params = {
      action     : 'pre',
      event      : 'add',
      namespace  : 'tell-a-friend',
      product_id : product_id,
      to_name    : to_name,
      to_email   : to_email,
      from_name  : from_name,
      from_email : from_email
    };
    $.post('ajaxEvents.php', params, function(name) {
      if (name != '' )
      {
        $("#tip-a-friend div.boxbody").prepend('<p>Din ven '+name+' er nu notificeret om produktet.</p>');
      }
    });

    // reset form
    $('#tip-a-friend form #taf_to_name').val('');
    $('#tip-a-friend form #taf_to_email').val('');
    $('#tip-a-friend form #taf_from_name').val('');
    $('#tip-a-friend form #taf_from_email').val('');

    return false;
  });

  var params = {
    loadingImage : '/templates/just-business/assets/facebox/loading.gif',
    closeImage : '/templates/just-business/assets/facebox/closelabel.gif'
  };
  $('a[rel*=facebox]').facebox(params);
});

function buyProduct(productId, quantityId)
{
  document.location.href = '/?action=buy_now&products_id='+productId+'&qty='+$('#quantity-num-'+quantityId).val();
}

function validateAndBuy(formId)
{
   $('table.info tr.error').remove();

  var error = '';
  if ($('#'+formId+' input#name').val() == '') {
    error += '<li>&bull; Navn skal udfyldes</li>';
  }
  if ($('#'+formId+' input#address').val() == '') {
    error += '<li>&bull; Adresse skal udfyldes</li>';
  }
  if ($('#'+formId+' input#zipncity').val() == '') {
    error += '<li>&bull; Postnummer og by skal udfyldes</li>';
  }
  if ($('#'+formId+' input#phone').val() == '') {
    error += '<li>&bull; Telefonnummer skal udfyldes</li>';
  }
  if ($('#'+formId+' input#e-mail').val() == '') {
    error += '<li>&bull; E-mail skal udfyldes</li>';
  }

  if (error != '')
  {
    $('table.info').prepend('<tr class="error"><td colspan="2">Følgende felter er ikke udfyldt korrekt:<ul class="error">'+error+'</ul></td></tr>');
    document.location.href = document.location.href + '#ups';
    return false;
  }

  $('#'+formId).submit();
}


function RemoveFormatString(TargetElement, FormatString) {
  if (TargetElement.value == FormatString) {
    TargetElement.value = "";
  }

  TargetElement.select();
}
