/***
 * Order module handling file
 */

/* Show error in special field */
function ShowOrderError( ErrorMsg )
{
  if (!$("#form_Order_Error").is(":hidden"))
  {
    $("#form_Order_Error").slideUp("slow", function()
      {
        $(this).text(ErrorMsg).slideDown("slow");
      });
  }
  else
    $("#form_Order_Error").text(ErrorMsg).slideDown("slow");  
} /* End of 'ShowOrderError' function */
  
/* Submit order form */
function SubmitOrderForm( )
{
  var Name = $("#form_Order_Name").val(),
    Email = $("#form_Order_Email").val(),
    Text = $("#form_Order_Text").val(),
    Captcha = $("#form_Order_Captcha").val(),
    Telephone = $("#form_Order_Telephone");
  
  /* Check for correct user input */
  if (Name.length == 0)
    ShowOrderError("Ошибка: Вы не ввели имя.");
  else if (Name.length >= 100)
    ShowOrderError("Ошибка: Ваше имя слишком длинное.");
  else if (Email.length == 0)
    ShowOrderError("Ошибка: Вы не ввели почтовый адрес.");
  else if (Email.length >= 100)
    ShowOrderError("Ошибка: Ваш почтовый адрес слишком длинный.");
  else if (Text.length == 0)
    ShowOrderError("Ошибка: Вы не ввели текст.");
  else if (Text.length >= 1000)
    ShowOrderError("Ошибка: Текст слишком длинный, постарайтесь уложиться в 1000 символов.");
  else
  {
    $("#form_Order_SubmitButton").attr('disabled', true);
    /* Ajax request to the server */
    $.ajax({
      type : "POST",
      url : "http://" + location.host + "/modules/order/order.php",
      data : ( 
        {
          submit : "1",
          name : Name,
          email : Email,
          text : Text,
          captcha : Captcha,
          telephone : (Telephone != null ? Telephone.val() : '')
        }
      ),
      success: function(data)
      {
        OrderSubmitListener(data);
        $("#form_Order_SubmitButton").attr('disabled', false);
      },
      dataType : (($.browser.msie) ? "text" : "xml"),
      error: function (XMLHttpRequest, textStatus, errorThrown)
      {
        alert("AJAX error: " + textStatus + XMLHttpRequest.responseText);
      }
      });
  }
} /* End of 'SubmitOrderForm' function */

/* Ajax listener */
function OrderSubmitListener( data )
{
  var parsed_data = ParseXml(data);
  var errors = parsed_data.documentElement.getElementsByTagName("error");
  
  /* Check for errors */
  if (errors.length > 0)
    ShowOrderError(getNodeText(errors.item(0)));
  /* If all right */
  else
  {
    $("#form_Order_Error").hide();
    $("#form_Order").hide("slow");
    $("#form_Order_Success").show("slow");
  }
} /* End of 'OrderSubmitListener' function */
