text:
The Assassination Ban and Targeted Killings
by Matthew Spurlock
In public speeches, administration officials have criticized the use of the word "assassination" to characterize targeted killings carried out by the United States. The administration's theory (or part of it, anyway) seems to be that targeted killings can't be assassinations because assassinations are unlawful killings — and the US's targeted killings, in the administration's view, are lawful. In response to litigation, the administration has released legal memos that spell out this seemingly circular argument in more detail. The relevant portions of the memos, however, are heavily redacted. Below, I try to piece together what we know, and I discuss what we might learn soon.
The assassination ban was put into place after the issuance of the 1975 Church Committee Interim Report which summed up the Committee's investigation of, among other things, US-backed assassination plots against foreign leaders. The report concluded that the CIA had attempted to assassinate the leaders of Cuba and the Congo, and that it had aided assassination plots in the Dominican Republic, Chile, and Vietnam. Noting that "[a]dministrations change, CIA directors change, and someday in the future what was tried in the past may once again become a temptation," the report recommended that Congress ban assassination. Concerned that Congress might do so, President Ford issued Executive Order 11905 which included this language: "No employee of the United States Government shall engage in, or conspire to engage in, political assassination." Subsequent orders by Presidents Carter and Reagan reaffirmed the ban, albeit with modifications. The current version of the ban, in Executive Order 12333, states: "No person employed by or acting on behalf of the United States Government shall engage in, or conspire to engage in, assassination."
The language of the ban is simple enough but its meaning has long been contested, mainly because the term "assassination" is nowhere defined. Is the ban limited to peacetime killings of public officials or leaders? Is it limited to "political" killings — and, if so, what killings are properly termed "political"? Does the ban proscribe killings carried out in defense of the nation? Can one reasonably interpret the ban merely to incorporate or reaffirm prohibitions that are stated elsewhere in domestic or international law, as a 1989 Department of Army memorandum (known as the Parks Memo) suggests? If one interprets the ban this way, is it fair to call it a "ban" at all?
Every administration since President Ford's seems to have considered the assassination ban's scope and meaning. Bob Woodward and Walter Pincus reported in 1988 that President Reagan issued four directives relating to the assassination ban over a period of 18 months. The first, issued in November 1984, was designed to circumvent the assassination ban by preemptively declaring "lawful" any actions that were undertaken "in good faith and as part of an approved operation." Dubbed a "license to kill" by Woodward's sources, the November 1984 authorization may have led to an attempt to kill Lebanese cleric Mohammed Hussein Fadlallah, who the Reagan administration suspected of having ties to Hezbollah — an attempt that left Fadlallah unscathed but killed 80 bystanders. President Reagan rescinded the "good faith" language in April 1985 but reinstated it less than six months later, after the hijacking of TWA flight 847. The congressional committees charged with overseeing covert activities then forced the administration into retreat once again and the administration removed the "good faith" language for a second time in the spring of 1986.
The 9/11 Commission Report indicates that President Clinton issued multiple directives relating to the assassination ban in connection with the proposed or actual use of force against Osama bin Laden in 1998 and 1999. One directive reportedly stated that lethal force could be used only in self-defense, and only in the context of a capture operation. Another, however, reportedly took a far broader view of presidential power, concluding that
recent presidents—from Reagan in Libya to Bush in Iraq—had been needlessly cautious in ordering broad attacks against enemy headquarters if their real objective was to kill an individual leader. Because executive orders are entirely at the discretion of the president … a president may issue contrary directives at will and need not make public that he has done so. Under customary international law and Article 51 of the U.N. Charter, according to those familiar with the memo, taking the life of a terrorist to preempt an imminent or continuing threat of attack is analogous to self-defense against conventional attack.
The Obama administration has interpreted the assassination ban, too. Recently, the New York Times reported that the Obama administration produced five legal memos in anticipation of the May 2011 raid on the bin Laden compound in Pakistan. The New York Times report does not mention the assassination ban specifically, but it is a safe bet that lawyers charged with developing "rationales intended to overcome any legal obstacle" took the ban into account.
Unfortunately, all of these analyses of the assassination ban are secret. As a result, we know little about how the Obama administration interprets the assassination ban, let alone how its interpretation differs from those of previous administrations. We also lack the information we need to evaluate the significance of the Obama administration's assurances that targeted killings aren't assassinations.
It's possible, though, that we will learn more in the coming weeks. An ACLU Freedom of Information Act suit pending before the Second Circuit challenges the withholding of two Office of Legal Counsel memos that we know address the assassination ban. One of them is a March 2002 memo that the government acknowledges "provid[ed] advice concerning the assassination ban." The other is a February 2010 memo that concluded that the assassination ban posed no obstacle to the use of lethal force against American citizen Anwar al-Aulaqi, who was killed in a drone strike the next year. The government released a version of that opinion to the ACLU last year, but the sections that address the assassination ban were redacted.
Of course we don't know whether the Court will order the government to release either of these documents. The discussion at oral argument, however — and the transcript of an unusual ex parte hearing held with the government — suggest that at least one judge was troubled by the withholding of certain portions of the 2002 memo. Last week, the Court filed a sealed ruling addressing these records. (The Court sealed its ruling to give the government an opportunity to seek further review.) Let's hope that the Court requires the disclosure of at least some of the withheld analysis.
It has been more than five years since the ACLU commenced its FOIA litigation, and more than two years since President Obama pledged to make the program "more transparent to the American people and the world." A public accounting of the administration's view of the assassination ban is long overdue.
Anwar al-Awlaki,
Assassination Ban,
FOIA,
Guest Author,
Targeted Killing,
Matthew Spurlock
National Security Fellow at the ACLU
January 4, 2021 by Jennifer Ahearn
January 4, 2021 by Austin Evers
A Roadmap for Reform: How the Biden Administration Can Revitalize the Office of Legal Counsel
December 16, 2020 by Annie Owens
The Failed Transparency Regime for Executive Agreements
December 10, 2020 by Curtis A. Bradley, Jack Goldsmith and Oona Hathaway
October 31, 2020 by Elizabeth Goitein
Access to Information During a Pandemic – A Matter of Life or Death
September 25, 2020 by Inés Pousadela
What a Few Cakes Say About the US Drone Program
September 16, 2020 by Maryam Jamshidi
Toward a New Approach to National and Human Security: End Endless War
September 11, 2020 by Rita Siemion, Scott Roehm, Hina Shamsi, Heather Brandon-Smith, Kate Kizer, Annie Shiel, Colleen Kelly and Mandy Smithberger
Hardwired Against Change: Race, Incarceration, and COVID-19
August 26, 2020 by Andrea Armstrong
In the Drive to Curb Police Abuses, Rein in Their Tech Too
August 7, 2020 by Lauren Sarkesian
Getting Serious About Protecting Health Care in War
July 28, 2020 by Leonard Rubenstein
Cyberattack Attribution and International Law
July 24, 2020 by Kristen Eichensehr


