<?php
include_once("local.inc");
include_once("editor.inc");

$error = GET('error');

function header_404() {
  header("HTTP/1.1 404 Not Found");
  header("Status: 404 Not Found");
}

if ($error == '404') {
  header_404();
  $titulo = 'Arquivo não encontrado';
  $conteudo = "O arquivo que você tentou pesquisar não foi encontrado: <i>$_SERVER[REQUEST_URI]</i>";
  $referer = SERVER('HTTP_REFERER');
  if (strpos($referer, 'gigawiki.com') !== false) {
    loga("Arquivo não encontrado: $_SERVER[REQUEST_URI]" .
      "\nReferer: $referer\nUser Agent: " . SERVER('HTTP_USER_AGENT'));
  }
  gw_pagina($titulo, $conteudo);
  exit;
}

# backup
if ($bkp_id = GET('backup_id')) {
  backup_id($bkp_id);
  exit;
}

if ($bkp_autor = GET('backup_autor')) {
  backup_autor($bkp_autor);
  exit;
}

if (($bkp_usuario = GET('backup_usuario')) and logado()) {
  backup_autor(usuario('login'));
  exit;
}

if ($div = GET('div')) {
  if (gw_pagina_div($div)) exit;
  //else $gw_msg_erro .= "Erro ao iniciar div " . htm($div);
}

if (POST('acao') == 'salvar') {
  # junta dados p/ ajaxSalva
  $dados = utf8_encode(serialize($_POST));
  $ret = ajaxSalva($dados);
  if ($ret['ok']) {
    $id = $ret['id'];
    $link = url_doc($id);
    if ($link) {
      header("Location: $link");
      exit;
    }
  }
  else {
    $gw_msg_erro = $ret['msg'];
  }
}

//# testa redir
//$id = GET('id');
//if ($id and SERVER('REQUEST_URI') == "/$id") {
//  $link = url_doc($id);
//  if ($link) {
//    header("Location: $link");
//    exit;
//  }
//}

// $id = busca_generica($sugestoes);
if (!$id) {
  $id = busca_get();
  if (is_array($id)) {
    $sugestoes = $id;
    $id = false;
  }
  else $sugestoes = false;
}

/*
# testa redir
if ($id and !GET('impressao')) {
  $link = url_doc($id);
  $path_esperado = parse_url($link, PHP_URL_PATH);
  $path_real = str_ate(SERVER('REQUEST_URI'), '?');
  mostra($path_real);
  mostra($path_esperado);
exit;
  if ($path_real and $path_esperado and $path_real != $path_esperado) {
    header("Location: $link");
    exit;
  }
}
*/

# se veio o id, pega seu conteúdo
if ($id) {
  # Se for a página inicial do GW, e não for o usuário gigawiki, não tem editor; apenas parse.
  if ($id == $gw_pagina_ini and usuario('login') != 'gigawiki') {
    $titulo = doc($id, 'nome');
    $conteudo = nl2br(parse($id)) .
      "<br><br><i><small>Última atualização: " . gmdate_to_local(doc($id, 'alteracao')) . "</small></i>";
    $conteudo = borda_redonda($conteudo, 'conteudo', 1, 'div_conteudo');
  }
  else {
    $titulo = tem_permissao_leitura($id) ? doc($id, 'nome') : '';
    $conteudo = editor($id);
  }
}
# se não veio id, então monta as sugestões
else {
  header_404();
  $conteudo = results($sugestoes, $titulo);
  $conteudo = borda_redonda($conteudo, 'conteudo', 1, 'div_conteudo');
}

//mostra ($conteudo);
# finalmente, mostra a tela!
gw_pagina($titulo, $conteudo);
?>