$(document).ready(dialogForms);


function dialogForms() {
  $('a.dialog-form').click(function() {
    var a = $(this);
    var b = escape(window.location);
    var c = escape(document.title);
    $.get(a.attr('href'), {'ref1':b, 'ref2':c}, function(resp){
      var dialog = $('<div>').attr('id','formDialog').html(resp);
      $('body').append(dialog);
      dialog.find(':submit').hide();
      dialog.dialog({
        title: a.text() ? a.text() : ( a.attr('title') ? a.attr('title') : '' ),
        modal: true,
        buttons: {
          'Send': function() {
//            submitFormWithAjax($(this).find('form'));
          form = $(this).find('form');
          form = $(form);

          if(validateForm(form)) {
            $.ajax({
              url: form.attr('action'),
              data: form.serialize(),
              type: (form.attr('method')), 
              dataType: 'html',
              success: function( data, textStatus ) { 
                dialog.html(data);
//                var formtest = $('<div>').attr('id','formtestlog').html(data);
                var stilAForm=dialog.find('input:text');
                var ipt = ( stilAForm.length + 0 );
                if( !ipt ) {
                      dialog.dialog("option", "buttons", 
                        { "Close": function() {
                            $.ajax({
                              url: form.attr('action'),
                              data: { 'cancelsession' : 1},
                              type: (form.attr('method')), 
                              dataType: 'html',
                              success: function( data ) { $(this).dialog("close"); }
                            });          
                            $(this).dialog("close"); 
                          }
                      }); 
                  }
              }
            });
          }
          return false;

          },
          'Cancel': function() { 
          form = $(this).find('form');
          form = $(form);
          $.ajax({
            url: form.attr('action'),
            data: { 'cancelsession' : 1},
            type: (form.attr('method')), 
            dataType: 'html',
            success: function( data ) { $(this).dialog("close"); }
          });          
          $(this).dialog('close');
          }
        },
       // close: function() {$(this).remove();},
        width: 'auto'
      });
    }, 'html');
    return false;
  });
}


function validateForm(theForm) {

//  var fields = theForm.find('input');
//  for(field in fields) {//   alert(field.name);  }
  var name = theForm.find('input[name=fullname]');
  if (name && !name.val())
  {
    alert("Please enter your full name.");
    name.focus();
    return (false);
  }
  

  var phone = theForm.find('input[name=phone]');

  if ( (phone.name !== undefined) && !phone.val())
  {
    alert("Please enter your area code and phone number.");
    phone.focus();
    return (false);
  }
  
  var email = theForm.find('input[name=email]');
  if (email.name !== undefined) 
  {
    if ( (email.name !== undefined) && !email.val())
    {
      alert("Please enter your email address.");
      email.focus();
      return false;
    } else if (email && email.val())
    {
      if(document.layers || document.getElementById || document.all) {
        var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if(filter.test(email.val()) == false) {
          alert("Please enter a valid email address.");
          email.focus();
          return false;
        }
      }
    }
  }
  
  var email1 = theForm.find('input[name=email1]');

  if (email1.name !== undefined) {
    if (email1 && !email1.val())
    {
      alert("Please enter your email1 address.");
      email1.focus();
      return false;
    } else if (email1 && email1.val())
    {
      if(document.layers || document.getElementById || document.all) {
        var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if(filter.test(email1.val()) == false) {
          alert("Please enter a valid email address.");
          email1.focus();
          return false;
        }
      }
    }
  }

  var email2 = theForm.find('input[name=email2]');
  if (email2.name !== undefined) {
    if (email2 && !email2.val())
    {
      alert("Please enter your email2 address.");
      email2.focus();
      return false;
    } else if (email2 && email2.val())
    {
      if(document.layers || document.getElementById || document.all) {
        var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if(filter.test(email2.val()) == false) {
          alert("Please enter a valid email address.");
          email2.focus();
          return false;
        }
      }
    }
  }

  var email3 = theForm.find('input[name=email3]');
  if (email3.name !== undefined) {
    if (email3 && !email3.val())
    {
      alert("Please enter your email3 address.");
      email3.focus();
      return false;
    } else if (email3 && email3.val())
    {
      if(document.layers || document.getElementById || document.all) {
        var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        if(filter.test(email3.val()) == false) {
          alert("Please enter a valid email address.");
          email3.focus();
          return false;
        }
      }
    }
  }
  
  return (true);
}

function submitFormWithAjax(form) {
  form = $(form);
  $.ajax({
    url: form.attr('action'),
    data: form.serialize(),
    type: (form.attr('method')),
    dataType: 'html',
    success: function( data, textStatus ) { 
      
    }
    
  });
  return false;
} 