Dermal fillers are made of various kinds of natural, man-made and synthetic materials that have been developed for injection into the skin. They can be permanent or non-permanent. Collagen was the first dermal filler, but now the leading dermal fillers used by most UK practitioners are Hyaluronic acid based products such as Juvederm.
Hyaluronic acid is a natural substance found inside the human body. It's key properties are to keep the skin hydrated whilst adding plumpness. It naturally breaks down in the body during metabolism and is then replaced. However as we get older and our metabolism slows down, replacement of Hyaluronic Acid is less often which results in less hydrated skin and less volume in the skin. In these cases Dermal Fillers can be used to bring back this lost plumpness and also add volume in areas that have always lacked it.
• Bleeding after the needle has been inserted into the skin, mild bruising, tenderness, redness and swelling.
• Allergic reaction. These symptoms could include redness, swelling and itching that has not gone after 2 weeks. Severe allergic reactions are very rare but needs to be made aware of. Symptoms may include airway occlusion and anaphylaxis.
• If you have a history of cold sores, or fever blisters in the treated area, filler injections may cause them to break out again.
• You may experience lumpiness in and around the injection site and feel the filler product beneath your skin when you touch your face. This normally subsides over time but not always.
• Skin injections should be avoided in areas where the skin is swollen, open or where infections are present – e.g. active acne. This will reduce the risk of infection at the injection site after the treatment.
• You must be 18 years or older and have full capacity to make the decision to have it.
Directly after the dermal filler treatment the injected area will be bruised, swollen and itchy. These are all normal effects caused by the injection and they normally subside after a few days to a week. The treated area (especially the lips) will seem uneven for up to two weeks due to the swelling and so the final result will NOT be seen until at least 2 weeks after the treatment.
· Use paracetamol for pain relief if required after treatment, NOT Ibuprofen or any other blood thinning agents such as aspirin as this will cause excessive bruising.
· Arnica tablets are recommended a few days before and a few days after treatment as there is some evidence that this can reduce bruising. The Gel will be given to you on the treatment day and should be used to massage the treated area to help even out the product under the skin, this will be explained to you after your treatment.
· Bruising, swelling and itching should go down after a few days, but if you continue to experience very painful swelling and bruising, or if any blistering occurs after the 2 week healing period you should contact R.L.J Aesthetics.
· If you experience any delayed reactions such as lumpy redness, extreme pain, puss or any signs of infection occurring any time after treatment, you should contact us immediately, and we will assess you and decide if you need further medical advice.
· No make up and creams except arnica gel over the injected area for 2 days to avoid infection. Then only light make up and a gentle cleanser until all the swelling and redness has gone.
· No sunbeds for 2 weeks. And try and avoid direct sun light for a few days after the treatment. Avoid exposure to extreme heat. Wear sun screen at all times.
· Avoid smoking for 24 hours after treatment if having lip fillers to help prevent infection, burning and miss shaping the filler.


