The [[golden-ratio]].
''Dead Right''\nby John Connolly\nSpy Magazine, 01.01.1993\n\nIT WAS A LITTLE AFTER 12:30 IN THE afternoon of August 10, 1991, and Barbara Bittinger, the assistant head housekeeper of the Sheraton Inn in Martinsburg, West Virginia, had just sat down with a cheeseburger when one of the girls from the laundry room burst in and told her that one of the chambermaids was calling from upstairs and saying somebody had better get over to Room 517, there was blood. Bittinger, who had been with the hotel for seven years, went to the room and hesitantly pushed open the bathroom door. Though she surmised that something must be terribly wrong, she was still unprepared for the ghastly scene. 'There was blood everywhere," she recalls. Because the door opened against the bathtub, and because the shower curtain was partially closed, Bittinger couldn't see into the tub, but she did see a half- full, open wine bottle near the toilet, and a broken glass and an ashtray on the edge of the tub. Then, as she slowly withdrew, she looked through the crack between the door jamb and the door into the bathtub, and saw two white knees sticking up. Startled, she pulled back, but not before she saw something else, something that still puzzles her today. Under the sink, lying more or less flat, were two bloody towels. "It looked like someone tried to wipe up the blood on the floor and slid the towels under the sink," said Bittinger, who was only interviewed by police briefly the day the body was found and never by any journalists before speaking to SPY. "It looked like someone" - not the maid, Bittinger tells us - "threw the towels on the floor and tried to wipe the blood up with their foot, but they didn't get the blood, they just smeared the floor.\n\nThe knees Bittinger saw in the bathtub belonged to freelance journalist [[Danny Casolaro]]. He had come to Martinsburg two days earlier to meet sources who would contribute to his already yearlong investigation into what he called the Octopus, a mess of interconnected high- level government conspiracies and supposed conspiracies. [[The Octopus]], in Casolaro's view encompassed the alleged theft of a sophisticated computer software program by Justice Department officials; an effort by a former [[CIA]] operative to use a California Indian reservation as a front for supplying weapons to the Nicaraguan [[contras|Iran-Contra]]; the shady connections between the [[Wackenhut Corporation]] and the [[CIA]]; the burgeoning [[BCCI]] scandal; and the [[October Surprise]]. He'd diligently pursued leads and sources and uncovered an impressive amount of information, but he seemed to have had a hard time making sense of all that he had found. He also seemed to have had trouble telling the difference between people who were trustworthy and those who were not.\n\nAccompanied by the chambermaid and a janitor, Bittinger went to the front desk and called 911. Within minutes police and paramedics were there. Casolaro was lying in a bathtub full of bloody water. I seemed pretty obvious he'd committed suicide. He had eight cuts on his left wrist and four on his right. There were two plastic trash bags floating in the water and a shoelace tied around his neck; evidently he'd thought to hasten his death by securing the bags over his head and asphyxiating but had reconsidered, either before or after slashing his wrists. There was a note that said, TO MY LOVED ONES, PLEASE FORGIVE ME - MOST ESPECIALLY MY SON - AND BE UNDERSTANDING. GOD WILL LET ME IN.\n\nTo give themselves more room to work, the paramedics took the bathroom door off its hinges. When they lifted Casolaro's body from the tub, they saw that an Old Milwaukee beer can, a paper coaster and a razor blade had been under the body. After draining the tub and examining the body, [[Sandra Brining]], a nurse who serves as the Berkeley County coroner, declared the cause of death blood loss from multiple self-inflicted wounds. Around 4:00 p.m. she released the body to Brown's, a local mortuary.\n\nSo sure was everyone that Casolaro had killed himself that that very night, even before his family was notified of his death, [[Charles Brown]], the undertaker, embalmed the body. Brown would later give the most ordinary of reasons for doing so- "I didn't want to come back to work on Sunday" - though embalming a body without the permission of the next of kin is illegal in West Virginia. Had Brown or the authorities spoken to Casolaro's brother Tony, they surely would have proceeded more carefully. Tony would have undoubtedly mentioned what Danny had said to him just a few days before: "//I have been getting some very threatening phone calls. If anything happens to me, don't believe it was accidental.//"\n\nTony wasn't the only person Danny had told that he might be in danger; he'd also told [[Thomas Gates]], a special agent of the FBI. A mysterious character named [[Robert Booth Nichols]] had become one of Danny's sources. Nichols, who is now 49 and lives in L.A., has, as federal authorities have put it, "no visible means of income to support his rather lavish life-style." He calls himself an entrepreneur and says he has been involved with the CIA in various intelligence operations; he has even appeared in and acted as a technical adviser on Under Siege, the film starring his friend Steven Seagal. Law-enforcement officials know Nichols, though, as an international money launderer and an associate of the Gambino organized-crime family.\n\nAs Casolaro worked on his Octopus story, he came to rely increasingly on Nichols as a source, and as a friend. But in July 1991, after Nichols visited him in Washington, D.C., Danny began to suspect that Nichols was far more sinister than he'd imagined, and began to investigate his activities. Three days before he died, he called Gates, who works in the bureau's L.A. office. As Gates has testified before the House Judiciary Committee, Casolaro told him that Nichols had warned Danny, "//If you continue this investigation, you will die//." Other publications, notably Vanity Fair, have wondered whether Casolaro committed suicide; none has had the benefit of the evidence we've been able to amass. Spy has discovered that on July 31 - ten days before he died, six days before he had a 64-minute phone conversation with Nichols, seven days before he spoke to Agent Gates - Danny Casolaro learned a terrible secret of Robert Booth Nichols's, a secret that, if revealed, could cost Nichols his life, a secret that Casolaro might well have told Nichols he knew.\n\nDANNY CASOLARO WAS BORN ON JUNE 16, 1947, the first of six children. His father was a prominent obstetrician in Mc Lean, Virginia. Along with prosperity, however, the Casolaros endured a large share of grief. One child was born with a heart defect and lived only briefly, and the eldest sister, Lisa, died of a drug overdose, an apparent suicide.\n\nWhen he was 20, Casolaro dropped out of Providence College and went to Ecuador for six months to look for Incan treasure. When he came back, he fell in love with a married woman, Terrill Pace. They eventually married and had a son; after 13 years, they would divorce. He went back to college but quit to become a stringer for the National Enquirer and later a reporter for the trade magazine Computer Age. His friends all speak well of him. They say he was one of the sweetest and most tolerant people they ever met; that he never seemed to care about money; that he was a dreamer. He had many friends of both sexes but was especially close to women. Gabrielle Miroy, a onetime lover and longtime friend- one of at least five former lovers whom he visited frequently and spoke with on an almost daily basis - expressed the feelings of many people when she said, "Danny was always there for me; he was my best friend." There was a Peter Pan-ishness about him. His friend Larry Stitch, a retired attorney, says, 'Although Danny was nobody's fool, he had a tendency to trust everyone.\n\nBut if he was Peter Pan, he was Peter Pan with an obsessive streak. In the late 1970s he worked for almost two years on an alternative explanation for Watergate. He spent a year on a novel he ended up publishing with a vanity house. He worked hard at staying fit but also smoked too much, occasionally drank too much and certainly pursued women too much. He also worked hard at his job. Computer Age was a daily newsletter, and for ten years Casolaro was its only reporter, and effectively ran the thing. In 1989 he took a second mortgage on his house in Fairfax, Virginia, and bought Computer Age. But a year later, pressed by the IRS for back taxes incurred under the previous owner, he sold the company at a loss. He could have worked out a payment schedule, but by then he was already chasing the story of his life.\n\nIN 1990, CASOLARO GOT A LEAD ON THE INSLAW conspiracy story. [[Inslaw]] was a computer software firm formed in 1980 by William and Nancy Hamilton to supply a program they'd created called Promis to the Justice Department. The Hamiltons received tens of millions of dollars from the federal government to develop [[PROMIS]], a system to help prosecutors across the country keep track of complex investigations. In what has become a highly publicized case, the Hamiltons allege that in 1983 a cabal of top Justice Department officials and friends of former attorney general [[Edwin Meese]] conspired to delay payments and drive them out of business to gain control of Promis for their own profit. (Meese denies all wrongdoing.) Indeed, Justice did stop paying the Hamiltons in 1983, claiming they weren't fulfilling their obligations, and eventually Inslaw did go bankrupt. In 1987 a federal judge ordered the government to pay Inslaw $6.8 million; the order was later overturned on a technicality. Promis is widely used today, both in the U.S. and by foreign law-enforcement and intelligence agencies.\n\nAs the case became known, conspiracy theories about why Promis was stolen were floated. Among those claiming to have information was [[Michael Riconosciuto]] a convicted drug dealer who had been on the periphery of many illegal and clandestine operations, who therefore knows many inside stories but also invents tales that have certain credible elements. Riconosciuto, an accomplished programmer, claims that Promis was stolen as a favor to software-company executive [[Earl Brian]], a friend of Meese's, for Brian's help in persuading the Iranian government to hold on to the embassy hostages until the 1980 election was over. (Brian denies any involvement with Inslaw.)\n\nLed down this rabbit hole by Riconosciuto (who loves an audience), egged on by Bill Hamilton (who had millions at stake), Danny Casolaro pursued the story. In time it came to possess him. He worked on it 16 hours a day, staying on the phone past midnight, sleeping only 2 or 3 hours a night, talking with quasi- spooks and bona fide spies, chasing leads, always enlarging his vision of the Octopus. He stopped working out; the man who would boastfully do 50 pushups with a cigarette in his mouth no longer could do even two. There was no question that he was onto some remarkable stories, including aspects of the BCCI scandal - (long before the scandal became public, Casolaro was saying he was going to nail [[Clark Clifford]]), the takeover of the [[Cabazon Indian Reservation]] by a former CIA operative [see Spy, "Badlands," April 1992], and the Wackenhut-CIA connection ["Inside the Shadow CIA," September 1992]. With less insistence on proving a monolithic conspiracy, he may well have pinned down those stories.\n\nFor a long time, Casolaro relied heavily on Riconosciuto, often accepting too much at face value. When Riconosciuto was arrested in March 1991 on drug charges, Casolaro flew to Seattle to serve as his volunteer pretrial investigator. In time, however, he became more skeptical, and within a few months he was refusing to accept Riconosciuto's collect calls from jail. But Casolaro had not abandoned his investigation. In August 1991 he told friends he was going to Martinsburg - where the IRS has its main national computer center - to meet sources.\n\nTHE BEST REASONS TO BELIEVE DANNY Casolaro committed suicide are the obvious ones: His corpse was found; the wounds appeared to be self-inflicted; there was a note. That evidence was certainly sufficient to quell the curiosity of the authorities who found his body. Apart from what we know about his reporting, however, there are compelling reasons to doubt that he killed himself. Admittedly, it is hard for any of us to know what is in someone's heart, even those whom we know well. That said, however, nearly everyone who knew Casolaro was surprised to hear that he had committed suicide. Certainly he was not a depressive by nature, and no one who talked to him during the last days of his life regarded him as depressed then. His friend Doug Chisholm, whom he visited a few weeks before his death, says, "Danny was excited about his story and quite taken with the woman he'd brought to lunch." Danny spent the Sunday before he died with Danielle Stallings, a longtime friend and lover. "He was in a very upbeat mood," she told us. On Monday he spoke to his pal Art Winfield, who says he was very excited about meeting a new source." The night before he left for Martinsburg, he visited his pal Larry Stitch, who says, "He was his usual upbeat and pleasant self." Indeed, he seemed to be a man who expected to live awhile. The morning he left, he stopped by his insurance agent's office and paid his homeowner's premium. He also called Stallings and asked her to arrange a meeting for when he got back. And in Martinsburg he indeed met with at least two sources, and perhaps a third; Charlotte and Ronnie DeHaven of Martinsburg told Spy they saw an alert-looking Casolaro waiting in his car in an out-of-the-way spot back behind the IRS building.\n\nOther explanations for a suicide have been suggested-that he was lonely, or broke, or despondent over contracting multiple sclerosis, a potentially fatal disease. It's true he had no mate, but he seemed truly to prefer it that way. Moreover, he had a cozy circle of friends, stayed close to his family (once, speaking of his sister's death, he told Stallings, "I could never commit suicide after what Lisa's death did to my family") and had a good relationship with his 22-year-old son. It's also true that he was having money problems. His investigation was costly, and he was facing a balloon payment on his mortgage. Still, the payment was three months off, and as Danny's ex-wife puts it, "The Casolaro children had been raised to believe that money was not a problem." Danny knew that at least two people stood ready to help him financially: his brother Tony, a well-to-do physician who had helped him before, and Stitch, a retired IBM attorney, who thought Danny was onto something important. When he visited Stitch the day before he left for Martinsburg, Stitch told him, "If push comes to shove, you can count on me financially." He replied, "I'm not there yet, but I may come back to you on that offer." It's also true that Casolaro had M.S. (which is fatal in about 1 percent of cases), but this was not known to his friends and family until after the autopsy. He had occasionally suffered the symptoms of the disease, but he didn't seek treatment, at least not from his regular doctor. He did have a general conversation about the disease with his lifelong friend Ann Marie Winfield, a nursing teacher, who told him that when the disease appears in someone Casolaro's age, it is less likely to be fatal. "I really didn't think Danny was terribly concerned," Winfield says.\n\nInterestingly, Casolaro was posthumously evaluated by two psychiatrists. The Martinsburg police hired one who thought Casolaro capable of suicide based on his mortgage difficulties and the fact that his book proposal had received three rejections-demoralizing news, certainly, but hardly extraordinary to anyone familiar with publishing. A second profile was written a week after Casolaro's death by Louis J. Petrillo, a New York psychiatrist and Casolaro's cousin. He wrote the Martinsburg police to tell them, "Casolaro did not manifest any symptoms or character traits during the day immediately preceding his death, during the past twelve months or at any time in his personal history that could, in any way, be associated with a potential for suicide."\n\nFOR TWO DAYS AFTER THE DISCOVERY OF HIS body, the Martinsburg police considered the Casolaro case to be an inconsequential matter. It wasn't until Monday, when the department received calls from Agent Gates, The Washington Post and CNBC, that they realized they had something stickier on their hands. Late on Monday - having wasted the 48- hour period after the discovery of the body that most homicide detectives regard as the most crucial in gathering evidence - they began their investigation.\n\nIt is almost an axiom among official agencies: First the screwup, then the cover-up. The authorities' initial acts-removing the door, draining the tub without straining the water to preserve evidence, not sealing the room as a crime scene-compromised the investigation from the start; so did the unauthorized embalming. Still, on January 25, 1992, five months after Casolaro died, the Martinsburg police, in conjunction with the West Virginia State Medical Examiner's Office, the Berkeley County Medical Examiner and the Berkeley County Prosecuting Attorney's Office, issued a press release reaffirming their original conclusion: Casolaro had killed himself.\n\nSince issuing their report, the police have refused to say anything further about the case. SPY repeatedly called the chief of the department, as well as the county prosecutor; neither would comment. All that speaks for the local investigation, then, is the police department's press release. It says that officials reaffirmed the original conclusion for several reasons. First, they somewhat tautologically cite the conclusion of the original autopsy that Casolaro had committed suicide and maintain that the embalming of the body in no way hampered the subsequent autopsy and toxicological studies. Second, neither the police nor the coroner were able to detect evidence of foul play. They found no signs of forced entry or a struggle. The room was neat, and neighbors had heard nothing. Third, they had the suicide note, and were convinced through handwriting analysis and fingerprints that Casolaro had written it.\n\nFinally, they conclude that he'd brought the implements of his self-destruction with him. The razor blades are sold around where Casolaro lived but not near Martinsburg. The alcohol and trace amounts of a painkiller, oxycodone, that were found in his bloodstream seemed self-ingested. There was a half- empty bottle of Portuguese wine in the room, and Casolaro had more of it at home; the oxycodone could have come from Vicodin, a painkiller prescribed for him after dental surgery in 1987 and an empty vial of which was found in the room. The plastic bags in the tub were from a box of plastic bags that he had in his luggage, and the shoestrings may have been from a pair of laceless sneakers found in his home.\n\nIt's hard to argue with these conclusions based on the material the police have made public. However, the work of Martinsburg's Finest inspires little confidence. It's understandable that they treated the initial Casolaro investigation so lackadaisically - Hey, it's hot, it's Saturday, it looks like the guy did himself, let's go home - but you'd think the national press scrutiny in the aftermath of Casolaro's death would have inspired a little more conscientiousness, if only temporarily. It didn't. Twenty days after Casolaro's death, a Martinsburg man was found by the police with a .22 caliber bullet wound in his left temple. His fiancรฉe told them he had suddenly pulled out a gun and shot himself. Without conducting a simple and rather standard paraffin test on the girlfriend to detect gunpowder residue, the police ruled it a suicide. For some reason, they ignored the fact that the previous evening, officers had been summoned to the home by a call that shots had been fired. Nor did they question neighbors. If they had, they might have found-as I did when I talked to them-that the night before he died, the man told two people his girlfriend was after him with a gun.\n\nHere, then, is what we've been able to discover. Most of our findings amount to highly anomalous facts and unanswered questions. But we also found relevant physical evidence that the police have simply ignored. Let's begin with the police department's proof.\n\nFirst, on the matter of the integrity of the body after embalming, Dr. Michael Baden, a noted forensic pathologist, says the "embalming of the body makes the report fatally flawed." For example, he says, the measurements of alcohol in the bloodstream could have been affected by the embalming fluid.\n\nSecond, the police say they found no evidence that Casolaro had struggled against an attacker, yet they seem to have ignored two signs. According to the medical examiner, three fingernails on Casolaro's right hand appeared to have been chewed. None of his friends we've spoken to - a half dozen in all - knew him to be a nail-biter. Could fingernails broken in a fight, having been submerged for several hours in bathwater, give the appearance of being bitten? Additionally, no one looked under the nails for skin scrapings or blood. More important, the coroner found a bruise on the top of his head that probably would have induced "moderate hemorrhaghing" under the skin. What collision might have caused this? The police do not mention the bruise in their statement.\n\nThe police further dismiss the possibility of a struggle by pointing to the neatness of Casolaro's room as a sign that nothing happened there. But this neatness raises questions more than it settles them.\n\nOn Thursday, Danny met with a source. That day, he hit on a waitress in the restaurant where he had lunch, and later flirted with two other women in a bar. On Friday he met with [[Bill Turner]], a former employee of Hughes Aircraft who was one of the sources he had gone to Martinsburg to see; Turner gave him a stack of documents. The two were supposed to have dinner, but Danny begged off, saying he had to meet a source. Later he ran into friends of his brother's, who were staying at the Sheraton; they say he seemed cheerful. These were the last known people to see him alive. Authorities say Danny died in the early-morning hours of Saturday. The distance between being hard at work and in a good mood to despondently scribbling a suicide note is a long one to travel in a few hours. But even if Casolaro had plunged into a fugue state overnight and before sunup killed himself, questions occur. Except for the bathroom, Room 517 was extremely neat: The place was picked up, the bed was crisply made and undisturbed, and Casolaro's pants were folded on the bed. But as his friends tell us, he was not an especially neat person. So we are asked to believe that a cheerful Danny went to meet a source, then either went somewhere else and got depressed or went back to his room and - without disturbing anything, but taking the time to uncharacteristically fold his pants - scribbled a desperate note and killed himself.\n\nOn the other hand, maybe there were other people in the room, and they tidied up.\n\nThe police seem to be on firm ground on the third element of their conclusion, the suicide note. Yet friends offer two observations: Its mention of God was very odd for someone unreligious, and the 19-word note was uncharacteristically succinct. Danny was a wordy fellow. The brevity of the note - like the bitten nails of a non-nail-biter, like the sudden swing into black depression of someone who had not much earlier been feeling fine - makes it seem as though Danny was highly agitated when he began writing, and was not composing his farewell calmly. This raises the possibility that the note was written under duress.\n\nFinally, the local authorities make much of the fact that Casolaro had brought with him razor blades, shoestrings, wine and Vicodin (they say he bought the plastic bags in town). They say this indicates premeditation on his part. Of course, that's at complete variance with everything we know about Casolaro's outward behavior during his final days.\n\nStill, let's say that Casolaro was fooling everyone at the end-being sociable, paying his house insurance, hitting on women in a bar, all to hide his pain. Then we have to wonder what he was planning to do with these telling items. Perhaps the idea was to take the codeine and wine and drift away, possibly hastening death by tying the bags on his head. If so, then he prepared poorly. There was a very low level of oxycodone in his bloodstream-perhaps one or two tablets' worth, not enough to do himself in. But let's say that's the case, that he prepared poorly and did not feel himself growing drowsy and (not liking the feeling of the bag on his face, or perhaps never putting the bag on) decided to cut his wrists.\n\nIf he did so, he slashed himself with brutal ferocity. He was cut 12 times; the cuts on the right wrist extended to the tendons, and the cuts on the left hit tendons. "I've never seen such deep incisions on a suicide," Martinsburg paramedic Don Shirley told Spy. "I don't know how he didn't pass out from the pain after the first two slashes." Agent Gates has testified that he asked a Martinsburg police captain how it happened: "The captain said, 'He hacked his wrists.' I said, 'What does that mean?' He said, 'The wrists were cut, but they were cut almost in a slashing or hacking motion."' Dr. James Starts of George Washington University reviewed the autopsy-which he on the whole found to be thorough-and said in an interview, "One thing that was surprising to me is that I didn't see any hesitation marks. In suicides, you tend to find hesitation marks. People generally don't know the amount of pain they can tolerate, so they will hesitate and take, literally, a little slice. This man really cut deeply. . . down to the tendons. That's significant. That's unusual." Unusual indeed. Both Danny's brother and his ex-wife told us that Danny had always been afraid of needles and blood.\n\nIt's worth noting that while plastic bags can be used in suicides, they also have a recognized place in torture and interrogation techniques. According to Lynn Nottage of Amnesty International, putting a bag over the head produces the same effect as repeatedly dunking the head underwater. Its great attraction, she says, is that it leaves no marks.\n\nBut along with their bungling of the evidence, the police leave some questions unanswered. Casolaro carried with him everywhere an accordion file full of notes and references. The police say nothing about its whereabouts, other than that they conducted a canine search along a one-mile stretch of highway near the hotel and didn't find it. Neither did they find anything resembling Bill Turner's stack of documents. Obviously, someone could have taken the papers away - it's possible to reach Room 517 from the parking lot, without going through a lobby.\n\nOther friends - his female friends - point out something else unusual: Casolaro didn't like to be seen in the nude. "Danny never would have been caught naked by strangers," Terrill told us. Other lovers say that even after making love, he would cover himself with a towel to go to the bathroom. Danielle Stallings says that "on a few occasions at my pool, Danny would suggest we all sunbathe naked, but Danny's idea of being naked was for the women to be naked and Danny to be in the pool." Her comments echoed Terrill's. "Danny was not comfortable being naked," she said, and she thought it unusual that he would decide to go to his death that way.\n\nHad police spoken to Casolaro's friends, they would have known about his upbeat mood, his feelings about nakedness, his propensity for untidiness, his squeamishness about blood, his wordiness, his attachment to his files, and much more. But the police didn't interview any of them. Had police spoken to his cousin, Dr. Petrillo, they would have learned something about his psychological profile. But even after Petrillo contacted the authorities, they didn't interview him. Had police spoken to FBI Agent Gates, they would have known that Casolaro felt he was in mortal danger. But even after Gates contacted the authorities, they didn't interview him.\n\nAnd apart from a cursory questioning on August 10, the police didn't even thoroughly interview Barbara Bittinger, one of the first people to view the scene, the hotel housekeeper who saw the towels under the sink in Room 57.\n\n'It looked like someone threw the towels on the floor and tried to wip up the blood with their foot," she told us. Given that she'd spent seven years cleaning up bathrooms at the Martinsburg Sheraton, Barbara Bittinger's opinion of what a floor looks like when somebody has tried to wipe it up may be considered expert. It's inconceivable that Casolaro - painfully wounded and rapidly losing consciousness - would have wiped up the floor. But someone who did not want to leave footprints or fingerprints or his own bloodstains might have tried to clean up the scene.\n\nAs part of their investigation, the Martinsburg police asked Dr. Henry C. Lee of the Connecticut State Police Forensic Science Laboratory, a renowned blood-splatter expert to examine the evidence. His conclusion, cited in the police press release, held that "none of the physical evidence found at the scene is inconsistent with that of a suicide." But when we talked to Dr. Lee, he told us he didn't recall seeing any smear marks or bloody towels in the photos supplied him. "A reconstruction is only as good as the information supplied by the police," he said. The Martinsburg police apparently didn't think the towels were worth treating as evidence.\n\nWe spoke to Ernie Harrison, who worked for a professional cleaning company called Le Scrub that the hotel hired to clean Room 517 after the police had finished their physical examination. "There were bloodstained towels on the bathroom floor that I picked up," he told us. After Harrison finished cleaning the room, he tossed the towels away.\n\nBY THE LATE SPRING OF 1991, [[Robert Booth Nichols]] had become one of Danny Casolaro's most important sources. They spoke frequently and at length, and it's not hard to see how Casolaro would come to depend, not only for information but in an emotional way, on someone who knew so much and with whom he could puzzle out the mysteries before him. "It is as though he considered him a friend and not just a source of information," says Wendy Weaver, one of Casolaro's ex-girlfriends.\n\nThey had a lot in common. Nichols's father, like Casolaro's, was a physician, and both sons grew up with privilege. Danny was a college dropout; Nichols got a degree through the mail. Both men liked the ladies. But Nichols was smooth and polished and exciting. Although he was only a few years older than Casolaro, he was very much the elder, the mentor, the teacher. He had even promised to help Danny financially; apparently he was going to lend Casolaro money in return for a 25 percent interest in his home. "It seemed as though Danny had this father-son-type relationship with Nichols," says Gabrielle Miroy, Danny's friend. It's telling that in the cast of characters Casolaro drew up for his projected exposรฉ of the Octopus, the name of Nichols, one of his major sources, is never included\n\nHow much Casolaro learned about Nichols is unclear; we know Nichols was a man as comfortable in the underworld as in the intelligence community and that he was associated with people who treated killing as an ordinary part of doing business\n\nAccording to an affidavit sworn to by Agent Gates during the course of a 1987 investigation into mob activities in Hollywood, Nichols was identified by the FBI as early as 1978 as a drug trafficker and money launderer. Just two years later, Nichols was representing a group of unknown investors who wanted to take over [[Summa Corporation]], the holding company of Howard Hughes's empire. Hughes had just died, and Nichols had convinced a Saudi company called [[Ali & Fahd Shobokshi Group]] to become partners in the (failed) takeover attempt. [[Joseph Cicippio]], who would later be taken hostage in Lebanon, was then the London manager of Ali & Fahd. In a 1980 letter to [[William Lummis]], chairman of Summa, obtained by Spy, Cicippio states, "We are ready, willing and able to provide such finances as may be necessary to acquire Summa."\n\nCicippio, who lives in Princeton, New Jersey, says he specifically remembers Nichols telling him he was representing interests of the U.S. government in the acquisition of Summa. In an interview with Spy, Cicippio said that over a six or seven week period, "Nichols presented me with U.S. Justice Department identification and furnished us with financial and other information on Summa of a highly confidential nature. I assumed he only could have gotten this information from someone high up in the government.\n\nBy 1981, Nichols had become partners with a retired arms manufacturer named [[Peter Zokosky]] to form a munitions company, [[Meridian Arms]], which in turn joined up with a tiny California Indian tribe and the CIA-connected Wackenhut Corporation in a scheme to manufacture arms on the Indians' reservation. Nichols had his own connection to the agency. In obtaining the required California permits to possess and sell machine guns in Meridian's quest to provide guns for the contras, Nichols received a recommendation from a CIA official named [[Larry Curran]]. Apparently neither Curran nor the California Justice Department agents who issued the permits were alarmed by the FBI's reports on Nichols, or by the fact that he had used several aliases at different times in his life. They even overlooked Nichols's listing of [[Harold Okimoto]], believed by intelligence sources to be a high-ranking member of Japan's Yakuza crime syndicate, as a former employer on his application to carry a concealed weapon.\n\nOne of the members of the board of directors of Meridian Arms's parent company was [[Eugene Giaquinto]], then president of the home-entertainment division of MCA, the parent company of Universal Pictures. As part of Gates's investigation of mob influence in the movie industry, the FBI targeted Giaquinto, who was suspected of a variety of criminal acts. They placed him under surveillance and tapped his phones [see Spy, The Fine Print, July and August 1989]. Agents caught Giaquinto and Nichols lunching at Le Dome, the swank Los Angeles show business restaurant, and afterward transferring a box from Giaquinto's car to Nichols's. The taps caught them discussing possible takeovers of MCA, and the effect on stock prices. It was also evident from the wiretaps that Giaquinto enjoyed a special relationship with [[John Gotti]]. (The investigation was later quashed by Reagan-administration officials.)\n\nWhen reports of the investigation surfaced, Giaquinto left MCA, as well as the board of Meridian. Before that happened, though, he tried to get his friend Nichols a big assignment. Spy has learned that Giaquinto-in his capacity as MCA's home-video honcho-approached [[Jack Valenti]], the powerful chairman of the Motion Picture Association of America, and proposed that Valenti hire Nichols to coordinate the industry's anti-video-piracy effort in Asia. Valenti met with Giaquinto and Nichols but passed. "I didn't feel comfortable with Nichols," Valenti told Spy. One advantage Nichols might have enjoyed in the job of Asian antipiracy policeman would have been his close relationship with the Hawaii-based Okimoto, the alleged Yakuza associate; the two reportedly go back a long way. On the other hand, an antipiracy policeman with close ties to the Gambinos and the Yakuza might not be much of a policeman at all\n\nNichols has replied to Gates's affidavit linking him to John Gotti and the Gambinos through connections at MCA by suing the 17-year veteran and the U.S. government for libel and slander. (The case was recently dismissed.) Some say he has replied in other ways: Gates has testified before the House Judiciary Committee that he has twice heard from informants that Nichols has put a contract out on his life.\n\n[[Alan Boyack]], a former CIA operative now practicing law in Utah, has known Nichols for 15 years and says, "Nichols is lethal." Spy has obtained the transcript of a conversation between Boyack, Michael Riconosciuto and a former FBI agent, [[Ted Gunderson]], in which Riconosciuto describes an occasion where Nichols wanted to deliver a message to a mobster from Chicago. He hung the man upside down on a hoist in an airplane hangar in front of a prop plane, then started the engine of the plane and revved it up, so that the man hanging on the hoist was sucked toward the propellers. According to Riconosciuto, "By the time Bob got finished with him, he wanted to die."\n\nCASOLARO WAS INTRODUCED TO Nichols by [[Bill Hamilton]], the Inslaw man. Hamilton seems aware that Nichols and Casolaro had grown close. In fact, on August 9, 1991, at 12:50 p.m.-about 12 hours before Casolaro died-Hamilton called Nichols at his home in California. They talked for three and a half minutes. Hamilton claims now that he was looking for Casolaro, whom he hadn't heard from in a few days. "Robert Booth Nichols," Hamilton told Spy, "is a very strange and dangerous guy."\n\nNevertheless, despite Hamilton's professed reservations about Nichols's char- acter, the man who designed a program for tracking criminals and the man who has been linked by the FBI to two crime organizations communicate with surprising frequency. Last summer I visited Hamilton's office in Washington to get a copy of the phone records that would show his call to Nichols on August 9, 1991. He seemed reluctant. It took a fair amount of persuasion to convince him to turn it over-and what he gave me was a photocopy with all but that call blocked out. Shortly after leaving, I remembered that I had wanted to ask him something else and returned to his office. While I was waiting in the reception area, the phone rang. The receptionist buzzed Hamilton: "Robert Booth Nichols, returning your call." When I asked Hamilton about the call, he replied, "I call Nichols all the time. It was just a coincidence that it was right after you left."\n\nBy July 1991, the relationship between Nichols and Casolaro had begun to deteriorate. On July 7, Nichols flew from Puerto Rico to Washington to meet with Casolaro. He stayed several days. There's no telling exactly what they talked about, but it was after this visit that Casolaro told Agent Gates that Nichols had warned him, "If you continue this investigation, you will die." One night, Casolaro and Nichols went out to dinner, accompanied by Wendy Weaver. "During the evening," she told Spy, "Nichols took exception to the imagined slight made to me by a patron at the bar. Nichols grabbed the man, slammed him against the wall and threatened to kill him. Later that night, Danny told me that Nichols really scared him."\n\nAfter that, Casolaro began trying to find out who Robert Booth Nichols really was. He found Gates and began asking questions, telling him where he was going and finally, three days before he died, asking whether he should take Nichols's threats seriously. But Casolaro was talking to someone else on the West Coast as well, a man named [[Richard Stavin]] a former special prosecutor for the Justice Department who had been assigned to the MCA case. In his investigation of the MCA case, Stavin had unearthed documents about Nichols, who was also a target of his probe. On July 31, 1991, Casolaro had a 55-minute conversation with Stavin. Danny must have thought he had hit the jackpot: Stavin told him that Nichols had been a money launderer and that he was connected to the Gambino crime family and the Yakuza.\n\nBut Stavin told Casolaro something else, something that upon reflection, he now says, "maybe I shouldn't have told him." Stavin told Casolaro that in the late 1970s, Robert Booth Nichols had offered to become a confidential informant for the Department of Justice-in other words, a snitch. Stavin doesn't know whether any law enforcement agency accepted Nichols's offer. When the prosecutor asked other agencies, "we received denials across the board," he says, "but it seemed like a cover-your-ass situation." To some people, of course, it would be irrelevant whether Nichols had ever actually performed as a stool pigeon or not. But if John Gotti, for example, had ever found out what Danny Casolaro had found out, Nichols would be a dead man.\n\nSix days after speaking to Stavin, Danny Casolaro, who "still had a young man's vision of his immortality," according to his friend Larry Stitch, had a long phone conversation with Robert Booth Nichols. The next day, Casolaro was telling Agent Gates that Nichols had warned him to abandon the investigation. The following morning he left for Martinsburg, where two days later Barbara Bittinger saw his blood on a pair of towels underneath a hotel sink.
''Spooks in Congress''\n\n*[[Robert R. Simmons]] \n**Robert Ruhl Simmons (R - CT - 2) was born February 11, 1943 in New York City. Simmons was educated at Haverford College, served in the United States Army and the ''Central Intelligence Agency'' ([[CIA]]), and was a staff member for Senator John Chafee of Rhode Island, and a member of the Connecticut General Assembly. Simmons is a moderate, favoring the environment and pro-choice. Simmons was a recipient of former House Majority Leader [[Tom DeLay]]'s ARMPAC campaign contributions. DeLay is being prosecuted on charges of felony money laundering of campaign finances and conspiracy to launder money.\n''Committees''\n**House Committee on Armed Services\n**House Defense Review Threat Panel\n***Subcommittee on Projection Forces\n***Subcommittee on Readiness \n**House Committee on Homeland Security\n***Subcommitteeon Emergency Preparedness Science and Technology\n***Subcommittee on Intelligence Information Sharing and Terrorism Risk Assessment - Chair\n***Subcommittee on Prevention of Nuclear and Biological Attack \n**House Committee on Transportation and Infrastructure\n***Subcommittee on Coast Guard and Maritime Transportation\n***Subcommittee on Highways Transit and Pipelines\n***Subcommittee on Railroads\n\n*[[Porter Goss]]\n**Porter Johnston Goss (R - FL), Director of the Central Intelligence Agency since April 21, 2005, resigned on May 5, 2006, and President George W. Bush accepted his resignation. Neither Goss nor Bush "explained why Goss was leaving and no replacement was announced." Bushโ€™s new chief of staff, Joshua B. Bolten, "has made several changes since taking over" in April 2006. Goss has served as the 19th Director of Central Intelligence from September 24, 2004. A former Congressman and member of the CIA (late 50's to approximately the early 70's, used to run covert operations in Latin America), Goss was nominated August 11, 2004, by George W. Bush to replace George J. Tenet. \n**Goss has been on the radar of the International Citizens' Inquiry into 9/11 since September 11, 2001, and "If the 9-11 Commission is really looking for a smoking gun, it should look no further than at Lieutenant-General [[Mahmoud Ahmad]], the director of the Pakistani Inter-Services Intelligence ([[ISI]]) at the time. In early October 2001, Indian intelligence learned that Mahmoud had ordered flamboyant [[Saeed Sheikh]] - the convicted mastermind of the kidnapping and killing of Wall Street Journal reporter [[Daniel Pearl]] - to wire US$100,000 from Dubai to one of hijackers [[Mohammed Atta]]'s two bank accounts in Florida.\n**"A juicy direct connection was also established between Mahmoud and Republican Congressman Porter Goss and Democratic Senator [[Bob Graham]]. They were all in Washington together discussing [[Osama bin Laden]] over breakfast when the attacks of September 11, 2001 ([[9-11]]), happened." - [[here|http://inn.globalfreepress.com/modules/news/article.php?storyid=485]] and [[here|http://www.atimes.com/atimes/Front_Page/FD08Aa01.html]]. The Pakistan / ISI / Porter Goss connection is described [[here|http://globalresearch.ca/articles/CHO407A.html]] and [[here|http://www.communitycurrency.org/Prime.html]]. Not surprisingly, the Goss-ISI connection was ignored at his confirmation hearings to be CIA Director.\n**On March 18, 2005, Reuters reported that Porter Goss "defended his spy agency's current interrogation practices but could not say all methods used as recently as last December conformed to U.S. law. U.S. officials do not view torture as a method for gaining vital intelligence," Goss said. But he acknowledged "some CIA operatives may have been uncertain about approved interrogation techniques in the past." Goss told the Senate Armed Services Committee 'The United States does not engage in or condone torture, ... I know for a fact that torture is not productive. That's not professional interrogation. We don't torture." [[source|http://www.infowars.com/articles/ps/torture_goss_we_dont_torture.htm]]\n**Goss promoted [[Kyle Dusty Foggo]] to be the CIA's executive director and top budget chief. Foggo is now at the center of a growing investigation into a federal bribery case that has already sent former California Congressman [[Randy Duke Cunningham]] to prison for more than eight years. A source close to the investigation tells TIME that the Justice Department is investigating reports that one of Cunningham's benefactors, Pentagon and CIA contractor [[Brent Wilkes]], a buddy of Foggo's since high school, provided Foggo with improper gifts, such as lavish vacations. A CIA spokesman says Foggo "denies any improper gifts," and Wilkes' lawyer has similarly denied any wrongdoing. [[Salon|http://www.salon.com/news/feature/2006/05/06/goss/index.html]] reports that the CIA is investigating whether a top agency official, Kyle "Dusty" Foggo, improperly steered a $2.4 million contract to his close college friend Brent Wilkes, a defense contractor implicated in the Cunningham case. Wilkes reportedly supplied prostitutes to Cunningham at poker parties that Foggo also attended, though the CIA official denies seeing the female entertainment. One wonders whether it's the DOJ or the CIA that is really conducting the investigation, or both.\n**Goss' final accomplishment as CIA director -- such as it was -- was forcing out of her job a highly respected veteran intelligence officer, [[Mary McCarthy]], for the purported leaking of classified information about secret CIA prisons abroad. McCarthy has denied being the leaker -- and her more obvious offenses were serving in the Clinton administration and donating $2,000 to [[John Kerry]]'s 2004 presidential campaign.\n\n*[[Mark Kirk]]\n**Mark Steven Kirk (R - IL -10) - (born September 15, 1959) has been a Member of Congress since 2001, representing the 10th District of Illinois. He had not revealed to Illinois voters that he was involved in clandestine operations with the CIA. [Before the CIA was formed in 1947, most foreign espionage was performed by Naval Intelligence, which continues such activities today.] Kirk's exact role is unknown, although important enough to earn him the award for US Naval intelligence officer of the year in 1999. The next year he was elected to represent Illinois' 10th district in Congress. This was surprising because Kirk's bio shows him jumping among different political jobs every year while spending much time on active-duty in the Navy in places like Panama and Haiti. He hadn't lived in the state of Illinois since his high school days some 23 years prior. He never held any elected office and never worked in Illinois. He had no local name recognition until he somehow attracted large sums of money to run for Congress. Did the Republicans in the 10th District of Illinois select Mark Kirk to represent them because no local Republicans were capable, or were they told to rubberstamp Kirk for Congress by countless advertisements? \n**Kirkโ€™s Democratic opponent in 2004, Lee Goodman, complained that Kirkโ€™s employment by the CIA while serving in Congress is unethical and illegal. When questioned about the matter by a reporter for the Waukegan News Sun newspaper, Kirk said the Congressional Record was wrong. Kirk said that although he used to work for the CIA while he was also working for the U.S. State Department, he no longer works for the spy agency. Lee Goodman, who lived in the 10th district all his life, offered his thoughts: โ€œIf a Congressman has been secretly working for the CIA, the whole country has a right to know about it. Congress is supposed to be overseeing the CIA. Not the other way around.โ€ \n**Mark Kirk is not concerned about lawsuits because his wife, a former naval intelligence officer, is now a lawyer working in the CIA's general counsel office in Washington DC. Meanwhile, there are no Congressional investigations into the CIA's 9-11 failures, no investigations into CIA torture prisons, and no investigations into secret CIA "extraordinary renditions" where suspects are snatched off the streets and flown to friendly dictatorships for painful questioning. It concerns few in Congress that Italy has issued European arrest warrants for 22 CIA agents for kidnapping. There are billions of dollars in cash that have been "lost" in Iraq during CIA operations, and few in Congress care. Is this because congressmen are afraid of the CIA? Are their campaigns funded indirectly by the CIA? Has the CIA blackmailed most congressmen? Don't expect the corporate press to ask these questions, because they may find the answers unfit to print.
''A Fantastic Tale''\n//Turkey, Drugs, Faustian Alliances & Sibel Edmonds//\nby John Stanton\n\n\nTaking Turkey as the focal point and with a start date of 1998, it is easy to speculate why [[Sibel Edmonds]] indicated that there was a convergence of US and foreign counter-narcotics, counter-terrorism and US national security and economic interests all of which were too preoccupied to surface critical information warning Americans of the attacks of September 11, 2001. After all, who would have believed drug runners operating in Central Asia? And besides, President Clinton was promoting Turkey, one of the worldโ€™s top drug transit points, as a model for Muslim-Western cooperation and a country necessary to reshape the Middle East.\n\nThe FBIโ€™s Office of International Operations, in conjunction with the [[CIA]] and the US State Department counter-narcotics section, the United Kingdomโ€™s MI6, Israelโ€™s Mossad, Pakistanโ€™s ISI, the US DEA, Turkeyโ€™s MIT, and the governments and intelligence agencies of dozens of nations, were in one way or another involved in the illicit drug trade either trying to stop it or benefit from it. What can be surmised from the public record is that from 1998 to September 10, 2001, the [[War on Drugs]] kept bumping into the nascent [[War on Terror]] and new directions in US foreign policy.\n\nItโ€™s easy to imagine the thousands of drug couriers, middlemen, financiers and lab technicians moving back and forth between Pakistan and Turkey, and over to Western Europe and the United States, and the tidbits of information they gleaned from their sponsors as they traveled. As information gathering assets for the intelligence agencies of the world, they must have been invaluable. And given the dozens of foreign intelligence services working in the counter-narcotics/terrorism fields, the โ€œchatterโ€ that just dozens of well-placed operatives may have overheard about attacks against Western targets must have found its way into the US intelligence apparatus. But, again, who could believe the audacity of non-state actors organizing a domestic attack against the supreme power of the day, the USA? Implementing a new strategic direction and business deals may have overcome the wacky warnings from the counter-narcotics folks.\n\nBack in the late 1990โ€™s and early 2000, who would have believed the rants of a drug courier from Afghanistan saying that some guy named Bin Laden was going to attack America, particularly if it involved Americaโ€™s newest friend, Turkey? Or that a grand design to reshape Central Asia and the Middle East with Turkey and Israel as pivot points was being pushed by the Clinton Administration as a matter of national policy.\n\nThe historical record shows that the US War on Drugs and the nascent War on Terror kept colliding with not only within the US intelligence, policy and business apparatus, but also with European strategic and business interests. Turkey continues its push for entry into the European Union and the USA wants that to happen as the June 2004 meeting of NATO, and President Bushโ€™s attendance under dangerous circumstances in Turkey demonstrates. Turkey is one of the USAโ€™s and Europeโ€™s top arms buyers and is located near what could be some of the biggest oil and natural gas fields in the world. At this point itโ€™s worth noting that the one of the FBIโ€™s tasks is to counter [[industrial espionage]] and to engage in it. Where big arms sales pit the US against its European competitors - as is the case in Turkey (particularly starting in 1998) - the FBI is busy making sure the US gets the edge over its competition. Allies are friends only so far.\n\nDid warnings foretelling of an attack on American soil by Bin Ladenโ€™s crew get lost in the War on Drugs or the US national and economic interest in troublesome Turkey? It seems only Ms Edmonds knows.\n\n''Turkey Cold to UK and USA Concerns''\n\nIn 1998, the US Department of State ([[DOS]]) was finally forced to admit that Turkey was a major refining and transit point for the flow of heroin from Southwest Asia to Western Europe, with small quantities of the stuff finding its way to the streets of the USA. In that same year, Kendal Nezan, writing for Le Monde Diplomatique, reported that [[MIT]], and the Turkish National Police force were actively supporting the trade in illicit drugs not only for fun and profit, but out of desperation.\n<<<\n โ€œAfter the Gulf War in 1991, Turkey found itself deprived of the all-important Iraqi market and, since it lacked significant oil reserves of its own, it decided to make up for the loss by turning more massively to drugs. The trafficking increased in intensity with the arrival of the hawks in power, after the death in suspicious circumstances of President Turgut ร–zal in April 1993. According to the minister of interior, the war in Kurdistan had cost the Turkish exchequer upwards of $12.5 billion. According to the daily Hรผrriyet, Turkeyโ€™s heroin trafficking brought in $25 billion in 1995 and $37.5 billion in 1996...Only criminal networks working in close cooperation with the police and the army could possibly organize trafficking on such a scale. Drug barons have stated publicly, on Turkish television and in the West, that they have been working under the protection of the Turkish government and to its financial benefit. The traffickers themselves travel on diplomatic passportsโ€ฆthe drugs are even transported by military helicopter from the Iranian border.โ€ \n<<<\nNowhere is the pain of Turkeyโ€™s role in the heroin trade felt more horribly than in the United Kingdom. According to Londonโ€™s Letter written by a Member of Parliament, โ€œThe war against drugs and drug trafficking in Britain is huge. Turkish heroin in particular is a top priority for the MI6 and the Foreign Ministry. During his visit to the British Embassy in Ankara, the head of the Foreign Officeโ€™s Turkey Department was clear about this. He reassured an English journalist that the heroin trade was more important than billions of pounds worth of trade capacity and weapons selling. When the journalist in question told me about this, I was reminded of my teacherโ€™s words at university in Ankara ten years ago. He was also working for the Turkish Foreign Ministry. The topic of a lecture discussion was about Turkeyโ€™s Economy and I still remember his words today, โ€œ50 billion dollars worth of foreign debt is nothing, it is two lorry loads of heroin...โ€\n\n''Afghanistan: Top Opiate Producer and Americaโ€™s Friend''\n\nBoth the DOS and the US Drug Enforcement Agency (DEA) described in detail the transit routes and countries involved in getting the goods to Turkey. Intelligence organizations here and abroad must have sanctioned the role that they, and Turkey and Afghanistan, played in the process.\n<<<\n โ€œAfghanistan is the original source of most of the opiates reaching Turkey. Afghan opiates, and also hashish, are stockpiled at storage and staging areas in Pakistan, from where a ton or larger quantities are smuggled by overland vehicles to Turkey via Iran. Multi-ton quantities of opiates and hashish also are moved to coastal areas of Pakistan and Iran, where the drugs are loaded on ships waiting off-shore, which then smuggle the contraband to points in Turkey along the Mediterranean, Aegean, and/or Marmara seas. Opiates and hashish also are smuggled overland from Afghanistan via Turkmenistan, Azerbaijan, and Georgia to Turkey.\n\n Turkish-based traffickers and brokers operate directly and in conjunction with narcotic suppliers, smugglers, transporters, laboratory operators, drug distributors, money collectors, and money launderers in and outside Turkey. Traffickers in Turkey illegally acquire the precursor chemical acetic anhydride, which is used in the production of heroin, from sources in Western Europe, the Balkans, and Russia. During the 27-month period from July 1, 1999 to September 30, 2001, over 56 metric tons of illicit acetic anhydride were seized in or destined for Turkey.โ€ \n<<<\n''The Ankara Pact''\n\nThe Middle East Report concluded in 1998 that probably the greatest strategic move in the Clinton post-Cold War years is what could be called "[[The Ankara Pact]]" -- an alliance between the U.S., Turkey, and Israel that essentially circumvents and bottles up the Arab countries. Earlier in 1997, Turkish Prime Minister Yilmaz visited with [[Bill Clinton]] to ensure him that Turkey would attempt to improve its human rights record by slaughtering less Kurds, but also mentioned that if the US pushed too hard on that subject or if the US Congress adopted an [[Armenian Genocide Resolution]], Turkey might award a billion dollar contract for attack helicopters to a Europe or maybe even Russia.\n\nDuring this timeframe, and with approval from the USA, Turkey began to let contracts to Israel to upgrade its F-4, F-5 and F-16 aircraft. Pemra Hazbay, writing in the May 2004 issue of //Peace Watch//, reported that total Israeli arms sales to Turkey had exceeded $1 billion since 2000. โ€œIn December 1996, Israel won a deal worth $630 million to upgrade Turkey's fleet of fifty-four F-4 Phantom fighter jets. In 1998, Turkey awarded a $75 million contract to upgrade its fleet of 48 F-5 fighter jets to Israel Aircraft Industries' Lahav division, beating out strong French competition. In 2002, Turkey ratified its largest military deal with Israel, a $700 million contract for the renovation of Turkish tanks.โ€ But that pales in comparison to the $20 billion in US arms exports and military aid dealt to Turkey over the last 24 years.\n\nThen in 1999 came a news item from a publication known as the //Foreign Report// based in the United Kingdom. That publication indicated that โ€œIsraeli intelligence, the Mossad, had expanded its base in Turkey and opened branches in Turkey for other two departments stationed in Tel Aviv. The Mossad carried out several spy operations and plans through its elements stationed in Istanbul and Ankara, where it received support and full cooperation from the Turkish government. According to the military cooperation agreement between the Mossad and its Turkish counterpart, the MIT, signed by former Turkish Foreign Minister [[Hekmet Citen]] during his visit to Israel in 1993, the Mossad had provided Turkey with plans aiding it in closing its border with Iraq, as well as being involved in the arrest the chairman of the [[PKK]], [[Abdullah Ocalan]].โ€ That agreement also included help with counter-narcotics.\n\nEarlier in 1998, Israeli, Turkish and American military forces engaged in exercises in the Mediterranean, according to Reuters and Agencie France Press. "[These exercises] signal to the radical states in the region that there is a strong alliance between Israel, Turkey and the United States which they must fear, Israeli political scientist Efraim Inbar said. Defense officials said during last month's visit to Ankara that they hoped the Jewish lobby in Washington would help Turkey offset Greek and Armenian influence on Capitol Hill. That's certainly part of this. They expect us to help them and we do help them a bit, said David Ivri, an adviser who directs biannual strategy talks with Turkey.โ€ Reports also indicated that the CIA and Pentagon intelligence organizations had regularly chaired meetings of Turkish and Israeli officers in Tel Aviv for years.\n\n''DEA & FBI''\n\nPrior to the US invasion of Afghanistan, the [[DEA]] monitored the Afghanistan drug trade from its two offices in Pakistan: The [[Islamabad Country Office]] and the [[Peshawar Resident Office]]. In addition to Pakistan and Afghanistan, the DEA Islamabad Country Office also includes in its area of responsibility Uzbekistan, Kyrgyzstan, Kazakhstan, Tajikistan, the United Arab Emirates, and Oman. [[Asa Hutchinson]], the Administrator of the Drug Enforcement Administration, testified in October 2001 that DEA intelligence confirmed the presence of a linkage between Afghanistanโ€™s ruling [[Taliban]] and international terrorist [[Osama bin Laden]].\n\nHe went on to say that although DEA had no direct evidence to confirm that Bin Laden is involved in the drug trade, the relationship between the Taliban and Bin Laden is believed to have flourished in large part due to the Talibanโ€™s substantial reliance on the opium trade as a source of organizational revenue. โ€œWhile the activities of the two entities do not always follow the same trajectory, we know that drugs and terror frequently share the common ground of geography, money, and violence. In this respect, the very sanctuary enjoyed by Bin Laden is based on the existence of the Talibanโ€™s support for the drug trade. This connection defines the deadly, symbiotic relationship between the illicit drug trade and international terrorism.โ€\n\nMeanwhile, back at the FBI, the [[Office of International Operations]] oversees the [[Legal Attachรฉ Program]] operating at 46 locations around the world. The operation maintains contact with [[Interpol]], other US federal agencies such as the [[CIA]] and military agencies such as the Defense Intelligence Agency, and foreign police and security officers. Its job is to investigate or counter threats from foreign intelligence, terrorists and criminal enterprises that threaten the national or economic security of the USA. It coordinates its activities with all US and foreign intelligence operations. In 2000, it opened offices in Ankara, Turkey and Almaty, Kazhakstan. Since 1996, it has had offices in Islamabad, Pakistan and Tele Aviv, Israel. In 1997 it opened one in Riyadh, Saudi Arabia. Combined, these offices monitor the entire Middle East, Persian Gulf and Central Asian threat areas developing thousands of โ€œinvestigative leadsโ€.\n\nMs Edmonds has given the American people leads that show that they are easily sacrificed for a perceived greater good.\n\n----\n\nJohn Stanton is a Virginia based writer specializing in national security and political issues. His forthcoming book is //America 2004: A Power But Not Super//. He is the author, along with Wayne Madsen, of //Americaโ€™s Nightmare: The Presidency of George Bush II//. \nReach him at cioran123 AT yahoo DOT com\n\n----\n\n!Additional Reading\n\n*[[Why the CIA Went Astray over Italy's Abu Omar|http://cryptome.org/cia-astray.htm]] by Trowbridge H. Ford\n*[[Public Letter to 9/11 Commission Chairman from FBI Whistleblower|http://www.commondreams.org/views04/0802-06.htm]] by Sibel Edmonds\n*[[Sibel Edmondsโ€™ 2005 Spring Offensive: FBI Shields Pakistan/Turkey Nuclear Weapons Development, Drug Trade, Cheney, Rumsfeld|http://cryptome.org/edmonds-2005.htm]] By John Stanton
<<reminder day:8 month:9 year:2006 title:"Consult the Oracle" >>
!Overview\n\nThe American-Turkish Council (ATC) was created in 1994 as the U.S.-based counterpart to the Turkish-U.S. Business Council, a โ€œbilateral business councilโ€ that aims to foster commercial relations between the United States and Turkey. It grew out of the โ€œconsolidation of the Turkish desk of the U.S. Chamber [of Commerce] with the American Friends of Turkey.โ€ (1, 2)\n\nAccording to its web site, โ€œAs one of the leading business associations in the United States, the American-Turkish Council (ATC) is dedicated to effectively strengthening U.S.-Turkish relations through the promotion of commercial, defense, technology, and cultural relations. Its diverse membership includes Fortune 500, U.S. and Turkish companies, multinationals, nonprofit organizations, and individuals with an interest in U.S.-Turkish relations. Guided by member interests, ATC strives to enhance the growing ties between the United States and Turkey by initiating and facilitating efforts to increase investment and trade between the two countries.โ€ (2)\n\nAccording to its 2005 annual report, current ATC board members include [[Brent Scowcroft]], the board chairman and former national security adviser for George H. W. Bush; [[George Perlman]] of [[Lockheed Martin]]; [[Elizabeth Avery]] of [[Pepsico]]; [[Ozer Baysal]] of [[Pfizer]]; [[Andy Button]] of [[Boeing]]; [[Richard K. Douglas]] of [[General Electric]]; [[Sherry Grandjean]] of [[Sikorsky]]; [[John R. Miller]] of [[Raytheon]]; and [[Selig A. Taubenblatt]] of [[Bechtel]]. ATC's advisory board also includes representatives of a number of high-powered defense, pharmaceutical, consulting, and technology firms, including [[General Atomics]], [[United Defense]], [[Motorola]], and the [[Cohen Group]]. [[Daniel Pipes]] is a former ATC board member. (1, 4)\n\n!Highlights\n\nAfter years of maintaining a surprisingly low profileโ€”given its purportedly influential position inside the beltwayโ€”the American-Turkish Council has in recent years been the subject of growing media scrutiny as a result of allegations made by FBI whistleblower [[Sibel Edmonds]] regarding suspect activities of council members. According to a September 2005 Vanity Fair article, Edmonds alleges that one of her [[FBI]] colleagues with close ties to the ATC routinely refused to translate conversations she was monitoring of close associates she had in the council. The FBI, which had been targeting members of the council as well as officials at the Turkish Consulate in Chicago as part of a counter-intelligence investigation, eventually fired Edmonds when she complained about her colleague's negligence, arguing that she was having a โ€œdisruptive effectโ€ on their investigation. (5)\n\nDavid Rosen, author of the Vanity Fair piece, writes that some of the FBI wiretaps Edmonds had access to involved conversations among council members and Turkish officials about bribing elected officials and โ€œ contained what sounded like references to large-scale drug shipments and other crimes.โ€ One official who figured prominently in the conversations was Cong. [[Dennis Hastert]]. Rosen reports that FBI wiretap targets boasted โ€œthat they had a covert relationship with a very senior politician indeedโ€”Dennis Hastert, Republican congressman from Illinois and Speaker of the House since 1999. The targets reportedly discussed giving Hastert tens of thousands of dollars in surreptitious payments in exchange for political favors and information.โ€ Rosen points to Hastert's about-face in 2000 regarding the then-proposed House resolution calling for recognition of the [[Armenian genocide]] in Turkey, which was mentioned in the FBI-monitored conversations. After publicly backing the resolution, Hastert abruptly withdrew his support, arguing that President Clinton was concerned it would harm U.S. interests in Turkey.\n\nMore recently, in September 2005, another influential figure connected to ATC, former national security adviser Brent Scowcroft, stepped in to try to block a new congressional resolution on the Armenian genocide. Writing as โ€œChairman of the American-Turkish Council,โ€ Scowcroft argued in a letter to Hastert: โ€œ//Whatever people individually decide on the merits of these resolutions, it is important to note the real world consequences of their adoption. When the French Senate passed such a resolution, it cost France over $1 billion in cancelled contracts and lost business opportunities. Enactment of genocide language would jeopardize our ability to achieve strategic interests with Turkey and in the region. Furthermore, it is quite likely that the business interests of several of our American members would be jeopardized by passage of such prejudicial legislation. The American-Turkish Council strongly believes that the events about which H. Con. Res. 195 and H. Res. 316 speak are matters for historians to decideโ€”not politicians. Unfortunately, these resolutions express, as matters of law and fact, issues that remain widely disputed by scholars, historians, and legal experts.//โ€ (6)\n\nSome writers argue that ATC is part of a U.S. effort to maintain a tight grip on the so-called New EuroAsia, a region that includes โ€œthe โ€˜Stans,' Ukraine, Chechnya, Azerbaijan, Georgia, Belarus, Romania, Bulgaria, Czech, Croatia, and Poland.โ€ National security blogger [[John Stanton]], who daringly calls ATC one of the most powerful NGOs in the United States, argues that through groups like ATC, U.S. elites hope to ensure access to oil supplies and to markets for weapons and other products, reign in countries like Russia and Iran, and counter-balance the growing influence of the European Union. Pointing to the impressive corporate and policy elite membership of the ATC and similar associations (like the [[American-Azerbaijan Chamber of Commerce]]), Stanton claims, โ€œTheirs is the voice that matters and is the one that is heard on television and radio networks through the mouths of news-readers, senators, congressmen, presidents, and military leaders. It is in and through such Associations that U.S. political, economic, and military policy is made and the American public subsequently โ€˜educated' to support policies that are not, and could not, be debated in public because of their illegality, audacity, complexity, and, arguably, necessity.โ€ (7)\n\nOn the other hand, while ATC and its ilk may wield considerable influence through their extraordinary membership rolls, the voice of American elites is not as monolithic as Stanton and others imply. In ATC's case, for example, its headโ€”Scowcroftโ€”had been attacking, as early as 2002, the idea of going to war in Iraq. But his voice, in that case at least, was not the one that mattered. (8)\n\n!Funding\n\nATC is a member-funded organization. Corporate members who gave at least $9,500 (the โ€œ[[Golden Horn Club]]โ€) in 2004 include [[Bechtel]], [[Boeing]], [[BP]], [[ChevronTexaco]], [[Coca-Cola]], [[Frito Lay]], [[General Atomics]], [[General Dynamics]], [[GE]], [[Hyatt]], [[Lockheed Martin]], [[Motorola]], [[Northrop Grumman]], [[Pepsi]], [[Pfizer]], [[Raytheon]], [[Textron]], [[United Defense]], and [[United Technologies/Sikorsky]]. โ€œBosphorusโ€ members, who pay an annual fee of at least $3,000, include [[Archer Daniels Midland]], [[BAE Systems]], [[Bank of America]], and the [[Cohen Group]]. โ€œMarmaraโ€ members ($750 annual fee) include [[Delta Airlines]], [[ExxonMobil]], [[Halliburton]], [[Shell]], [[Turkish Airlines]], and [[Vestel Defense Industries]].\n\nATC also has a long list of non-corporate sponsors in its Marmara Club, including the [[American Enterprise Institute]], the [[America-Georgia Business Development Council]], the [[American-Uzbekistan Chamber of Commerce]], the [[Canadian-Turkish Business Council]], the [[Freer Gallery of Art]], the [[Smithsonian Institute]], [[Georgetown University]], the [[Jewish Institute for National Security Affairs]], the [[Brookings Institution]], the [[Eisenhower Institute]], the [[Nixon Center]], the [[U.S.-Algeria Business Council]], the [[U.S.-Azerbaijan Chamber of Commerce]], the [[U.S.-Greece Business Council]], the [[U.S.-Russia Business Council]], and the [[University of Chicago]]. (1)\n\n[[Right Web connections|http://rightweb.irc-online.org/profile/2874]]\n#[[American Enterprise Institute|http://rightweb.irc-online.org/org/aei.php]]\n#[[Jewish Institute for National Security Affairs|http://rightweb.irc-online.org/org/jinsa.php]]\n#[[Northrop Grumman|http://rightweb.irc-online.org/corp/northrop.php]]\n#[[Daniel Pipes|http://rightweb.irc-online.org/ind/pipes/pipes.php]]\n\n''Contact Information''\n\nAmerican-Turkish Council\n1111 14th Street NW\nWashington DC 20005\nPhone (202) 783-0483\nFax (202) 783-0511\nEmail atc@the-atc.org\nWeb - http://www.americanturkishcouncil.org/\n\n''Sources''\n\n1) American Turkish Council\nhttp://www.americanturkishcouncil.org/\n\n2) Turkish-U.S. Business Council\nhttp://www.turkey-now.net/?mID=1&pgID=20\n(Accessed on October 9, 2005)\n\n3) โ€œAmerican-Turkish Council,โ€ Source Watch: A Project of the Center for Media and Democracy\nhttp://www.sourcewatch.org/index.php?title=American_Turkish_Council\n(Accessed on October 10, 2005)\n\n4) โ€œDaniel Pipes: Prophet,โ€ Lifestyles Magazine, June 2000\nhttp://www.danielpipes.org/article/98\n(Accessed on October 6, 2005)\n\n5) David Rose, โ€œAn Inconvenient Patriot,โ€ Vanity Fair , September 2005\nhttp://www.vanityfair.com/commentary/content/articles/050919roco03\n\n6) September 9, 2005, letter from Brent Scowcroft to Denny Hastert criticizing proposed Armenian genocide resolution\nhttp://www.americanturkishcouncil.org/data/pdf/052109scowcroftlettertohastert.pdf\n\n7) John Stanton, โ€œInside the American Turkish Council,โ€ SmirkingChimp.com\nhttp://www.smirkingchimp.com/article.php?sid=19921&mode=nested&order=0\n\n8) See, for example, โ€œWashington Goes to Warโ€ by Jim Lobe, Foreign Policy In Focus , August 20, 2002\nhttp://www.fpif.org/commentary/2002/0208war.html\n(Accessed on October 11, 2005)
[[Welcome to your tiddlyspot.com site!]]\n\nThis notebook attempts to capture the essence of a [["kinkless" GTD system|http://www.kinkless.com]] using TiddlyWiki. It is using the <<gtdVersion>> version of the GTD plugins, by [[Tom Otvos|http://dcubed.ca/]], and is based on version <<version>> of the [[TiddlyWiki|http://www.tiddlywiki.com]] stand-alone wiki project, by Jeremy Ruston. For customization info, see [[GTD TiddlyWiki|http://groups.google.com/group/GTD-TiddlyWiki]] and [[TiddlyWikiDev|http://www.tiddlywiki.com/dev/]], and to customize the stylesheet see [[GTDTWStyleSheet]].\n\nHosting provided by [[TiddlySpot|http://tiddlyspot.com/]].
!Welcome to version 1.0.10 of d-cubed.\nThis is a hasty bug-fix release to the previous 1.0.9 version, with the following fixes:\n* fixed [[Action Review]] to once again show project-less actions\n* fixed GTDStyleSheet to have a smaller menu width for non-fancy styles (see below).\nBecause this release is hot on the heels of the 1.0.9 release, here are the notes for that (in case you are just arriving to the party).\n\n!Welcome to version 1.0.9 of d-cubed.\nIn this release, there are the following changes:\n* changed all action lists to allow direct access to associated projects and contexts\n* added optional "floating" parameter to {{{<<gtdAction>>}}} to support creating actions that don't have to be strictly "next" to show up in action lists, as in:\n{{{\n<<gtdAction actionTitle @context floating>>\n}}}\n* added support for single-click updates of the ~TiddlyWiki core in [[Check for Updates|UpdateApplication]]\n* fixed a bug that caused odd tiddler behaviour when editing a "reference" tiddler and the main Reference tiddler was open\n* changed the default style rules to the popular GTDTW+ style, using the new GTDTWStyleSheet; to use this style, please note that:\n** this stylesheet is loaded automatically (you do not need to edit the StyleSheet tiddler)\n** if you are updating your d-cubed installation and have a custom PageTemplate, you will need to edit your PageTemplate to have a gradient of #000 to #464646 for the full effect\n** if you want to revert to the plain d-cubed style, or have your own style variations, simply disable the "fancy" style from the [[Configuration Options]]\n\n!Please do the survey\nIf you have not already done so (and you are an active user of d-cubed), please take a moment to fill in a short [[user survey|http://www.surveymonkey.com/s.asp?u=626142022640]]. It will help me to craft future releases of d-cubed knowing what you think about it.\n\n//This tiddler will only open automatically the first time you run d-cubed after an update. After that, you can freely delete it, or save it for future reference.//
<<gtdActionList @>>
config.options.chkHttpReadOnly = false;\n
To make this system operate more efficiently, you should periodically archive completed projects and actions. When a project or action is archived, it is merely tagged in a special way to get it "out of sight", but all the information in the project and action tiddlers is preserved. This is important if you need to go back and find something. Click one of these buttons to view the current <<tag project-archive>> or <<tag action-archive>>.\n\n** Click <<gtdArchive archive>> if you would like to archive all completed projects and actions now.\n** Click <<gtdArchive unarchive>> if you would like to unarchive all previously archived projects and actions now.\n\nIf you are sure that you do not want to retain archived projects and actions, you can purge them completely from the system. //Once these archived items are removed, the only way they can be put back in is through manual importing or copy/paste.// ''For your safety, your file will be saved and a backup file will be automatically generated before an archive purge is performed.''\n\n** Click <<gtdArchive purge>> if you would like to purge your archive now.
/***\n|Name|BetterTimelineMacro|\n|Created by|SaqImtiaz|\n|Location|http://lewcid.googlepages.com/lewcid.html#BetterTimelineMacro|\n|Version|0.5 beta|\n|Requires|~TW2.x|\n!!!Description:\nA replacement for the core timeline macro that offers more features:\n*list tiddlers with only specfic tag\n*exclude tiddlers with a particular tag\n*limit entries to any number of days, for example one week\n*specify a start date for the timeline, only tiddlers after that date will be listed.\n\n!!!Installation:\nCopy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.\nEdit the ViewTemplate to add the fullscreen command to the toolbar.\n\n!!!Syntax:\n{{{<<timeline better:true>>}}}\n''the param better:true enables the advanced features, without it you will get the old timeline behaviour.''\n\nadditonal params:\n(use only the ones you want)\n{{{<<timeline better:true onlyTag:Tag1 excludeTag:Tag2 sortBy:modified/created firstDay:YYYYMMDD maxDays:7 maxEntries:30>>}}}\n\n''explanation of syntax:''\nonlyTag: only tiddlers with this tag will be listed. Default is to list all tiddlers.\nexcludeTag: tiddlers with this tag will not be listed.\nsortBy: sort tiddlers by date modified or date created. Possible values are modified or created.\nfirstDay: useful for starting timeline from a specific date. Example: 20060701 for 1st of July, 2006\nmaxDays: limits timeline to include only tiddlers from the specified number of days. If you use a value of 7 for example, only tiddlers from the last 7 days will be listed.\nmaxEntries: limit the total number of entries in the timeline.\n\n\n!!!History:\n*28-07-06: ver 0.5 beta, first release\n\n!!!Code\n***/\n//{{{\n// Return the tiddlers as a sorted array\nTiddlyWiki.prototype.getTiddlers = function(field,excludeTag,includeTag)\n{\n var results = [];\n this.forEachTiddler(function(title,tiddler)\n {\n if(excludeTag == undefined || tiddler.tags.find(excludeTag) == null)\n if(includeTag == undefined || tiddler.tags.find(includeTag)!=null)\n results.push(tiddler);\n });\n if(field)\n results.sort(function (a,b) {if(a[field] == b[field]) return(0); else return (a[field] < b[field]) ? -1 : +1; });\n return results;\n}\n\n\n\n//this function by Udo\nfunction getParam(params, name, defaultValue)\n{\n if (!params)\n return defaultValue;\n var p = params[0][name];\n return p ? p[0] : defaultValue;\n}\n\nwindow.old_timeline_handler= config.macros.timeline.handler;\nconfig.macros.timeline.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var args = paramString.parseParams("list",null,true);\n var betterMode = getParam(args, "better", "false");\n if (betterMode == 'true')\n {\n var sortBy = getParam(args,"sortBy","modified");\n var excludeTag = getParam(args,"excludeTag",undefined);\n var includeTag = getParam(args,"onlyTag",undefined);\n var tiddlers = store.getTiddlers(sortBy,excludeTag,includeTag);\n var firstDayParam = getParam(args,"firstDay",undefined);\n var firstDay = (firstDayParam!=undefined)? firstDayParam: "00010101";\n var lastDay = "";\n var field= sortBy;\n var maxDaysParam = getParam(args,"maxDays",undefined);\n var maxDays = (maxDaysParam!=undefined)? maxDaysParam*24*60*60*1000: (new Date()).getTime() ;\n var maxEntries = getParam(args,"maxEntries",undefined);\n var last = (maxEntries!=undefined) ? tiddlers.length-Math.min(tiddlers.length,parseInt(maxEntries)) : 0;\n for(var t=tiddlers.length-1; t>=last; t--)\n {\n var tiddler = tiddlers[t];\n var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);\n if ((theDay>=firstDay)&& (tiddler[field].getTime()> (new Date()).getTime() - maxDays))\n {\n if(theDay != lastDay)\n {\n var theDateList = document.createElement("ul");\n place.appendChild(theDateList);\n createTiddlyElement(theDateList,"li",null,"listTitle",tiddler[field].formatString(this.dateFormat));\n lastDay = theDay;\n }\n var theDateListItem = createTiddlyElement(theDateList,"li",null,"listLink",null);\n theDateListItem.appendChild(createTiddlyLink(place,tiddler.title,true));\n }\n }\n }\n\n else\n {\n window.old_timeline_handler.apply(this,arguments);\n }\n}\n//}}}
*1918\n[[Prescott Bush]] Sr., leads a raid on a Indian tomb to secure Geronimo's skull for [[Skull & Bones]].\n\n*1919\n[[George Herbert Walker]] forms WA Harriman & Co. with Averell Harriman as chairman\n\n*1924\n[[WA Harriman]] establishes [[Union Banking Corp.]] in partnership with the German industrialist [[Fritz Thyssen]], who will be a major donor to the Nazi Party.\n\n*1937\nPrescott Bush's investment firm sets up deal for the Luftwaffe so it can obtain tetraethyl lead.\n\n*1940s\n[[GUARDIAN|http://www.guardian.co.uk/usa/story/0%2C12271%2C1312540%2C00.html]] - George Bush's grandfather, the late US senator Prescott Bush, was a director and shareholder of companies that profited from their involvement with the financial backers of Nazi Germany. The Guardian has obtained confirmation from newly discovered files in the US National Archives that a firm of which Prescott Bush was a director was involved with the financial architects of Nazism. His business dealings . . continued until his company's assets were seized in 1942 under the [[Trading with the Enemy Act]]. The evidence has also prompted one former US Nazi war crimes prosecutor to argue that the late senator's action should have been grounds for prosecution for giving aid and comfort to the enemy. . .\n\nThe new documents . . show that even after America had entered the war and when there was already significant information about the Nazis' plans and policies, he worked for and profited from companies closely involved with the very German businesses that financed Hitler's rise to power. It has also been suggested that the money he made from these dealings helped to establish the Bush family fortune and set up its political dynasty. . .\n\nWhile there is no suggestion that Prescott Bush was sympathetic to the Nazi cause, the documents reveal that the firm he worked for, [[Brown Brothers Harriman]], acted as a US base for the German industrialist, Fritz Thyssen, who helped finance [[Adolf Hitler]] in the 1930s before falling out with him at the end of the decade. The Guardian has seen evidence that shows Prescott Bush was the director of the New York-based [[Union Banking Corporation]] that represented Thyssen's US interests and he continued to work for the bank after America entered the war.\n\nNEWSWEEK [POLISH EDITION] - Prescott Sheldon Bush, grandfather of George Walker Bush, had financial dealings during World War II with the Nazis, amassing a family fortune as a banker. Prescott Bush was a shareholder of the company Union Banking Corporation, working with industrialist Fritz Thyssen from the [[Nazistowskiego Silesian Consolidated Steel Corporation]], where [[Auschwitz]] prisoners worked.\n\nNEW STATESMAN, APRIL 15, 2002 - In 1926, [[Averell Harriman]] welcomed a familiar name into his Wall Street firm (W A Harriman and Co) as senior partner - Prescott Bush, father to one American president and grandfather to another. The association was to end simultaneously in fabulous wealth and temporary ignominy - at the height of the Second World War, in 1942, the New York Herald Tribune reported that the Union Banking Corporation, of which Prescott Bush was a director and [[E. Roland Harriman]] a 99 per cent shareholder, was holding a small fortune under the orders of Adolf Hitler's financier. Under the Trading with the Enemy Act, all of Union Banking Corporation's capital stock was seized.\n\nOn October 20, 1942, the U.S. government had had enough of Prescott Bush and his Nazi business arrangements with Thyssen. Over the summer, The New York Tribune had exposed Bush and Thyssen, whom the Tribune dubbed "Hitler's Angel." When the US government saw UBC's books, they found out that Bush's bank and its shareholders "are held for the benefit of ... members of the Thyssen family, [and] is property of nationals ... of a designated enemy country." . . .\n\nOn November 17, 1942, The US government also took over the [[Silesian American Corporation]], but did not prosecute Bush . . . The companies were allowed to operate within the Government Alien Property custodian office with a catch - no aiding the Nazis. In 1943, while still owning his stock, Prescott Bush resigned from UBC and even helped raise money for dozens of war-related causes as chairman of the [[National War Fund]].\n\nAfter the war, the Dutch government began investigating the whereabouts of some jewelry of the Dutch royal family that was stolen by the Nazis. They started looking into books of the [[Bank voor Handel en Scheepvaart]]. When they discovered the transaction papers of the Silesian American Corporation, they began asking the bank manager [[H.J. Kounhoven]] a lot of questions. Kouwenhoven was shocked at the discovery and soon traveled to New York to inform Prescott Bush. According to Dutch intelligence, Kouwenhoven met with Prescott soon after Christmas, 1947. Two weeks later, Kouwenhoven apparently died of a heart attack.\n\nBy 1948, Fritz Thyssen's life was in ruins. After being jailed by the Nazis, he was jailed by the Allies and interrogated extensively, but not completely, by US investigators. Thyssen and Flick were ordered to pay reparations and served time in prison for their atrocious crimes against humanity. . .\n\nWhen Thyssen died, the Alien Property Custodian released the assets of the Union Banking Corporation to Brown Brothers Harriman. The remaining stockholders cashed in their stocks and quietly liquidated the rest of UBC's blood money.\n\nPrescott Bush received $1.5 million for his share in UBC. That money enabled Bush to help his son, [[George H. W. Bush]], to set up his first royalty firm, [[Overby Development Company]], that same year. It was also helpful when Prescott Bush left the business world to enter the public arena in 1952 with a successful senatorial campaign in Connecticut. On October 8th, 1972, Prescott Bush died of cancer and his will was enacted soon after.\n\nIn 1980, when George H.W. Bush was elected vice president, he placed his father's family inherence in a blind trust. The trust was managed by his old friend and quail hunting partner, [[William Stamps Farish III]]. Bush's choice of Farish to manage the family wealth is quite revealing in that it demonstrates that the former president might know exactly where some of his inheritance originated. Farish's grandfather, [[William Farish Jr.]], on March 25th, 1942, pleaded "no contest" to conspiring with Nazi Germany while president of [[Standard Oil]] in New Jersey. He was described by Senator [[Harry Truman]] in public of approaching "treason" for profiting off the Nazi war machine. Standard Oil, invested millions in [[IG Farben]], who opened a gasoline factory within Auschwitz in 1940. The billions "Stamps" inherited had more blood on it then Bush, so the paper trail of UBC stock would be safe during his 12 years in presidential politics.\n\nIt has been 60 years since one of the great money laundering scandals of the 20th century ended and only now are we beginning to see the true historical aspects of this important period of world history, a history that the remaining Holocaust survivors beg humanity to "never forget." [Investigative journalist John] Loftus believes history will view Prescott Bush as harshly as Thyssen. "It is bad enough that the Bush family helped raise the money for Thyssen to give Hitler his start in the 1920s, but giving aid and comfort to the enemy in time of war is treason. The Bush bank helped the Thyssens make the Nazi steel that killed Allied solders. As bad as financing the Nazi war machine may seem, aiding and abetting the Holocaust was worse. Thyssen's coal mines used Jewish slaves as if they were disposable chemicals. There are six million skeletons in the Thyssen family closet, and a myriad of criminal and historical questions to be answered about the Bush family's complicity."\n\nJOHN BUCHANAN, NEW HAMPSHIRE GAZETTE - After 60 years of inattention and even denial by the U.S. media, newly-uncovered government documents in The National Archives and Library of Congress reveal that Prescott Bush, the grandfather of President George W. Bush, served as a business partner of and U.S. banking operative for the financial architect of the Nazi war machine from 1926 until 1942, when Congress took aggressive action against Bush and his "enemy national" partners.\n\nThe documents also show that Bush and his colleagues, according to reports from the U.S. Department of the Treasury and FBI, tried to conceal their financial alliance with German industrialist Fritz Thyssen, a steel and coal baron who, beginning in the mid-1920s, personally funded Adolf Hitler's rise to power by the subversion of democratic principle and German law.\n\nFurthermore, the declassified records demonstrate that Bush and his associates, who included E. Roland Harriman, younger brother of American icon W. Averell Harriman, and George Herbert Walker, President Bush's maternal great-grandfather, continued their dealings with the German industrial baron for nearly eight months after the U.S. entered the war.\n\n. . . The mainstream media have apparently made no attempt since World War II to either verify or disprove the allegations of Nazi collaboration against the Bush family. Instead, they have attempted to dismiss or discredit such Internet sites or "unauthorized" books without any journalistic inquiry or research into their veracity.\n\nThe National Review ran an essay on September 1 by their White House correspondent Byron York, entitled "Annals of Bush-Hating." It begins mockingly: "Are you aware of the murderous history of George W. Bush - indeed, of the entire Bush family? Are you aware of the president's Nazi sympathies? His crimes against humanity? And do you know, by the way, that George W. Bush is a certifiable moron?" York goes on to discredit the "Bush is a moron" IQ hoax, but fails to disprove the Nazi connection.\n\nThe more liberal Boston Globe ran a column September 29 by Reason magazine's Cathy Young in which she referred to "Bush-o-phobes on the Internet" who "repeat preposterous claims about the Bush family's alleged Nazi connections."\n\n. . . Major U.S. media outlets, including ABC News, NBC News, The New York Times, Washington Post, Washington Times, Los Angeles Times and Miami Herald, have repeatedly declined to investigate the story when information regarding discovery of the documents was presented to them beginning Friday, August 29\n\nSARASOTA HERALD-TRIBUNE: The president of the Florida Holocaust Museum said Saturday that George W. Bush's grandfather derived a portion of his personal fortune through his affiliation with a Nazi-controlled bank. [[John Loftus]], a former prosecutor in the Justice Department's Nazi War Crimes Unit, said his research found that Bush's grandfather, Prescott Bush, was a principal in the Union Banking Corp. in Manhattan in the late 1930s and the 1940s. Leading Nazi industrialists secretly owned the bank at that time, Loftus said, and were moving money into it through a second bank in Holland even after the United States declared war on Germany. The bank was liquidated in 1951, Loftus said, and Bush's grandfather and great-grandfather received $1.5 million from the bank as part of that dissolution . . . Loftus pointed out that the Bush family would not be the only American political dynasty to have ties to the "wrong side of World War II." The Rockefellers had financial connections to Nazi Germany, he said. Loftus also reminded his audience that John F. Kennedy's father, an avowed isolationist and former ambassador to Great Britain, profited during the 1930s and '40s from Nazi stocks that he owned. "No one today blames the Democrats because Jack Kennedy's father bought Nazi stocks," Loftus said. Still, he said, it is important to understand these historical connections for what they tell us about politics today. The World War II experience points out how easy it was then -- and remains today -- to hide money in multinational funds. SARASOTA HERALD TRIBUNE\n\n*1950s\n'WE WERE TERRIBLE TO ANIMALS,' recalled [Bush childhood pal] [[Terry Throckmorton]], laughing. A dip behind the Bush borne turned into a small lake after a good rain, and thousands of frogs would come out. `Everybody would get BB guns and shoot them,' Throckmorton said. `Or we'd put firecrackers in the frogs and throw them and blow them up.'- [[Nicholas D. Kristof]], Midland Life\n\n*1953\nGeorge Bush and the [[Liedtke]] brothers form [[Zapata Petroleum]]. Zapata's subsidiary, [[Zapata Offshore]], later becomes known for its close ties to the CIA.\n\n*1954\nThe Bush family buys out the Liedtke brothers.\n\n*1955\nGeorge Bush sets up a Mexican drilling operation, [[Permago]], with a frontman to obscure his ownership. The frontman later is convicted of defrauding the Mexican government of $58 million.\n\n*1959\n[[Manuel Noriega]] recruited as an agent by the US Defense Intelligence Agency ([[DIA]]).\n\n*1960s\nKitty Kelley writes that George H. W. Bush successfully comes to the rescue when son Jeb violates Andover's alcohol ban, but he's allowed to finish his degree after his father intervenes. Dad later gets an honorary transfer for son [[Marvin Bush]] after he is found with drugs.\n\nAfter his sister dies, young George writes a school paper in which he says "the lacerates ran down my cheeks." He also has a confederate flag hanging in his dorm room.\n\n*1960\nSome investigators believe George Bush spent part of this year and the next in Miami on behalf of the CIA, organizing rightwing exiles for an invasion of Cuba. Is said to have worked with later [[Iran-Contra]] figure [[Felix Rodriguez]].\n\n*1961\nAccording to the Realist, CIA official [[Fletcher Prouty]] delivers three Navy ships to agents in Guatemala to be used in the [[Bay of Pigs]] invasion. Prouty claims he delivered the ships to a CIA agent named George Bush. Agent Bush named the ships the Barbara, Houston and Zapata.\n\n[[Bay of Pigs]] invasion fails. Right-wingers blame [[John F. Kennedy]] for failure to provide air cover. CIA loses 15 men, another 1100 are imprisoned.\n\nGeorge Bush invites Rep. T. L. Ashley -- a fellow Skull & Bonesman -- down to Texas for a party in order to meet "an attractive girl." Bush writes that "she may be accompanied by an Austrian ski instructor but I think we can probably flush him at the local dance hall." Bush notes that he's had to unlist his phone because "Jane Morgan keeps calling me all the time." [From a letter in the Ashley archives uncovered by Spy magazine.]\n\nZapata annual report boasts that the company has ''paid no taxes'' since it was founded.\n\n*1963\n[[John F. Kennedy]] is assassinated. Internal FBI memo reports that on November 22 "reputable businessman" [[George H. W. Bush]] reported hearsay that a certain Young Republican "has been talking of killing the president when he comes to Houston." The Young Republican was nowhere near Dallas on that date. When CIA director, Bush will request many of the Kennedy assasination files.\n\nAccording to a 1988 story in The Nation, a memo from [[J. Edgar Hoover]] states that "Mr. George Bush of the CIA" had been briefed on November 23rd, 1963 about the reaction of anti-Castro Cuban exiles in Miami to the assassination of President Kennedy. George says it ain't him, admits he was in Texas but can't remember where.\n\n*1964\nGeorge H. W. Bush runs as a Goldwater Republican for Congress. Campaigns against the [[Civil Rights Act]].\n\n*1966\nGeorge H. W. Bush, runs as a moderate Republican, gets elected to Congress. [[Robert Mosbacher]] chairs [[Oil Men for Bush]].\n\nApache leader Ned Anderson meets with the Skull & Bones lawyer and George Bush's brother Jonathan who attempt to return the skull Prescott Bush had looted in 1933. Anderson refuses the skull because he says it isn't Geronimo's.\n\n*1967\nRICHARD GOODING, STAR WEEKLY, July 27, 1999 - Presidential candidate George W. Bush once led a Yale fraternity that barbarically branded its new members on their backsides with a red-hot metal rod as part of a sadistic hazing practice. "I got branded and I didn't like it one bit," Professor Bradford Lee of the elite Naval War College in Newport, R.I.-an ex-football player and onetime member of Bush's Delta Epsilon Kappa fraternity-told STAR in an exclusive interview. "It did burn," he says, recalling the terrifying experience. "I think I still have the mark on me."\n\nA Star investigation has revealed that he was president of [[Delta Epsilon Kappa]] when the hazing scandal broke in the campus newspaper in the late '60s-leading to the fraternity being fined and the branding practice halted. Amazingly, Bush, now the governor of Texas, defended the illegal [[torture]] of the young fraternity pledges at the time as a harmless prank-insisting that it was comparable to "only a cigarette burn" which left "no scarring mark physically or mentally." But others said the branding resulted in a second-degree burn that left a half-inch scab in the shape of the Greek letter Delta.\n\n[[Bradford Lee]] - who still bears the mark 32 years later - is not sure who actually wielded the brand because the pledges were not allowed to look at their tormentors. "But I do know that George Bush was very active in all the fraternity activities then."\n\nLee, who was a guard on the Yale football team, recalled that the branding came after "a long initiation that went on into the early morning hours." He says the idea was to wear you out so much that you allowed your bare flesh to be singed. "I was already tired from football practice earlier that day. I was so groggy I wasn't exactly sensitive to what they were up to. I wasn't very happy about it."\n\n. . . [[Bill Katz]], now a community college teacher in northern New Jersey, told Star that the branding was done with "a wire coat hanger twisted into a triangle and heated up" in the fireplace. "They touched you just above the buttocks, in the small of the back," he says.\n\n. . . And Boston lawyer [[Franklin Levy]] said that to increase the fear of the moment, the older fraternity men first brandished an actual glowing hot branding iron-to make them think that was what awaited them. "When they burned me," Levy remembers, "I jumped a mile."\n\nBefore the brandings, pledges had to endure hours of being kicked and a vicious round of tannings with wooden paddles-another practice that Yale has ruled taboo. "On that night," according to an account in the Yale Daily News in 1967, 'each pledge was forced to sit with his head between his legs, motionless, for two to five hours.\n\n"If he coughed, raised his hand or talked, he was kicked by an older brother." After all the beatings, recalled one fraternity member, the branding was almost a relief.\n\nIn the wake of the Yale Daily News' expose of the fraternity's hazing, Bush, whose father was also a DKE at Yale, admitted the branding to the New York Times in November 1967. But Bush - whose college nickname was "Lip" for his Texas wisecracks - also ripped into Yale for being too "Haughty" to "allow this type of pledging to go on."\n\n*1968\n[[George W. Bush]] joins Skull & Bones at Yale\n\n*1970s\nA professor at the Harvard Business School shows his students the film, "Grapes of Wrath." Student George W wants to know, "Why are you going to show us that Commie movie?" His review of the movie: "Look. People are poor because they are lazy."\n\n*1970\nBush loses Senate race to [[Lloyd Bentsen]], despite $112,000 in contributions from a White House slush fund. [[James Baker III]] is campaign chair. Bush later claims to have reported correctly all but $6000 in cash --which he denies he got. A 1992 story in the New York Times says the $6000 was listed in records of [[Richard Nixon]]'s "townhouse operation" which was designed in part to make GOP congressional candidates vulnerable to blackmail.\n\n*1971\nBush is named UN Ambassador by Nixon.\n\nBureau of Narcotics and Dangerous Drugs finds enough evidence of Noriega's involvement in drug dealing to indict him, but US Attorney's office in Miami considers grabbing Noriega in Panama for trial here to be impractical. State Department also urges BNDD to back off.\n\n*1972\n[[Bill Liedtke]] gathers $700,000 in anonymous contributions for the Nixon campaign, delivering the money in cash, checks and securities to the Committee to Re-Elect the President (the infamous CREEP) one day before such contributions become illegal. Bill says he did it as a favor to George.\n\n*1973\nBush is named GOP national chair. Brings into the party the [[Heritage Groups Council]], an organization with a number of Nazi sympathizers.\n\nBush, according to Lowell Weicker, inquires as to whether records of the "townhouse operation" should be burned.\n\n[[Robert Mosbacher]] wins an offshore drilling concession from Philippine dictator [[Ferdinand Marcos]].\n\nWatergate tapes indicate concern by Nixon and aide [[H. R. Haldeman]] that the investigation into [[Watergate]] might expose the "[[Bay of Pigs]] thing." Nixon also speaks of the "Texans" and the "Cubans." and mentions "Mosbacher."\n\nIn another tape, Nixon decides following his re-election to get signed resignations from his whole government so he can centralize his power. Says Nixon to [[John Erlichman]]: "Eliminate everyone, except George Bush. Bush will do anything for our cause."\n\n*1974\nBush is named special envoy to China.\n\n*1975\nDEA report notes Manuel Noreiga's involvement in drug trade.\n\nGeorge W. Bush graduates from Harvard Business School\n\n*1976\n[[Gerald Ford]] names George Bush CIA director, his fourth political patronage job in a little over five years. Bush later claims this is the first time he ever worked for the CIA. At his confirmation hearings, Bush says, "I think we should tread very carefully on governments that are constitutionally elected."\n\nBush holds first known meeting with [[Manuel Noriega]]. Noriega starts receiving $110,000 a year from the CIA.\n\nManuel Noriega found to be working for Cubans as well, but keeps his CIA gig.\n\nBush sets up Team B within the CIA, a group of neo-conservative outsiders and generals who proceed to double the agency's estimate of Soviet military spending.\n\nSenate committee headed by [[Frank Church]] proposes revealing size of the country's black budget -- intelligence spending that, in contradiction to the Constitution, is kept secret even from the Hill. According to journalist Tim Weiner, Bush argues that the revelation would be a disaster and would compromise the agency beyond repair. By a one vote margin the matter is referred to the Senate. It never reaches the floor.\n\nChilean dissident [[Orlando Letelier]] is assassinated by Chilean secret police agents. CIA fails to inform FBI of pending plot and of assassins' arrival in US. CIA claims the hit was the work of left-wingers in search of a martyr.\n\n[[Operation Condor]]\n\nBush writes internal CIA memo asking to see cable on [[Jack Ruby]] visiting [[Santos Trafficante]] in jail. In 1992, Bush will deny any interest in the JFK assassination while CIA head.\n\nBush claims nuclear war is winnable.\n\n*1977\nPhilippine dictator Ferdinand Marcos buys back Robert Mosbacher's oil concession. Mosbacher claims he was swindled. Philippine officials say they never saw any expenditures by Mosbacher on the project.\n\n*1978\nBush, Mosbacher and James Baker III become partners in an oil deal.\n\nFrom a Washington Post article by [[Bob Woodward]] and [[Walter Pincus]] : "According to those involved in Bush's first political action committee, there were several occasions in 1978-79, when Bush was living in Houston and traveling the country in his first run for the presidency, that he set aside periods of up to 24 hours and told aides that he had to fly to Washington for a secret meeting of former CIA directors. Bush told his aides that he could not divulge his whereabouts, and that he would not be available." Former CIA chief [[Stansfield Turner]] denies such meetings took place.\n\nGeorge W. Bush declares his candidacy for the Midland Congressional district. He wins the Republican primary and loses in the general election.\n\nGeorge W. Bush begins operations of his oil firm, [[Arbusto]] Energy. With the help of [[Jonathan Bush]], he assembles several dozen investors in a limited partnership including [[Dorothy Bush]], [[Lewis Lehrman]], [[William Draper]], and [[James Bath]], a Houston aircraft broker\n\n*1979\nFifty Bush family investors and friends, led by uncle Jonathan, a New York Republican Party official and an investment manager, invest $4.7 million to set up young Bush in a company called [[Arbusto]].\n\n*1980\nBush runs for the presidency after agreeing to prospective manager James Baker's condition that mistress and aide [[Jennifer Fitzgerald]] can't be around, according to journalist Kitty Kelly.\n\nBush becomes [[Ronald Reagan]]'s vice presidential candidate. \n\nMosbacher becomes chief fundraiser for Bush's presidential campaign. Forms a millionaire's club of 250 contributors, each of whom cough up $100,000.\n\n[[William Casey]] forms a working group to prepare for possible Carter October political surprise. In early October, an Iranian official meets with three top Reagan campaign aides. All three deny memory of the meeting in subsequent proceedings.\n\nOn October 21, Reagan hints he has a secret plan to release the hostages. This is right around the alleged date of a Paris meeting at which the so-called "[[October Surprise]]" was settled. Some allege that at this meeting it was agreed to end the arms embargo against Iran if Iran would release its hostages after the election. While Bush's presence at this meeting has been denied by the House committee investigating the October Surprise, Bush's whereabouts at this critical time remain in doubt. The White House, in fact, has leaked conflicting stories.\n\nPrescott Bush writes a letter to James Baker III in September which says, "[[Herb Cohen]] - the buy that offered help on the Iranian hostage situation - called me yesterday afternoon. Herb has a couple of reliable sources on the National Security Council ([[NSC]]), about whom the [Carter] administration does not know, who can keep him posted on developments."\n\nRep. [[Dan Quayle]] goes on a Florida golfing vacation with seven other men and Paula Parkinson -- an insurance lobbyist who later posed nude for Playboy. Parkinson describes Quayle as a husband on the make, but says she turned him down because she was already having an affair with another congressman. Marilyn Quayle says, "anybody who knows Dan Quayle knows he would rather play golf than have sex."\n\nThe Reagan-Bush campaign receives stolen copies of Carter's briefing books.\n\nBush's campaign manager, [[James Baker III]], forces the dismissal of Bush aide Jennifer Fitzgerald, described in a 1982 Time story as having "much to say about where Bush goes, what he does and whom he sees." Bush continues to pay Fitzgerald out of his own pocket.\n\n*1981\nReagan-Bush inaugurated. Hostages released moments before. Shortly thereafter, arms shipments to Iran resume from Israel and America. In July, an Argentinean plane chartered by Israel crashes in Soviet territory. It is found to have made three deliveries of American military supplies to Iran. In a 1991 story in //Esquire//, Craig Unger quotes [[Alexander Haig]] as saying "I have a sneaking suspicion that someone in the White House winked." Says Unger: "This secret and illegal sale of military equipment continued for years afterwards."\n\nJames Baker III named Reagan's chief of staff.\n\nSEC filings for Zapata Oil for 1960-66 are found to have been "inadvertently destroyed."\n\nReagan authorizes CIA assistance to Contras.\n\n*1982\nCIA director [[William Casey]] begins [[Operation Black Eagle]] to expand US role in Central America. Urges use of "selected Latin American and European governments, organizations and individuals" in the project.\n\n[[Inslaw]], a computer software company, signs a $10 million contract to install a case-tracking program in 94 US Attorney's offices. Four months later, after obtaining a copy of Inslaw's proprietary version of the program, the government cancels the contract and begins an aggressive campaign to force the company into bankruptcy. Later sources claim that the program was installed by the CIA and sold to various foreign intelligence agencies.\n\nAfter $3 million is poured into [[Arbusto]] with little oil and no profits, just tax shelter George W. Bush changes the company name to [[Bush Exploration Oil Co.]] Subsequently he is kept afloat by an investment from [[Philip Uzielli]], a Princeton friend of [[James Baker III]]. For the sum of $1 million, Uzielli bought 10% of the company at a time in 1982 when the entire enterprise was valued at less than $400,000. Subsequently, to save the company George W. Bush merges Arbusto with [[Spectrum 7]], a small oil firm owned by [[William DeWitt]] and [[Mercer Reynolds]]. DeWitt had graduated from Yale a few years earlier than Bush and was the son of the former owner of the Cincinnati Reds. Bush becomes president of Spectrum 7. He also gets 14% of the Spectrum's stock. Meanwhile, 50 original investors in Arbusto get paid off at about 20 cents on the dollar.\n\nPrescott Bush Jr.'s campaign for senator from Connecticut goes down hill after he tells a woman's club: "I'm sure there are people in Greenwich who are glad [the immigrants] are here, because they wouldn't have someone to help in the house without them."\n\n*1983\nManuel Noriega meets again with George Bush.\n\nBush presents an autographed photo to a WWII Ukrainian leader under the Nazis, whose regime killed 100,000 Jews.\n\n[[Korean Airlines 007]] crashes under circumstances that remain suspicious to this day.\n\nBush promotes [[Jennifer Fitzgerald]] from appointments secretary to executive assistant. Seven staffers resign in protest. Fitzgerald tells the New York Post: "Everyone keeps painting me as this old ogre. I really don't worry about it. All these bizarre things just simply aren't true."\n\n[[Neil Bush]] forms his first oil company. He puts in $100, his partners contribute $160,000 and Neil is named president of the firm, [[JNB Exploration]].\n\nJeb Bush's business partner, [[Alberto Duque]], goes bankrupt, is eventually convicted of fraud and is sentenced to 15 years in prison.\n\n*1984\n[[Jeb Bush]] lobbies the Department of Health & Human Services on behalf of Cuban--American businessman [[Miguel Recarey, Jr.]], whose medical firm, IMC, later collapses. Recarey, who was close to mobster [[Santos Trafficante]] and the Contras, later disappears with at least $12 million in federal funds.\n\nGeorge Bush takes part in meetings to plan increased "third country" aid to the Contras.\n\nCIA mines Nicaraguan harbors.\n\n[[Spectrum 7]] Corporation, an Ohio oil exploration outfit owned by Dubya's Yalie pal [[William DeWitt]] Jr., buys out Bush Exploration, setting up young Bush as CEO at $75,000 a year and giving him 1.1 million shares of the firm's stock. The company's fortunes soon sink, with $400,000 in losses and a debt of $3 million.\n\n*1985\nJennifer Fitzgerald is sent to work on Capitol Hill after stories arise linking her romantically with George Bush.\n\n[[Stuart Spencer]]'s public relation firm starts receiving over $350,000 from Panama to improve Noriega's image.\n\nCIA starts using [[BCCI]] as a conduit.\n\nGeorge Bush thanks [[Oliver North]] for "dedication and tireless work with the hostage thing, with Central America." Bush will later deny knowing about the Contra effort until late 1986.\n\nNeil Bush joins the board of [[Silverado S&L]], serves until 1988. Silverado loans his partners in JNB $132 million which they never repay. Silverado will eventually collapse at a taxpayer cost of $1 billion.\n\n408 TOW anti-tank missiles are shipped from Israel to Iran. A day later, US hostage [[Benjamin Weir]] is released.\n\n*1986\nVP Bush goes to Honduras to promote support for the Contras. Takes along baseball players [[Nolan Ryan]] and [[Gary Carter]].\n\nContra figure [[Felix Rodriguez]] meets with [[Donald Gregg]], Bush's national security advisor, to complain about [[Iran-Contra]] operatives skimming funds from the Contras.\n\nBush may have made several secret visits to Damascus between 1986-88 according to a 1992 report in Time, which said two senior GOP senators were pressing for a probe. The allegation is that Bush went to negotiate the release of hostages in Lebanon but in fact stonewalled Syria, "playing for campaign timing. Republicans want to get to the bottom of intelligence-community suspicions that the US somehow blew a chance to free Terry Anderson and his fellow captives."\n\nIranian arms runner [[Manucher Ghorbanifar]] proposes "diversion" of profits from Iran arms sales to Contras.\n\nGeorge W. Bush and partners receive more than $2 million of [[Harken Energy]] stock in exchange for their failing oil well operation, which had lost $400,000 in the prior six months. Bush puts up about $500,000 and gets a $120,000 annual consulting fee along with $131,250 in stock options. After Bush joined Harken, the largest stock position and a seat on its board were acquired by Harvard Management Company. Harvard agrees to buy 1.35 million shares of Harken for $2 million and invest another $20 million in Harken projects.\n\nJeb Bush is hired by Miguel Recarey Jr. to find a new headqarters for his business. Jeb is paid $75,000 but fails to come up with a building for IMC.\n\nAccording to an HHS Medicare fraud inspector later, Miguel Recarey's IMC is using Medicare funds to treat wounded Contras. IMC is receiving $30 million a month for its Medicare patients. [[Robert Teich]], a DEA official in Miami, will later say, "IMC is a classic case of embezzlement of government funds." He calls the skimming of Medicare funds a "bust out" in which money is "drained out the back door." The Wall Street Journal will report that Santos Trafficante "helped out when Recarey needed business financing."\n\nJIM YARDLEY, NY TIMES - In his earliest known tie to the [[Enron]] Corporation, President Bush, then an oil man in West Texas, joined an energy drilling venture organized in 1986 by a subsidiary of Enron. The drilling operation - which succeeded in striking oil and natural gas in Martin County - came as Mr. Bush's company, the Spectrum 7 Energy Corporation, was struggling to stay afloat during a collapse in world oil prices. The company was also in final negotiations to be taken over by a Dallas-based company, Harken Energy. Executives involved in the drilling venture characterized it as an ordinary business deal. [[Enron Oil and Gas]], then an exploration subsidiary with offices here in Midland, served as operator and majority partner. Mr. Bush's company, which had a 10 percent working interest in the deal, was one of a handful of minority investors . . . It is unclear whether Mr. Bush was involved in the deal because he controlled adjacent mineral leases or if Spectrum 7 was simply sought out as an investor. [[Bill Morrison]], who ran the Midland, TX office of [[Enron]] Oil and Gas at the time, said he recalled soliciting about 12 to 15 companies as potential investors in the project, including Spectrum 7. He said many companies, struggling for capital, declined the offer, but Spectrum 7, apparently with cash on hand, signed on for the 10 percent interest.\n\n*1987\nBush's former chief of staff, [[Daniel Murphy]], flies to Panama with South Korean influence peddler [[Tongsun Park]] on a private plane owned by arms dealer [[Sargis Soghnalian]] to meet with Noriega. Murphy later tells a Senate subcommittee that he informed Noriega that he need not resign before the 1988 election despite the Reagan administration public pressure to the contrary.\n\nWilliam Casey dies.\n\n[[Lee Atwater]] accuses [[Robert Dole]] of spreading stories about Bush and Jennifer Fitzgerald. An agreement is worked out, as reported by Sidney Blumenthal in the Washington Post: "The Dole people didn't spread any rumors and promised not to do it again. And the Bush people haven't spread rumors about the Dole people spreading rumors and won't do it again. "\n\nHarken Energy, with George W. Bush on the board, gets rescued by aid from the BCCI-connected [[Union Bank of Switzerland]] in a deal brokered by [[Jackson Stephens]], later to show up as a key supporter of [[Bill Clinton]]. The deal was also pushed along by another Clinton friend, [[David Edwards]]. Edwards will bring BCCI-linked investors into Harken deals including [[Abdullah Bakhsh]], purchases $10 million in shares of Stephens dominated [[Worthen Bank]].\n\nJan. 15: [[Dan Lasater]] begins serving a 30-month sentence for cocaine distribution. In July, he is paroled to a Little Rock halfway house.\n\n*1988\nDan Quayle is named VP candidate. [[Stuart Spencer]] is assigned to improve Dan Quayle's image, the same job he handled for Noriega and Nixon.\n\nQuayle embarrasses campaign by such statements as "[The Holocaust] was an obscene period in our nation's history," adding that "I didn't live in this century."\n\nPrisoner who claimed he sold marijuana to Quayle is put into solitary confinement by the head of federal prisons, aborting a planned news conference shortly before the election.\n\n[[Silverado S&L]] goes under after receiving 126 cease & desist orders in past four years from the Topeka office of the [[Office of Thrift Supervision]]. These orders found conflict of interests, insider abuse and other violations.\n\n[[Dwight Chapin]], ex-Nixon dirty trickster, gets job in Bush campaign.\n\n[[Rudi Slavoff]] becomes head of [[Bulgarians for Bush]]. In 1983, Slavoff organized an event honoring [[Austin App]], promoter of the theory that the Holocaust was a hoax.\n\nSlavoff joins other GOP ethnic leaders in the [[Coalition of American Nationalities]] co-chaired by [[Edward Derwinski]]. Among them is a former member of an Hungarian pro-Nazi party. After press revelations, eight of the leaders accused of anti-semitism resign from the campaign. Bush says: "Nobody's giving in... These people left of their own account."\n\nGOP flier warns that "all the murderers, rapists and drug pushers and child molesters in Massachusetts vote for [[Michael Dukakis]]."\n\nBush establishes Team 100, which will eventually grow to 249 individuals who contribute nearly $25 million in soft money to help the GOP cause. The contributions also apparently help the contributors, various of whom get ambassadorial appointments, legislative favors, and intervention on regulatory and criminal matters.\n\nBush denies knowledge of Noriega's involvement in drug dealing.\n\nThe [[Willie Horton]] ad is aired. Credit for similar tactics is given to campaign guru [[Lee Atwater]], whose PR firm had represented drug-connected Bahamian prime minister [[Oscar Pinding]] and the Philippines' [[Ferdinand Marcos]]. Atwater himself had represented [[UNITA]], the CIA-backed Africa rebel group.\n\n[[Fred Malek]], ex-Nixon aide, resigns from the Bush campaign after it's revealed that he compiled a list of Jews in the Labor Dept. as part of a Nixon investigation of a "Jewish cabal."\n\nA few days before the supposedly surprise arrest of five [[BCCI]] officials, some of the world's most powerful drug dealers quietly withdraw millions of dollars from the bank. Some government investigators believe the dealers were tipped off by sources within the Bush administration.\n\nAlthough Felix Rodriguez, former leading cop under Batista, claims he left the CIA in 1976, Rolling Stone reports that he is still going to CIA headquarters monthly to receive assignments and get his bulletproof Cadillac serviced.\n\nBankruptcy judge [[George Bason Jr.]] concludes that the government stole [[Inslaw]]'s software through "trickery, fraud and deceit."\n\nStock market drops 43 points on false rumor that Washington Post was about the publish the Bush-Fitzgerald story.\n\n[[Aziz Rehman]], a junior BCCI official in Miami, tells a Senate committee that "I saw [[Jeb Bush]] two or three times over there. . . This was all part of the bank's trying to cultivate public officials and prominent individuals." Another BCCI official will write in his diary, "Jeb Bush, VP George Bush's son, [is] a name. . .to be remembered."\n\n*1989\nBush inaugurated. Aides tell the press that the new administration would rather "stay one step behind than be one step ahead."\n\nBush authorizes CIA support to Noriega's opposition, giving Noriega an excuse to annul Panama's elections.\n\nBush claims [[Executive Privilege]] to avoid testifying in the Oliver North trial, thus becoming first president to use this power to keep his acts as vice president under wraps.\n\nDan Quayle declares changes in Soviet Union "just a public relations extravaganza."\n\nBush brother Prescott flies to Shanghai after the [[Tiananmen Square]] massacre to close a deal for an $18 million resort there, despite his brother's ban on high-level Chinese contacts. Prescott says, "We aren't a bunch of carrion birds coming in to pick the carcass. But there are big opportunities in China, and America can't afford to be shut out."\n\nPrescott Bush also visits Japan, searching for consulting contracts just ten days before his brother arrives on a presidential tour. The Japanese firm that paid Prescott a quarter-million dollar consulting fee comes under investigation for exchange law violations and links to the Japanese mob.\n\n[[C. Boyden Gray]], the president's top ethics official, corrects his 1985 and 1986 financial disclosure forms. He forgot to include $98,000 in income.\n\nGeorge Bush signs the S&L bailout bill promising that "these problems will never happen again."\n\nThe Chicago Tribune reports: "After 14 fishing outings, the President has failed to catch a single fish."\n\nAt White House behest, the DEA lures drug dealer to Lafayette Park to make arrest in front of presidential home for the benefit of Bush's upcoming drug speech. At first, drug dealer is dubious, asks DEA agent, "Where the fuck is the White House?"\n\nDefense secretary nominee [[John Tower]] runs into confirmation troubles when it is revealed that he has received hundreds of thousands of dollars in consulting fees from [[Defense Contractors]]. Runs into more trouble with revelations of womanizing and drinking. His nomination is rejected.\n\nThe sale of three communications satellites to China is announced. Prescott Bush is a $250,000 consultant in the deal.\n\nGOP memo is leaked implying that House Speaker [[Tom Foley]] is a homosexual.\n\nPresident George H. W. Bush signs a top-secret directive ordering closer ties with Iraq, which opens the way for $1 billion in new aid just a little more than a year before Bush goes to war against that country. The agricultural credit allows [[Saddam Hussein]] to use his hard currency for a massive military buildup.\n\nA second judge concurs that the government stole [[Inslaw]]'s software.\n\nThe Statistical Abstract of the United States, published by the US government, reports that the GNP of East Germany during the 1980s was greater than that of West Germany. The figures come from the CIA.\n\nBahrain officials suddenly break off offshore drilling negotiations with [[Amoco]] and decide to deal with [[Harken Energy]], George Bush Jr.'s firm. Harken has had a series of failed ventures and no cash, so the Bass brothers are brought in to finance Harken's efforts at a cost of $50 million.\n\nNeil Bush bails out of [[JNB Exploration]], the firm where he became president with a $100 ante, leaving his partners to worry about its debt. Days earlier he forms [[Apex Energy]] with a personal investment of $3000. The rest of the money -- $2.7 million -- comes from an SBA program designed to help "high risk start-up companies." Like JNB, it proves to be just that. Apex will later go belly-up with no assets.\n\nTwo months after his father's inauguration, George W. Bush announces that he and a syndicate of investors have purchased the [[Texas Rangers]]. The investors are [[Edward Rusty Rose]], [[Richard Rainwater]], [[William DeWitt]], [[Roland Betts]] (a former Yale frat brother) and [[Tom Bernstein]] (Bett's partner in a film investment concern). While Bush appears to lead the group, Rainwater makes clear that Rose is to control how the business is run. Bush's stake in the $86 million deal is 2%, financed with a $500,000 loan from a [[Midland Bank]] of which he had been a director and $106,000 from other sources. Rainwater and Rose put up 14.2 million, Betts and Bernstein invested about $6 million and the balance comes from smaller investors and loans. Bush will eventually sell his share for $15 million.\n\n*1990\nFederal regulators give Bush son Neil the mildest possible penalty in the $1 billion failure of the [[Silverado S&L]]. The deal is so good that Bush drops his appeal. Among other things, Neil, as a Silverado director, voted to approve over $100 million in loans to his business partners.\n\nJanuary: Bahrain awards exclusive offshore drilling rights to [[Harken Energy]]. This is a surprise as Harken is in very shaky financial condition, has never drilled outside of Texas, Louisiana and Oklahoma and had never drilled undersea at all. The Bass brothers are brought in by Harken for sufficient equity - $25 million - to proceed with the effort. Harvard Management increases its investment. Harken's stock price rises from $4.50 to $5.50.\n\nMay: Harken officials warn board the company is about to run out of cash.\n\nJune: Harken drills two dry holes in Bahrain. George W. Bush sells two-thirds of his Harken Energy stock at the top of the market for $850,000, a 200% profit, but makes no report to the SEC as required by law. Bush Jr. says later the SEC misplaced the report. An SEC representative responds: "nobody ever found the 'lost' filing." One week after Bush's sale, Harken reports an earnings plunge. Harken stock falls more than 60%. Bush uses most of the proceeds to pay off the bank loan he had taken a year earlier to finance his portion of the Texas Rangers deal.\n\nAugust: [[Saddam Hussein]] invades Kuwait. Harken's stock price drops substantially. Two months after Bush sells his stock, Harken posts losses for the 2nd quarter of well over $20 million and is shares fall another 24 %, by year end Harken is trading at $1.25. Bush has insisted that he did not know about the firm's mounting losses and that his stock sell-off was approved by Harken's general counsel.\n\nGeorge W. Bush is asked by [[Carlyle Group]] to serve on the board of directors of [[Caterair]], one of the nation's largest airline catering services which it had acquired in 1989. The offer is arranged by [[Fred Malek]], long time Bush associate who is then an advisor to Carlyle.\n\nOctober: Arlington, Texas Mayor [[Richard Greene]] signs a contract that guarantees $135 million toward the new Texas Ranger Stadium's estimate price of $190 million. The Rangers put up no cash but finance their share through a ticket surcharge. From the team's operating revenues, the city will earn a maximum of $5 million annually in rent, no matter how much the Rangers reap from ticket sales and television (a sum that will rise to $100 million a year). Another provision permitts the franchise to buy the stadium after the accumulated rental payments reached a mere $ 60 million. The property acquired so cheaply by the Rangers includes not just a fancy new stadium with a seating capacity of 49,000 but an additional 270 acres of newly valuable land. Legislation is passed and signed that authorizes the Arlington Sports Facilities Development Authority with power to issue bonds and exercise eminent domain over any obstinate landowners. Never before had a Texas municipal authority been given the license to seize the property of a private citizen for the benefit of other private citizens. A recalcitrant Arlington family refuses to sell a 13 acre parcel near the stadium site for half its appraised value. The jury awards more than $4 million to the family.\n\nNovember: Harken transfers $20 million in debts to Harvard partnership, eliminates another $16 million in debt by transferring assets to Harvard.\n\n[[Fred Malek]] returns to power with ambassador status to head up planning for the economic summit.\n\nS&L industry is losing money at the rate of $3 million a minute. Bailout chief estimates total cost at $325-500 billion.\n\nSome 200 young soccer players have their games canceled for security reasons because Bush wants to go fishing on the Potomac nearby. Says one seven-year-old player: "We had a tough soccer game and he's just going fishing. He could play somewhere else."\n\nJeb Bush gets the federal government to pay off the $4.5 million he owed to a failed Florida thrift. Jeb pays $500,000.\n\n[[Jonathan Bush]]'s east coast brokerage fined in two states for violating laws and Jonathan is barred from public trading in Massachusetts.\n\nBush's attorney general, [[Richard Thornberg]][, is warned about [[BCCI]] but does nothing.\n\nFederal court of appeals throws out the [[Inslaw]] case on the grounds that it did not belong in bankruptcy court.\n\nBush says, "The economy is headed in the right direction."\n\n*1991\nJanuary: President Bush attacks Iraq.\n\nFebruary: Dubya, as the official in charge at Harken, reports his stock sale to the SEC - eight months late.\n\nApril: The SEC begins an investigation into Harken dealings. Chairman [[Richard Breeden]], who was appointed by the senior Bush and served him as an economic policy adviser, hails from [[Baker & Botts]], a big Texas oil law firm where he was a partner. Inside the SEC, [[James Doty]], general counsel and the official in charge of any litigation that might come out of the Harken investigation, is another alumnus of Baker & Botts. And as a private attorney, before joining the government, Doty represented the younger Bush in matters related to Dubya's ownership of the Rangers.\n\nAugust: The SEC reports that its staff has reviewed thousands of pages of documents, interviewed witnesses and met lawyers for Harken and Mr Bush. It concludes that there is insufficient evidence to determine that Mr Bush had any inside information or advance knowledge of Harken's losses. The SEC recommends that the matter be closed.\n\nSeptember: Harvard begins selling Harken stock at more than $6 a share, receiving $7.4 million over the next 12 months.\n\nFormer top aide to White House Chief of Staff [[John Sununu]] goes to work for a prominent figure in the BCCI scandal less than a month after leaving the Bush administration. [[Edward Rogers Jr.]] signs a $600,000 contract to give legal advice to [[Sheik Kamal Adham]], an ex-Saudi intelligence officer who is being investigated for his role in BCCI's takeover of [[First American Bancshares]].\n\nThe Miami acting US Attorney is allegedly rebuffed by the Justice Department in his efforts to indict BCCI and some of its principal officers on tax fraud charges. [[DOJ]] later denies this occurred.\n\n[[Danny Casolaro]], a reporter investigating the [[Inslaw]] story, is found dead in a motel room bathtub, the day after he met a key source. The death was ruled a //suicide//, but the evidence isn't convincing.\n\nGeorge Bush spends three nights in a Houston hotel so he can claim Texas residency. Texas has no income tax.\n\nNeil Bush bails out of [[Apex Energy]] after collecting $320,000 in salary plus expenses. [[Bill Daniels]], cable-TV magnate who has been lobbying against regulation of the cable industry, offers Neil a job. According to a representative, he "thought Neil deserved a second chance."\n\n*1992\nNew York Times reports that three of Bush's top fundraisers are being sued in connection with bank failures and another pleaded guilty to mail fraud in connection with an S&L. These men include the GOP national finance chair, vice chair and two co-chairs of the President's Dinner, which raised $9 million for Republican causes.\n\nFormer US Attorney General [[Elliot Richardson]], representing the owners of [[Inslaw]], tells Mother Jones, "I don't know any case where the government has stonewalled like this."\n\nFirst of Harken Energy's wells off Bahrain comes up dry. George W. Bush takes a leave of absence from the firm to work in his father's campaign, saying "I don't want to involve this company in any kind of allegations of conflicts or whatever may arise."\n\nVillage Voice reports that President Bush has taken at least 76 partisan flights during his term, at a cost to the taxpayers of over $6 million.\n\nNixon's Jew hunter [[Fred Malek]] is back as Bush's campaign manager.\n\nCampaign sells photo opportunities with the president at a fundraiser for $92,000 each.\n\nWashington, DC, loses $52,000 in taxes because Bush claims to be a Texas resident.\n\n[[Donald H. Alexander]] contributes $100,000 to Team 100; shortly thereafter he's named ambassador to the Netherlands.\n\nBush says: "I will do what I have to do to be re-elected."\n\nJERRY URBAN, HOUSTON CHRONICLE, JUNE 4, 1992: The Financial Crimes Enforcement Network -- known as [[FINCEN]] -- and the FBI are reviewing accusations that entrepreneur [[James R. Bath]] guided money to Houston from Saudi investors who wanted to influence US policy under the Reagan and Bush administrations, sources close to the investigations say . . . The federal review stems in part from court documents obtained through litigation by [[Bill White]], a former real estate business associate of Bath . . . White became entangled in a series of lawsuits and countersuits with Bath, who for some six years has prevailed in the courts. . . . In sworn depositions, Bath said he represented four prominent Saudis as a trustee and that he would use his name on their investments. In return, he said, he would receive a 5 percent interest in their deals. Tax documents and personal financial records show that Bath personally had a 5 percent interest in Arbusto '79 Ltd., and Arbusto '80 Ltd., limited partnerships controlled by George W. Bush, President Bush's eldest son. Arbusto means 'bush' in Spanish. Bath invested $ 50,000 in the limited partnerships, according to the documents. There is no available evidence to show whether the money came from Saudi interests. George W. Bush's company, Bush Exploration Co., general partner in the limited partnerships, went through several mergers, eventually evolving into Harken Energy Corp., a suburban Dallas-based company . . . Bush said that to his knowledge, Bath's investment was from personal funds, and no Saudi money was invested in Arbusto. Bath, 55, a former U.S. Air Force pilot, declined to comment for the record. Spokesmen for FinCEN and the FBI also declined to comment. According to a 1976 trust agreement, drawn shortly after Bush was appointed director of the Central Intelligence Agency, Saudi Sheik [[Salem M. bin Laden]] appointed Bath as his business representative in Houston. Binladen, along with his brothers, owns [[Binladen Brothers Construction]], one of the largest construction companies in the Middle East. According to White, Bath told him that he had assisted the CIA in a liaison role with Saudi Arabia since 1976. Bath has previously denied having worked for the CIA . . . Bath received a 5 percent interest in the companies that own and operate [[Houston Gulf Airport]] after purchasing it on behalf of Binladen in 1977.\n\n*1993\nThe SEC ends a perfunctory investigation of Harken.\n\nWith the new Ranger stadium being readied to open the following spring, George W. Bush announces that he would be running for governor. He is says his campaign theme will be self-reliance and personal responsibility rather than dependence on government.\n\nPBS FRONTLINE: [From a French source] The Saudi authorities' decision to issue an arrest warrant for [[Osama bin Laden]] on 16 May 1993 does not threaten to affect the relationship between the bin Ladens and the royal family. Osama, one of Mohammed's youngest sons, has been known for years for his fundamentalist activities . . . King Fahd's two closest friends were: Prince [[Mohammed Ben Abdullah]] (son of Abdul Aziz' youngest brother), who died in the early '80s and whose brother, [[Khaled Ben Abdullah]] (an associate of [[Suleiman Olayan]]), still has free access to the king; and [[Salem bin Laden]], who died in 1988 . . . Like his father in 1968, Salem died in a 1988 air crash...in Texas. He was flying a BAC 1-11 which had been bought in July 1977 by Prince [[Mohammed Ben Fahd]]. The plane's flight plans had long been at the center of a number of investigations. According to one of the plane's American pilots, it had been used in October 1980 during secret Paris meetings between US and Iranian emissaries. Nothing was ever proven, but Salem bin Laden's accidental death revived some speculation that he might have been "eliminated" as an embarrassing witness. In fact, an inquiry was held to determine the exact circumstances of the accident. The conclusions were never divulged . . . There was also a political aspect to Salem bin Laden's financial activities . . . Salem bin Laden played a role in the US operations in the Middle East and Central America during the '80s. On his death in 1968, Sheik Mohammed left behind not only an industrial and financial estate but also a progeny made up of no less than 54 sons and daughters, the fruit of a number of marriages . . . Upon Sheik Salem's death, the leadership of the group passed to his eldest son, Bakr, along with thirteen other brothers who make up the board of the bin Laden group. The most important of these are Hassan, Yeslam, and Yehia. Most of these brothers have different mothers and different nationalities as well. Each has his own set of affinities, thus contributing to the group's international scope. Bakr and Yehia are seen as representatives of the "Syrian group"; Yeslam, of the "Lebanese group". There is also a "Jordanian group." Abdul Aziz, one of the youngest brothers, represents the "Egyptian group" and is also manager of the bin Laden group's Egyptian branch, which employs over 40,000 people. Osama bin Laden is, incidentally, the only brother with a Saudi mother.\n\n*1994\nGeorge W. Bush is elected Governor of Texas, defeating [[Ann Richards]] 53 to 46 %.\n\n*1999\nGeorge W. Bush celebrates the Martin Luther King holiday by staying inside the Governor's Mansion with the windows closed so he wouldn't hear the thousands of Martin Luther King celebrants listening to speeches right outside his window on the Texas capitol grounds, less than a football field away . .\n\nNEWSMAX: Soon-to-be GOP presidential nominee George W. Bush was suspended during his service in the [[Texas Air National Guard]] for failing to take a physical that included a drug test, The Sunday Times of London reports . . . "In April 1972 the Pentagon implemented a drug-abuse testing program that required officers on 'extended active duty', including reservists such as Bush, to undergo at least one random drug test every year," reported the Times. "The annual medical exam that year included a routine analysis of urine, a close examination of the nasal cavities and specific questions about drugs." . . . But in May 1972, he took a leave of absence from the Guard to work on the Senate campaign of [[Winton Blount]], a friend of George Bush Sr., then a Texas congressman. Bush Jr. applied for a transfer from Houston to Dannelly Air Force Base in Montgomery, Alabama. But, says the Times, documents show no evidence that once in Alabama, Bush ever attended the required training. Bush's commander for the period in question, Gen. [[William Turnipseed]], now retired, claims the young airman never showed up for regular drills . . . The Texas Governor has been plagued by drug questions since last summer, when he claimed to be drug free for the last 25 years . . . Still, despite a deluge of media speculation over Bush's possible past cocaine use, not a single witness has come forward to say they saw him use the drug. On the other hand, no fewer than six witnesses have claimed in published reports that President Clinton used cocaine.\n\n"Some people have too much freedom." -- George W. Bush\n\n*2000\n"Jeb's the smart one" -- George Bush Sr. to dinner partner\n\nFormer President George Bush tries to block Gen. Manuel Noriega's release from a US prison because he fears the Panamanian strongman wants to kill him. Noriega attorney [[Frank Rubino]] says the assertion was made by Assistant US Attorney [[Pat Sullivan]], who represented the government at a parole hearing for Noriega.\n\n"//Please! Don't kill me//." -- George W. Bush to Larry King, mocking what Karla Faye Tucker said when asked "What would you say to Governor Bush?" prior to her execution by lethal injection (as reported by Talk magazine, September 1999).\n\nPRATAP CHATTERJEE, SAN FRANCISCO BAY GUARDIAN: early last October, every member of a ninth grade girls track team and the freshman the football team at suburban Houston's Deer Park High School's north campus returned from practice reporting severe breathing problems. That day Deer Park registered 251 parts of ozone per billion, more than twice the federal standard, and Houston surpassed Los Angeles as the smoggiest city in the United States. One of the biggest sources of Deer Park's pollution is a plant owned by [[Enron]], Houston's wealthiest company - and the single largest contributor ($555,000 and counting) to the political ambitions of Texas Governor and Republican presidential nominee George W. Bush. [[Kenneth Lay]], the chief executive of Enron, has personally given over $100,000 to Bush's political campaigns, more than any other individual . . . Enron is best known as the largest buyer and seller of natural gas in the country. Its 1999 revenues of $40 billion make it the 18th largest company in the United States . . . Texas activists say that this tight connection between Bush and Lay bodes ill for the country, if Bush is elected. [[Andrew Wheat]], from Texans for Public Justice, a campaign finance advocacy group in Austin, compared the symbiotic relationship between Enron and the Governor to "cogeneration" - a process used by utilities to harness waste heat vented by their generators to produce more power. "In a more sinister form of cogeneration, corporations are converting economic into political power," Wheat explained.
The [[Central Intelligence Agency|http://en.wikipedia.org/wiki/Central_Intelligence_Agency]] (CIA) is an intelligence agency of the United States Government. \n*Its primary function is obtaining and analyzing information about foreign governments, corporations, and individuals, and reporting such information to the various branches of the Government. \n*A second function is overtly and covertly disseminating information, both true and false, that influences others to make decisions favorable to the United States Government. The second function is usually known as propaganda or public relations. \n*A third function of the CIA is to act as the "hidden hand" of the government by engaging in covert operations at the direction of the President. It is this last function that has caused most of the controversies regarding the CIA over the years, raising questions about the legality, morality, effectiveness, and intelligence of such operations.\n\nIts headquarters are in the community of Langley in the Mc Lean CDP of Fairfax County, Virginia, a few miles up the Potomac River from downtown Washington, D.C.. The CIA is part of the American Intelligence Community, which is now led by the Director of National Intelligence (DNI). The roles and functions of the CIA are roughly equivalent to those of the United Kingdom's MI6 and Israel's Mossad.\n\nThe CIA acts as the primary American provider of central intelligence estimates. It is believed to make use of the surveillance satellites of the National Reconnaissance Office ([[NRO]]) and the signal interception capabilities of the National Security Agency ([[NSA]]), including the [[ECHELON]] system, the surveillance aircraft of the various branches of the U.S. armed forces and the analysts of the State Department and Department of Energy. At one point, the CIA even operated its own fleet of U-2 surveillance aircraft. The agency has also operated alongside regular military forces, and also employs a group of clandestine officers with paramilitary skills in its Special Activities Division. The CIA also has strong links with other foreign intelligence agencies such as the UK's MI6, Canada's CSIS and Australia's ASIS.\n\nThe activities of the CIA have caused considerable political controversy both in the United States and in other countries, often nominally friendly to the United States, where the agency has operated (or been alleged to). Particularly during the [[Cold War]], the CIA supported a long list of dictators, including Chile's infamous [[Augusto Pinochet]], a number of dictatorships in Central America, the [[Shah of Iran]], and the despots in Saudi Arabia, Pakistan , Kuwait and Indonesia, who have been friendly to perceived U.S. geopolitical interests (namely anti-Communism, providing access to oil companies and other multi-national corporations and implementing a liberal economic system), sometimes over democratically-elected governments.\n\nOften cited as one of the American intelligence community's biggest blunders is the CIA involvement in equipping and training [[Mujahedeen]] fighters in Afghanistan in response to the Soviet invasion of the country. The Mujahedeen trained by the CIA later formed the core of [[Osama bin Laden]]'s [[al-Qaeda]] Islamist organization. [[Zbigniew Brzezinski]], the National Security Advisor under President [[Jimmy Carter]], has discussed U.S. involvement in Afghanistan in several publications.\n\nLater, the CIA facilitated the so-called [[Reagan Doctrine]], channelling weapons and other support to Jonas Savimbi's [[UNITA]] rebel movement in Angola (in addition to the Mujahedeen and the Contras) in response to Cuban military support for the [[MPLA]], thus turning an otherwise low-profile African civil war into one of the larger battlegrounds of the Cold War.\n\nThe CIA also supported [[Pol Pot]]'s rule in Cambodia when Vietnam sought to topple the regime in 1979, Pol Pot's regime was anti-Soviet and anti-Vietnam and received aid from China during the Sino-Soviet split (at this time, China had become more friendly towards the USA), thus gaining the CIA's approval.\n\n----\n\nIn June 2005, two events occurred that may shape future CIA operations.\n\nArrest warrants for 22 CIA agents were issued within the European Union (Schengen Agreement members). The agents are alleged to have taken a suspected Egyptian terrorist, [[Hassan Mustafa Osama Nasr]], from Milan on 17 February 2003 for extraordinary [[rendition]] to Egypt, where according to relatives of the cleric, he was tortured. The removal of the terrorist was not unusual except that the Italian government has denied having approved the rendition. Similar operations of this sort have occurred worldwide since [[9-11]], the vast majority with at least tacit approval by the national government. Additionally, it allegedly disrupted Italian attempts to penetrate the terrorist's [[al-Qaeda]] network. The New York Times reported soon after that it is highly unlikely that the CIA agents involved would be extradited, despite the US-Italy bilateral treaty regarding extraditions for crimes that carry a penalty of more than a year in prison. The agents involved in the operation are also reported to have booked lavish hotels during the operation and taken taxpayer-funded vacations after it was complete. \n\nSoon after, President George W. Bush appointed the CIA to be in charge of all human intelligence and manned spying operations. This was the apparent culmination of a years old turf war regarding influence, philosophy and budget between the Defense Intelligence Agency of The Pentagon and the Central Intelligence Agency. The Pentagon, through the [[DIA]], wanted to take control of the CIA's paramilitary operations and many of its human assets. The CIA, which has for years held that human intelligence is the core of the agency, successfully argued that the CIA's decades long experience with human resources and civilian oversight made it the ideal choice. Thus, the CIA was given charge of all US human intelligence, but as a compromise, the Pentagon was authorized to include increased paramilitary capabilities in future budget requests.\n\nDespite reforms which have led back to what the CIA considers its traditional principal capacities, the CIA Director position has lost influence in the White House. For years, the Director of the CIA met regularly with the President to issue daily reports on ongoing operations. After the creation of the post of the National Intelligence Director, currently occupied by [[John Negroponte]], that practice has been discontinued in favor of the National Intelligence Director, with oversight of all intelligence, including DIA operations outside of CIA jurisdiction, giving the report. \n\nOn December 6, 2005, German [[Khalid El-Masri]] filed a lawsuit against former CIA Director [[George Tenet]], claiming that he was transported from Macedonia to a prison in Afghanistan and held captive there by the CIA for 5 months on a case of mistaken identity. Two months after his true identity had been found out, he had been taken to Albania and released without funds or an official excuse.\n\n!Criticism for ineffectiveness\n\nThe agency has also been criticized for ineffectiveness as an intelligence gathering agency. These criticisms included allowing a double agent, [[Aldrich Ames]], to gain high position within the organization, and for focusing on finding informants with information of dubious value rather than on processing the vast amount of open source intelligence. In addition, the CIA has come under particular criticism for failing to predict the collapse of the Soviet Union and India's nuclear tests or to forestall the [[9-11]], 2001 attacks.\n\nProponents of the CIA respond by stating that only the failures become known to the public, whereas the successes usually cannot be known until decades have passed because release of successful operations would reveal operational methods to foreign intelligence, which could affect future and ongoing missions. \n\n!Drug trafficking\n\n''CIA and Contras''\n\nAllegations have repeatedly been made that the CIA has been involved in drug trafficking to fund illegal operations. For example, In 1996, journalist [[Gary Webb]] wrote a series of exposes for the San Jose Mercury News, entitled "Dark Alliance", in which he alleged the use of CIA aircraft, which had ferried arms to the Contras, to ship cocaine to the United States during the return flights.\n\nWebb also alleged that Central American narcotics traffickers could import cocaine to U.S. cities in the 1980s without the interference of normal law enforcement agencies. He claimed that this led, in part, to the crack cocaine epidemic, especially in poor neighborhoods of Los Angeles, and that the CIA intervened to prevent the prosecution of drug dealers who were helping to fund the Contras. Faced with Congressional and other media criticism (especially the Los Angeles Times), the San Jose Mercury News retracted Webb's conclusions and Webb was prevented from conducting any more investigative reporting. Webb was transferred to cover non-controversial suburban stories, and he resigned.\n\nAfter the Gary Webb report in the Mercury News, the CIA Inspector General [[Frederick Hitz]] was assigned to investigate these allegations. In 1998 the new CIA director, [[George Tenet]] declared that he was releasing the report. \n\nThe report and Hitz testimony showed there the "CIA did not 'expeditiously' cut off relations with alleged drug traffickers" and "the CIA was aware of allegations that 'dozens of people and a number of companies connected in some fashion to the contra program' were involved in drug trafficking".\n\nHitz also said that under an agreement in 1982 between [[Ronald Reagan]]'s Attorney General [[William French Smith]] and the CIA, agency officers were not required to report allegations of drug trafficking involving non-employees, which was defined as meaning paid and non-paid "assets [meaning agents], pilots who ferried supplies to the contras, as well as contra officials and others. \n\nThis agreement, which had not previously been revealed, came at a time when there were allegations that the CIA was using drug dealers in its controversial covert operation to bring down the leftist [[Sandinista]] government in Nicaragua. Only after Congressional funds were restored in 1986 was the agreement modified to require the CIA to stop paying agents whom it believed were involved in the drug trade.\n\n''Kerry Committee report''\n\nLink: [[Kerry Committee report|http://en.wikipedia.org/wiki/Kerry_Committee_report]]\n\nIn 1998 Representative Maxine Waters testified to Congress:\n<<<\nSenator Kerry and his Senate investigation found drug traffickers had used the Contra war and tie to the Contra leadership to help this deadly trade. Among their devastating findings, the Kerry committee investigators found that major drug lords used the Contra supply networks and the traffickers provided support for Contras in return. The CIA of course, created, trained, supported, and directed the Contras and were involved in every level of their war.\n<<<\n[[The Kerry Committee report|http://www.pinknoiz.com/covert/contracoke.html]] found that the U.S. State Department had paid drug traffickers. Some of these payments were after the traffickers had been indicted by federal law enforcement agencies on drug charges or while traffickers were under active investigation by these same agencies. The report declared, "It is clear that individuals who provided support for the Contras were involved in drug trafficking...and elements of the Contras themselves knowingly received financial and material assistance from drug traffickers." \n[edit]\n\n''Drugs in Asia''\n\nIt has also been alleged that the CIA was involved in the opium/heroin trade in Asia, which was the focus of Alfred W. McCoy's book, The Politics of Heroin: CIA Complicity in the Global Drug Trade, an earlier edition of which had already been subjected to an attempted CIA suppression. The CIA's operation, [[Air America]], has also been accused of transporting drugs.\n\n''Mafia connections''\n\nFurther information: [[Plausible denial]], [[Operation Mongoose]], [[Cuba Project]]\n\nThe United States government has conspired with organized crime figures to assassinate foreign heads of state. In August 1960, Colonel [[Sheffield Edwards]], director of the CIA's Office of Security, proposed the assassination of Cuban head of state [[Fidel Castro]] by mafia assassins. Between August 1960, and April 1961, the CIA with the help of the Mafia pursued a series of plots to poison or shoot Castro.\n\n''Assassinations''\n\nFurther information: [[Church Committee]]\n\nThe CIA has been linked to several assassination attempts on foreign leaders, including former leader of Panama [[Omar Torrijos]] and the President of Cuba, Fidel Castro.\n\nOn January 13, 2006, the CIA launched an airstrike on Damadola, a Pakistani village near the Afghan border, where they believed [[Ayman al-Zawahiri]] was located. The airstrike killed a number of civilians but al-Zawahiri apparently was not among them. The Pakistani government issued a strong protest against the US attack, considered a violation of Pakistan's sovereignty. However, several legal experts argue that this cannot be considered an assassination attempt as al-Zawahiri is named as terrorist and an enemy combatant by the United States, and therefore this targeted killing is not covered under [[Executive Order 12333]], which banned assassinations.\n\n!Torture\n''Declassified CIA manuals''\n\n1984\n\nFurther information: [[Psychological Operations in Guerrilla Warfare|http://en.wikipedia.org/wiki/Psychological_Operations_in_Guerrilla_Warfare]]\n\nIn 1984, a CIA manual for training the Nicaraguan contras in psychological operations was discovered, entitled "Psychological Operations in Guerrilla War".\n\nThe manual recommended โ€œselective use of violence for propagandistic effectsโ€ and to โ€œneutralizeโ€ (i.e., kill) government officials. Nicaraguan Contras were taught:\n*... to lead demonstrators into clashes with the authorities, to provoke riots or shootings, which lead to the killing of one or more persons, who will be seen as the martyrs; this situation should be taken advantage of immediately against the Government to create even bigger conflicts. \n*...selective use of armed force for PSYOP [psychological operations] effect.... Carefully selected, planned targets โ€” judges, police officials, tax collectors, etc. โ€” may be removed for PSYOP effect in a UWOA [unconventional warfare operations area], but extensive precautions must insure that the people โ€œconcurโ€ in such an act by thorough explanatory canvassing among the affected populace before and after conduct of the mission.\n \nOn January 24, 1997, two new manuals were declassified in response to a FOIA request filed by the Baltimore Sun in 1994. The first manual, "[[KUBARK]] Counterintelligence Interrogation," dated July 1963, is the source of much of the material in the second manual. The second manual, "Human Resource Exploitation Training Manual - 1983," was used in at least seven U.S. training courses conducted in Latin American countries, including Honduras, between 1982 and 1987.\n\nBoth manuals deal exclusively with interrogation.\n\nBoth manuals have an entire chapter devoted to "coercive techniques." These manuals recommend arresting suspects early in the morning by surprise, blindfolding them, and stripping them naked. Suspects should be held incommunicado and should be deprived of any kind of normal routine in eating and sleeping. Interrogation rooms should be windowless, soundproof, dark and without toilets.\n\nThe manuals advise that coercive techniques can backfire and that the threat of pain is often more effective than pain itself. The manuals describe coercive techniques to be used "to induce psychological regression in the subject by bringing a superior outside force to bear on his will to resist." These techniques include prolonged constraint, prolonged exertion, extremes of heat, cold, or moisture, deprivation of food or sleep, disrupting routines, solitary confinement, threats of pain, deprivation of sensory stimuli, hypnosis, and use of drugs or placebos. And, yes, waterboarding.
/***\n''Name:'' Calendar plugin\n''Version:'' 0.5\n''Author:'' SteveRumsby\n\n''Syntax:'' \n{{{<<calendar>>}}} or {{{<<calendar year>>}}} or {{{<<calendar year month>>}}} or {{{<<calendar thismonth>>}}}\n\n''Description:'' \nThe first form produces an full-year calendar for the current year. The second produces a full-year calendar for the given year. The third produces a single month calendar for the given month and year. The fourth form produces a single month calendar for the current month.\nWeekends and holidays are highlighted (see below for how to specify holdays).\n\n''Configuration:''\nModify this section to change the text displayed for the month and day names, to a different language for example. You can also change the format of the tiddler names linked to from each date, and the colours used.\n\n''Changes by ELS 2005.10.30:''\nconfig.macros.calendar.handler()\n^^use "tbody" element for IE compatibility^^\n^^IE returns 2005 for current year, FF returns 105... fix year adjustment accordingly^^\ncreateCalendarDays()\n^^use showDate() function (if defined) to render autostyled date with linked popup^^\ncalendar stylesheet definition\n^^use .calendar class-specific selectors, add text centering and margin settings^^\n***/\n//{{{\nconfig.macros.calendar = {};\n\nconfig.macros.calendar.monthnames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];\nconfig.macros.calendar.daynames = ["M", "T", "W", "T", "F", "S", "S"];\nconfig.macros.calendar.firstday = 6; \nconfig.macros.calendar.firstweekend = 5;\n\nconfig.macros.calendar.weekendbg = "#eeeebb";\nconfig.macros.calendar.monthbg = "#889988";\nconfig.macros.calendar.holidaybg = "#ffc0c0";\n//}}}\n/***\n!Code section:\n***/\n// (you should not need to alter anything below here)//\n//{{{\nconfig.macros.calendar.tiddlerformat = "0DD/0MM/YYYY"; // This used to be changeable - for now, it isn't// <<smiley :-(>> \n\nversion.extensions.calendar = { major: 0, minor: 5, revision: 0, date: new Date(2006, 0, 11)};\nconfig.macros.calendar.monthdays = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nconfig.macros.calendar.holidays = [ ]; // Not sure this is required anymore - use reminders instead\n//}}}\n\n// //Is the given date a holiday?\n//{{{\nfunction calendarIsHoliday(date)\n{\n var longHoliday = date.formatString("0DD/0MM/YYYY");\n var shortHoliday = date.formatString("0DD/0MM");\n\n for(var i = 0; i < config.macros.calendar.holidays.length; i++) {\n if(config.macros.calendar.holidays[i] == longHoliday || config.macros.calendar.holidays[i] == shortHoliday) {\n return true;\n }\n }\n return false;\n}\n//}}}\n\n// //The main entry point - the macro handler.\n// //Decide what sort of calendar we are creating (month or year, and which month or year)\n// // Create the main calendar container and pass that to sub-ordinate functions to create the structure.\n// ELS 2005.10.30: added creation and use of "tbody" for IE compatibility and fixup for year >1900//\n// ELS 2005.10.30: fix year calculation for IE's getYear() function (which returns '2005' instead of '105')//\n//{{{\nconfig.macros.calendar.handler = function(place,macroName,params)\n{\n var calendar = createTiddlyElement(place, "table", null, "calendar", null);\n var tbody = createTiddlyElement(calendar, "tbody", null, null, null);\n var today = new Date();\n var year = today.getYear();\n if (year<1900) year+=1900;\n if (params[0] == "thismonth")\n createCalendarOneMonth(tbody, year, today.getMonth());\n else if (params[0] == "lastmonth") {\n var month = today.getMonth()-1; if (month==-1) { month=11; year--; }\n createCalendarOneMonth(tbody, year, month);\n }\n else if (params[0] == "nextmonth") {\n var month = today.getMonth()+1; if (month>11) { month=0; year++; }\n createCalendarOneMonth(tbody, year, month);\n }\n else {\n if (params[0]) year = params[0];\n if(params[1])\n createCalendarOneMonth(tbody, year, params[1]-1);\n else\n createCalendarYear(tbody, year);\n }\n}\n//}}}\n\n//{{{\nfunction createCalendarOneMonth(calendar, year, mon)\n{\n var row = createTiddlyElement(calendar, "tr", null, "calenderMonthTitle", null);\n createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon] + " " + year, true, year, mon);\n row = createTiddlyElement(calendar, "tr", null, "calendarDaysOfWeek", null);\n createCalendarDayHeader(row, 1);\n createCalendarDayRowsSingle(calendar, year, mon);\n}\n//}}}\n\n//{{{\nfunction createCalendarMonth(calendar, year, mon)\n{\n var row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon] + " " + year, false, year, mon);\n row = createTiddlyElement(calendar, "tr", null, null, null);\n createCalendarDayHeader(row, 1);\n createCalendarDayRowsSingle(calendar, year, mon);\n}\n//}}}\n\n//{{{\nfunction createCalendarYear(calendar, year)\n{\n var row;\n row = createTiddlyElement(calendar, "tr", null, null, null);\n var back = createTiddlyElement(row, "td", null, null, null);\n var backHandler = function() {\n removeChildren(calendar);\n createCalendarYear(calendar, year-1);\n };\n createTiddlyButton(back, "<", "Back", backHandler);\n back.align = "center";\n\n var yearHeader = createTiddlyElement(row, "td", null, "calendarYear", year);\n yearHeader.align = "center";\n yearHeader.setAttribute("colSpan", 19);\n\n var fwd = createTiddlyElement(row, "td", null, null, null);\n var fwdHandler = function() {\n removeChildren(calendar);\n createCalendarYear(calendar, year+1);\n };\n createTiddlyButton(fwd, ">", "Fwd", fwdHandler);\n fwd.align = "center";\n\n createCalendarMonthRow(calendar, year, 0);\n createCalendarMonthRow(calendar, year, 3);\n createCalendarMonthRow(calendar, year, 6);\n createCalendarMonthRow(calendar, year, 9);\n}\n//}}}\n\n//{{{\nfunction createCalendarMonthRow(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon], false, year, mon);\n createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+1], false, year, mon);\n createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+2], false, year, mon);\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDayHeader(row, 3);\n createCalendarDayRows(cal, year, mon);\n}\n//}}}\n\n//{{{\nfunction createCalendarMonthHeader(cal, row, name, nav, year, mon)\n{\n var month;\n if(nav) {\n var back = createTiddlyElement(row, "td", null, null, null);\n var backHandler = function() {\n var newyear = year;\n var newmon = mon-1;\n if(newmon == -1) { newmon = 11; newyear = newyear-1;}\n removeChildren(cal);\n createCalendarOneMonth(cal, newyear, newmon);\n };\n createTiddlyButton(back, "<", "Back", backHandler);\n back.align = "center";\n back.style.background = config.macros.calendar.monthbg; \n month = createTiddlyElement(row, "td", null, "calendarMonthname", name)\n month.setAttribute("colSpan", 5);\n var fwd = createTiddlyElement(row, "td", null, null, null);\n var fwdHandler = function() {\n var newyear = year;\n var newmon = mon+1;\n if(newmon == 12) { newmon = 0; newyear = newyear+1;}\n removeChildren(cal);\n createCalendarOneMonth(cal, newyear, newmon);\n };\n createTiddlyButton(fwd, ">", "Fwd", fwdHandler);\n fwd.align = "center";\n fwd.style.background = config.macros.calendar.monthbg; \n } else {\n month = createTiddlyElement(row, "td", null, "calendarMonthname", name)\n month.setAttribute("colSpan", 7);\n }\n month.align = "center";\n month.style.background = config.macros.calendar.monthbg;\n}\n//}}}\n\n//{{{\nfunction createCalendarDayHeader(row, num)\n{\n var cell;\n for(var i = 0; i < num; i++) {\n for(var j = 0; j < 7; j++) {\n var d = j + config.macros.calendar.firstday;\n if(d > 6) d = d - 7;\n cell = createTiddlyElement(row, "td", null, null, config.macros.calendar.daynames[d]);\n\n if(d == config.macros.calendar.firstweekend || d == config.macros.calendar.firstweekend+1)\n cell.className = "calendarWeekend";\n }\n }\n}\n//}}}\n\n//{{{\nfunction createCalendarDays(row, col, first, max, year, mon)\n{\n var i;\n for(i = 0; i < col; i++) {\n createTiddlyElement(row, "td", null, null, null);\n }\n var day = first;\n for(i = col; i < 7; i++) {\n var d = i + config.macros.calendar.firstday;\n if(d > 6) d = d - 7;\n var daycell = createTiddlyElement(row, "td", null, null, null);\n var isaWeekend = ((d == config.macros.calendar.firstweekend || d == (config.macros.calendar.firstweekend+1))? true:false);\n\n if(day > 0 && day <= max) {\n var celldate = new Date(year, mon, day);\n // ELS 2005.10.30: use <<date>> macro's showDate() function to create popup\n if (window.showDate) {\n showDate(daycell,celldate,"popup","DD","DD-MMM-YYYY",true, isaWeekend); \n } else {\n if(isaWeekend) daycell.style.background = config.macros.calendar.weekendbg;\n var title = celldate.formatString(config.macros.calendar.tiddlerformat);\n if(calendarIsHoliday(celldate)) {\n daycell.style.background = config.macros.calendar.holidaybg;\n }\n if(window.findTiddlersWithReminders == null) {\n var link = createTiddlyLink(daycell, title, false);\n link.appendChild(document.createTextNode(day));\n } else {\n var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);\n }\n }\n }\n day++;\n }\n}\n//}}}\n\n// //We've clicked on a day in a calendar - create a suitable pop-up of options.\n// //The pop-up should contain:\n// // * a link to create a new entry for that date\n// // * a link to create a new reminder for that date\n// // * an <hr>\n// // * the list of reminders for that date\n//{{{\nfunction onClickCalendarDate(e)\n{\n var button = this;\n var date = button.getAttribute("title");\n var dat = new Date(date.substr(6,4), date.substr(3,2)-1, date.substr(0, 2));\n\n date = dat.formatString(config.macros.calendar.tiddlerformat);\n var popup = createTiddlerPopup(this);\n popup.appendChild(document.createTextNode(date));\n var newReminder = function() {\n var t = store.getTiddlers(date);\n displayTiddler(null, date, 2, null, null, false, false);\n if(t) {\n document.getElementById("editorBody" + date).value += "\sn<<reminder day:" + dat.getDate() +\n " month:" + (dat.getMonth()+1) +\n " year:" + (dat.getYear()+1900) + " title: >>";\n } else {\n document.getElementById("editorBody" + date).value = "<<reminder day:" + dat.getDate() +\n " month:" + (dat.getMonth()+1) +\n " year:" + (dat.getYear()+1900) + " title: >>";\n }\n };\n var link = createTiddlyButton(popup, "New reminder", null, newReminder); \n popup.appendChild(document.createElement("hr"));\n\n var t = findTiddlersWithReminders(dat, 0, null, null);\n for(var i = 0; i < t.length; i++) {\n link = createTiddlyLink(popup, t[i].tiddler, false);\n link.appendChild(document.createTextNode(t[i].tiddler));\n }\n}\n//}}}\n\n//{{{\nfunction calendarMaxDays(year, mon)\n{\n var max = config.macros.calendar.monthdays[mon];\n if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) {\n max++;\n }\n return max;\n}\n//}}}\n\n//{{{\nfunction createCalendarDayRows(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n\n var first1 = (new Date(year, mon, 1)).getDay() -1 - config.macros.calendar.firstday;\n if(first1 < 0) first1 = first1 + 7;\n var day1 = -first1 + 1;\n var first2 = (new Date(year, mon+1, 1)).getDay() -1 - config.macros.calendar.firstday;\n if(first2 < 0) first2 = first2 + 7;\n var day2 = -first2 + 1;\n var first3 = (new Date(year, mon+2, 1)).getDay() -1 - config.macros.calendar.firstday;\n if(first3 < 0) first3 = first3 + 7;\n var day3 = -first3 + 1;\n\n var max1 = calendarMaxDays(year, mon);\n var max2 = calendarMaxDays(year, mon+1);\n var max3 = calendarMaxDays(year, mon+2);\n\n while(day1 <= max1 || day2 <= max2 || day3 <= max3) {\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;\n createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;\n createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;\n }\n}\n//}}}\n\n//{{{\nfunction createCalendarDayRowsSingle(cal, year, mon)\n{\n var row = createTiddlyElement(cal, "tr", null, null, null);\n\n var first1 = (new Date(year, mon, 1)).getDay() -1 - config.macros.calendar.firstday;\n if(first1 < 0) first1 = first1+ 7;\n var day1 = -first1 + 1;\n var max1 = calendarMaxDays(year, mon);\n\n while(day1 <= max1) {\n row = createTiddlyElement(cal, "tr", null, null, null);\n createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;\n }\n}\n//}}}\n\n// //ELS 2005.10.30: added styles\n//{{{\nsetStylesheet(".calendar, .calendar table, .calendar th, .calendar tr, .calendar td { font-size:10pt; text-align:center; } .calendar { margin:0px !important; }", "calendarStyles");\n//}}}\n
[[The Carlyle Group|http://en.wikipedia.org/wiki/The_Carlyle_Group]] has become a powerhouse in affecting the direction in which our foreign policy takes, especially in regard to war. They accomplish this by hiring former government officials, then investing in private companies that are subject to government change (i.e. the military and telecommunications). \n\nWho, you may ask, do they employ to secure their government contracts? Well, check-out this list for starters:\n\n*[[Frank Carlucci]]\n - Department of Health, Education and Welfare - 1970's \n - Deputy Director, CIA - 1978-81 \n - Deputy Secretary of Defense - 1981-82 \n - National Security Director - 1987-89 \n*[[George H. W. Bush]]\n - CIA Director - 1976-77 \n - Vice President of the United States - 1981-89 \n - President of the United States - 1989-93 \n*[[James Baker III]]\n - Chief of Staff - 1981-85 \n - Secretary of the Treasury - 1985-89 \n - Secretary of State - 1989-93 \n*[[Dick Darman]] \n- Former White House Budget Chief William Kennard - Former Head, FCC \n*[[Arthur Levitt]]\n - Former Head, SEC \n*[[John Major]] \n- Former Prime Minister, Britain \n*[[Fidel Ramos]]\n - Former Philippine President \n*[[Afsaneh Beschloss]]\n - Treasurer & Chief Investment Officer of the World Bank \n*[[Anand Panyarachum]]\n - Former President, Thailand Karl \n*[[Otto Pohl]]\n - Former President, Bundesbank Louis Vuitton\n - French Aerobus Company \n*[[Park Tae Joon]]\n - Former South Korean Prime Minister \n*[[Alwaleed Sin Talal bin Abdulaziz Alsaud]]\n - Saudi Arabian Prince \n*[[George Soros]]\n - New World Order/Bilderberg luminary & int'l financier \n*[[Fred Malek]]\n - George Bush Sr's campaign manager \n\nCarlyle also employs the former chairman of BMW and Nestle, is interviewing former Clinton cabinet members (to insure that they have both sides of the aisle covered), plus once hired [[Colin Powell]][ and AOL Time-Warner Chairman [[Steve Case]] to speak at a meeting at Washington D.C.'s Monarch House. . . The Washington Business Journal simply says, "The Carlyle Group seems to play be a different set of rules."
''Angel of Death Gives Deposition to Justice Department in Inslaw Case''\nby J. Orlin Grabbe\n\nOn April 2, 1996, [[Charles S. Hayes]] -- retired [[CIA]] operative, Air Force Colonel, and Kentucky salvage dealer -- was deposed by the U.S. Department of Justice with respect to the [[Inslaw]] case [1]. The attorney for the Department of Justice, [[Beth Cook]], seemed ill-prepared for what turned out to be a brutal assault on the integrity of the Justice Department itself, which Hayes accused of lying, cheating, and stealing.\n\nHayes has recently acquired the Internet label of AOD ("Angel of Death" or "Angel of Doom") due to his efforts in encouraging the early retirement of corrupt politicians. "Do you know the [[Angel of Death]]?" Cook asked at one point. "I know him well," Hayes replied.\n\nHayes has previously testified with respect to the Inslaw case, most notably before a Chicago grand jury in August 1992. Hayes' extensive testimony in that case was redacted under the [[National Security Act]]. The reasons for the redaction are not known, but apparently the grand jury's questions led far afield from the principal topic of the Justice Department's apparently illegal sales of Inslaw's [[PROMIS]] software, and got into topics related to a tangled web of freelance arms dealers, drug runners, assassins, and government miscreants -- whose murky and disparate interrelationships Hayes dubbed "[[The Octopus]]"--a term adopted and popularized by freelance journalist [[Danny Casolaro]] [2], who used Hayes as a frequent source of information. Hayes is said to have testified to detailed criminal violations of U.S. law by employees of the [[DOJ]] and other government agencies.\n\nAlthough Hayes will not discuss his grand jury testimony, other sources say that with respect to the Inslaw case, he testified to a meeting at which he was present in Brazil in the course of which [[Earl Brian]] called Attorney General [[Edwin Meese]] (then in the United States) to get approval for the sale of PROMIS to the Brazilian government. Hayes is said to have backed up this assertion with an affidavit of Brazilian President [[Joao Figueiredo]].\n\nEarl Brian, who is said to have marketed the PROMIS software to intelligence agencies around the world, is currently under indictment in California. The indictment concerns tens of millions of dollars of fraudulent lease transactions made while Earl Brian was Chairman of the Board and Chief Executive Officer of three separate companies: [[Infotechology]], [[Financial News Network]] ([[FNN]]), and [[United Press International]] ([[UPI]]).\n\nEarly in the April 2, 1996, deposition, Justice Dept. attorney Beth Cook enjoined Hayes not to discuss his grand jury testimony. Subsequently, however, she began to question him about it. "Are you trying to entrap me?" Hayes asked.\n\nIn the five-hour deposition, Hayes declared he was not present to help Inslaw, nor to help any government agency which was pirating software. "I'm here to help the people of the United States, whom I hold in esteem second only to my God" he said, and admonished Cook for what he called her lack of preparation, laziness, and wasting of taxpayers' money. He asked her if there was "some medical reason related to the time of month" for her "arrogance" and "obstinance".\n\nHayes asked to be reimbursed for expenses related to the Justice Department subpoena. "We don't pay for subpoenas," Cook said, although in fact Federal law requires that expenses incurred in response to Federal subpoenas be reimbursed.\n\nHayes pointed out that U.S. attorney [[Allen Lear]] had threatened to bring the [[FBI]] down on him on January 18, 1996. "I don't think that's legal," Hayes said. Anyway, "the FBI is not a chartered organization."\n\n(A check with the Library of Congress shows that, in fact, the FBI is not chartered. As such, laws related to, and convictions based on, "lying to the FBI" are apparently not valid, for no such chartered organization exists. The correctness of this argument, based on lack of charter, has been upheld in court cases involving the FBI in Massachusetts and Vermont. In addition, since the FBI, as a subdivision of the Department of Justice, is larger than the [[DOJ]] itself, Federal law bars FBI employees from receiving benefits. FBI agents who currently receive benefits are thus apparently in violation of Federal law, and could properly be required to return the money.)\n\nHayes accused the DOJ of theft, saying they owed him money stemming from the largest gem seizure in U.S. history. (This appeared to be in reference to Indictment No. 86-44, [[US v. Antonio Carlos]] A Calvares, Mauricio Alcides Kruger, Mark Edward Lewis, Empresa Brasileira de Mineracao Imp e Exp. Ltda., filed Dec. 3, 1986, in the U.S. District Court for the Eastern District of Kentucky. Charles Hayes personally delivered gems with an appraised value of $1.3 million. Customs Form 4655, Receipt for Seized Goods, dated July 25, 1985, for goods delivered by Charles Hayes is signed by Paul E. Carpenter. A similar receipt on July 28 is signed by George F. Fritz, Special Agent, witnessed by John D. Morton, RAC. The total seizure in the case involved more than $10 million in property. Under 18 USC 371, 542, 545, Hayes says, he is entitled to //mordi// -- this being typically 25 percent of the total seizure, but a minimum of 10 percent.)\n\nMore relevant to the Inslaw case, is the fact that in August 1990, Charles Hayes purchased used Justice Department computers and peripheral equipment (Lot 097 from the U.S. attorney's office in Lexington, Kentucky) for salvage for $45, and found on them copies of the pirated PROMIS software, as well as sealed grand jury indictments, and the names of Justice Dept. informants. The General Accounting Office ([[GAO]]) found the Justice Department's sale of computers from which it had not erased sensitive information alarming, noting, "The error may have put some informants, witness and undercover agents in a 'life-and-death' situation."\n\nThe Justice Department, having sold Hayes the equipment, subsequently seized it under warrant -- apparently to prevent its being used as evidence in the Inslaw case. But Hayes subsequently sued and got the equipment back, plus an undetermined settlement amount. (This case is discussed, albeit somewhat incompletely and inaccurately, in David Burnham, //Above the Law: Secret Deals, Political Fixes, and Other Misadventures of the U.S. Department of Justice//, Scribner, New York, 1996).\n\nIn the April 2, 1996, deposition, Justice attorney Beth Cook seemed unaware that the Justice Department was under Congressional order from the Brookes Committee on the Judiciary (see [1]) to cease the sale of pirated software, not to mention hard drives containing confidential information. Similar restrictions have been placed on the [[IRS]] which, from its Martinsburg, West Virginia, central record depository, sold some 40,000 pounds of used computer disks containing the tax records of thousands of U.S. citizens -- records of considerable interest to credit bureaus, organized crime, and foreign intelligence organizations.\n\nWhen asked how he felt just prior to the deposition, Hayes said, "Great, Kentucky's No. 1," referring to the previous night's championship win over Syracuse by the University of Kentucky basketball team.\n\nAbout the only thing that Hayes didn't accuse the DOJ of in his April 2 deposition was murder. Others are not so kind. In its [[Addendum to INSLAW's ANALYSIS and REBUTTAL of the BUA REPORT]], dated February 14, 1994, Inslaw notes with respect to the Justice Department's Office of Special Investigations ([[OSI]]): "OSI's publicly- declared mission is to locate and deport Nazi war criminals. The Nazi war criminal program is, however, a front for the Justice Department's own covert intelligence service, according to disclosures recently made to INSLAW by several senior Justice Department career officials . . . According to written statements of which INSLAW has obtained copies, another undeclared mission of the Justice Department's covert agents was to insure that investigative journalist [[Danny Casolaro]] remained silent about the role of the Justice Department in the INSLAW scandal by murdering him in West Virginia in August 1991.\n\nIs the U.S. Department of Justice just another tentacle of [[The Octopus]]? If so, then what is the meaning of the phrase "with liberty and justice for all"?\n\nFootnotes\n\n[1] The Inslaw case was the subject of a Congressional report: The Inslaw Affair: Investigative Report by the Committee on the Judiciary, Jack Brookes, Chairman, [[House Report 102-856|http://www.eff.org/legal/cases/INSLAW/inslaw_hr.report]], U.S. Government Printing Office, Washington, 1992.\n\nSee also:\n\nMahar, Maggie, "Beneath Contemp: Did the Justice Dept. Deliberately Bankrupt INSLAW," Barron's National Business and Financial Weekly, March 21, 1988.\n\nMahar, Maggie, "Rogue Justice: Who and What Were Behind the Vendette Against INSLAW?", Barron's National Business and Financial Weekly, April 4, 1988.\n\nMartin, Harry V., "Federal Corruption: Inslaw", The Napa Sentinel, a series of articles with various titles beginning March 15, 1991 and extending through March 19, 1993.\n\nFricker, Richard L., "The Inslaw Octopus," Wired, #4, 1993.\n\nBua, Nicolas J., Report of Special Counsel Nicholas J. Bua to the Attorney General of the United States Responding to the Allegations of INSLAW, Inc., March 1993\n\nInslaw, Inc., INSLAW's ANALYSIS and REBUTTAL of the BUA REPORT, July 1993.\n\nInslaw, Inc., Addendum to INSLAW's ANALYSIS and REBUTTAL of the BUA REPORT, February 14, 1994\n\n[2] In addition to the sources mentioned in footnote [1], the death of Danny Casolaro is explored in: Connolly, John, "[[Dead Right|23 September 2006]]," Spy Magazine, January 1993.
@@background:#996600;#996600@@ - brown\n@@background:#666600;#666600@@ - green\n@@background:#ccff66;#ccff66@@ - neon green\n@@background:#eeeebb;#eeeebb@@ - cream\n@@background:#8cf;#88ccff@@ - background blue\n@@background:#18f;#1188ff@@ - top blue\n@@background:#04b;#0044bb@@ - mid blue\n@@background:#014;#001144@@ - bottom blue\n@@background:#ffc;#ffffcc@@ - bright yellow\n@@background:#fe8;#ffee88@@ - highlight yellow\n@@background:#db4;#ddbb44@@ - background yellow\n@@background:#841;#884411@@ - brown border\n@@background:#703;#770033@@ - title red\n@@background:#866;#886666@@ - subtitle grey\n@@background:#fff;#ffffff@@ - body background white\n@@background:#f7fff7;#f7fff7@@ - tiddler background green\n@@background:#31ad49;#31ad49@@ - tiddler title green\n@@background:#cdc;#ccddcc@@ - (left) main menu green\n@@background:#9a9;#99aa99@@ - (right) sidebar options green\n@@background:#676;#667766@@ - hover / unselected tab green\n@@background:#898;#889988@@ - border grey\n@@background:#bde;#bbddee@@ - messagebox blue\n@@background:#178;#117788@@ - body background dk teal\n@@background:#39a;#3399aa@@ - navbar medium teal\n\n!RGB hexadecimal 216-color "Web safe" palette\nSource: Paul Petterson, revised by Eric Shulman\n{{menubox{\n|bgcolor(#FFF):FFF |bgcolor(#CCC):CCC |bgcolor(#999):999 |bgcolor(#666):@@color(white):666@@ |bgcolor(#333):@@color(white):333@@ |bgcolor(#000):@@color(white):000@@ |bgcolor(#FC0):~FC0 |bgcolor(#F90):F90 |bgcolor(#F60):@@color(white):F60@@ |bgcolor(#F30):@@color(white):F30@@ |>|>|>|>|>| |\n|bgcolor(#9C0):9C0 |>|>|>| |bgcolor(#C90):C90 |bgcolor(#FC3):~FC3 |bgcolor(#FC6):~FC6 |bgcolor(#F96):F96 |bgcolor(#F63):@@color(white):F63@@ |bgcolor(#C30):@@color(white):C30@@ |>|>|>| |bgcolor(#C03):@@color(white):C03@@ |\n|bgcolor(#CF0):~CF0 |bgcolor(#CF3):~CF3 |bgcolor(#330):@@color(white):330@@ |bgcolor(#660):@@color(white):660@@ |bgcolor(#990):990 |bgcolor(#CC0):~CC0 |bgcolor(#FF0):~FF0 |bgcolor(#C93):C93 |bgcolor(#C63):@@color(white):C63@@ |bgcolor(#300):@@color(white):300@@ |bgcolor(#600):@@color(white):600@@ |bgcolor(#900):@@color(white):900@@ |bgcolor(#C00):@@color(white):C00@@ |bgcolor(#F00):@@color(white):F00@@ |bgcolor(#F36):@@color(white):F36@@ |bgcolor(#F03):@@color(white):F03@@ |\n|bgcolor(#9F0):9F0 |bgcolor(#CF6):~CF6 |bgcolor(#9C3):9C3 |bgcolor(#663):@@color(white):663@@ |bgcolor(#993):993 |bgcolor(#CC3):~CC3 |bgcolor(#FF3):~FF3 |bgcolor(#960):@@color(white):960@@ |bgcolor(#930):@@color(white):930@@ |bgcolor(#633):@@color(white):633@@ |bgcolor(#933):@@color(white):933@@ |bgcolor(#C33):@@color(white):C33@@ |bgcolor(#F33):@@color(white):F33@@ |bgcolor(#C36):@@color(white):C36@@ |bgcolor(#F69):@@color(white):F69@@ |bgcolor(#F06):@@color(white):F06@@ |\n|bgcolor(#6F0):6F0 |bgcolor(#9F6):9F6 |bgcolor(#6C3):6C3 |bgcolor(#690):690 |bgcolor(#996):996 |bgcolor(#CC6):~CC6 |bgcolor(#FF6):~FF6 |bgcolor(#963):@@color(white):963@@ |bgcolor(#630):@@color(white):630@@ |bgcolor(#966):@@color(white):966@@ |bgcolor(#C66):@@color(white):C66@@ |bgcolor(#F66):@@color(white):F66@@ |bgcolor(#903):@@color(white):903@@ |bgcolor(#C39):@@color(white):C39@@ |bgcolor(#F6C):@@color(white):~F6C@@ |bgcolor(#F09):@@color(white):F09@@ |\n|bgcolor(#3F0):3F0 |bgcolor(#6F3):6F3 |bgcolor(#390):390 |bgcolor(#6C0):6C0 |bgcolor(#9F3):9F3 |bgcolor(#CC9):~CC9 |bgcolor(#FF9):~FF9 |bgcolor(#C96):C96 |bgcolor(#C60):@@color(white):C60@@ |bgcolor(#C99):C99 |bgcolor(#F99):F99 |bgcolor(#F39):@@color(white):F39@@ |bgcolor(#C06):@@color(white):C06@@ |bgcolor(#906):@@color(white):906@@ |bgcolor(#F3C):@@color(white):~F3C@@ |bgcolor(#F0C):@@color(white):~F0C@@ |\n|bgcolor(#0C0):0C0 |bgcolor(#3C0):3C0 |bgcolor(#360):@@color(white):360@@ |bgcolor(#693):693 |bgcolor(#9C6):9C6 |bgcolor(#CF9):~CF9 |bgcolor(#FFC):FFC |bgcolor(#FC9):~FC9 |bgcolor(#F93):F93 |bgcolor(#FCC):FCC |bgcolor(#F9C):~F9C |bgcolor(#C69):@@color(white):C69@@ |bgcolor(#936):@@color(white):936@@ |bgcolor(#603):@@color(white):603@@ |bgcolor(#C09):@@color(white):C09@@ |bgcolor(#303):@@color(white):303@@ |\n|bgcolor(#3C3):3C3 |bgcolor(#6C6):6C6 |bgcolor(#0F0):0F0 |bgcolor(#3F3):3F3 |bgcolor(#6F6):6F6 |bgcolor(#9F9):9F9 |bgcolor(#CFC):CFC |>|>| |bgcolor(#C9C):~C9C |bgcolor(#969):@@color(white):969@@ |bgcolor(#939):@@color(white):939@@ |bgcolor(#909):@@color(white):909@@ |bgcolor(#636):@@color(white):636@@ |bgcolor(#606):@@color(white):606@@ |\n|bgcolor(#060):@@color(white):060@@ |bgcolor(#363):@@color(white):363@@ |bgcolor(#090):090 |bgcolor(#393):393 |bgcolor(#696):696 |bgcolor(#9C9):9C9 |>|>| |bgcolor(#FCF):FCF |bgcolor(#F9F):~F9F |bgcolor(#F6F):@@color(white):~F6F@@ |bgcolor(#F3F):@@color(white):~F3F@@ |bgcolor(#F0F):@@color(white):~F0F@@ |bgcolor(#C6C):@@color(white):~C6C@@ |bgcolor(#C3C):@@color(white):~C3C@@ |\n|bgcolor(#030):@@color(white):030@@ |bgcolor(#0C3):0C3 |bgcolor(#063):@@color(white):063@@ |bgcolor(#396):396 |bgcolor(#6C9):6C9 |bgcolor(#9FC):9FC |bgcolor(#CFF):CFF |bgcolor(#39F):39F |bgcolor(#9CF):9CF |bgcolor(#CCF):CCF |bgcolor(#C9F):~C9F |bgcolor(#96C):@@color(white):96C@@ |bgcolor(#639):@@color(white):639@@ |bgcolor(#306):@@color(white):306@@ |bgcolor(#90C):@@color(white):90C@@ |bgcolor(#C0C):@@color(white):~C0C@@ |\n|bgcolor(#0F3):0F3 |bgcolor(#3F6):3F6 |bgcolor(#093):093 |bgcolor(#0C6):0C6 |bgcolor(#3F9):3F9 |bgcolor(#9FF):9FF |bgcolor(#9CC):9CC |bgcolor(#06C):@@color(white):06C@@ |bgcolor(#69C):69C |bgcolor(#99F):99F |bgcolor(#99C):99C |bgcolor(#93F):@@color(white):93F@@ |bgcolor(#60C):@@color(white):60C@@ |bgcolor(#609):@@color(white):609@@ |bgcolor(#C3F):@@color(white):~C3F@@ |bgcolor(#C0F):@@color(white):~C0F@@ |\n|bgcolor(#0F6):0F6 |bgcolor(#6F9):6F9 |bgcolor(#3C6):3C6 |bgcolor(#096):096 |bgcolor(#6FF):6FF |bgcolor(#6CC):6CC |bgcolor(#699):699 |bgcolor(#036):@@color(white):036@@ |bgcolor(#369):@@color(white):369@@ |bgcolor(#66F):@@color(white):66F@@ |bgcolor(#66C):@@color(white):66C@@ |bgcolor(#669):@@color(white):669@@ |bgcolor(#309):@@color(white):309@@ |bgcolor(#93C):@@color(white):93C@@ |bgcolor(#C6F):@@color(white):~C6F@@ |bgcolor(#90F):@@color(white):90F@@ |\n|bgcolor(#0F9):0F9 |bgcolor(#6FC):6FC |bgcolor(#3C9):3C9 |bgcolor(#3FF):3FF |bgcolor(#3CC):3CC |bgcolor(#399):399 |bgcolor(#366):@@color(white):366@@ |bgcolor(#069):@@color(white):069@@ |bgcolor(#039):@@color(white):039@@ |bgcolor(#33F):@@color(white):33F@@ |bgcolor(#33C):@@color(white):33C@@ |bgcolor(#339):@@color(white):339@@ |bgcolor(#336):@@color(white):336@@ |bgcolor(#63C):@@color(white):63C@@ |bgcolor(#96F):@@color(white):96F@@ |bgcolor(#60F):@@color(white):60F@@ |\n|bgcolor(#0FC):0FC |bgcolor(#3FC):3FC |bgcolor(#0FF):0FF |bgcolor(#0CC):0CC |bgcolor(#099):099 |bgcolor(#066):@@color(white):066@@ |bgcolor(#033):@@color(white):033@@ |bgcolor(#39C):39C |bgcolor(#36C):@@color(white):36C@@ |bgcolor(#00F):@@color(white):00F@@ |bgcolor(#00C):@@color(white):00C@@ |bgcolor(#009):@@color(white):009@@ |bgcolor(#006):@@color(white):006@@ |bgcolor(#003):@@color(white):003@@ |bgcolor(#63F):@@color(white):63F@@ |bgcolor(#30F):@@color(white):30F@@ |\n|bgcolor(#0C9):0C9 |>|>|>| |bgcolor(#09C):09C |bgcolor(#3CF):3CF |bgcolor(#6CF):6CF |bgcolor(#69F):69F |bgcolor(#36F):@@color(white):36F@@ |bgcolor(#03C):@@color(white):03C@@ |>|>|>| |bgcolor(#30C):@@color(white):30C@@ |\n|>|>|>|>|>| |bgcolor(#0CF):0CF |bgcolor(#09F):09F |bgcolor(#06F):@@color(white):06F@@ |bgcolor(#03F):@@color(white):03F@@ |>|>|>|>|>| |\n<html><script>place.lastChild.style.width="95%"</script></html>}}}
[[PageTemplate]]@@font-size:xx-small;\n|>|>|[[SiteTitle]] - [[SiteSubtitle]]|\n|[[MainMenu]]<html><br></html>[[GTDMenu]]|[[DefaultTiddlers]] <html><br><br><br><br></html>[[ViewTemplate]] <html><br><br></html> [[EditTemplate]]|[[SideBarOptions]]|\n|~|~|[[OptionsPanel]]|\n|~|~|[[AdvancedOptions]]|\n|~|~|<<tiddler Configuration.SideBarTabs>>|\n@@\n''~StyleSheets :'' \n*[[StyleSheet]]\n*[[StyleSheetColors]]\n*[[StyleSheetLayout]]\n*[[StyleSheetPrint]]\n*[[IntelliTaggerStyleSheet]]\n*[[GTDStyleSheet]]\n*[[GTDTWStyleSheet]]\n\n*PageTemplate -- Contains the overall structure of the page, including the gradient macro for the masthead.\n*EditTemplate -- Contains the structure and order of the tiddler editor screen\n*ViewTemplate -- Contains the structure and order of the tiddler view screen\n*StyleSheetColors -- Contains the CSS for the colors used by the TiddlyWiki\n*StyleSheetLayout -- Contains the CSS for the layout of the TiddlyWiki\n*StyleSheetPrint -- Contains the CSS used when printing from the TiddlyWiki\n\n[[SiteUrl]]
These configuration options enable you to customize the default behaviour of this wiki. They are saved locally as cookies, just like other TiddlyWiki configuration options.\n\nThis is the tag used for the "reference" context, used to identify tiddlers that show up in the [[Reference]] list: \n<<option txtGTDReferenceContext>>\n\nThis is the tag used for the "someday-maybe" context, used to identify tiddlers that show up in the [[Someday-Maybe]] list:\n<<option txtGTDSomedayContext>>\n\nThis is the tag used for the "unfiled" context, used to tag actions when the context is not known (such as a deleted context):\n<<option txtGTDUnfiledContext>>\n\nThis value, if specified, is the number of days to keep completed actions in context and review action lists (leave blank to show all unarchived, completed actions):\n<<option txtGTDActionAging>>\n\n<<option chkGTDFancyStyle>> Use this checkbox to enable or disable the extended (fancy) GTD style specified by the GTDTWStyleSheet (you will need to reload the page to see your change)
[[SideBarTabs]]\n|[[TabTimeline]]|[[TabAll]]|[[TabTags]]|<<tiddler Configuration.TabMore>>|
|>|[[TabMore]]|\n|TabMoreMissing|TabMoreOrphans|
Joseph Daniel 'Danny' Casolaro (June 16, 1947 โ€“ August 10, 1991) was an American freelance journalist.\n\nHe was found dead in a bathtub in the Sheraton Inn, Martinsburg, West Virginia, one day after allegedly arranging to meet a source in connection with an investigation he had referred to as "the octopus." His research centered around a complex story called the [[Inslaw|inslaw]] affair, and a sprawling conspiracy theory supposedly connected to it.\n\nCasolaro's death was officially ruled a suicide, but since then some have suggested he was murdered to stop him from publishing his story, or have argued there are puzzling unresolved questions regarding the case.\n\n''Early life and career''\n\nCasolaro was born in Mc Lean, Virginia, the first of six children. His father was an obstetrician. Casolaro attended Providence College, dropping out when he was 20. He married Terrill Pace, with whom he had a son; the couple divorced after 13 years. Casolaro became a reporter for the National Enquirer and later for the trade magazine / newsletter Computer Age, which he eventually purchased and sold at a loss.\n\nHis friends described him as a Peter Pan figure with an obsessive streak, who worked for two years in the late 1970s on an alternative explanation for Watergate.\n\n''Inslaw and the Octopus''\n\nCasolaro's investigation began in early 1990 when he began to research the [[Inslaw|inslaw]] affair. Casolaro hoped to write a true crime book about his investigation. He pitched the book to several publishers and agents as he made new discoveries in the case, and got some positive responses, as well as outright rejections, but had not been offered a contract at the time of his death.\n\nThe Inslaw affair had been in the news from the mid-1980s. In his previous position with the Justice Dept, the owner of Inslaw, Inc., [[Bill Hamilton]], had helped to develop a computer software program called Prosecutor's Management Information System (or [[PROMIS]]), which was designed to handle the ever-growing papers and documents generated by law enforcement and the courts. When he left the department, he alleged that the department had stolen PROMIS and had illegally distributed it, robbing Inslaw of millions of dollars.\n\nCasolaro said he had discovered that the Inslaw case had connections to a number of other conspiracies and scandals, dating back to the supposed [[October Surprise]] conspiracy of 1980. Writing in Wired in 1993, Richard L. Fricker declared, "His theories, which some seasoned investigative journalists have described as naive, led him into a Bermuda Triangle of spooks, guns, drugs and organized crime."\n\nCasolaro alleged that he was nearly ready to have revealed a wide-ranging criminal conspiracy spanning [[Iran-Contra]], [[October Surprise]], the closure of [[BCCI]], the bombing of [[Pan Am 103]], and involving the [[CIA]], [[Mossad]], the Canadian [[RCMP]], the U.S. Justice Dept, the [[Wackenhut Corporation]], and the British security and intelligence services. Writing in the Columbia Journalism Review, Phil Linsalata notes, "Any one of those stories, of course, is a challenge for America's best journalists. Casolaro wanted to tackle them all."\n\nOne of Casolaro's major sources was [[Michael Riconosciuto]], introduced to him by Hamilton. Riconosciuto claimed to have modified Inslaw's software at the Justice Department's request, so that it could be sold to dozens of foreign governments. These modifications allegedly took place mostly at the [[Cabazon Indian Reservation]] near Indio, California, according to Riconosciuto.\n\nOne of his modifications, Riconosciuto said, allowed the U.S. government access to other nations' computers via a hidden "back door" feature. According to Riconosciuto, the [[PROMIS]] scheme was masterminded by Dr. [[Earl Brian]], a friend of [[Edwin Meese]]. Riconosciuto claimed that the scheme had its roots in the 1980 [[October Surprise]]. He and Brian had supposedly delivered $40 million to Iranians who agreed to hold the U.S. Embassy hostages until [[President Carter|Jimmy Carter]] had lost the 1980 presidential election. For his help in the October Surprise, Brian was allegedly allowed to profit from the illegal pirating of the PROMIS system.\n\nRiconosciuto also claimed to have developed a powerful "fuel air explosive" (which was allegedly tested at Area 51), and hinted at sinister goings on with extraterrestrials and their UFOs.\n\nSome of Riconosciuto's claims appear to have been supported by Bill Hamilton, although it remains unclear what the time-frame is in which the various claims were made. For example, Riconosciuto reported that Canadian officials had purchased the PROMIS software illegally. In 1996, C.D. Seltzer wrote "The Hamiltons were able to verify another of Riconosciuto's claim in 1991 quite by accident. The couple inadvertently learned the Canadian government was using their software at 900 locations, after Inslaw received a phone inquiry and a questionnaire in the mail asking whether bi-lingual versions of their software were available. When the Hamiltons made their own inquiry, the Canadians at first played coy, but then admitted acquiring Promis from Strategic Software Planning Corp. of Cambridge, Mass." Casolaro also claimed to have located independent witnesses who asserted that Riconosciuto and Brian had been seen together on several occasions.\n\n''Death''\n\nCasolaro said that he was going to Martinsburg, West Virginia to meet with a source who promised to provide an important missing piece of the Octopus puzzle. According to conspiracy theorists Kenn Thomas and Jim Keith, a waitress at the Sheraton's bar reported that in the evening of August 9, 1991, Casolaro met with a man she described as "maybe Arab or Iranian," while hotel guest Mike Looney chatted with Casolaro, who reported that he was at the hotel to meet a man and "Looney thinks that Casolaro told him the contact was an Arab". \n\nThe next day, housekeeping staff discovered Casolaro naked in the bathtub of his room. His wrists had been deeply slashed twelve times, and there was blood splattered on the bathroom's walls and floor, a half-empty wine bottle was found in the room as well. According to Ridgeway and Vaughn's Village Voice article, the scene was so gruesome that one of the housekeepers fainted when she saw it. \n\nAuthorities were called to the scene. Under Casolaro's body, paramedics found a beer can, two garbage bags, and a straight razor. A note was found in his room, which read: "To my loved ones, please forgive me, most especially my son, and be understanding. God will let me in." \n\nAuthorities judged the case a suicide. Writing in Spy in 1993, [[John Connolly|23 September 2006]] noted "So sure was everyone that Casolaro had killed himself that that very night, even before his family was notified of his death, [[Charles Brown]], the undertaker, embalmed the body. Brown would later give the most ordinary of reasons for doing so- 'I didn't want to come back to work on Sunday' - though embalming a body without the permission of the next of kin is illegal in West Virginia. Had Brown or the authorities spoken to Casolaro's brother Tony, they surely would have proceeded more carefully. Tony would have undoubtedly mentioned what Danny had said to him just a few days before: 'I have been getting some very threatening phone calls. If anything happens to me, don't believe it was accidental.'"\n\nA few days after Casolaro's body was discovered, FBI agent [[Thomas Gates]] (an acquaintance of Casolaro's) contacted Martinsburg authorities. Only then, according to Connolly, did Martinsburg authorities learn "they had something stickier on their hands" than a common suicide. Connolly notes that there was "national press scrutiny" of the way Martinsburg authorities handled the case.\n\nAfterwards, an autopsy was performed by the state medical examiner's office; Connolly quoted Dr. Michael Baden as saying that the results of Casolaro's autopsy are unreliable because "embalming of the body makes the report fatally flawed." Five months after Casolaro's body was discovered, a suicide verdict was returned. Beyond the cause of death (blood loss due to the wounds on his wrists) the autopsy uncovered Vicodin and antidepressant medication in Casolaro's body, and evidence of the early stages of multiple sclerosis. The type of wine found in the room was identical to several bottles at Casolaro's home.\n\nSome have suggested that the Casolaro's death deserves closer scrutiny. A 1992 report on the Inslaw affair prepared by the U.S. House of Representatives concluded: "Based on the evidence collected by the committee, it appears that the path followed by Danny Casolaro in pursuing his investigation into the INSLAW matter brought him in contact with a number of dangerous individuals associated with organized crime and the world of covert intelligence operations. The suspicious circumstances surrounding his death have led some law enforcement professionals and others to believe that his death may not have been a suicide. As long as the possibility exists that Danny Casolaro died as a result of his investigation into the INSLAW matter, it is imperative that further investigation be conducted."\n\nOn the other hand, some have accepted the suicide verdict. For example, a 1991 Vanity Fair article written by Ron Rosenbaum, a journalist friend of Casolaro's, argued that he may have committed suicide after learning he was suffering from multiple sclerosis, but did so in a way suggestive of murder in order to promote the story he had been working on (Rosenbaum 1991).
/***\n''Date Plugin for TiddlyWiki version 2.x''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.TiddlyTools.com/#DatePlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n^^last update: <<date tiddler "DDD, MMM DDth, YYYY hh:0mm:0ss">>^^\n\nThere are quite a few calendar generators, reminders, to-do lists, 'dated tiddlers' journals, blog-makers and GTD-like schedule managers that have been built around TW. While they all have different purposes, and vary in format, interaction, and style, in one way or another each of these plugins displays and/or uses date-based information to make finding, accessing and managing relevant tiddlers easier. This plugin provides a general approach to embedding dates and date-based links/menus within tiddler content.\n\nYou can ''specify a date using a combination of year, month, and day number values or mathematical expressions (such as "Y+1" or "D+30")'', and then just display it as formatted date text, or create a ''link to a 'dated tiddler''' for quick blogging, or create a ''popup menu'' containing the dated tiddler link plus links to ''tiddlers that were changed'' as well as any ''scheduled reminders'' for that date.\n!!!!!Usage\n<<<\nWhen installed, this plugin defines a macro: {{{<<date [mode] [date] [format] [linkformat]>>}}}. All of the macro parameters are optional and, in it's simplest form, {{{<<date>>}}}, it is equivalent to the ~TiddlyWiki core macro, {{{<<today>>}}}.\n\nHowever, where {{{<<today>>}}} simply inserts the current date/time in a predefined format (or custom format, using {{{<<today [format]>>}}}), the {{{<<date>>}}} macro's parameters take it much further than that:\n* [mode] is either ''display'', ''link'' or ''popup''. If omitted, it defaults to ''display''. This param let's you select between simply displaying a formatted date, or creating a link to a specific 'date titled' tiddler or a popup menu containing a dated tiddler link, plus links to changes and reminders.\n* [date] lets you enter ANY date (not just today) as ''year, month, and day values or simple mathematical expressions'' using pre-defined variables, Y, M, and D for the current year, month and day, repectively. You can display the modification date of the current tiddler by using the keyword: ''tiddler'' in place of the year, month and day parameters. Use ''tiddler://name-of-tiddler//'' to display the modification date of a specific tiddler. You can also use keywords ''today'' or ''filedate'' to refer to these //dynamically changing// date/time values. \n* [format] and [linkformat] uses standard ~TiddlyWiki date formatting syntax. The default is "YYYY.0MM.0DD"\n>^^''DDD'' - day of week in full (eg, "Monday"), ''DD'' - day of month, ''0DD'' - adds leading zero^^\n>^^''MMM'' - month in full (eg, "July"), ''MM'' - month number, ''0MM'' - adds leading zero^^\n>^^''YYYY'' - full year, ''YY'' - two digit year, ''hh'' - hours, ''mm'' - minutes, ''ss'' - seconds^^\n>^^//note: use of hh, mm or ss format codes is only supported with ''tiddler'', ''today'' or ''filedate'' values//^^\n* [linkformat] - specify an alternative date format so that the title of a 'dated tiddler' link can have a format that differs from the date's displayed format\n\nIn addition to the macro syntax, DatePlugin also provides a public javascript API so that other plugins that work with dates (such as calendar generators, etc.) can quickly incorporate date formatted links or popups into their output:\n\n''{{{showDate(place, date, mode, format, linkformat, autostyle, weekend)}}}'' \n\nNote that in addition to the parameters provided by the macro interface, the javascript API also supports two optional true/false parameters:\n* [autostyle] - when true, the font/background styles of formatted dates are automatically adjusted to show the date's status: 'today' is boxed, 'changes' are bold, 'reminders' are underlined, while weekends and holidays (as well as changes and reminders) can each have a different background color to make them more visibly distinct from each other.\n* [weekend] - true indicates a weekend, false indicates a weekday. When this parameter is omitted, the plugin uses internal defaults to automatically determine when a given date falls on a weekend.\n<<<\n!!!!!Examples\n<<<\nThe current date: <<date>>\nThe current time: <<date today "0hh:0mm:0ss">>\nToday's blog: <<date link today "DDD, MMM DDth, YYYY">>\nRecent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>\nThe first day of next month will be a <<date Y M+1 1 "DDD">>\nThis tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>\nThe SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>\nThis document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>\n<<date 2006 07 24 "MMM DDth, YYYY">> will be a <<date 2006 07 24 "DDD">>\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''DatePlugin'' (tagged with <<tag systemConfig>>)\n<<<\n!!!!!Revision History\n<<<\n''2006.03.08 [2.1.2]''\nadd 'override leadtime' flag param in call to findTiddlersWithReminders(), and add "Enter a title" default text to new reminder handler. Thanks to Jeremy Sheeley for these additional tweaks.\n''2006.03.06 [2.1.0]''\nhasReminders() nows uses window.reminderCacheForCalendar[] when present. If calendar cache is not present, indexReminders() now uses findTiddlersWithReminders() with a 90-day look ahead to check for reminders. Also, switched default background colors for autostyled dates: reminders are now greenish ("c0ffee") and holidays are now reddish ("ffaace").\n''2006.02.14 [2.0.5]''\nwhen readOnly is set (by TW core), omit "new reminders..." popup menu item and, if a "dated tiddler" does not already exist, display the date as simple text instead of a link.\n''2006.02.05 [2.0.4]''\nadded var to variables that were unintentionally global. Avoids FireFox 1.5.0.1 crash bug when referencing global variables\n''2006.01.18 [2.0.3]''\nIn 1.2.x the tiddler editor's text area control was given an element ID=("tiddlerBody"+title), so that it was easy to locate this field and programmatically modify its content. With the addition of configuration templates in 2.x, the textarea no longer has an ID assigned. To find this control we now look through all the child nodes of the tiddler editor to locate a "textarea" control where attribute("edit") equals "text", and then append the new reminder to the contents of that control.\n''2006.01.11 [2.0.2]''\ncorrect 'weekend' override detection logic in showDate()\n''2006.01.10 [2.0.1]''\nallow custom-defined weekend days (default defined in config.macros.date.weekend[] array)\nadded flag param to showDate() API to override internal weekend[] array\n''2005.12.27 [2.0.0]''\nUpdate for TW2.0\nAdded parameter handling for 'linkformat'\n''2005.12.21 [1.2.2]''\nFF's date.getYear() function returns 105 (for the current year, 2005). When calculating a date value from Y M and D expressions, the plugin adds 1900 to the returned year value get the current year number. But IE's date.getYear() already returns 2005. As a result, plugin calculated date values on IE were incorrect (e.g., 3905 instead of 2005). Adding +1900 is now conditional so the values will be correct on both browsers.\n''2005.11.07 [1.2.1]''\nadded support for "tiddler" dynamic date parameter\n''2005.11.06 [1.2.0]''\nadded support for "tiddler:title" dynamic date parameter\n''2005.11.03 [1.1.2]''\nwhen a reminder doesn't have a specified title parameter, use the title of the tiddler that contains the reminder as "fallback" text in the popup menu. Based on a suggestion from BenjaminKudria.\n''2005.11.03 [1.1.1]''\nTemporarily bypass hasReminders() logic to avoid excessive overhead from generating the indexReminders() cache. While reminders can still appear in the popup menu, they just won't be indicated by auto-styling the date number that is displayed. This single change saves approx. 60% overhead (5 second delay reduced to under 2 seconds).\n''2005.11.01 [1.1.0]''\ncorrected logic in hasModifieds() and hasReminders() so caching of indexed modifieds and reminders is done just once, as intended. This should hopefully speed up calendar generators and other plugins that render multiple dates...\n''2005.10.31 [1.0.1]''\ndocumentation and code cleanup\n''2005.10.31 [1.0.0]''\ninitial public release\n''2005.10.30 [0.9.0]''\npre-release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].\n<<<\n!!!!!Code\n***/\n//{{{\nversion.extensions.date = {major: 2, minor: 1, revision: 2, date: new Date(2006,3,8)};\n//}}}\n\n//{{{\n// 1.2.x compatibility\nif (!window.story) window.story=window;\nif (!store.getTiddler) store.getTiddler=function(title){return store.tiddlers[title]}\nif (!store.addTiddler) store.addTiddler=function(tiddler){store.tiddlers[tiddler.title]=tiddler}\nif (!store.deleteTiddler) store.deleteTiddler=function(title){delete store.tiddlers[title]}\n//}}}\n\n//{{{\nconfig.macros.date = {\n format: "YYYY.0MM.0DD", // default date display format\n linkformat: "YYYY.0MM.0DD", // 'dated tiddler' link format\n weekendbg: "#c0c0c0", // "cocoa"\n holidaybg: "#ffaace", // "face"\n modifiedsbg: "#bbeeff", // "beef"\n remindersbg: "#c0ffee", // "coffee"\n holidays: [ "01/01", "07/04", "07/24", "11/24" ], // NewYearsDay, IndependenceDay(US), Eric's Birthday (hooray!), Thanksgiving(US)\n weekend: [ 1,0,0,0,0,0,1 ] // [ day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6 ]\n};\n//}}}\n\n//{{{\nconfig.macros.date.handler = function(place,macroName,params)\n{\n // do we want to see a link, a popup, or just a formatted date?\n var mode="display";\n if (params[0]=="display") { mode=params[0]; params.shift(); }\n if (params[0]=="popup") { mode=params[0]; params.shift(); }\n if (params[0]=="link") { mode=params[0]; params.shift(); }\n // get the date\n var now = new Date();\n var date = now;\n if (!params[0] || params[0]=="today")\n { params.shift(); }\n else if (params[0]=="filedate")\n { date=new Date(document.lastModified); params.shift(); }\n else if (params[0]=="tiddler")\n { date=store.getTiddler(story.findContainingTiddler(place).id.substr(7)).modified; params.shift(); }\n else if (params[0].substr(0,8)=="tiddler:")\n { var t; if ((t=store.getTiddler(params[0].substr(8)))) date=t.modified; params.shift(); }\n else {\n var y = eval(params.shift().replace(/Y/ig,(now.getYear()<1900)?now.getYear()+1900:now.getYear()));\n var m = eval(params.shift().replace(/M/ig,now.getMonth()+1));\n var d = eval(params.shift().replace(/D/ig,now.getDate()+0));\n date = new Date(y,m-1,d);\n }\n // date format with optional custom override\n var format=this.format; if (params[0]) format=params.shift();\n var linkformat=this.linkformat; if (params[0]) linkformat=params.shift();\n showDate(place,date,mode,format,linkformat);\n}\n//}}}\n\n//{{{\nwindow.showDate=showDate;\nfunction showDate(place,date,mode,format,linkformat,autostyle,weekend)\n{\n if (!mode) mode="display";\n if (!format) format=config.macros.date.format;\n if (!linkformat) linkformat=config.macros.date.linkformat;\n if (!autostyle) autostyle=false;\n\n // format the date output\n var title = date.formatString(format);\n var linkto = date.formatString(linkformat);\n\n // just show the formatted output\n if (mode=="display") { place.appendChild(document.createTextNode(title)); return; }\n\n // link to a 'dated tiddler'\n var link = createTiddlyLink(place, linkto, false);\n link.appendChild(document.createTextNode(title));\n link.title = linkto;\n link.date = date;\n link.format = format;\n link.linkformat = linkformat;\n\n // if using a popup menu, replace click handler for dated tiddler link\n // with handler for popup and make link text non-italic (i.e., an 'existing link' look)\n if (mode=="popup") {\n link.onclick = onClickDatePopup;\n link.style.fontStyle="normal";\n }\n\n // format the popup link to show what kind of info it contains (for use with calendar generators)\n if (!autostyle) return;\n if (hasModifieds(date))\n { link.style.fontStyle="normal"; link.style.fontWeight="bold"; }\n if (hasReminders(date))\n { link.style.textDecoration="underline"; }\n if(isToday(date))\n { link.style.border="1px solid black"; }\n\n if( (weekend!=undefined?weekend:isWeekend(date)) && (config.macros.date.weekendbg!="") )\n { place.style.background = config.macros.date.weekendbg; }\n if(isHoliday(date)&&(config.macros.date.holidaybg!=""))\n { place.style.background = config.macros.date.holidaybg; }\n if (hasModifieds(date)&&(config.macros.date.modifiedsbg!=""))\n { place.style.background = config.macros.date.modifiedsbg; }\n if (hasReminders(date)&&(config.macros.date.remindersbg!=""))\n { place.style.background = config.macros.date.remindersbg; }\n}\n//}}}\n\n//{{{\nfunction isToday(date) // returns true if date is today\n { var now=new Date(); return ((now-date>=0) && (now-date<86400000)); }\n\nfunction isWeekend(date) // returns true if date is a weekend\n { return (config.macros.date.weekend[date.getDay()]); }\n\nfunction isHoliday(date) // returns true if date is a holiday\n{\n var longHoliday = date.formatString("0MM/0DD/YYYY");\n var shortHoliday = date.formatString("0MM/0DD");\n for(var i = 0; i < config.macros.date.holidays.length; i++) {\n var holiday=config.macros.date.holidays[i];\n if (holiday==longHoliday||holiday==shortHoliday) return true;\n }\n return false;\n}\n//}}}\n\n//{{{\n// Event handler for clicking on a day popup\nfunction onClickDatePopup(e)\n{\n if (!e) var e = window.event;\n var theTarget = resolveTarget(e);\n var popup = createTiddlerPopup(this);\n if(popup) {\n // always show dated tiddler link (or just date, if readOnly) at the top...\n if (!readOnly || store.tiddlerExists(this.date.formatString(this.linkformat)))\n createTiddlyLink(popup,this.date.formatString(this.linkformat),true);\n else\n createTiddlyText(popup,this.date.formatString(this.linkformat));\n addModifiedsToPopup(popup,this.date,this.format);\n addRemindersToPopup(popup,this.date,this.linkformat);\n }\n scrollToTiddlerPopup(popup,false);\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\n//}}}\n\n//{{{\nfunction indexModifieds() // build list of tiddlers, hash indexed by modification date\n{\n var modifieds= { };\n var tiddlers = store.getTiddlers("title");\n for (var t = 0; t < tiddlers.length; t++) {\n var date = tiddlers[t].modified.formatString("YYYY0MM0DD")\n if (!modifieds[date])\n modifieds[date]=new Array();\n modifieds[date].push(tiddlers[t].title);\n }\n return modifieds;\n}\nfunction hasModifieds(date) // returns true if date has modified tiddlers\n{\n if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();\n return (config.macros.date.modifieds[date.formatString("YYYY0MM0DD")]!=undefined);\n}\n\nfunction addModifiedsToPopup(popup,when,format)\n{\n if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();\n var indent=String.fromCharCode(160)+String.fromCharCode(160);\n var mods = config.macros.date.modifieds[when.formatString("YYYY0MM0DD")];\n if (mods) {\n mods.sort();\n var e=createTiddlyElement(popup,"div",null,null,"changes:");\n for(var t=0; t<mods.length; t++) {\n var link=createTiddlyLink(popup,mods[t],false);\n link.appendChild(document.createTextNode(indent+mods[t]));\n createTiddlyElement(popup,"br",null,null,null);\n }\n }\n}\n//}}}\n\n//{{{\nfunction indexReminders(date,leadtime) // build list of tiddlers with reminders, hash indexed by reminder date\n{\n var reminders = { };\n if(window.findTiddlersWithReminders!=undefined) { // reminder plugin is installed\n // DEBUG var starttime=new Date();\n var t = findTiddlersWithReminders(date, [0,leadtime], null, null, 1);\n for(var i=0; i<t.length; i++) reminders[t[i].matchedDate]=true;\n // DEBUG var out="Found "+t.length+" reminders in "+((new Date())-starttime+1)+"ms\sn";\n // DEBUG out+="startdate: "+date.toLocaleDateString()+"\sn"+"leadtime: "+leadtime+" days\sn\sn";\n // DEBUG for(var i=0; i<t.length; i++) { out+=t[i].matchedDate.toLocaleDateString()+" "+t[i].params.title+"\sn"; }\n // DEBUG alert(out);\n }\n return reminders;\n}\n\nfunction hasReminders(date) // returns true if date has reminders\n{\n if (window.reminderCacheForCalendar)\n return window.reminderCacheForCalendar[date]; // use calendar cache\n if (!config.macros.date.reminders)\n config.macros.date.reminders = indexReminders(date,90); // create a 90-day leadtime reminder cache\n return (config.macros.date.reminders[date]);\n}\n\nfunction addRemindersToPopup(popup,when,format)\n{\n if(window.findTiddlersWithReminders==undefined) return; // reminder plugin not installed\n\n var indent = String.fromCharCode(160)+String.fromCharCode(160);\n var reminders=findTiddlersWithReminders(when, [0,31],null,null,1);\n var e=createTiddlyElement(popup,"div",null,null,"reminders:"+(!reminders.length?" none":""));\n for(var t=0; t<reminders.length; t++) {\n link = createTiddlyLink(popup,reminders[t].tiddler,false);\n var diff=reminders[t].diff;\n diff=(!diff)?"Today":((diff==1)?"Tomorrow":diff+" days");\n var txt=(reminders[t].params["title"])?reminders[t].params["title"]:reminders[t].tiddler;\n link.appendChild(document.createTextNode(indent+diff+" - "+txt));\n createTiddlyElement(popup,"br",null,null,null);\n }\n if (readOnly) return; // omit "new reminder..." link\n var link = createTiddlyLink(popup,indent+"new reminder...",true); createTiddlyElement(popup,"br");\n var title = when.formatString(format);\n link.title="add a reminder to '"+title+"'";\n link.onclick = function() {\n // show tiddler editor\n story.displayTiddler(null, title, 2, null, null, false, false);\n // find body 'textarea'\n var c =document.getElementById("tiddler" + title).getElementsByTagName("*");\n for (var i=0; i<c.length; i++) if ((c[i].tagName.toLowerCase()=="textarea") && (c[i].getAttribute("edit")=="text")) break;\n // append reminder macro to tiddler content\n if (i<c.length) {\n if (store.tiddlerExists(title)) c[i].value+="\sn"; else c[i].value="";\n c[i].value += "<<reminder";\n c[i].value += " day:"+when.getDate();\n c[i].value += " month:"+(when.getMonth()+1);\n c[i].value += " year:"+when.getFullYear();\n c[i].value += ' title:"Enter a title" >>';\n }\n };\n}\n//}}}\n
[[Journal : Last 30 Entries]]\n[[TimeLine]]
/***\n''Export Tiddlers Plugin for TiddlyWiki version 2.0''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.TiddlyTools.com/#ExportTiddlersPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nWhen many people edit copies of the same TiddlyWiki document, the ability to easily copy and share these changes so they can then be redistributed to the entire group is very important. This ability is also very useful when moving your own tiddlers from document to document (e.g., when upgrading to the latest version of TiddlyWiki, or 'pre-loading' your favorite stylesheets into a new 'empty' TiddlyWiki document.)\n\nExportTiddlersPlugin let you ''select and extract tiddlers from your ~TiddlyWiki documents and save them to a local file'' or a remote server (requires installation of compatible server-side scripting, still under development...). An interactive control panel lets you specify a destination, and then select which tiddlers to export. A convenient 'selection filter' helps you pick desired tiddlers by specifying a combination of modification dates, tags, or tiddler text to be matched or excluded. ''Tiddler data can be output as ~TiddlyWiki "storeArea ~DIVs" that can be imported into another ~TiddlyWiki or as ~RSS-compatible XML that can be published for RSS syndication.''\n\n!!!!!Inline interface (live)\n<<<\n<<exportTiddlers inline>>\n<<<\n!!!!!Usage\n<<<\nOptional "special tiddlers" used by this plugin:\n* SiteUrl^^\nURL for official server-published version of document being viewed\ndefault: //none//^^\n* SiteHost^^\nhost name/address for remote server (e.g., "www.server.com" or "192.168.1.27")\ndefault: //none//^^\n* SitePost^^\nremote path/filename for submitting changes (e.g., "/cgi-bin/submit.cgi")\ndefault: //none//^^\n* SiteParams^^\narguments (if any) for server-side receiving script\ndefault: //none//^^\n* SiteID^^\nusername or other authorization identifier for login-controlled access to remote server\ndefault: current TiddlyWiki username (e.g., "YourName")^^\n* SiteDate^^\nstored date/time stamp for most recent published version of document\ndefault: current document.modified value (i.e., the 'file date')^^\n<<<\n!!!!!Example\n<<<\n<<exportTiddlers>>\n<<<\n!!!!!Installation\n<<<\nImport (or copy/paste) the following tiddlers into your document:\n''ExportTiddlersPlugin'' (tagged with <<tag systemConfig>>)\n\ncreate/edit ''SideBarOptions'': (sidebar menu items) \n^^Add "< < exportTiddlers > >" macro^^\n<<<\n!!!!!Revision History\n<<<\n''2006.02.12 [2.1.2]''^^\nadded var to unintended global 'tags' in matchTags(). Avoids FF1501 bug when filtering by tags. (based on report by TedPavlic)\n''2006.02.04 [2.1.1]''^^\nadded var to variables that were unintentionally global. Avoids FireFox 1.5.0.1 crash bug when referencing global variables\n''2006.02.02 [2.1.0]''^^\nAdded support for output of complete TiddlyWiki documents. Let's you use ExportTiddlers to generate 'starter' documents from selected tiddlers.^^\n''2006.01.21 [2.0.1]''^^\nDefer initial panel creation and only register a notification function when panel first is created\nin saveChanges 'hijack', create panel as needed. Note: if window.event is not available to identify the click location, the export panel is positioned relative to the 'tiddlerDisplay' element of the TW document.\n^^\n''2005.12.27 [2.0.0]''^^\nUpdate for TW2.0\nDefer initial panel creation and only register a notification function when panel first is created\n^^\n''2005.12.24 [0.9.5]''^^\nMinor adjustments to CSS to force correct link colors regardless of TW stylesheet selection\n^^\n''2005.12.16 [0.9.4]''^^\nDynamically create/remove exportPanel as needed to ensure only one instance of interface elements exists, even if there are multiple instances of macro embedding.\n^^\n''2005.11.15 [0.9.2]''^^\nadded non-Ajax post function to bypass javascript security restrictions on cross-domain I/O. Moved AJAX functions to separate tiddler (no longer needed here). Generalized HTTP server to support UnaWiki servers\n^^\n+++[previous releases...]\n''2005.11.08 [0.9.1]''^^\nmoved HTML, CSS and control initialization into exportInit() function and call from macro handler instead of at load time. This allows exportPanel to be placed within the same containing element as the "export tiddlers" button, so that relative positioning can be achieved.\n^^\n''2005.10.28 [0.9.0]''^^\nadded 'select opened tiddlers' feature\nBased on a suggestion by Geoff Slocock\n^^\n''2005.10.24 [0.8.3]''^^\nCorrected hijack of 'save changes' when using http:\n^^\n''2005.10.18 [0.8.2]''^^\nadded AJAX functions\n^^\n''2005.10.18 [0.8.1]''^^\nCorrected timezone handling when filtering for date ranges.\nImproved error checking/reporting for invalid filter values and filters that don't match any tiddlers.\nExporting localfile-to-localfile is working for IE and FF\nExporting server-to-localfile works in IE (after ActiveX warnings), but has security issues in FF\nCross-domain exporting (localfile/server-to-server) is under development\nCookies to remember filter settings - coming soon\nMore style tweaks, minor text changes and some assorted layout cleanup.\n^^\n''2005.10.17 [0.8.0]''^^\nFirst pre-release.\n^^\n''2005.10.16 [0.7.0]''^^\nfilter by tags\n^^\n''2005.10.15 [0.6.0]''^^\nfilter by title/text\n^^\n''2005.10.14 [0.5.0]''^^\nexport to local file (DIV or XML)\n^^\n''2005.10.14 [0.4.0]''^^\nfilter by start/end date\n^^\n''2005.10.13 [0.3.0]''^^\npanel interaction\n^^\n''2005.10.11 [0.2.0]''^^\npanel layout\n^^\n''2005.10.10 [0.1.0]''^^\ncode framework\n^^\n''2005.10.09 [0.0.0]''^^\ndevelopment started\n^^\n===\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]\n<<<\n!!!!!Code\n***/\n// // +++[version]\n//{{{\nversion.extensions.exportTiddlers = {major: 2, minor: 1, revision: 2, date: new Date(2006,2,12)};\n//}}}\n// //===\n\n// // +++[macro handler]\n//{{{\nconfig.macros.exportTiddlers = {\n label: "export tiddlers",\n prompt: "Copy selected tiddlers to an export document",\n datetimefmt: "0MM/0DD/YYYY 0hh:0mm:0ss" // for "filter date/time" edit fields\n};\n\nconfig.macros.exportTiddlers.handler = function(place,macroName,params) {\n if (params[0]!="inline")\n { createTiddlyButton(place,this.label,this.prompt,onClickExportMenu); return; }\n var panel=createExportPanel(place);\n panel.style.position="static";\n panel.style.display="block";\n}\n\nfunction createExportPanel(place) {\n var panel=document.getElementById("exportPanel");\n if (panel) { panel.parentNode.removeChild(panel); }\n setStylesheet(config.macros.exportTiddlers.css,"exportTiddlers");\n panel=createTiddlyElement(place,"span","exportPanel",null,null)\n panel.innerHTML=config.macros.exportTiddlers.html;\n exportShowPanel(document.location.protocol);\n exportInitFilter();\n refreshExportList(0);\n store.addNotification(null,refreshExportList); // refresh listbox after every tiddler change\n return panel;\n}\n\nfunction onClickExportMenu(e)\n{\n if (!e) var e = window.event;\n var parent=resolveTarget(e).parentNode;\n var panel = document.getElementById("exportPanel");\n if (panel==undefined || panel.parentNode!=parent)\n panel=createExportPanel(parent);\n var isOpen = panel.style.display=="block";\n if(config.options.chkAnimate)\n anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));\n else\n panel.style.display = isOpen ? "none" : "block" ;\n e.cancelBubble = true;\n if (e.stopPropagation) e.stopPropagation();\n return(false);\n}\n//}}}\n// //===\n\n// // +++[Hijack saveChanges] diverts 'notFileUrlError' to display export control panel instead\n//{{{\nwindow.coreSaveChanges=window.saveChanges;\nwindow.saveChanges = function()\n{\n if (document.location.protocol=="file:") { coreSaveChanges(); return; }\n var e = window.event;\n var parent=e?resolveTarget(e).parentNode:document.body;\n var panel = document.getElementById("exportPanel");\n if (panel==undefined || panel.parentNode!=parent) panel=createExportPanel(parent);\n exportShowPanel(document.location.protocol);\n if (parent==document.body) { panel.style.left="30%"; panel.style.top="30%"; }\n panel.style.display = "block" ;\n}\n//}}}\n// //===\n\n// // +++[IE needs explicit scoping] for functions called by browser events\n//{{{\nwindow.onClickExportMenu=onClickExportMenu;\nwindow.onClickExportButton=onClickExportButton;\nwindow.exportShowPanel=exportShowPanel;\nwindow.exportShowFilterFields=exportShowFilterFields;\nwindow.refreshExportList=refreshExportList;\n//}}}\n// //===\n\n// // +++[CSS] for floating export control panel\n//{{{\nconfig.macros.exportTiddlers.css = '\s\n#exportPanel {\s\n display: none; position:absolute; z-index:12; width:35em; right:105%; top:6em;\s\n background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\s\n border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\s\n padding: 0.5em; margin:0em; -moz-border-radius:1em;\s\n}\s\n#exportPanel a, #exportPanel td a { color:#009; display:inline; margin:0px; padding:1px; }\s\n#exportPanel table { width:100%; border:0px; padding:0px; margin:0px; font-size:8pt; line-height:110%; background:transparent; }\s\n#exportPanel tr { border:0px;padding:0px;margin:0px; background:transparent; }\s\n#exportPanel td { color:#000; border:0px;padding:0px;margin:0px; background:transparent; }\s\n#exportPanel select { width:98%;margin:0px;font-size:8pt;line-height:110%;}\s\n#exportPanel input { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\s\n#exportPanel .box { border:1px solid black; padding:3px; margin-bottom:5px; background:#f8f8f8; -moz-border-radius:5px;}\s\n#exportPanel .topline { border-top:2px solid black; padding-top:3px; margin-bottom:5px; }\s\n#exportPanel .rad { width:auto; }\s\n#exportPanel .chk { width:auto; }\s\n#exportPanel .btn { width:auto; }\s\n#exportPanel .btn1 { width:98%; }\s\n#exportPanel .btn2 { width:48%; }\s\n#exportPanel .btn3 { width:32%; }\s\n#exportPanel .btn4 { width:24%; }\s\n#exportPanel .btn5 { width:19%; }\s\n';\n//}}}\n// //===\n\n// // +++[HTML] for export control panel interface\n//{{{\nconfig.macros.exportTiddlers.html = '\s\n<!-- output target and format -->\s\n<table cellpadding="0" cellspacing="0"><tr><td width=50%>\s\n export to\s\n <select size=1 id="exportTo" onchange="exportShowPanel(this.value);">\s\n <option value="file:" SELECTED>this computer</option>\s\n <option value="http:">web server (http)</option>\s\n <option value="https:">secure web server (https)</option>\s\n <option value="ftp:">file server (ftp)</option>\s\n </select>\s\n</td><td width=50%>\s\n output format\s\n <select id="exportFormat" size=1>\s\n <option value="DIV">TiddlyWiki export file</option>\s\n <option value="TW">TiddlyWiki document</option>\s\n <option value="XML">RSS feed (XML)</option>\s\n </select>\s\n</td></tr></table>\s\n\s\n<!-- export to local file -->\s\n<div id="exportLocalPanel" style="margin-bottom:5px;margin-top:5px;">\s\nlocal path/filename<br>\s\n<input type="file" id="exportFilename" size=56 style="width:100%"><br>\s\n</div><!--panel-->\s\n\s\n<!-- export to http server -->\s\n<div id="exportHTTPPanel" style="display:none;margin-bottom:5px;margin-top:5px;">\s\ndocument URL<br>\s\n<input type="text" id="exportHTTPSiteURL" onfocus="this.select()"><br>\s\nserver script / parameters<br>\s\n<input type="text" id="exportHTTPServerURL" onfocus="this.select()"><br>\s\n</div><!--panel-->\s\n\s\n<!-- export to ftp server -->\s\n<div id="exportFTPPanel" style="display:none;margin-bottom:5px;margin-top:5px;">\s\n<table cellpadding="0" cellspacing="0" width="33%"><tr valign="top"><td>\s\n host server<br>\s\n <input type="text" id="exportFTPHost" onfocus="this.select()"><br>\s\n</td><td width="33%">\s\n username<br>\s\n <input type="text" id="exportFTPID" onfocus="this.select()"><br>\s\n</td><td width="33%">\s\n password<br>\s\n <input type="password" id="exportFTPPW" onfocus="this.select()"><br>\s\n</td></tr></table>\s\nFTP path/filename<br>\s\n<input type="text" id="exportFTPFilename" onfocus="this.select()"><br>\s\n</div><!--panel-->\s\n\s\n<!-- list of tiddlers -->\s\n<table><tr align="left"><td>\s\n select:\s\n <a href="JavaScript:;" id="exportSelectAll"\s\n onclick="onClickExportButton(this)" title="select all tiddlers">\s\n &nbsp;all&nbsp;</a>\s\n <a href="JavaScript:;" id="exportSelectChanges"\s\n onclick="onClickExportButton(this)" title="select tiddlers changed since last save">\s\n &nbsp;changes&nbsp;</a> \s\n <a href="JavaScript:;" id="exportSelectOpened"\s\n onclick="onClickExportButton(this)" title="select tiddlers currently being displayed">\s\n &nbsp;opened&nbsp;</a> \s\n <a href="JavaScript:;" id="exportToggleFilter"\s\n onclick="onClickExportButton(this)" title="show/hide selection filter">\s\n &nbsp;filter&nbsp;</a> \s\n</td><td align="right">\s\n <a href="JavaScript:;" id="exportListSmaller"\s\n onclick="onClickExportButton(this)" title="reduce list size">\s\n &nbsp;&#150;&nbsp;</a>\s\n <a href="JavaScript:;" id="exportListLarger"\s\n onclick="onClickExportButton(this)" title="increase list size">\s\n &nbsp;+&nbsp;</a>\s\n</td></tr></table>\s\n<select id="exportList" multiple size="10" style="margin-bottom:5px;"\s\n onchange="refreshExportList(this.selectedIndex)">\s\n</select><br>\s\n\s\n<!-- selection filter -->\s\n<div id="exportFilterPanel" style="display:none">\s\n<table><tr align="left"><td>\s\n selection filter\s\n</td><td align="right">\s\n <a href="JavaScript:;" id="exportHideFilter"\s\n onclick="onClickExportButton(this)" title="hide selection filter">hide</a>\s\n</td></tr></table>\s\n<div class="box">\s\n<input type="checkbox" class="chk" id="exportFilterStart" value="1"\s\n onclick="exportShowFilterFields(this)"> starting date/time<br>\s\n<table cellpadding="0" cellspacing="0"><tr valign="center"><td width="50%">\s\n <select size=1 id="exportFilterStartBy" onchange="exportShowFilterFields(this);">\s\n <option value="0">today</option>\s\n <option value="1">yesterday</option>\s\n <option value="7">a week ago</option>\s\n <option value="30">a month ago</option>\s\n <option value="site">SiteDate</option>\s\n <option value="file">file date</option>\s\n <option value="other">other (mm/dd/yyyy hh:mm)</option>\s\n </select>\s\n</td><td width="50%">\s\n <input type="text" id="exportStartDate" onfocus="this.select()"\s\n onchange="document.getElementById(\s'exportFilterStartBy\s').value=\s'other\s';">\s\n</td></tr></table>\s\n<input type="checkbox" class="chk" id="exportFilterEnd" value="1"\s\n onclick="exportShowFilterFields(this)"> ending date/time<br>\s\n<table cellpadding="0" cellspacing="0"><tr valign="center"><td width="50%">\s\n <select size=1 id="exportFilterEndBy" onchange="exportShowFilterFields(this);">\s\n <option value="0">today</option>\s\n <option value="1">yesterday</option>\s\n <option value="7">a week ago</option>\s\n <option value="30">a month ago</option>\s\n <option value="site">SiteDate</option>\s\n <option value="file">file date</option>\s\n <option value="other">other (mm/dd/yyyy hh:mm)</option>\s\n </select>\s\n</td><td width="50%">\s\n <input type="text" id="exportEndDate" onfocus="this.select()"\s\n onchange="document.getElementById(\s'exportFilterEndBy\s').value=\s'other\s';">\s\n</td></tr></table>\s\n<input type="checkbox" class="chk" id=exportFilterTags value="1"\s\n onclick="exportShowFilterFields(this)"> match tags<br>\s\n<input type="text" id="exportTags" onfocus="this.select()">\s\n<input type="checkbox" class="chk" id=exportFilterText value="1"\s\n onclick="exportShowFilterFields(this)"> match titles/tiddler text<br>\s\n<input type="text" id="exportText" onfocus="this.select()">\s\n</div> <!--box-->\s\n</div> <!--panel-->\s\n\s\n<!-- action buttons -->\s\n<div style="text-align:center">\s\n<input type=button class="btn3" onclick="onClickExportButton(this)"\s\n id="exportFilter" value="apply filter">\s\n<input type=button class="btn3" onclick="onClickExportButton(this)"\s\n id="exportStart" value="export tiddlers">\s\n<input type=button class="btn3" onclick="onClickExportButton(this)"\s\n id="exportClose" value="close">\s\n</div><!--center-->\s\n';\n//}}}\n// //===\n\n// // +++[initialize interface]>\n// // +++[exportShowPanel(which)]\n//{{{\nfunction exportShowPanel(which) {\n var index=0; var panel='exportLocalPanel';\n switch (which) {\n case 'file:':\n case undefined:\n index=0; panel='exportLocalPanel'; break;\n case 'http:':\n index=1; panel='exportHTTPPanel'; break;\n case 'https:':\n index=2; panel='exportHTTPPanel'; break;\n case 'ftp:':\n index=3; panel='exportFTPPanel'; break;\n default:\n alert("Sorry, export to "+which+" is not yet available");\n break;\n }\n exportInitPanel(which);\n document.getElementById('exportTo').selectedIndex=index;\n document.getElementById('exportLocalPanel').style.display='none';\n document.getElementById('exportHTTPPanel').style.display='none';\n document.getElementById('exportFTPPanel').style.display='none';\n document.getElementById(panel).style.display='block';\n}\n//}}}\n// //===\n\n// // +++[exportInitPanel(which)]\n//{{{\nfunction exportInitPanel(which) {\n switch (which) {\n case "file:": // LOCAL EXPORT PANEL: file/path:\n // ** no init - security issues in IE **\n break;\n case "http:": // WEB EXPORT PANEL\n case "https:": // SECURE WEB EXPORT PANEL\n // url\n var siteURL=store.getTiddlerText("SiteUrl");\n if (store.tiddlerExists("unawiki_download")) {\n var theURL=store.getTiddlerText("unawiki_download");\n theURL=theURL.replace(/\s[\s[download\s|/,'').replace(/\s]\s]/,'');\n var title=(store.tiddlerExists("unawiki_host"))?"unawiki_host":"SiteHost";\n var theHost=store.getTiddlerText(title);\n if (!theHost || !theHost.length) theHost=document.location.host;\n if (!theHost || !theHost.length) theHost=title;\n siteURL=which+"//"+theHost+theURL\n }\n if (!siteURL) siteURL="SiteUrl";\n document.getElementById("exportHTTPSiteURL").value=siteURL;;\n // server script/params\n var title=(store.tiddlerExists("unawiki_host"))?"unawiki_host":"SiteHost";\n var theHost=store.getTiddlerText(title);\n if (!theHost || !theHost.length) theHost=document.location.host;\n if (!theHost || !theHost.length) theHost=title;\n // get POST\n var title=(store.tiddlerExists("unawiki_post"))?"unawiki_post":"SitePost";\n var thePost=store.getTiddlerText(title);\n if (!thePost || !thePost.length) thePost="/"+title;\n // get PARAMS\n var title=(store.tiddlerExists("unawiki_params"))?"unawiki_params":"SiteParams";\n var theParams=store.getTiddlerText(title);\n if (!theParams|| !theParams.length) theParams=title;\n var serverURL = which+"//"+theHost+thePost+"?"+theParams;\n document.getElementById("exportHTTPServerURL").value=serverURL;\n break;\n case "ftp:": // FTP EXPORT PANEL\n // host\n var siteHost=store.getTiddlerText("SiteHost");\n if (!siteHost || !siteHost.length) siteHost=document.location.host;\n if (!siteHost || !siteHost.length) siteHost="SiteHost";\n document.getElementById("exportFTPHost").value=siteHost;\n // username\n var siteID=store.getTiddlerText("SiteID");\n if (!siteID || !siteID.length) siteID=config.options.txtUserName;\n document.getElementById("exportFTPID").value=siteID;\n // password\n document.getElementById("exportFTPPW").value="";\n // file/path\n document.getElementById("exportFTPFilename").value="";\n break;\n }\n}\n//}}}\n// //===\n\n// // +++[exportInitFilter()]\n//{{{\nfunction exportInitFilter() {\n // TBD: persistent settings via local cookies\n // start date\n document.getElementById("exportFilterStart").checked=false;\n document.getElementById("exportStartDate").value="";\n // end date\n document.getElementById("exportFilterEnd").checked=false;\n document.getElementById("exportEndDate").value="";\n // tags\n document.getElementById("exportFilterTags").checked=false;\n document.getElementById("exportTags").value="not excludeExport";\n // text\n document.getElementById("exportFilterText").checked=false;\n document.getElementById("exportText").value="";\n // show/hide filter input fields\n exportShowFilterFields();\n}\n//}}}\n// //===\n\n// // +++[exportShowFilterFields(which)]\n//{{{\nfunction exportShowFilterFields(which) {\n var show;\n\n show=document.getElementById('exportFilterStart').checked;\n document.getElementById('exportFilterStartBy').style.display=show?"block":"none";\n document.getElementById('exportStartDate').style.display=show?"block":"none";\n var val=document.getElementById('exportFilterStartBy').value;\n document.getElementById('exportStartDate').value\n =getFilterDate(val,'exportStartDate').formatString(config.macros.exportTiddlers.datetimefmt);\n if (which && (which.id=='exportFilterStartBy') && (val=='other'))\n document.getElementById('exportStartDate').focus();\n\n show=document.getElementById('exportFilterEnd').checked;\n document.getElementById('exportFilterEndBy').style.display=show?"block":"none";\n document.getElementById('exportEndDate').style.display=show?"block":"none";\n var val=document.getElementById('exportFilterEndBy').value;\n document.getElementById('exportEndDate').value\n =getFilterDate(val,'exportEndDate').formatString(config.macros.exportTiddlers.datetimefmt);\n if (which && (which.id=='exportFilterEndBy') && (val=='other'))\n document.getElementById('exportEndDate').focus();\n\n show=document.getElementById('exportFilterTags').checked;\n document.getElementById('exportTags').style.display=show?"block":"none";\n\n show=document.getElementById('exportFilterText').checked;\n document.getElementById('exportText').style.display=show?"block":"none";\n}\n//}}}\n// //===\n// //===\n\n// // +++[onClickExportButton(which): control interactions]\n//{{{\nfunction onClickExportButton(which)\n{\n // DEBUG alert(which.id);\n var theList=document.getElementById('exportList'); if (!theList) return;\n var count = 0;\n var total = store.getTiddlers('title').length;\n switch (which.id)\n {\n case 'exportFilter':\n count=filterExportList();\n var panel=document.getElementById('exportFilterPanel');\n if (count==-1) { panel.style.display='block'; break; }\n theList.options[0].text=formatExportListHeader(count,total);\n document.getElementById("exportStart").disabled=(count==0);\n clearMessage(); displayMessage("filtered "+theList.options[0].text);\n if (count==0) { alert("No tiddlers were selected"); panel.style.display='block'; }\n break;\n case 'exportStart':\n exportTiddlers();\n break;\n case 'exportHideFilter':\n case 'exportToggleFilter':\n var panel=document.getElementById('exportFilterPanel')\n panel.style.display=(panel.style.display=='block')?'none':'block';\n break;\n case 'exportSelectChanges':\n var lastmod=new Date(document.lastModified);\n for (var t = 0; t < theList.options.length; t++) {\n if (theList.options[t].value=="") continue;\n var tiddler=store.getTiddler(theList.options[t].value); if (!tiddler) continue;\n theList.options[t].selected=(tiddler.modified>lastmod);\n count += (tiddler.modified>lastmod)?1:0;\n }\n theList.options[0].text=formatExportListHeader(count,total);\n document.getElementById("exportStart").disabled=(count==0);\n clearMessage(); displayMessage(theList.options[0].text);\n if (count==0) alert("There are no unsaved changes");\n break;\n case 'exportSelectAll':\n for (var t = 0; t < theList.options.length; t++) {\n if (theList.options[t].value=="") continue;\n theList.options[t].selected=true;\n count += 1;\n }\n theList.options[0].text=formatExportListHeader(count,count);\n document.getElementById("exportStart").disabled=(count==0);\n clearMessage(); displayMessage(theList.options[0].text);\n break;\n case 'exportSelectOpened':\n for (var t = 0; t < theList.options.length; t++) theList.options[t].selected=false;\n var tiddlerDisplay = document.getElementById("tiddlerDisplay");\n for (var t=0;t<tiddlerDisplay.childNodes.length;t++) {\n var tiddler=tiddlerDisplay.childNodes[t].id.substr(7);\n for (var i = 0; i < theList.options.length; i++) {\n if (theList.options[i].value!=tiddler) continue;\n theList.options[i].selected=true; count++; break;\n }\n }\n theList.options[0].text=formatExportListHeader(count,total);\n document.getElementById("exportStart").disabled=(count==0);\n clearMessage(); displayMessage(theList.options[0].text);\n if (count==0) alert("There are no tiddlers currently opened");\n break;\n case 'exportListSmaller': // decrease current listbox size\n var min=5;\n theList.size-=(theList.size>min)?1:0;\n break;\n case 'exportListLarger': // increase current listbox size\n var max=(theList.options.length>25)?theList.options.length:25;\n theList.size+=(theList.size<max)?1:0;\n break;\n case 'exportClose':\n document.getElementById('exportPanel').style.display='none';\n break;\n }\n}\n//}}}\n// //===\n\n// // +++[list display]\n//{{{\nfunction formatExportListHeader(count,total)\n{\n var txt=total+' tiddler'+((total!=1)?'s':'')+" - ";\n txt += (count==0)?"none":(count==total)?"all":count;\n txt += " selected for export";\n return txt;\n}\n\nfunction refreshExportList(selectedIndex)\n{\n var theList = document.getElementById("exportList");\n var sort;\n if (!theList) return;\n // get the sort order\n if (!selectedIndex) selectedIndex=0;\n if (selectedIndex==0) sort='modified';\n if (selectedIndex==1) sort='title';\n if (selectedIndex==2) sort='modified';\n if (selectedIndex==3) sort='modifier';\n\n // get the alphasorted list of tiddlers\n var tiddlers = store.getTiddlers('title');\n // unselect headings and count number of tiddlers actually selected\n var count=0;\n for (var i=0; i<theList.options.length; i++) {\n if (theList.options[i].value=="") theList.options[i].selected=false;\n count+=theList.options[i].selected?1:0;\n }\n // disable "export" button if no tiddlers selected\n document.getElementById("exportStart").disabled=(count==0);\n // update listbox heading to show selection count\n if (theList.options.length)\n theList.options[0].text=formatExportListHeader(count,tiddlers.length);\n\n // if a [command] item, reload list... otherwise, no further refresh needed\n if (selectedIndex>3) return;\n\n // clear current list contents\n while (theList.length > 0) { theList.options[0] = null; }\n // add heading and control items to list\n var i=0;\n var indent=String.fromCharCode(160)+String.fromCharCode(160);\n theList.options[i++]=\n new Option(formatExportListHeader(0,tiddlers.length), "",false,false);\n theList.options[i++]=\n new Option(((sort=="title" )?">":indent)+' [by title]', "",false,false);\n theList.options[i++]=\n new Option(((sort=="modified")?">":indent)+' [by date]', "",false,false);\n theList.options[i++]=\n new Option(((sort=="modifier")?">":indent)+' [by author]', "",false,false);\n // output the tiddler list\n switch(sort)\n {\n case "title":\n for(var t = 0; t < tiddlers.length; t++)\n theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);\n break;\n case "modifier":\n case "modified":\n var tiddlers = store.getTiddlers(sort);\n // sort descending for newest date first\n tiddlers.sort(function (a,b) {if(a[sort] == b[sort]) return(0); else return (a[sort] > b[sort]) ? -1 : +1; });\n var lastSection = "";\n for(var t = 0; t < tiddlers.length; t++)\n {\n var tiddler = tiddlers[t];\n var theSection = "";\n if (sort=="modified") theSection=tiddler.modified.toLocaleDateString();\n if (sort=="modifier") theSection=tiddler.modifier;\n if (theSection != lastSection)\n {\n theList.options[i++] = new Option(theSection,"",false,false);\n lastSection = theSection;\n }\n theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);\n }\n break;\n }\n theList.selectedIndex=selectedIndex; // select current control item\n}\n//}}}\n// //===\n\n// // +++[list filtering]\n//{{{\nfunction getFilterDate(val,id)\n{\n var result=0;\n switch (val) {\n case 'site':\n var timestamp=store.getTiddlerText("SiteDate");\n if (!timestamp) timestamp=document.lastModified;\n result=new Date(timestamp);\n break;\n case 'file':\n result=new Date(document.lastModified);\n break;\n case 'other':\n result=new Date(document.getElementById(id).value);\n break;\n default: // today=0, yesterday=1, one week=7, two weeks=14, a month=31\n var now=new Date(); var tz=now.getTimezoneOffset()*60000; now-=tz;\n var oneday=86400000;\n if (id=='exportStartDate')\n result=new Date((Math.floor(now/oneday)-val)*oneday+tz);\n else\n result=new Date((Math.floor(now/oneday)-val+1)*oneday+tz-1);\n break;\n }\n // DEBUG alert('getFilterDate('+val+','+id+')=='+result+"\snnow="+now);\n return result;\n}\n\nfunction filterExportList()\n{\n var theList = document.getElementById("exportList"); if (!theList) return -1;\n\n var filterStart=document.getElementById("exportFilterStart").checked;\n var val=document.getElementById("exportFilterStartBy").value;\n var startDate=getFilterDate(val,'exportStartDate');\n\n var filterEnd=document.getElementById("exportFilterEnd").checked;\n var val=document.getElementById("exportFilterEndBy").value;\n var endDate=getFilterDate(val,'exportEndDate');\n\n var filterTags=document.getElementById("exportFilterTags").checked;\n var tags=document.getElementById("exportTags").value;\n\n var filterText=document.getElementById("exportFilterText").checked;\n var text=document.getElementById("exportText").value;\n\n if (!(filterStart||filterEnd||filterTags||filterText)) {\n alert("Please set the selection filter");\n document.getElementById('exportFilterPanel').style.display="block";\n return -1;\n }\n if (filterStart&&filterEnd&&(startDate>endDate)) {\n var msg="starting date/time:\sn"\n msg+=startDate.toLocaleString()+"\sn";\n msg+="is later than ending date/time:\sn"\n msg+=endDate.toLocaleString()\n alert(msg);\n return -1;\n }\n\n // scan list and select tiddlers that match all applicable criteria\n var total=0;\n var count=0;\n for (var i=0; i<theList.options.length; i++) {\n // get item, skip non-tiddler list items (section headings)\n var opt=theList.options[i]; if (opt.value=="") continue;\n // get tiddler, skip missing tiddlers (this should NOT happen)\n var tiddler=store.getTiddler(opt.value); if (!tiddler) continue; \n var sel=true;\n if ( (filterStart && tiddler.modified<startDate)\n || (filterEnd && tiddler.modified>endDate)\n || (filterTags && !matchTags(tiddler,tags))\n || (filterText && (tiddler.text.indexOf(text)==-1) && (tiddler.title.indexOf(text)==-1)))\n sel=false;\n opt.selected=sel;\n count+=sel?1:0;\n total++;\n }\n return count;\n}\n//}}}\n\n//{{{\nfunction matchTags(tiddler,cond)\n{\n if (!cond||!cond.trim().length) return false;\n\n // build a regex of all tags as a big-old regex that \n // OR's the tags together (tag1|tag2|tag3...) in length order\n var tgs = store.getTags();\n if ( tgs.length == 0 ) return results ;\n var tags = tgs.sort( function(a,b){return (a[0].length<b[0].length)-(a[0].length>b[0].length);});\n var exp = "(" + tags.join("|") + ")" ;\n exp = exp.replace( /(,[\sd]+)/g, "" ) ;\n var regex = new RegExp( exp, "ig" );\n\n // build a string such that an expression that looks like this: tag1 AND tag2 OR NOT tag3\n // turns into : /tag1/.test(...) && /tag2/.test(...) || ! /tag2/.test(...)\n cond = cond.replace( regex, "/$1\s\s|/.test(tiddlerTags)" );\n cond = cond.replace( /\ssand\ss/ig, " && " ) ;\n cond = cond.replace( /\ssor\ss/ig, " || " ) ;\n cond = cond.replace( /\ss?not\ss/ig, " ! " ) ;\n\n // if a boolean uses a tag that doesn't exist - it will get left alone \n // (we only turn existing tags into actual tests).\n // replace anything that wasn't found as a tag, AND, OR, or NOT with the string "false"\n // if the tag doesn't exist then /tag/.test(...) will always return false.\n cond = cond.replace( /(\ss|^)+[^\s/\s|&!][^\ss]*/g, "false" ) ;\n\n // make a string of the tags in the tiddler and eval the 'cond' string against that string \n // if it's TRUE then the tiddler qualifies!\n var tiddlerTags = (tiddler.tags?tiddler.tags.join("|"):"")+"|" ;\n try { if ( eval( cond ) ) return true; }\n catch( e ) { displayMessage("Error in tag filter '" + e + "'" ); }\n return false;\n}\n//}}}\n// //===\n\n// // +++[output data formatting]>\n// // +++[exportHeader(format)]\n//{{{\nfunction exportHeader(format)\n{\n switch (format) {\n case "TW": return exportTWHeader();\n case "DIV": return exportDIVHeader();\n case "XML": return exportXMLHeader();\n }\n}\n//}}}\n// //===\n\n// // +++[exportFooter(format)]\n//{{{\nfunction exportFooter(format)\n{\n switch (format) {\n case "TW": return exportDIVFooter();\n case "DIV": return exportDIVFooter();\n case "XML": return exportXMLFooter();\n }\n}\n//}}}\n// //===\n\n// // +++[exportTWHeader()]\n//{{{\nfunction exportTWHeader()\n{\n // Get the URL of the document\n var originalPath = document.location.toString();\n // Check we were loaded from a file URL\n if(originalPath.substr(0,5) != "file:")\n { alert(config.messages.notFileUrlError); return; }\n // Remove any location part of the URL\n var hashPos = originalPath.indexOf("#"); if(hashPos != -1) 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 // Load the original file\n var original = loadFile(localPath);\n if(original == null)\n { alert(config.messages.cantSaveError); return; }\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n { alert(config.messages.invalidFileError.format([localPath])); return; }\n return original.substr(0,posOpeningDiv+startSaveArea.length)\n}\n//}}}\n// //===\n\n// // +++[exportDIVHeader()]\n//{{{\nfunction exportDIVHeader()\n{\n var out=[];\n var now = new Date();\n var u = store.getTiddlerText("SiteUrl",null);\n var title = wikifyPlain("SiteTitle").htmlEncode();\n var subtitle = wikifyPlain("SiteSubtitle").htmlEncode();\n var user = config.options.txtUserName.htmlEncode();\n var twver = version.major+"."+version.minor+"."+version.revision;\n var pver = version.extensions.exportTiddlers.major+"."\n +version.extensions.exportTiddlers.minor+"."+version.extensions.exportTiddlers.revision;\n out.push("<html><body>");\n out.push("<style type=\s"text/css\s">");\n out.push("#storeArea {display:block;margin:1em;}");\n out.push("#storeArea div");\n out.push("{padding:0.5em;margin:1em;border:2px solid black;height:10em;overflow:auto;}");\n out.push("#javascriptWarning");\n out.push("{width:100%;text-align:left;background-color:#eeeeee;padding:1em;}");\n out.push("</style>");\n out.push("<div id=\s"javascriptWarning\s">");\n out.push("TiddlyWiki export file<br>");\n out.push("Source: <b>"+document.location+"</b><br>");\n out.push("Title: <b>"+title+"</b><br>");\n out.push("Subtitle: <b>"+subtitle+"</b><br>");\n out.push("Created: <b>"+now.toLocaleString()+"</b> by <b>"+user+"</b><br>");\n out.push("TiddlyWiki "+twver+" / "+"ExportTiddlersPlugin "+pver+"<br>");\n out.push("</div>");\n out.push("<div id=\s"storeArea\s">");\n return out;\n}\n//}}}\n// //===\n\n// // +++[exportDIVFooter()]\n//{{{\nfunction exportDIVFooter()\n{\n var out=[];\n out.push("</div></body></html>");\n return out;\n}\n//}}}\n// //===\n\n// // +++[exportXMLHeader()]\n//{{{\nfunction exportXMLHeader()\n{\n var out=[];\n var now = new Date();\n var u = store.getTiddlerText("SiteUrl",null);\n var title = wikifyPlain("SiteTitle").htmlEncode();\n var subtitle = wikifyPlain("SiteSubtitle").htmlEncode();\n var user = config.options.txtUserName.htmlEncode();\n var twver = version.major+"."+version.minor+"."+version.revision;\n var pver = version.extensions.exportTiddlers.major+"."\n +version.extensions.exportTiddlers.minor+"."+version.extensions.exportTiddlers.revision;\n out.push("<" + "?xml version=\s"1.0\s"?" + ">");\n out.push("<rss version=\s"2.0\s">");\n out.push("<channel>");\n out.push("<title>" + title + "</title>");\n if(u) out.push("<link>" + u.htmlEncode() + "</link>");\n out.push("<description>" + subtitle + "</description>");\n out.push("<language>en-us</language>");\n out.push("<copyright>Copyright " + now.getFullYear() + " " + user + "</copyright>");\n out.push("<pubDate>" + now.toGMTString() + "</pubDate>");\n out.push("<lastBuildDate>" + now.toGMTString() + "</lastBuildDate>");\n out.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>");\n out.push("<generator>TiddlyWiki "+twver+" plus ExportTiddlersPlugin "+pver+"</generator>");\n return out;\n}\n//}}}\n// //===\n\n// // +++[exportXMLFooter()]\n//{{{\nfunction exportXMLFooter()\n{\n var out=[];\n out.push("</channel></rss>");\n return out;\n}\n//}}}\n// //===\n\n// // +++[exportData()]\n//{{{\nfunction exportData(theList,theFormat)\n{\n // scan export listbox and collect DIVs or XML for selected tiddler content\n var out=[];\n for (var i=0; i<theList.options.length; i++) {\n // get item, skip non-selected items and section headings\n var opt=theList.options[i]; if (!opt.selected||(opt.value=="")) continue;\n // get tiddler, skip missing tiddlers (this should NOT happen)\n var thisTiddler=store.getTiddler(opt.value); if (!thisTiddler) continue; \n if (theFormat=="TW") out.push(thisTiddler.saveToDiv());\n if (theFormat=="DIV") out.push(thisTiddler.title+"\sn"+thisTiddler.saveToDiv());\n if (theFormat=="XML") out.push(thisTiddler.saveToRss());\n }\n return out;\n}\n//}}}\n// //===\n// //===\n\n// // +++[exportTiddlers(): output selected data to local or server]\n//{{{\nfunction exportTiddlers()\n{\n var theList = document.getElementById("exportList"); if (!theList) return;\n\n // get the export settings\n var theProtocol = document.getElementById("exportTo").value;\n var theFormat = document.getElementById("exportFormat").value;\n\n // assemble output: header + tiddlers + footer\n var theData=exportData(theList,theFormat);\n var count=theData.length;\n var out=[]; var txt=out.concat(exportHeader(theFormat),theData,exportFooter(theFormat)).join("\sn");\n var msg="";\n switch (theProtocol) {\n case "file:":\n var theTarget = document.getElementById("exportFilename").value.trim();\n if (!theTarget.length) msg = "A local path/filename is required\sn";\n if (!msg && saveFile(theTarget,txt))\n msg=count+" tiddler"+((count!=1)?"s":"")+" exported to local file";\n else if (!msg)\n msg+="An error occurred while saving to "+theTarget;\n break;\n case "http:":\n case "https:":\n var theTarget = document.getElementById("exportHTTPServerURL").value.trim();\n if (!theTarget.length) msg = "A server URL is required\sn";\n if (!msg && exportPost(theTarget+encodeURIComponent(txt)))\n msg=count+" tiddler"+((count!=1)?"s":"")+" exported to "+theProtocol+" server";\n else if (!msg)\n msg+="An error occurred while saving to "+theTarget;\n break;\n case "ftp:":\n default:\n msg="Sorry, export to "+theLocation+" is not yet available";\n break;\n }\n clearMessage(); displayMessage(msg,theTarget);\n}\n//}}}\n// //===\n\n// // +++[exportPost(url): cross-domain post] uses hidden iframe to submit url and capture responses\n//{{{\nfunction exportPost(url)\n{\n var f=document.getElementById("exportFrame"); if (f) document.body.removeChild(f);\n f=document.createElement("iframe"); f.id="exportFrame";\n f.style.width="0px"; f.style.height="0px"; f.style.border="0px";\n document.body.appendChild(f);\n var d=f.document;\n if (f.contentDocument) d=f.contentDocument; // For NS6\n else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6\n d.location.replace(url);\n return true;\n}\n//}}}\n// //===\n
+++(gtdProjectsSliderState)[Projects]<<list tagged project>>===\n+++(gtdActionsSliderState)[Actions]<<list tagged context>>===\n+++(gtdReviewSliderState)[Review]\n*[[Project Review]]\n*[[Action Review]]\n*[[Reminders]]\n===\n+++(gtdJournalSliderState)[Journals]<<list tagged journal>>===\n\n<<newerTiddler button:"Create new project" name:"NewProject" tags:"project" template:"NewProjectTemplate">> <<newerTiddler button:"Create new context" name:"NewContext" tags:"context" template:"NewContextTemplate">>\n[[Reference]] [[Someday-Maybe]]\n+++[Calendar|Show a calendar]<<calendar thismonth>>===\n\n[[Configuration|Configuration]][[Configuration Options|Configuration Options]] [[Check for Updates|UpdateApplication]] [[Archives]]
/***\n''Name:'' GTDPlugins\n''Author:'' Tom Otvos\n''Version:'' <<gtdVersion>>\n\n''Macros:''\n*{{{<<gtdAction "}}}//title//{{{" "}}}//context list//{{{">>}}}\n*{{{<<gtdActionList {"}}}//context list//{{{" | "*" | "@" {"all"} }>>}}}\n** //if no parameters are specified, current context or project is used//\n** //specify "*" for actions across all projects, "@" for incomplete actions across all contexts (or "all" for all actions)//\n*{{{<<list tagged "}}}//tag list//{{{" {any | all}>>}}}\n** //if no parameters are specified, all tags are necessary//\n*{{{<<importUpdates "}}}//url//{{{" {updates | all} "}}}//buttonTitle//{{{" "}}}//buttonHelp//{{{" "}}}//importTiddlers params...//{{{">>}}}\n*{{{<<gtdArchive { archive | unarchive | purge }>>}}}\n\n''Commands:''\n*{{{newAction}}}\n*{{{newProjectAction}}}\n*{{{changeContext}}}\n*{{{deleteAction}}}\n*{{{deleteContext}}}\n*{{{deleteProject}}}\n*{{{deleteProjectAll}}}\n*{{{projectify}}}\n\n''Wiki formatting:''\n*{{{..new action title|context}}}\n\n***/\n//{{{\n\nversion.extensions.GTDPlugins = {major: 1, minor: 0, revision: 10, date: new Date(2006,4,26,0,0,0,0), source: "http://www.dcubed.ca/"};\n\nvar _GTD = {\n\n initialize: function ()\n {\n if (config.options.txtGTDReferenceContext == undefined) config.options.txtGTDReferenceContext = "reference";\n if (config.options.txtGTDSomedayContext == undefined) config.options.txtGTDSomedayContext = "someday";\n if (config.options.txtGTDUnfiledContext == undefined) config.options.txtGTDUnfiledContext = "unfiled";\n if (config.options.txtGTDActionAging == undefined) config.options.txtGTDActionAging = "";\n if (config.options.chkGTDFancyStyle == undefined) config.options.chkGTDFancyStyle = true;\n \n // some tricks to work when our script is loaded from an external file...\n if (!store) config.notifyTiddlers.push( {name: "GTDStyleSheet", notify: refreshStyles} );\n if (!store && config.options.chkGTDFancyStyle) config.notifyTiddlers.push( {name: "GTDTWStyleSheet", notify: refreshStyles} );\n if (!store) config.notifyTiddlers.push( {name: null, notify: _GTD.refreshActionViews} );\n if (!store) return;\n\n var tiddlers = [];\n tiddlers = tiddlers.concat(store.getTaggedTiddlers("project"), store.getTaggedTiddlers("context"), store.getTaggedTiddlers("action"));\n for (var i = 0; i < tiddlers.length; i++)\n tiddlers[i].changed();\n store.addNotification("GTDStyleSheet", refreshStyles);\n if (config.options.chkGTDFancyStyle) store.addNotification("GTDTWStyleSheet", refreshStyles);\n store.addNotification(null, _GTD.refreshActionViews);\n \n // force a display of release notes, if required\n var v = version.extensions.GTDPlugins;\n var releaseNotesTiddler = "About version " + v.major + '.' + v.minor + '.' + v.revision;\n if ((config.options.chkGTDReleaseNotes || config.options.chkGTDReleaseNotes == undefined) && store.tiddlerExists(releaseNotesTiddler)) {\n params = "open:\s"" + releaseNotesTiddler + "\s"";\n params = params.parseParams("open",null,false);\n config.options.chkGTDReleaseNotes = false;\n saveOptionCookie("chkGTDReleaseNotes");\n }\n },\n\n tiddlerHasTag: function (tiddler, tag)\n {\n if (typeof(tiddler) == "string") tiddler = store.getTiddler(tiddler);\n if (tiddler.tags.length == 0) return false;\n return (tiddler.tags.find(tag) != null);\n },\n \n tiddlerSwapTag: function (tiddler, oldTag, newTag)\n {\n for (var i = 0; i < tiddler.tags.length; i++)\n if (tiddler.tags[i] == oldTag) {\n tiddler.tags[i] = newTag;\n return true;\n }\n return false;\n },\n \n tiddlerHasChanged: function (tiddler, doSave)\n {\n tiddler.changed();\n //story.setDirty(tiddler.title, true);\n store.setDirty(true);\n if (doSave == undefined) doSave = true;\n if (config.options.chkAutoSave && doSave)\n saveChanges();\n },\n \n tiddlerAgeInDays: function(tiddler)\n {\n var now = new Date();\n return (now.getTime() - tiddler.modified.getTime()) / 1000 / 86400;\n },\n \n filteredActionTags: function (tags, filterTitle)\n {\n var actionTags = [];\n for (var i = 0; i < tags.length; i++)\n if (tags[i] != "action" && tags[i] != "done" && tags[i] != "floating" && tags[i] != filterTitle) actionTags.push(tags[i]);\n return actionTags;\n },\n \n toggleTag: function (tiddler, tag, toggle)\n {\n var tagIndex = -1;\n for (var i = 0; i < tiddler.tags.length; i++)\n if (tiddler.tags[i] == tag) {\n tagIndex = i;\n break;\n }\n \n if (toggle && tagIndex == -1) {\n tiddler.tags.push(tag);\n }\n else if (!toggle && tagIndex != -1) {\n tiddler.tags.splice(tagIndex, 1);\n }\n },\n \n refreshActionViews: function (tiddler)\n {\n if (tiddler) {\n if (typeof(tiddler) == "string") tiddler = store.getTiddler(tiddler);\n if (tiddler) {\n // do not do anything if we are not an action!\n if (!_GTD.tiddlerHasTag(tiddler, "action")) return;\n story.refreshTiddler(tiddler.title, null, true);\n for (var i = 0; i < tiddler.tags.length; i++)\n if (tiddler.tags[i] != "action" && tiddler.tags[i] != "done") {\n story.refreshTiddler(tiddler.tags[i], null, true);\n }\n }\n }\n \n var specialTiddlers = store.getTaggedTiddlers("review");\n for (var i = 0; i < specialTiddlers.length; i++)\n story.refreshTiddler(specialTiddlers[i].title, null, true);\n },\n \n appendProjectAction: function(projectTiddler, actionTitle, actionContext)\n {\n var actionInsertionPoint = -1, actionLeadin = "";\n \n var reActionWikitext = "^\s\s.{2}([^|\sn]+)(?:\s\s|?)(.*).*$";\n var reActionMacro = "(.*)<<gtdAction ((?:[^>]|(?:>(?!>)))*)>>.*$";\n var actionRe = new RegExp("(" + reActionWikitext + ")|(" + reActionMacro + ")", "mg");\n do {\n var formatMatch = actionRe.exec(projectTiddler.text);\n if (formatMatch) {\n actionLeadin = (formatMatch[1] ? "" : formatMatch[5]);\n actionInsertionPoint = actionRe.lastIndex;\n }\n } while(formatMatch);\n \n var actionProto = "\sn" + actionLeadin + "<<gtdAction \s"" + actionTitle + "\s" \s"" + actionContext + "\s">>";\n if (actionInsertionPoint == -1)\n projectTiddler.text += actionProto;\n else\n projectTiddler.text = projectTiddler.text.substring(0, actionInsertionPoint) + actionProto + projectTiddler.text.substr(actionInsertionPoint + 1);\n \n this.tiddlerHasChanged(projectTiddler);\n this.refreshActionViews(projectTiddler);\n },\n \n removeProjectAction: function(projectTiddler, actionTitle)\n {\n //var reActionWikitext = "^(\s\s.{2})(" + actionTitle + ")((\s\s|.*\sn)|(\sn))";\n var reActionWikitext = "^(\s\s.{2})(" + actionTitle + ")((\s\s|.*\sn?)|(.*\sn?))";\n var reActionMacro = "(.*<<gtdAction [\s"\s']?)(" + actionTitle + ")([\s"\s']?\s\ss+(?:[^>]|(?:>(?!>)))*>>.*\sn?)";\n projectTiddler.text = projectTiddler.text.replace(new RegExp(reActionWikitext, "mg"), "");\n projectTiddler.text = projectTiddler.text.replace(new RegExp(reActionMacro, "mg"), "");\n projectTiddler.changed();\n story.refreshTiddler(projectTiddler.title, null, true);\n },\n \n saveWithForcedBackup: function()\n {\n var saveBackups = config.options.chkSaveBackups;\n config.options.chkSaveBackups = true;\n saveChanges();\n config.options.chkSaveBackups = saveBackups;\n },\n \n isNextAction: function(actionTiddler)\n {\n if (actionTiddler.gtdProject && actionTiddler == actionTiddler.gtdProject.gtdNextAction)\n return true;\n return this.tiddlerHasTag(actionTiddler, "floating");\n }\n};\n\nconfig.macros.gtdVersion = {}\nconfig.macros.gtdVersion.handler = function(place)\n{\n var v = version.extensions.GTDPlugins;\n createTiddlyElement(place, "span", null, null, v.major + "." + v.minor + "." + v.revision + (v.beta ? " (beta " + v.beta + ")" : ""));\n}\n\nconfig.macros.list.tagged = {}\nconfig.macros.list.tagged.innerHandler = function(tagList, allTags)\n{\n var tiddlers = store.getTaggedTiddlers(tagList[0]);\n\n if (allTags) {\n var results = [];\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i], hasAllTags = true;\n for (var j = 1; hasAllTags && j < tagList.length; j++)\n hasAllTags &= _GTD.tiddlerHasTag(tiddler, tagList[j]);\n if (hasAllTags) results.push(tiddlers[i]);\n }\n return results;\n }\n else {\n for (var i = 1; i < tagList.length; i++) {\n var more = store.getTaggedTiddlers(tagList[i]);\n for (var j = 0; j < more.length; j++)\n tiddlers.pushUnique(more[j]);\n }\n return tiddlers;\n }\n}\nconfig.macros.list.tagged.handler = function(params) \n{\n var tags = params[1].readBracketedList();\n if (tags.length == 1) {\n if (config.options[tags[0]] == undefined)\n return store.getTaggedTiddlers(tags[0]);\n else\n return store.getTaggedTiddlers(config.options[tags[0]]);\n }\n else if (tags.length > 1) {\n var allTags = (params[2] == undefined || params[2] == 'all');\n var tiddlers = this.innerHandler(tags, allTags);\n tiddlers.sort(function (a,b) {if(a.title == b.title) return(0); else return (a.title < b.title) ? -1 : +1; });\n return tiddlers;\n }\n}\n\nconfig.macros.gtdAction = {}\nconfig.macros.gtdAction.createActionElement = function(place, actionTiddler, parentTiddler, tags)\n{\n if (typeof(actionTiddler) == "string") actionTiddler = store.getTiddler(actionTiddler);\n \n var actionElement = createTiddlyElement(place, "span", null, "gtdActionItem");\n // oddly, we barf when setting the checkbox type on an input if we use createTiddlyElement...\n var cb = document.createElement("input");\n cb.setAttribute("type", "checkbox");\n cb.setAttribute("actionTiddler", actionTiddler.title);\n cb.setAttribute("contextTiddler", parentTiddler);\n cb.onclick = this.onClickDone;\n actionElement.appendChild(cb);\n cb.checked = actionTiddler.gtdActionDone;\n createTiddlyLink(actionElement, actionTiddler.title, true);\n if (actionTiddler.gtdActionDone) actionElement.className = "gtdCompletedActionItem";\n if (_GTD.isNextAction(actionTiddler)) actionElement.className = "gtdNextActionItem";\n \n var actionTags = _GTD.filteredActionTags(tags, parentTiddler);\n //if (actionTags.length > 0) createTiddlyText(actionElement, " (" + actionTags.join(",") + ")");\n if (actionTags.length > 0) {\n createTiddlyText(actionElement, " [");\n for (var i = 0; i < actionTags.length; i++) {\n if (i > 0) createTiddlyText(actionElement, ", ");\n createTiddlyLink(actionElement, actionTags[i], true, "actionCrossReference");\n }\n createTiddlyText(actionElement, "]");\n }\n \n /*\n if (actionTiddler.gtdProject && actionTiddler.gtdProjectName != parentTiddler) {\n createTiddlyText(actionElement, " [");\n createTiddlyLink(actionElement, actionTiddler.gtdProjectName, true);\n createTiddlyText(actionElement, "]");\n }\n else {\n var actionTags = _GTD.filteredActionTags(tags, parentTiddler);\n if (actionTags.length > 0) createTiddlyText(actionElement, " (" + actionTags.join(",") + ")");\n }\n */\n \n return actionElement;\n}\n\nconfig.macros.gtdAction.onClickDone = function(e)\n{\n var tiddler = store.getTiddler(this.getAttribute("actionTiddler"));\n if (tiddler) {\n _GTD.toggleTag(tiddler, "done", this.checked);\n tiddler.gtdActionDone = this.checked;\n _GTD.tiddlerHasChanged(tiddler);\n _GTD.refreshActionViews(tiddler);\n }\n return true;\n}\n\nconfig.macros.gtdAction.handler = function(place,macroName,params)\n{\n var title = params[0], tags;\n var parentTiddler = story.findContainingTiddler(place).getAttribute("tiddler");\n var tiddler = store.getTiddler(title);\n if (!tiddler) {\n // we should *never* get here now for project actions, but keep code in case project code\n // trips up, or we use this macro somewhere else\n this.createAction(title, parentTiddler, params[1]);\n }\n else\n // use actual tiddler tags, not macro param, in case context changed!\n tags = tiddler.tags;\n var action = this.createActionElement(place, title, parentTiddler, tags);\n}\n\nconfig.macros.gtdAction.setNextAction = function(project)\n{\n project.gtdNextAction = null;\n for (var i = 0; i < project.gtdActions.length; i++)\n if (!project.gtdActions[i].gtdActionDone) {\n project.gtdNextAction = project.gtdActions[i];\n return;\n }\n}\n\nconfig.macros.gtdAction.createAction = function(title, parentTiddler, tagParams, extraTags)\n{\n var tags = ["action", parentTiddler];\n if (typeof(tagParams) == "string") tags = tags.concat(tagParams.readBracketedList());\n if (typeof(extraTags) == "string") tags = tags.concat(extraTags.readBracketedList());\n var templateText = store.getTiddlerText("NewActionTemplate", config.views.wikified.defaultText.format([title]));\n return store.saveTiddler(title, title, templateText, config.options.txtUserName, new Date(), tags);\n}\n\nconfig.macros.gtdActionCompleted = {}\nconfig.macros.gtdActionCompleted.handler = function(place,macroName,params)\n{\n var title = story.findContainingTiddler(place).getAttribute("tiddler");\n var tiddler = store.getTiddler(title);\n // oddly, we barf when setting the checkbox type on an input if we use createTiddlyElement...\n var cb = document.createElement("input");\n cb.setAttribute("type", "checkbox");\n cb.setAttribute("actionTiddler", title);\n cb.onclick = this.onClickDone;\n place.appendChild(cb);\n cb.checked = tiddler.gtdActionDone;\n}\n\nconfig.macros.gtdActionCompleted.onClickDone = function(e)\n{\n var tiddler = store.getTiddler(this.getAttribute("actionTiddler"));\n if (tiddler) {\n _GTD.toggleTag(tiddler, "done", this.checked);\n tiddler.gtdActionDone = this.checked;\n _GTD.tiddlerHasChanged(tiddler);\n _GTD.refreshActionViews(tiddler);\n }\n return true;\n}\n\nconfig.macros.gtdAction.inheritedChanged = Tiddler.prototype.changed;\nTiddler.prototype.changed = function()\n{\n config.macros.gtdAction.inheritedChanged();\n \n // Note that this is called both as part of normal tiddler changes AND as a part\n // of the initial TW loading process from DIVs...\n \n if (_GTD.tiddlerHasTag(this, "project")) {\n // (re)build the in-memory ordered action list\n this.gtdActions = [];\n this.gtdNextAction = null;\n if (this.text) {\n var reActionWikitext = "^\s\s.{2}([^|\sn]+)(?:\s\s|?)(.*)";\n var reActionMacro = "<<gtdAction ((?:[^>]|(?:>(?!>)))*)>>";\n var actionRe = new RegExp("(" + reActionWikitext + ")|(" + reActionMacro + ")", "mg");\n do {\n var formatMatch = actionRe.exec(this.text);\n if (formatMatch) {\n var macroParams = (formatMatch[1] ? null : formatMatch[5].readMacroParams());\n var actionTiddlerName = (formatMatch[1] ? formatMatch[2] : macroParams[0]);\n var actionTiddler = store.getTiddler(actionTiddlerName);\n if (!actionTiddler) {\n var actionTags = (formatMatch[1] ? formatMatch[3] : macroParams[1]);\n var extraTags = (formatMatch[1] ? '' : macroParams[2]);\n actionTiddler = config.macros.gtdAction.createAction(actionTiddlerName, this.title, actionTags, extraTags);\n }\n if (actionTiddler) {\n actionTiddler.gtdProject = this;\n if (this.gtdNextAction == null && !_GTD.tiddlerHasTag(actionTiddler, "done"))\n this.gtdNextAction = actionTiddler;\n this.gtdActions.push(actionTiddler);\n // handle project renaming in action\n if (actionTiddler.gtdProjectName && actionTiddler.gtdProjectName != this.title) {\n _GTD.tiddlerSwapTag(actionTiddler, actionTiddler.gtdProjectName, this.title);\n // action view won't get updated through any other refresh mechanism, so\n story.refreshTiddler(actionTiddler.title, null, true);\n }\n actionTiddler.gtdProjectName = this.title;\n }\n }\n } while(formatMatch);\n }\n }\n \n else if (_GTD.tiddlerHasTag(this, "context")) {\n if (this.gtdContextName == undefined)\n this.gtdContextName = this.title;\n else if (this.gtdContextName != this.title) {\n // propagate renamed context to affected actions\n var results = config.macros.list.tagged.innerHandler([ this.gtdContextName, "action"], true);\n for (var t = 0; t < results.length; t++) {\n _GTD.tiddlerSwapTag(results[t], this.gtdContextName, this.title);\n // action view won't get updated through any other refresh mechanism, so\n story.refreshTiddler(results[t].title, null, true);\n }\n this.gtdContextName = this.title;\n }\n }\n \n else if (_GTD.tiddlerHasTag(this, "action")) {\n if (this.gtdActionName == undefined)\n this.gtdActionName = this.title;\n else if (this.gtdActionName != this.title && this.gtdProject) {\n // ugh...dig into related project and update the wiki code to use new action name\n var reActionWikitext = "^(\s\s.{2})(" + this.gtdActionName + ")((\s\s|.*\sn)|(\sn))";\n var reActionMacro = "(<<gtdAction [\s"\s']?)(" + this.gtdActionName + ")([\s"\s']?\s\ss+(?:[^>]|(?:>(?!>)))*>>)";\n this.gtdProject.text = this.gtdProject.text.replace(new RegExp(reActionWikitext, "mg"), "$1" + this.title + "$3");\n this.gtdProject.text = this.gtdProject.text.replace(new RegExp(reActionMacro, "mg"), "$1" + this.title + "$3");\n this.gtdActionName = this.title;\n }\n this.gtdActionDone = _GTD.tiddlerHasTag(this, "done");\n // reset the next action on the associated project\n if (this.gtdProject) config.macros.gtdAction.setNextAction(this.gtdProject);\n }\n}\n\nconfig.formatters.push(\n {\n name: "gtdAction",\n match: "^\s\s.\s\s..*",\n lookahead: "^\s\s.\s\s.([^|]*)(?:\s\s|?)(.*)",\n handler: function(w)\n {\n var lookaheadRegExp = new RegExp(this.lookahead,"g");\n var lookaheadMatch = lookaheadRegExp.exec(w.matchText)\n if (lookaheadMatch) {\n var params = [ lookaheadMatch[1] ];\n if (lookaheadMatch[2].length > 0) params.push(lookaheadMatch[2]);\n config.macros.gtdAction.handler(w.output, "gtdAction", params);\n }\n }\n }\n);\n\nconfig.commands.newAction = { text: "action", tooltip: "Create a new action for this context", hideReadOnly: true };\nconfig.commands.newAction.handler = function(event, src, context)\n{\n var d = new Date();\n var newActionTitle = d.formatString("New Action hh:0mm:0ss");\n if (!store.tiddlerExists(newActionTitle)) {\n var tiddler = store.createTiddler(newActionTitle);\n var templateText = store.getTiddlerText("NewActionTemplate", config.views.wikified.defaultText.format([newActionTitle]));\n tiddler.assign(newActionTitle, templateText, config.options.txtUserName, new Date(), [ "action", context ]);\n \n story.displayTiddler(null, newActionTitle, DEFAULT_EDIT_TEMPLATE);\n story.focusTiddler(newActionTitle, "title");\n }\n return false;\n}\n\nconfig.commands.newProjectAction = { text: "action", tooltip: "Create a new action for this project", hideReadOnly: true };\nconfig.commands.newProjectAction.handler = function(event, src, project)\n{\n var d = new Date();\n var newActionTitle = d.formatString("New Action hh:0mm:0ss");\n if (!store.tiddlerExists(newActionTitle)) {\n var defaultContext = config.options.txtGTDUnfiledContext;\n _GTD.appendProjectAction(store.getTiddler(project), newActionTitle, defaultContext);\n \n var tiddler = store.createTiddler(newActionTitle);\n var templateText = store.getTiddlerText("NewActionTemplate", config.views.wikified.defaultText.format([newActionTitle]));\n tiddler.assign(newActionTitle, templateText, config.options.txtUserName, new Date(), [ "action", project, defaultContext ]);\n \n story.displayTiddler(null, newActionTitle, DEFAULT_EDIT_TEMPLATE);\n story.focusTiddler(newActionTitle, "title");\n }\n return false;\n}\n\nconfig.macros.gtdActionList = {}\nconfig.macros.gtdActionList.handler = function(place,macroName,params)\n{\n var theList = createTiddlyElement(place, "ul", null, "gtdActionList");\n var parentTiddler = story.findContainingTiddler(place).getAttribute("tiddler");\n var allActions = (params[1] == "all");\n var aging = parseInt(config.options.txtGTDActionAging, 10);\n aging = isNaN(aging) ? 0 : aging.clamp(0, Number.MAX_VALUE);\n \n if (params[0] == "*") { // actions for all projects\n var projects = store.getTaggedTiddlers("project");\n for (var i = 0; i < projects.length; i++) {\n var project = projects[i];\n if (!allActions) {\n var skipEmptyProject = true;\n if (project.gtdActions != undefined && project.gtdActions.length > 0)\n for (var k = 0; skipEmptyProject && k < project.gtdActions.length; k++)\n skipEmptyProject = project.gtdActions[k].gtdActionDone;\n if (skipEmptyProject) continue;\n }\n var theListItem = createTiddlyElement(theList, "li", null, "gtdActionListProject");\n createTiddlyLink(theListItem, project.title, true);\n if (project.gtdActions != undefined && project.gtdActions.length > 0) {\n var subList = createTiddlyElement(theList, "ul", null, "gtdActionList");\n for (var j = 0; j < project.gtdActions.length; j++) {\n var action = project.gtdActions[j];\n if (!allActions && aging > 0 && action.gtdActionDone && _GTD.tiddlerAgeInDays(action) > aging) continue;\n var subListItem = createTiddlyElement(subList, "li");\n var el = config.macros.gtdAction.createActionElement(subListItem, action, project.title, action.tags);\n }\n }\n }\n }\n else if (params[0] == "@") { // actions for all contexts\n var contexts = store.getTaggedTiddlers("context");\n for (var i = 0; i < contexts.length; i++) {\n var context = contexts[i];\n var actions = config.macros.list.tagged.innerHandler([context.title, "action"], true);\n if (actions.length > 0) {\n var firstAction = true, theListItem, subList;\n for (var j = 0; j < actions.length; j++) {\n var currentAction = actions[j];\n // if we are not displaying all actions, filter completed actions and non-next project actions\n if (!allActions && (currentAction.gtdActionDone || (currentAction.gtdProject && !_GTD.isNextAction(currentAction)))) continue;\n if (firstAction) {\n theListItem = createTiddlyElement(theList, "li", null, "gtdActionListContext");\n createTiddlyLink(theListItem, context.title, true);\n subList = createTiddlyElement(theList, "ul", null, "gtdActionList");\n firstAction = false;\n }\n var subListItem = createTiddlyElement(subList, "li");\n var el = config.macros.gtdAction.createActionElement(subListItem, currentAction, context.title, currentAction.tags);\n }\n }\n }\n }\n else { // actions tagged by current tiddler name\n // chain to our "tagged" list macro to get the tiddlers first\n var tags = (params.length == 0 ? [ parentTiddler ] : params[0].readBracketedList());\n tags.push("action");\n var results = config.macros.list.tagged.innerHandler(tags, true);\n // ??? do we want this list sorted by action name alone ???\n results.sort(function (a,b) {if(a.title == b.title) return(0); else return (a.title < b.title) ? -1 : +1; });\n for (var t = 0; t < results.length; t++) {\n var action = results[t];\n if (!allActions && aging > 0 && action.gtdActionDone && _GTD.tiddlerAgeInDays(action) > aging) continue;\n var theListItem = createTiddlyElement(theList, "li");\n var el = config.macros.gtdAction.createActionElement(theListItem, action, parentTiddler, action.tags);\n }\n }\n}\n\nconfig.commands.changeContext = { text: "context", tooltip: "Change context of this action", hideReadOnly: true, popupNone: "There are no contexts" };\nconfig.commands.changeContext.handler = function(event,src,title)\n{\n var popup = Popup.create(src);\n if (popup) {\n var contexts = store.getTaggedTiddlers("context");\n var tiddler = store.getTiddler(title);\n var c = false;\n var currentContext = config.options.txtGTDUnfiledContext;\n for (var i = 0; i < contexts.length; i++)\n if (_GTD.tiddlerHasTag(tiddler, contexts[i].title)) {\n currentContext = contexts[i].title;\n break;\n }\n \n for (i = 0; i < contexts.length; i++)\n if (contexts[i].title != currentContext) {\n var button = createTiddlyButton(createTiddlyElement(popup, "li"), contexts[i].title, '', this.onClickContext);\n button.setAttribute("actionTiddler", title);\n button.setAttribute("oldContext", currentContext);\n button.setAttribute("newContext", contexts[i].title);\n c = true;\n }\n if (!c)\n createTiddlyText(createTiddlyElement(popup, "li", null, "disabled"), this.popupNone);\n }\n \n Popup.show(popup, false);\n event.cancelBubble = true;\n if (event.stopPropagation) event.stopPropagation();\n // do *not* cause a browser navigation\n return false;\n}\n\nconfig.commands.changeContext.onClickContext = function(e)\n{\n var tiddler = store.getTiddler(this.getAttribute("actionTiddler"));\n if (tiddler) {\n var oldContext = this.getAttribute("oldContext");\n var newContext = this.getAttribute("newContext");\n if (_GTD.tiddlerSwapTag(tiddler, oldContext, newContext)) {\n _GTD.tiddlerHasChanged(tiddler);\n _GTD.refreshActionViews(tiddler);\n // be sure to refresh old context as well...\n story.refreshTiddler(oldContext, null, true);\n }\n }\n // do *not* cause a browser navigation\n return false;\n}\n\nconfig.commands.deleteAction = { text: "delete", tooltip: "Delete this action", hideReadOnly: true, warning: "Are you sure you want to delete '%0'?", altwarning: "Are you sure you want to delete '%0'? The action will also be removed from project '%1'." };\nconfig.commands.deleteAction.handler = function(event, src, title)\n{\n var tiddler = store.getTiddler(title);\n var ok = (tiddler.gtdProject ? confirm(this.altwarning.format([title, tiddler.gtdProject.title])) : confirm(this.warning.format([title])));\n if (ok) {\n if (tiddler.gtdProject) _GTD.removeProjectAction(tiddler.gtdProject, title);\n store.removeTiddler(title);\n story.closeTiddler(title,true,event.shiftKey || event.altKey);\n if(config.options.chkAutoSave)\n saveChanges();\n }\n \n return false;\n}\n\nconfig.commands.deleteContext = { text: "delete", tooltip: "Delete this context", hideReadOnly: true, warning: "Are you sure you want to delete '%0'? All associated actions will be tagged as 'unfiled'." };\nconfig.commands.deleteContext.handler = function(event, src, title)\n{\n if (confirm(this.warning.format([title]))) {\n store.suspendNotifications();\n this.unlinkActions(title);\n store.resumeNotifications();\n store.removeTiddler(title);\n story.closeTiddler(title,true,event.shiftKey || event.altKey);\n if(config.options.chkAutoSave)\n saveChanges();\n }\n \n return false;\n}\n\nconfig.commands.deleteContext.unlinkActions = function(contextTitle)\n{\n var tiddlers = config.macros.list.tagged.innerHandler([contextTitle, "action"], true);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n _GTD.tiddlerSwapTag(tiddler, contextTitle, config.options.txtGTDUnfiledContext);\n _GTD.tiddlerHasChanged(tiddler, false);\n // context removal will do view notification...\n }\n}\n\nconfig.commands.deleteProject = { text: "delete", tooltip: "Delete this project", hideReadOnly: true, warning: "Are you sure you want to delete '%0'? All associated actions will no longer be bound to this (or any) project." };\nconfig.commands.deleteProject.handler = function(event, src, title)\n{\n if (confirm(this.warning.format([title]))) {\n store.suspendNotifications();\n this.unlinkActions(title);\n store.resumeNotifications();\n store.removeTiddler(title);\n story.closeTiddler(title,true,event.shiftKey || event.altKey);\n if(config.options.chkAutoSave)\n saveChanges();\n }\n \n return false;\n}\n\nconfig.commands.deleteProject.unlinkActions = function(projectTitle)\n{\n var tiddlers = config.macros.list.tagged.innerHandler([projectTitle, "action"], true);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i];\n tiddler.gtdProject = null;\n tiddler.tags.splice(tiddler.tags.find(projectTitle), 1);\n _GTD.tiddlerHasChanged(tiddler, false);\n // project removal will do view notification...\n }\n}\n\nconfig.commands.deleteProjectAll = { text: "delete all", tooltip: "Delete this project and its actions", hideReadOnly: true, warning: "Are you sure you want to delete '%0' and all its associated actions?" };\nconfig.commands.deleteProjectAll.handler = function(event, src, title)\n{\n if (confirm(this.warning.format([title]))) {\n store.suspendNotifications();\n this.deleteActions(title);\n store.resumeNotifications();\n store.removeTiddler(title);\n story.closeTiddler(title,true,event.shiftKey || event.altKey);\n if(config.options.chkAutoSave)\n saveChanges();\n }\n \n return false;\n}\n\nconfig.commands.deleteProjectAll.deleteActions = function(projectTitle)\n{\n var tiddlers = config.macros.list.tagged.innerHandler([projectTitle, "action"], true);\n for (var i = 0; i < tiddlers.length; i++) {\n var tiddler = tiddlers[i].title;\n store.removeTiddler(tiddler);\n story.closeTiddler(tiddler, true, false);\n // project removal will do view notification...\n }\n}\n\nconfig.commands.projectify = { text: "projectify", tooltip: "Convert this action to a project", hideReadOnly: true, warning: "Are you sure you want to convert '%0' to a project?" };\nconfig.commands.projectify.handler = function(event, src, title)\n{\n if (confirm(this.warning.format([title]))) {\n var tiddler = store.getTiddler(title);\n if (tiddler.gtdProject) _GTD.removeProjectAction(tiddler.gtdProject, title);\n tiddler.tags = [ "project" ];\n _GTD.tiddlerHasChanged(tiddler, true);\n // we need a broad notification here, not just refreshActionViews\n store.notify(title, true);\n }\n \n return false;\n}\n\nconfig.macros.touchRevision = {}\nconfig.macros.touchRevision.handler = function ()\n{\n var d = version.extensions.GTDPlugins.date;\n var tiddlers = config.macros.list.tagged.innerHandler(["systemConfig", "systemTiddler", "template", "gtd"], false);\n for (var i = 0; i < tiddlers.length; i++) {\n tiddlers[i].created = d;\n tiddlers[i].modified = d;\n }\n}\n\nStory.prototype.chooseTemplateForTiddler = function(title,template)\n{\n if (!template)\n template = DEFAULT_VIEW_TEMPLATE;\n\n // before reverting to default behaviour, check to see if a tag-based template exists\n if (template == DEFAULT_VIEW_TEMPLATE || template == DEFAULT_EDIT_TEMPLATE) {\n if (this.tagBasedTemplateCache == undefined) this.tagBasedTemplateCache = new Array();\n var templateRoot = (template == DEFAULT_VIEW_TEMPLATE ? "ViewTemplate" : "EditTemplate");\n var tiddler = store.getTiddler(title);\n if (tiddler) {\n for (var i = 0; i < tiddler.tags.length; i++) {\n var tag = tiddler.tags[i];\n var tagTemplate = tag + templateRoot;\n var tagCacheId = tag + template;\n // first check our cache to see if we have seen this template before\n if (this.tagBasedTemplateCache[tagCacheId] != undefined) {\n // make sure template still exists\n if (store.tiddlerExists(this.tagBasedTemplateCache[tagCacheId])) {\n template = this.tagBasedTemplateCache[tagCacheId];\n break;\n }\n else\n delete this.tagBasedTemplateCache[tagCacheId];\n }\n // go to the store to see if template exists\n if (store.tiddlerExists(tagTemplate)) {\n template = tagTemplate;\n this.tagBasedTemplateCache[tagCacheId] = tagTemplate;\n break;\n }\n }\n }\n }\n \n if (template == DEFAULT_VIEW_TEMPLATE || template == DEFAULT_EDIT_TEMPLATE)\n template = config.tiddlerTemplates[template];\n return template;\n}\n\nconfig.macros.importUpdates = { \n importMode: "updates",\n buttonTitle: "Update", \n buttonHelp: "Click here to update the application",\n preUpdateMessage: "Once the download is finished, you will need to reload your document to complete the update. In order to allow you to review the update tiddlers, this will not be done automatically. \sn\snClick \s"OK\s" start the update."\n}\nconfig.macros.importUpdates.handler = function(place, macroName, params)\n{\n var mode = params[1] ? params[1] : this.importMode;\n var title = params[2] ? params[2] : this.buttonTitle;\n var prompt = params[3] ? params[3] : this.buttonHelp;\n var button = createTiddlyButton(place, title, prompt, this.onClickUpdate);\n button.setAttribute("updateSource", params[0]);\n button.setAttribute("importMode", mode);\n if (params.length > 4) button.setAttribute("importExtras", params.slice(4).join(" "));\n}\n\nconfig.macros.importUpdates.onClickUpdate = function(e)\n{\n if (!confirm(config.macros.importUpdates.preUpdateMessage))\n return;\n var importParams = [ this.getAttribute("importMode"), this.getAttribute("updateSource") ];\n var importExtras = this.getAttribute("importExtras");\n if (importExtras) importParams = importParams.concat(importExtras.split(" "));\n importParams.push("force");\n // force a saveChanges with backup before the update\n _GTD.saveWithForcedBackup();\n // chain to the importTiddlers macro\n config.macros.importTiddlers.handler(this, "importTiddlers", importParams);\n // ensure that relevant release notes are displayed on first launch\n config.options.chkGTDReleaseNotes = true;\n saveOptionCookie("chkGTDReleaseNotes");\n // do *not* cause a browser navigation\n return false;\n}\n\nconfig.macros.gtdArchive = {}\nconfig.macros.gtdArchive.handler = function(place, macroName, params)\n{\n var archiveAction = params.length > 0 ? params[0] : "archive"\n var btn = createTiddlyButton(place, archiveAction, "", this.onClick);\n btn.setAttribute("archiveAction", archiveAction);\n}\n\nconfig.macros.gtdArchive.onClick = function(e)\n{\n var warning = "Are you sure you want to %0 all %1 projects and actions?";\n var status = "There were %0 project(s) and %1 action(s) %2d.";\n var archiveAction = this.getAttribute("archiveAction");\n \n var projectCount = 0, actionCount = 0;\n \n if (archiveAction == "archive") {\n if (confirm(warning.format([archiveAction, "completed"]))) {\n clearMessage();\n var projects = store.getTaggedTiddlers("project");\n for (var i = 0; i < projects.length; i++) {\n var project = projects[i];\n if (project.gtdActions == undefined || project.gtdActions.length == 0) continue;\n var projectComplete = true;\n for (var j = 0; projectComplete && j < project.gtdActions.length; j++)\n projectComplete = project.gtdActions[j].gtdActionDone;\n if (!projectComplete) continue;\n // if we get here, all project actions are done, so archive project\n story.closeTiddler(project.title, false, false);\n _GTD.tiddlerSwapTag(project, "project", "project-archive");\n _GTD.tiddlerHasChanged(project, false);\n projectCount++;\n for (j = 0; j < project.gtdActions.length; j++) {\n story.closeTiddler(project.gtdActions[j].title, false, false);\n _GTD.tiddlerSwapTag(project.gtdActions[j], "action", "action-archive");\n _GTD.tiddlerHasChanged(project.gtdActions[j], false);\n actionCount++;\n }\n }\n var actions = store.getTaggedTiddlers("action");\n for (i = 0; i < actions.length; i++) {\n var action = actions[i];\n if (action.gtdActionDone && !action.gtdProject) {\n story.closeTiddler(action.title, false, false);\n _GTD.tiddlerSwapTag(action, "action", "action-archive");\n _GTD.tiddlerHasChanged(action, false);\n actionCount++;\n }\n }\n displayMessage(status.format([projectCount, actionCount, archiveAction]));\n var saveClearMessage = clearMessage;\n clearMessage = function() {};\n if (config.options.chkAutoSave) saveChanges();\n clearMessage = saveClearMessage;\n store.notify(null, true);\n }\n }\n \n else if (archiveAction == "unarchive") {\n if (confirm(warning.format([archiveAction, "archived"]))) {\n clearMessage();\n var projects = store.getTaggedTiddlers("project-archive");\n for (var i = 0; i < projects.length; i++) {\n var project = projects[i];\n story.closeTiddler(project.title, false, false);\n _GTD.tiddlerSwapTag(project, "project-archive", "project");\n _GTD.tiddlerHasChanged(project, false);\n projectCount++;\n }\n var actions = store.getTaggedTiddlers("action-archive");\n for (i = 0; i < actions.length; i++) {\n var action = actions[i];\n story.closeTiddler(action.title, false, false);\n _GTD.tiddlerSwapTag(action, "action-archive", "action");\n _GTD.tiddlerHasChanged(action, false);\n actionCount++;\n }\n displayMessage(status.format([projectCount, actionCount, archiveAction]));\n var saveClearMessage = clearMessage;\n clearMessage = function() {};\n if (config.options.chkAutoSave) saveChanges();\n clearMessage = saveClearMessage;\n store.notify(null, true);\n }\n }\n \n else if (archiveAction == "purge") {\n if (confirm(warning.format([archiveAction, "archived"]))) {\n clearMessage();\n _GTD.saveWithForcedBackup();\n var projects = store.getTaggedTiddlers("project-archive");\n for (var i = 0; i < projects.length; i++) {\n var project = projects[i];\n story.closeTiddler(project.title, false, false);\n store.removeTiddler(project.title);\n projectCount++;\n }\n var actions = store.getTaggedTiddlers("action-archive");\n for (i = 0; i < actions.length; i++) {\n var action = actions[i];\n story.closeTiddler(action.title, false, false);\n store.removeTiddler(action.title);\n actionCount++;\n }\n displayMessage(status.format([projectCount, actionCount, archiveAction]));\n var saveClearMessage = clearMessage;\n clearMessage = function() {};\n if (config.options.chkAutoSave) saveChanges();\n clearMessage = saveClearMessage;\n store.notify(null, true);\n }\n }\n else\n alert("That archiving action is not supported");\n}\n\n_GTD.initialize();\n\n//}}}\n
/***\n!GTD specific styles\n***/\n\n/*{{{*/\n/* how annoying is that big header anyway?! */\n.headerForeground, .headerShadow {\n padding-top: 1em;\n}\n\n/* the tagging popup really gets in the way so push it off to the side */\n.tagging { float: right; }\n\n/* this unbullets actions in the actionList macro */\nul.gtdActionList { list-style-type: none; }\nli.gtdActionListProject, li.gtdActionListContext { margin-top: 1.0em; }\n\n.gtdCompletedActionItem { text-decoration: line-through; }\n.gtdNextActionItem { border-bottom: 1px dotted red; }\n\na.actionCrossReference { color: #ff8c00; }\n\n/* necessary bits copied from enhanced stylesheet to render properly without it */\n#mainMenu {\n font-size: 1em;\n text-align: left;\n width: 12em;\n}\n\n#mainMenu * {\n font-size: 1em;\n font-weight: normal;\n padding: 0; margin: 0; border: 0;\n}\n\n#mainMenu ul {\n list-style: none;\n margin-bottom: 10px;\n}\n\n#mainMenu li {\n text-indent: 1em;\n}\n\n#mainMenu a.button, #mainMenu a.tiddlyLink, #mainMenu a.externalLink {\n display: block; margin: 0; text-decoration: none;\n}\n\n/*}}}*/\n\n/***\n!Imported 3x5 printing styles\n//adapted from the work of Clint Checketts, http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm //\n***/\n\n/*{{{*/\n\n@media print {\n#mainMenu, #sidebar, #messageArea {display: none !important;}\n#displayArea {margin: 1em 1em 0em 1em;}\n\n\n/* LAYOUT ELEMENTS ========================================================== */\n*\n{\n margin: 0;\n padding: 0;\n}\n\n#contentWrapper\n{\n margin: 0;\n width: 100%;\n position: static;\n}\n\nbody {\n background: #fff;\n color: #000;\n font-size: x-small;\n font-family: Georgia, "Lucida Grande", "Bitstream Vera Sans", Helvetica, Verdana, Arial, sans-serif;\n}\n\nimg {\n max-width: 2.2in;\n max-height: 4.3in;\n}\n\n#header, #side_container, #storeArea, #copyright, #floater, #messageArea, .save_accesskey, .site_description, #saveTest, .toolbar, .header, .footer, .tagging, .tagged\n{\n display: none;\n}\n\n#tiddlerDisplay, #displayArea\n{\n display: inline;\n}\n\n.tiddler {\n margin: 0 0 2em 0;\n border-top: 1px solid #000;\n page-break-before: always;\n}\n\n.tiddler:first-child {\n page-break-before: ;\n}\n\n.title {\n font-size: 1.6em;\n font-weight: bold;\n margin-bottom: .3em;\n padding: .2em 0;\n border-bottom: 1px dotted #000;\n}\n\np, blockquote, ul, li, ol, dt, dd, dl, table\n{\n margin: 0 0 .3em 0;\n}\n\nh1, h2, h3, h4, h5, h6\n{\n margin: .2em 0;\n} \n\nh1\n{\n font-size: 1.5em;\n}\n\nh2\n{\n font-size: 1.3em;\n}\n\nh3\n{\n font-size: 1.25em;\n}\n\nh4\n{\n font-size: 1.15em;\n}\n\nh5\n{\n font-size: 1.1em;\n}\n\nblockquote\n{\n margin: .6em;\n padding: .6em;\n border: 1px dotted #99AA99;\n font-size: xx-small;\n}\n\nul\n{\n list-style-type: circle;\n}\n\nli\n{\n margin: .1em 0 .1em 2em;\n line-height: 1.4em; \n}\n\ntable\n{\n border-collapse: collapse;\n font-size: 1em;\n}\n\ntd, th\n{\n border: 1px solid #999;\n padding: .2em;\n}\n\nhr {\n border: none;\n border-top: dotted 1px #777;\n height: 1px;\n color: #777;\n margin: .6em 0;\n}\n}\n/*}}}*/\n\n/***\n!Imported styles for calendar plugin\n***/\n\n/*{{{*/\n.calendar{\n border-bottom: 1px solid #99AA99;\n}\n\n.viewer .calendar{\n width: 220px;\n}\n\n#mainMenu .calendar{\n font-size: 8px;\n cursor: pointer;\n width: 100%;\n border: 0;\n border-collapse: collapse;\n}\n\n#mainMenu .calendar .button{\n border: 0;\n}\n\n#mainMenu .calendar td{\n font-size: 8pt;\n padding: 0;\n background: #fff;\n border: 0;\n}\n\n#mainMenu .calendar a{\n margin: 0;\n color: #000;\n background: transparent;\n}\n\n#mainMenu .calendar a:hover{\n color: #000;\n background: transparent;\n}\n\n#mainMenu .calendarMonthname,\n#mainMenu .calendar .calendarMonthTitle td a{\n color: #fff;\n background: #99AA99;\n}\n\n#mainMenu .calendarDaysOfWeek td{\n background: #99AA99;\n color: #fff;\n}\n/*}}}*/\n
/***\n!Layout Rules /%==============================================%/\n***/\n/*{{{*/\n\nbody {\n /* this is required for proper layout on IE, for some reason... */\n _position: static;\n}\n\n.tagClear {\n /* this, too, is a necessary IE hack... */\n _margin-top: 10em; \n _clear: both;\n}\n\n.headerForeground, .headerShadow {\n padding-top: 1em;\n}\n\n.tiddler {\n margin: 5px 0 5px 0;\n padding-bottom: 1em;\n}\n\n#mainMenu {\n width: 16em;\n font-size: 1em;\n text-align: left;\n padding-top: 0.5em;\n}\n\n#mainMenu * {\n font-size: 1em;\n font-weight: normal;\n padding: 0; margin: 0; border: 0;\n}\n\n#mainMenu ul {\n list-style: none;\n margin-bottom: 10px;\n}\n\n#mainMenu li {\n text-indent: 1em;\n}\n\n#mainMenu a.button, #mainMenu a.tiddlyLink, #mainMenu a.externalLink {\n display: block; margin: 0;\n}\n\n#displayArea {\n margin-left: 19em; margin-top: 0;\n}\n\n.toolbar .button {\n margin-left: 4px;\n}\n\n/*}}}*/\n\n/***\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n background: #FFFFFF;\n color: #000;\n}\n\nbody a, body a:hover {\n color: #005422;\n background: transparent;\n text-decoration: none;\n}\n\nh1,h2,h3,h4,h5 {\n color: #889988;\n background: #CCDDCC;\n padding:3px;\n}\n\n\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n.header {\n background: #889988;\n border-top: 1px solid #99AA99;\n border-bottom: 0px solid #667766;\n}\n\n.headerForeground {\n color: #667766;\n}\n\n.headerForeground a {\n font-weight: normal;\n color: #667766;\n}\n\n/* ??? what is up when you specify a site title colour in IE ??? */\n/* .siteTitle { color: red; } */\n\n/*}}}*/\n/***\n!General tabs /%=================================================%/\n***/\n/*{{{*/\n\n.tabSelected {\n color: #005422;\n background: #CCDDCC;\n border: none;\n}\n\n.tabUnselected {\n color: #FFFFFF;\n background: #667766;\n}\n\n.tabContents {\n color: #000;\n background: #CCDDCC;\n border: none;\n}\n\n.tabContents .listTitle {\n font-weight: bold;\n}\n\n.tabContents .button, .tabContents a {\n border: none;\n color: #005422;\n}\n\n.tabContents a:hover, .tabset a:hover {\n background: #667766;\n color: #FFFFFF;\n}\n\n/* make nested tab areas look different */\n.tabContents .tabSelected, .tabContents .tabContents {\n background: #99AA99;\n color: #FFFFFF;\n}\n\n.tabContents .tabContents {\n color: #eeb;\n}\n\n.tabContents .tabUnselected {\n color: #FFFFFF;\n}\n\n/*}}}*/\n/***\n!Main Menu /%=================================================%/\n***/\n/*{{{*/\n#mainMenu {\n background: #CCDDCC;\n color: #005422;\n border: 1px solid #667766;\n margin-top: 5px;\n}\n\n#mainMenu * {\n color: #005422;\n}\n\n#mainMenu a.button, #mainMenu a.tiddlyLink, #mainMenu a.externalLink {\n border: none;\n border-bottom: 0px solid #000;\n border-top: 0px solid #000;\n padding-left: 2px;\n}\n\n#mainMenu a:hover,\n#mainMenu a.button:hover {\n background-color: #667766;\n color: #FFFFFF;\n}\n\n/*}}}*/\n/***\n!Sidebar options /%=================================================%/\n~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\n***/\n/*{{{*/\n#sidebar {\n color: #000;\n background: #99AA99;\n border-right: 0px solid #000;\n border-bottom: 0px solid #520;\n border: 1px solid #667766;\n margin-top: 5px;\n}\n\n#sidebarOptions .sliderPanel {\n background: #CCDDCC;\n}\n\n#sidebarOptions .sliderPanel a {\n border: 0px;\n color: #667766;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n color: #FFFFFF;\n background: #667766;\n}\n\n#sidebarOptions .sliderPanel a:active {\n color: #667766;\n background: #FFFFFF;\n}\n\n#sidebarOptions a {\n color: #000000;\n border: none;\n}\n\n#sidebarOptions a:hover, #sidebarOptions a:active {\n color: #FFFFFF;\n background: #667766;\n}\n\n/*}}}*/\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea, #messageArea a {\n border-right: 0px solid #da1;\n border-bottom: 0px solid #a80;\n border: 0px;\n background: #CCDDCC;\n color: #000000;\n font-size: xx-small;\n text-decoration: none;\n}\n\n.messageToolbar .button a {\n background-color: transparent;\n text-decoration: none;\n border:none;\n}\n\n/*}}}*/\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #CCDDCC;\n border: 0px;\n padding: 3px;\n font-size: xx-small;\n}\n\n.popup a {\n color: #005422;\n text-decoration: none;\n}\n\n.popup .button, .popup .button a {\n background-color: #CCDDCC;\n font-size: xx-small;\n color: #000000;\n text-decoration: none;\n}\n\n.popup hr {\n color: #000;\n}\n\n.popup li.disabled {\n color: #FF0000;\n background: #CCDDCC;\n}\n\n.popup li a, .popup li a:visited {\n color: #000000;\n border: 1px solid #667766;\n background: #CCDDCC;\n text-decoration: none;\n}\n\n.popup li a:hover {\n color: #000;\n border: 1px solid #007C35;\n background: #CCDDCC;\n text-decoration: none;\n}\n/*}}}*/\n/***\n!Tiddler Display /%=================================================%/\n***/\n/*{{{*/\n.tiddler {\n background: #F7FFF7;\n border: 1px solid #889988;\n}\n\n.title {\n color: #31AD49;\n}\n\n.toolbar {\n color: #000;\n margin-bottom: 10px;\n}\n\n.toolbar .button {\n background: #CCDDCC /*#cf6*/;\n border: 1px outset #CCDDCC /*#cf6*/;\n font-size: xx-small;\n}\n\n.toolbar .button:hover {\n background: #667766 /*#ef9*/;\n color: #fff;\n}\n\n.viewer a {\n text-decoration: none;\n border-bottom: 1px dotted #31AD49;\n}\n\n.tagged a, .tagged a:hover {\n background: transparent;\n}\n\n/*}}}*/\n
!!Getting Started with [[d3|http://dcubed.ca/]]\n\nFirst and foremost, you need a local copy of this file. You can use [[this link|http://infinite.tiddlyspot.com/download]] to download a copy, using whatever "Save this link" kind of interface is in your browser. \n\nNote that this system is built on the 2.0 release of TiddlyWiki, and no effort has been made to work with earlier versions (in case you were planning on copying this into your own existing TW document). Specifically, this document is currently using version ''<<version>>'' of TW.\n\nAdditionally, the system //relies on// a small number of plug-ins, all of which are installed here but that you would need to copy if you are integrating this into your own wiki:\n* GTDPlugins, version <<gtdVersion>>, the core set of new plug-ins created specifically for this solution\n* NewerTiddlerPlugin, to allow templated creation of tiddlers, with tags\n* NestedSlidersPlugin, for nicely managing the MainMenu\n* ReminderMacros, obviously\n* CalendarPlugin, because it is impossible to imagine a time-management solution without a calendar\n\nWe also include the very useful ImportTiddlersPlugin and ExportTiddlersPlugin to allow the system to be easily updated.\n\n!!Projects, contexts, actions, and tiddlers\nBefore getting into the meat of how to use this system, it is important to clearly understand the relationship between projects, contexts, and actions, and how they relate to tiddlers. Throughout this discussion, it is assumed that the basic TW and GTD terminology is already understood. Again, if you are new to TW, then please visit [[TiddlyWiki|http://www.tiddlywiki.com/]].\n\nAt the lowest level, we have ''actions'', which are simply " physical things to do". In this implementation, actions are first-class tiddlers, tagged as {{{action}}}. This is both good and bad. On the plus side, it makes action management very easy since we can use the full complement of tiddler-based functionality inside of TW and related plug-ins, and it allows you to save as much or as little extra information with the action as you like. On the minus side, it means that actions must have reasonably descriptive titles to avoid tiddler collision, because tiddler names inside a TW document must be unique: for example, you cannot have two projects with a "Kill Bill" action in the system. Also, without frequent archiving of completed actions, performance may be affected adversely as the system builds up action tiddlers.\n\n''Contexts'' are groups of related actions all intended to be doable in a particular location or, well, context. Contexts are also tiddlers, tagged as {{{context}}}, and for the most part the content of a context tiddler will simply be a dynamically generated list of actions that need to be done. An action should have precisely one context in GTD, although presently this implementation does not enforce that in any way since actions related to a context are simply tagged to the context.\n\n''Projects'' are groups of two or more actions which, when they are all completed, produce some desired outcome. Projects are tiddlers, tagged as {{{project}}}. The main distinguishing feature between a list of actions for a project and a list of actions for a context is that the project actions are ''ordered'', and at any point in time, there will only be a single ''next action''.\n\nNote that in this implementation, there is //no special naming// requirement for actions, contexts, and projects -- just tag them appropriately. By convention, you probably want to name your contexts "@computer", "@homedepot", etc., but you are not required to do so. Also, since project actions are directly tagged by the project name, you probably don't want to have super long project names -- it works, but doesn't look as nice when looking at tiddler and tag lists.\n\n!!Interface\nIf we now focus our attention on the MainMenu at left, you will see that it starts with two important menu items in which you will probably spend a lot of your time: Projects and Actions. These are //dynamically// populated lists that show active projects and action contexts, respectively. Both menu items use a slider interface to show/hide the lists, and they simply list all tiddlers that are tagged as {{{project}}} or {{{context}}}. Selecting an individual project or action context will, of course, then open the appropriate tiddler with its action list and other content. Note that these menu items are truly dynamic: updates to projects and contexts will immediately be reflected in these menus.\n\nNext in the menu are the equally important "review" tiddlers: [[Project Review]], [[Action Review]], and [[Reminders]]. The [[Project Review]] is a quick summary of all projects and their current and completed actions. Similarly, the [[Action Review]] shows all //incomplete// actions by context, and highlighting the "next action" per project appropriately. And the [[Reminders]] is a single page for viewing important reminders including: overdue (incomplete) actions, actions for today and tomorrow, and all action and non-action items that are coming up in the next week.\n\nThe "Create new project" and "Create new context" menu items allow you to easily create new projects and context tiddlers, tagged correctly. They rely on "template" tiddlers to provide their default content: [[NewProjectTemplate]] and [[NewContextTemplate]]. You can edit those tiddlers to change the way a new project or context looks if you don't like the default.\n\nFor completeness, the main menu also includes tiddlers for [[Reference]] and [[Someday-Maybe]] items. Both these tiddlers display lists of tiddlers tagged with certain keywords (that you can change using the [[Configuration Options]]). Of the two, the [[Reference]] tiddler it probably the least useful since you could consider the whole wiki a reference system and anything that is not a project, context, or action should be fair game as reference material. But it does illustrate how to create custom tiddlers with simple tag-based selection of items.\n\nThe Calendar menu item uses the popular TW [[CalendarPlugin]] to show a calendar, create date-based tiddlers and, in conjunction with the [[ReminderMacros]], show dates that have reminders on them. And the [[Configuration|Configuration Options]] menu item allows you to set a number of operational parameters in the system. [[Check for Updates|UpdateApplication]] enables you to always stay current with the core code that makes up this system (including ~TiddlyWiki itself). And finally [[Archives]] enables you to manage the archiving of completed projects and actions. \n\n!!Getting things done\nSo, how do we really "get things done"? At a minimum, create one or more contexts by clicking on "Create new context", giving it an appropriate name, and saving it. Then, while viewing a context, click on the ''action'' menu item in the context's tiddler menu. This creates a new action for that context. Name it, possibly add a description, save it and, bingo, it shows up in the context action list. Later, when you finish the action, check it off either from the context's action list, or using the checkbox next to the action title when you are viewing the action tiddler. That's it.\n\nWorking with project action lists is only slightly more involved since we want to describe the order in which actions are to be done a project. First, create a new project by clicking on "Create new project". Then, while ''editing'' the project tiddler, add the actions directly to the project using one of two wiki-text syntaxes (see the samples [[Fix scratch on car]] or [[Sample Project]]):\n{{{\n<<gtdAction "action title" "action context">>\n}}}\nor\n{{{\n..action title|action context\n}}}\n\nSaving the project will create new action tiddlers if they don't already exist and present a nice action list for you that you can then work from. Of course, any new actions will also be cross-posted to the appropriate context action lists and, if you happen to have the context list open, you would see the change immediately. It probably goes without saying, but if you want to change the order of actions or add new actions, simply edit the project and move things around as you see fit. Also, once the actions are created, you can always edit the action directly to add more information, rename it, or change its context (more on that later).\n\n//The major benefit to ensuring that project action list ordering is respected (by explicitly listing the actions) is that "next action" processing becomes automatic. You do ''not'' need to tag an action as "next" to make it next. It is next simply because all the other actions before it are done.// In all action lists, the "next action" is displayed (by the default StyleSheet) with a @@color(red):__red underline__@@. Note that starting with version 1.0.9, d-cubed supports the concept of "floating" actions, which are simply actions that do not have to be strictly next in the list to show up in the various action lists. While not strictly true to the GTD gospel, this is a popular feature in real-world use. To mark an action as floating, simply add the word "floating" after the action context in the {{{gtdAction}}} macro (you currently cannot use floating actions with the ".." notation).\n\nWhen entering project actions, the ".." notation is faster and easier to type but the catch is that the ".." must be the first characters on a line. This means you cannot use it in conjuction with other wiki notation, like "*" or "#". Ordinarily, this is not a problem because the actions will get rendered in a nice list but if you wanted to do your own list to, for example, use numbering or provide indentation for subproject actions, then you will need to use the {{{gtdAction}}} macro instead. The sample projects show examples of each.\n\nNow since you already know that actions are just tiddlers tagged with project and context, you might be tempted to create an action using the "new tiddler" command. This will, in fact, work if you want to create an action for a context without a project. But as you can probably guess, it will not work for a project action because the action must be listed in the project tiddler for the system to correctly maintain the ordering of actions. So it is probably best to get in the habit of not ever using "new tiddler" to create actions at all.\n\n!!More useful stuff\nWhen viewing actions, two additional menu items appear in the action's tiddler menu: ''context'' and ''projectify''. Clicking on ''context'' will allow you to select an alternate context for that action, which is useful if you have, for example, an @waiting context and an action has been partially done but you are now waiting for something or someone. Of course, changing the context on an action will immediately be reflected in all other tiddlers that are displaying that action. Note, however, that in project tiddlers where actions are explicitly listed out, the context in the wiki-text (the ".." or {{{gtdAction}}} macro) are not updated. This context can be considered //initial context// for the action when it is first created. While that may be confusing when you are editing a project, rest assured knowing that the system it correctly tracking the action context.\n\nThe ''projectify'' command in an action's tiddler menu will convert an existing action to a new project. This is very useful when you are refactoring your action list and decide that an action needs to be split into multiple steps.\n\nIn working with projects, contexts, and actions, you may occasionally want to rename or delete things. This, generally, works as you would expect. If you want to rename a project, context, or action, just edit the appropriate tiddler and the change will propagate throughout the system. Note, in particular, that if you rename an action that is part of a project, the underlying wiki text in the project tiddler will be updated with the new name!\n\nTo delete projects or contexts, simply select "delete" from the tiddler menu when editing the project or context. In the case of contexts, associated actions in the context will be marked with a special "unfiled" context. You should review actions tagged with "unfiled" and assign them to new contexts appropriately. In the case of projects, associated actions will be "unfiled" so that they will only be associated with their current context. The project tiddler menu has an additional "delete all" command that allows for a "deep" delete of a project. If you select this, the project //and all associated actions// will be deleted.\n\nDeleting action tiddlers just works. If the action is associated with a project, the project tiddler will be modified automatically and the action entry will be removed.\n\n!!TW customizations\nIn addition to the macros and wiki-syntax modifiers defined in GTDPlugins and the other external plug-ins, the GTDPlugins make a couple of key customizations to the way TW behaves to make for a more usable GTD system. While you don't need to //know// this to use the system, it might be of interest to more experienced TW users.\n\nFirst, we define an override to the way tiddlers are displayed to allow "tag-based templates". What this means, simply, is that when a tiddler is opened for viewing or editing, the tags of the tiddler are enumerated and, if a corresponding tiddler -- tag + "ViewTemplate" or tag + "EditTemplate" -- is found, it is used as a layout for the tiddler. In this implementation, the [[contextViewTemplate]] is used to add an additional "action" menu item when viewing (not editing) a context tiddler. This template and the [[projectViewTemplate]] also remove the "tagging" div because it is completely redundant to the main context and project content. Other templates provide additional commands where appropriate.\n\nSecond, because the MainMenu utilizes macros that create dynamic content, we need to do an important customization to the PageTemplate: the MainMenu DIV element needs to always update when tiddlers get saved, by adding a {{{force='true'}}} attribute on the element. This way, new projects and contexts show up in the menu immediately, as opposed to requiring the wiki to be reloaded. This is important to know if you are integrating this application into an existing TW document, since the PageTemplate tiddler is not a part of the application updates in order to preserve any other PageTemplate customizations you may already have in place (such as changing the header colour scheme).\n\nAnd third, we override the {{{changed}}} method of the {{{Tiddler}}} class to enable us to hook into tiddler saving...in particular, //project// tiddler saving...to allow the project action lists to be accurately maintained. This hook is also used to detect and process action and context renaming.\n\nThere are probably a few other tricks buried in the system, but we can't reveal //everything//!
/***\n''Import Tiddlers Plugin for TiddlyWiki version 1.2.x and 2.0''\n^^author: Eric Shulman - ELS Design Studios\nsource: http://www.TiddlyTools.com/#ImportTiddlersPlugin\nlicense: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^\n\nWhen many people share and edit copies of the same TiddlyWiki document, the ability to quickly collect all these changes back into a single, updated document that can then be redistributed to the entire group is very important. This plugin lets you selectively combine tiddlers from any two TiddlyWiki documents. It can also be very useful when moving your own tiddlers from document to document (e.g., when upgrading to the latest version of TiddlyWiki, or 'pre-loading' your favorite stylesheets into a new 'empty' TiddlyWiki document.)\n\n!!!!!Inline interface (live)\n<<<\n<<importTiddlers inline>>\n<<<\n!!!!!Macro Syntax\n<<<\n{{{<<importTiddlers>>}}}\ncreates "import tiddlers" link. click to show/hide import control panel\n\n{{{<<importTiddlers inline>>}}}\ncreates import control panel directly in tiddler content\n\n{{{<<importTiddlers filter source quiet ask force>>}}}\nnon-interactive 'automatic' import.\n''filter'' determines which tiddlers will be automatically selected for importing. Use one of the following keywords:\n>''"new"'' retrieves only tiddlers that are found in the import source document, but do not yet exist in the destination document\n>''"changes"'' retrieves only tiddlers that exist in both documents for which the import source tiddler is newer than the existing tiddler\n>''"updates"'' retrieves both ''new'' and ''changed'' tiddlers (this is the default action when none is specified)\n>''"tiddler:~TiddlerName"'' retrieves only the specific tiddler named in the parameter.\n>''"all"'' retrieves ALL tiddlers from the import source document, even if they have not been changed.\n''source'' is the location of the imported document. It can be either a local document or an URL:\n>filename is any local path/file, in whatever format your system requires\n>URL is any remote web location that starts with "http://" or "https://"\n''"quiet"'' (optional)\n>supresses all status message during the import processing (e.g., "opening local file...", "found NN tiddlers..." etc). Note that if ANY tiddlers are actualy imported, a final information message will still be displayed (along with the ImportedTiddlers report), even when 'quiet' is specified. This ensures that changes to your document cannot occur without any visible indication at all.\n''"ask"'' (optional)\n>adds interactive confirmation. A browser message box (OK/Cancel) is displayed for each tiddler that will be imported, so that you can manually bypass any tiddlers that you do not want to import.\n''"force"'' (optional)\n>ignores the importReplace and importPublic special tags (see below). Allows automatic importing and overwriting of tiddlers even when they have not been tagged accordingly. This is intended for use with TW files for which you have complete control of the content and can therefore be certain that importing all tiddlers into your document is 'safe'.\n\n''Special tag values: importReplace and importPublic''\n\nBy adding these special tags to an existing tiddler, you can precisely control whether or not to allow updates to that tiddler as well as decide which tiddlers in your document can be automatically imported by others.\n*''For maximum safety, the default action is to prevent existing tiddlers from being unintentionally overwritten by incoming tiddlers.'' To allow an existing tiddler to be overwritten by an imported tiddler, you must tag the existing tiddler with ''<<tag importReplace>>''\n*''For maximum privacy, the default action for //outgoing// tiddlers is to NOT automatically share your tiddlers with others.'' To allow a tiddler in your document to be shared via auto-import actions by others, you must tag it with ''<<tag importPublic>>''\n//Note: these tags are only applied when using the auto-import processing. When using the interactive control panel, all tiddlers in the imported document are available in the listbox, regardless of their tag values.//\n<<<\n!!!!!Interactive Usage\n<<<\nWhen used interactively, a control panel is displayed consisting of an "import source document" filename input (text field plus a ''[Browse...]'' button), a listbox of available tiddlers, a "differences only" checkbox, an "add tags" input field and four push buttons: ''[open]'', ''[select all]'', ''[import]'' and ''[close]''.\n\nPress ''[browse]'' to select a TiddlyWiki document file to import. You can also type in the path/filename or a remote document URL (starting with http://)and press ''[open]''. //Note: There may be some delay to permit the browser time to access and load the document before updating the listbox with the titles of all tiddlers that are available to be imported.//\n\nSelect one or more titles from the listbox (hold CTRL or SHIFT while clicking to add/remove the highlight from individual list items). You can press ''[select all]'' to quickly highlight all tiddler titles in the list. Use the ''[-]'', ''[+]'', or ''[=]'' links to adjust the listbox size so you can view more (or less) tiddler titles at one time. When you have chosen the tiddlers you want to import and entered any extra tags, press ''[import]'' to begin copying them to the current TiddlyWiki document.\n\n''select: all, new, changes, or differences''\n\nYou can click on ''all'', ''new'', ''changes'', or ''differences'' to automatically select a subset of tiddlers from the list. This makes it very quick and easy to find and import just the updated tiddlers you are interested in:\n>''"all"'' selects ALL tiddlers from the import source document, even if they have not been changed.\n>''"new"'' selects only tiddlers that are found in the import source document, but do not yet exist in the destination document\n>''"changes"'' selects only tiddlers that exist in both documents but that are newer in the source document\n>''"differences"'' selects all new and existing tiddlers that are different from the destination document (even if destination tiddler is newer)\n\n''Import Tagging:''\n\nTiddlers that have been imported can be automatically tagged, so they will be easier to find later on, after they have been added to your document. New tags are entered into the "add tags" input field, and then //added// to the existing tags for each tiddler as it is imported.\n\n''Skip, Rename, Merge, or Replace:''\n\nWhen importing a tiddler whose title is identical to one that already exists, the import process pauses and the tiddler title is displayed in an input field, along with four push buttons: ''[skip]'', ''[rename]'', ''[merge]'' and ''[replace]''.\n\nTo bypass importing this tiddler, press ''[skip]''. To import the tiddler with a different name (so that both the tiddlers will exist when the import is done), enter a new title in the input field and then press ''[rename]''. Press ''[merge]'' to combine the content from both tiddlers into a single tiddler. Press ''[replace]'' to overwrite the existing tiddler with the imported one, discarding the previous tiddler content.\n\n//Note: if both the title ''and'' modification date/////time match, the imported tiddler is assumed to be identical to the existing one, and will be automatically skipped (i.e., not imported) without asking.//\n\n''Import Report History''\n\nWhen tiddlers are imported, a report is generated into ImportedTiddlers, indicating when the latest import was performed, the number of tiddlers successfully imported, from what location, and by whom. It also includes a list with the title, date and author of each tiddler that was imported.\n\nWhen the import process is completed, the ImportedTiddlers report is automatically displayed for your review. If more tiddlers are subsequently imported, a new report is //added// to ImportedTiddlers, above the previous report (i.e., at the top of the tiddler), so that a reverse-chronological history of imports is maintained.\n\nIf a cumulative record is not desired, the ImportedTiddlers report may be deleted at any time. A new ImportedTiddlers report will be created the next time tiddlers are imported.\n\nNote: You can prevent the ImportedTiddlers report from being generated for any given import activity by clearing the "create a report" checkbox before beginning the import processing.\n\n<<<\n!!!!!Installation\n<<<\ncopy/paste the following tiddlers into your document:\n''ImportTiddlersPlugin'' (tagged with <<tag systemConfig>>)\n\ncreate/edit ''SideBarOptions'': (sidebar menu items) \n^^Add "< < ImportTiddlers > >" macro^^\n\n''Quick Installation Tip #1:''\nIf you are using an unmodified version of TiddlyWiki (core release version <<version>>), you can get a new, empty TiddlyWiki with the Import Tiddlers plugin pre-installed (''[[download from here|TW+ImportExport.html]]''), and then simply import all your content from your old document into this new, empty document.\n<<<\n!!!!!Revision History\n<<<\n''2006.03.30 [2.9.1]''\nwhen extracting store area from remote URL, look for "</body>" instead of "</body>\sn</html>" so it will match even if the "\sn" is absent from the source.\n''2006.03.30 [2.9.0]''\nadded optional 'force' macro param. When present, autoImportTiddlers() bypasses the checks for importPublic and importReplace. Based on a request from Tom Otvos.\n''2006.03.28 [2.8.1]''\nin loadImportFile(), added checks to see if 'netscape' and 'x.overrideMimeType()' are defined (IE does *not* define these values, so we bypass this code)\nAlso, when extracting store area from remote URL, explicitly look for "</body>\sn</html>" to exclude any extra content that may have been added to the end of the file by hosting environments such as GeoCities. Thanks to Tom Otvos for finding these bugs and suggesting some fixes.\n''2006.02.21 [2.8.0]''\nadded support for "tiddler:TiddlerName" filtering parameter in auto-import processing\n''2006.02.21 [2.7.1]''\nClean up layout problems with IE. (Use tables for alignment instead of SPANs styled with float:left and float:right)\n''2006.02.21 [2.7.0]''\nAdded "local file" and "web server" radio buttons for selecting dynamic import source controls in ImportPanel. Default file control is replaced with URL text input field when "web server" is