


function ajaxForm() {
  var container, url, data, canvas, callback;
  this.setContainer = function(value) {
    container = value;
  }
  this.setUrl = function(value) {
    url = value;
  }
  this.setCanvas = function(value) {
    canvas = value;
  }
  this.setCallback = function(value) {
    callback = value;
  }
  this.initForm = function(loadingElem, loadingMsg) {
    container.submit(function () {
      displayLoading(loadingElem, loadingMsg);
      getData();
      return false;
    });
    $('#message').keydown(function () {
      checkTaLength();
    });
    $('#message').keyup(function () {
      checkTaLength();
    });
    checkTaLength();
  }
  var checkTaLength = function () {
    var old = $('#csform-charleft').text();
    var char_left = (csform_maxchar - parseInt($('#message').val().length));
    if (char_left <= 0) {
      $('#message').val( $('#message').val().substring(0, csform_maxchar) );
      char_left = 0;
    }
    $('#csform-charleft').text( char_left.toString() );
  }
  var getData = function () {
    var params = container.serialize()+"&sendbutton="+$('#sendbutton').val();
    $.get(url, params,
      function(data){
        if ( canvas.exists() ) canvas.html( data );
        if (callback) callback();
      }
    );
  }
  var displayLoading = function(element, value) {
    $(element).attr("value", value);
    $(element).attr("disabled", true);
  }
}


function setEmbed() {
  var embed = '';
  if ($.browser.msie) { 
    embed = '<embed style="height: 0" id="sectext-wav" src="/ttsvoice.wav" type="audio/x-wav" loop="false" autoplay="true" autostart="true" hidden="true" />';
  } else {
    embed = '<object type="audio/x-wav" id="sectext-wav" data="/ttsvoice.wav" width="0" height="0" style="height: 0">' +
            '<param name="autoplay" value="true">' +
            '<param name="autostart" value="true">' +
            '</object>';
  }
  $('#sectext-voice').html(embed);
}


function ajaxifyForm(formId, url, loadingElem, loadingMsg) {
  $("#sectext-controls").prepend('<li><a href="/ttsvoice.wav" onclick="setEmbed(); return false;">'+'sectext_hear'.i18n()+'</a></li>');
  $("#content-sidebar").append('<span id="sectext-voice"></span>');
  var xForm = new ajaxForm();
  var container = $(formId);
  xForm.setContainer( container );
  xForm.setCanvas( container.parent() );
  xForm.setUrl(url);
  xForm.setCallback(function () {
			ajaxifyForm(formId, url, loadingElem, loadingMsg);
		});
  xForm.initForm(loadingElem, loadingMsg);
}


$(document).ready(function(){	
  ajaxifyForm('#csform', '/csform.php', '#sendbutton', 'please_wait'.i18n());
});