text:
Subscribe to News Brief
by California ChangeLawyers
Welcome! 2020 is going to be an epic year, and we promise to keep telling the stories of legal changemakers fighting for our shared humanity. Keep News Brief going strong>
Essay of the Week It's time to put the people back in government
The following essay was written by Eliana Kaimowitz, an immigrant integration lawyer at the California Department of Social Services.
I can still picture her sitting across from me, a Latinx woman with dark brown hair and dark eyes, who had risen to the top of her profession. A powerful California state director who made important policy decisions for over 40 million people. I was awed by her; that someone who looked like me could hold so much power and influence.
"I want to do what you do. I want to see how government really works from the inside," I told her.
Her response shocked me.
"You are too young to work in a government bureaucracy. Go out. Get some on-the-ground experience, and then come back to government." At the time, her words felt a stinging rejection. Several decades later, I see the wisdom of her words.
Many government workers have had limited interactions with people outside their own communities. This is problematic. People who have limited interactions with those outside their own communities have a very difficult, at times impossible, time designing good policies that actually benefit people on the ground.
More than educational credentials or work experience, policymakers at all levels should have some real-life experience with the problems they are asked to solve.. Or at the very least, policymakers should spend significant time with the people affected by the policies they create. They should developing meaningful relationships with community leaders and activists. They should spend time listening -- really listening -- to the people who live and work and give life to the communities they serve.
That's why when I research, discuss, and draft immigration policies, I think about the angst in a mother's eyes as she learns she may be deported far away from her children. I think about the years I spent representing immigrant clients. I think about my own personal experiences as a Latina woman. Human rights become more than a theory when you talk to a person who has been tortured or beaten because they protested a dictator or asked for clean drinking water.
In California, state government has used its power to give immigrants driver's licenses, access to a college education, and lawyers to help in deportation proceedings. Before any of these policies became a reality, someone had to be that voice who brought the stories of real people to the government. And someone in government had to agree that government could help solve these problems.
We need more changemakers in government. We need more changemakers who have a visceral understanding of the problems they are trying to solve. We need more changemakers in government with connections to the communities they serve.
To all the young changemakers out there: go work in and with the communities you intend to serve, and then go work in government to ensure ours is a government "of the people, by the people, and for the people."
Story by California ChangeLawyers >
This Week on Twitter 19 Black women elected judges in Texas
EVERY SINGLE BLACK WOMAN IN THIS PICTURE IS NOW A JUDGE IN TEXAS.
This is huge news that might get lost in the #Beto sadness. You did amazing, #HarrisCounty! #blackgirlmagic #bluewave #getherelected@angela_rye @rolandsmartin @docrocktex26 @BravenakBlog @lkherman @a_lwilliams https://t.co/GiaenUwLlo
— The Gaf (@thegaf) November 7, 2018
Speaking Of… This lawyer just became the first Latina, the first immigrant, and the youngest person to win a Judge's seat
County Judge-elect Lina Hidalgo did a bit more than score a big win for the Democratic party in her win last night. She also made a little history, becoming the first Latina woman to win the county judges seat, the first immigrant, and likely the youngest at only 27-year-old.
Hidalgo narrowly defeated Republican incumbent Ed Emmett, with barely 50 percent of the ballots and 590,524 to Emmett's 572,816 votes.
Hidalgo was born in Colombia and came to the United States as a child. Her story is the picture of the American dream in action, having come from a war-torn region as a child and realized she was finally safe and able to grow up, free.
Story by Patch >
More of This Lawyer becomes the first Palestinian American woman elected to Congress
Former Michigan state Rep. Rashida Tlaib has become one of the first Muslim women elected to Congress, after winning her race for Michigan's 13th Congressional District on Tuesday.
Tlaib's election to the House is a groundbreaking milestone for Congress, which currently has just two lawmakers who identify as Muslim, according to a Pew Research Center report. According to Pew, the proportion of Congress that identifies as Christian (more than 90 percent) hasn't changed much since the 1960s, although there is more religious diversity on the Democratic side. As a point of comparison, only 0.4 percent of Congress is Muslim, while 1.1 percent of Americans are.
Tlaib, who was the first Muslim woman to be elected to the Michigan state legislature, is the daughter of Palestinian immigrants and a Detroit native, according to her campaign website. She's part of a wave of about 100 Muslim Americans who filed to run for Congress this year, a surge that one study has tied to pushback against rising Islamophobia during the Trump administration.
"I'm going to be a woman, a mom, a Muslimah, a Palestinian, an Arab and so many of these other layers of these identities depending on who I'm talking to and what they want to identify me as," Tlaib told CNN.
Story by Vox >
Even More of This Lawyer becomes the first LGBTQ Native American woman elected to Congress
Sharice Davids has become Kansas's first openly LGBT woman elected to Congress, in a historic win for the Democratic Party.
Davids, an attorney, was raised by a single mother who spent some 20 years in the U.S. Army, The Shawnee Mission Post reported when she entered the race for Democratic nomination back in February. She went on to gain a law degree from Cornell Law School in Ithaca, New York.
A member of the Ho-Chunk Nation, which hails from Wisconsin, Davids has worked on community development on the Pine Ridge Indian Reservation in South Dakota. She praised the role of generations of Native women in driving progress in the U.S., previously telling Native American web program Wassaja: "That's part of why we're seeing many Native women running now... we're building off of the opportunities that our mothers and grandmothers helped lay out in front of us."
Davids campaigned on a platform of affordable healthcare and quality public education. She has called out gun violence and certain tax credits, and voiced support for abortion rights and an expansion of Medicare.
"Sharice won the hearts of voters by putting forward a positive and solutions-oriented agenda while explaining how her experiences as a Native American LGBTQ woman influenced her policy positions and beliefs," former Houston Mayor Annise Parker said in a statement to NBC News. "Sharice's victory tonight will become a model for other LGBTQ leaders considering a run for office in red states or districts."
Story by Newsweek >
More More More Two lawyers become the first Latinas from Texas elected to Congress
In the nearly 175 years since Texas joined the union, the state has sent more 300 representatives to Congress, but none have been Latina — until now. As of 8:30 p.m., campaigns for El Paso County Judge Veronica Escobar and Texas state Senator Sylvia Garcia have declared wins in congressional districts 16 and 29, respectively.
Their election to Congress comes when anti-immigrant fervor is at an all-time high, with the president and many Republicans fanning the flames with xenophobic rhetoric. In just the last couple weeks, a caravan of immigrants more than 1,000 miles away fleeing poverty and violence has been branded by Trump as "an invasion," and he has deployed 5,000 troops to the border. Escobar said she hopes to be a check on Trump's worst tendencies.
"We're living in an era under the Trump administration that is targeting communities like mine," said Escobar. "During such a tumultuous time I think it's beautiful that it's the border that's making history."
Story by Texas Observer >
Second Chances More than 1 million Floridians just regained the right to vote
The following op-ed was written by Jennifer Rae Taylor, a Senior Attorney at the Equal Justice Initiative in Montgomery, Alabama.
IN ONE OF TUESDAY'S most-watched races, Democratic candidate Andrew Gillum lost a bid to become Florida's first black governor by less than 100,000 votes. In the same state, incumbent Democratic Sen. Bill Nelson lost his re-election bid by a narrower count.
Yet more than 60 percent of Florida voters approved a constitutional amendment to transform one of the nation's harshest state felony disenfranchisement schemes, restoring the vote to many of its 1.4 million residents with past criminal convictions.
That latter win expanded the Florida electorate by an estimated 1 million new voters, many of whom are predicted to favor Democratic candidates, and a small fraction of whom could have easily swung the Senate and gubernatorial races.
According to 2016 data from The Sentencing Project, more than 1 in every 4 people disenfranchised in Florida is black, and more than 1 in 5 black people in Florida is disenfranchised. By some estimates, continued disenfranchisement paired with state trends in mass incarceration were predicted to soon yield a Florida "democracy" with 40 percent of black men barred from the ballot box. Forty percent.
And whatever we try to extrapolate from the race, age, class, or geographic backgrounds of those enfranchised by the new law, they all share one key characteristic not found on a census form: Each and every one has experienced criminal conviction and imprisonment. They have withstood the challenges of re-entry and discrimination and may be struggling through them still. And now, the power to vote brings with it the power to help remake one of the most powerful and complex forms of state control: criminal justice.
Story by the Marshall Project >
Funding Opportunity Time's Up Legal Defense Fund
Administered by the National Women's Law Center Fund, the TIME'S UP Legal Defense Fund connects those who experience sexual misconduct including assault, harassment, abuse and related retaliation in the workplace or in trying to advance their careers with legal and public relations assistance.
Apply here >
Job Opportunity OneJustice Pro Bono and Immigrant Lawyer, Healthy Nonprofits Program Director, Pro Bono Justice Program Director
Since 2007, OneJustice has developed and launched a variety of effective projects with possibilities of replication during the Justice Bus Project, Rural Justice Collaborative (RJC), IMPACT LA, Executive Fellows Program, and Nonprofit Management Consulting.
Job Opportunity Law for Black Lives hiring membership director
This position is a unique opportunity to support and direct an emerging network of lawyers, law students and legal workers.
Fellowship Opportunity 2019 MTO Fellowship
Applications are now open for the 2019 MTO Fellows Program. This program is an important initiative designed to encourage, promote and support a community of individuals who contribute to the diversity of the legal profession.
Fellowship Opportunity Soros Equaliy Fellowship
The U.S. Programs' Equality team seeks applicants for its Soros Equality Fellowship, which aims to support emerging mid-career professionals who will become long-term innovative leaders influencing the racial justice field. The fellowship award provides individuals with a grant of $100,000 to support production of an innovative racial justice project over the course of 18 months.
NEWS BRIEF is curated by Chief Content Director Carlos Aguilar
Let him know what you think
ChangeLawyer's curated collection of social justice stories, delivered to your inbox every Wednesday night.
Read the latest edition here >
California ChangeLawyers (formerly California Bar Foundation) is a statewide foundation that empowers the next generation of lawyers, judges, & activists.
180 Howard Street
Justice + Opportunity
Why we changed our name

