http://www.aca-m.org\n\nA Associação de Cidadãos Auto-Mobilizados tem como objecto social promover o fim da guerra civil nas estradas portuguesas, advogando um pacto social que valorize a segurança e a cidadania nos transportes. Propõe-se defender os direitos humanos e cívicos dos transeuntes portugueses (sejam eles condutores, passageiros ou peões), e pugnar pela sua mobilização e responsabilização cívica.
http://www.aenor.pt/\n\nEdifício Ariane, Rua Antero de Quental, 381-3º\n4455-586 PERAFITA \n\nTelefone: 229997490\nFax: 229940535
http://www.tagzania.com/user/pontos_negros/amadora\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/amadora]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/amadora#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>
\n[[Decreto Lei n.º 239/2004 de 21 de Dezembro|doc/dl2392004epepe.pdf]]\nTransforma o IEP - Instituto das Estradas de Portugal em entidade pública empresarial, que adopta a denominação ''EP - Estradas de Portugal, E. P. E.''. Reestruturações anteriores:\n** [[Decreto-Lei n.º 227/2002 de 30 de Outubro|doc/69987009.pdf]]. Opera a fusão no Instituto das Estradas de Portugal do Instituto das Estradas de Portugal, do Instituto para a Construção Rodoviária e do Instituto para a Conservação e Exploração da Rede Rodoviária, pela transferência para o Instituto das Estradas de Portugal de todas as respectivas atribuições e competências.\n**[[ Decreto-Lei n.º 237/99 de 25 de Junho|doc/38433856.pdf]]. Extingue a JAE e a JAE Construção, S. A., e cria em sua substituição o Instituto das Estradas de Portugal (IEP), o Instituto para a Construção Rodoviária (ICOR) e o Instituto para a Conservação e Exploração da Rede Rodoviária (ICERR)\n\n[[Decreto n.º 467/72 de 22 de Novembro|doc/17001712.pdf]]\nOutorga a ''Brisa - Auto-Estradas de Portugal'' a concessão da construção, conservação e exploração de auto-estradas. Alterações:\n**[[Decreto Regulamentar n.º 5/81 de 23 de Janeiro|doc/01730187.pdf]]. Concessão de auto-estradas à BRISA. Altera as bases constantes do Decreto 467/72, de 22 de Novembro (concessão da construção, conservação e exploração de auto-estradas a Brisa-Auto-Estradas de Portugal, S.A.R.L.).\n** [[Decreto-Lei n.º 458/85 de 30 de Outubro|doc/00020023.pdf]]. Outorga à BRISA - Auto-Estradas de Portugal, S. A. R. L., a concessão da construção, conservação e exploração dos lanços Porto-Cruz, da auto-estrada Porto-Braga, e Porto-Campo, da auto-estrada Porto-Amarante\n** [[Decreto-Lei n.º 315/91 de 20 de Agosto|doc/42614274.pdf]]. Aprova as novas bases da concessão da construção, conservação e exploração de auto-estradas, outorgada à BRISA - Auto-Estradas de Portugal, S. A.\n** [[Decreto-Lei n.º 314-A/2002 de 26 de Dezembro|doc/00020003.pdf]]. Aprova as modificações ao contrato de concessão da construção, conservação e exploração de auto-estradas outorgado à BRISA - Auto-Estradas de Portugal, S. A.\n\n[[Decreto-Lei n.º 393-A/98, de 4 de Dezembro|doc/00300052.pdf]]\nAtribui ao consórcio ''Auto-Estradas do Atlântico - Concessões Rodoviárias de Portugal, S. A.'', a concessão da concepção, projecto, construção, financiamento, exploração e conservação de lanços de auto-estrada na zona Oeste de Portugal e aprova as bases da concessão. Alterações:\n** [[Decreto-Lei n.o 41/2004 de 2 de Março|doc/11061107.pdf]]. Altera a base LII das bases da concessão atribuída ao consórcio Auto-Estradas do Atlântico, S. A., aprovadas pelo Decreto-Lei n.º 393-A/98, de 4 de Dezembro.\n \n[[Decreto-Lei n.º 248-A/99 de 6 de Julho|doc/00020027.pdf]]\nAtribui ao consórcio ''AENOR - Auto-Estradas do Norte, S.A.'', a concessão da concepção, projecto, construção, financiamento, exploração e conservação, de lanços de auto-estrada e conjuntos vários associados na zona norte de Portugal e aprova as bases de concessão. Alterações: \n** [[Decreto-Lei n.º 127/2003 de 24 de Junho|doc/36263627.pdf]]. Altera as bases da concessão com a AENOR - Auto-Estradas do Norte, S. A., aprovadas pelo Decreto-Lei n.º 248-A/99, de 6 de Julho.\n** [[Decreto-Lei n.º 42/2004 de 2 de Março|doc/11071108.pdf]]. Altera a base LII das bases da concessão atribuída ao consórcio AENOR - Auto-Estradas do Norte, S. A., aprovadas pelo Decreto-Lei n.º 248-A/99, de 6 de Julho.\n \n[[Decreto-Lei n.º 142-A/2001 de 24 de Abril|doc/00020035.pdf]]\nAtribui à Sociedade ''LUSOSCUT - Auto-Estradas das Beiras Litoral e Alta, S. A.'', a concessão da concepção, projecto, construção, financiamento, exploração e conservação de lanços de auto-estradas e conjuntos viários associados, designados por Beira Litoral/Beira Alta, a que se refere a alínea f) do n.º 2 do artigo 2.º do Decreto-Lei n.º 267/97, de 2 de Outubro. Publica em anexo as bases da concessão.\n\n[[Decreto-Lei n.º 335-A/99 de 20 de Agosto|doc/00020031.pdf]]\nAtribui ao consórcio ''SCUTVIAS - Auto Estradas da Beira Interior, S. A.'', a concessão da concepção, projecto, construção, financiamento, exploração e conservação de lanços de auto-estrada e conjuntos viários associados, designada por Beira Interior, a que se referem a alínea b) do n.º 1 e a alínea b) do n.º 2 do artigo 2.º do Decreto-Lei n.º 267/97, de 2 de Outubro, e aprova as bases da concessão\n\n[[Decreto-Lei n.º 55-A/2000 de 14 de Abril|doc/00020035-1.pdf]]\nAtribui ao consórcio ''EUROSCUT - Sociedade Concessionária da SCUT do Algarve, S. A.'', a concessão da concepção, projecto, exploração e conservação de lanços de auto-estrada na zona do Algarve e aprova as bases de concessão\n\n[[Decreto-Lei n.º 234/2001 de 28 de Agosto|doc/54845516.pdf]]. \nAprova as bases da concessão da concepção, projecto, construção, financiamento, exploração e conservação de lanços de auto-estrada e conjuntos viários associados, designada por ''Concessão SCUT Norte Litoral''. Alterações:\n** [[Resolução do Conselho de Ministros n.º 139/2001|doc/54845516-1.pdf]]. Aprova a minuta do contrato da concessão de lanços de auto-estradas e conjuntos viários associados, desginada por concessão SCUT do Norte Litoral, a que se refere a alínea c) do artigo 2.º do Decreto-Lei n.º 119-B/99, de 14 de Abril, a celebrar entre o Estado Português e a ''EUROSCUT NORTE - Sociedade Concessionária da SCUT do Norte-Litoral, S. A''.\n\n[[Decreto-Lei n.º 9/97 de 10 de Janeiro|doc/00890092.pdf]]\nEstabelece o regime de realização dos concursos com vista à concessão de lanços de auto-estrada e conjuntos viários associados nas zonas norte e oeste de Portugal. Alterações:\n** [[Decreto-Lei n.º 267/97 de 2 de Outubro|doc/53905393.pdf]]. Estabelece o regime de realização de concursos públicos internacionais para a concessão da concepção, construção e exploração em regime de portagens sem cobrança aos utilizadores (''SCUT'') de lanços de auto-estradas da rede rodoviária nacional.\n** [[Decreto-Lei n.º 119-B/99 de 14 de Abril|doc/00120013.pdf]]. Define o regime jurídico das novas concessões de auto-estradas a designar por IC16/IC30, Litoral/Centro, Norte/Litoral, Lisboa Norte, IC24 e IC3/Baixo Tejo
http://www.aeatlantico.pt/\n\nCatefica - Apartado 327\n2560-587 TORRES VEDRAS \n\nTelefone: 261318500\nFax: 261318501
http://www.brisa.pt/\n\nQuinta da Torre da Agulha - Ed. Brisa\n2776-956 CARCAVELOS \n\nTelefone:214448500\nFax: 214448627
/***\n|Name|Broccoli Links|\n|Created by|Clint Checketts and Simon Baird|\n|Location|http://checkettsweb.com/styles/themes.htm#%5B%5BBroccoli%20Links%5D%5D|\n|Summary|Provides options to disable auto-linking of camel case words and lets pretty links point to tiddlers rather than external files|\n|Current version|1.0 (20-Oct-2005)|\n!Description\nThis plugin changes the default behaviors of pretty links (links that display one text but link to a different tiddler like [[this|Welcome!]]). Pretty links that point to non-existent tiddlers are asumed to point to external files. This plugin allows you to disable that functionality, and instead point to the non-existent tiddler. This plugin also allows you to disable the auto wikification of camel case words (ThisIsACamelCaseWord). The name 'broccoli' was inspired by the Jeremy's [[photo|http://www.flickr.com/photos/jermy/10134618/]], and with a name like TiddlyWiki, extensions deserve silly names too (who names a broccoli Mervyn?).\n\nTo switch this functionality on or off, select the corresponding check boxes in the [[AdvancedOptions]] tiddler or right here:\n<<option chkPrettyLinksPointToFile>> PrettyLinksPointToFiles\n<<option chkAutoLinkCamelCase >> AutoLinkCamelCaseWords\n\nChange the following 'config.options' lines to false if you want the plugins to run by default\n***/\n//{{{\nconfig.options.chkPrettyLinksPointToFile = true;\nconfig.options.chkAutoLinkCamelCase = false;\n\n\nconfig.shadowTiddlers.AdvancedOptions += "\sn<<option chkPrettyLinksPointToFile>> PrettyLinksPointToFiles\sn<<option chkAutoLinkCamelCase >> AutoLinkCamelCaseWords";\n\n\nfor (var i=0;i<config.formatters.length;i++)\n if (config.formatters[i].name == "prettyLink"){\n config.formatters[i].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 && lookaheadMatch[2]) // Simple bracketted link\n {\n var link = createTiddlyLink(w.output,lookaheadMatch[1],false);\n w.outputText(link,w.nextMatch,w.nextMatch + lookaheadMatch[1].length);\n w.nextMatch += lookaheadMatch[1].length + 2;\n }\n else if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[3]) // Pretty bracketted link\n {\n var e;\n if(store.tiddlerExists(lookaheadMatch[4]))\n e = createTiddlyLink(w.output,lookaheadMatch[4],false);\n else\n// Extra 'if' statement to decide whether to use point to files or not (by Clint)==========\n if (config.options.chkPrettyLinksPointToFile)\n e = createExternalLink(w.output,lookaheadMatch[4]);\n else\n e = createTiddlyLink(w.output,lookaheadMatch[4],false);\n// end additions ================================================\n w.outputText(e,w.nextMatch,w.nextMatch + lookaheadMatch[1].length);\n w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;\n }\n }\n}\n\n\n\nfor (var i=0;i<config.formatters.length;i++)\n if (config.formatters[i].name == "wikiLink"){\n config.formatters[i].handler= function(w){\n// Check to see if you want the wirds turned into links (by Clint) ===========\n if (!config.options.chkAutoLinkCamelCase){\n w.outputText(w.output,w.matchStart,w.nextMatch);\n return false;\n }\n// end additions ==========================================\n var preRegExp = new RegExp(config.textPrimitives.anyLetter,"mg");\n var preMatch = null;\n if(w.matchStart > 0)\n {\n preRegExp.lastIndex = w.matchStart-1;\n preMatch = preRegExp.exec(w.source);\n }\n if(preMatch && preMatch.index == w.matchStart-1)\n w.outputText(w.output,w.matchStart,w.nextMatch);\n else if(w.matchText.substr(0,1) == config.textPrimitives.unWikiLink)\n w.outputText(w.output,w.matchStart + 1,w.nextMatch);\n else\n {\n var link = createTiddlyLink(w.output,w.matchText,false);\n w.outputText(link,w.matchStart,w.nextMatch);\n }\n }\n}\n//}}}
http://www.tagzania.com/user/pontos_negros/Cascais\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Cascais]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Cascais#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
/***\n!TiddlyWiki Classic Color Scheme\nDesigned by Jeremy Ruston\n\nTo use this color scheme copy the [[ClassicTiddlyWiki]] contents into a tiddler and name it 'StyleSheet' also grab the [[ClassicTemplate]] and copy its contents into a tiddler named 'PageTemplate'.\n\n!Colors Used\n*@@bgcolor(#630):color(#fff): #630@@\n*@@bgcolor(#930): #930@@\n*@@bgcolor(#996633): #963@@\n*@@bgcolor(#c90): #c90@@\n*@@bgcolor(#cf6): #cf6@@\n*@@bgcolor(#cc9): #cc9@@\n*@@bgcolor(#ba9): #ba9@@\n*@@bgcolor(#996): #996@@\n*@@bgcolor(#300):color(#fff): #300@@\n*@@bgcolor(#000000):color(#fff): #000@@\n*@@bgcolor(#666): #666@@\n*@@bgcolor(#888): #888@@\n*@@bgcolor(#aaa): #aaa@@\n*@@bgcolor(#ddd): #ddd@@\n*@@bgcolor(#eee): #eee@@\n*@@bgcolor(#ffffff): #fff@@\n*@@bgcolor(#f00): #f00@@\n*@@bgcolor(#ff3): #ff3@@\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n background: #fff;\n color: #000;\n font-size: 9pt;\n font-family: verdana,arial,helvetica;\n}\n\na {\n color: #963;\n}\n\na:hover {\n background: #963;\n color: #fff;\n}\n\na img {\n border: 0;\n}\n\nh1,h2,h3,h4,h5 {\ncolor: #666600;\nbackground: none ! important;\nborder-bottom: 1px dotted #ccc\n}\n\n.tab{\n-moz-border-radius-topleft: 3px;\n-moz-border-radius-topright: 3px;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n.header {\n background: #300;\n}\n\n.titleLine {\n color: #fff;\n padding-top: 1em;\n padding-right: 1em;\n padding-left: 1em;\n padding-bottom: 1em;\n}\n\n.titleLine a {\n color: #cf6;\n}\n\n.titleLine a:hover {\n background: transparent;\n}\n\n/*}}}*/\n/***\n!Main Menu /%=================================================%/\n***/\n/*{{{*/\n#mainMenu .button {\n color: #930;\n}\n\n#mainMenu .button:hover {\n color: #cf6;\n background: #930;\n}\n\n#mainMenu li {\n list-style: none;\n}\n\n/*}}}*/\n/***\n!Sidebar options /%=================================================%/\n~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\n***/\n/*{{{*/\n\n#sidebar {\n background: #eeb;\n right: 0;\n}\n\n#sidebarOptions {\n background: #eeb !important;\n color: blackportant;\n padding: 5px 0;\n}\n\n#sidebarOptions a {\n color: #700;\n display: block;\n padding: 0;\n margin: 3px 10px;\n border: 0;\n}\n\n#sidebarOptions a:hover {\n color: #fff;\n background: #700;\n}\n\n#sidebarOptions a:active {\n color: #fff;\n background: #700;\n}\n\n#sidebarOptions .sliderPanel {\n background: #eea;\n margin: 0;\n}\n\n#sidebarOptions .sliderPanel a {\n color: #700 !important;\n font-weight: normal;\n margin: 0;\n display: inline;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n color: #fff !important;\n background: #000;\n}\n\n#sidebarOptions .sliderPanel a:active {\n color: #fff !important;\n background: #000;\n}\n\n#sidebarOptions input {\n margin: 2px 10px;\n border: 1px inset #333;\n}\n\n/*}}}*/\n/***\n!Sidebar tabs /%=================================================%/\n***/\n/*{{{*/\n.tabSelected,.tabContents {\n background: #eea;\n border: 0;\n}\n\n.tabUnselected {\n background: #c90;\n}\n\n#sidebarTabs {\n background: none;\n}\n\n#sidebarTabs .tabSelected {\n color: #fff;\n background: #960;\n}\n\n#sidebarTabs .tabUnselected {\n color: #fff;\n background: #660;\n}\n\n#sidebarTabs .tabContents {\n background-color: #960;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tabSelected:hover {\n background-color: #700;\n color: #fff;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected,\n#sidebarTabs .txtMoreTab .tabUnselected:hover {\n background-color: #b00;\n color: #fff;\n}\n\n#sidebarTabs .txtMoreTab .tabContents {\n background: #930;\n color: #000;\n}\n\n#sidebarTabs .tabContents a {\n color: #fff;\n border: 0;\n}\n\n#sidebarTabs .button.highlight,\n#sidebarTabs .tabContents a:hover {\n background-color: #000;\n}\n\n/*}}}*/\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n background: #930;\n color: #fff;\n}\n\n#messageArea a:link, #messageArea a:visited {\n color: #c90;\n}\n\n#messageArea a:hover {\n color: #963;\n background: transparent;\n}\n\n#messageArea a:active {\n color: #fff;\n}\n\n/*}}}*/\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #eea;\n border: 1px solid #930;\n}\n\n.popup hr {\n color: #963;\n background: #963;\n border-bottom: 1px;\n}\n\n.popup li.disabled {\n color: #ba9;\n}\n\n.popup li a, .popup li a:visited {\n color: #300;\n}\n\n.popup li a:hover {\n background: #930;\n color: #eea;\n}\n\n/*}}}*/\n/***\n!Tiddler Display /%=================================================%/\n***/\n/*{{{*/\n.tiddler .button {\n color: #930;\n}\n\n.tiddler .button:hover {\n color: #cf6;\n background: #930;\n}\n\n.tiddler .button:active {\n color: #fff;\n background: #c90;\n}\n\n.shadow .title {\n color: #888;\n}\n\n.title {\n color: #422;\n}\n\n.subtitle {\n color: #866;\n}\n\n.toolbar {\n color: #aaa;\n}\n\n.toolbar a,\n.toolbar a:hover {\n border: 0;\n}\n\n.tagging, .tagged {\n border: 1px solid #fff;\n background-color: #ffc;\n}\n\n.selected .tagging, .selected .tagged {\n border: 1px solid #aa6;\n background-color: #ffc;\n}\n\n.tagging .listTitle, .tagged .listTitle {\n color: #999999;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selected .footer {\n color: #888;\n}\n\n.sparkline {\n background: #eea;\n border: 0;\n}\n\n.sparktick {\n background: #930;\n}\n\n.errorButton {\n color: #ff0;\n background: #f00;\n}\n\n.zoomer {\n color: #963;\n border: 1px solid #963;\n}\n\n/*}}}*/\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.viewer .button {\n background: #c90;\n color: #300;\n border-right: 1px solid #300;\n border-bottom: 1px solid #300;\n}\n\n.viewer .button:hover {\n background: #eea;\n color: #c90;\n}\n\n.viewer .imageLink {\n background: transparent;\n}\n\n.viewer blockquote {\n border-left: 3px solid #666;\n}\n\n.viewer table {\n border: 2px solid #303030;\n}\n\n.viewer th, thead td {\n background: #996;\n border: 1px solid #606060;\n color: #fff;\n}\n\n.viewer td, .viewer tr {\n border: 1px solid #606060;\n}\n\n.viewer pre {\n border: 1px solid #963;\n background: #eea;\n}\n\n.viewer code {\n color: #630;\n}\n\n.viewer hr {\n border: 0;\n border-top: dashed 1px #606060;\n color: #666;\n}\n\n.highlight, .marked {\n background: #ff3;\n}\n\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor input {\n border: 1px solid #000;\n}\n\n.editor textarea {\n border: 1px solid #000;\n width: 100%;\n}\n\n.editorFooter {\n color: #aaa;\n}\n\n.editorFooter a {\n color: #930;\n}\n\n.editorFooter a:hover {\n color: #cf6;\n background: #930;\n}\n\n.editorFooter a:active {\n color: #fff;\n background: #c90;\n}\n\n/*}}}*/
http://www.tagzania.com/user/pontos_negros/Coimbra\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Coimbra]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Coimbra#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
\n[[Código da Estrada|doc/codigo_estrada.pdf]]\nDecreto-Lei n.o 265-A/2001 de 28 de Setembro (com as alterações introduzidas pela Lei n.o 20/2002 de 21 de Agosto)\n\n[[Decreto-Lei n.º 44/2005 de 23 de Fevereiro|doc/15541625.pdf]]\nNo uso da autorização legislativa concedida pela Lei n.º 53/2004, de 4 de Novembro, altera o Código da Estrada, aprovado pelo Decreto-Lei n.º 114/94, de 3 de Maio
[[Introdução]]\n[[Mapa de Pontos Negros]]\n
http://www.estradasdeportugal.pt\n\nPraça da Portagem\n2809-013 Almada \n\nTelefone: 212879000\nFax: 212951997\nep@estradasdeportugal.pt
Av. João Crisóstemo, 38-C 1º, escritório 3, Ed. Goya\n1050-127 LISBOA \n\nTelefone: 213512150\nFax: 213151462
Av. João Crisóstemo, 38-C -1º, escritório 3- Ed. Goya\n1050-127 LISBOA \n\nTelefone: 213512150\nFax: 213151462
// //''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 multiple dot sample at somewhere dot nowhere dot com>> (multiple dots)\n// //Example 3: <<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// // v0.1.2 (15 October 2005): added global replacement of "dots" thanks to a suggestion from Ralph Winter\n\n// //''Code section:''\nversion.extensions.email = {major: 0, minor: 1, revision: 2, date: new Date("Oct 15, 2005")};\nconfig.macros.email = {}\nconfig.macros.email.handler = function(place,macroName,params)\n{\nvar temp = params.join(" ");\ndata = temp.split("?");\nvar recipient = data[0];\nrecipient = recipient.replace(" at ","@").replace(" dot ",".","g");\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
.textoPequeno {\n font-size: 7.5pt;\n line-height: 7pt;\n}
/***\n|''Name:''|ForEachTiddlerPlugin|\n|''Version:''|1.0.5 (2006-02-05)|\n|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|\n|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|\n|''Licence:''|[[BSD open source license]]|\n|''Macros:''|[[ForEachTiddlerMacro]] v1.0.5|\n|''TiddlyWiki:''|1.2.38+, 2.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n!Description\n\nCreate customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.\n\n''Syntax:'' \n|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|\n|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|\n|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|\n|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|\n|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|\n|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|\n|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|\n\nSee details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].\n\n!Revision history\n* v1.0.5\n** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.\n** Support Firefox 1.5.0.1\n** Internal\n*** Make "JSLint" conform\n*** "Only install once"\n* v1.0.4 (2006-01-06)\n** Support TiddlyWiki 2.0\n* v1.0.3 (2005-12-22)\n** Features: \n*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) \n*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)\n** Enhancements:\n*** Improved error messages on InternetExplorer.\n* v1.0.2 (2005-12-10)\n** Features: \n*** context object also holds reference to store (TiddlyWiki)\n** Fixed Bugs: \n*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)\n* v1.0.1 (2005-12-08)\n** Features: \n*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".\n*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.\n*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).\n*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .\n*** Improved script evaluation (for where/sort clause and write scripts).\n* v1.0.0 (2005-11-20)\n** initial version\n\n!Code\n***/\n//{{{\n\n \n//============================================================================\n//============================================================================\n// ForEachTiddlerPlugin\n//============================================================================\n//============================================================================\n\n// Only install once\nif (!version.extensions.ForEachTiddlerPlugin) {\n\nversion.extensions.ForEachTiddlerPlugin = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), source: "http://tiddlywiki.abego-software.de/#ForEachTiddlergPlugin"};\n\n// For backward compatibility with TW 1.2.x\n//\nif (!TiddlyWiki.prototype.forEachTiddler) {\n TiddlyWiki.prototype.forEachTiddler = function(callback) {\n for(var t in this.tiddlers) {\n callback.call(this,t,this.tiddlers[t]);\n }\n };\n}\n\n//============================================================================\n// forEachTiddler Macro\n//============================================================================\n\nversion.extensions.forEachTiddler = {major: 1, minor: 0, revision: 5, date: new Date(2006,2,5), provider: "http://tiddlywiki.abego-software.de"};\n\n// ---------------------------------------------------------------------------\n// Configurations and constants \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler = {\n // Standard Properties\n label: "forEachTiddler",\n prompt: "Perform actions on a (sorted) selection of tiddlers",\n\n // actions\n actions: {\n addToList: {},\n write: {}\n }\n};\n\n// ---------------------------------------------------------------------------\n// The forEachTiddler Macro Handler \n// ---------------------------------------------------------------------------\n\nconfig.macros.forEachTiddler.getContainingTiddler = function(e) {\n while(e && !hasClass(e,"tiddler"))\n e = e.parentNode;\n var title = e ? e.getAttribute("tiddler") : null; \n return title ? store.getTiddler(title) : null;\n};\n\nconfig.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {\n // config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);\n\n if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);\n // --- Parsing ------------------------------------------\n\n var i = 0; // index running over the params\n // Parse the "in" clause\n var tiddlyWikiPath = undefined;\n if ((i < params.length) && params[i] == "in") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "TiddlyWiki path expected behind 'in'.");\n return;\n }\n tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the where clause\n var whereClause ="true";\n if ((i < params.length) && params[i] == "where") {\n i++;\n whereClause = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the sort stuff\n var sortClause = null;\n var sortAscending = true; \n if ((i < params.length) && params[i] == "sortBy") {\n i++;\n if (i >= params.length) {\n this.handleError(place, "sortClause missing behind 'sortBy'.");\n return;\n }\n sortClause = this.paramEncode(params[i]);\n i++;\n\n if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {\n sortAscending = params[i] == "ascending";\n i++;\n }\n }\n\n // Parse the script\n var scriptText = null;\n if ((i < params.length) && params[i] == "script") {\n i++;\n scriptText = this.paramEncode((i < params.length) ? params[i] : "");\n i++;\n }\n\n // Parse the action. \n // When we are already at the end use the default action\n var actionName = "addToList";\n if (i < params.length) {\n if (!config.macros.forEachTiddler.actions[params[i]]) {\n this.handleError(place, "Unknown action '"+params[i]+"'.");\n return;\n } else {\n actionName = params[i]; \n i++;\n }\n } \n \n // Get the action parameter\n // (the parsing is done inside the individual action implementation.)\n var actionParameter = params.slice(i);\n\n\n // --- Processing ------------------------------------------\n try {\n this.performMacro({\n place: place, \n inTiddler: tiddler,\n whereClause: whereClause, \n sortClause: sortClause, \n sortAscending: sortAscending, \n actionName: actionName, \n actionParameter: actionParameter, \n scriptText: scriptText, \n tiddlyWikiPath: tiddlyWikiPath});\n\n } catch (e) {\n this.handleError(place, e);\n }\n};\n\n// Returns an object with properties "tiddlers" and "context".\n// tiddlers holds the (sorted) tiddlers selected by the parameter,\n// context the context of the execution of the macro.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {\n\n var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);\n\n var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;\n context["tiddlyWiki"] = tiddlyWiki;\n \n // Get the tiddlers, as defined by the whereClause\n var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);\n context["tiddlers"] = tiddlers;\n\n // Sort the tiddlers, when sorting is required.\n if (parameter.sortClause) {\n this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);\n }\n\n return {tiddlers: tiddlers, context: context};\n};\n\n// Returns the (sorted) tiddlers selected by the parameter.\n//\n// The action is not yet performed.\n//\n// @parameter see performMacro\n//\nconfig.macros.forEachTiddler.getTiddlers = function(parameter) {\n return this.getTiddlersAndContext(parameter).tiddlers;\n};\n\n// Performs the macros with the given parameter.\n//\n// @param parameter holds the parameter of the macro as separate properties.\n// The following properties are supported:\n//\n// place\n// whereClause\n// sortClause\n// sortAscending\n// actionName\n// actionParameter\n// scriptText\n// tiddlyWikiPath\n//\n// All properties are optional. \n// For most actions the place property must be defined.\n//\nconfig.macros.forEachTiddler.performMacro = function(parameter) {\n var tiddlersAndContext = this.getTiddlersAndContext(parameter);\n\n // Perform the action\n var actionName = parameter.actionName ? parameter.actionName : "addToList";\n var action = config.macros.forEachTiddler.actions[actionName];\n if (!action) {\n this.handleError(parameter.place, "Unknown action '"+actionName+"'.");\n return;\n }\n\n var actionHandler = action.handler;\n actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);\n};\n\n// ---------------------------------------------------------------------------\n// The actions \n// ---------------------------------------------------------------------------\n\n// Internal.\n//\n// --- The addToList Action -----------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n\n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);\n return;\n }\n\n // Perform the action.\n var list = document.createElement("ul");\n place.appendChild(list);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n var listItem = document.createElement("li");\n list.appendChild(listItem);\n createTiddlyLink(listItem, tiddler.title, true);\n }\n};\n\n// Internal.\n//\n// --- The write Action ---------------------------------------------------\n//\nconfig.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {\n // Parse the parameter\n var p = 0;\n if (p >= parameter.length) {\n this.handleError(place, "Missing expression behind 'write'.");\n return;\n }\n\n var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n\n // Parse the "toFile" option\n var filename = null;\n var lineSeparator = undefined;\n if ((p < parameter.length) && parameter[p] == "toFile") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");\n return;\n }\n \n filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));\n p++;\n if ((p < parameter.length) && parameter[p] == "withLineSeparator") {\n p++;\n if (p >= parameter.length) {\n this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");\n return;\n }\n lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);\n p++;\n }\n }\n \n // Check for extra parameters\n if (parameter.length > p) {\n config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);\n return;\n }\n\n // Perform the action.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);\n var count = tiddlers.length;\n var text = "";\n for (var i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n text += func(tiddler, context, count, i);\n }\n \n if (filename) {\n if (lineSeparator !== undefined) {\n lineSeparator = lineSeparator.replace(/\s\sn/mg, "\sn").replace(/\s\sr/mg, "\sr");\n text = text.replace(/\sn/mg,lineSeparator);\n }\n saveFile(filename, convertUnicodeToUTF8(text));\n } else {\n var wrapper = createTiddlyElement(place, "span");\n wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);\n }\n};\n\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {\n return {\n place : placeParam, \n whereClause : whereClauseParam, \n sortClause : sortClauseParam, \n sortAscending : sortAscendingParam, \n script : scriptText,\n actionName : actionNameParam, \n actionParameter : actionParameterParam,\n tiddlyWikiPath : tiddlyWikiPathParam,\n inTiddler : inTiddlerParam\n };\n};\n\n// Internal.\n//\n// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of \n// the given path.\n//\nconfig.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {\n if (!idPrefix) {\n idPrefix = "store";\n }\n var lenPrefix = idPrefix.length;\n \n // Read the content of the given file\n var content = loadFile(this.getLocalPath(path));\n if(content === null) {\n throw "TiddlyWiki '"+path+"' not found.";\n }\n \n // Locate the storeArea div's\n var posOpeningDiv = content.indexOf(startSaveArea);\n var posClosingDiv = content.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1)) {\n throw "File '"+path+"' is not a TiddlyWiki.";\n }\n var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);\n \n // Create a "div" element that contains the storage text\n var myStorageDiv = document.createElement("div");\n myStorageDiv.innerHTML = storageText;\n myStorageDiv.normalize();\n \n // Create all tiddlers in a new TiddlyWiki\n // (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)\n var tiddlyWiki = new TiddlyWiki();\n var store = myStorageDiv.childNodes;\n for(var t = 0; t < store.length; t++) {\n var e = store[t];\n var title = null;\n if(e.getAttribute)\n title = e.getAttribute("tiddler");\n if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)\n title = e.id.substr(lenPrefix);\n if(title && title !== "") {\n var tiddler = tiddlyWiki.createTiddler(title);\n tiddler.loadFromDiv(e,title);\n }\n }\n tiddlyWiki.dirty = false;\n\n return tiddlyWiki;\n};\n\n\n \n// Internal.\n//\n// Returns a function that has a function body returning the given javaScriptExpression.\n// The function has the parameters:\n// \n// (tiddler, context, count, index)\n//\nconfig.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {\n var script = context["script"];\n var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";\n var fullText = (script ? script+";" : "")+functionText+";theFunction;";\n return eval(fullText);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {\n var result = [];\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);\n tiddlyWiki.forEachTiddler(function(title,tiddler) {\n if (func(tiddler, context, undefined, undefined)) {\n result.push(tiddler);\n }\n });\n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {\n var message = "Extra parameter behind '"+actionName+"':";\n for (var i = firstUnusedIndex; i < parameter.length; i++) {\n message += " "+parameter[i];\n }\n this.handleError(place, message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? -1 \n : +1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {\n var result = \n (tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) \n ? 0\n : (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)\n ? +1 \n : -1; \n return result;\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {\n // To avoid evaluating the sortClause whenever two items are compared \n // we pre-calculate the sortValue for every item in the array and store it in a \n // temporary property ("forEachTiddlerSortValue") of the tiddlers.\n var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);\n var count = tiddlers.length;\n var i;\n for (i = 0; i < count; i++) {\n var tiddler = tiddlers[i];\n tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);\n }\n\n // Do the sorting\n tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);\n\n // Delete the temporary property that holds the sortValue. \n for (i = 0; i < tiddlers.length; i++) {\n delete tiddlers[i].forEachTiddlerSortValue;\n }\n};\n\n\n// Internal.\n//\nconfig.macros.forEachTiddler.trace = function(message) {\n displayMessage(message);\n};\n\n// Internal.\n//\nconfig.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {\n var message ="<<"+macroName;\n for (var i = 0; i < params.length; i++) {\n message += " "+params[i];\n }\n message += ">>";\n displayMessage(message);\n};\n\n\n// Internal.\n//\n// Creates an element that holds an error message\n// \nconfig.macros.forEachTiddler.createErrorElement = function(place, exception) {\n var message = (exception.description) ? exception.description : exception.toString();\n return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);\n};\n\n// Internal.\n//\n// @param place [may be null]\n//\nconfig.macros.forEachTiddler.handleError = function(place, exception) {\n if (place) {\n this.createErrorElement(place, exception);\n } else {\n throw exception;\n }\n};\n\n// Internal.\n//\n// Encodes the given string.\n//\n// Replaces \n// "$))" to ">>"\n// "$)" to ">"\n//\nconfig.macros.forEachTiddler.paramEncode = function(s) {\n var reGTGT = new RegExp("\s\s$\s\s)\s\s)","mg");\n var reGT = new RegExp("\s\s$\s\s)","mg");\n return s.replace(reGTGT, ">>").replace(reGT, ">");\n};\n\n// Internal.\n//\n// Returns the given original path (that is a file path, starting with "file:")\n// as a path to a local file, in the systems native file format.\n//\n// Location information in the originalPath (i.e. the "#" and stuff following)\n// is stripped.\n// \nconfig.macros.forEachTiddler.getLocalPath = function(originalPath) {\n // Remove any location part of the URL\n var hashPos = originalPath.indexOf("#");\n if(hashPos != -1)\n originalPath = originalPath.substr(0,hashPos);\n // Convert to a native file format assuming\n // "file:///x:/path/path/path..." - pc local file --> "x:\spath\spath\spath..."\n // "file://///server/share/path/path/path..." - FireFox pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n // "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."\n // "file://server/share/path/path/path..." - pc network file --> "\s\sserver\sshare\spath\spath\spath..."\n var localPath;\n if(originalPath.charAt(9) == ":") // pc local file\n localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\s\s");\n else if(originalPath.indexOf("file:///") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(7));\n else if(originalPath.indexOf("file:/") === 0) // mac/unix local file\n localPath = unescape(originalPath.substr(5));\n else // pc network file\n localPath = "\s\s\s\s" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\s\s"); \n return localPath;\n};\n\n// ---------------------------------------------------------------------------\n// Stylesheet Extensions (may be overridden by local StyleSheet)\n// ---------------------------------------------------------------------------\n//\nsetStylesheet(\n ".forEachTiddlerError{color: #ffffff;background-color: #880000;}",\n "forEachTiddler");\n\n//============================================================================\n// End of forEachTiddler Macro\n//============================================================================\n\n\n//============================================================================\n// String.startsWith Function\n//============================================================================\n//\n// Returns true if the string starts with the given prefix, false otherwise.\n//\nversion.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.startsWith = function(prefix) {\n var n = prefix.length;\n return (this.length >= n) && (this.slice(0, n) == prefix);\n};\n\n\n\n//============================================================================\n// String.endsWith Function\n//============================================================================\n//\n// Returns true if the string ends with the given suffix, false otherwise.\n//\nversion.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.endsWith = function(suffix) {\n var n = suffix.length;\n return (this.length >= n) && (this.right(n) == suffix);\n};\n\n\n//============================================================================\n// String.contains Function\n//============================================================================\n//\n// Returns true when the string contains the given substring, false otherwise.\n//\nversion.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nString.prototype.contains = function(substring) {\n return this.indexOf(substring) >= 0;\n};\n\n//============================================================================\n// Array.indexOf Function\n//============================================================================\n//\n// Returns the index of the first occurance of the given item in the array or \n// -1 when no such item exists.\n//\n// @param item [may be null]\n//\nversion.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.indexOf = function(item) {\n for (var i = 0; i < this.length; i++) {\n if (this[i] == item) {\n return i;\n }\n }\n return -1;\n};\n\n//============================================================================\n// Array.contains Function\n//============================================================================\n//\n// Returns true when the array contains the given item, otherwise false. \n//\n// @param item [may be null]\n//\nversion.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.contains = function(item) {\n return (this.indexOf(item) >= 0);\n};\n\n//============================================================================\n// Array.containsAny Function\n//============================================================================\n//\n// Returns true when the array contains at least one of the elements \n// of the item. Otherwise (or when items contains no elements) false is returned.\n//\nversion.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAny = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (this.contains(items[i])) {\n return true;\n }\n }\n return false;\n};\n\n\n//============================================================================\n// Array.containsAll Function\n//============================================================================\n//\n// Returns true when the array contains all the items, otherwise false.\n// \n// When items is null false is returned (even if the array contains a null).\n//\n// @param items [may be null] \n//\nversion.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};\n//\nArray.prototype.containsAll = function(items) {\n for(var i = 0; i < items.length; i++) {\n if (!this.contains(items[i])) {\n return false;\n }\n }\n return true;\n};\n\n\n} // of "install only once"\n\n// Used Globals (for JSLint) ==============\n// ... DOM\n/*global document */\n// ... TiddlyWiki Core\n/*global convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, \n displayMessage, endSaveArea, hasClass, loadFile, saveFile, \n startSaveArea, store, wikify */\n//}}}\n\n\n/***\n!Licence and Copyright\nCopyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of abego Software nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n***/\n\n
A ACA-M pretende, com a colaboração de todos, georeferenciar [[pontos negros]] nas estradas de Portugal. Para o efeito promove a utilização do [[Tagzania]], uma ferramenta online que "une etiquetas com lugares". Para participar, necessita de se registar como utilizador do [[Tagzania]] e seguir as instruções que criámos para que o sistema funcione. Consulte o nosso [[Manual de Utilização]]. \n\nPara visualizar os pontos negros já registados, consulte o [[mapa|Mapa de Pontos Negros]] ou a [[lista|Lista de Pontos Negros]] de pontos negros organizada por distritos.
O guia aplica-se a problemas de construção e conservação, nomeadamente a acessos perigosos, cruzamentos e entroncamentos perigosos, drenagem deficiente, falta de passadeiras ou bermas para peões, falta de sistemas de acalmia de tráfego, piso em mau estado ou escorregadio, protecções inexistentes, deterioradas ou desajustadas, raio de curvatura ou inclinação da via desajustados, sinalização inexistente ou mal aplicada, entre outros ([[1|nota 1]]).\n\n''1. ''Identificar qual o órgão administrativo que tem competência para a resolução do ponto negro. O envio de cópia de conhecimento para, pelo menos, outro órgão administrativo é uma garantia de eficácia. Poderá ser utilizado o seguinte guia de identificação:\n\n|!Vias concessionadas (AE, IP, IC)|!Vias não concessionadas (AE, IP, IC)|!Restantes vias (Estradas municipais, ruas, etc.)|\n| Estradas de Portugal e Entidade concessionária | Estradas de Portugal e Câmara Municipal | Câmara Municipal e Junta de Freguesia |\n\nConsulte a nossa lista de [[contactos]].\n\n''2.'' Elaborar o requerimento escrito, o qual deve conter: a designação do órgão administrativo a que se dirige; a identificação do requerente; a exposição dos factos em que se baseia o pedido e, quando possível, os seus fundamentos de direito; a indicação do pedido de forma clara e precisa (só um pedido, excepto se for subsidiário); a data e a assinatura do requerente ([[2|nota 2]]). Poderão ser utilizadas, para o efeito, as minutas que disponibilizamos a seguir:\n* Estradas de Portugal ([[minuta|minuta EP]]; [[exemplo|doc/exemplo_ep.pdf]])\n* Entidades concessionárias ([[minuta|minuta Entidades concessionárias]]; [[exemplo|doc/exemplo_concessionaria.pdf]])\n* Câmaras Municipais ([[minuta|minuta Câmaras Municipais]]; [[exemplo|doc/exemplo_cm.pdf]])\n* Juntas de Freguesia ([[minuta|minuta Juntas de Freguesia]]; [[exemplo|doc/exemplo_jf.pdf]])\nQuando enviado por correio, o requerimento deve ser endereçado ao órgão administrativo e com aviso de recepção. Pode ser exigido um recibo comprovativo da entrega do requerimento.\n\nNas denúncias para a Estradas de Portugal pode utilizar o serviço [[Estrada Livre|http://www.estradasdeportugal.pt/site/v3/?id_pagina=&grupo=4&Ln=1&id_pasta=&id_bloco=0D9EF397-97EC-4D9A-9F81-4A69165C2932]]. Este não substitui, no entanto, o requerimento escrito.\n\nPara o ajudar na exposição na denúncia disponibilizamos uma colecção de [[queixas-tipo|Queixas-Tipo]].\n\n''3.'' Em qualquer fase do processo é possível:\n\n''a)'' Solicitar ao órgão competente informação sobre o andamento do procedimento ([[3|nota 3]]). As informações a prestar abrangem a indicação do serviço onde o procedimento se encontra, os actos e diligências praticados, as deficiências a suprir pelos interessados, as decisões adoptadas e quaisquer outros elementos solicitados. As informações solicitadas serão fornecidas no prazo máximo de 10 dias. Poderá ser utilizada, para o efeito, a seguinte minuta:\n* Pedido de informação ([[minuta|minuta Pedido de Informação]]; [[exemplo|doc/exemplo_pedido_de_informacao.pdf]])\n''b)'' Requerer a adopção de medidas provisórias ([[4|nota 4]]). Impõe-se a necessidade de medidas provisórias quando se verifique o justo receio de, sem essas medidas, se produzir lesão grave ou de difícil reparação dos interesses públicos em causa. Esta medida caduca logo que for proferida decisão definitiva no procedimento. O pedido pode seguir incluído no primeiro ofício ou, posteriormente, em ofício separado, e é cumulativo com o pedido de medidas definitivas. Poderá ser utilizada, para o efeito, a seguinte minuta:\n* Medidas provisórias ([[minuta|minuta Medidas Provisórias]]; [[exemplo|doc/exemplo_medidas_provisorias.pdf]])\n''4.'' O procedimento deve ser concluído no prazo de 90 dias, salvo se outro prazo decorrer da lei ou for imposto por circunstâncias excepcionais ([[5|nota 5]]). Os interessados têm o direito de ser ouvidos no procedimento antes de ser tomada a decisão final. Pode ser uma audiência escrita ou oral ([[6|nota 6]]).\n\n''5.'' Perante a inércia do órgão competente, pode expor a situação:\n\n''a)'' ao órgão que tutela o órgão competente; \n''b)'' à Assembleia Municipal no caso da Câmara Municipal; \n''c)'' apresentando uma queixa ao Provedor de Justiça, que irá emitir uma recomendação ao órgão inerte (pode fazê-lo [[aqui|http://www.provedor-jus.pt/queixa.htm]]).\n\n
Reunimos aqui uma selecção documentos e ligações de âmbito jurídico.\n* [[Petição "Contra o Crime Rodoviário"]]\n* [[Responsabilidade das entidades públicas]]\n* [[Atribuições e competências das entidades públicas e concessionárias]]\n* [[Procedimento administrativo]]\n* [[Código da Estrada]]\n* [[Normas técnicas na regulação das infra-estruturas rodoviárias]]\n* [[Outra legislação]]\n{{textoPequeno{''Fontes:''\n[[Digesto|http://www.digesto.gov.pt/]] (Sistema Integrado para o Tratamento da Informação Jurídica)\n[[SIDDAMB|http://www.diramb.gov.pt/siddamb.htm]] (Sistema de Informação Documental sobre Direito do Ambiente)\n[[Verbo Jurídico - Portal de Direito|http://www.verbojuridico.net/]]\n[[Ministério da Justiça|http://www.mj.gov.pt]]}}}
Este é um site produzido pela [[ACA-M]] que se destina a (1) promover a colaboração dos cidadãos na [[georeferenciação|Georeferenciação]] de pontos negros e a (2) disponibilizar as ferramentas necessárias à elaboração de [[requerimentos|Requerimentos]] para a sua resolução.
Av. António Augusto Aguiar, 163 - 5º Esq.\n1050-014 LISBOA\n\nTelefone: 213711100\nFax: 213867797
Av. António Augusto de Aguiar, 163 - 5º Esqº\n1050-014 LISBOA\n\nTelefone: 213711100\nFax: 213867797
http://www.tagzania.com/user/pontos_negros/Lisboa\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Lisboa]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Lisboa#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>
http://www.tagzania.com/user/pontos_negros\n\nAveiro, Beja , Braga, Bragança, [[Castelo Branco|Distrito de Castelo Branco]], [[Coimbra|Distrito de Coimbra]], Évora, Faro, Guarda, Leiria, [[Lisboa|Distrito de Lisboa]], Portalegre, [[Porto|Distrito do Porto]], Santarém, Setúbal, Viana do Castelo, Vila Real, [[Viseu|Distrito de Viseu]], Açores e Madeira.
http://www.lusoponte.pt/\n\nEdifício da Portagem\nPraça da Portagem\nPenas\n2870-392 Montijo\n\nTelefone: 212328200\nFax: 212328240
[[Introdução]]\n\n[[Georeferenciação]]\n{{textoPequeno{[[Como participar|Manual de Utilização]], [[mapa|Mapa de Pontos Negros]] e [[lista|Lista de Pontos Negros]] de pontos negros}}}\n\n[[Requerimentos]]\n{{textoPequeno{[[Guia de requerimento|Guia de Requerimento]], [[informação jurídica|Informação Jurídica]] e [[contactos]]}}}\n\n{{textoPequeno{Este site usa a \ntecnologia [[TiddlyWiki]].}}}\n\n[img[http://feeds.rapidfeeds.com/chix_pix/stdrss.gif][http://feeds.feedburner.com/pontosnegros]]\n{{textoPequeno{[[contacte-nos|contacto]]}}}
Siga estas instruções para participar.\n\n''1. ''Crie uma conta pessoal no [[Tagzania]]. Registe-se [[aqui|http://www.tagzania.com/register]]. Nota: o Tagzania está disponível em Português. Para seleccionar o Português vá a "''settings & languages''" (no topo superior direito). Agradecemos que nos [[contacte|contacto]] a informar do registo.\n\n''2. ''Uma vez registado pode começar a adicionar locais. Clique em "''adicionar''" (na barra superior). Arraste o mapa e faça zoom até ao local pretendido. Clique uma vez no mapa para adicionar o marcador.\n\n''3. ''Preencha o formulário. Para que o sistema funcione siga por favor as seguintes normas:\n* em "''título obrigatório''" escreva o nome da estrada/rua/avenida. Ex. "Av. de Ceuta", ou "A5".\n* em "''descrição opcional''" escreva uma descrição detalhada do problema naquele local. Ex. "Via rápida atravessa duas urbanizações gémeas. Hostilização do trânsito pedonal. Tempos de atravessamento insuficientes."\n* em "''etiquetas''" escreva, separado por espaços, "''pontonegroacam''", o concelho respectivo, e uma das etiquetas descritivas (ver abaixo). Ex. "pontonegroacam Lisboa velocidade". \nNotas: É muito importante que não se esqueça de incluir a etiqueta "pontonegroacam". É através desta etiqueta que contribui para a colecção de pontos negros georeferenciados deste site. É também importante que coloque o concelho onde está localizado o ponto negro. Só assim é possível manter neste site uma lista de pontos negros classificada por concelhos. Quando o nome do concelho é constituído por duas ou mais palavras, não as separe por espaços (ex.: VilaRealdeSantoAntónio). As etiquetas descritivas permitem, por sua vez, manter uma contabilização dos pontos negros por tipo de problema. \n\nLista de ''etiquetas descritivas'':\n* ''infra-estruturas'' (pavimento degradado, risco de hidroplanagem, faixa de aceleração curta ou inexistente, //rails// deteriorados ou inexistentes, etc)\n* ''sinalização'' (ausente, pouco visível, confusa, errada, deficiente sincronização dos semáforos, etc)\n* ''visibilidade'' (falta de visibilidade em cruzamentos, entroncamentos, etc)\n* ''velocidade'' (falta de sistemas de redução da velocidade no interior das localidades: lombas, semáforos, etc)\n* ''peões'' (falta de infraestruturas pedonais, passeios, passadeiras, estacionamento desregulado)
Para navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\nEste é um mapa filtrado por um grupo de moderadores da ACA-M com base nos pontos adicionados pelos colaboradores. Clique [[aqui|Mapa de Pontos Negros (sem moderação)]] para ver o mapa sem moderação.
Para navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/tag/pontonegroacam]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/tag/pontonegroacam#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\nAgradecemos a vossa compreensão num eventual desfasamento temporário entre os dois mapas (com e sem moderação). Faremos o possível para verificar com celeridade todos os pontos adicionados.\n\nÉ muito importante que, ao participar ([[veja como|Manual de Utilização]]), não se esqueça de incluir a etiqueta "pontonegroacam". É através desta etiqueta que contribui para a colecção de pontos negros georeferenciados deste site. É também importante que coloque o concelho onde está localizado o ponto negro. Só assim é possível manter neste site uma lista de pontos negros classificada por concelhos. Quando o nome do concelho é constituído por duas ou mais palavras, não as separe por espaços (ex.: VilaRealdeSantoAntónio). As etiquetas descritivas permitem, por sua vez, manter uma contabilização dos pontos negros por tipo de problema.\n
Av. Conselheiro Fernando de Sousa, 19 - 13º\n1070-072 LISBOA\n\nTelefone: 210329850\nFax: 210329860
/***\n''NestedSlidersPlugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman\nsource: http://www.TiddlyTools.com/#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.16 - 1.7.7]\ncorrected deferred rendering to account for use-case where show/hide state is tracked in a cookie\n===\n\n++++[2006.02.15 - 1.7.6]\nin adjustSliderPos(), ensure that floating panel is positioned completely within the browser window (i.e., does not go beyond the right edge of the browser window)\n===\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: 7, date: new Date(2006,2,16)};\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="show"; var cookie="";\n\n // extra "+", default to open\n if (lookaheadMatch[1])\n { show="block"; title="<"; tooltip="hide"; }\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="hide"; }\n else\n { show="none"; title=">"; tooltip="show"; }\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 ((show=="block")||!lookaheadMatch[8]) {\n // render now if panel is supposed to be shown or NOT deferred rendering\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")=="show")\n theTarget.setAttribute("title","hide");\n else if (theTarget.getAttribute("title")=="hide")\n theTarget.setAttribute("title","show");\n if (theTarget.getAttribute("title")=="show "+theLabel)\n theTarget.setAttribute("title","hide "+theLabel);\n else if (theTarget.getAttribute("title")=="hide "+theLabel)\n theTarget.setAttribute("title","show "+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 if (left+panel.offsetWidth > getWindowWidth()) left=getWindowWidth()-panel.offsetWidth;\n panel.style.left=left+"px"; panel.style.top=top+"px";\n }\n}\n\nfunction getWindowWidth() {\n if(document.width!=undefined)\n return document.width; // moz (FF)\n if(document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )\n return document.documentElement.clientWidth; // IE6\n if(document.body && ( document.body.clientWidth || document.body.clientHeight ) )\n return document.body.clientWidth; // IE4\n if(window.innerWidth!=undefined)\n return window.innerWidth; // IE - general\n return 0; // unknown\n}\n//}}}\n// //===
\n[[Decreto-Lei nº 222/98 de 17 de Julho (com as alterações introduzidas pela Lei nº 98/99, pela Declaração de rectificação nº 19-D/98 e pelo Decreto-Lei nº 182/2003)|http://www.estradasdeportugal.pt/site/v3/?id_pagina=9EB2785D-10C5-486B-B7A8-AFDD7396B05E&id_pasta=B9D1BE27-0079-4FCF-A0AA-86248E5B482E&grupo=5]] (documento disponível no servidor da Estradas de Portugal)\nRedefine o plano rodoviário nacional (PRN) e cria estradas regionais.\n\n[[Decreto Lei n.° 13/94 de 15 de Janeiro|doc/01890191.pdf]]\nEstabelece faixas com sentido "non aedificandi" junto das estradas nacionais, constantes do Plano Rodoviário Nacional.\n \n[[Decreto-Lei N.º 12/92 de 4 de Fevereiro|doc/07100711.pdf]]\nAltera o Decreto-Lei n.º 315/91, de 20 de Agosto (aprova as novas bases da concessão da construção, conservação e exploração de auto-estradas, outorgada à Brisa - Auto-Estradas de Portugal, S. A.). Estabelece as zonas "non aedificandi" em lanços de auto-estrada.\n \n[[Decreto-Lei n.° 637/76 de 29 de Julho|doc/17661768.pdf]]\nEstabelece os princípios controladores da actividade publicitária. Regula a afixação de publicidade nas áreas urbanas, lugares públicos e de carácter comercial.\n \n[[Decreto-Lei n.º 105/98 de 24 de Abril|doc/18301832.pdf]]\nAfixação ou inscrição de publicidade. Regula a afixação ou inscrição de publicidade na proximidade das estradas nacionais fora dos aglomerados urbanos. \n \n[[Decreto-Lei n.º 123/97 de 22 de Maio|doc/25402544.pdf]]\nAcessibilidade de pessoas com mobilidade condicionada. Torna obrigatória a adopção de um conjunto de normas técnicas básicas de eliminação de barreiras arquitectónicas em edifícios públicos, equipamentos colectivos e via pública para melhoria da acessibilidade das pessoas com mobilidade condicionada. \n \n[[Decreto Regulamentar n.° 33/88 de 12 de Setembro|doc/37423751.pdf]]\nSinalização de obras na via pública. Disciplina a sinalização temporária de obras e obstáculos na via pública.
http://www.tagzania.com/user/pontos_negros/Oeiras\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Oeiras]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Oeiras#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
\n[[Código Civil (actualizado até à Lei 59/99, de 30 de Junho)|http://www.stj.pt/nsrepo/geral/cptlp/Portugal/CodigoCivil.pdf]] (documento disponível no servidor do Supremo Tribunal de Justiça)\n<<<\n{{textoPequeno{Artigo 492.º\n(Danos causados por edifícios ou outras obras)\n\n1. O proprietário ou possuidor de edifício ou de outra obra que ruir, no todo ou em parte, por vício de construção ou defeito de conservação, responde pelos danos causados, salvo se provar que não houve culpa da sua parte ou que, mesmo com a diligência devida, se não teriam evitado os danos.\n2. A pessoa obrigada, por lei ou negócio jurídico, a conservar o edifício ou obra responde, em lugar do proprietário ou possuidor, quando os danos forem devidos exclusivamente a defeito de conservação.\n}}}\n<<<\n\n[[Código Penal|http://www.unifr.ch/derechopenal/legislacion/pt/CPPortugal.pdf]] (documento disponível no servidor da Université de Fribourg, Suiça)\n<<<\n{{textoPequeno{Artigo 277.º\n(Infracção de regras de construção, dano em instalações e perturbação de serviços)\n\n1 - Quem:\na) No âmbito da sua actividade profissional infringir regras legais, regulamentares ou técnicas que devam ser observadas no planeamento, direcção ou execução de construção, demolição ou instalação, ou na sua modificação;\nb) Destruir, danificar ou tornar não utilizável, total ou parcialmente, aparelhagem ou outros meios existentes em local de trabalho e destinados a prevenir acidentes, ou, infringindo regras legais, regulamentares ou técnicas, omitir a instalação de tais meios ou aparelhagem;\nc) Destruir, danificar ou tornar não utilizável, total ou parcialmente, instalação para aproveitamento, produção, armazenamento, condução ou distribuição de água, óleo, gasolina, calor, electricidade, gás ou energia nuclear, ou para protecção contra forças da natureza; ou\nd) Impedir ou perturbar a exploração de serviços de comunicações ou de fornecimento ao público de água, luz, energia ou calor, subtraindo ou desviando, destruindo, danificando ou tornando não utilizável, total ou parcialmente, coisa ou energia que serve tais serviços;\ne criar deste modo perigo para a vida ou para a integridade física de outrem, ou para bens patrimoniais alheios de valor elevado, é punido com pena de prisão de 1 a 8 anos.\n2 - Se o perigo referido no número anetrior for criado por negligência, o agente é punido com pena de prisão até 5 anos.\n3 - Se a conduta referida no nº 1 for praticada por negligência, o agente é punido com pena de prisão até 3 anos ou com pena de multa.}}}\n<<<\n\n[[Lei nº 24/96 de 31 de Julho|doc/21842189.pdf]]\nLei da Defesa do Consumidor. Estabelece o regime legal aplicável à defesa dos consumidores. Revoga a Lei n.º 29/81, de 22 de Agosto.
<div class='header'>\n<div class='titleLine'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n</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>
\n[[Petição à Assembleia da República: "Direito à Vida. Contra o Crime Rodoviário em Portugal"|/doc/peticao.pdf]]\nIniciada pela ACA-M e subscrita por cerca de 8000 cidadãos, a petição foi entregue na Assembleia da República em 24 de Abril de 2001.\n\n[[Parecer sobre a Petição n.º 57/VIII/2ª à Assembleia da República|/doc/relatorio_sobre_peticao.pdf]]\nPela Subcomissão de Segurança Rodoviária, em 26 de Fevereiro de 2003.\n\n[[Apreciação da Petição n.º 57/VIII/2ª em reunião plenária de 21 de Maio de 2003|/doc/debate_peticao.pdf]]\nIntervieram os Srs. Deputados João Gago Horta (PSD), Mota Andrade (PS), João Teixeira Lopes (BE), Miguel Anacoreta Correia (CDS-PP), Rodeia Machado (PCP) e Isabel Castro (os Verdes).
{{{\nversion.extensions.PortugueseLingo = {\n major: 1, minor: 0, revision: 0,\n date: new Date(2006, 1, 4), \n type: 'translation',\n source: "http://www.math.ist.utl.pt/~psoares/addons.html#PortugueseLingo"\n};\n\nconfig.commands.closeTiddler.text = "fechar";\nconfig.commands.closeTiddler.tooltip = "Fecha este tiddler";\nconfig.commands.closeOthers.text = "fechar outros";\nconfig.commands.closeOthers.tooltip = "Fecha todos os outros tiddlers";\nconfig.commands.editTiddler.text = "editar";\nconfig.commands.editTiddler.tooltip = "Edita este tiddler";\nconfig.commands.editTiddler.readOnlyText = "ver"; \nconfig.commands.editTiddler.readOnlyTooltip = "Mostra o código deste tiddler"; \nconfig.commands.saveTiddler.text = "guardar";\nconfig.commands.saveTiddler.tooltip = "Guarda as alterações a este tiddler";\nconfig.commands.saveTiddler.readOnlyText = "feito"; \nconfig.commands.saveTiddler.readOnlyTooltip = "Retorna ao aspecto normal"; \nconfig.commands.cancelTiddler.text = "cancelar";\nconfig.commands.cancelTiddler.tooltip = "Cancela as alterações a este tiddler";\nconfig.commands.deleteTiddler.text = "eliminar";\nconfig.commands.deleteTiddler.tooltip = "Elimina este tiddler";\nconfig.commands.deleteTiddler.warning = "Tem a certeza que quer eliminar '%0'?";\nconfig.commands.permalink.text = "permaligação";\nconfig.commands.permalink.tooltip = "Permaligação para este tiddler";\nconfig.commands.references.text = "referências";\nconfig.commands.references.tooltip = "Abre tiddlers que ligam a este";\nconfig.commands.references.popupNone = "Sem referências";\nconfig.commands.jump.text = "saltar";\nconfig.commands.jump.tooltip = "Salta para outro tiddler aberto";\n\nconfig.macros.allTags.noTags = "Não há tiddlers com etiquetas";\nconfig.macros.allTags.tooltip = "Abre tiddlers com a etiqueta ";\nconfig.macros.closeAll.label = "fechar todos";\nconfig.macros.closeAll.prompt = "Fecha todos os tiddlers que estão abertos (excepto os que estão em edição)";\nconfig.macros.list.all.prompt = "Todos os tiddlers por ordem alfabética";\nconfig.macros.list.missing.prompt = "Tiddlers que têm ligações de outros tiddlers mas não existem";\nconfig.macros.list.orphans.prompt = "Tiddlers sem ligações de outros tiddlers";\nconfig.macros.list.shadowed.prompt = "Tiddlers encobertos com conteúdo pré-definido";\nconfig.macros.newJournal.label = "novo diário";\nconfig.macros.newJournal.months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro","Dezembro"];\nconfig.macros.newJournal.prompt = "Cria um novo tiddler com a data e hora actual";\nconfig.macros.newTiddler.label = "novo tiddler";\nconfig.macros.newTiddler.title = "Novo tiddler";\nconfig.macros.newTiddler.prompt = "Cria um novo tiddler";\nconfig.macros.permaview.label = "permavista";\nconfig.macros.permaview.prompt = "Liga a um URL que mostra todos os tiddlers que estão abertos";\nconfig.macros.saveChanges.label = "guardar alterações";\nconfig.macros.saveChanges.prompt = "Guarda todas as alterações num ficheiro";\nconfig.macros.search.label = "procurar";\nconfig.macros.search.prompt = "Procura neste TiddlyWiki";\nconfig.macros.search.successMsg = "%0 tiddlers encontrados que contêm: '%1'";\nconfig.macros.search.failureMsg = "Nenhum tiddler encontrado que contenha: '%0'";\nconfig.macros.timeline.dateFormat = "DD MMM YYYY";\nconfig.macros.tagging.label = "etiquetando:";\nconfig.macros.tagging.labelNotTag = "não etiquetando:";\nconfig.macros.tagging.tooltip = "Tiddlers etiquetados com '%0'";\n\nconfig.messages.backupFailed = "Falhou ao guardar o ficheiro de backup";\nconfig.messages.backupSaved = "Ficheiro de backup guardado";\nconfig.messages.cantSaveError = "Não é possível guardar alterações com este browser. Se puder use o Mozilla Firefox";\nconfig.messages.customConfigError = "Erro no tiddler de systemConfig '%1' - '%0'";\nconfig.messages.emptyFailed = "Falhou ao guardar o ficheiro vazio";\nconfig.messages.emptySaved = "Ficheiro vazio guardado";\nconfig.messages.externalLinkTooltip = "Ligação externa a '%0'";\nconfig.messages.invalidFileError = "O arquivo original '%0' não parece ser um TiddlyWiki válido";\nconfig.messages.macroError = "Erro na macro <<%0>>";\nconfig.messages.macroErrorDetails = "Erro ao executar macro <<%0>>:\sn%1";\nconfig.messages.missingMacro = "A macro não existe";\nconfig.messages.mainFailed = "Falhou ao guardar o arquivo principal de TiddlyWiki. As alterações não foram guardadas";\nconfig.messages.mainSaved = "Arquivo principal de TiddlyWiki guardado";\nconfig.messages.noTags = "Não há tiddlers com etiquetas";\nconfig.messages.notFileUrlError = "Para guardar a alterações, necessita primeiro de gravar este TiddlyWiki num ficheiro local";\nconfig.messages.overwriteWarning = "Um tiddler chamado '%0' já existe. Clique OK para substituí-lo";\nconfig.messages.rssFailed = "Falhou ao guardar o ficheiro RSS";\nconfig.messages.rssSaved = "Ficheiro RSS guardado";\nconfig.messages.savedSnapshotError = "Parece que este TiddlyWiki foi guardado incorrectamente. Por favor veja o site TiddlyWiki para mais detalhes";\nconfig.messages.subtitleUnknown = "(desconhecido )";\nconfig.messages.undefinedTiddlerToolTip = "O tiddler '%0' ainda não existe";\nconfig.messages.shadowedTiddlerToolTip = "O tiddler '%0' ainda não existe, mas tem um modelo pré-definido";\nconfig.messages.unsavedChangesWarning = "ATENÇÃO! Há alterações que ainda não foram guardadas\sn\snClique OK para guardar\snClique CANCEL para perder as alterações";\nconfig.messages.messageClose.text = "fechar";\nconfig.messages.messageClose.tooltip = "Fecha a área de mensagens";\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\nconfig.views.editor.defaultText = "Escreva o texto para '%0'.";\nconfig.views.editor.tagChooser.popupNone = "Não há etiquetas definidas";\nconfig.views.editor.tagChooser.tagTooltip = "Agregar a etiqueta ";\nconfig.views.editor.tagChooser.text = "junte etiquetas";\nconfig.views.editor.tagChooser.tooltip = "Escolha entre as etiquetas existentes para agregar a este tiddler ";\nconfig.views.editor.tagPrompt = "Escreva as etiquetas separadas por espaços, [[use duplos parênteses rectos]] se necessário, ou";\n\nconfig.shadowTiddlers.OpcoesAvancadas = "<<option chkGenerateAnRssFeed>> GerarUmFicheiroRSS\sn<<option chkOpenInNewWindow>> AbreLigaçõesNumaNovaJanela\sn<<option chkSaveEmptyTemplate>> CriaNovoFicheiroVazio\sn<<option chkToggleLinks>> Fazer clique em ligações para tiddlers abertos, fecha-os.\sn^^(desactive com Control ou outra tecla modificadora)^^\sn<<option chkHttpReadOnly>> EscondeBotõesEdição quando acedido por HTTP\sn<<option chkForceMinorUpdate>> Trata as edições como AlteraçõesMenores ao preservar 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 no campo de edição do tiddler: <<option txtMaxEditRows>>\snNome do directório para os ficheiros de backup: <<option txtBackupFolder>>\sn";\n\nconfig.shadowTiddlers.OptionsPanel = "Estas opções de personalização TiddlyWiki ficam guardadas no browser\sn\snIndique o seu nome de utilizador para assinar os textos. Use uma PalavraWiki (por ex., JoséSilva)\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 [[OpcoesAvancadas]]";\n\nconfig.shadowTiddlers.SideBarTabs = "<<tabs txtMainTab 'Data' 'Tiddlers por ordem cronológica' TabTimeline 'Título' 'Tiddlers por ordem alfabética' TabAll 'Etiquetas' 'Tiddlers etiquetados' TabTags 'Mais' 'Mais opções' TabMore>>";\n\nconfig.shadowTiddlers.TabMore = "<<tabs txtMoreTab 'Em falta' 'Tiddlers que não existem' TabMoreMissing 'Orfãos' 'Tiddlers sem ligações de outros tiddlers' TabMoreOrphans Sombra 'Tiddlers encobertos' TabMoreShadowed>>";\n\nconfig.shadowTiddlers.MainMenu = "ComoComeçar";\nconfig.shadowTiddlers.DefaultTiddlers = "ComoComeçar";\nconfig.shadowTiddlers.SiteTitle = "O meu TiddlyWiki";\nconfig.shadowTiddlers.SiteSubtitle = "um bloco de notas reutilizável e não-linear na web";\n\nconfig.views.wikified.defaultText = "Este tiddler '%0' não existe. Faça duplo-clique para criá-lo.";\nconfig.views.wikified.tag.labelTags = "Etiquetas: ";\nconfig.views.wikified.tag.openTag = "Abrir etiqueta '%0'";\nconfig.views.wikified.tag.labelNoTags = "Sem etiquetas";\nconfig.views.wikified.tag.openAllText = "Abrir todos os tiddlers marcados com '%0'";\nconfig.views.wikified.tag.openAllTooltip = "Abrir todos estes tiddlers";\nconfig.views.wikified.tag.popupNone = "No há outros tiddlers marcados com '%0'";\nconfig.views.wikified.tag.tooltip = "Abrir tiddlers marcados com ";\n}}}
\n[[Decreto-Lei nº 442/91 de 15 de Novembro|http://www.diramb.gov.pt/data/basedoc/TXT_LN_332_2_0001.htm]]\nCódigo de Procedimento Administrativo\n<<<\n{{textoPequeno{Artigo 53.º\n(Legitimidade)\n\n1 - Têm legitimidade para iniciar o procedimento administrativo e para intervir nele os titulares de direitos subjectivos ou interesses legalmente protegidos, no âmbito das decisões que nele forem ou possam ser tomadas, bem como as associações sem carácter político ou sindical que tenham por fim a defesa desses interesses.\n2 - Consideram-se, ainda, dotados de legitimidade para a protecção de interesses difusos:\na) Os cidadãos a quem a actuação administrativa provoque ou possa previsivelmente provocar prejuízos relevantes em bens fundamentais como a saúde pública, a habitação, a educação, o património cultural, o ambiente, o ordenamento do território e a qualidade de vida;\nb) Os residentes na circunscrição em que se localize algum bem do domínio público afectado pela acção da Administração.\n3 - Para defender os interesses difusos de que sejam titulares os residentes em determinada circunscrição têm legitimidade as associações dedicadas à defesa de tais interesses e os órgãos autárquicos da respectiva área.\n4 - Não podem reclamar nem recorrer aqueles que, sem reserva, tenham aceitado, expressa ou tacitamente, um acto administrativo depois de praticado.}}}\n<<<\n\n[[Lei n.º 83/95 de 31 de Agosto|doc/54645467.pdf]]\nDireito de participação procedimental e de acção popular.
http://www.provedor-jus.pt/\n\nRua Pau de Bandeira, 9\n1249-088 LISBOA \n\nTelefone: 213926600 \nLinha Azul: 808200084 \nFax: 213961243\nprovedor@provedor-jus.pt
\n''Pavimento''\n\n__Pavimento degradado__\n<<<\nO troço referido apresenta o pavimento degradado o que afecta a circulação rodoviária, provoca danos nos veículos que por aí circulam, potenciando situações de acidente\n<<<\n\n''Cruzamentos e Entroncamentos''\n\n__Cruzamento perigoso (genérico)__\n<<<\nÉ um cruzamento que regularmente presencia acidentes aparatosos, com vítimas mortais, e que urge ser alvo de uma solução consistente.\n<<<\n__Cruzamento perigoso (falta de visibilidade e sinalização confusa ou desadequada)__\n<<<\nÉ um cruzamento sem visibilidade e com sinalização confusa no que respeita a prioridade de passagem, que provoca diariamente situações de perigo para os condutores que o atravessam.\n<<<\n<<<\nO cruzamento em questão urge ser alvo de uma solução consistente dada a dificuldade de travessia do mesmo, pelo que já se presenciaram no local alguns acidentes. A situação poderá ser provocada pelas dificuldades de visibilidade no local ou pela sinalização, eventualmente desadequada.\n<<<\n__Entroncamento confuso__\n<<<\nO referido entroncamento apresenta uma sinalização deficiente, não permitindo aos condutores que fazem o trajecto Sul-Norte distinguir a estrada secundária da via principal. A situação descrita potencia o perigo de colisão entre os condutores que seguem para Sul e os que, seguindo para Norte, atravessam inadvertidamente o caminho dos primeiros.\n<<<\n\n''Sinalização''\n\n__Sinalização confusa (sinalização informativa)__\n<<<\nNo local referido, a sinalização de indicação de direcção é confusa, havendo o perigo, já concretizado, dos veículos procedentes da EN111 entrarem em contra-mão na auto-estrada.\n<<<\n__Sinalização desadequada (utilização de traços descontínuos em zona sem visibilidade)__\n<<<\nO local referido apresenta uma sinalização deficiente, nomeadamente a utilização de traços descontínuos em zonas sem visibilidade. A situação urge ser resolvida, pois coloca em risco a vida e a integridade física dos automobilistas.\n<<<\n__Sinalização ausente (sinalização informativa)__\n<<<\nNo local referido não há sinalização indicativa do caminho a tomar para o Estoril. Esta situação poderá induzir os condutores em erro e até potenciar situações de acidente.\n<<<\n__Sinalização ausente (demarcação das faixas de rodagem em rotunda)__\n<<<\nNa referida rotunda, a falta de sinalização horizontal demarcadora das faixas de rodagem confunde os condutores, potenciando situações de acidente.\n<<<\n__Falta de sinalização atempada (sinalização informativa)__\n<<<\nNo local referido não existe sinalização atempada indicando a saída para o Carregado, a única sinalização existente encontra-se já na saída. Esta situação pode levar os condutores a efectuar manobras eventualmente perigosas e potenciar a ocorrência de acidentes no local.\n<<<\n__Falta de sinalização atempada (final de faixa de ultrapassagem)__\n<<<\nAo longo do IP5 não existe sinalização atempada indicativa do final das faixas de ultrapassagem. Os sinais existentes encontram-se demasiado próximos do fim da faixa, não permitindo que os condutores terminem a sua ultrapassagem com as devidas precauções.\n<<<\n__Sinalização pouco perceptível (demarcação das faixas de rodagem)__\n<<<\nNo referido local, a sinalização horizontal demarcadora das faixas de rodagem encontra-se pouco perceptível. Esta situação dificulta a circulação nocturna.\n<<<\n__Quartel de Bombeiros__\n<<<\nNo local referido falta sinalização luminosa que permita a saída em segurança dos veículos de emergência. A ausência deste semáforo coloca em risco os automobilistas que circulam na via pública e que têm direito a circular em segurança, e dificulta, simultaneamente, a actividade da corporação.\n<<<\n\n''Acalmia do Tráfego''\n\n__Passagem de EN’s no interior de cidades__\n<<<\nA passagem da EN4, uma via nacional com um alto volume de trânsito automóvel, pelo interior de Vendas Novas provoca uma situação potencialmente perigosa para os peões. Urge encontrar alternativas à situação presente.\n<<<\n__Dissuasão da velocidade dentro das localidades__\n<<<\nÉ um local onde regularmente se assiste à violação do limite de velocidade, o que aumenta o risco de acidente, colocando em perigo a vida e a integridade física dos peões.\n<<<\n\n''Estacionamento desregulado''\n\n__Estacionamento na faixa de rodagem__\n<<<\nNo local referido, não obstante a existência de sinalização horizontal proibindo o estacionamento, encontram-se regularmente veículos estacionados, o que obriga os condutores que passam a pisar o risco contínuo que separa as faixas de rodagem.\n<<<\n__Estacionamento no passeio__\n<<<\nÉ um local onde o passeio se encontra diariamente obstruído por veículos que aí procuram um local de estacionamento, violando o direito à circulação dos peões e colocando em risco a sua segurança.\n<<<\n\n''Infra-estruturas pedonais''\n\n__Inexistência de passeios__\n<<<\nO local em questão não possui infra-estruturas necessárias para a circulação de peões com a devida segurança. A situação é agravada pela sua deficiente iluminação.\n<<<\n__Falta de passadeiras__\n<<<\nO local em questão não possui passagens assinaladas que permitam aos peões o atravessamento da via em segurança.\n<<<\n\n''Rotundas''\n\n__Rotunda sem visibilidade__\n<<<\nA referida rotunda não oferece a devida visibilidade a quem nela pretende circular, o que pode provocar situações de perigo para os condutores que a atravessam.\n<<<\n__Rotunda com inclinação ao contrário__\n<<<\nA referida rotunda apresenta-se como sendo um local potencialmente perigoso para os que nela circulam pois tem inclinação ao contrário. Urge ser alvo de uma solução consistente.\n<<<\n\n''Outros''\n\n__Hidroplanagem__\n<<<\nO local em questão, em dias de chuva, é propício ao desenvolvimento de lençóis de água, o que aumenta o risco de acidente, colocando em perigo a vida e a integridade física dos automobilistas.\n<<<\n__Falta de faixa de aceleração__\n<<<\nNo referido local não existe uma faixa de aceleração que permita aos condutores entrar na A2 com a devida segurança e iniciar a sua circulação com a velocidade adequada.\n<<<\n
Nesta secção a ACA-M disponibiliza as ferramentas necessárias para pressionar as autoridades na resolução de pontos negros: um guia de requerimento e informação jurídica diversa. \n\nO [[guia de requerimento|Guia de Requerimento]] é um resumo dos passos necessários, nos termos no Código de Procedimento Administrativo, para que o cidadão inicie individualmente procedimentos autónomos para a resolução dos pontos negros. \n\nA secção de [[informação jurídica|Informação Jurídica]] é uma colecção de documentos e ligações de interesse.\n\nTentaremos também manter uma lista actualizada de [[contactos]] úteis.
\n[[Constituição da República Portuguesa|doc/constpt2005.pdf]]\n<<<\n{{textoPequeno{Artigo 22.º\n(Responsabilidade das entidades públicas)\n\nO Estado e as demais entidades públicas são civilmente responsáveis, em forma solidária com os titulares dos seus órgãos, funcionários ou agentes, por acções ou omissões praticadas no exercício das suas funções e por causa desse exercício, de que resulte violação dos direitos, liberdades e garantias ou prejuízo para outrem.}}}\n<<<\n\n[[Código Civil (actualizado até à Lei 59/99, de 30 de Junho)|http://www.stj.pt/nsrepo/geral/cptlp/Portugal/CodigoCivil.pdf]] (documento disponível no servidor do Supremo Tribunal de Justiça)\n<<<\n{{textoPequeno{Artigo 501.º\n(Responsabilidade do Estado e de outras pessoas colectivas públicas)\n\nO Estado e demais pessoas colectivas públicas, quando haja danos causados a terceiro pelos seus órgãos, agentes ou representantes no exercício de actividades de gestão privada, respondem civilmente por esses danos nos termos em que os comitentes respondem pelos danos causados pelos seus comissários.}}}\n<<<\n\n[[Decreto-Lei n.º 48051, de 21 de Novembro de 1967|doc/DL_48051-1967.pdf]]\nResponsabilidade Civil Extracontratual da Administração Pública por actos de gestão pública. Regula em tudo o que não esteja previsto em Leis especiais a responsabilidade civil extracontratual do Estado e demais pessoas colectivas públicas no domínio dos actos de gestão pública.\n\nA adequação da lei tem sido muito discutida nos últimos anos. Assim, em 2001, a Assembleia da República aprovou, na generalidade, uma proposta de lei do PS que definia a responsabilidade do Estado (Proposta de Lei nº 95/VIII). A proposta caducou com a dissolução do Parlamento em Dezembro. Essa mesma proposta foi apresentada pelo Grupo Parlamentar do PS (Projecto de Lei n.º 148/IX) e aprovado por unanimidade, na generalidade, em Novembro de 2002. Em 2003 o XV Governo Constitucional apresentou à Assembleia da República nova proposta de lei. A proposta de lei do Governo (Proposta de Lei n.º 88/IX), aprovada em Conselho de Ministros de 11 de Setembro de 2003, baseia-se no projecto inicialmente elaborado mas contém várias alterações. Foi igualmente aprovada na generalidade pela Assembleia da República. Nenhuma destas propostas chegou a ser votada na especialidade. A última proposta de lei, do XVII Governo Constitucional ([[Proposta de Lei n.º 56/X|doc/Proposta_de_Lei_56-X.pdf]]), foi discutida e aprovada na generalidade em 6 de Abril de 2006, e baixou à Comissão de Assuntos Constitucionais, Direitos, Liberdades e Garantias para discussão na especialidade. \n\n[[Lei n.º 169/99 de 18 de Setembro|doc/Lei169-99.pdf]]\nCompetências dos órgãos autárquicos. Estabelece o quadro de competências, assim como o regime jurídico de funcionamento, dos órgãos dos municípios e das freguesias.\n<<<\n{{textoPequeno{Artigo 96.º\n(Responsabilidade funcional)\n\n1 - As autarquias locais respondem civilmente perante terceiros por ofensa de direitos destes ou de disposições legais destinadas a proteger os seus interesses, resultante de actos ilícitos culposamente praticados pelos respectivos órgãos ou agentes no exercício das suas funções ou por causa desse exercício.\n2 - Quando satisfizerem qualquer indemnização nos termos do número anterior, as autarquias locais gozam do direito de regresso contra os titulares dos órgãos ou os agentes culpados, se estes houverem procedido com diligência e zelo manifestamente inferiores àqueles a que se achavam obrigados em razão do cargo.\n\nArtigo 97.º\n(Responsabilidade pessoal)\n\n1 - Os titulares dos órgãos e os agentes das autarquias locais respondem civilmente perante terceiros pela prática de actos ilícitos que ofendam direitos destes ou disposições legais destinadas a proteger os interesses deles, se tiverem excedido os limites das suas funções ou se, no desempenho destas ou por causa delas, tiverem procedido dolosamente.\n2 - Em caso de procedimento doloso, as autarquias locais são sempre solidariamente responsáveis com os titulares dos seus órgãos ou os seus agentes.}}}\n<<<\n\n
http://www.scutvias.pt/\n\nPraça de Alvalade, nº6 - 7º\n1700-036 LISBOA \n\nTelefone: 217826200\nFax: 217826190
http://www.tagzania.com/user/pontos_negros/Sert%C3%A3\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Sert%C3%A3]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Sert%C3%A3#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
<<search>><<closeAll>><<permaview>><<newTiddler>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'opções »' 'Change TiddlyWiki advanced options'>>
http://www.tagzania.com/user/pontos_negros/sintra\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/sintra]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/sintra#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
Georeferenciação colaborativa e guia de requerimento
[[ACA-M]] Pontos Negros
[[ClassicStyle]]\n[[EstilosSuplementares]]\n
/***\n!Sections in this Tiddler:\n*Generic rules\n**Links styles\n**Link Exceptions\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n font-size: .75em;\n font-family: arial,helvetica;\n position: relative;\n margin: 0;\n padding: 0;\n}\n\nh1,h2,h3,h4,h5 {\n font-weight: bold;\n text-decoration: none;\n padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.25em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\nhr {\n height: 1px;\n}\n\na{\n text-decoration: none;\n}\n\nol { list-style-type: decimal }\nol ol { list-style-type: lower-alpha }\nol ol ol { list-style-type: lower-roman }\nol ol ol ol { list-style-type: decimal }\nol ol ol ol ol { list-style-type: lower-alpha }\nol ol ol ol ol ol { list-style-type: lower-roman }\nol ol ol ol ol ol ol { list-style-type: decimal }\n/*}}}*/\n/***\n''General Link Styles'' /%-----------------------------------------------------------------------------%/\n***/\n/*{{{*/\n.externalLink {\n text-decoration: underline;\n}\n\n.tiddlyLinkExisting {\n font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n font-weight: bold;\n}\n/*}}}*/\n/***\n''Exceptions to common link styles'' /%------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#sidebarTabs .tiddlyLinkExisting,\n#sidebarTabs .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n\n.header {\n position: relative;\n}\n\n.header a:hover {\n background: transparent;\n}\n\n.headerShadow {\n position: relative;\n padding: 4.5em 0em 1em 1em;\n left: -1px;\n top: -1px;\n}\n\n.headerForeground {\n position: absolute;\n padding: 4.5em 0em 1em 1em;\n left: 0px;\n top: 0px;\n}\n\n.siteTitle {\n font-size: 3em;\n}\n\n.siteSubtitle {\n font-size: 1.2em;\n}\n\n/*}}}*/\n/***\n!Main menu /%==================================================%/\n***/\n/*{{{*/\n#mainMenu {\n position: absolute;\n left: 0;\n width: 10em;\n text-align: right;\n line-height: 1.6em;\n padding: 1.5em 0.5em 0.5em 0.5em;\n font-size: 1.1em;\n}\n\n/*}}}*/\n/***\n!Sidebar rules /%==================================================%/\n***/\n/*{{{*/\n#sidebar {\n position: absolute;\n right: 3px;\n width: 16em;\n font-size: .9em;\n}\n/*}}}*/\n/***\n''Sidebar options'' /%----------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n#sidebarOptions {\n padding-top: 0.3em;\n}\n\n#sidebarOptions a {\n margin: 0em 0.2em;\n padding: 0.2em 0.3em;\n display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 0.5em;\n}\n\n#sidebarOptions .sliderPanel {\n margin-left: 1em;\n padding: 0.5em;\n font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n font-weight: bold;\n display: inline;\n padding: 0;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0 0 .3em 0;\n}\n/*}}}*/\n/***\n''Sidebar tabs'' /%-------------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#sidebarTabs .tabContents {\n width: 15em;\n overflow: hidden;\n}\n\n/*}}}*/\n/***\n!Message area /%==================================================%/\n***/\n/*{{{*/\n#messageArea {\nposition:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;\n}\n\n*[id='messageArea'] {\nposition:fixed !important; z-index:99;}\n\n.messageToolbar {\ndisplay: block;\ntext-align: right;\n}\n\n#messageArea a{\n text-decoration: underline;\n}\n/*}}}*/\n/***\n!Popup /%==================================================%/\n***/\n/*{{{*/\n.popup {\n font-size: .9em;\n padding: 0.2em;\n list-style: none;\n margin: 0;\n}\n\n.popup hr {\n display: block;\n height: 1px;\n width: auto;\n padding: 0;\n margin: 0.2em 0em;\n}\n\n.popup li.disabled {\n padding: 0.2em;\n}\n\n.popup li a{\n display: block;\n padding: 0.2em;\n}\n/*}}}*/\n/***\n!Tabs /%==================================================%/\n***/\n/*{{{*/\n.tabset {\n padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n margin: 0em 0em 0em 0.25em;\n padding: 2px;\n}\n\n.tabContents {\n padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n margin: 0;\n padding: 0;\n}\n\n.txtMainTab .tabContents li {\n list-style: none;\n}\n\n.tabContents li.listLink {\n margin-left: .75em;\n}\n/*}}}*/\n/***\n!Tiddler display rules /%==================================================%/\n***/\n/*{{{*/\n#displayArea {\n margin: 1em 17em 0em 14em;\n}\n\n\n.toolbar {\n text-align: right;\n font-size: .9em;\n visibility: hidden;\n}\n\n.selected .toolbar {\n visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.missing .viewer,.missing .title {\n font-style: italic;\n}\n\n.title {\n font-size: 1.6em;\n font-weight: bold;\n}\n\n.missing .subtitle {\n display: none;\n}\n\n.subtitle {\n font-size: 1.1em;\n}\n\n/* I'm not a fan of how button looks in tiddlers... */\n.tiddler .button {\n padding: 0.2em 0.4em;\n}\n\n.tagging {\nmargin: 0.5em 0.5em 0.5em 0;\nfloat: left;\ndisplay: none;\n}\n\n.isTag .tagging {\ndisplay: block;\n}\n\n.tagged {\nmargin: 0.5em;\nfloat: right;\n}\n\n.tagging, .tagged {\nfont-size: 0.9em;\npadding: 0.25em;\n}\n\n.tagging ul, .tagged ul {\nlist-style: none;margin: 0.25em;\npadding: 0;\n}\n\n.tagClear {\nclear: both;\n}\n\n.footer {\n font-size: .9em;\n}\n\n.footer li {\ndisplay: inline;\n}\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n* html .viewer pre {\n width: 99%;\n padding: 0 0 1em 0;\n}\n\n.viewer {\n line-height: 1.4em;\n padding-top: 0.5em;\n}\n\n.viewer .button {\n margin: 0em 0.25em;\n padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n line-height: 1.5em;\n padding-left: 0.8em;\n margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n margin-left: 0.5em;\n padding-left: 1.5em;\n}\n\n.viewer table {\n border-collapse: collapse;\n margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n padding: 3px;\n}\n\n.viewer pre {\n padding: 0.5em;\n margin-left: 0.5em;\n font-size: 1.2em;\n line-height: 1.4em;\n overflow: auto;\n}\n\n.viewer code {\n font-size: 1.2em;\n line-height: 1.4em;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor {\nfont-size: 1.1em;\n}\n\n.editor input, .editor textarea {\n display: block;\n width: 100%;\n font: inherit;\n}\n\n.editorFooter {\n padding: 0.25em 0em;\n font-size: .9em;\n}\n\n.editorFooter .button {\npadding-top: 0px; padding-bottom: 0px;}\n\n.fieldsetFix {border: 0;\npadding: 0;\nmargin: 1px 0px 1px 0px;\n}\n/*}}}*/\n/***\n!Misc rules /%==================================================%/\n***/\n/*{{{*/\n.sparkline {\n line-height: 1em;\n}\n\n.sparktick {\n outline: 0;\n}\n\n.zoomer {\n font-size: 1.1em;\n position: absolute;\n padding: 1em;\n}\n\n.cascade {\n font-size: 1.1em;\n position: absolute;\n overflow: hidden;\n}\n/*}}}*/
http://www.tagzania.com/\n\n"Tagzania une etiquetas com lugares. Se se registar, poderá adicionar lugares, pontos a uma conta pessoal, para ir criando e documentando sítios em mapas. Quando adiciona um lugar, pode etiquetá-lo com palavras chave. Deste modo, Tagzania não só lhe serve para guardar os próprios mapas, mas também surgirão territórios compartidos entre utilizadores."
um bloco de notas reutilizável e não-linear na web\nhttp://www.tiddlywiki.com/\nv. <<version>>
http://www.tagzania.com/user/pontos_negros/Tondela\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Tondela]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Tondela#s=14&cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
http://www.tagzania.com/user/pontos_negros/Valongo\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Valongo]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Valongo#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink revisions references'></div>\n<div class='tagged' macro='tags'></div>\n<div class='title' macro='view title'></div>\n\n<div class='viewer' macro='view text wikified'></div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagClear'></div>
http://www.tagzania.com/user/pontos_negros/Viseu\n\nPara navegar pelos pontos negros georeferenciados use o [[mapa grande|http://www.tagzania.com/paste/user/pontos_negros/Viseu]]\n<html>\n<iframe scrolling="no" src="http://www.tagzania.com/paste/user/pontos_negros/Viseu#cm=0&ct=0&cs=0" height="300px" width="400px" frameborder="0">tagzaniapaste</iframe>\n</html>\n
/***\n|''Name:''|WikiBar|\n|''Version:''|2.0.0 beta3|\n|''Source:''|[[AiddlyWiki|http://aiddlywiki.sourceforge.net]]|\n|''Author:''|[[Arphen Lin|mailto:arphenlin@gmail.com]]|\n|''Type:''|toolbar macro command extension|\n|''Required:''|TiddlyWiki 2.0.0 beta6|\n!Description\nWikiBar is a toolbar that gives access to most of TiddlyWiki's formatting features with a few clicks. It's a handy tool for people who are not familiar with TiddlyWiki syntax.\nBesides, with WikiBar-addons, users can extend the power of WikiBar.\n!Support browser\n*Firefox 1.5\n!Revision history\n*v2.0.0 beta3 (2005/12/30)\n** remove macros (replaced by TWMacro addon)\n** add wikibar command in toolbar automatically\n** rename DOIT to HANDLER\n** rename TIP to TOOLTIP\n*v2.0.0 beta2 (2005/12/21)\n** re-design Wikibar addon framework\n*v2.0.0 beta1 (2005/12/14)\n** Note:\n*** WikiBarPlugin is renamed to WikiBar\n** New Features:\n*** support TiddlyWiki 2.0.0 template mechanism\n*** new wikibar data structure\n*** new wikibar-addon framework for developers\n**** support dynamic popup menu generator\n*** support most new macros added in TiddlyWiki 2.0.0\n*** multi-level popup menu\n*** fix wikibar tab stop\n*** remove paletteSelector\n** Known Bugs:\n*** popup-menu and color-picker can't be closed correctly\n*** some macros can't be displayed correctly in previewer\n*** text in previewer will be displayed italic\n*v1.2.0 (2005/11/21)\n**New Features:\n***User defined color palettes supported\n####Get color palettes from [[ColorZilla Palettes|http://www.iosart.com/firefox/colorzilla/palettes.html]].\n####Save the palette file(*.gpl) as a new tiddler and tag it with 'ColorPalettes', then you can use it in WikiBar.\n***WikiBar style sheet supported\n***Click on document to close current colorPicker, paletteSelector or aboutWikibar\n*v1.1.1 (2005/11/03)\n**Bugs fixed:\n***'Not enough parameters!' message is displayed when the parameter includes '%+number', ex: 'hello%20world!'\n*v1.1.0 (2005/11/01)\n**Bugs fixed:\n***WikiBar overruns (reported by by GeoffS <gslocock@yahoo.co.uk>)\n**New features:\n***Insert a color code at the cursor. (Thanks to RunningUtes <RunningUtes@gmail.com>)\n***Enable gradient macro. (Thanks to RunningUtes <RunningUtes@gmail.com>)\n***Insert tiddler comment tags {{{/% ... %/}}}. (new feature supported by TiddlyWiki 1.2.37)\n***Insert DateFormatString for {{{<<today>>}}} macro. (new feature supported by TiddlyWiki 1.2.37)\n**Enhanced:\n***Allow optional parameters in syntax.\n**Bugs:\n***'Not enough parameters!' message is displayed when the parameter includes '%+number', ex: 'hello%20world!'\n*v1.0.0 (2005/10/30)\n**Initial release\n!Code\n***/\n//{{{\nconfig.macros.wikibar = {major: 2, minor: 0, revision: 0, beta: 3, date: new Date(2005,12,30)};\nconfig.macros.wikibar.handler = function(place,macroName,params,wikifier,paramString,tiddler){\n if(!(tiddler instanceof Tiddler)) {return;}\n story.setDirty(tiddler.title,true);\n place.id = 'wikibar'+tiddler.title;\n place.className = 'toolbar wikibar';\n};\nfunction wikibar_install(){\n config.commands.wikibar = {\n text: 'wikibar',\n tooltip: 'wikibar on/off',\n handler: function(e,src,title) {\n if(!e){ e = window.event; }\n var theButton = resolveTarget(e);\n theButton.id = 'wikibarButton'+title;\n wikibarPopup.remove();\n wikibar_installAddons(theButton, title);\n wikibar_createWikibar(title);\n return(false);\n }\n };\n config.shadowTiddlers['EditTemplate'] = wikibar_addWikibarCommand(config.shadowTiddlers['EditTemplate']);\n var tiddler = store.getTiddler('EditTemplate');\n if(tiddler){\n tiddler.text = wikibar_addWikibarCommand(tiddler.text);\n }\n}\nfunction wikibar_installAddons(theButton, title){\n var tiddlers = store.getTaggedTiddlers('wikibarAddons');\n if(!tiddlers) { return; }\n theButton.addons=[];\n for(var i=0; i<tiddlers.length; i++){\n try{\n eval(tiddlers[i].text);\n try{\n wikibar_addonInstall(title);\n wikibar_addonInstall = null;\n theButton.addons.push({ok:true, name:tiddlers[i].title});\n }catch(ex){\n theButton.addons.push({ok:false, name:tiddlers[i].title, error:ex});\n }\n }catch(ex){\n theButton.addons.push({ok:false, name:tiddlers[i].title, error:ex});\n }\n }\n}\nfunction wikibar_addWikibarCommand(tiddlerText){\n var div = document.createElement('div');\n div.style.display = 'none';\n div.innerHTML = tiddlerText;\n for(var i=0; i<div.childNodes.length; i++){\n var o=div.childNodes[i];\n if(o.tagName==='DIV'){\n if(o.className=='toolbar'){\n var macroText = o.getAttribute('macro').trim();\n if(macroText.search('wikibar')<=0){\n macroText += ' wikibar';\n o.setAttribute('macro', macroText);\n }\n break;\n }\n }\n }\n return div.innerHTML.replace(/\s"/g, "\s'");\n}\nfunction wikibar_processSyntaxParams(theSyntax, params){\n try{\n var pcr = 'AplWikibarPcr';\n var rx=null;\n var allParams=null;\n if(params){\n if(typeof(params)=='object'){\n for(var i=0; i<params.length; i++){\n if(params[i]){\n params[i] = params[i].replace(new RegExp('%','g'), pcr).trim();\n rx = '(\s\s[%'+(i+1)+'\s\s])' + '|' + '(%'+(i+1)+')';\n theSyntax = theSyntax.replace(new RegExp(rx,'g'), params[i] );\n }\n }\n allParams = params.join(' ').trim();\n }else{\n allParams = params.replace(new RegExp('%','g'), pcr).trim();\n rx = /(\s[%1{1}\s])|(%1{1})/g;\n theSyntax = theSyntax.replace(rx, allParams);\n }\n }\n if(allParams){\n theSyntax = theSyntax.replace(new RegExp('%N{1}','g'), allParams);\n }\n rx=/\s[%(([1-9]{1,}[0-9]{0,})|(N{1}))\s]/g;\n theSyntax = theSyntax.replace(rx, '');\n rx=/%(([1-9]{1,}[0-9]{0,})|(N{1}))/g;\n if( theSyntax.match(rx) ){\n throw 'Not enough parameters! ' + theSyntax;\n }\n theSyntax=theSyntax.replace(new RegExp(pcr,'g'), '%');\n return theSyntax;\n } catch(ex){\n return null;\n }\n}\nfunction wikibar_resolveEditItem(tiddlerWrapper, itemName){\n if(tiddlerWrapper.hasChildNodes()){\n var c=tiddlerWrapper.childNodes;\n for(var i=0; i<c.length; i++){\n var txt=wikibar_resolveEditItem(c[i], itemName);\n if(!txt){\n continue;\n }else{\n return txt;\n }\n }\n }\n return ((tiddlerWrapper.getAttribute && tiddlerWrapper.getAttribute('edit')==itemName)? tiddlerWrapper : null);\n}\nfunction wikibar_resolveEditItemValue(tiddlerWrapper, itemName){\n var o = wikibar_resolveEditItem(tiddlerWrapper, itemName);\n return (o? o.value.replace(/\sr/mg,'') : null);\n}\nfunction wikibar_resolveTiddlerEditorWrapper(obj){\n if(obj.id=='tiddlerDisplay'){return null;}\n if((obj.getAttribute && obj.getAttribute('macro')=='edit text')){return obj;}\n return wikibar_resolveTiddlerEditorWrapper(obj.parentNode);\n}\nfunction wikibar_resolveTiddlerEditor(obj){\n if(obj.hasChildNodes()){\n var c = obj.childNodes;\n for(var i=0; i<c.length; i++){\n var o=wikibar_resolveTiddlerEditor(c[i]);\n if(o){ return o;}\n }\n }\n return ((obj.getAttribute && obj.getAttribute('edit')=='text')? obj : null);\n}\nfunction wikibar_resolveTargetButton(obj){\n if(obj.id && obj.id.substring(0,7)=='wikibar'){ return null; }\n if(obj.tiddlerTitle){\n return obj;\n }else{\n return wikibar_resolveTargetButton(obj.parentNode);\n }\n}\nfunction wikibar_isValidMenuItem(tool){\n if(!tool){ return false; }\n if(tool.TYPE=='MENU' || tool.TYPE=='MAIN_MENU'){\n for(var key in tool){\n if(key.substring(0,8)=='DYNAITEM'){ return true; }\n if(wikibar_isValidMenuItem(tool[key])){ return true; }\n }\n return false;\n }else{\n return (tool.HANDLER? true : false);\n }\n}\nfunction wikibar_editFormat(param){\n var editor = param.button.editor;\n var params = param.params;\n clearMessage();\n if(!editor){ return; }\n var repText = wikibar_processSyntaxParams(this.syntax, params);\n if(repText===null){ return; }\n var st = editor.scrollTop;\n var ss = editor.selectionStart;\n var se = editor.selectionEnd;\n var frontText= '';\n var endText = '';\n var fullText = editor.value;\n if(se>ss && ss>=0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n }\n else if(ss===0 && (se===0 || se == fullText.length) ){\n endText = fullText;\n }\n else if(se==ss && ss>0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n }\n if(repText.indexOf('user_text')>=0 && this.hint){\n repText = repText.replace('user_text', this.hint);\n }\n editor.value = frontText + repText + endText;\n editor.selectionStart = ss;\n editor.selectionEnd = ss + repText.length;\n editor.scrollTop = st;\n editor.focus();\n}\nfunction wikibar_editFormatByWord(param){\n var editor = param.button.editor;\n var params = param.params;\n clearMessage();\n if(!editor){return;}\n var repText = wikibar_processSyntaxParams(this.syntax, params);\n if(repText===null){ return; }\n var st = editor.scrollTop;\n var ss = editor.selectionStart;\n var se = editor.selectionEnd;\n var frontText= '';\n var selText = '';\n var endText = '';\n var fullText = editor.value;\n if(se>ss && ss>=0){\n frontText = fullText.substring(0, ss);\n selText = fullText.substring(ss,se);\n endText = fullText.substring(se, fullText.length);\n }\n else if(ss===0 && (se===0 || se == fullText.length) ){\n endText = fullText;\n }\n else if(se==ss && ss>0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n if(!( fullText.charAt(ss-1).match(/\sW/gi) || fullText.charAt(ss).match(/\sW/gi) )){\n var m = frontText.match(/\sW/gi);\n if(m){\n ss = frontText.lastIndexOf(m[m.length-1])+1;\n }\n else{\n ss = 0;\n }\n m = endText.match(/\sW/gi);\n if(m){\n se += endText.indexOf(m[0]);\n }\n else{\n se = fullText.length;\n }\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n selText = fullText.substring(ss,se);\n }\n }\n if(selText.length>0){\n repText = repText.replace('user_text', selText);\n }\n if(repText.indexOf('user_text')>=0 && this.hint){\n repText = repText.replace('user_text', this.hint);\n }\n editor.value = frontText + repText + endText;\n editor.selectionStart = ss;\n editor.selectionEnd = ss + repText.length;\n editor.scrollTop = st;\n editor.focus();\n}\nfunction wikibar_editFormatByCursor(param){\n var editor = param.button.editor;\n var params = param.params;\n clearMessage();\n if(!editor){ return; }\n var repText = wikibar_processSyntaxParams(this.syntax, params);\n if(repText===null){ return; }\n var st = editor.scrollTop;\n var ss = editor.selectionStart;\n var se = editor.selectionEnd;\n var frontText= '';\n var endText = '';\n var fullText = editor.value;\n if(se>ss && ss>=0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n }\n else if(ss===0 && (se===0 || se == fullText.length) ){\n endText = fullText;\n }\n else if(se==ss && ss>0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n }\n if(repText.indexOf('user_text')>=0 && this.hint){\n repText = repText.replace('user_text', this.hint);\n }\n editor.value = frontText + repText + endText;\n editor.selectionStart = ss;\n editor.selectionEnd = ss + repText.length;\n editor.scrollTop = st;\n editor.focus();\n}\nfunction wikibar_editFormatByLine(param){\n var editor = param.button.editor;\n var params = param.params;\n clearMessage();\n if(!editor){ return; }\n var repText = wikibar_processSyntaxParams(this.syntax, params);\n if(repText===null){ return; }\n var st = editor.scrollTop;\n var ss = editor.selectionStart;\n var se = editor.selectionEnd;\n var frontText= '';\n var selText = '';\n var endText = '';\n var fullText = editor.value;\n if(se>ss && ss>=0){\n if(this.byBlock){\n frontText = fullText.substring(0, ss);\n selText = fullText.substring(ss,se);\n endText = fullText.substring(se, fullText.length);\n }\n else{\n se = ss;\n }\n }\n if(ss===0 && (se===0 || se == fullText.length) ){\n var m=fullText.match(/(\sn|\sr)/g);\n if(m){\n se = fullText.indexOf(m[0]);\n }else{\n se = fullText.length;\n }\n selText = fullText.substring(0, se);\n endText = fullText.substring(se, fullText.length);\n }\n else if(se==ss && ss>0){\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n m = frontText.match(/(\sn|\sr)/g);\n if(m){\n ss = frontText.lastIndexOf(m[m.length-1])+1;\n }\n else{\n ss = 0;\n }\n m = endText.match(/(\sn|\sr)/g);\n if(m){\n se += endText.indexOf(m[0]);\n }\n else{\n se = fullText.length;\n }\n frontText = fullText.substring(0, ss);\n selText = fullText.substring(ss,se);\n endText = fullText.substring(se, fullText.length);\n }\n if(selText.length>0){\n repText = repText.replace('user_text', selText);\n }\n if(repText.indexOf('user_text')>=0 && this.hint){\n repText = repText.replace('user_text', this.hint);\n }\n if(this.byBlock){\n if( (frontText.charAt(frontText.length-1)!='\sn') && ss>0 ){\n repText = '\sn' + repText;\n }\n if( (endText.charAt(0)!='\sn') || se==fullText.length){\n repText += '\sn';\n }\n }\n editor.value = frontText + repText + endText;\n editor.selectionStart = ss;\n editor.selectionEnd = ss + repText.length;\n editor.scrollTop = st;\n editor.focus();\n}\nfunction wikibar_editFormatByTableCell(param){\n var editor = param.button.editor;\n var params = param.params;\n clearMessage();\n if(!editor){ return; }\n var repText = wikibar_processSyntaxParams(this.syntax, params);\n if(repText===null){ return; }\n var st = editor.scrollTop;\n var ss = editor.selectionStart;\n var se = editor.selectionEnd;\n var frontText= '';\n var selText = '';\n var endText = '';\n var fullText = editor.value;\n if(ss===0 || ss==fullText.length){\n throw 'not valid cell!';\n }\n se=ss;\n frontText = fullText.substring(0, ss);\n endText = fullText.substring(se, fullText.length);\n i=frontText.lastIndexOf('\sn');\n j=frontText.lastIndexOf('|');\n if(i>j || j<0){\n throw 'not valid cell!';\n }\n ss = j+1;\n i=endText.indexOf('\sn');\n j=endText.indexOf('|');\n if(i<j || j<0){\n throw 'not valid cell!';\n }\n se += j;\n frontText = fullText.substring(0, ss-1);\n selText = fullText.substring(ss,se);\n endText = fullText.substring(se+1, fullText.length);\n if(this.key.substring(0,5)=='align'){\n selText = selText.trim();\n if( selText=='>' || selText=='~' || selText.substring(0,8)=='bgcolor(') {return; }\n }\n if(selText.length>0){\n repText = repText.replace('user_text', selText);\n }\n if(repText.indexOf('user_text')>=0 && this.hint){\n repText = repText.replace('user_text', this.hint);\n }\n editor.value = frontText + repText + endText;\n editor.selectionStart = ss;\n editor.selectionEnd = ss + repText.length - 2;\n editor.scrollTop = st;\n editor.focus();\n}\nfunction wikibar_editSelectAll(param){\n var editor = param.button.editor;\n editor.selectionStart = 0;\n editor.selectionEnd = editor.value.length;\n editor.scrollTop = 0;\n editor.focus();\n}\nfunction wikibar_doPreview(param){\n var theButton = param.button;\n var editor = param.button.editor;\n var wikibar = theButton.parentNode;\n if(!wikibar) { return; }\n title = theButton.tiddlerTitle;\n var editorWrapper = wikibar_resolveTiddlerEditorWrapper(editor);\n var tiddlerWrapper = editorWrapper.parentNode;\n var previewer = document.getElementById('previewer'+title);\n if(previewer){\n previewer.parentNode.removeChild(previewer);\n editorWrapper.style.display = 'block';\n visible=true;\n }else{\n previewer = document.createElement('div');\n previewer.id = 'previewer'+title;\n previewer.className = 'viewer previewer';\n previewer.style.height = (editor.offsetHeight) + 'px';\n wikify(editor.value, previewer);\n tiddlerWrapper.insertBefore(previewer, editorWrapper);\n editorWrapper.style.display = 'none';\n visible=false;\n }\n var pv=null;\n for(var i=0; i<wikibar.childNodes.length; i++){\n try{\n var btn = wikibar.childNodes[i];\n if(btn.toolItem.key == 'preview'){ pv=btn; }\n if(btn.toolItem.key != 'preview'){\n btn.style.display = visible ? '': 'none';\n }\n }catch(ex){}\n }\n if(!pv) { return; }\n if(visible){\n pv.innerHTML = '<font face=\s"verdana\s">&infin;</font>';\n pv.title = 'preview current tiddler';\n }\n else{\n pv.innerHTML = '<font face=\s"verdana\s">&larr;</font>';\n pv.title = 'back to editor';\n }\n}\nfunction wikibar_doListAddons(param){\n clearMessage();\n var title = param.button.tiddlerTitle;\n var wikibarButton = document.getElementById('wikibarButton'+title);\n var ok=0, fail=0;\n for(var i=0; i<wikibarButton.addons.length; i++){\n var addon=wikibarButton.addons[i];\n if(addon.ok){\n displayMessage('[ o ] '+addon.name);\n ok++;\n }\n else{\n displayMessage('[ x ] '+addon.name + ': ' + addon.error);\n fail++;\n }\n }\n displayMessage('---------------------------------');\n displayMessage(ok + ' ok ; ' + fail + ' failed');\n}\nfunction wikibar_getColorCode(param){\n var cbOnPickColor = function(colorCode, param){\n param.params = colorCode;\n param.button.toolItem.doMore(param);\n };\n wikibarColorTool.openColorPicker(param.button, cbOnPickColor, param);\n}\nfunction wikibar_getLinkUrl(param){\n var url= prompt('Please enter the link target', (this.param? this.param : ''));\n if (url && url.trim().length>0){\n param.params = url;\n this.doMore(param);\n }\n}\nfunction wikibar_getTableRowCol(param){\n var rc= prompt('Please enter (rows x cols) of the table', '2 x 3');\n if (!rc || (rc.trim()).length<=0){ return; }\n var arr = rc.toUpperCase().split('X');\n if(arr.length != 2) { return; }\n for(var i=0; i<arr.length; i++){\n if(isNaN(arr[i].trim())) { return; }\n }\n var rows = parseInt(arr[0].trim(), 10);\n var cols = parseInt(arr[1].trim(), 10);\n var txtTable='';\n for(var r=0; r<rows; r++){\n for(var c=0; c<=cols; c++){\n if(c===0){\n txtTable += '|';\n }else{\n txtTable += ' |';\n }\n }\n txtTable += '\sn';\n }\n if(txtTable.trim().length>0){\n param.params = txtTable.trim();\n this.doMore(param);\n }\n}\nfunction wikibar_getMacroParam(param){\n var p = prompt('Please enter the parameters of macro \s"' + this.key + '\s":' +\n '\snSyntax: ' + this.syntax +\n '\sn\snNote: '+\n '\sn%1,%2,... - parameter needed'+\n '\sn[%1] - optional parameter'+\n '\sn%N - more than one parameter(1~n)'+\n '\sn[%N] - any number of parameters(0~n)'+\n '\sn\snPS:'+\n '\sn1. Parameters should be seperated with space character'+\n '\sn2. Use \s" to wrap the parameter that includes space character, ex: \s"hello world\s"'+\n '\sn3. Input the word(null) for the optional parameter ignored',\n (this.param? this.param : '') );\n if(!p) { return; }\n p=p.readMacroParams();\n for(var i=0; i<p.length; i++){\n var s=p[i].trim();\n if(s.indexOf(' ')>0){ p[i]="'"+s+"'"; }\n if(s.toLowerCase()=='null'){ p[i]=null; }\n }\n param.params = p;\n this.doMore(param);\n}\nfunction wikibar_getMorePalette(unused){\n clearMessage();\n displayMessage('Get more color palettes(*.gpl) from ColorZilla Palettes site', 'http:\s/\s/www.iosart.com/firefox/colorzilla/palettes.html');\n displayMessage('Save it as a new tiddler with \s"ColorPalettes\s" tag');\n}\nfunction wikibar_createWikibar(title){\n var theWikibar = document.getElementById('wikibar' + title);\n if(theWikibar){\n if(theWikibar.hasChildNodes()){\n theWikibar.style.display = (theWikibar.style.display=='block'? 'none':'block');\n return;\n }\n }\n var tiddlerWrapper = document.getElementById('tiddler'+title);\n var theTextarea = wikibar_resolveTiddlerEditor(tiddlerWrapper);\n if(!theTextarea){\n clearMessage();\n displayMessage('WikiBar only works in tiddler edit mode now');\n return;\n }else{\n if(!theTextarea.id){ theTextarea.id = 'editor'+title; }\n if(!theTextarea.parentNode.id){ theTextarea.parentNode.id='editorWrapper'+title; }\n }\n if(theWikibar){\n theWikibar = document.getElementById('wikibar'+title);\n }else{\n var editorWrapper = wikibar_resolveTiddlerEditorWrapper(theTextarea);\n theWikibar = createTiddlyElement(tiddlerWrapper, 'div', 'wikibar'+title, 'toolbar');\n addClass(theWikibar, 'wikibar');\n var previewer = document.getElementById('previewer'+title);\n if(previewer){\n tiddlerWrapper.insertBefore(theWikibar, previewer);\n }else{\n tiddlerWrapper.insertBefore(theWikibar, editorWrapper);\n }\n }\n wikibar_createMenu(theWikibar,wikibarStore,title,theTextarea);\n if(config.options['chkWikibarSetEditorHeight'] && config.options['txtWikibarEditorRows']){\n theTextarea.rows = config.options['txtWikibarEditorRows'];\n }\n setStylesheet(\n '.wikibar{text-align:left;visibility:visible;margin:2px;padding:1px;}.previewer{overflow:auto;display:block;border:1px solid;}#colorPicker{position:absolute;display:none;z-index:10;margin:0px;padding:0px;}#colorPicker table{margin:0px;padding:0px;border:2px solid #000;border-spacing:0px;border-collapse:collapse;}#colorPicker td{margin:0px;padding:0px;border:1px solid;font-size:11px;text-align:center;cursor:auto;}#colorPicker .header{background-color:#fff;}#colorPicker .button{background-color:#fff;cursor:pointer;cursor:hand;}#colorPicker .button:hover{padding-top:3px;padding-bottom:3px;color:#fff;background-color:#136;}#colorPicker .cell{padding:4px;font-size:7px;cursor:crosshair;}#colorPicker .cell:hover{padding:10px;}.wikibarPopup{position:absolute;z-index:10;border:1px solid #014;color:#014;background-color:#cef;}.wikibarPopup table{margin:0;padding:0;border:0;border-spacing:0;border-collapse:collapse;}.wikibarPopup .button:hover{color:#eee;background-color:#014;}.wikibarPopup .disabled{color:#888;}.wikibarPopup .disabled:hover{color:#888;background-color:#cef;}.wikibarPopup tr .seperator hr{margin:0;padding:0;background-color:#cef;width:100%;border:0;border-top:1px dashed #014;}.wikibarPopup tr .icon{font-family:verdana;font-weight:bolder;}.wikibarPopup tr .marker{font-family:verdana;font-weight:bolder;}.wikibarPopup td{font-size:0.9em;padding:2px;}.wikibarPopup input{border:0;border-bottom:1px solid #014;margin:0;padding:0;font-family:arial;font-size:100%;background-color:#fff;}',\n 'WikiBarStyleSheet');\n}\nfunction wikibar_createMenu(place,toolset,title,editor){\n if(!wikibar_isValidMenuItem(toolset)){return;}\n if(!(toolset.TYPE=='MAIN_MENU' || toolset.TYPE=='MENU')){ return; }\n for(var key in toolset){\n if(key.substring(0,9)=='SEPERATOR'){\n wikibar_createMenuSeperator(place);\n continue;\n }\n if(key.substring(0,8)=='DYNAITEM'){\n var dynaTools = toolset[key](title,editor);\n if(dynaTools.TYPE && dynaTools.TYPE=='MENU'){\n wikibar_createMenuItem(place,dynaTools,null,editor,title);\n }else{\n dynaTools.TYPE = 'MENU';\n wikibar_createMenu(place, dynaTools, title, editor);\n }\n continue;\n }\n if((toolset[key].TYPE!='MENU' && toolset[key].TYPE!='MAIN_MENU') && !toolset[key].HANDLER){continue;}\n wikibar_createMenuItem(place,toolset,key,editor,title);\n }\n}\nfunction wikibar_createMenuItem(place,toolset,key,editor,title){\n if(!key){\n var tool = toolset;\n }else{\n tool = toolset[key];\n tool.key = key;\n }\n if(!wikibar_isValidMenuItem(tool)){return;}\n var toolIsOnMainMenu = (toolset.TYPE=='MAIN_MENU');\n var toolIsMenu = (tool.TYPE=='MENU');\n var theButton;\n if(toolIsOnMainMenu){\n theButton = createTiddlyButton(\n place,\n '',\n (tool.TOOLTIP? tool.TOOLTIP : ''),\n (toolIsMenu? wikibar_onClickMenuItem : wikibar_onClickItem),\n 'button');\n theButton.innerHTML = (tool.CAPTION? tool.CAPTION : key);\n theButton.isOnMainMenu = true;\n addClass(theButton, (toolIsMenu? 'menu' : 'item'));\n place.appendChild( document.createTextNode('\sn') );\n if(!toolIsMenu){\n if(config.options['chkWikibarPopmenuOnMouseOver']){\n theButton.onmouseover = function(e){ wikibarPopup.remove(); };\n }\n }\n }else{\n theButton=createTiddlyElement(place, 'tr',key,'button');\n theButton.title = (tool.TOOLTIP? tool.TOOLTIP : '');\n theButton.onclick = (toolIsMenu? wikibar_onClickMenuItem : wikibar_onClickItem);\n var tdL = createTiddlyElement(theButton, 'td','','marker');\n var td = createTiddlyElement(theButton, 'td');\n var tdR = createTiddlyElement(theButton, 'td','','marker');\n td.innerHTML = (tool.CAPTION? tool.CAPTION : key);\n if(toolIsMenu){\n tdR.innerHTML='&nbsp;&nbsp;&rsaquo;';\n }\n if(tool.SELECTED){\n tdL.innerHTML = '&radic; ';\n addClass(theButton, 'selected');\n }\n if(tool.DISABLED){\n addClass(theButton, 'disabled');\n }\n }\n theButton.tiddlerTitle = title;\n theButton.toolItem = tool;\n theButton.editor = editor;\n theButton.tabIndex = 999;\n if(toolIsMenu){\n if(config.options['chkWikibarPopmenuOnMouseOver']){\n theButton.onmouseover = wikibar_onClickMenuItem;\n }\n }\n}\nfunction wikibar_createMenuSeperator(place){\n if(place.id.substring(0,7)=='wikibar') { return; }\n var onclickSeperator=function(e){\n if(!e){ e = window.event; }\n e.cancelBubble = true;\n if (e.stopPropagation){ e.stopPropagation(); }\n return(false);\n };\n var theButton=createTiddlyElement(place,'tr','','seperator');\n var td = createTiddlyElement(theButton, 'td','','seperator');\n td.colSpan=3;\n theButton.onclick=onclickSeperator;\n td.innerHTML = '<hr>';\n}\nfunction wikibar_genWikibarAbout(){\n var toolset={};\n toolset.version = {\n CAPTION: '<center>WikiBar ' +\n config.macros.wikibar.major + '.' +\n config.macros.wikibar.minor + '.' +\n config.macros.wikibar.revision +\n (config.macros.wikibar.beta? ' beta '+config.macros.wikibar.beta : '') +\n '</center>',\n HANDLER: function(){}\n };\n toolset.SEPERATOR = {};\n toolset.author = {\n CAPTION: '<center>Arphen Lin<br>arphenlin@gmail.com</center>',\n TOOLTIP: 'send mail to the author',\n HANDLER: function(){ window.open('mailto:arphenlin@gmail.com'); }\n };\n toolset.website = {\n CAPTION: '<center>aiddlywiki.sourceforge.net</center>',\n TOOLTIP: 'go to the web site of WikiBar',\n HANDLER: function(){ window.open('http:\s/\s/aiddlywiki.sourceforge.net/'); }\n };\n return toolset;\n}\nfunction wikibar_genWikibarOptions(title, editor){\n var toolset={};\n toolset.popOnMouseOver = {\n CAPTION:'popup menu on mouse over',\n SELECTED: config.options['chkWikibarPopmenuOnMouseOver'],\n HANDLER: function(param){\n config.options['chkWikibarPopmenuOnMouseOver'] = !config.options['chkWikibarPopmenuOnMouseOver'];\n saveOptionCookie('chkWikibarPopmenuOnMouseOver');\n var title = param.button.tiddlerTitle;\n var wikibar = document.getElementById('wikibar'+title);\n if(wikibar){ wikibar.parentNode.removeChild(wikibar); }\n wikibar_createWikibar(title);\n }\n };\n toolset.setEditorSize = {\n CAPTION:'set editor height: <input id=\s"txtWikibarEditorRows\s" type=text size=1 MAXLENGTH=3 value=\s"' +\n (config.options['txtWikibarEditorRows']? config.options['txtWikibarEditorRows']:editor.rows) + '\s"> ok',\n HANDLER: function(param){\n var input = document.getElementById('txtWikibarEditorRows');\n if(input){\n var rows = parseInt(input.value, 10);\n if(!isNaN(rows)){\n var editor = param.button.editor;\n editor.rows = rows;\n }else{\n rows=config.maxEditRows;\n }\n config.options['txtWikibarEditorRows'] = rows;\n saveOptionCookie('txtWikibarEditorRows');\n config.maxEditRows = rows;\n }\n }\n };\n toolset.setEditorSizeOnLoadingWikibar = {\n CAPTION:'set editor height on loading wikibar',\n SELECTED: config.options['chkWikibarSetEditorHeight'],\n HANDLER: function(param){\n config.options['chkWikibarSetEditorHeight'] = !config.options['chkWikibarSetEditorHeight'];\n saveOptionCookie('chkWikibarSetEditorHeight');\n if(config.options['chkWikibarSetEditorHeight']){\n var rows = config.options['txtWikibarEditorRows'];\n if(!isNaN(rows)){ rows = 15; }\n var editor = param.button.editor;\n editor.rows = rows;\n config.options['txtWikibarEditorRows'] = rows;\n saveOptionCookie('txtWikibarEditorRows');\n }\n }\n };\n toolset.SEPERATOR = {};\n toolset.update = {\n CAPTION: 'check for updates',\n DISABLED: true,\n HANDLER: function(){}\n };\n return toolset;\n}\nfunction wikibar_genPaletteSelector(){\n try{\n var cpTiddlers = store.getTaggedTiddlers('ColorPalettes');\n if(!cpTiddlers) { return; }\n var palettes=[];\n palettes.push(wikibarColorTool.defaultPaletteName);\n for(var i=0; i<cpTiddlers.length; i++){\n palettes.push(cpTiddlers[i].title.trim());\n }\n var toolset={};\n for(i=0; i<palettes.length; i++){\n toolset[palettes[i]] = {\n TOOLTIP: palettes[i],\n SELECTED: (palettes[i]==wikibarColorTool.paletteName),\n HANDLER: wikibar_doSelectPalette\n };\n }\n return toolset;\n }catch(ex){ return null; }\n}\nfunction wikibar_onClickItem(e){\n if(!e){ e = window.event; }\n var theTarget = resolveTarget(e);\n if(theTarget.tagName=='INPUT'){\n e.cancelBubble = true;\n if (e.stopPropagation){ e.stopPropagation(); }\n return;\n }\n var theButton = wikibar_resolveTargetButton(theTarget);\n if(!theButton){ return(false); }\n var o = theButton.toolItem;\n if(!o) { return; }\n var param = {\n event: e,\n button: theButton\n };\n if(o.HANDLER){ o.HANDLER(param); }\n if(o.DISABLED){\n e.cancelBubble = true;\n if (e.stopPropagation){ e.stopPropagation(); }\n }\n return(false);\n}\nfunction wikibar_onClickMenuItem(e){\n if(!e){ e = window.event; }\n var theButton = wikibar_resolveTargetButton(resolveTarget(e));\n if(!theButton){ return(false); }\n e.cancelBubble = true;\n if (e.stopPropagation){ e.stopPropagation(); }\n var title = theButton.tiddlerTitle;\n var editor = theButton.editor;\n var tool = theButton.toolItem;\n if(!tool) { return; }\n var popup = wikibarPopup.create(this);\n if(popup){\n wikibar_createMenu(popup,tool,title,editor);\n if(!popup.hasChildNodes()){\n wikibarPopup.remove();\n }else{\n wikibarPopup.show(popup, false);\n }\n }\n return(false);\n}\nvar wikibarColorTool = {\n defaultPaletteName : 'default',\n defaultColumns : 16,\n defaultPalette : [\n '#FFF','#DDD','#CCC','#BBB','#AAA','#999','#666','#333','#111','#000','#FC0','#F90','#F60','#F30','#C30','#C03',\n '#9C0','#9D0','#9E0','#E90','#D90','#C90','#FC3','#FC6','#F96','#F63','#600','#900','#C00','#F00','#F36','#F03',\n '#CF0','#CF3','#330','#660','#990','#CC0','#FF0','#C93','#C63','#300','#933','#C33','#F33','#C36','#F69','#F06',\n '#9F0','#CF6','#9C3','#663','#993','#CC3','#FF3','#960','#930','#633','#C66','#F66','#903','#C39','#F6C','#F09',\n '#6F0','#9F6','#6C3','#690','#996','#CC6','#FF6','#963','#630','#966','#F99','#F39','#C06','#906','#F3C','#F0C',\n '#3F0','#6F3','#390','#6C0','#9F3','#CC9','#FF9','#C96','#C60','#C99','#F9C','#C69','#936','#603','#C09','#303',\n '#0C0','#3C0','#360','#693','#9C6','#CF9','#FFC','#FC9','#F93','#FCC','#C9C','#969','#939','#909','#636','#606',\n '#060','#3C3','#6C6','#0F0','#3F3','#6F6','#9F9','#CFC','#9CF','#FCF','#F9F','#F6F','#F3F','#F0F','#C6C','#C3C',\n '#030','#363','#090','#393','#696','#9C9','#CFF','#39F','#69C','#CCF','#C9F','#96C','#639','#306','#90C','#C0C',\n '#0F3','#0C3','#063','#396','#6C9','#9FC','#9CC','#06C','#369','#99F','#99C','#93F','#60C','#609','#C3F','#C0F',\n '#0F6','#3F6','#093','#0C6','#3F9','#9FF','#699','#036','#039','#66F','#66C','#669','#309','#93C','#C6F','#90F',\n '#0F9','#6F9','#3C6','#096','#6FF','#6CC','#366','#069','#36C','#33F','#33C','#339','#336','#63C','#96F','#60F',\n '#0FC','#6FC','#3C9','#3FF','#3CC','#399','#033','#39C','#69F','#00F','#00C','#009','#006','#003','#63F','#30F',\n '#0C9','#3FC','#0FF','#0CC','#099','#066','#3CF','#6CF','#09C','#36F','#0CF','#09F','#06F','#03F','#03C','#30C'\n ],\n colorPicker : null,\n pickColorHandler: null,\n userData: null\n};\nwikibarColorTool.paletteName = wikibarColorTool.defaultPaletteName;\nwikibarColorTool.columns = wikibarColorTool.defaultColumns;\nwikibarColorTool.palette = wikibarColorTool.defaultPalette;\nwikibarColorTool.onPickColor = function(e){\n if (!e){ e = window.event; }\n var theCell = resolveTarget(e);\n if(!theCell){ return(false); }\n color = theCell.bgColor.toLowerCase();\n if(!color) { return; }\n wikibarColorTool.displayColorPicker(false);\n if(wikibarColorTool.pickColorHandler){\n wikibarColorTool.pickColorHandler(color, wikibarColorTool.userData);\n }\n return(false);\n};\nwikibarColorTool.onMouseOver = function(e){\n if (!e){ e = window.event; }\n var theButton = resolveTarget(e);\n if(!theButton){ return(false); }\n if(!wikibarColorTool) { return; }\n color = theButton.bgColor.toUpperCase();\n if(!color) { return; }\n td=document.getElementById('colorPickerInfo');\n if(!td) { return; }\n td.bgColor = color;\n td.innerHTML = '<span style=\s"color:#000;\s">'+color+'</span>&nbsp;&nbsp;&nbsp;' +\n '<span style=\s"color:#fff;\s">'+color+'</span>';\n e.cancelBubble = true;\n if (e.stopPropagation){ e.stopPropagation(); }\n return(false);\n};\nwikibarColorTool.openColorPicker = function(theTarget, pickColorHandler, userData){\n wikibarColorTool.skipClickDocumentEvent = true;\n wikibarColorTool.pickColorHandler = pickColorHandler;\n wikibarColorTool.userData = userData;\n wikibarColorTool.moveColorPicker(theTarget);\n};\nwikibarColorTool.convert3to6HexColor = function(c){\n c=c.trim();\n var rx=/^\s#(\sd|[a-f])(\sd|[a-f])(\sd|[a-f])$/gi;\n return (rx.test(c)? c.replace(rx, '#$1$1$2$2$3$3') : c);\n};\nwikibarColorTool.numToHexColor = function (n){\n if(typeof(n)=='number' && (n>=0 && n<=255)) {\n s = n.toString(16).toLowerCase();\n return ((s.length==1)? '0'+s : s);\n }else{\n return null;\n }\n};\nwikibarColorTool.renderColorPalette = function(){\n if(wikibarColorTool.paletteName==wikibarColorTool.defaultPaletteName){\n wikibarColorTool.palette=wikibarColorTool.defaultPalette;\n wikibarColorTool.columns=wikibarColorTool.defaultColumns;\n return;\n }\n tiddlerText = (store.getTiddlerText(wikibarColorTool.paletteName, '')).trim();\n if(tiddlerText.length<=0) { return; }\n var cpContents = tiddlerText.split('\sn');\n var colors=[];\n columns = wikibarColorTool.defaultColumns;\n var tmpArray=null;\n errCount=0;\n for(var i=0; i<cpContents.length; i++){\n cpLine=cpContents[i].trim();\n if( (!cpLine) || (cpLine.length<=0) || (cpLine.charAt(0) == '#') ){ continue; }\n if(cpLine.substring(0,8).toLowerCase()=='columns:'){\n tmpArray = cpLine.split(':');\n try{\n columns = parseInt(tmpArray[1],10);\n }catch(ex){\n columns = wikibarColorTool.defaultColumns;\n }\n }else{\n tmpArray = cpLine.replace('\st', ' ').split(/[ ]{1,}/);\n try{\n color='';\n for(var j=0; j<3; j++){\n c=parseInt(tmpArray[j].trim(), 10);\n if(isNaN(c)){\n break;\n }else{\n c=wikibarColorTool.numToHexColor(c);\n if(!c) {break;}\n color+=c;\n }\n }\n if(color.length==6){\n colors.push('#'+color);\n } else {\n throw 'error';\n }\n }catch(ex){\n }\n }\n }\n if(colors.length>0){\n wikibarColorTool.palette = colors;\n wikibarColorTool.columns = columns;\n }else{\n throw 'renderColorPalette(): No color defined in the palette.';\n }\n};\nwikibarColorTool.displayColorPicker = function(visible){\n if(wikibarColorTool.colorPicker){\n wikibarColorTool.colorPicker.style.display = (visible? 'block' : 'none');\n }\n};\nwikibarColorTool.moveColorPicker = function(theTarget){\n if(!wikibarColorTool.colorPicker){\n wikibarColorTool.createColorPicker();\n }\n var cp = wikibarColorTool.colorPicker;\n var rootLeft = findPosX(theTarget);\n var rootTop = findPosY(theTarget);\n var popupLeft = rootLeft;\n var popupTop = rootTop;\n var popupWidth = cp.offsetWidth;\n var winWidth = findWindowWidth();\n if(popupLeft + popupWidth > winWidth){\n popupLeft = winWidth - popupWidth;\n }\n cp.style.left = popupLeft + 'px';\n cp.style.top = popupTop + 'px';\n wikibarColorTool.displayColorPicker(true);\n};\nwikibarColorTool.createColorPicker = function(unused, palette){\n if(palette){ wikibarColorTool.paletteName=palette; }\n wikibarColorTool.renderColorPalette();\n wikibarColorTool.colorPicker = document.createElement('div');\n wikibarColorTool.colorPicker.id = 'colorPicker';\n document.body.appendChild(wikibarColorTool.colorPicker);\n var theTable = document.createElement('table');\n wikibarColorTool.colorPicker.appendChild(theTable);\n var theTR = document.createElement('tr');\n theTable.appendChild(theTR);\n var theTD = document.createElement('td');\n theTD.className = 'header';\n theTD.colSpan = wikibarColorTool.columns;\n theTD.innerHTML = wikibarColorTool.paletteName;\n theTR.appendChild(theTD);\n for(var i=0; i<wikibarColorTool.palette.length; i++){\n if((i%wikibarColorTool.columns)===0){\n theTR = document.createElement('tr');\n theTable.appendChild(theTR);\n }\n theTD = document.createElement('td');\n theTD.className = 'cell';\n theTD.bgColor = wikibarColorTool.convert3to6HexColor(wikibarColorTool.palette[i]);\n theTD.onclick = wikibarColorTool.onPickColor;\n theTD.onmouseover = wikibarColorTool.onMouseOver;\n theTR.appendChild(theTD);\n }\n rest = wikibarColorTool.palette.length % wikibarColorTool.columns;\n if(rest>0){\n theTD = document.createElement('td');\n theTD.colSpan = wikibarColorTool.columns-rest;\n theTD.bgColor = '#000000';\n theTR.appendChild(theTD);\n }\n theTR = document.createElement('tr');\n theTable.appendChild(theTR);\n theTD = document.createElement('td');\n theTD.colSpan = wikibarColorTool.columns;\n theTD.id = 'colorPickerInfo';\n theTR.appendChild(theTD);\n};\nwikibarColorTool.onDocumentClick = function(e){\n if (!e){ e = window.event; }\n if(wikibarColorTool.skipClickDocumentEvent) {\n wikibarColorTool.skipClickDocumentEvent = false;\n return true;\n }\n if((!e.eventPhase) || e.eventPhase == Event.BUBBLING_PHASE || e.eventPhase == Event.AT_TARGET){\n wikibarColorTool.displayColorPicker(false);\n }\n return true;\n};\nfunction wikibar_doSelectPalette(param){\n clearMessage();\n var theButton = param.button;\n if(!theButton.toolItem.key) { return; }\n var palette = theButton.toolItem.key;\n var oldPaletteName = wikibarColorTool.paletteName;\n if(oldPaletteName != palette){\n try{\n wikibarColorTool.createColorPicker(theButton, palette);\n displayMessage('Palette \s"'+palette+'\s" ('+ wikibarColorTool.palette.length +' colors) is selected');\n }catch(ex){\n errMsg = ex;\n if(errMsg.substring(0,18)=='renderColorPalette'){\n displayMessage('Invalid palette \s"' + palette + '\s", please check it out!');\n wikibarColorTool.createColorPicker(theButton, oldPaletteName);\n }\n }\n }\n}\nvar wikibarPopup = {\n skipClickDocumentEvent: false,\n stack: []\n};\nwikibarPopup.resolveRootPopup = function(o){\n if(o.isOnMainMenu){ return null; }\n if(o.className.substring(0,12)=='wikibarPopup'){ return o;}\n return wikibarPopup.resolveRootPopup(o.parentNode);\n};\nwikibarPopup.create = function(root){\n for(var i=0; i<wikibarPopup.stack.length; i++){\n var p=wikibarPopup.stack[i];\n if(p.root==root){\n wikibarPopup.removeFrom(i+1);\n return null;\n }\n }\n var rootPopup = wikibarPopup.resolveRootPopup(root);\n if(!rootPopup){\n wikibarPopup.remove();\n }else{\n wikibarPopup.removeFromRootPopup(rootPopup);\n }\n var popup = createTiddlyElement(document.body,'div','wikibarPopup'+root.toolItem.key,'wikibarPopup');\n var pop = createTiddlyElement(popup,'table','','');\n wikibarPopup.stack.push({rootPopup: rootPopup, root: root, popup: popup});\n return pop;\n};\nwikibarPopup.show = function(unused,slowly){\n var curr = wikibarPopup.stack[wikibarPopup.stack.length-1];\n var overlayWidth = 1;\n var rootLeft, rootTop, rootWidth, rootHeight, popupLeft, popupTop, popupWidth;\n if(curr.rootPopup){\n rootLeft = findPosX(curr.rootPopup);\n rootTop = findPosY(curr.root);\n rootWidth = curr.rootPopup.offsetWidth;\n popupLeft = rootLeft + rootWidth - overlayWidth;\n popupTop = rootTop;\n }else{\n rootLeft = findPosX(curr.root);\n rootTop = findPosY(curr.root);\n rootHeight = curr.root.offsetHeight;\n popupLeft = rootLeft;\n popupTop = rootTop + rootHeight;\n }\n var winWidth = findWindowWidth();\n popupWidth = curr.popup.offsetWidth;\n if(popupLeft + popupWidth > winWidth){\n popupLeft = rootLeft - popupWidth + overlayWidth;\n }\n curr.popup.style.left = popupLeft + 'px';\n curr.popup.style.top = popupTop + 'px';\n curr.popup.style.display = 'block';\n addClass(curr.root, 'highlight');\n if(config.options.chkAnimate){\n anim.startAnimating(new Scroller(curr.popup,slowly));\n }else{\n window.scrollTo(0,ensureVisible(curr.popup));\n }\n};\nwikibarPopup.remove = function(){\n if(wikibarPopup.stack.length > 0){\n wikibarPopup.removeFrom(0);\n }\n};\nwikibarPopup.removeFrom = function(from){\n for(var t=wikibarPopup.stack.length-1; t>=from; t--){\n var p = wikibarPopup.stack[t];\n removeClass(p.root,'highlight');\n p.popup.parentNode.removeChild(p.popup);\n }\n wikibarPopup.stack = wikibarPopup.stack.slice(0,from);\n};\nwikibarPopup.removeFromRootPopup = function(from){\n for(var t=0; t<wikibarPopup.stack.length; t++){\n var p = wikibarPopup.stack[t];\n if(p.rootPopup==from){\n wikibarPopup.removeFrom(t);\n break;\n }\n }\n};\nwikibarPopup.onDocumentClick = function(e){\n if (!e){ e = window.event; }\n if(wikibarPopup.skipClickDocumentEvent){\n wikibarPopup.skipClickDocumentEvent=false;\n return true;\n }\n if((!e.eventPhase) || e.eventPhase == Event.BUBBLING_PHASE || e.eventPhase == Event.AT_TARGET){\n wikibarPopup.remove();\n }\n return true;\n};\nvar wikibarStore = {\n TYPE: 'MAIN_MENU',\n help:{\n TYPE:'MENU',\n CAPTION: '<font face=\s"verdana\s">?</font>',\n TOOLTIP: 'about WikiBar',\n options:{\n TYPE:'MENU',\n DYNAITEM: wikibar_genWikibarOptions\n },\n about:{\n TYPE:'MENU',\n DYNAITEM: wikibar_genWikibarAbout\n }\n },\n preview:{\n TOOLTIP: 'preview this tiddler',\n CAPTION: '<font face=\s"verdana\s">&infin;</font>',\n HANDLER: wikibar_doPreview\n },\n line:{\n TOOLTIP: 'horizontal line',\n CAPTION: '<font face=\s"verdana\s">&mdash;</font>',\n syntax: '\sn----\sn',\n HANDLER: wikibar_editFormatByCursor\n },\n crlf:{\n TOOLTIP: 'new line',\n CAPTION: '<font face=\s"verdana\s">&para;</font>',\n syntax: '\sn',\n HANDLER: wikibar_editFormatByCursor\n },\n selectAll:{\n TOOLTIP: 'select all',\n CAPTION: '<font face=\s"verdana\s">&sect;</font>',\n HANDLER: wikibar_editSelectAll\n },\n deleteSelected:{\n TOOLTIP: 'delete selected',\n CAPTION: '<font face=\s"verdana\s">&times;</font>',\n syntax: '',\n HANDLER: wikibar_editFormat\n },\n textFormat:{\n TYPE: 'MENU',\n CAPTION: 'text',\n TOOLTIP: 'text formatters',\n ignore:{\n TOOLTIP: 'ignore wiki word',\n CAPTION: 'ignore wikiWord',\n syntax: '~user_text',\n hint: 'wiki_word',\n HANDLER: wikibar_editFormatByWord\n },\n bolder:{\n TOOLTIP: 'bolder text',\n CAPTION: '<strong>bolder</strong>',\n syntax: "''user_text''",\n hint: 'bold_text',\n HANDLER: wikibar_editFormatByWord\n },\n italic:{\n TOOLTIP: 'italic text',\n CAPTION: '<em>italic</em>',\n syntax: '\s/\s/user_text\s/\s/',\n hint: 'italic_text',\n HANDLER: wikibar_editFormatByWord\n },\n underline:{\n TOOLTIP: 'underline text',\n CAPTION: '<u>underline</u>',\n syntax: '__user_text__',\n hint: 'underline_text',\n HANDLER: wikibar_editFormatByWord\n },\n strikethrough:{\n TOOLTIP: 'strikethrough text',\n CAPTION: '<strike>strikethrough</strike>',\n syntax: '==user_text==',\n hint: 'strikethrough_text',\n HANDLER: wikibar_editFormatByWord\n },\n superscript:{\n TOOLTIP: 'superscript text',\n CAPTION: 'X<sup>superscript</sup>',\n syntax: '^^user_text^^',\n hint: 'superscript_text',\n HANDLER: wikibar_editFormatByWord\n },\n subscript:{\n TOOLTIP: 'subscript text',\n CAPTION: 'X<sub>subscript</sub>',\n syntax: '~~user_text~~',\n hint: 'subscript_text',\n HANDLER: wikibar_editFormatByWord\n },\n comment:{\n TOOLTIP: 'comment text',\n CAPTION: 'comment text',\n syntax: '/%user_text%/',\n hint: 'comment_text',\n HANDLER: wikibar_editFormatByWord\n },\n monospaced:{\n TOOLTIP: 'monospaced text',\n CAPTION: '<code>monospaced</code>',\n syntax: '{{{user_text}}}',\n hint: 'monospaced_text',\n HANDLER: wikibar_editFormatByWord\n }\n },\n paragraph:{\n TYPE: 'MENU',\n TOOLTIP: 'paragarph formatters',\n list:{\n TYPE: 'MENU',\n TOOLTIP: 'list tools',\n bullet:{\n TOOLTIP: 'bullet point',\n syntax: '*user_text',\n hint: 'bullet_text',\n HANDLER: wikibar_editFormatByLine\n },\n numbered:{\n TOOLTIP: 'numbered list',\n syntax: '#user_text',\n hint: 'numbered_text',\n HANDLER: wikibar_editFormatByLine\n }\n },\n heading:{\n TYPE: 'MENU',\n heading1:{\n CAPTION:'<h1>Heading 1</h1>',\n TOOLTIP: 'Heading 1',\n syntax: '!user_text',\n hint: 'heading_1',\n HANDLER: wikibar_editFormatByLine\n },\n heading2:{\n CAPTION:'<h2>Heading 2<h2>',\n TOOLTIP: 'Heading 2',\n syntax: '!!user_text',\n hint: 'heading_2',\n HANDLER: wikibar_editFormatByLine\n },\n heading3:{\n CAPTION:'<h3>Heading 3</h3>',\n TOOLTIP: 'Heading 3',\n syntax: '!!!user_text',\n hint: 'heading_3',\n HANDLER: wikibar_editFormatByLine\n },\n heading4:{\n CAPTION:'<h4>Heading 4</h4>',\n TOOLTIP: 'Heading 4',\n syntax: '!!!!user_text',\n hint: 'heading_4',\n HANDLER: wikibar_editFormatByLine\n },\n heading5:{\n CAPTION:'<h5>Heading 5</h5>',\n TOOLTIP: 'Heading 5',\n syntax: '!!!!!user_text',\n hint: 'heading_5',\n HANDLER: wikibar_editFormatByLine\n }\n },\n comment:{\n TYPE: 'MENU',\n commentByLine:{\n CAPTION:'comment by line',\n TOOLTIP: 'line comment',\n syntax: '/%user_text%/',\n hint: 'comment_text',\n HANDLER: wikibar_editFormatByLine\n },\n commentByBlock:{\n CAPTION:'comment by block',\n TOOLTIP: 'block comment',\n syntax: '/%\snuser_text\sn%/',\n hint: 'comment_text',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n },\n monospaced:{\n TYPE: 'MENU',\n monosByLine:{\n CAPTION: 'monospaced by line',\n TOOLTIP: 'line monospaced',\n syntax: '{{{\snuser_text\sn}}}',\n hint: 'monospaced_text',\n HANDLER: wikibar_editFormatByLine\n },\n monosByBlock:{\n CAPTION: 'monospaced by block',\n TOOLTIP: 'block monospaced',\n syntax: '{{{\snuser_text\sn}}}',\n hint: 'monospaced_text',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n },\n quote:{\n TYPE: 'MENU',\n quoteByLine:{\n CAPTION: 'quote by line',\n TOOLTIP: 'line quote',\n syntax: '>user_text',\n hint: 'quote_text',\n HANDLER: wikibar_editFormatByLine\n },\n quoteByBlcok:{\n CAPTION: 'quote by block',\n TOOLTIP: 'block quote',\n syntax: '<<<\snuser_text\sn<<<',\n hint: 'quote_text',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n },\n plugin:{\n TYPE: 'MENU',\n code:{\n CAPTION: 'code area',\n TOOLTIP: 'block monospaced for plugin',\n syntax: '\sn\s/\s/{{{\snuser_text\sn\s/\s/}}}\sn',\n hint: 'monospaced_plugin_code',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n },\n commentByLine:{\n CAPTION: 'comment by line',\n TOOLTIP: 'line comment',\n syntax: '\s/\s/user_text',\n hint: 'plugin_comment',\n HANDLER: wikibar_editFormatByLine\n },\n commentByBlock:{\n CAPTION: 'comment by block',\n TOOLTIP: 'block comment',\n syntax: '\s/\s***\snuser_text\sn***\s/',\n hint: 'plugin_comment',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n },\n css:{\n TYPE: 'MENU',\n code:{\n CAPTION: 'code area',\n TOOLTIP: 'block monospaced for css',\n syntax: '\sn\snuser_text\sn\sn',\n hint: 'monospaced_css_code',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n },\n commentByLine:{\n CAPTION: 'comment by line',\n TOOLTIP: 'line comment',\n syntax: '',\n hint: 'css_comment',\n HANDLER: wikibar_editFormatByLine\n },\n commentByBlock:{\n CAPTION: 'comment by block',\n TOOLTIP: 'block comment',\n syntax: '',\n hint: 'css_comment',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n }\n },\n color:{\n TYPE: 'MENU',\n TOOLTIP: 'color tools',\n highlight:{\n CAPTION:'highlight text',\n TOOLTIP: 'highlight text',\n syntax: '@@user_text@@',\n hint: 'highlight_text',\n HANDLER: wikibar_editFormatByWord\n },\n color:{\n CAPTION:'text color',\n TOOLTIP: 'text color',\n hint: 'your_text',\n syntax: '@@color(%1):user_text@@',\n HANDLER: wikibar_getColorCode,\n doMore: wikibar_editFormatByWord\n },\n bgcolor:{\n CAPTION:'background color',\n TOOLTIP: 'background color',\n hint: 'your_text',\n syntax: '@@bgcolor(%1):user_text@@',\n HANDLER: wikibar_getColorCode,\n doMore: wikibar_editFormatByWord\n },\n colorcode:{\n CAPTION:'color code',\n TOOLTIP: 'insert color code',\n syntax: '%1',\n HANDLER: wikibar_getColorCode,\n doMore: wikibar_editFormatByCursor\n },\n 'color palette':{\n TYPE:'MENU',\n DYNAITEM: wikibar_genPaletteSelector,\n SEPERATOR:{},\n morePalette:{\n CAPTION:'more palettes',\n TOOLTIP:'get more palettes',\n HANDLER: wikibar_getMorePalette\n }\n }\n },\n link:{\n TYPE: 'MENU',\n TOOLTIP: 'insert link',\n wiki:{\n CAPTION:'wiki link',\n TOOLTIP: 'wiki link',\n syntax: '[[user_text]]',\n hint: 'wiki_word',\n HANDLER: wikibar_editFormatByWord\n },\n pretty:{\n CAPTION: 'pretty link',\n TOOLTIP: 'pretty link',\n syntax: '[[user_text|%1]]',\n hint: 'pretty_word',\n param: 'PrettyLink Target',\n HANDLER: wikibar_getLinkUrl,\n doMore: wikibar_editFormatByWord\n },\n url:{\n TOOLTIP: 'url link',\n syntax: '[[user_text|%1]]',\n hint: 'your_text',\n param: 'http:\s/\s/...',\n HANDLER: wikibar_getLinkUrl,\n doMore: wikibar_editFormatByWord\n },\n image:{\n TOOLTIP: 'image link',\n syntax: '[img[user_text|%1]]',\n hint: 'alt_text',\n param: 'image/icon.jpg',\n HANDLER: wikibar_getLinkUrl,\n doMore: wikibar_editFormatByWord\n }\n },\n macro:{},\n more:{\n TYPE: 'MENU',\n TOOLTIP: 'more tools',\n table:{\n TYPE: 'MENU',\n TOOLTIP: 'table',\n table:{\n CAPTION:'create table',\n TOOLTIP: 'create a new table',\n syntax: '\sn%1\sn',\n HANDLER: wikibar_getTableRowCol,\n doMore: wikibar_editFormatByWord\n },\n header:{\n TOOLTIP: 'table header text',\n syntax: '|user_text|c',\n hint: 'table_header',\n HANDLER: wikibar_editFormatByWord\n },\n cell:{\n TOOLTIP: 'create a tabel cell',\n syntax: '|user_text|',\n hint: 'your_text',\n HANDLER: wikibar_editFormatByWord\n },\n columnHeader:{\n CAPTION:'column header',\n TOOLTIP: 'create a column header cell',\n syntax: '|!user_text|',\n hint: 'column_header',\n HANDLER: wikibar_editFormatByWord\n },\n cell:{\n TYPE: 'MENU',\n CAPTION: 'cell options',\n bgcolor:{\n CAPTION: 'background color',\n TOOLTIP: 'cell bgcolor',\n syntax: '|bgcolor(%1):user_text|',\n hint: 'your_text',\n HANDLER: wikibar_getColorCode,\n doMore: wikibar_editFormatByTableCell\n },\n alignLeft:{\n CAPTION: 'align left',\n TOOLTIP: 'left align cell text',\n syntax: '|user_text|',\n hint: 'your_text',\n HANDLER: wikibar_editFormatByTableCell\n },\n alignCenter:{\n CAPTION: 'align center',\n TOOLTIP: 'center align cell text',\n syntax: '| user_text |',\n hint: 'your_text',\n HANDLER: wikibar_editFormatByTableCell\n },\n alignRight:{\n CAPTION: 'align right',\n TOOLTIP: 'right align cell text',\n syntax: '| user_text|',\n hint: 'your_text',\n HANDLER: wikibar_editFormatByTableCell\n }\n }\n },\n html:{\n TYPE: 'MENU',\n html:{\n CAPTION: '&lt;html&gt;',\n TOOLTIP: 'html tag',\n syntax: '<html>\snuser_text\sn</html>',\n hint: 'html_content',\n byBlock: true,\n HANDLER: wikibar_editFormatByLine\n }\n }\n },\n addon:{\n TYPE: 'MENU',\n TOOLTIP:'3rd party tools',\n 'about addons':{\n TOOLTIP: 'list loaded addons',\n HANDLER: wikibar_doListAddons\n },\n SEPERATOR:{}\n }\n};\naddEvent(document, 'click', wikibarColorTool.onDocumentClick);\naddEvent(document, 'click', wikibarPopup.onDocumentClick);\nwikibar_install();\n//}}}
Para dúvidas e sugestões use o endereço <<email pontosnegros at aca-m dot org>>.
Para o contacto de Câmaras Municipais e Juntas de Freguesia, poderá consultar o site da [[Associação Nacional de Municípios Portugueses|http://www.anmp.pt/munp/mun/mun101w1.php?stri=A]].
Ex.mo. Senhor Presidente \nda Câmara Municipal de …\n…\n…\n\n\nAssunto: …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente …(morada), tendo legitimidade nos termos do art.º 53º do C.P.A., vem dirigir-se a V.Ex.ª para denunciar a situação verificada …(detalhes de localização: nº. de estrada, kilómetro, rua, localidade, etc.).\n\n…(exposição do caso).\n\nSendo a Câmara Municipal o órgão executivo colegial do município (art.º 252º C.R.P.) que visa a prossecução de interesses próprios da respectiva população (art.º 235º C.R.P.) dos quais inquestionavelmente faz parte a segurança, protecção e bem-estar dos cidadãos, vem denunciar-se a situação neste local, tendo como objectivo que a Câmara Municipal tome conhecimento e actue de acordo com as suas competências, procurando contribuir para a diminuição do perigo que constitui e que afecta, sem dúvida, os seus munícipes.\n\nMais informa que denunciou na mesma data a situação …(órgão administrativo: Instituto de Estradas e/ou Junta de Freguesia)\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n\n(Data), (Assinatura)\n
\nEx.mo. Senhor Presidente da\nEP - Estradas de Portugal, E.P.E.\nPraça da Portagem\n2809-013 Almada \n\n''Assunto:'' …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente …(morada), tendo legitimidade nos termos do art.º 53º do C.P.A., vem dirigir-se a V.Ex.ª para denunciar a situação verificada …(detalhes de localização: nº. de estrada, kilómetro, rua, localidade, etc.).\n\n…(exposição do caso).\n\nCom a conversão do IEP, as referidas atribuições e competências foram transferidas para a EP - Estradas de Portugal (art. 2º, n.º 1, do D.L. n.º 239/2004 de 21 de Dezembro); assim compete a esta entidade pública empresarial “promover a melhoria contínua das condições de circulação com segurança e conforto para os utilizadores...” (art. 4º, n.º 2, alínea g). \n\nInserindo-se a referida via na competência da EP - Estradas de Portugal, vem denunciar-se a situação neste local, tendo como objectivo que a EP - Estradas de Portugal tome conhecimento e actue de acordo com as suas atribuições, procurando contribuir para a diminuição do perigo que constitui e que afecta, sem dúvida, os utentes.\n\nMais informa que denunciou na mesma data a situação …(órgão administrativo: Câmara Municipal ou entidade concessionária)\n\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n\n(Data), (Assinatura)
Ex.mo. Senhor Presidente \n…\n…\n…\n\n\nAssunto: …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente …(morada), tendo legitimidade nos termos do art.º 53º do C.P.A., vem dirigir-se a V.Ex.ª para denunciar a situação verificada …(detalhes de localização: nº. de estrada, kilómetro, rua, localidade, etc.).\n\n…(exposição do caso).\n\nInserindo-se a referida via na competência da concessionária, vem denunciar-se a situação neste local, tendo como objectivo que a concessionária tome conhecimento e actue de acordo com as suas atribuições, procurando contribuir para a diminuição do perigo que constitui e que afecta, sem dúvida, os utentes.\n\nMais informa que denunciou na mesma data a situação …(órgão administrativo: Estradas de Portugal)\n\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n(Data), (Assinatura)\n
Ex.mo. Senhor Presidente \nda Junta de Freguesia de …\n…\n…\n\n\nAssunto: …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente em …(morada), tendo legitimidade nos termos do art.º 53º do C.P.A., vem dirigir-se a V.Ex.ª para denunciar a situação verificada …(detalhes de localização: nº. de estrada, kilómetro, rua, localidade, etc.).\n\n…(exposição do caso).\n\nSendo a Junta de Freguesia o órgão executivo colegial da freguesia (art.º 246º C.R.P.) que visa a prossecução de interesses próprios da respectiva população (art.º 235º C.R.P.) dos quais inquestionavelmente faz parte a segurança, protecção e bem-estar dos cidadãos, vem denunciar-se a situação neste local, tendo como objectivo que a Junta de Freguesia tome conhecimento e actue de acordo com as suas competências, procurando contribuir para a diminuição do perigo que constitui e que afecta, sem dúvida, os seus cidadãos.\n\nMais informa que denunciou na mesma data a situação …(órgão administrativo: Câmara Municipal)\n\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n\n(Data), (Assinatura)\n
…\n…\n…\n\n\nAssunto: …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente …(morada), tendo, em …(data de envio do requerimento) procedido à denúncia em relação a …(assunto do requerimento), vem solicitar a V. Exª., de acordo com o disposto no art. 84º do C.P.A, a adopção, com carácter de urgência, de medidas provisórias:\n\n- …\n- … (enunciação da(s) medida(s) provisória(s))\n\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n\n(Data), (Assinatura)\n
…\n…\n…\n\n\nAssunto: …\n \nEx.mo. Senhor Presidente,\n\n…(nome), contribuinte n.º…, residente …(morada), tendo, em …(data de envio do requerimento) procedido à denúncia em relação a …(assunto do requerimento), vem solicitar a V. Exª. informações sobre o andamento do procedimento administrativo.\n\nPretende tomar conhecimento não só das decisões do órgão que V. Ex.ª tão sabiamente preside como também de todos os actos já praticados, tendo em vista a resolução do problema que deu origem à denúncia garantindo-se, nos termos do art. 61º do C.P.A., o direito à informação dos interessados. \n\nSem outro assunto de momento e na expectativa das vossas prezadas notícias, subscreve-se com elevada consideração,\n\n(Data), (Assinatura)
Todos os particulares têm legitimidade para iniciar o procedimento administrativo e para nele intervir como titulares de direitos subjectivos ou interesses legalmente protegidos (art. 53º do C.P.A.). O procedimento inicia-se a requerimento dos interessados (art. 54º do C.P.A.), os quais têm o dever de não formular pretensões ilegais, nem requerer diligências dilatórias, mas têm o dever de colaborar para o esclarecimento dos factos. Poderá consultar o Código de Procedimento Administrativo em [[versão integral|http://www.verbojuridico.net/legisl/codigos/cpa.html]].
O requerimento, salvo nos casos em que a lei admite o requerimento oral (art. 75º do CPA), deve ser formulado por escrito (art. 74º do C.P.A.). Em caso de erro na apresentação do requerimento (art. 34º do C.P.A.) existem duas soluções diferentes: 1) caso o órgão pertença ao mesmo Ministério ou pessoa colectiva, o requerimento ser-lhe-á oficiosamente remetido; 2) caso o órgão pertença a outro Ministério ou pessoa colectiva, o requerimento será devolvido ao seu autor acompanhado da indicação do órgão a quem se deve dirigir. Em caso de erro indesculpável, o requerimento não será apreciado.
Os particulares têm o direito de ser informados pela Administração, sempre que o requeiram, sobre o andamento dos procedimentos em que sejam directamente interessados, bem como o direito de conhecer as resoluções definitivas que sobre eles forem tomadas (art. 61º do C.P.A.)
Em qualquer fase do procedimento pode o órgão competente para a decisão final, oficiosamente ou a requerimento dos interessados, ordenar as medidas provisórias. A decisão de ordenar ou alterar qualquer medida provisória deve ser fundamentada e fixar prazo para a sua validade (art. 84º do C.P.A.). Salvo disposição especial, as medidas provisórias caducam: a) Logo que for proferida decisão definitiva no procedimento; b) Quando decorrer o prazo que lhes tiver sido fixado, ou a respectiva prorrogação; c) Se decorrer o prazo fixado na lei para a decisão final; d) Se, não estando estabelecido tal prazo, a decisão final não for proferida dentro dos seis meses seguintes à instauração do procedimento (art. 85º do C.P.A.)
Este prazo pode ser prorrogado, por um ou mais períodos, até ao limite de mais 90 dias, mediante autorização do imediato superior hierárquico ou do órgão colegial competente. A inobservância dos prazos deve ser justificada pelo órgão responsável, perante o imediato superior hierárquico ou perante o órgão colegial competente, dentro dos 10 dias seguintes ao termo dos mesmos prazos (art. 58º do C.P.A.). Os órgãos administrativos devem providenciar pelo rápido e eficaz andamento do procedimento, quer recusando e evitando tudo o que for impertinente ou dilatório, quer ordenando e promovendo tudo o que for necessário ao seguimento do procedimento e à justa e oportuna decisão (art. 57º do C.P.A.).
Não há lugar a audiência dos interessados ex. quando a decisão seja urgente ou quando o número de interessados a ouvir seja de tal forma elevado que a audiência seja impraticável. A audiência pode ser dispensada ex. quando os elementos constantes do procedimento conduzirem a uma decisão favorável aos interessados (art. 100º a 103º do C.P.A.).
Os “pontos negros”, campos de batalha da guerra civil nas estradas, são locais que, por irresponsabilidade pública, atraem a tragédia individual. Os “pontos negros” deveriam, mais propriamente, ser chamados “locais de acumulação de irresponsabilidades”. Dão-se quando, às falhas colectivas de concepção e de manutenção da estrada (por incúria do Estado), se vêm juntar os erros de individuais da condução (geralmente por inconsciência ou imprudência suicida e assassina dos cidadãos).\n\nInfelizmente, os gestores das estradas só identificam um local perigoso como “ponto negro” depois, e não antes, de algumas vidas lá ter sido sacrificadas e de várias famílias terem sido destruídas.\n\nGerir um sistema rodoviário desta forma é eticamente intolerável: esperar que uma vida seja sacrificada para que um “ponto negro” seja identificado, e não agir antes de se perder qualquer vida, faz dos gestores técnicos e políticos responsáveis morais pela prática quotidiana de atentados contra a vida humana.