Segundo exame
Fim do período de aulas
Início das aulas práticas
Entrega dos trabalhos
Distribuição dos enunciados dos trabalhos
Início do período de exames
Início do período de aulas
Primeiro exame
Início das aulas teóricas
Fim do período de exames
|>| !Text Markup |\n|>|<html><tt>{{{Monospaced Text}}}</tt></html> |\n|>|<html><pre>{{{<br/>Monospaced<br/>Multi-line<br/>Block<br/>}}}</pre></html> |\n|>|{{{''}}}''Bold''{{{''}}} |\n|>|{{{//}}}//Italics//{{{//}}} |\n|>|{{{__}}}__Underline__{{{__}}} |\n|>|{{{==}}}==Strike Through=={{{==}}} |\n|>|{{{~~}}}~~sub~~{{{~~}}}script |\n|>|{{{^^}}}^^super^^{{{^^}}}script |\n|>| !Colors |\n|>|{{{@@}}}@@highlight@@{{{@@}}} |\n|>|{{{@@color(green):}}}@@color(green):green@@{{{@@}}} |\n|>|{{{@@bgcolor(green):}}}@@bgcolor(green):green@@{{{@@}}} |\n|>| !Links |\n|>|any WikiWord |\n|>|{{{[[Manual Link]]}}}<html><br/></html>Makes: [[Manual Link]] |\n|>|Pretty Link<html><br/></html>{{{[[Help|Ajuda]]}}}<html><br/></html>Makes: [[Help|QuickRef]] |\n|>|External Link<html><br/></html>{{{http://www.msn.com}}}<html><br/></html>Makes: http://www.msn.com |\n|>|Pretty External Link<html><br/></html>{{{[[go|http://www.msn.com]]}}}<html><br/></html>Makes: [[go|http://www.msn.com]] |\n|>| !Folder Links |\n|>|{{{[[Link Text|OS Path]]}}} |\n|>| !Path Formats |\n|>|Windows Share:<html><br/></html>{{{file://///server/share}}} |\n|>|Windows Local:<html><br/></html>{{{file:///c:/folder/file}}} |\n|>|Un*x Local File:<html><br/></html>{{{file://folder/file}}} |\n|>|Relative File<html><br/></html>{{{folder/file}}} |\n|>| !Lists |\n|>|{{{*}}} Bullet Lists<html><br/></html>{{{#}}} Numbered Lists |\n|>|Nest with multiple {{{*}}}'s or {{{#}}}'s |\n|>|{{{*}}}Bullet<html><br/></html>{{{##}}}Number |\n|>|<html><ul><li>Bullet<ol><li>Numbered</li></ol></li></ul></html> |\n|>| !blockquotes |\n|>|{{{>}}} Blockquote<html><br/></html>{{{>>}}} Nested Blockquote |\n|>|<html><blockquote>Blockquote<blockquote>Nested Blockquote</blockquote></blockquote></html> |\n|>|<html><tt><<<</tt><br/>multi-line<br/>blockquote<br/><tt><<<</tt></html> |\n|>|<html><blockquote>multi-line<br/>blockquote</blockquote></html> |\n|>| !Images |\n|>|{{{[img[favicon.ico]]}}} -> [img[http://www.tiddlywiki.com/favicon.ico]] |\n|>| !Headings |\n|>|<html><h1>!Heading H1</h1><h2>!!Heading H2</h2><h3>!!!Heading H3</h3><h4>!!!!Heading H4</h4><h5>!!!!!Heading H5</h5></html> |\n|>| !Horizontal Rule |\n|>|{{{----}}} |\n|>|<html><hr/></html> |\n|>| !Tables |\n| {{{|}}} |Column Separator |\n| {{{!}}} |Header |\n| {{{>}}} |Column Span |\n| {{{~}}} |Row Span |\n| {{{|Left |}}} |Left Align |\n| {{{| Right|}}} |Right Align|\n| {{{| Center |}}} |Center Align |\n| {{{|Caption|c}}} |Table Caption |\n|>| !Table Sample |\n|>|{{{|}}} !header {{{|}}} !header {{{|}}}<html><br/></html>{{{|>|}}}colspan=2 {{{|}}}<html><br/></html>{{{|}}} rowspan {{{|}}}left align {{{|}}}<html><br/></html>{{{|˜|}}} center {{{|}}}<html><br/></html>{{{|}}}bgcolor(green):color{{{|}}} right{{{|}}}<html><br/></html>{{{|}}}table caption{{{|}}}c<html><br/></html> |\n|>| <html><table width="80%" border=1><tbody><tr><th align="center">header</th><th align="center">header</th></tr><tr><td colspan="2" align="center">colspan="2"</td></tr><tr><td rowspan="2" align="center">rowspan</td><td align="left">left align</td></tr><tr><td align="center">centered</td></tr><tr><td bgcolor="green">green</td><td align="right">right</td></tr><caption valign="bottom">table caption</caption></tbody></table></html> |
|!Nº|!Data|!Sumário|!Presenças|\n| 1 | 08/03 |Exercícios A8, A9 e 2.2 (incompleto)| 7 |\n| 2 | 15/03 |Exercícios 2.2 (conclusão) e 2.3 (incompleto)| 8 |\n| 3 | 22/03 |Exercícios 2.3 (conclusão) e 2.4| 6 |\n| 4 | 29/03 |Exercícios 2.7 e 7.2| 4 |\n| 5 | 05/04 |Exercícios 7.6 e 4.1| 5 |\n| 6 | 12/04 |Exercícios 4.2 e 4.4| 6 |\n| 7 | 26/04 |Exercícios 4.6 e 4.8 a)| 2 |\n| - | 03/05 |Aula teórica| - |\n| 8 | 10/05 |Exercícios 4.9 e 4.13| 4 |\n| 9 | 17/05 |Exercícios 5.2 e 9.2 (incompleto)| 4 |\n| 10 | 24/05 |A análise de dados categorizados no //R//| 2 |\n| 11 | 30/05 |Exercícios 9.2 (conclusão) e 3.1 (incompleto) | 4 |\n| 12 | 31/05 |Exercícios 3.1 (conclusão) e 8.2 | 4 |\n| 13 | 06/06 |Esclarecimento de dúvidas| 4 |
|!Nº|!Data|!Sumário|!Presenças|\n| 1 | 21/02 |1. Introdução. 2. Modelos probabilísticos: Processos de amostragem.|8|\n| 2 | 23/02 |2. Modelos probabilísticos usuais: Produto de distribuições de Poisson, Multinomial e Produto de Multinomiais.|8|\n| 3 | 02/03 |2. Relação probabilística entre os esquemas amostrais básicos.|8|\n| 4 | 07/03 |2. Modelos Hipergeométricos.|7|\n| 5 | 09/03 |3. A metodologia de máxima verosimilhança: Tipos de modelos estruturais e sua exemplificação.|8|\n| 6 | 14/03 |3. Estimação paramétrica. Exemplos.|6|\n| 7 | 16/03 |3. Testes de ajustamento dos modelos. Testes condicionais de hipóteses redutoras de modelos.|7|\n| 8 | 21/03 |4. Análise de modelos log-lineares: Reparametrização log-linear do modelo probabilístico.|8|\n| 9 | 23/03 |4. Interpretação dos parâmetros log-lineares. Formulação log-linear com incorporação da restrição natural.|8|\n| 10 | 28/03 |4. Modelos log-lineares bidimensionais para tabelas sem variáveis explicativas|7|\n| 11 | 30/03 |4. Modelos de simetria. Modelo log-linear tridimensional saturado.|8|\n| 12 | 04/04 |4. Interpretação dos parâmetros log-lineares. Modelos com diferentes padões de associação.|6|\n| 13 | 06/04 |4. Modelo de não interacção de 2º ordem. Identidade entre associações parciais e marginais.|8|\n| 14 | 11/04 |4. Modelos ordinais.|8|\n| 15 | 20/04 |4. Estudo de modelos log-lineares em tabelas com variáveis explicativas.|7|\n| 16 | 27/04 |4. Correspondência entre as estruturas log-lineares nos dois cenários (caso bidimensional).|2|\n| 17 | 02/05 |4. Correspondência entre as estruturas log-lineares nos dois cenários (caso tridimensional).|5|\n| 18 | 03/05 |4. Análise log-linear de tabelas sem variáveis explicativas. Métodos iterativos de estimação log-linear (em troca com a aula prática)|5|\n| 19 | 04/05 |4. Análise log-linear de tabelas com variáveis explicativas.|6|\n| 20 | 09/05 |5. Análise de modelos estritamente lineares. Descrição de modelos de simetria e de homogeneidade marginal.|4|\n| 21 | 11/05 |5. Modelo linear geral. Exemplos.|4|\n| 22 | 16/05 |5. Análise de modelos de simetria.|4|\n| 23 | 18/05 |5. Análise de modelos de homogeneidade marginal.|4|\n| 24 | 23/05 |5. Medida de concordância e estatística kapa. Testes condicionais exactos: teste de Fisher.|4|\n| 25 | 25/05 |5. Testes condicionais exactos: teste de simetria Teste de ~Mantel-Haenszel.|1|\n| 26 | 30/05 |Aula Prática, uma vez que a aula teórica foi leccionada em 03/05/06.||
!1. Modalidades de avaliação de conhecimentos\nA nota final é uma média ponderada da nota de um trabalho (30%) e da nota (máxima) do exame (70%). O trabalho é feito em grupo de dois alunos (com possibilidade de discussão) e o valor mínimo da nota do exame é 7.5 valores. \n!2. Melhoria de nota\nOs alunos aprovados que desejem fazer melhoria de nota devem seguir as disposições gerais em vigor no IST e comparecer unicamente a uma das duas datas de exames.\n!3. Identificação pessoal\nOs alunos só podem apresentar-se a provas munidos do Cartão de Aluno do IST.\n!4. Anulação de provas\nA utilização ou a mera posse de materiais não permitidos em qualquer prova de avaliação são razões suficientes para a anulação da prova sem prejuízo da posterior instauração de processo disciplinar nos casos em que a falta for considerada grave.
++++!![10/06/2006 :: Notas de Exame]>\nA pauta do 2º Exame de ADC encontra-se em [[Pauta]]. Revisão de provas: 11/07/2006 às 17 hs na sala P1.12.\n===\n+++!![26/05/2006 :: Última semana de aulas]>\nNa próxima semana serão lecionadas aulas práticas nos horários de ambas as aulas teóricas (terça 30/05 e quinta 01/06).\n@@A aula de dia 01/06 foi adiada para 06/06.@@\n===\n+++!![26/05/2006 :: Análise de dados categorizados no R]>\nO material apresentado na aula prática de 24/05 sobre a análise de dados categorizados no //R// já se encontra disponível em [[Material didáctico]].\n===\n+++!![22/05/2006 :: Aula teórica]>\nNo dia 23/05/06 não haverá aula teórica (ADC/IDII), que passa para o dia 22/05/06 às 10:00.\n===\n+++!![26/04/2006 :: Aula teórica]>\nNo dia 03/05/06 haverá aula teórica em vez da prática, que passa para o dia 01/06/06.\n===\n+++!![11/04/2006 :: Trabalhos de ADC]>\n[[Enunciado do Trabalho 1|Trab1-ADC06.pdf]] (52700,52705)\n[[Enunciado do Trabalho 2|Trab2-ADC06.pdf]] (52685,52689)\n[[Enunciado do Trabalho 3|Trab3-ADC06.pdf]] (52702,54159)\n[[Enunciado do Trabalho 4|Trab4-ADC06.pdf]] (54143,52694)\n===\n++++!![17/02/2006 :: Datas importantes neste semestre]>\nInício das aulas teóricas: 21/02/2006\nInício das aulas práticas: 08/03/2006\nDistribuição dos enunciados dos trabalhos: 11/04/2006\nEntrega dos trabalhos: 09/06/2006\nPrimeiro exame: 20/06/2006 - 17:00 - P12\nSegundo exame: 04/07/2006 - 17:00 - P12\n===
!Bibliografia\n<<<\n''Paulino'', C. D. M. e ''Singer'', J. M. (2004)\n//Análise de Dados Categorizados//\nVersão preliminar - reprografia do IST\n<<<\n<<<\n''Agresti'', A. (2002)\n//Categorical Data Analysis//\nJohn Wiley & Sons, N. Y.\n<<<\n!Software estatístico\n*SAS\n*NTIA (EMBRAPA)\n*S-plus\n*SPSS\n*R (disponível em http://www.r-project.org/)
<<calendar year:2006 month:1 numberMonths:6 tag:'agenda#excludeLists'>>
[[Nome da disciplina|SiteTitle]]\n[[Ano/Semestre|SiteSubtitle]]\n[[Menu|MainMenu]]\n[[Tiddlers iniciais|DefaultTiddlers]]\n[[Edição remota|UploadPluginOptions]]\n----\nConfiguraçãoAvançada
|>|[[SiteTitle]] - [[SiteSubtitle]]|\n|>|[[MainMenu]]|\n|[[DefaultTiddlers]]|[[SideBarOptions]]|\n|[[PageTemplate]]|[[OptionsPanel]]|\n|[[ViewTemplate]]|[[AdvancedOptions|OpçõesAvançadas]]|\n|[[EditTemplate]]|[[SideBarTabs]]|\n''~StyleSheet:'' [[StyleSheet]] - [[StyleSheetColors]] - [[StyleSheetLayout]] - [[StyleSheetPrint]]\n''Translation:'' PortugueseLingo
[[Avisos]]
// //''Name:'' EmailLink\n// //''Version:'' <<getversion email>> (<<getversiondate email "DD MMM YYYY">>)\n// //''Author:'' AlanHecht\n// //''Type:'' [[Macro|Macros]]\n\n// //''Description:'' email lets you list a "email" address without displaying it as readable text. This helps prevent your email address from being harvested by search engines and other web crawlers that read your page's contents. Using email, you type in the words "at" and "dot" instead of the punctuation symbols and add spaces inbetween words to disguise your address. However, email will display your email address in a web browser so that humans can read it. And email turns the address into a hyperlink that can be clicked to send you an instant email.\n\n// //''Syntax:'' << {{{email yourname at yourdomain dot com "?optional parameters"}}} >>\n// //Example 1: <<email sample at nowhere dot com>> (standard)\n// //Example 2: <<email sample at nowhere dot com "?subject=Submission&body=Type your message here.">> (with optional parameters)\n\n// //''Directions:'' <<tiddler MacroDirections>>\n\n// //''Notes:'' You can use the optional email parameters to stipulate a subject or message body for the message. Most (not all) email clients will use this information to construct the email message.\n\n// //''Related Links:'' none\n\n// //''Revision History:''\n// // v0.1.0 (20 July 2005): initial release\n// // v0.1.1 (22 July 2005): renamed the macro from "mailto" to "email" to further thwart email harvesters.\n\n// //''Code section:''\nversion.extensions.email = {major: 0, minor: 1, revision: 1, date: new Date("Jul 22, 2005")};\nconfig.macros.email = {}\nconfig.macros.email.handler = function(place,macroName,params)\n{\nvar temp = params.join(" ");\nvar data = temp.split("?");\nvar recipient = data[0];\nrecipient = recipient.replace(" at ","@").replace(" dot ",".");\nrecipient = recipient.replace(/\ss/g,"");\nvar optional = data[1] ? "?" + data[1] : "";\nvar theLink = createExternalLink(place,"ma"+"il"+"to:"+recipient+optional);\ntheLink.appendChild(document.createTextNode(recipient))\n}\n
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|\n| ''8:00''||||||\n|~|||bgcolor(#cfffcf):[[Prática|Aulas práticas]] (V1.12)|||\n| ''9:00''|||~|||\n|~|||~|||\n| ''10:00''|||~|||\n|~||||||\n| ''11:00''||||||\n|~||||bgcolor(#ffcc33):[[Teórica|Aulas teóricas]] (V1.27)||\n| ''12:00''||||~||\n|~||||~||\n| ''13:00''||||||\n|~||||||\n| ''14:00''||||bgcolor(#ffccff):Dúvidas (P1.12)||\n|~||bgcolor(#ffcc33):[[Teórica|Aulas teóricas]] (V1.24)||~||\n| ''15:00''||~||||\n|~||~||||\n| ''16:00''||bgcolor(#ffccff):Dúvidas (P1.12)||||\n|~||~||||\n| ''17:00''||~||||\n|~||||||\nConsulte os sumários clicando na respectiva aula.
!Âmbito\nDisciplina do 4º ano da Licenciatura em Matemática Aplicada e Computação (Especialização em Probabilidades e Estatística).\n!Objectivos gerais\nDesenvolver os conhecimentos em Estatística Multivariada através do estudo detalhado dos principais modelos probabilísticos discretos e das inferências sobre as principais estruturas paramétricas neles impostas. Os alunos com aprovação na disciplina devem ser capazes de manusear probabilisticamente a distribuição Multinomial e as relações com outras distribuições multivariadas; compreender a estrutura e o significado dos modelos lineares e log-lineares dados nos cenários bi- e tridimensional; aplicar a metodologia de máxima verosimilhança à análise de modelos lineares e log-lineares.\n!Professor responsável e aulas teóricas\nGiovani Silva <<email gsilva at math dot ist.utl.pt>>\n!Aulas práticas\nPaulo Soares <<email psoares at math dot ist.utl.pt>>\n+++!![Sobre estas páginas...]\nEstas páginas foram construídas para colocar à disposição dos alunos toda a informação acerca desta disciplina de uma forma rápida e acessível. Se encontrar algum erro ou algo que não lhe pareça bem certifique-se que está a usar uma versão actualizada do seu browser e não hesite em nos contactar descrevendo o problema o mais detalhadamente possível. Todas as sugestões são naturalmente bem vindas.\n===
<html><span style="float: right; margin-top: 1px;">\n<a href="" class="button" onclick="javascript:if(!document.getElementById('sidebar').style.display || document.getElementById('sidebar').style.display == 'block') { document.getElementById('sidebar').style.display = 'none'; \ndocument.getElementById('displayArea').style.marginRight = '1em'; } else { \ndocument.getElementById('sidebar').style.display = 'block'; document.getElementById('displayArea').style.marginRight = '15.5em'; } return false;">×</a>\n</span></html>[[Informação|Informação geral]] [[Avisos]] [[Programa|Programa detalhado]] [[Bibliografia|Bibliografia e software]] [[Calendário|Calendário escolar]] [[Horário]] [[Material didáctico]] [[Avaliação]] [[Pauta]] [[.IST|https://fenix.ist.utl.pt/loginPage.jsp]]
!Análise de dados categorizados no //R// \n*[[Conjunto de funções do R (ADCC)|material/adcc.r]] e [[manual|material/adcc-manual.pdf]] (gentilmente cedidos por [[Frederico Poleto|http://www.poleto.com]])\n*[[Texto apresentado na aula prática|material/aula_pratica.pdf]]\n* Exemplos: [[análise com loglm|material/graffiti.r]] e [[análise com ADCC|material/graffiti.adcc.r]]\n!Provas de avaliação\n*[[Enunciado do 1º exame do 2º semestre de 00/01|material/E03Jul01.pdf]]\n*[[Enunciado do 2º exame do 2º semestre de 00/01|material/E27Jul01.pdf]]\n*[[Solução dos exames do 2º semestre de 00/01|material/SolExa01.pdf]]\n\n*[[Enunciado do 1º exame do 2º semestre de 02/03|material/E03Jul03.pdf]]\n*[[Enunciado do 2º exame do 2º semestre de 02/03|material/E17Jul03.pdf]]\n*[[Solução dos exames do 2º semestre de 02/03|material/SolExa03.pdf]]
/***\n''NestedSlidersPlugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman\nsource: http://www.elsdesign.com/tiddlywiki/#NestedSlidersPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nQuickly make any tiddler content into an expandable 'slider' panel, without needing to create a separate tiddler to contain the slider content. Optional syntax allows ''default to open'', ''custom button label/tooltip'' and ''automatic blockquote formatting.''\n\nYou can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created. This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.\n\nFor more details, please click on a section headline below:\n++++!!!!![Configuration]>\nDebugging messages for 'lazy sliders' deferred rendering:\n<<option chkDebugLazySliderDefer>> show debugging alert when deferring slider rendering\n<<option chkDebugLazySliderRender>> show debugging alert when deferred slider is actually rendered\n===\n++++!!!!![Usage]>\nWhen installed, this plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content. Use {{{+++}}} and {{{===}}} to delimit the slider content. Additional optional syntax elements let you specify\n*default to open\n*cookiename\n*heading level\n*floater\n*rollover\n*custom label/tooltip\n*automatic blockquote\n*deferred rendering\nThe complete syntax, using all options, is:\n//{{{\n++++(cookiename)!!!!!^*[label|tooltip]>...\ncontent goes here\n===\n//}}}\nwhere:\n* {{{+++}}} (or {{{++++}}}) and {{{===}}}^^\nmarks the start and end of the slider definition, respectively. When the extra {{{+}}} is used, the slider will be open when initially displayed.^^\n* {{{(cookiename)}}}^^\nsaves the slider opened/closed state, and restores this state whenever the slider is re-rendered.^^\n* {{{!}}} through {{{!!!!!}}}^^\ndisplays the slider label using a formatted headline (Hn) style instead of a button/link style^^\n* {{{"^"}}} //(without the quotes)//^^\nmakes the slider 'float' on top of other content rather than shifting that content downward^^\n* {{{"*"}}} //(without the quotes)//^^\nautomatically opens/closes slider on "rollover" as well as when clicked^^\n* {{{[label]}}} or {{{[label|tooltip]}}}^^\nuses custom label/tooltip. (defaults are: ">" (more) and "<" (less)^^\n* {{{">"}}} //(without the quotes)//^^\nautomatically adds blockquote formatting to slider content^^\n* {{{"..."}}} //(without the quotes)//^^\ndefers rendering of closed sliders until the first time they are opened. //Note: deferred rendering may produce unexpected results in some cases. Use with care.//^^\n\n//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//\n===\n++++!!!!![Examples]>\nsimple in-line slider: \n{{{\n+++\n content\n===\n}}}\n+++\n content\n===\n----\nuse a custom label and tooltip: \n{{{\n+++[label|tooltip]\n content\n===\n}}}\n+++[label|tooltip]\n content\n===\n----\ncontent automatically blockquoted: \n{{{\n+++>\n content\n===\n}}}\n+++>\n content\n===\n----\nall options combined //(default open, cookie, heading, floater, rollover, label/tooltip, blockquoted, deferred)//\n{{{\n++++(testcookie)!!!^*[label|tooltip]>...\n content\n===\n}}}\n++++(testcookie)!!!^*[label|tooltip]>...\n content\n===\n----\ncomplex nesting example:\n{{{\n+++^[get info...|click for information]\n put some general information here, plus a floating slider with more specific info:\n +++^[view details...|click for details]\n put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===\n ===\n===\n}}}\n+++^[get info...|click for information]\n put some general information here, plus a floating slider with more specific info:\n +++^[view details...|click for details]\n put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===\n ===\n===\n----\nnested floaters\n>menu: <<tiddler NestedSlidersExample>>\n(see [[NestedSlidersExample]] for definition)\n----\n===\n+++!!!!![Installation]>\nimport (or copy/paste) the following tiddlers into your document:\n''NestedSlidersPlugin'' (tagged with <<tag systemConfig>>)\n===\n+++!!!!![Revision History]>\n\n++++[2006.02.04 - 1.7.5]\nadd 'var' to unintended global variable declarations to avoid FireFox 1.5.0.1 crash bug when assigning to globals\n===\n\n++++[2006.01.18 - 1.7.4]\nonly define adjustSliderPos() function if it has not already been provided by another plugin. This lets other plugins 'hijack' the function even when they are loaded first.\n===\n\n++++[2006.01.16 - 1.7.3]\nadded adjustSliderPos(place,btn,panel,panelClass) function to permit specialized logic for placement of floating panels. While it provides improved placement for many uses of floating panels, it exhibits a relative offset positioning error when used within *nested* floating panels. Short-term workaround is to only adjust the position for 'top-level' floaters.\n===\n\n++++[2006.01.16 - 1.7.2]\nadded button property to slider panel elements so that slider panel can tell which button it belongs to. Also, re-activated and corrected animation handling so that nested sliders aren't clipped by hijacking Slider.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends\n===\n\n++++[2006.01.14 - 1.7.1]\nadded optional "^" syntax for floating panels. Defines new CSS class, ".floatingPanel", as an alternative for standard in-line ".sliderPanel" styles.\n===\n\n++++[2006.01.14 - 1.7.0]\nadded optional "*" syntax for rollover handling to show/hide slider without requiring a click (Based on a suggestion by tw4efl)\n===\n\n+++[2006.01.03 - 1.6.2]\nWhen using optional "!" heading style, instead of creating a clickable "Hn" element, create an "A" element inside the "Hn" element. (allows click-through in SlideShowPlugin, which captures nearly all click events, except for hyperlinks)\n===\n\n+++[2005.12.15 - 1.6.1]\nadded optional "..." syntax to invoke deferred ('lazy') rendering for initially hidden sliders\nremoved checkbox option for 'global' application of lazy sliders\n===\n\n+++[2005.11.25 - 1.6.0]\nadded optional handling for 'lazy sliders' (deferred rendering for initially hidden sliders)\n===\n\n+++[2005.11.21 - 1.5.1]\nrevised regular expressions: if present, a single newline //preceding// and/or //following// a slider definition will be suppressed so start/end syntax can be place on separate lines in the tiddler 'source' for improved readability. Similarly, any whitespace (newlines, tabs, spaces, etc.) trailing the 'start slider' syntax or preceding the 'end slider' syntax is also suppressed.\n===\n\n+++[2005.11.20 - 1.5.0]\n added (cookiename) syntax for optional tracking and restoring of slider open/close state\n===\n\n+++[2005.11.11 - 1.4.0]\n added !!!!! syntax to render slider label as a header (Hn) style instead of a button/link style\n===\n\n+++[2005.11.07 - 1.3.0]\n removed alternative syntax {{{(((}}} and {{{)))}}} (so they can be used by other\n formatting extensions) and simplified/improved regular expressions to trim multiple excess newlines\n===\n\n+++[2005.11.05 - 1.2.1]\n changed name to NestedSlidersPlugin\n more documentation\n===\n\n+++[2005.11.04 - 1.2.0]\n added alternative character-mode syntax {{{(((}}} and {{{)))}}}\n tweaked "eat newlines" logic for line-mode {{{+++}}} and {{{===}}} syntax\n===\n\n+++[2005.11.03 - 1.1.1]\n fixed toggling of default tooltips ("more..." and "less...") when a non-default button label is used\n code cleanup, added documentation\n===\n\n+++[2005.11.03 - 1.1.0]\n changed delimiter syntax from {{{(((}}} and {{{)))}}} to {{{+++}}} and {{{===}}}\n changed name to EasySlidersPlugin\n===\n\n+++[2005.11.03 - 1.0.0]\n initial public release\n===\n\n===\n+++!!!!![Credits]>\nThis feature was implemented by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]] with research, programming and suggestions from RodneyGomes, GeoffSlocock, and PaulPetterson\n===\n***/\n// //+++!!!!![Code]\n//{{{\nversion.extensions.nestedSliders = {major: 1, minor: 7, revision: 5, date: new Date(2006,2,4)};\n//}}}\n\n//{{{\n// options for deferred rendering of sliders that are not initially displayed\nif (config.options.chkDebugLazySliderDefer==undefined) config.options.chkDebugLazySliderDefer=false;\nif (config.options.chkDebugLazySliderRender==undefined) config.options.chkDebugLazySliderRender=false;\n\n// default styles for 'floating' class\nsetStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \s\n background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");\n//}}}\n\n//{{{\nconfig.formatters.push( {\n name: "nestedSliders",\n match: "\s\sn?\s\s+{3}",\n terminator: "\s\ss*\s\s={3}\s\sn?",\n lookahead: "\s\sn?\s\s+{3}(\s\s+)?(\s\s([^\s\s)]*\s\s))?(\s\s!*)?(\s\s^)?(\s\s*)?(\s\s[[^\s\s]]*\s\s])?(\s\s>)?(\s\s.\s\s.\s\s.)?\s\ss*",\n handler: function(w)\n {\n var lookaheadRegExp = new RegExp(this.lookahead,"mg");\n lookaheadRegExp.lastIndex = w.matchStart;\n var lookaheadMatch = lookaheadRegExp.exec(w.source)\n if(lookaheadMatch && lookaheadMatch.index == w.matchStart)\n {\n // location for rendering button and panel\n var place=w.output;\n\n // default to closed, no cookie\n var show="none"; var title=">"; var tooltip="Mostra"; var cookie="";\n\n // extra "+", default to open\n if (lookaheadMatch[1])\n { show="block"; title="<"; tooltip="Esconde"; }\n\n // cookie, use saved open/closed state\n if (lookaheadMatch[2]) {\n cookie=lookaheadMatch[2].trim().substr(1,lookaheadMatch[2].length-2);\n cookie="chkSlider"+cookie;\n if (config.options[cookie]==undefined)\n { config.options[cookie] = (show=="block") }\n if (config.options[cookie])\n { show="block"; title="<"; tooltip="Esconde"; }\n else\n { show="none"; title=">"; tooltip="Mostra"; }\n }\n\n // custom label/tooltip\n if (lookaheadMatch[6]) {\n title = lookaheadMatch[6].trim().substr(1,lookaheadMatch[6].length-2);\n var pos=title.indexOf("|");\n if (pos!=-1)\n { tooltip = title.substr(pos+1,title.length); title = title.substr(0,pos); }\n else\n { tooltip += " "+title; }\n }\n\n // create the button\n if (lookaheadMatch[3]) { // use "Hn" header format instead of button/link\n var lvl=(lookaheadMatch[3].length>6)?6:lookaheadMatch[3].length;\n var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,null,title);\n btn.onclick=onClickNestedSlider;\n btn.setAttribute("href","javascript:;");\n btn.setAttribute("title",tooltip);\n }\n else\n var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider);\n btn.sliderCookie = cookie; // save the cookiename (if any) in the button object\n\n // "non-click" MouseOver open/close slider\n if (lookaheadMatch[5]) btn.onmouseover=onClickNestedSlider;\n\n // create slider panel\n var panelClass=lookaheadMatch[4]?"floatingPanel":"sliderPanel";\n var panel=createTiddlyElement(place,"div",null,panelClass,null);\n panel.style.display = show;\n panel.button = btn; // so the slider panel know which button it belongs to\n btn.sliderPanel=panel;\n\n // render slider (or defer until shown) \n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n if (lookaheadMatch[1]||!lookaheadMatch[8]) {\n // render now if "++++" (init open) or NOT "..." (deferred render)\n w.subWikify(lookaheadMatch[7]?createTiddlyElement(panel,"blockquote"):panel,this.terminator);\n // align slider/floater position with button\n adjustSliderPos(place,btn,panel,panelClass);\n }\n else {\n var src = w.source.substr(w.nextMatch);\n var endpos=findMatchingDelimiter(src,"+++","===");\n panel.setAttribute("raw",src.substr(0,endpos));\n panel.setAttribute("blockquote",lookaheadMatch[7]?"true":"false");\n panel.setAttribute("rendered","false");\n w.nextMatch += endpos+3;\n if (w.source.substr(w.nextMatch,1)=="\sn") w.nextMatch++;\n if (config.options.chkDebugLazySliderDefer) alert("deferred '"+title+"':\sn\sn"+panel.getAttribute("raw"));\n }\n }\n }\n }\n)\n\n// TBD: ignore 'quoted' delimiters (e.g., "{{{+++foo===}}}" isn't really a slider)\nfunction findMatchingDelimiter(src,starttext,endtext) {\n var startpos = 0;\n var endpos = src.indexOf(endtext);\n // check for nested delimiters\n while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {\n // count number of nested 'starts'\n var startcount=0;\n var temp = src.substring(startpos,endpos-1);\n var pos=temp.indexOf(starttext);\n while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }\n // set up to check for additional 'starts' after adjusting endpos\n startpos=endpos+endtext.length;\n // find endpos for corresponding number of matching 'ends'\n while (startcount && endpos!=-1) {\n endpos = src.indexOf(endtext,endpos+endtext.length);\n startcount--;\n }\n }\n return (endpos==-1)?src.length:endpos;\n}\n//}}}\n\n//{{{\nfunction onClickNestedSlider(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var theLabel = theTarget.firstChild.data;\n var theSlider = theTarget.sliderPanel\n var isOpen = theSlider.style.display!="none";\n // if using default button labels, toggle labels\n if (theLabel==">") theTarget.firstChild.data = "<";\n else if (theLabel=="<") theTarget.firstChild.data = ">";\n // if using default tooltips, toggle tooltips\n if (theTarget.getAttribute("title")=="Mostra")\n theTarget.setAttribute("title","Esconde");\n else if (theTarget.getAttribute("title")=="Esconde")\n theTarget.setAttribute("title","Mostra");\n if (theTarget.getAttribute("title")=="Mostra "+theLabel)\n theTarget.setAttribute("title","Esconde "+theLabel);\n else if (theTarget.getAttribute("title")=="Esconde "+theLabel)\n theTarget.setAttribute("title","Mostra "+theLabel);\n // deferred rendering (if needed)\n if (theSlider.getAttribute("rendered")=="false") {\n if (config.options.chkDebugLazySliderRender)\n alert("rendering '"+theLabel+"':\sn\sn"+theSlider.getAttribute("raw"));\n var place=theSlider;\n if (theSlider.getAttribute("blockquote")=="true")\n place=createTiddlyElement(place,"blockquote");\n wikify(theSlider.getAttribute("raw"),place);\n theSlider.setAttribute("rendered","true");\n }\n // show/hide the slider\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));\n else\n theSlider.style.display = isOpen ? "none" : "block";\n if (this.sliderCookie && this.sliderCookie.length)\n { config.options[this.sliderCookie]=!isOpen; saveOptionCookie(this.sliderCookie); }\n // align slider/floater position with target button\n adjustSliderPos(theSlider.parentNode,theTarget,theSlider,theSlider.className);\n return false;\n}\n\n// hijack animation handler 'stop' handler so overflow is visible after animation has completed\nSlider.prototype.coreStop = Slider.prototype.stop;\nSlider.prototype.stop = function() { this.coreStop(); this.element.style.overflow = "visible"; }\n\n// adjust panel position based on button position\nif (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel,panelClass) {\n ///////////////////////////////////////////////////////////////////////////////\n /// EXPERIMENTAL HACK - WORKS IN SOME CASES, NOT IN OTHERS\n ///////////////////////////////////////////////////////////////////////////////\n // "if this panel is floating and the parent is not also a floating panel"...\n if (panelClass=="floatingPanel" && place.className!="floatingPanel") {\n var left=0; var top=btn.offsetHeight;\n if (place.style.position!="relative") { left+=findPosX(btn); top+=findPosY(btn); }\n panel.style.left=left+"px"; panel.style.top=top+"px";\n }\n}\n//}}}\n// //===
Estas opções de personalização ficam guardadas no browser\n\nIndique o seu nome de utilizador. Use uma ~PalavraWiki (por ex., ~JoséSilva)\n<<option txtUserName>>\n<<option pasUploadPassword>>\n<<option chkRegExpSearch>> ~ProcuraExpReg\n<<option chkCaseSensitiveSearch>> ~ProcuraSensívMaiúsc\n<<option chkAnimate>> ~ActivarAnimações\n\n[[Configuração]]\n[[Ajuda na edição]]
[[Secção de Estatística e Aplicações|http://www.math.ist.utl.pt/stat/]] - [[Departamento de Matemática|http://www.math.ist.utl.pt/]] - [[Instituto Superior Técnico|http://www.ist.utl.pt/]]\n[[Osmosoft|http://www.osmosoft.com]] e [[Paulo Soares|http://www.math.ist.utl.pt/~psoares/]] © 2006
<div class='header' macro='gradient vert #18f #04b'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n<div id='topMenu' refresh='content' tiddler='MainMenu'></div>\n</div>\n\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n<div id='pageFooter' refresh='content' tiddler='PageFooter'></div>\n</div>
|pauta|k\n|Nº|Nome|Trabalho|1º exame|2º exame|Nota final|h\n|52685|Tânia Isabel Santos Fernandes Conceição|||| NA|\n|52689|Maria Raquel Bengelsdorff Regueiras Neto|||| NA|\n|52694|Renato Filipe Ribeiro França| 10.0|| 5.1| RE|\n|52700|Daniela Patrícia Soeiro Santos|||| NA|\n|52702|Bruno Miguel Santos Silva| 15.0|| 12.0| 13|\n|52705|Michelle Ângela Nunes Vieira|||| NA|\n|54143|Daniela Neves Pontes| 10.0|| 9.5| 10|\n|54159|Sílvia Quina Nobre| 15.0|| 12.5| 13|
/***\n|!Name:|PlasticCalendarPlugin |\n|!Version:|1.2.1 - 04/06/2006|\n|!Source:|http://www.math.ist.utl.pt/~psoares/addons.html |\n|!Authors:|[[Paulo Soares|mailto:psoares@math.ist.utl.pt]]|\n|!Type:|Macro|\n|!Requires:|TiddlyWiki >= 2.0.8 |\n!Description\nThis plugin creates a custom Gregorian calendar. A single month calendar has navigation buttons at the top line in order to change month and year. With multiple months the calendar is static. Different categories of holidays can be defined in a configuration tiddler and those categories can be styled by the user. There's also a simple scheduling mechanism.\nThis plugin is based on previous work by [[TiagoDionízio|http://mega.ist.utl.pt/~tngd/twiki/twiki.cgi/]]'s.\n!Usage\nCopy this tiddler to your TW, tag it with 'systemConfig', save your TW, refresh your browser and drop {{{<<calendar>>}}} in a tiddler to get a calendar for the current month. You can also use any of the following options {{{<<calendar year:2007 month:6 numberMonths:6 numberColumns:2 tag:'work'>>}}}.\n\nYou can also label the schedules with multiple tags separating them with {{{#}}} such as {{{tag:'work#excludeLists'}}}. However only the first tag is used to display scheduled days in the calendar.\n!Revision history\n1.2.2 - 04/06/2006\n*restored the use of multiple tags\n1.2.0 - 18/05/2006\n*plugin name changed to PlasticCalendarPlugin (because there are other CalendarPlugin's out there...)\n*now using named parameters\n*added categories of holidays (suggested by Paco Rivière)\n1.1.0 - 02/10/2005\n*initial release\n!Code\n***/\n{{{\nversion.extensions.PlasticCalendarPlugin = {\n major: 1, minor: 2, revision: 1,\n date: new Date(2006, 5, 4),\n type: 'macro',\n source: "http://www.math.ist.utl.pt/~psoares/addons.html#PlasticCalendarPlugin"\n};\n\n// --------------------------------------------------------------------\n// Calendar\n// --------------------------------------------------------------------\n\nconfig.macros.calendar = {holidays: []};\nconfig.macros.calendar.options = {\n // months as they appear in the calendar's title\n calendarMonths: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],\n // week day titles as they appear on the calendar\n calendarWeekDays: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],\n\n // day week starts from (normally 0-Su or 1-Mo)\n calendarWeekStart: 0,\n calendarToday: "Today",\n calendarHoliday: "Holiday: ",\n calendarLongDateFormat: "0DD/0MM/YYYY",\n calendarShortDateFormat: "0DD/0MM",\n calendarTag: ["schedule"]\n};\n\n/***************************************************************************\n** Internal functions\n***************************************************************************/\nvar cldTag;\n\nconfig.macros.calendar.calendarIsHoliday = function(date) {\n var cm = config.macros.calendar;\n var longHoliday = date.formatString(cm.options.calendarLongDateFormat);\n var shortHoliday = date.formatString(cm.options.calendarShortDateFormat);\n for(var i = 0; i < cm.holidays.length; i++) {\n if(cm.holidays[i][0] == longHoliday || cm.holidays[i][0] == shortHoliday) {\n return cm.holidays[i];\n }\n }\n return null;\n}\n\nconfig.macros.calendar.onClickOtherDay = function(e) {\n var day = this.getAttribute('tiddlylink');\n story.displayTiddler(null,day,DEFAULT_EDIT_TEMPLATE);\n for(var i=0; i<cldTag.length;i++){\n story.setTiddlerTag(day, cldTag[i], 0);\n }\n story.focusTiddler(day,"text");\n}\n\nconfig.macros.calendar.getPopupText = function(title) {\n var popup_entries = store.getTiddlerText(title).split("\sn");\n var popup = popup_entries[0];\n if(popup_entries.length>1) popup += " ...";\n return popup;\n}\n\nconfig.macros.calendar.findCalendar = function(child) {\n var parent;\n while (child && child.parentNode) {\n parent = child.parentNode;\n if (parent.id == "calendarWrapper") {\n return parent;\n }\n child = parent;\n }\n return null;\n}\n\nconfig.macros.calendar.selectDate = function(e) {\n if (!e) var e = window.event;\n var cm = config.macros.calendar;\n var calendar = cm.findCalendar(this);\n if (calendar) {\n var d = this.getAttribute("date");\n if (d != null) cm.makeCalendar(calendar, new Date(new Number(d)));\n }\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return false;\n}\n\nconfig.macros.calendar.makeCalendar = function(calendar, dt_current) {\n var cm = config.macros.calendar;\n var dt_today = new Date(new Number(calendar.getAttribute("today")));\n var currentDay = new Date(new Number(calendar.getAttribute("currentDay")));\n var setControls = calendar.getAttribute("setControls");\n calendar.setAttribute("date", dt_current.valueOf());\n\n while (calendar.hasChildNodes())\n calendar.removeChild(calendar.firstChild);\n\nif(setControls==1){\n // get same date in the previous year\n var dt_prev_year = new Date(dt_current);\n dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);\n if (dt_prev_year.getDate() != dt_current.getDate())\n dt_prev_year.setDate(0);\n\n // get same date in the next year\n var dt_next_year = new Date(dt_current);\n dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);\n if (dt_next_year.getDate() != dt_current.getDate())\n dt_next_year.setDate(0);\n\n // get same date in the previous month\n var dt_prev_month = new Date(dt_current);\n dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);\n if (dt_prev_month.getDate() != dt_current.getDate())\n dt_prev_month.setDate(0);\n\n // get same date in the next month\n var dt_next_month = new Date(dt_current);\n dt_next_month.setMonth(dt_next_month.getMonth() + 1);\n if (dt_next_month.getDate() != dt_current.getDate())\n dt_next_month.setDate(0);\n}\n\n // get first day to display in the grid for current month\n var dt_firstday = new Date(dt_current);\n dt_firstday.setDate(1);\n dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - cm.options.calendarWeekStart) % 7);\n\n var area, header;\n var line, cell, i;\n\n // 1 - calendar header table\n // 2 - print weekdays titles\n // 3 - calendar days table \ncalendar.cellPadding = 0;\ncalendar.cellSpacing = 0;\narea = createTiddlyElement(calendar, "tbody");\n\n // 1 - calendar header table\n header = createTiddlyElement(area,"tr", "calendarHeader");\n header.cellPadding = 0;\n header.cellSpacing = 0;\n\nif(setControls==1){ \nvar headerValues = [\n [ "<<", "selectYear", dt_prev_year.valueOf() ],\n [ "<", "selectMonth", dt_prev_month.valueOf() ],\n [ cm.options.calendarMonths[dt_current.getMonth()] + ' ' + dt_current.getFullYear(),\n "selectToday", dt_today.valueOf() ],\n [ ">", "selectMonth", dt_next_month.valueOf() ],\n [ ">>", "selectYear", dt_next_year.valueOf() ]\n ];\n\n for (i = 0; i < headerValues.length; ++i) {\n var link = createTiddlyElement(header,"td", null, null, headerValues[i][0]);\n if(i==2) link.colSpan=3;\n link.onclick = cm.selectDate;\n link.setAttribute("date", headerValues[i][2]);\n }\n} else {\n var link = createTiddlyElement(header,"td", null, null, cm.options.calendarMonths[dt_current.getMonth()] + ' ' + dt_current.getFullYear());\nlink.colSpan=7;\n}\n\n // 2 - print weekdays titles\n line = createTiddlyElement(area, "tr", "weekNames");\n for (var n = 0; n < 7; ++n) {\n createTiddlyElement(line, "td", null, null, cm.options.calendarWeekDays[(cm.options.calendarWeekStart + n)%7]);\n }\n\n // 3 - calendar days table\n var dt_current_day = new Date(dt_firstday);\n var day_class;\n var title;\n var holiday;\n var popup;\n var clickHandler;\n\n while (dt_current_day.getMonth() == dt_current.getMonth() ||\n dt_current_day.getMonth() == dt_firstday.getMonth()) {\n\n // print row header\n line = createTiddlyElement(area, "tr", "calendarLine", null, null);\n for (var n_current_wday = 0; n_current_wday < 7; ++n_current_wday) {\n title = dt_current_day.formatString(cm.options.calendarLongDateFormat);\n clickHandler = cm.onClickOtherDay;\n popup = null;\n holiday = cm.calendarIsHoliday(dt_current_day);\n\n if (holiday != null) {\n // holidays\n day_class = (holiday.length==3)? holiday[2]: "holiDay";\n popup = cm.options.calendarHoliday + holiday[1];\n } else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6) {\n // weekend days\n day_class = "weekDay";\n } else {\n // print working days of current month\n day_class = "workingDay";\n }\n\nif(dt_current_day.getMonth() == dt_current.getMonth()){\n if (currentDay.valueOf() == dt_current_day.valueOf()) {\n // print current date\n if (store.tiddlerExists(title)){\n // day has a tiddler associated with it\n day_class += " currentscheduledDay";\n clickHandler = onClickTiddlerLink;\n popup = cm.options.calendarToday + ": "+ cm.getPopupText(title);\n } else {\n day_class += " currentDay";\n popup = cm.options.calendarToday;\n}\n}\n\n if (store.tiddlerExists(title) && store.getTiddler(title).isTagged(cldTag[0]) && dt_current_day.valueOf() != dt_today.valueOf()) {\n // day has a tiddler associated with it\n day_class += " scheduledDay";\n clickHandler = onClickTiddlerLink;\n popup = cm.getPopupText(title);\n }\n}\n\n // extra formatting for days of previous or next month\n if (dt_current_day.getMonth() != dt_current.getMonth()) {\n day_class += " otherMonthDay";\n }\n\n var text = dt_current_day.getDate();\n var cell = createTiddlyElement(line, "td", null, day_class, text);\n cell.onclick=clickHandler;\n cell.setAttribute("date", dt_current_day.valueOf());\n cell.setAttribute("tiddlyLink", title);\n if(popup) cell.setAttribute("title", popup);\n\n dt_current_day.setDate(dt_current_day.getDate()+1);\n }\n }\n}\n\nconfig.macros.calendar.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n var start_date = new Array();\n var date = new Date();\n var cldParams = paramString.parseParams('calendarParams', null, true);\n var cldYear = (cldParams[0].year)?parseFloat(cldParams[0].year[0]): date.getFullYear();\n var cldMonth = (cldParams[0].month)?parseFloat(cldParams[0].month[0]): date.getMonth();\n var n_months = (cldParams[0].numberMonths)?parseFloat(cldParams[0].numberMonths[0]): 1;\n var n_cols = (cldParams[0].numberColumns)?parseFloat(cldParams[0].numberColumns[0]): 3;\n cldTag = (cldParams[0].tag)?cldParams[0].tag[0].split("#"): config.macros.calendar.options.calendarTag;\n for(var i = 0; i < n_months; i++){\n start_date[i] = new Date(cldYear, cldMonth+i, 1);\n }\n var n_rows = Math.max(1,Math.ceil(n_months/n_cols));\n n_cols = Math.min(n_cols,n_months);\n var setControls=(n_months>1)? 0: 1;\n var currentDay = new Date();\n currentDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), currentDay.getDate());\n var holder = createTiddlyElement(place, "table", null,"calendarHolder");\n var holderTable = createTiddlyElement(holder, "tbody");\n for(var i = 0; i < n_rows; i++){\n var holderLine = createTiddlyElement(holderTable, "tr");\n for(var j = 0; j < n_cols; j++){\n var holderCell = createTiddlyElement(holderLine, "td");\n if(n_cols*i+j+1<=n_months){\n var calendar = createTiddlyElement(holderCell, "table", "calendarWrapper");\n calendar.setAttribute("name", "calendarWrapper");\n calendar.setAttribute("setControls", setControls);\n calendar.setAttribute("today", start_date[n_cols*i+j].valueOf());\n calendar.setAttribute("currentDay", currentDay.valueOf());\n config.macros.calendar.makeCalendar(calendar, start_date[n_cols*i+j]);\n }\n }\n }\n}\n\nfunction refreshCalendars(hint) {\n var calendars = document.getElementsByName("calendarWrapper");\n var i, c;\n for (i = 0; i < calendars.length; ++i) {\n c = calendars.item(i);\n if (c.id == "calendarWrapper") {\n config.macros.calendar.makeCalendar(c, new Date(new Number(c.getAttribute("date"))));\n }\n }\n}\n\nstore.addNotification(null, refreshCalendars);\n\nsetStylesheet("/***\sn!Calendar Styles\sn***/\sn/*{{{*/\sn .viewer .calendarHolder {\sn margin-left: auto;\sn margin-right: auto;\sn border: none;\sn}\sn\sn .viewer .calendarHolder table {\sn border: none;\sn margin: 0;\sn}\sn\sn .viewer .calendarHolder tr {\sn border: none;\sn vertical-align: top;\sn}\sn\sn .viewer .calendarHolder td {\sn border: none;\sn vertical-align: top;\sn}\sn\sn .viewer #calendarWrapper {\sn width: 21em;\sn border: 2px solid #4682b4;\sn cursor: pointer;\sn}\sn\sn #calendarWrapper #calendarLine td {\sn height: 2.5em;\sn}\sn\sn #calendarWrapper tr {\sn border:none;\sn}\sn\sn #calendarWrapper td {\sn text-align: center;\sn vertical-align: middle;\sn width: 14.28%;\sn border:none;\sn}\sn\sn #calendarWrapper #calendarHeader td{\sn color: #ffffff;\sn background-color: #4682b4;\sn height: 2em;\sn}\sn\sn #calendarWrapper #weekNames td {\sn color: #ffffff;\sn background-color: #87cefa;\sn height: 2em;\sn}\sn\sn #calendarWrapper .weekDay {\sn background-color: #ccff99;\sn}\sn\sn #calendarWrapper .holiDay {\sn background-color: #9acd32;\sn}\sn\sn #calendarWrapper .currentDay {\sn border: solid #ff0000 2px;\sn font-weight: bold;\sn}\sn\sn #calendarWrapper .currentscheduledDay {\sn border: solid #ff0000 2px;\sn font-weight: bold;\sn}\sn\sn #calendarWrapper .workingDay {\sn background-color: #ffffff;\sn}\sn\sn #calendarWrapper .scheduledDay {\sn border: solid orange 2px;\sn}\sn\sn #calendarWrapper .otherMonthDay {\sn background-color: #999;\sn}\sn\sn/*}}}*/","CalendarStyles");\n}}}
config.macros.calendar.options = {\n// months as they appear in the calendar's title\n calendarMonths: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],\n // week day titles as they appear on the calendar\n calendarWeekDays: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],\n\n // day week starts from (normally 0-Su or 1-Mo)\n calendarWeekStart: 0,\n calendarToday: "Hoje",\n calendarHoliday: "",\n calendarLongDateFormat: "0DD/0MM/YYYY",\n calendarShortDateFormat: "0DD/0MM"\n};
config.macros.calendar.holidays = [ ["01/01","Ano Novo"], ["28/02/2006","Carnaval"], ["27/02/2006","Férias de Carnaval"],["01/03/2006","Férias de Carnaval"],["13/04/2006","Férias da Páscoa"], ["14/04/2006","Sexta-feira Santa"], ["16/04/2006","Páscoa"],["17/04/2006","Férias da Páscoa"],["18/04/2006","Férias da Páscoa"],["19/04/2006","Férias da Páscoa"], ["25/04","Dia da Liberdade"], ["01/05","Dia do Trabalhador"], ["10/06","Dia de Portugal"], ["15/06","Corpo de Deus"], ["15/08","Assunção"], ["05/10","Implantação da República"], ["01/11","Todos-os-Santos"], ["01/12","Restauração da Independência"], ["08/12","Imaculada Conceição"], ["25/12","Natal"] ];
// ---------------------------------------------------------------------------------\n// Translateable strings\n// ---------------------------------------------------------------------------------\n\n// Messages\nmerge(config.messages,{\n customConfigError: "Erro no tiddler de systemConfig '%1' - %0",\n savedSnapshotError: "Parece que este TiddlyWiki foi guardado incorrectamente. Por favor veja http://www.tiddlywiki.com/#DownloadSoftware para mais detalhes",\n subtitleUnknown: "(desconhecido)",\n undefinedTiddlerToolTip: "O tiddler '%0' ainda não existe",\n shadowedTiddlerToolTip: "O tiddler '%0' ainda não existe, mas tem um modelo pré-definido",\n tiddlerLinkTooltip: "%0 - %1, %2",\n externalLinkTooltip: "Ligação externa a %0",\n noTags: "Não há tiddlers com etiquetas",\n notFileUrlError: "É necessário guardar este TiddlyWiki num ficheiro antes de poder guardar alterações",\n cantSaveError: "Não é possível guardar alterações. Isto pode acontecer porque o seu browser não o permite (em alternativa, use o Firefox se puder), ou porque o nome do caminho para o seu ficheiro TiddlyWiki contém caracteres ilegais",\n invalidFileError: "O ficheiro original '%0' não parece ser um TiddlyWiki válido",\n backupSaved: "Ficheiro de backup guardado",\n backupFailed: "Falha ao guardar o ficheiro de backup",\n rssSaved: "Ficheiro RSS guardado",\n rssFailed: "Falha ao guardar o ficheiro RSS",\n emptySaved: "Modelo vazio guardado",\n emptyFailed: "Falha ao guardar o modelo vazio",\n mainSaved: "Ficheiro principal de TiddlyWiki guardado",\n mainFailed: "Falha ao guardar o ficheiro principal de TiddlyWiki. As suas alterações não foram guardadas",\n macroError: "Erro na macro <<%0>>",\n macroErrorDetails: "Erro ao executar macro <<%0>>:\sn%1",\n missingMacro: "Essa macro não existe",\n overwriteWarning: "Um tiddler chamado '%0' já existe. Escolha OK para substituí-lo",\n unsavedChangesWarning: "ATENÇÃO! Há alterações no TiddlyWiki que ainda não foram guardadas\sn\snEscolha OK para guardar\snEscolha CANCEL para abandonar as alterações",\n confirmExit: "--------------------------------\sn\snHá alterações no TiddlyWiki que ainda não foram guardadas. Se continuar irá perder essas alterações\sn\sn--------------------------------",\n saveInstructions: "GuardarAlterações"});\n\nmerge(config.messages.messageClose,{\n text: "fechar",\n tooltip: "fecha esta área de mensagens"});\n\nconfig.messages.dates.months = ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];\nconfig.messages.dates.days = ["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"];\n\nmerge(config.views.wikified.tag,{\n labelNoTags: "sem etiquetas",\n labelTags: "etiquetas: ",\n openTag: "Abrir etiqueta '%0'",\n tooltip: "Abrir tiddlers marcados com '%0'",\n openAllText: "Abrir todos",\n openAllTooltip: "Abrir todos estes tiddlers",\n popupNone: "Não há outros tiddlers marcados com '%0'"});\n\nmerge(config.views.wikified,{\n defaultText: "O tiddler '%0' ainda não existe. Faça duplo-clique para criá-lo",\n defaultModifier: "(em falta)",\n shadowModifier: "(sombra)"});\n\nmerge(config.views.editor,{\n tagPrompt: "Escreva as etiquetas separadas por espaços, [[use duplos parênteses rectos]] se necessário, ou atribua existentes",\n defaultText: "Escreva o texto para '%0'"});\n\nmerge(config.views.editor.tagChooser,{\n text: "etiquetas",\n tooltip: "Escolha entre as etiquetas existentes para atribuir a este tiddler",\n popupNone: "Não há etiquetas definidas",\n tagTooltip: "Atribuir a etiqueta '%0'"});\n\nmerge(config.macros.search,{\n label: "procurar",\n prompt: "Procura neste TiddlyWiki",\n accessKey: "F",\n successMsg: "%0 tiddlers encontrados que contêm %1",\n failureMsg: "Não foi encontrado nenhum tiddler que contenha %0"});\n\nmerge(config.macros.tagging,{\n label: "etiquetando:",\n labelNotTag: "não etiquetando",\n tooltip: "Lista de tiddlers etiquetados com '%0'"});\n\nmerge(config.macros.timeline,{\n dateFormat: "DD MMM YYYY"});\n\nmerge(config.macros.allTags,{\n tooltip: "Abre tiddlers com a etiqueta '%0'",\n noTags: "Não há tiddlers etiquetados"});\n\nconfig.macros.list.all.prompt = "Todos os tiddlers por ordem alfabética";\nconfig.macros.list.missing.prompt = "Tiddlers com ligações de outros tiddlers mas que não existem";\nconfig.macros.list.orphans.prompt = "Tiddlers sem ligações de outros tiddlers";\nconfig.macros.list.shadowed.prompt = "Tiddlers na sombra com conteúdo pré-definido";\n\nmerge(config.macros.closeAll,{\n label: "fechar todos",\n prompt: "Fecha todos os tiddlers abertos (excepto os que estão a ser editados)"});\n\nmerge(config.macros.permaview,{\n label: "permavista",\n prompt: "Ligação a um URL que mostra todos os tiddlers que estão abertos"});\n\nmerge(config.macros.saveChanges,{\n label: "guardar alterações",\n prompt: "Guarda todas as alterações em ficheiro",\n accessKey: "S"});\n\nmerge(config.macros.newTiddler,{\n label: "novo tiddler",\n prompt: "Cria um novo tiddler",\n title: "Novo tiddler",\n accessKey: "N"});\n\nmerge(config.macros.newJournal,{\n label: "novo diário",\n prompt: "Cria um novo tiddler com a data e hora actuais",\n accessKey: "J"});\n\nmerge(config.commands.closeTiddler,{\n text: "fechar",\n tooltip: "Fecha este tiddler"});\n\nmerge(config.commands.closeOthers,{\n text: "fechar outros",\n tooltip: "Fecha todos os outros tiddlers"});\n\nmerge(config.commands.editTiddler,{\n text: "editar",\n tooltip: "Edita este tiddler",\n readOnlyText: "view",\n readOnlyTooltip: "View the source of this tiddler"});\n\nmerge(config.commands.saveTiddler,{\n text: "guardar",\n tooltip: "Guarda as alterações a este tiddler"});\n\nmerge(config.commands.cancelTiddler,{\n text: "cancelar",\n tooltip: "Cancela as alterações a este tiddler",\n warning: "Tem a certeza que quer cancelar as alterações a '%0'?",\n readOnlyText: "ver",\n readOnlyTooltip: "Ver este tiddler normalmente"});\n\nmerge(config.commands.deleteTiddler,{\n text: "eliminar",\n tooltip: "Elimina este tiddler",\n warning: "Tem a certeza que quer eliminar '%0'?"});\n\nmerge(config.commands.permalink,{\n text: "permaligação",\n tooltip: "Permaligação para este tiddler"});\n\nmerge(config.commands.references,{\n text: "referências",\n tooltip: "Abre tiddlers que ligam a este",\n popupNone: "Sem referências"});\n\nmerge(config.commands.jump,{\n text: "saltar",\n tooltip: "Salta para outro tiddler aberto"});\n\nmerge(config.shadowTiddlers,{\n DefaultTiddlers: "ComoComeçar",\n MainMenu: "ComoComeçar",\n SiteTitle: "O meu TiddlyWiki",\n SiteSubtitle: "um bloco de notas reutilizável e não-linear na web",\n SiteUrl: "http://www.tiddlywiki.com/",\n ComoComeçar: "Para começar a usar este TiddlyWiki vazio terá de modificar os seguintes tiddlers:\sn* SiteTitle & SiteSubtitle: O título e o subtítulo do site, como pode ver acima (depois de guardar as alterações, eles aparecerão também na barra de título do browser)\sn* MainMenu: O menu (usualmente à esquerda)\sn* DefaultTiddlers: Contém o nome dos tiddlers que pretende que apareçam quando o TiddlyWiki é aberto\snSerá também necessário inserir o nome de utilizador que servirá para assinar as edições: <<option txtUserName>>",\n SideBarOptions: "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'opções »' 'Muda as opções avançadas do TiddlyWiki'>>",\n OptionsPanel: "Estas opções de personalização do TiddlyWiki ficam guardadas no seu browser\sn\snO seu nome de utilizador para assinar os textos. Use uma PalavraWiki (eg, JoséSilva)\sn\sn<<option txtUserName>>\sn<<option chkSaveBackups>> GuardarBackups\sn<<option chkAutoSave>> AutoGuardar\sn<<option chkRegExpSearch>> ProcuraExpReg\sn<<option chkCaseSensitiveSearch>> ProcuraSensívMaiúsc\sn<<option chkAnimate>> ActivarAnimações\sn\snVer OpçõesAvançadas",\n OpçõesAvançadas: "<<option chkGenerateAnRssFeed>> GerarUmFicheiroRSS\sn<<option chkOpenInNewWindow>> AbrirLigaçõesNumaNovaJanela\sn<<option chkSaveEmptyTemplate>> CriaNovoModeloVazio\sn<<option chkToggleLinks>> Fazer clique em ligações para tiddlers abertos, fecha-os\sn^^(desactive com Control ou outra tecla modificadora)^^\sn<<option chkHttpReadOnly>> EscondeFunçõesDeEdição quando acedido por HTTP\sn<<option chkForceMinorUpdate>> Trata as edições como AlteraçõesMenores preservando a data e a hora\sn^^(desactive pressionando Shift enquanto clica 'guardar' ou pressionando Ctrl-Shift-Enter^^\sn<<option chkConfirmDelete>> ConfirmarAntesDeEliminar\snNúmero máximo de linhas na caixa de edição do tiddler: <<option txtMaxEditRows>>\snNome do directório para os ficheiros de backup: <<option txtBackupFolder>>\sn",\n SideBarTabs: "<<tabs txtMainTab 'Data' 'Tiddlers por ordem cronológica' TabTimeline 'Título' 'Tiddlers por ordem alfabética' TabAll 'Etiquetas' 'Todas as etiquetas' TabTags 'Mais' 'Mais listas' TabMore>>",\n TabTimeline: "<<timeline>>",\n TabAll: "<<list all>>",\n TabTags: "<<allTags>>",\n TabMore: "<<tabs txtMoreTab 'Em falta' 'Tiddlers em falta' TabMoreMissing 'Orfãos' 'Tiddlers sem ligações de outros tiddlers' TabMoreOrphans Sombra 'Tiddlers na sombra' TabMoreShadowed>>",\n TabMoreMissing: "<<list missing>>",\n TabMoreOrphans: "<<list orphans>>",\n TabMoreShadowed: "<<list shadowed>>"});
!1. Introdução\nConceitos, objectivos e exemplos.\n!2. Modelos probabilísticos\nProcessos de amostragem e os modelos probabilísticos usuais (Produto de distribuições de Poisson, Multinomial e Produto de Multinomiais). Relação probabilística entre os esquemas amostrais básicos. Modelos Hipergeométricos.\n!3. A metodologia de máxima verosimilhança\nTipos de modelos estruturais e sua exemplificação. Estimação paramétrica. Testes de ajustamento dos modelos. Testes condicionais de hipóteses redutoras de modelos.\n!4. Análise de modelos log-lineares\nEstudo de modelos log-lineares em tabelas sem variáveis explicativas de dimensões 2 e 3. Descrição genérica da análise em tabelas sem variáveis explicativas. Modelos bidimensionais e multidimensionais. Modelos ordinais. Métodos iterativos de estimação log-linear. \nEstudo de modelos log-lineares em tabelas com variáveis explicativas. Correspondência entre as estruturas log-lineares nos dois cenários. Análise log-linear de tabelas com variáveis explicativas. Execução computacional.\n!5. Análise de modelos estritamente lineares\nDescrição de modelos de simetria e de homogeneidade marginal. Modelo linear geral.\nAnálise destes modelos. Execução computacional.\n!6. Alguns tópicos adicionais\nMedida de concordância e estatística kapa. Testes condicionais exactos: teste exacto de Fisher. Teste de ~Mantel-Haenszel. Análise bayesiana de tabelas de contingência.
<<search>><<closeAll>><<newTiddler>><<saveChanges>><<upload>><<slider chkSliderOptionsPanel OptionsPanel 'opções »' 'Muda as opções avançadas do TiddlyWiki'>>
<<tabs txtMainTab 'Data' 'Tiddlers por ordem cronológica' TabTimeline 'Título' 'Tiddlers por ordem alfabética' TabAll 'Etiquetas' 'Tiddlers etiquetados' TabTags>>
2005/2006 - 2º semestre\n
Análise de Dados Categorizados
/*{{{*/\n.viewer .calendarHolder {\n font-size: 0.9em;\n}\n\n.viewer #calendarWrapper {\n width: 19em;\n}\n\n.viewer table{\n margin-left: auto;\n margin-right: auto;\n}\n\n.pauta tbody tr.oddRow {\nbackground: #efefef;\n}\n\n.pauta tbody tr.evenRow {\nbackground: #fff;\n}\n\nbody {\n font-family: "Bitstream Vera Sans",arial,helvetica;\n position: static;\n background: #eee;\n}\n\nh1,h2,h3,h4,h5 {\n padding-left: 0;\n background: transparent;\n}\n\nh1 {font-size: 1.4em;}\nh2 {font-size: 1.2em;}\nh3 {font-size: 1em;}\nh4 {font-size: .8em;}\nh5 {font-size: .6em;}\n\nhr {\n border: 0px solid #0044bb;\n color: #0044bb;\n background-color: #0044bb;\n}\n\n.button {\n border: 1px solid #eee;\n}\n\n.tiddler .button:hover {\n border: 1px solid #db4;\n}\n\n.tiddler .button {\n color: #014;\n border: 1px solid #ffffff;\n}\n\n#siteTitle .tiddlyLinkExisting,\n#siteTitle .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n.header {\n padding: 1.2em 0em 0.2em 0em;\n}\n\n.header a {\n color:#ffffff;\n padding: 0.25em 0.25em 0.25em 0.25em;\n}\n\n.header .button {\n border: none;\n font-weight: bold;\n}\n\n.header .externalLink {\n text-decoration: none;\n}\n\n.header a:hover {\n color:#000000;\n background: #ffee88;\n}\n\n.siteTitle {\n color: #ffee88;\n font-size: 2em;\n font-weight: bold;\n padding: 0 0 0 0.5em;\n}\n\n.siteSubtitle {\n color: #ffee88;\n font-weight: bold;\n}\n\n#topMenu {\n padding: 0.5em 0em 0em 1em;\n font-size: 0.9em;\n}\n\n#mainMenu {\n font-size: 1em;\n}\n\n#sidebarOptions .sliderPanel {\n background: #eee;\n}\n\n#sidebarTabs .tabSelected {\n color: #000;\n background: #fff;\n border: 1px solid #fff;\n}\n\n#sidebarTabs .tabUnselected {\n color: #999;\n background: #eee;\n border-top: solid 1px #ccc;\n border-left: solid 1px #ccc;\n border-right: solid 1px #ccc;\n border-bottom: none;\n}\n\n#sidebarTabs .tabContents {\n background: #fff;\nborder: 1px solid #fff;\n}\n\n#displayArea {\n margin: 1em 15.5em 0em 1em;\n}\n\n.tiddler {\n -moz-border-radius: 1.5em;\n padding-bottom: 0.5em;\n margin-bottom: 1em;\n background: #ffffff;\n border-bottom:1px solid #ccc;\n border-right:1px solid #ccc;\n}\n\n.title {\n font-size:200%;\n}\n\n.viewer th, thead td {\n background: #996;\n}\n\n.viewer hr {\n border: 0px solid #0044bb;\n color: #0044bb;\n background-color: #0044bb;\n}\n\n.viewer pre { background-color:#f8f8ff; border-color:#ddf; }\n\n#messageArea{\n background-color:#bde;\n font-size:90%;\n border: none;\n}\n\n#messageArea .button{\n text-decoration:none;\n font-weight:bold;\n background:transparent;\n border:0px;\n}\n\n#messageArea .button:hover{\n background: #acd;\n}\n\n.popup { background: #178; border: 1px solid #069; }\n\n#pageFooter {\n padding: 0.5em 0.5em 0.5em 0.5em;\n -moz-border-radius: 1.0em;\n background:#fff;\n border-bottom:1px solid #ccc;\n border-right:1px solid #ccc;\n}\n/*}}}*/
@media print {\n#mainMenu, #topMenu, #sidebar, #messageArea, #pageFooter {display: none ! important;}\n#displayArea {margin: 1em 0em 0em 0em;}\nbody {background:#ffffff;}\n.tiddler {border: none;padding:0;}\n.button {display: none ! important;}\n.header { padding: 1em 0em 1em 0em;}\nnoscript{ display:none;}\n.siteTitle {\nfont-size: 1.5em;\npadding: 0 0 0 0.5em;\n}\n.siteSubtitle{\nfont-size: 1em;\n}\n}
config.options.chkHttpReadOnly=false;
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 1/5/2006 0:27:11 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 1/5/2006 0:28:5 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 1/5/2006 14:44:28 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 2/5/2006 16:33:12 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 3/5/2006 14:51:55 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 3/5/2006 14:54:34 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 4/5/2006 20:32:32 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/5/2006 14:43:0 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/5/2006 22:24:40 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 9/5/2006 0:46:52 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 9/5/2006 16:42:57 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 11/5/2006 14:12:31 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 15/5/2006 14:48:0 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 16/5/2006 17:32:55 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 18/5/2006 14:30:58 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 18/5/2006 14:32:34 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 22/5/2006 19:49:7 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 25/5/2006 17:58:9 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 26/5/2006 13:16:59 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 26/5/2006 20:15:4 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 18:49:41 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 18:58:27 | PauloSoares | [[index.html|file:///home/psoares/TW/adc/index.html]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 19:5:46 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | | Ok |\n| 29/5/2006 19:13:42 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 19:16:56 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 19:17:50 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 29/5/2006 23:20:16 | PauloSoares | [[index.html|file:///home/psoares/TW/adc/index.html]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 31/5/2006 12:30:57 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 31/5/2006 16:44:27 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 2/6/2006 15:6:40 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 2/6/2006 15:8:43 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 4/6/2006 16:28:9 | PauloSoares | [[index.html|file:///home/psoares/TW/adc/index.html]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/6/2006 16:16:6 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/6/2006 16:16:37 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 16/6/2006 11:1:8 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 19/6/2006 10:3:3 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 19/6/2006 13:25:33 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 27/6/2006 19:5:12 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/7/2006 12:10:45 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 6/7/2006 12:10:57 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 10/7/2006 16:3:25 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 10/7/2006 19:57:35 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 11/7/2006 11:30:18 | GiovaniSilva | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 11/7/2006 17:25:41 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |\n| 3/9/2006 16:52:16 | PauloSoares | [[/|http://www.math.ist.utl.pt/~gsilva/adc/]] | [[store.php|http://www.math.ist.utl.pt/~gsilva/adc/store.php]] | | index.html | |
/***\n<<tiddler UploadPluginDoc>>\n!Code\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 3, revision: 1, \n date: new Date(2006,3,30),\n type: 'macro',\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n docs: 'http://tiddlywiki.bidix.info/#UploadPluginDoc'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 2, date: new Date(2006,3,11),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n var size = 15;\n if (params[1])\n size = params[1];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("br");\n place.appendChild(c);\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.dirname(storeUrl)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n displayMessage(config.macros.upload.messages.aboutToUpload.format([this.dirname(storeUrl)]), this.dirname(storeUrl));\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n if (uploadDir) {\n rssPath = uploadDir + "/" + config.macros.upload.basename(rssPath);\n } else {\n rssPath = config.macros.upload.basename(rssPath);\n }\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+rssPath]), config.macros.upload.dirname(storeUrl)+"/"+rssPath);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n revised = revised.replace(new RegExp("<title>[^<]*</title>", "im"),"<title>"+ newSiteTitle +"</title>");\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+toFilename]), config.macros.upload.dirname(storeUrl)+"/"+toFilename);\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) { }\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "\sr\sn";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data;name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir\n + ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data;name=\s"userfile\s";filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n request.open("POST", storeUrl, true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n request.open("GET", document.location.toString(), true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]));\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nconfig.shadowTiddlers.UploadPluginDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadPluginDoc ]]\sn"; \n\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n//}}}\n////===
config.macros.upload.messages = {\n aboutToUpload: "Em breves instantes o TiddlyWiki será guardado remotamente em %0",\n errorDownloading: "Erro no acesso",\n errorUploadingContent: "Erro ao guardar remotamente",\n fileNotFound: "ficheiro não encontrado",\n fileNotUploaded: "Ficheiro %0 NÃO guardado remotamente",\n mainFileUploaded: "Arquivo principal de TiddlyWiki guardado remotamente em %0",\n urlParamMissing: "falta url param",\n rssFileNotUploaded: "Ficheiro RSS %0 NÃO guardado remotamente",\n rssFileUploaded: "Ficheiro RSS guardado remotamente em %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Guarda local e remotamente",\n promptParamMacro: "Guarda local e remotamente em %0", \n uploadLabel: "guardar remotamente", \n saveLabel: "guardar remotamente", \n saveToDisk: "guardar para o disco"\n}\n\nconfig.macros.option.passwordCheckboxLabel = " Guardar password";\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\nconfig.macros.upload.uploadLabel = config.macros.upload.label.uploadLabel;\nconfig.macros.upload.saveLabel = config.macros.upload.label.saveLabel;\nconfig.macros.upload.promptOption = config.macros.upload.label.promptOption;
{{{\n//URL do script de autenticação e upload\nconfig.options.txtUploadStoreUrl = 'http://www.math.ist.utl.pt/~gsilva/adc/store.php';\n//Nome relativo da directoria onde o ficheiro é guardado\nconfig.options.txtUploadDir = '';\n//Nome do ficheiro que é guardado remotamente\nconfig.options.txtUploadFilename = 'index.html';\n//Nome de uma directoria de backup remota\nconfig.options.txtUploadBackupDir = '';\n}}}
<div class='toolbar' macro='toolbar +editTiddler jump closeOthers -closeTiddler'></div>\n<div class='title' macro='view title'></div>\n<!--<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (created <span macro='view created date [[DD MMM YYYY]]'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>-->\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagClear'></div>