redpajama_set_name: RedPajamaCommonCrawl


text:
: This is the largest listed Domino's entity, predominantly made up of franchises in North America, with faster growing international franchises in countries like Japan, the Netherlands and India. It is listed in the US and leases out major franchises in other countries.
Q1 of 2018 saw the firm deliver its 97th consecutive quarter of same store sales growth from its international operations and the 28th consecutive lift for international sales. Overall sales climbed 17%, with US like-for-likes up 8% and the international at up 5%.
The firm keeps quarterly dividend pay-out flat, having paid 38 cents throughout 2016 ($1.52 annually), 46 cents in 2017 ($1.84), and 55 cents per share in the Q1 to imply that the annual pay-out in 2018 will be $2.20.
Domino's Pizza Group PLC: This is a London-listed company that holds the master franchise for the brand in the UK and Ireland, with more operations in Switzerland, Luxembourg and Liechtenstein. It also has a controlling stake in the holders of the Domino's master franchise agreements in Iceland, Norway and Sweden, as well as an associate investment in Germany. At the start of April the company had 1203 stores across six markets, including 1054 stores in the UK.
The company has been focusing on its value proposition to customers and rolling-out GPS to stores so drivers can be tracked, in the hope of improving labour productivity. It plans to open 65 to 75 new stores in 2018. In Q1 it said sales through its system were 18% higher than the year before, with sales growing on both a like-for-like and a reported basis across all regions. The progressive dividend jumped 13% in 2017 to 9 pence from 8p in 2016 and should rise again this year.
DP Poland PLC: This AIM-listed stock holds the exclusive rights over the master franchise in Poland until at least 2025 with the option for a ten-year renewal if it can hit certain growth targets, some stores franchised out and some company-owned. The first store was opened in 2011 and it aims to have 70 open by the end of this year and 100 by 2020.
The company continued to deliver double-digit like-for-like sales growth in Q1 in addition to better margins at the store level. Still, it is the only loss-making business of the three as it rolls out new stores and faces cost pressure for ingredients and labour costs. This, unsurprisingly, means it does not pay a dividend.
(Millions) Domino's Pizza Inc ($) Domino's Pizza Group (£) DP Poland (£)
Revenue 2473 2788 360.6 474.6 7.6 10.4
Pre-tax profit 344.7 400.2 82.5 81.2 (2.5) (2.6)
Stores 13,811 14,856 1013 1192 35 54
This information has been prepared by IG, a trading name of IG Markets Limited. In addition to the disclaimer below, the material on this page does not contain a record of our trading prices, or an offer of, or solicitation for, a transaction in any financial instrument. IG accepts no responsibility for any use that may be made of these comments and for any consequences that result. No representation or warranty is given as to the accuracy or completeness of this information. Consequently any person acting on it does so entirely at their own risk. Any research provided does not have regard to the specific investment objectives, financial situation and needs of any specific person who may receive it. It has not been prepared in accordance with legal requirements designed to promote the independence of investment research and as such is considered to be a marketing communication. Although we are not specifically constrained from dealing ahead of our recommendations we do not seek to take advantage of them before they are provided to our clients. See full non-independent research disclaimer and quarterly summary.
Act on share opportunities today
Go long or short on thousands of international stocks with spread bets and CFDs.
Get full exposure for a comparatively small deposit
Trade on spreads from just 0.1%
Get greater order book visibility with direct market access
See opportunity on a stock?
Try a risk-free trade in your demo account, and see whether you're on to something.
Log in to your demo
Take your position
See whether your hunch pays off
Don't miss your chance – upgrade to a live account to take advantage.
Trade a huge range of popular stocks
Analyse and deal seamlessly on fast, intuitive charts
See and react to breaking news in-platform
Don't miss your chance. Log in to take advantage while conditions prevail.
Take advantage
Related articles in
Just Eat Takeaway shares set to soar ahead of H1 earnings
Aaran Fronda, Publication date : 2020-08-10T16:12:18+0100
Just Eat share price: what to expect from 2018 results
Joshua Warner, Publication date : 2019-02-27T16:01:34+0000
Uber Eats cuts fees to compete with Just Eat and Deliveroo
Nyandabeh Ella Vincent, Publication date : 2019-02-21T21:57:00+0000
Just Eat CEO steps down after tough 2018
Uber to eat up GrubHub: what you need to know
Live prices on most popular markets
liveprices.javascriptrequired
See more forex live prices
See more shares live prices
See more indices live prices
Prices above are subject to our website terms and agreements. Prices are indicative only. All shares prices are delayed by at least 15 mins.
Plan your trading week
Get the week's market-moving news sent directly to your inbox every Sunday. The Week Ahead gives you a full calendar of upcoming economic events, as well as commentary from our expert analysts on the key markets to watch.
I'd like to receive information from IG Group companies about trading ideas and their products and services via email.
managingOffice
siteId
For more info on how we might use your data, see our privacy notice and access policy and privacy webpage.
How much does trading cost?
Find out about IG
Plan your trading
Find out what charges your trades could incur with our transparent fee structure.
Discover why so many clients choose us, and what makes us a world-leading provider of spread betting and CFDs.
Stay on top of upcoming market-moving events with our customisable economic calendar.
IG services
News and trade ideas
Interested in opening an account? Contact 0800 195 3100 or newaccountenquiries.uk@ig.com
Want to check on your application's progress? Email newaccounts.uk@ig.com
IG | Sitemap | Terms and agreements | Privacy | IG Community | Cookies | Investors | Modern slavery act
Spread bets and CFDs are complex instruments and come with a high risk of losing money rapidly due to leverage. 68% of retail investor accounts lose money when trading spread bets and CFDs with this provider. You should consider whether you understand how spread bets and CFDs work, and whether you can afford to take the high risk of losing your money. Professional clients can lose more than they deposit. All trading involves risk.
The value of shares, ETFs and ETCs bought through a share dealing account, a stocks and shares ISA or a SIPP can fall as well as rise, which could mean getting back less than you originally put in. Past performance is no guarantee of future results.
CFD, share dealing and stocks and shares ISA accounts provided by IG Markets Ltd, spread betting provided by IG Index Ltd. IG is a trading name of IG Markets Ltd (a company registered in England and Wales under number 04008957) and IG Index Ltd (a company registered in England and Wales under number 01190902). Registered address at Cannon Bridge House, 25 Dowgate Hill, London EC4R 2YA. Both IG Markets Ltd (Register number 195355) and IG Index Ltd (Register number 114059) are authorised and regulated by the Financial Conduct Authority.
The information on this site is not directed at residents of the United States, Belgium or any particular country outside the UK and is not intended for distribution to, or use by, any person in any country or jurisdiction where such distribution or use would be contrary to local law or regulation.
Careers | Marketing partnership


