function scrollDown() {
  $('mensagem').scrollTop += 20; 
}

function scrollUp() {
  $('mensagem').scrollTop -= 20; 
}


function startLoading() {
  $('botao').style.display   = 'none';
  $('loading').style.display = 'block';
}

function stopLoading() {
  $('botao').style.display   = 'block';
  $('loading').style.display = 'none';
}

function getErrors(o) {
  if (typeof(o) == 'undefined') 
    o = {"errors":["Falha no sistema"],"errors_help":["Por favor tenta novamente"]};

  var html = '';
  for(var i = 0; i < o.errors.length; i++) {
    html += '<p class="erro"><label>' + o.errors[i] + '</label><br />';
    if (typeof(o.errors_help[i]) != 'undefined')
      html += o.errors_help[i];
    html += '</p>';
  }
  return html;
}


function submitRegister(f) {
  f = $(f);
  startLoading();

  new Ajax.Request(location.pathname, {parameters: f.serialize() + '&ajax=true',
                                       onSuccess: function(transport) {
                                                    if (typeof(transport.responseJSON.errors) != 'undefined') {
                                                      errorsRegister(transport.responseJSON);
                                                    } else if (typeof(transport.responseJSON.msg) != 'undefined') {
                                                      $$('form.registo').first().innerHTML = '<span class="labelsucess">' + transport.responseJSON.msg + '</span>';
                                                    } else {
                                                      errorsRegister();
                                                    }
                                                  },
                                       onFailure: errorsRegister
                                       }
                  );

  return false;
}


function errorsRegister(json, d) {
  if (typeof(d) == 'undefined') d = 2.0;
  html = getErrors(json);
  $('errors').innerHTML = html;
  Effect.BlindDown('errors',  { duration: d,
                                afterFinish : stopLoading
                              }
                  );
}


function submitContact(f) {
  f = $(f);
  startLoading();

  new Ajax.Request(location.pathname, {parameters: f.serialize() + '&ajax=true',
                                       onSuccess: function(transport) {
                                                    if (typeof(transport.responseJSON.errors) != 'undefined') {
                                                      errorsRegister(transport.responseJSON);
                                                    } else if (typeof(transport.responseJSON.msg) != 'undefined') {
                                                      $$('form.contacto').first().innerHTML = '<span class="labelsucess">' + transport.responseJSON.msg + '</span>';
                                                    } else {
                                                      errorsRegister();
                                                    }
                                                  },
                                       onFailure: errorsRegister
                                       }
                  );

  return false;
}

//send TAF
function submitTaf(f) {
  f = $(f);
  startLoading();

  new Ajax.Request(location.pathname, {parameters: f.serialize() + '&ajax=true',
                                       onSuccess: function(transport) {
                                                    if (typeof(transport.responseJSON.errors) != 'undefined') {
                                                      errorsRegister(transport.responseJSON);
                                                    } else if (typeof(transport.responseJSON.msg) != 'undefined') {
                                                      $$('form.taf').first().innerHTML = '<span class="labelsucess">' + transport.responseJSON.msg + '</span>';
                                                    } else {
                                                      errorsRegister();
                                                    }
                                                  },
                                       onFailure: errorsRegister
                                       }
                  );

  return false;
}


function submitLogin(f) {
  f = $(f);
  startLoading();

  new Ajax.Request(location.pathname, {parameters: f.serialize() + '&ajax=true',
                                       onSuccess: function(transport) {
                                                    if (typeof(transport.responseJSON.errors) != 'undefined') {
                                                      errorsRegister(transport.responseJSON, 1);
                                                    } else if (typeof(transport.responseJSON.msg) != 'undefined') {
                                                      location.reload(true);
                                                    } else {
                                                      errorsRegister(undefined, 1);
                                                    }
                                                  },
                                       onFailure: errorsRegister
                                       }
                  );

  return false;
}


function addToFavorites() {
    switch(navigator.appName) {
        case "Netscape":
            window.sidebar.addPanel(document.title, document.URL, "");
            break;
            
        case "Microsoft Internet Explorer":
            window.external.AddFavorite(document.URL, document.title);
            break;
            
        case "Opera":
            alert("Para adicionar o site aos bookmarks prima CTRL+D");
            break;
    }
}


function submitPassword(f) {
  f = $(f);
  startLoading();

  new Ajax.Request(location.pathname, {parameters: f.serialize() + '&ajax=true',
                                       onSuccess: function(transport) {
                                                    if (typeof(transport.responseJSON.errors) != 'undefined') {
                                                      errorsRegister(transport.responseJSON, 1);
                                                    } else if (typeof(transport.responseJSON.msg) != 'undefined') {
                                                      $$('form.login').first().innerHTML = '<span class="labelsucess">' + transport.responseJSON.msg + '</span>';
                                                    } else {
                                                      errorsRegister(undefined, 1);
                                                    }
                                                  },
                                       onFailure: errorsRegister
                                       }
                  );

  return false;
}