text:
Q: javascript text link to button I would like to change the below text link to css button.

Calculator

A: Add a class to your  as such:
Calculator
Then in your CSS style it to look like a button:
.anchorButton {
  /* Resets */
  font-family: sans-serif;
  font-size: 16px;
  color: #000;
  border: 1px solid #000;
  border-radius: 0;
  background-color: transparent;

  margin: 0;
  padding: 0;
  height: auto;
  width: auto;
  cursor: pointer;

  /* More styles... */
}
a.anchorButton {
  /* Styles for when it's an  */
  text-decoration: none;
}
button.anchorButton {
  /* Styles for when it's a <button> */
  -webkit-appearance: none;
  -moz-appearance: none;
}

Alternatively you can use Bootstrap which already has a bunch of classes that look like buttons so you don't have to style it yourself.

A:

Calculator

A: //--------------------------------------------------------------------------------------------------------
// Configuration
//--------------------------------------------------------------------------------------------------------
var calcBGColor = "#53ba1c";             // calculator background color
var calcBorder = "2px outset green";     // calculator border (CSS spec: size style color, e.g. "2px outset white")
var calcFontSize = 15;                   // calculator font size (pixels)
var calcMode = "dec";                    // calculator default mode: "dec" (decimal) or "hex" (hexadecimal)
var calcFadeSpeed = 15;                  // calculator fade speed (0 - 30; 0 = no fading)*

var title = "Calculator";          // title bar text
var titleBGColor = "#206D15";            // title bar background color
var titleColor = "#FFFFFF";              // title bar font color

var displayBGColor = "white";          // display background color
var displayBorder = "0px inset white";   // display border (CSS spec: size style color, e.g. "2px inset white")
var displayColor = "#0000A0";            // display font color

var buttonBGColor = "#FFDC00";           // button background color
var buttonColor = "#000000";             // button font color

//--------------------------------------------------------------------------------------------------------
// Get browser
//--------------------------------------------------------------------------------------------------------
var DOM = document.getElementById;
var IE4 = document.all;

//--------------------------------------------------------------------------------------------------------
// Calculator buttons
//--------------------------------------------------------------------------------------------------------
var buttons = new Array();
buttons[0] = new Array('AC', 'CI', '←', '',         'Hex');
buttons[1] = new Array('D',  'E',   'F',     '',         'Dec');
buttons[2] = new Array('A',  'B',   'C',     '+/-',      '');
buttons[3] = new Array('7',  '8',   '9',     '÷', 'x²');
buttons[4] = new Array('4',  '5',   '6',     '×',  '√');
buttons[5] = new Array('1',  '2',   '3',     '−',  '1/x');
buttons[6] = new Array('0',  '.',   '=',     '+',        '%');

//--------------------------------------------------------------------------------------------------------
// Calculator functions
//--------------------------------------------------------------------------------------------------------
var buffer = formula = lastOp = lastInput = '';
if(!calcMode) calcMode = 'dec';

function makeButtons() {
  var i, j, link;
  var html = '<form name="f1">';

  for(i = 0; i < buttons.length; i++) {
    html += '
';

    for(j = 0; j < buttons[i].length; j++) {
      switch(buttons[i][j]) {
        case 'AC':       link = 'clearAll()'; break;
        case 'CI':       link = 'clearInput()'; break;
        case '←':   link = 'delChar()'; break;
        case 'Hex':      link = 'dec2hex()'; break;
        case 'Dec':      link = 'hex2dec()'; break;
        case '+':        link = "operator('+')"; break;
        case '−':  link = "operator('-')"; break;
        case '÷': link = "operator('/')"; break;
        case '×':  link = "operator('*')"; break;
        case '%':        link = "operator('%')"; break;
        case '√':  link = "operator('sqrt')"; break;
        case 'x²':  link = "operator('pow')"; break;
        case '1/x':      link = "operator('1/x')"; break;
        case '+/-':      link = "operator('+/-')"; break;
        case '=':        link = "operator('=')"; break;
        default:         link = "character('" + buttons[i][j] + "')";
      }
      html += '';

      if(buttons[i][j]) {
        html += '<input type="button" id="btn' + i + j + '" value="' + buttons[i][j] +
                '" style="' + cssButton + '" onMouseUp="' + link + '" onFocus="this.blur()">';
      }
      html += '	';
    }
    html += '
';
  }
  html += '</form>';

  return html;
}

function disableButtons() {
  var mode = (calcMode == 'hex') ? false : true;
  document.f1.btn10.disabled = mode;
  document.f1.btn11.disabled = mode;
  document.f1.btn12.disabled = mode;
  document.f1.btn20.disabled = mode;
  document.f1.btn21.disabled = mode;
  document.f1.btn22.disabled = mode;
  document.f1.btn61.disabled = !mode;
  document.f1.btn34.disabled = !mode;
  document.f1.btn44.disabled = !mode;
  document.f1.btn54.disabled = !mode;
  document.f1.btn64.disabled = !mode;
}

function print(text) {
  var obj = null;

  if(DOM) obj = document.getElementById('calcDisplay');
  else if(IE4) obj = document.all.calcDisplay;

  if(obj) {
    var op = '';
    if(calcMode == 'hex') text = text.replace('0x', '');

    switch(lastOp) {
      case '+': op = lastOp; break;
      case '-': op = '−'; break;
      case '*': op = '×'; break;
      case '/': op = '÷'; break;
    }
    obj.innerHTML = '
' + calcMode.toUpperCase() + '
' +
                    '
' + op + '
' + text;
  }
}

function character(c) {
  if(formula == 'calculated') formula = buffer = lastInput = '';
  if(!buffer && calcMode == 'hex') buffer = '0x';

  var charCnt = buffer.length;
  if(calcMode == 'hex') charCnt -= 2;

  if((calcMode == 'hex' && charCnt < 16) || (calcMode == 'dec' && charCnt < 20)) {
    if(c >= '1' && c <= '9') {
      buffer += c;
      print(buffer);
    }
    else if(c == '0') {
      if(buffer && buffer != '0x') {
        buffer += c;
        print(buffer);
      }
    }
    else if(calcMode == 'hex') {
      c = c.toUpperCase();
      if(c >= 'A' && c <= 'F') {
        buffer += c;
        print(buffer);
      }
    }
    else if(c == '.') {
      if(!buffer) buffer = '0.';
      else if(buffer.indexOf('.') == -1) buffer += '.';
    }
    lastInput = buffer;
  }
}

function operator(op) {
  if(formula == 'calculated') formula = '';
  if(calcMode == 'hex' && buffer.length > 20) buffer = buffer.substr(0, 20);
  if(buffer.charAt(buffer.length - 1) == '.') buffer += '0';

  switch(op) {
    case 'sqrt':  if(buffer) {
                    formula = 'Math.sqrt(' + buffer + ')';
                    lastOp = '';
                    calculate();
                  }
                  else clearAll();
                  break;

    case 'pow':   if(buffer) {
                    formula = 'Math.pow(' + buffer + ', 2)';
                    lastOp = '';
                    calculate();
                  }
                  else clearAll();
                  break;

    case '1/x':   if(buffer) {
                    formula = '1/' + buffer;
                    lastOp = '';
                    calculate();
                  }
                  else clearAll();
                  break;

    case '%':     if(formula && buffer) {
                    if(lastOp != '*') {
                      var perc = eval(formula + '*' + buffer + '/100');
                      formula += lastOp + perc;
                    }
                    else formula += lastOp + buffer + '/100';
                    lastOp = '';
                    calculate();
                  }
                  else clearAll();
                  break;

    case '+/-':   if(buffer && buffer != '0' && buffer != '0x0') {
                    if(buffer.charAt(0) == '-') buffer = buffer.substr(1);
                    else buffer = '-' + buffer;
                    print(buffer);
                  }
                  break;

    case '+':
    case '-':
    case '*':
    case '/':     lastOp = op;
                  if(formula) {
                    if(buffer) {
                      formula += op + buffer;
                      calculate();
                      formula = buffer;
                      buffer = '';
                    }
                  }
                  else {
                    if(!buffer) buffer = (calcMode == 'hex') ? '0x0' : '0';
                    formula = buffer;
                    buffer = '';
                  }
                  break;

    case '=':     if(buffer) {
                    if(formula) formula += lastOp + buffer;
                    else if(lastOp && lastInput) {
                      formula = buffer + lastOp + lastInput;
                    }
                    if(formula) calculate();
                  }
                  else clearAll();
                  break;
  }
}

function calculate() {
  if(formula) {
    var error = false;
    var result = '';

    formula = formula.replace(/--([0-9A-Fx]+)/, '-(-$1)');

    try {
      result = eval(formula);

      if(!isFinite(result)) error = true;
      else if(calcMode == 'hex') {
        result = Math.floor(result);
        result = result.toString(16).toUpperCase();
      }
      else {
        var s = result.toString();
        if(s.indexOf('.') != -1 && s.indexOf('e') == -1) {
          result = Math.round(result * 10000000000000) / 10000000000000;
        }
        result = result.toString();
      }
    }
    catch(e) {
      error = true;
    }

    if(error) {
      buffer = '';
      print('ERROR');
    }
    else {
      if(calcMode == 'hex') {
        if(result.charAt(0) == '-') result = '-0x' + result.substr(1);
        else result = '0x' + result;
      }
      print(result);
      buffer = result;
    }
    window.status = formula + '=' + result;
    formula = 'calculated';
  }
}

function dec2hex() {
  if(calcMode != 'hex') {
    calcMode = 'hex';
    disableButtons();

    if(buffer) {
      formula = 'calculated';
      lastInput = lastOp = '';
      window.status = '';
      buffer = parseInt(buffer);

      if(isNaN(buffer)) {
        buffer = '';
        print('ERROR');
      }
      else {
        buffer = buffer.toString(16).toUpperCase();
        buffer = (buffer.charAt(0) == '-') ? '-0x' + buffer.substr(1) : '0x' + buffer;
        print(buffer);
      }
    }
    else clearAll();
  }
  else clearAll();
}

function hex2dec() {
  if(calcMode != 'dec') {
    calcMode = 'dec';
    disableButtons();

    if(buffer) {
      formula = 'calculated';
      lastInput = lastOp = '';
      window.status = '';
      buffer = parseInt(buffer, 16);

      if(isNaN(buffer)) {
        buffer = '';
        print('ERROR');
      }
      else {
        buffer = buffer.toString();
        print(buffer);
      }
    }
    else clearAll();
  }
  else clearAll();
}

function clearInput() {
  buffer = lastInput = '';
  print('0');
  window.status = '';
}

function clearAll() {
  formula = lastOp = '';
  clearInput();
}

function delChar() {
  if(formula != 'calculated') {
    if(buffer) {
      buffer = buffer.substr(0, buffer.length - 1);

      if(!buffer || buffer.search(/^\-?(0x?)?$/) != -1) clearInput();
      else print(buffer);
    }
  }
}

//--------------------------------------------------------------------------------------------------------
// Visual effects functions
//--------------------------------------------------------------------------------------------------------
var timer = opacity = 0;

function setOpacity(op) {
  if(obj) {
    obj.style.filter = 'alpha(opacity=' + op + ')';
    obj.style.mozOpacity = '.1';
    if(obj.filters) obj.filters.alpha.opacity = op;
    if(!IE4 && obj.style.setProperty) obj.style.setProperty('-moz-opacity', op / 100, '');
  }
}

function fadeIn() {
  if(sobj) {
    sobj.visibility = 'visible';
    if(calcFadeSpeed && opacity < 100) {
      opacity += calcFadeSpeed;
      if(opacity > 100) opacity = 100;
      setOpacity(opacity);
      if(timer) clearTimeout(timer);
      timer = setTimeout('fadeIn()', 1);
    }
    else {
      opacity = 100;
      setOpacity(100);
    }
  }
}

function fadeOut() {
  if(sobj) {
    if(calcFadeSpeed && opacity > 0) {
      opacity -= calcFadeSpeed;
      if(opacity < 0) opacity = 0;
      setOpacity(opacity);
      if(timer) clearTimeout(timer);
      timer = setTimeout('fadeOut()', 1);
    }
    else {
      opacity = 0;
      setOpacity(0);
      sobj.visibility = 'hidden';
    }
  }
}

function viewCalc() {
  if(sobj && sobj.visibility != 'visible') {
    document.onkeydown = getKeyCode;
    sobj.left = mouseX + 'px';
    sobj.top = mouseY + 'px';
    fadeIn();
  }
}

function hideCalc() {
  document.onkeydown = null;
  fadeOut();
  clearAll();
}

//--------------------------------------------------------------------------------------------------------
// General functions
//--------------------------------------------------------------------------------------------------------
function getScrollLeft() {
  var scrLeft = 0;
  if(document.documentElement && document.documentElement.scrollLeft)
    scrLeft = document.documentElement.scrollLeft;
  else if(document.body && document.body.scrollLeft)
    scrLeft = document.body.scrollLeft;
  else if(window.pageXOffset) scrLeft = window.pageXOffset;
  return scrLeft;
}

function getScrollTop() {
  var scrTop = 0;
  if(document.documentElement && document.documentElement.scrollTop)
    scrTop = document.documentElement.scrollTop;
  else if(document.body && document.body.scrollTop)
    scrTop = document.body.scrollTop;
  else if(window.pageYOffset) scrTop = window.pageYOffset;
  return scrTop;
}

//--------------------------------------------------------------------------------------------------------
// Event handlers
//--------------------------------------------------------------------------------------------------------
var mouseX = mouseY = 0;
var dragging = false;

function getKeyCode(e) {
  var k;

  if(e && e.which) k = e.which;
  else if(event && event.keyCode) k = event.keyCode;

  if(k == 13) operator('=');
  else if(k) {
    if(k == 27) clearAll();
    else if(k == 46) clearInput();
    else if(k == 37) delChar();
    else if(k >= 96 && k <= 105) character(k - 96);
    else if(k >= 65 && k <= 70) character(String.fromCharCode(k));
    else if(k == 110 || k == 188 || k == 190) character('.');
    else if(k == 106) operator('*');
    else if(k == 107) operator('+');
    else if(k == 109) operator('-');
    else if(k == 111) operator('/');
    else if(k == 88) hideCalc();
  }
}

function getMouse(e) {
  var mX = mouseX;
  var mY = mouseY;

  if(e && e.pageX != null) {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  else if(event && event.clientX != null) {
    mouseX = event.clientX + getScrollLeft();
    mouseY = event.clientY + getScrollTop();
  }
  if(mouseX < 0) mouseX = 0;
  if(mouseY < 0) mouseY = 0;

  if(dragging && sobj) {
    var x = parseInt(sobj.left + 0);
    var y = parseInt(sobj.top + 0);
    sobj.left = x + (mouseX - mX) + 'px';
    sobj.top = y + (mouseY - mY) + 'px';
  }
}

function startDrag(e) {
  if(!DOM && !IE4) return;
  var firedobj = (e && e.target) ? e.target : event.srcElement;
  var topelement = DOM ? 'HTML' : 'BODY';

  if(DOM && firedobj.nodeType == 3) firedobj = firedobj.parentNode;

  if(firedobj.className == 'titlebar') {
    firedobj.unselectable = true;

    while(firedobj.tagName != topelement && firedobj.className != 'calculator')
      firedobj = DOM ? firedobj.parentNode : firedobj.parentElement;

    if(firedobj.className == 'calculator') {
      sobj = firedobj.style;
      dragging = true;
    }
  }
}

document.onmousemove = getMouse;
document.onmousedown = startDrag;
document.onmouseup = function() { dragging = false; }

//--------------------------------------------------------------------------------------------------------
// Build calculator
//--------------------------------------------------------------------------------------------------------
var calcWidth = calcFontSize * 17;
var obj, sobj;

var cssCalculator = (calcBGColor ? 'background-color: ' + calcBGColor + '; ' : '') +
                    (calcBorder ? 'border: ' + calcBorder + '; ' : '');

var cssTitleBar = 'cursor: default; ' +
                  'font-family: Arial, Helvetica; ' +
                  'font-size: ' + (calcFontSize + 1) + 'px; ' +
                  'font-weight: bold; ' +
                  'padding: 4px; ' +
                  (titleColor ? 'color: ' + titleColor + '; ' : '') +
                  (titleBGColor ? 'background-color: ' + titleBGColor + '; ' : '');

var cssDisplay = 'width: ' + calcWidth + 'px; ' +
                 'height: ' + (calcFontSize + 4) + 'px; ' +
                 'font-family: Arial, Helvetica; ' +
                 'font-size: ' + (calcFontSize + 1) + 'px; ' +
                 'font-weight: bold; ' +
                 'text-align: right; ' +
                 'margin: 2px; ' +
                 'padding: 4px; ' +
                 'overflow: hidden; ' +
                 'white-space: nowrap; ' +
                 (displayColor ? 'color: ' + displayColor + '; ' : '') +
                 (displayBGColor ? 'background-color: ' + displayBGColor + '; ' : '') +
                 (displayBorder ? 'border: ' + displayBorder + '; ' : '');

var cssDisplayMode = 'width: ' + Math.round(calcFontSize * 1.5) + 'px; ' +
                     'font-family: Arial, Helvetica; ' +
                     'font-weight: normal; ' +
                     'font-size: ' + Math.round(calcFontSize / 1.5) + 'px; ' +
                     'white-space: nowrap; ' +
                     'float: right; ' +
                     (displayColor ? ' color: ' + displayColor + '; ' : '');

var cssDisplayOp = 'width: ' + Math.round(calcFontSize / 1.5) + 'px; ' +
                   'font-family: Arial, Helvetica; ' +
                   'font-weight: normal; ' +
                   'font-size: ' + Math.round(calcFontSize / 1.5) + 'px; ' +
                   'text-align: left; ' +
                   'float: left; ' +
                   (displayColor ? ' color: ' + displayColor + '; ' : '');

var cssButton = 'font-family: Arial, Helvetica; ' +
                'font-weight: bold; ' +
                'width: ' + (calcFontSize * 3) + 'px; ' +
                'font-size: ' + (calcFontSize - 1) + 'px; ' +
                (buttonColor ? 'color: ' + buttonColor + '; ' : '') +
                (buttonBGColor ? 'background-color: ' + buttonBGColor + '; ' : '');

var cssButtonClose = 'font-family: Arial, Helvetica; ' +
                     'font-weight: bold; ' +
                     'width: ' + Math.round(calcFontSize * 1.5) + 'px; ' +
                     'font-size: ' + (calcFontSize - 1) + 'px; ' +
                     (buttonColor ? 'color: ' + buttonColor + '; ' : '') +
                     (buttonBGColor ? 'background-color: ' + buttonBGColor + '; ' : '');

document.write('
' +
               '
' +
               '
' + title +
               '	' +
               '<input type="button" value="×" style="' + cssButtonClose +
               '" onClick="hideCalc()" onFocus="this.blur()">
' +
               '
' +
               '

' +
               '
' + makeButtons() +  '

');

if(DOM) obj = document.getElementById('calculator');
else if(IE4) obj = document.all.calculator;
if(obj) sobj = obj.style;

disableButtons();
clearAll();

//--------------------------------------------------------------------------------------------------------

redpajama_set_name: RedPajamaStackExchange