This is a placeholder page for Aaron Bowin, which means this person is not currently on this site. We do suggest using the tools below to find Aaron Bowin.
You are visiting the placeholder page for Aaron Bowin. This page is here because someone used our placeholder utility to look for Aaron Bowin. We created this page automatically in hopes Aaron Bowin would find it. If you are not Aaron Bowin, but are an alumni of Parsons High School Parsons, KS, register on this site for free now.


That's right. Tons of buys by insiders. We shall see what Tuesday will bring us.
my comments are just my opinion and nothing else. please conduct your own DD and research. My comments are NOT a recommendation to buy or sell stocks. good luck to all!
Interesting - they filed NT-10K on Apr 2 and selected YES for the below question.
Don't know if this means anything, I am new to moving stock more frequently, so tend to do more analysis.


text:
First look inside Caledonian Sleeper's swanky new carriages
April 3, 2019 admin Lifestyle News photo
The first images from inside Caledonian Sleeper's new fleet of trains has been revealed.
The overnight rail service between London and Scotland will be transformed by the introduction of the £150m fleet, with a total of 75 new carriages set to make their debut.
Guests on the new services will be able to enjoy a range of accommodation types, including rooms with double beds and en-suites – for the first time in the history of Caledonian Sleeper.
The inside track on the new carriages: Pictured is a 'Caledonian double', which comes with a double bed with en-suite, station lounge access, breakfast and luxury toiletries and costs from £335 for one or £400 shared
This image shows a 'club room', which costs from £205 for one, £250 for two. The second person sleeps on a flip-down bed
Passengers will be able to purchase comfort seats (from £45); classic rooms (solo or shared use with an option of interconnecting rooms, toiletries included; from £140 for one or £170 for two); club rooms (solo or shared use with en-suite, station lounge access, breakfast, luxury toiletries included; from £205 for one and £250 for two); a Caledonian double (double bed with en-suite, station lounge access, breakfast, luxury toiletries included; from £335 for one and £400 for two); and accessible rooms (double or twin, toiletries included).
Caledonian Sleeper's new trains will begin operating by the end of May, initially on the Lowlander route between London Euston and Glasgow/Edinburgh. They will subsequently debut on the Highlander route between London and Aberdeen, Inverness and Fort William.
Bookings can already be made for travel on the new trains from 2 June.
Caledonian Sleeper has also launched a revamped website – sleeper.scot.
It says that the site 'makes it easier than ever for people to book their magical journey and explore the destinations the trains reach'.
Ryan Flaherty, Serco's Managing Director for Caledonian Sleeper, said: 'The launch of the new Caledonian Sleeper is fast approaching and travelling on our service will be a truly magical experience that will transform travel between London and Scotland.
This is a classic room which can be booked for solo or shared use, with an option of interconnecting rooms. It costs from £140 for one or £170 for two
Caledonian Sleeper's new trains will begin operating by the end of May, initially on the Lowlander route between London and Glasgow/Edinburgh. Pictured is a 'club car'
'I would encourage anyone interested in being one of the first to experience the new trains to book their travel on our new website, which has been completely revamped to reflect the monumental and exciting changes to our service.
'Caledonian Sleeper is competitively priced and means guests can avoid the hassle or additional costs of getting to and from the airport. It is the only way to be at your destination in plenty of time for early morning meetings or a full day's sightseeing without the cost of a hotel.'
In a statement, Caledonian Sleeper added: 'Caledonian Sleeper fares have no hidden costs and allow guests to bring multiple suitcases or excess baggage on board without incurring any additional charges. And with centre-to-centre travel, there is an additional cost saving over flying as there is no need to pay for connections to take you in or out of the city. That means Caledonian Sleeper is not only the most civilised way to travel – it is also frequently the most cost effective.
The new Caledonian Sleeper coaches, pictured, were constructed by CAF in Spain at a cost of over £150m
'With a 12-month booking window, it also means that guests can plan their travel well in advance. That is a major advantage over other train operators, where cheaper advance fares are usually only available from 12 weeks before travel.'
The new Caledonian Sleeper coaches were constructed by CAF in Spain at a cost of over £150m, part funded by a capital grant from Scottish Ministers of £60m.
Testing has been underway across the UK throughout 2018 and early 2019.
Camilla and Charles arrive in Abuja for the next leg of their West Africa tour
Love Island's Sherif Lanre booted from the villa for 'kicking Molly-Mae Hague in the groin'
Racist man films himself hurling abuse at Muslim girls outside Bow girls school east London
Chloe Green's 'mystery man' revealed as Monte Carlo's polo captain Rommy Gianni
Fourth victim of Christmas market shooting dies as French minister says not ISIS but 'evil'
Your pills' nasty side effects? They're not as rare as you think
Deliciously Ella tells of the 'incredibly painful' loss of mother-in-law, Dame Tessa Jowell
Tom Daley steps out with son Robbie and husband Dustin Lance Black after buggy row
Previous Post:Is this Emirates' new premium economy seat?
Next Post:Stacey Dooley reunites with Kevin Clifton in his hometown and meets his parents after split from boyfriend
Twenty brilliant tricks guaranteed to take years off… (3)

redpajama_set_name: RedPajamaCommonCrawl


CHUN has selected St. Barnabas as its "2016 Good Neighbor Award" for Historic Preservation. The Jim Pieker Historic Preservation Award will be presented to us at the CHUN Annual Meeting on January 12th at 7:00pm in Dagwell Hall, St. John's Cathedral. Please RSVP to Stan Siefer, our Vestry Warden, if you'd like to attend.


The Running Librarian: Linkedin maps!
As Karen Blakeman on her blog says, the result is very pretty, but frankly quite messy and I'm not entirely sure what it says.
I have identified some of the groups indicated by the different colours, but some of them I've really struggled with. Anyway if you want to give it a go, you can do exactly that at Linkedin Labs.
This entry was posted on Monday, 31 January 2011 at 11:00 and is filed under LinkedIn. You can follow any responses to this entry through the RSS 2.0. You can leave a response.
It's all about the tips!


text:
47 Dywizja Piechoty (niem. 47. Infanterie-Division) – niemiecka dywizja z czasów II wojny światowej, sformowana na mocy rozkazu 1 lutego 1944 roku przez VI Okręg Wojskowy w okolicach Calais. Jednostkę utworzono na bazie 156 Dywizji Rezerwowej. 17 września 1944 r. została przekształcona w 47 Dywizję Grenadierów Ludowych (47. Volksgrenadier-Division).

Struktura organizacyjna
 Struktura organizacyjna w lutym 1944 roku:
103., 104., 115. pułk grenadierów, 147. pułk artylerii, 147. batalion pionierów, 147. batalion fizylierów, 147. oddział przeciwpancerny, 147. oddział łączności, 147. polowy batalion zapasowy;
 Struktura organizacyjna w grudniu 1944 roku:
103., 104. i 115. pułk grenadierów, 147. pułk artylerii, 147. batalion pionierów, 147. dywizyjna kompania fizylierów, 147. oddział przeciwpancerny, 147. oddział łączności, 147. polowy batalion zapasowy;

Dowódcy dywizji
 Generalleutnant Otto Elfedt (od 1 lutego 1944 do czerwca 1944)
 Generalmajor Carl Wahle (od 30 lipca 1944 do 4 września, gdy dostał się do niewoli)
 Generalleutnant Siegfried Macholz (od 4 września 1944)
 Generalleutnant Max Bork (od 17 września 1944)
 Oberst von Grundherr (marzec 1945)
 Oberst Langesee (kwiecień 1945)
 Generalmajor Hauser (kwiecień 1945)

Szlak bojowy
Po utworzeniu dywizja była aktywna w Normandii, później walczyła nad Mozą, gdzie poniosła ciężkie straty. Została odbudowana w Danii, poprzez wchłonięcie 577 Dywizji Grenadierów Ludowych, która była w początkowej fazie formowania. Później walczyła w Nadrenii pod Akwizgranem, szlak bojowy zakończyła pod Münsingen poddając się Amerykanom.

Przypisy

Bibliografia
 Haupt Werner, Die deutchen Infanterie Division b.m.w i b.d.w; ;
 Schramm Percy Ernst, Kriegstagebuch des Oberkommandos der Wehrmacht 8 vol.; Bonn 2003; ;

Dywizje piechoty III Rzeszy
Dywizje sformowane w VI Okręgu Wojskowym (III Rzesza)

redpajama_set_name: RedPajamaWikipedia


text:
Skip to content Setting-Cache
Ray O'Rourke can only spend part of the year in UK
Grant Prior 5 years ago
Laing O'Rourke chairman and chief executive Ray O'Rourke can only spend a limited number of days in the UK due to his tax exile status in Jersey.
The restrictions come at a time the O'Rourke leader is taking a more hands-on role in a bid to turn around the fortunes of the country's largest private contractor.
The company revealed last month that it made a £246m loss for the year to March 2016.
Ray O'Rourke said: "It is with humility that I have to report our first loss in 15 years of trading as Laing O'Rourke.
"As a private company, the responsibility for its performance rests with me as founder."
Ray O'Rourke took up the chief executive role 13 months ago when Anna Stewart stood down.
Companies House records show he is a resident of Jersey which is a tax haven.
Tax rules mean Ray O'Rourke can only spend half the year in the UK.
A source close to the company said: "Ray is back at the helm but being based in Jersey obviously has its drawbacks.
"He can only spend a certain amount of time in this country where a lot of the recent problems have been."
The Enquirer understands that senior O'Rourke managers have been forced to fly to Jersey for board meetings.
A Laing O'Rourke spokesperson said: "In his leadership role as executive Chairman and CEO, Ray travels extensively across all our international operations and is managing the business in a hands-on way, supported by an extremely capable senior leadership team.
"The Chair's choice of residence is very much a private matter for him and his family, and therefore we will not be commenting further."
Written by Grant Prior
grant.prior@constructionenquirer.com


text:
Marvel, Movies
Avengers: Endgame Lives Up to the Hype (spoiler-free review)
Over 11 years and more than 20 films, Kevin Feige and the team at Marvel Studios has wrapped up what has to be the most ambitious, most complex, and utterly satisfying run in cinematic history. Avengers: Endgame is the perfect capstone to this monumental effort. It is satisfying not only as an epic film (and at 3 hours and 2 minutes it is epic), but also emotionally. It wraps up the plot neatly, making way for whatever comes next without taking away from the legacy of this set of films.
Avengers: Endgame final poster
If you remember from the end of Avengers: Infinity War, half the team and the world is eliminated with the snap of a finger. It doesn't take a genius to figure out that this film is going to be about how to get them back. Yet, the filmmakers have done a remarkable job in creating a plot with interesting twists and turns to keep you guessing without delving into predictable plot devices. And the surprises built into the story are worth discovering on your own – so no spoilers here.
Marvel Studios' AVENGERS: ENDGAME..L to R: Nebula (Karen Gillan) and Captain America/Steve Rogers (Chris Evans)..Photo: Film Frame..©Marvel Studios 2019
The film focuses on the six main characters from the first Avengers film – Captain America, Iron Man, Thor, Hulk, Hawkeye, and Black Widow – with some notable additions including Ant-Man, War Machine, Rocket, Nebula and Captain Marvel. But rightly so as this adventure began primarily with them, it ends with them as well. Each of their stories is wrapped up nicely in both expected and unexpected ways. There will surely be some who are critical of the ending, but most will walk out with a deep sense of satisfaction if not a bit of sadness at the end of an era.
Tony Stark at the beginning of Endgame leaves a last message for Pepper in case no one comes to rescue him after his encounter with Thanos.
From a storytelling point of view, perhaps the biggest surprise is that after 21 films, these characters continue to grow. After the second movie in most franchises, the characters are pretty stale and the action begins to revolve around the ancillary characters. But in the MCU, every film sees these heroes changed by their circumstances and by how they view their world. Tony Stark, who has been at this the longest, still wrestles with his past and with his future. Can he still protect the world? Can he even protect the ones he loves?
Marvel Studios' AVENGERS: ENDGAME..L to R: Hawkeye/Clint Barton (Jeremy Renner), War Machine/James Rhodey (Don Cheadle), Iron Man/Tony Stark (Robert Downey Jr.), Captain America/Steve Rogers (Chris Evans), Nebula (Karen Gillan), Rocket (voiced by Bradley Cooper), Ant-Man/Scott Lang (Paul Rudd) and Black Widow/Natasha Romanoff (Scarlett Johansson)..Photo: Film Frame..©Marvel Studios 2019
Will you see your other favorites somewhere in the film? For sure. They may not have prominent roles, but nearly every other major (and sometimes minor) character gets screen time. And the Russo brothers pick some interesting ones to highlight. Again, it's too much fun to find out on your own, and I did promise a spoiler-free review so go check it out yourself. Most do not get the character storyline treatment the main characters do, but I love the tidbits of dialogue each one gets. And is Captain Marvel perhaps the most powerful and awesome superhero in the universe? Avengers: Endgame is a wild romp through the MCU and a fitting end for this story arc. But go see it on the big screen where it belongs.
April 26, 2019 Craig YAvengers, Avengers: Endgame, Marvel Cinematic Universe, spoiler-free review
3 thoughts on "Avengers: Endgame Lives Up to the Hype (spoiler-free review)"
Nice review. Personally, I loved this movie. It grand, epic, moving, and everything I wanted it to be. Great way to end the Infinity saga story arc.
A Pretty Story says:
I loved this movie. It was truly an end to an epic era. You definitely go through quite a variety of emotions, but it all worth it! Great review!
Previous Previous post: Queen's Shadow Exposed to the Light (Book and Audio Review)
Next Next post: LEGO Reimagines Classic Star Wars Sets! (May the Fourth Be With You)


text:
Early radio broadcasting in the Pacific began around 1900, with a large number of stations playing music and amateur radio broadcasts from around 1920. The period from 1920-1940 is often called the 'Golden Age' of radio as this new medium became a familiar part of everyday life, great entertainers appeared, news and music spread across the world, and vintage radio receivers were designed with the influences of art movements such as art deco.
The people who were involved in these early days of radio are now in their 90's and 80's, and are rapidly beginning to disappear, taking their memories, their memorabilia and their stories with them. There is little time to lose, in fact, we know some stories have already gone forever and the gaps they leave will never be properly filled.
The Oral History Project is designed to identify and capture as many original stories as possible from these radio pioneers and bring them within the collections and archives of the Foundation and our Radio Heritage Partners around the Pacific.
The priority period is 1920-1945, this quarter century spanning the beginnings of broadcasting, the Golden Age, and the special circumstances of WWII.
We urgently need volunteers able to contribute towards a series of specific Period Projects by conducting face to face, telephone, email or letter based interviews with broadcasters, technicians and listeners. A number of the projects may also be eligible for grants and other funds from a variety of sources. More than one volunteer is needed in most cases.
We also need a volunteer with professional oral history skills to co-ordinate the Period Projects with some simple guidelines and advice on how to find the people to be interviewed, how to approach them, how to conduct the interview, and how to then bring the results back.
As well as obtaining personal accounts from these radio pioneers, each Period Project includes making arrangements for the protection of any memorabilia the person or their family members may wish to see left to the Foundation or a Radio Heritage Partner, consulting with the Foundation about storage, publishing and other issues which may emerge from the contact, and staying in contact with the radio pioneers afterwards.
This is a project of vital importance, where a lot of people can make an immediate impact and save our sounds and stories from being lost right now. Visit our volunteer section for more information and a list of Period Projects and get involved.
If you're a radio pioneer yourself, either contact us directly, visit our section which explains how you can contribute your own story, make a gift of memorabilia or other radio heritage items or make a donation to the Foundation. We'd love to hear from you and help you share your story.
You're doing a great job.~Craig Dillon, thestudio FM, Queenstown, New Zealand
With electricity, we were wired into a new world, for electricity brought the radio.~Theodore H White
00:13 Charlie Wolf - The Laser 558 Story - Part 2 (1:00:50)
NZBC Radio Recordings from the 1960s
Naaldwijk NL
Giza EG
Nelson GB
Swindon GB
Pittsburg US


text:
Sports Medicine Specialists
Ryan Wood, DPM
Louis Stabile, MD
Matthew Zapf, MD MSc
Many people in today's society choose to participate in athletics. Some are professionals whose physical performance is their livelihood, many are students who pursue sports in conjunction with academics, and still others are avid amateurs who participate in sports for recreation and physical fitness.
All athletes compete with different skill levels, different motivations and different goals but with one shared need: the need for a fully integrated, comprehensive sports medicine program that can be tailored to each athlete's goals. Unfortunately, injuries that occur during or related to athletic competition have become common among today's active population. At ICON, our philosophy is to provide all athletes with the same high quality level of care.
A dedication to keeping the athletic community healthy and active is evidenced by the comprehensive nature of the programming at ICON. In addition to providing specialized assessment and treatment for sports-related injuries, our clinical team is also actively involved in educating our area's athletes, coaches, and parents about injury prevention and recognition. The ICON team provides programs to the community which teach proper strength building, flexibility, conditioning, endurance, and training techniques, help to minimize the risk of injury occurrence.
The orthopedic surgeons and medical teams we work with specialize in the treatment of:
Soft tissue sprains, strains, and contusions
Overuse and traumatic injuries to the upper extremity and hand
Degenerative and rheumatoid arthritis
Impingement syndromes of the shoulder, elbow, and wrist
Instability of the shoulder
Fractures, dislocations, subluxations
We are proud to partner with local high schools in the valley, including:
Cathedral City High School
Coachella Valley High School
Desert Mirage High School
Xavier College Preparatory School
Nondiscrimination Notice and Language Assistance Services
No Surprises Act & Good Faith Estimates
1150 N. Indian Canyon Drive
Fax: (Orthopedics) 760-416-4512
Copyright © 2016 - 2023 TH Medical. All rights reserved.


text:
Grayson County Voter Registration (Kentucky)
Grayson County Clerks maintain public records for a county or local government in Kentucky. In some states, Clerks play a role in carrying out public elections, working in connection with Boards of Elections and the Kentucky State election commissions. Clerks can process Grayson County voter registration applications and verify whether an individual is eligible to vote, and they maintain up-to-date lists of registered voters. Grayson County Clerks may also provide online information about how to register to vote or where to vote. Citizens may also be able to register to vote at a Clerk's Office.
Grayson County Clerk Leitchfield KY 10 Public Square 42754 270-259-3201
Grayson County Boards of Elections are responsible for carrying out public elections, and one of their duties is to process Grayson County voter registration applications submitted by citizens in Kentucky. A Board of Elections certifies eligible voters in their particular jurisdiction and maintains an up-to-date list of registered voters in Grayson County. They also verify voter information and may contact registered voters to keep Grayson County voter list information current. Boards of Elections are usually operated at the county or local level, and may be known as a Board of Registrars.
Grayson County Board of Elections Leitchfield KY 10 Public Square 42754 270-259-0638
Grayson County The primary responsibility of the DMV, or Department of Motor Vehicles, is to grant Kentucky driver's licenses and identification cards to KY residents, but the DMV also plays an important role in Grayson County voter registration. Citizens who want to register to vote in Grayson County can do so at the DMV, which will transfer the information, such as full name and address, to the local Grayson County Board of Elections or Grayson County Clerk's Office. This can be an easy way to register to vote while applying for a license or renewing a license. The DMV may also be known as a Grayson County DOL, or Grayson County Department of Licensing.
Grayson County Clerk's Office Leitchfield KY 10 Public Square 42754 270-259-3201
Grayson County District Judge Leitchfield KY 125 East White Oak Street 42754 270-259-3040
Voter Registration near Grayson County
Edmonson County
Breckinridge County
Hart County
Larue County


text:
package completion

import (
	"os"

	"github.com/spf13/cobra"
)

func NewBashCmd() *cobra.Command {
	return &cobra.Command{
		Use:   "bash",
		Short: "Generate bash completions",
		RunE: func(cmd *cobra.Command, cmdArgs []string) error {
			return cmd.Root().GenBashCompletion(os.Stdout)
		},
	}
}

redpajama_set_name: RedPajamaGithub


text:
Max Reinhardt, ursprungligen Maximilian Goldman, född 9 september 1873 i Baden, Österrike-Ungern, död 30 oktober 1943 i New York, USA, var en österrikisk regissör. Han var gift två gånger, från 1910 med skådespelerskan Else Heims, med vilken han hade två söner, varav en var regissören Gottfried Reinhardt, och från 1935 med skådespelerskan Helen Thimig.

Biografi
Reinhardt var en av sin tids ledande teaterregissörer i Tyskland och Österrike och influerade många europeiska skådespelare och regissörer. År 1903 lämnade han scenen för att uteslutande ägna sig åt regi. Åren 1905-20 och 1924-33 var han i Berlin ledare för Deutsches Theater och 1919-24 för Grosses Schauspielhaus.

Från 1920 ledde han festspelen i Salzburg och 1924 tog han i Wien hand om Theater in der Josefstadt. Dessutom arbetade han med mindre scener - hans år 1906 öppnade Kammerspiele i Berlin blev mycket uppmärksammad - och företog talrika gästspel, och besökte upprepade gånger Sverige, dels med egen ensemble, dels som gästregissör.

Reinhardt ägde och ledde ett flertal teatrar, vilka emellertid konfiskerades av Reichskulturkammer när nazisterna hade kommit till makten i Tyskland 1933. Han flyttade då till Wien och 1938 flydde han till USA, där han fortsatte sin verksamhet inom teatern.

På Reinhardts scener utvecklades en högklassig ensemblekonst, och vad gäller utnyttjandet av de nya teatertekniska möjligheterna var han banbrytande. Han hade sinne för spelplatsen som bild och var enastående som instruktör av masscener.

Förutom några stumfilmer regisserade Reinhardt endast en film: En midsommarnattsdröm 1935.

Filmografi

Regi i urval

Producent

Teater

Regi
1921 – Ett drömspel av August Strindberg, Dramaten

Litteratur
 J. L. Styan: Max Reinhardt (CUP Archive, 1982) Ingår i serien Directors & perspective.

Källor

Externa länkar

Böcker om Max Reinhardt på svenska bibliotek. Libris.
 Max Reinhardt i Dramatens Rollbok

Österrikiska teaterregissörer
Tyska teaterregissörer
Födda 1873
Avlidna 1943
Män
Teaterteoretiker
Tyska filmregissörer


In what must be one of the toughest set of finalists ever, the BBC Sports Personality of the Year contenders have been released, including three cyclists.
Sir Chris Hoy, Sarah Storey and Bradley Wiggins have all made the shortlist, which also includes Andy Murray, Mo Farah, Jessica Ennis, Katherine Grainer, David Weir, Ellie Simmonds, Nicola Adams and Ben Ainslie.
That shortlist not only avoids the controversy of last year's male-slanted set, but is widely considered to be the strongest line-up yet. Andy Murray's winning of a Grand Slam sets him apart from every other British tennis player since the 1930s.
The favourite to win – as he has been for much of the year – is Bradley Wiggins, not least for his Tour de France triumph where he became the first Brit ever to win the (almost) century old race.
The winner will be revealed on the evening of Sunday December 16th. Speaking to BikeBiz at the launch of his bike brand yesterday, Sir Chris Hoy revealed he wouldn't be able to attend the ceremony due to prior commitments.
Cycling has, in recent years, got some form in SPOTY. Mark Cavendish won the 2009 competition (where he won with 50 per cent of the vote), while Sir Chris Hoy won in Olympic year 2008. Before those two, cycling picked up the award in 1965 courtesy of Tom Simpson.


Think pink, think rosé, and while you're doing all that thinking, why not consider sparkling pink bubbles for Valentine's Day? If you didn't know already, bubbles drinkers prefer pink when given the choice. It seems like rosé sparklers give more pop per pop, if you will, and are very food friendly with a higher acidity, a little body and fruit.
Color and flavor are all over the spectrum from coral to light salmon pink to bright cherry red. This rainbow of rosé is achieved by how much time the juice is allowed to sit on the skins and the color of the pigment of the grapes used. Tastes vary from strawberry, tangy and bright stone fruit, lush cherry, tart red currant, and even rhubarb.
Whether from France, Italy, Spain, or Yakima, Washington, all these wines are made using the traditional methode Champenoise. You just can't call them Champagne because they are not from the French region that owns the rights to the name Champagne. These wines are extremely well made, satisfying, fun and fruit driven making them so easy to sip – super-stars for your Valentine's celebration, not to be taken lightly. They are bright, showy and festive: perfect for a night of romance (or rom-coms).
Made from a somewhat unusual grape from Austria, this rosé sparkler was a big hit over the holidays here at the Co-op. Delicate notes of wild strawberry and rose petal are revealed when tasting this dry and well balanced wine. Grown in north Veneto, the grapes are harvested very late and supply good acidity which does well in this style of bubbles. Fine and persistent perlage (effervescence) with harmonious finish and a touch of residual sugar. Wildbacher Brut Rosé is now on sale for $19.99 per 750ml.
Crisp and complex boasting hints of berries and citrus to create a blend of delicious and enticing flavors. One of only a few sparkling wine producers in Washington State, Treveri Cellars is family owned and only makes bubbles. The versatility will surely infuse your table with luxury and class.
This Cava seduces with its bright cherry red color and beautiful effervescence. Reflecting the character of the varietal with its cherry and strawberry notes enveloped in honey, toasted bread and a faint floweriness. It is intense, fresh and exuberant in the mouth, with a rich aromatic finish. Different with a strong personality with well balanced acidity and flavors. Juvé & Camps Pinot Noir Brut Cava is available for $15.99 per 750 ml.
An all-time best from the Alsace and the "go to" by the glass rosé sparkler in Seattle. The flavors display nice strawberry and wild cherry fruit with a touch of richness on the mid palate balanced by dry, crisp acidity and complimented with creamy texture on the long finish. On sale now, Lucien Albrecht Cremant Brut Rose is $18.99 per 750 ml.


A Texas pond by Magnolia Ponds is shown, note the woods in background.
It seems that every nature and landscape photographer seeks out the lake with the reflection of trees or mountains in the water. These are the shots that make for calendar photos that hang on the walls of old-timers like me. Let us consider building our water gardens where they will receive both the shade and the reflecting beauty of a nearby tree. We will explore what works and what may cause a headache.
When a pond builder appraises the location of a new customer who desires a pond or stream with waterfalls, there are quite a few items on my mental checklist. Where will the homeowners and guests view the new pond or waterfall? How big of a pond is desired? How big is affordable? And, is there any shade? Sure, there are other factors to be considered, but I always look to add a tree to the design if there isn't one nearby the location of the future water garden.
On the plus side is shade — it's so much easier to keep fish and wildlife content with the presence of shade, and there is much less aggravation with algae growth. A shallow pond in the South that is situated in the middle of a treeless yard is not a good situation for anyone, including fish and frogs who may have 90-degree water in the afternoons and 60-degree water before sunup. The full sun and hot water also encourage weeds and algae.
After all, in nature, streams and ponds are almost always lined in some manner with trees, grasses or shrubbery. If the customer wants a natural-looking pond, locating the pond in the middle of a grassy yard or beside a concrete patio only works if you're willing to plant some trees and shrubs to go with it.
The cons? First, of course, is the leaves that will ultimately fall. But I hardly ever see a pond, no matter how far removed from trees it may be, that won't have some leaves in the bottom in the winter or spring. Akin to that is the litter of blossoms, seeds and other messiness that may fall from trees close to a pond or waterfall. Then, finally, there is the worry of tree roots tearing a hole in the liner or disrupting the integrity of the pond.
I have many years of experience, so I've seen most situations. If I know one thing, I know I will pick shade over a few leaves in the skimmer net every single time.
So, why do so many pond "authorities" and books tell new pond owners that they need to stay away from trees and put their ponds out in the open? My guess is that these people don't own a pond and don't really love ponds; they just like the idea of a published book with their name on the cover. After all, it sounds sensible to avoid the trees and problems that might go with them. Or, maybe they see too many ponds built without modern biofalls or skimmers that are always trashy.
Here are some suggested trees that I would use to shade a waterfall or pond. By no means is this a complete list, partly because I live in a temperate Zone 6 — near Appalachia. I use Japanese maples such as Bloodgood or many other clones, with the idea that they should get big enough to provide some shade. I like serviceberries (amelanchier), for shade and for the fruit — the birds and I both love it! I also love yellowwood (Cladrastus kentukea); sometimes I use hemlock, pawpaws, ginkgo, fringe trees, crepe myrtle and junipers to give my ponds some shade and some character. Even a scarlet oak or blackgum tree would work.
These trees either have roots that are fine and shallow or taproots that go deep and don't bother the pond. Note that any tree can send roots over a liner's edge and into the water, where it acts like a straw in a soft drink, sucking up pond water and creating that leak in the springtime you often cannot find. Cherries and willows seem to smell water and climb over obstacles with their roots to get to it.
Let's begin with any trees that are super messy. This includes river birch, sycamore and black walnut. The black walnut contains juglone, which is harmful to other plants, and even fish. I would also avoid brittle trees, such as Bradford pears. Redbuds, too, have big, shallow roots, messy seeds and falling blooms.
Pine trees look good near the water, but I find that the needles can clog pads, get past magdrive pump screens, ruin or render ineffective backflow valves, be prone to fall in wind or ice storms and have shallow roots that may end up in the pond.
The pond, left, was constructed in the shadow of a white fringe tree. At the right, the same feature — 10 years later — is in excellent shade.
Anecdotally, there can be problems with trees and ponds. But from my nearly 20 years of experience, I've seen no tree, flower, weed or anything else send roots through a pond liner from below if the pond also had a nonwoven, geopad-type underlayment under the rubber. Without such protection, I have seen Russian sage and euonymous roots penetrate a liner that lacks something for padding. I also highly suspect bamboo, thalia and cattails are capable of putting holes in a good-quality liner if care isn't taken from the beginning.
Can large trees be a problem? Perhaps. You don't want to cut roots bigger than an inch or two in diameter in order to dig your pond, because removing large roots could cause nearby trees to die entirely. But, the worst I've had to deal with was a homeowner wanting a pond between a lovely dogwood and redbud next to her patio. In excavating, I found a major root about 10 inches down at one point. I made a shallow end to the pond and let the water have almost a little stream effect as it headed to the skimmer. Over the years, more than a decade now, the dogwood has died, and the redbud is old and frail, with the root pushing the liner, making the water about 4 inches deep at that point. However, this is the biggest redbud I've ever seen, so it's not likely to grow a lot more. If the redbud should die, this homeowner will have a pond in the sun unless she lets me plant another tree for her.
In summary, I'll take the leaves and trash of a tree or two near my pond in exchange for the shade. The troubles with a hot, sunny pond exceed the messy troubles of a tree in my opinion. The cool shade and more attractive appearance are simply bonuses when landscaping a water feature with some trees.


Trevis leads the choir and special musical events at Bethany. A talented musician, organist, and director, Trevis is a great 2018 addition to our staff. If you sing or play and instrument and want to get involved, contact Chuck.


Hey Bloggers! Sorry I wasn't posting for the last couple days. I am still sick with a virus that will not completely go away!! Anyways, the question of the day is: Is popularity that big of a deal?
Lots of people are insecure and make friends instantly (even if the friends are not friends) . And lots of people also don't have any friends, and go with the "popular" group to not be alone. But there are also different ways to be popular.
The "middle school" popular. Middle school. Ugh. As I said, insecure girls want to "fit in" , especially new girls. To understand this, the movie Mean Girls fully explains this in high school. It's hilarious. I just do not understand why people in middle or high school want to be popular. What does "popular" even mean? I mean, will being popular in school help you in the future? No, no it won't. This is ridiculous.
The "social media" popular, which is the sadest type of popular. In one of my most recent posts, What will happen if We Stop Using Social Media I explain how social media is destroying us and what would happen if we quit using it. Constantly being on Facebook, Twitter, Instagram, Snapchat and other social media locks us up in this internet world, by ourselves, in front of the computer. Hoping to get new followers is not the worst thing in the world, but in a sense is not good. Yes, I hope my blog will gain traffic because I cannot express myself like this in the real world, although I wish I could. I ask questions I answer myself, and show the real me. But hoping to get more Instagram just to "look good" is another story.
I wouldn't want to popular, even if I had a choice. I always ask myself why people want to be popular. I would rather have one or two friends that are trustworthy, mentally strong, loyal, kind, funny, and smart to me than 25 friends who know little about me. Being popular is a joke, just to let you know.
Previous Post Why does Beauty matter?
Next Post Is Your Talent Really a Talent?
Question is, once we know that, can we live like that? Can you?
Just be true to yourself. That way you will find friendships that have true meaning. It's quality not quantity.
I'm friends with a group of people who aren't "the cool kids" of my grade, but they're still really kind and understanding. Better to have fewer closer friends than many that don't know you well at all, as you said.
Sometimes I wonder what my life would have been like if I was part of the popular crowd. I don't think I would like it very much.


Susanville Premium Seed Garlic is a delightful softneck variety. Its fine texture allows this garlic to spead easily when combined with melted butter for the best garlic bread ever. And Susanville's mild, yet garlicky taste is sure to please diners of all ages. The large bulbs typically yield 12-15 cloves.


The School of Nursing of Li Ka Shing Faculty of Medicine, The University of Hong Kong (HKU) held the 6th Serena Yang Lecture entitled "What is Old is New: Trends for Nursing in Global Aging" on May 30, 2018. Professor Eileen Sullivan-Marx, Dean and Erline Perkins McGriff Professor of Nursing of NYU Rory Meyers College of Nursing and President-Elect of American Academy of Nursing, is an internationally renowned nursing expert, who examined the current best practices in the care of older adults and what needs to be done or applied to ensure the best care for aging communities and families in society.
A Signing Ceremony for a Memorandum of Understanding (MoU) with New York University (NYU) Rory Meyers College of Nursing was held before the Opening Ceremony of the 6th Serena Yang Lecture. The MoU outlines the academic cooperation and research collaboration between the two Schools.
The signing of the MoU will enhance academic collaborations between the two Schools. It helps the School to nurture our nursing students as a global leader with increased international mobility and widened global exposure. Officiating guests of the ceremonies included also Professor Paul Tam, Acting President and Vice-Chancellor, HKU and Professor Gabriel Leung, Dean, Li Ka Shing Faculty of Medicine, HKU.
Since 2008, Dr Serena Yang has been providing continuous support and generous donation to the School of Nursing. By inviting internationally renowned scholars to deliver distinguished lectures in Hong Kong, the Serena Yang Lecture provides an invaluable platform for knowledge exchange between academics and nursing practitioners.
Professor Eileen Sullivan-Marx, Dean of Nursing of NYU Rory Meyers College of Nursing and Professor Chia-Chin Lin, Head of School of Nursing, Li Ka Shing Faculty of Medicine, HKU, signed the MoU. Officiating guests of the ceremonies also included Professor Paul Tam, Acting President and Vice-Chancellor, and Professor Gabriel Leung, Dean, Li Ka Shing Faculty of Medicine, of HKU.


text:
Carts API
=========

These endpoints will allow you to easily manage cart and cart items. Base URI is `/api/v1/carts/`.

.. note::

    Remember that a **Cart** in Sylius is an **Order** in the state ``cart``.

    If you don't understand the difference between Cart and Order concepts in Sylius yet, please read :doc:`this article </book/orders/orders>` carefully.

Cart API response structure
----------------------------

If you request a cart via API, you will receive an object with the following fields:

+-------------------+---------------------------------------------------------------------------------------+
| Field             | Description                                                                           |
+===================+=======================================================================================+
| id                | Id of the cart                                                                        |
+-------------------+---------------------------------------------------------------------------------------+
| items             | List of items in the cart                                                             |
+-------------------+---------------------------------------------------------------------------------------+
| itemsTotal        | Sum of all items prices                                                               |
+-------------------+---------------------------------------------------------------------------------------+
| adjustments       | List of adjustments related to the cart                                               |
+-------------------+---------------------------------------------------------------------------------------+
| adjustmentsTotal  | Sum of all cart adjustments values                                                    |
+-------------------+---------------------------------------------------------------------------------------+
| total             | Sum of items total and adjustments total                                              |
+-------------------+---------------------------------------------------------------------------------------+
| customer          | :doc:`The customer object serialized with the default data </api/customers>` for cart |
+-------------------+---------------------------------------------------------------------------------------+
| channel           | :doc:`The channel object serialized with the default data </api/channels>`            |
+-------------------+---------------------------------------------------------------------------------------+
| currencyCode      | Currency of the cart                                                                  |
+-------------------+---------------------------------------------------------------------------------------+
| localeCode        | Locale of the cart                                                                    |
+-------------------+---------------------------------------------------------------------------------------+
| checkoutState     | State of the checkout process of the cart                                             |
+-------------------+---------------------------------------------------------------------------------------+

CartItem API response structure
-------------------------------

Each CartItem in an API response will be build as follows:

+-------------------+--------------------------------------------------------------------------------------------+
| Field             | Description                                                                                |
+===================+============================================================================================+
| id                | Id of the cart item                                                                        |
+-------------------+--------------------------------------------------------------------------------------------+
| quantity          | Quantity of item units                                                                     |
+-------------------+--------------------------------------------------------------------------------------------+
| unitPrice         | Price of each item unit                                                                    |
+-------------------+--------------------------------------------------------------------------------------------+
| total             | Sum of units total and adjustments total of that cart item                                 |
+-------------------+--------------------------------------------------------------------------------------------+
| units             | A collection of units related to the cart item                                             |
+-------------------+--------------------------------------------------------------------------------------------+
| unitsTotal        | Sum of all units prices of the cart item                                                   |
+-------------------+--------------------------------------------------------------------------------------------+
| adjustments       | List of adjustments related to the cart item                                               |
+-------------------+--------------------------------------------------------------------------------------------+
| adjustmentsTotal  | Sum of all item adjustments related to that cart item                                      |
+-------------------+--------------------------------------------------------------------------------------------+
| variant           | :doc:`The product variant object serialized with the default data </api/product_variants>` |
+-------------------+--------------------------------------------------------------------------------------------+
| _link[product]    | Relative link to product                                                                   |
+-------------------+--------------------------------------------------------------------------------------------+
| _link[variant]    | Relative link to variant                                                                   |
+-------------------+--------------------------------------------------------------------------------------------+
| _link[order]      | Relative link to order                                                                     |
+-------------------+--------------------------------------------------------------------------------------------+

CartItemUnit API response structure
-----------------------------------

Each CartItemUnit API response will be build as follows:

+-------------------+------------------------------------------+
| Field             | Description                              |
+===================+==========================================+
| id                | Id of the cart item unit                 |
+-------------------+------------------------------------------+
| adjustments       | List of adjustments related to the unit  |
+-------------------+------------------------------------------+
| adjustmentsTotal  | Sum of all units adjustments of the unit |
+-------------------+------------------------------------------+

Adjustment API response structure
---------------------------------

And each Adjustment will be build as follows:

+--------+----------------------------------------------------------+
| Field  | Description                                              |
+========+==========================================================+
| id     | Id of the adjustment                                     |
+--------+----------------------------------------------------------+
| type   | Type of the adjustment (E.g. *order_promotion* or *tax*) |
+--------+----------------------------------------------------------+
| label  | Label of the adjustment                                  |
+--------+----------------------------------------------------------+
| amount | Amount of the adjustment (value)                         |
+--------+----------------------------------------------------------+

.. note::

    If it is confusing to you, learn more about :doc:`Carts (Orders) in the component docs </components_and_bundles/components/Order/models>`
    and :doc:`Adjustments concept </book/orders/adjustments>`.

Creating a Cart
---------------

To create a new cart you will need to call the ``/api/v1/carts/`` endpoint with the ``POST`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    POST /api/v1/carts/

+---------------+----------------+----------------------------------------------------------+
| Parameter     | Parameter type | Description                                              |
+===============+================+==========================================================+
| Authorization | header         | Token received during authentication                     |
+---------------+----------------+----------------------------------------------------------+
| customer      | request        | Email of the related customer                            |
+---------------+----------------+----------------------------------------------------------+
| channel       | request        | Code of the related channel                              |
+---------------+----------------+----------------------------------------------------------+
| localeCode    | request        | Code of the locale in which the cart should be created   |
+---------------+----------------+----------------------------------------------------------+

Example
^^^^^^^

To create a new cart for the ``shop@example.com`` user in the ``US_WEB`` channel with the ``en_US`` locale use the below method:

.. warning::

    Remember, that it doesn't replicate the environment of shop usage. It is more like an admin part of cart creation, which will allow you to manage
    the cart from the admin perspective. ShopAPI is still an experimental concept.

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/ \
        -H "Authorization: Bearer SampleToken" \
        -H "Content-Type: application/json" \
        -X POST \
        --data '
            {
                "customer": "shop@example.com",
                "channel": "US_WEB",
                "localeCode": "en_US"
            }
        '

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 201 Created

.. code-block:: json

    {
        "id":21,
        "items":[

        ],
        "itemsTotal":0,
        "adjustments":[

        ],
        "adjustmentsTotal":0,
        "total":0,
        "customer":{
            "id":1,
            "email":"shop@example.com",
            "firstName":"John",
            "lastName":"Doe",
            "user":{
                "id":1,
                "username":"shop@example.com",
                "usernameCanonical":"shop@example.com"
            },
            "_links":{
                "self":{
                    "href":"\/api\/v1\/customers\/1"
                }
            }
        },
        "channel":{
            "code":"US_WEB",
            "_links":{
                "self":{
                    "href":"\/api\/v1\/channels\/US_WEB"
                }
            }
        },
        "currencyCode":"USD",
        "localeCode":"en_US",
        "checkoutState":"cart"
    }

.. note::

    A currency code will be added automatically based on the channel settings. Read more about channels :doc:`here </book/configuration/channels>`.

.. warning::

    If you try to create a resource without localeCode, channel or customer, you will receive a ``400 Bad Request`` error, that will contain validation errors.

Example
^^^^^^^

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/ \
        -H "Authorization: Bearer SampleToken" \
        -H "Content-Type: application/json" \
        -X POST

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 400 Bad Request

.. code-block:: json

    {
        "code":400,
        "message":"Validation Failed",
        "errors":{
            "children":{
                "customer":{
                    "errors":[
                        "This value should not be blank."
                    ]
                },
                "localeCode":{
                    "errors":[
                        "This value should not be blank."
                    ]
                },
                "channel":{
                    "errors":[
                        "This value should not be blank."
                    ]
                }
            }
        }
    }

Collection of Carts
-------------------

To retrieve a paginated list of carts you will need to call the ``/api/v1/carts/`` endpoint with the ``GET`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    GET /api/v1/carts/

+---------------+----------------+------------------------------------------------------------------+
| Parameter     | Parameter type | Description                                                      |
+===============+================+==================================================================+
| Authorization | header         | Token received during authentication                             |
+---------------+----------------+------------------------------------------------------------------+
| page          | query          | *(optional)* Number of the page, by default = 1                  |
+---------------+----------------+------------------------------------------------------------------+
| paginate      | query          | *(optional)* Number of carts displayed per page, by default = 10 |
+---------------+----------------+------------------------------------------------------------------+

Example
^^^^^^^

To see the first page of the paginated carts collection use the below method:

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/ \
        -H "Authorization: Bearer SampleToken" \
        -H "Accept: application/json"

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 200 OK

.. code-block:: json

    {
        "page":1,
        "limit":10,
        "pages":1,
        "total":1,
        "_links":{
            "self":{
                "href":"\/api\/v1\/carts\/?page=1&limit=10"
            },
            "first":{
                "href":"\/api\/v1\/carts\/?page=1&limit=10"
            },
            "last":{
                "href":"\/api\/v1\/carts\/?page=1&limit=10"
            }
        },
        "_embedded":{
            "items":[
                {
                    "id":21,
                    "items":[

                    ],
                    "itemsTotal":0,
                    "adjustments":[

                    ],
                    "adjustmentsTotal":0,
                    "total":0,
                    "customer":{
                        "id":1,
                        "email":"shop@example.com",
                        "firstName":"John",
                        "lastName":"Doe",
                        "user":{
                            "id":1,
                            "username":"shop@example.com",
                            "enabled":true
                        },
                        "_links":{
                            "self":{
                                "href":"\/api\/v1\/customers\/1"
                            }
                        }
                    },
                    "channel":{
                        "id":1,
                        "code":"US_WEB",
                        "_links":{
                            "self":{
                                "href":"\/api\/v1\/channels\/US_WEB"
                            }
                        }
                    },
                    "currencyCode":"USD",
                    "localeCode":"en_US",
                    "checkoutState":"cart"
                }
            ]
        }
    }

Getting a Single Cart
---------------------

To retrieve details of the cart you will need to call the ``/api/v1/carts/{id}`` endpoint with ``GET`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    GET /api/v1/carts/{id}

+---------------+----------------+--------------------------------------+
| Parameter     | Parameter type | Description                          |
+===============+================+======================================+
| Authorization | header         | Token received during authentication |
+---------------+----------------+--------------------------------------+
| id            | url attribute  | Id of the requested cart             |
+---------------+----------------+--------------------------------------+

Example
^^^^^^^

To see details of the cart with ``id = 21`` use the below method:

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21 \
        -H "Authorization: Bearer SampleToken" \
        -H "Accept: application/json"

.. note::

    The *21* value was taken from the previous create response. Your value can be different.
    Check in the list of all carts if you are not sure which id should be used.

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 200 OK

.. code-block:: json

    {
        "id":21,
        "items":[

        ],
        "itemsTotal":0,
        "adjustments":[

        ],
        "adjustmentsTotal":0,
        "total":0,
        "customer":{
            "id":1,
            "email":"shop@example.com",
            "firstName":"John",
            "lastName":"Doe",
            "user":{
                "id":1,
                "username":"shop@example.com",
                "usernameCanonical":"shop@example.com"
            },
            "_links":{
                "self":{
                    "href":"\/api\/v1\/customers\/1"
                }
            }
        },
        "channel":{
            "code":"US_WEB",
            "_links":{
                "self":{
                    "href":"\/api\/v1\/channels\/US_WEB"
                }
            }
        },
        "currencyCode":"USD",
        "localeCode":"en_US",
        "checkoutState":"cart"
    }

Deleting a Cart
---------------

To delete a cart you will need to call the ``/api/v1/carts/{id}`` endpoint with the ``DELETE`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    DELETE /api/v1/carts/{id}

+---------------+----------------+--------------------------------------+
| Parameter     | Parameter type | Description                          |
+===============+================+======================================+
| Authorization | header         | Token received during authentication |
+---------------+----------------+--------------------------------------+
| id            | url attribute  | Id of the requested cart             |
+---------------+----------------+--------------------------------------+

Example
^^^^^^^

To delete the cart with ``id = 21`` use the below method:

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21 \
        -H "Authorization: Bearer SampleToken" \
        -H "Accept: application/json" \
        -X DELETE

.. note::

    Remember the *21* value comes from the previous example. Here we are deleting a previously fetched cart, so it is the same id.

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 204 No Content

Creating a Cart Item
--------------------

To add a new cart item to an existing cart you will need to call the ``/api/v1/carts/{cartId}/items/`` endpoint with ``POST`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    POST /api/v1/carts/{cartId}/items/

+---------------+----------------+----------------------------------------------------------------+
| Parameter     | Parameter type | Description                                                    |
+===============+================+================================================================+
| Authorization | header         | Token received during authentication                           |
+---------------+----------------+----------------------------------------------------------------+
| cartId        | url attribute  | Id of the requested cart                                       |
+---------------+----------------+----------------------------------------------------------------+
| variant       | request        | Code of the item you want to add to the cart                   |
+---------------+----------------+----------------------------------------------------------------+
| quantity      | request        | Amount of variants you want to add to the cart (cannot be < 1) |
+---------------+----------------+----------------------------------------------------------------+

Example
^^^^^^^

To add a new item of a variant with code ``MEDIUM_MUG_CUP``
to the cart with id = 21 (assuming, that we didn't remove it in the previous example) use the below method:

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21/items/ \
        -H "Authorization: Bearer SampleToken" \
        -H "Content-Type: application/json" \
        -X POST \
        --data '
            {
                "variant": "MEDIUM_MUG_CUP",
                "quantity": 1
            }
        '

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 201 Created

.. code-block:: json

    {
        "id":57,
        "quantity":1,
        "unitPrice":250,
        "total":250,
        "units":[
            {
                "id":165,
                "adjustments":[

                ],
                "adjustmentsTotal":0
            }
        ],
        "unitsTotal":250,
        "adjustments":[

        ],
        "adjustmentsTotal":0,
        "variant":{
            "id":331,
            "code":"MEDIUM_MUG_CUP",
            "optionValues":[
                {
                    "code":"mug_type_medium",
                    "translations":{
                        "en_US":{
                            "id":1,
                            "value":"Medium mug"
                        }
                    }
                }
            ],
            "position":2,
            "translations":{
                "en_US":{
                    "id":331,
                    "name":"Medium Mug"
                }
            },
            "tracked":false,
            "channelPricings":{
                "US_WEB": {
                    "channelCode": "US_WEB",
                    "price":250
                }
            }
        },
        "_links":{
            "order":{
                "href":"\/api\/v1\/orders\/21"
            },
            "product":{
                "href":"\/api\/v1\/products\/07f2044a-855d-3c56-9274-b5167c2d5809"
            },
            "variant":{
                "href":"\/api\/v1\/products\/07f2044a-855d-3c56-9274-b5167c2d5809\/variants\/MEDIUM_MUG_CUP"
            }
        }
    }
.. tip::

    In Sylius the prices are stored as an integers (``1059`` represents ``10.59$``).
    So in order to present a proper amount to the end user, you should divide price by 100 by default.

Updating a Cart Item
--------------------

To change the quantity of a cart item you will need to call the ``/api/v1/carts/{cartId}/items/{cartItemId}`` endpoint with the ``PUT`` or ``PATCH`` method.

Definition
^^^^^^^^^^

.. code-block:: text

    PUT /api/v1/carts/{cartId}/items/{cartItemId}

+---------------+----------------+--------------------------------------------------------------+
| Parameter     | Parameter type | Description                                                  |
+===============+================+==============================================================+
| Authorization | header         | Token received during authentication                         |
+---------------+----------------+--------------------------------------------------------------+
| cartId        | url attribute  | Id of the requested cart                                     |
+---------------+----------------+--------------------------------------------------------------+
| cartItemId    | url attribute  | Id of the requested cart item                                |
+---------------+----------------+--------------------------------------------------------------+
| quantity      | request        | Amount of items you want to have in the cart (cannot be < 1) |
+---------------+----------------+--------------------------------------------------------------+

Example
^^^^^^^

To change the quantity of the cart item with ``id = 57`` in the cart of ``id = 21`` to 3 use the below method:

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21/items/57 \
        -H "Authorization: Bearer SampleToken" \
        -H "Content-Type: application/json" \
        -X PUT \
        --data '{"quantity": 3}'

.. tip::

    If you are not sure where does the value **58** come from, check the previous response, and look for the cart item id.

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 204 No Content

Now we can check how does the cart look like after changing the quantity of a cart item.

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21 \
        -H "Authorization: Bearer SampleToken" \
        -H "Accept: application/json"

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 200 OK

.. code-block:: json

    {
        "id":21,
        "items":[
            {
                "id":57,
                "quantity":3,
                "unitPrice":250,
                "total":750,
                "units":[
                    {
                        "id":165,
                        "adjustments":[

                        ],
                        "adjustmentsTotal":0
                    },
                    {
                        "id":166,
                        "adjustments":[

                        ],
                        "adjustmentsTotal":0
                    },
                    {
                        "id":167,
                        "adjustments":[

                        ],
                        "adjustmentsTotal":0
                    }
                ],
                "unitsTotal":750,
                "adjustments":[

                ],
                "adjustmentsTotal":0,
                "variant":{
                    "id":331,
                    "code":"MEDIUM_MUG_CUP",
                    "optionValues":[
                        {
                            "code":"mug_type_medium",
                            "translations":{
                                "en_US":{
                                    "id":1,
                                    "value":"Medium mug"
                                }
                            }
                        }
                    ],
                    "position":2,
                    "translations":{
                        "en_US":{
                            "id":331,
                            "name":"Medium Mug"
                        }
                    },
                    "tracked":false,
                    "channelPricings":{
                        "US_WEB": {
                            "channelCode": "US_WEB",
                            "price":250
                        }
                    }
                },
                "_links":{
                    "order":{
                        "href":"\/api\/v1\/orders\/21"
                    },
                    "product":{
                        "href":"\/api\/v1\/products\/07f2044a-855d-3c56-9274-b5167c2d5809"
                    },
                    "variant":{
                        "href":"\/api\/v1\/products\/07f2044a-855d-3c56-9274-b5167c2d5809\/variants\/MEDIUM_MUG_CUP"
                    }
                }
            }
        ],
        "itemsTotal":750,
        "adjustments":[
            {
                "id":181,
                "type":"shipping",
                "label":"UPS",
                "amount":157
            }
        ],
        "adjustmentsTotal":157,
        "total":907,
        "customer":{
            "id":1,
            "email":"shop@example.com",
            "firstName":"John",
            "lastName":"Doe",
            "user":{
                "id":1,
                "username":"shop@example.com",
                "usernameCanonical":"shop@example.com"
            },
            "_links":{
                "self":{
                    "href":"\/api\/v1\/customers\/1"
                }
            }
        },
        "channel":{
            "code":"US_WEB",
            "_links":{
                "self":{
                    "href":"\/api\/v1\/channels\/US_WEB"
                }
            }
        },
        "currencyCode":"USD",
        "localeCode":"en_US",
        "checkoutState":"cart"
    }

.. tip::

    In this response you can see that promotion and shipping have been taken into account to calculate the appropriate price.

Deleting a Cart Item
--------------------

To delete a cart item from a cart you will need to call the ``/api/v1/carts/{cartId}/items/{cartItemId}`` endpoint with the ``DELETE`` method.

Definition
^^^^^^^^^^

To delete the cart item with ``id = 58`` from the cart with ``id = 21`` use the below method:

.. code-block:: text

    DELETE /api/v1/carts/{cartId}/items/{cartItemId}

+---------------+----------------+--------------------------------------+
| Parameter     | Parameter type | Description                          |
+===============+================+======================================+
| Authorization | header         | Token received during authentication |
+---------------+----------------+--------------------------------------+
| cartId        | url attribute  | Id of the requested cart             |
+---------------+----------------+--------------------------------------+
| cartItemId    | url attribute  | Id of the requested cart item        |
+---------------+----------------+--------------------------------------+

Example
^^^^^^^

.. code-block:: bash

    $ curl http://demo.sylius.org/api/v1/carts/21/items/58 \
        -H "Authorization: Bearer SampleToken" \
        -H "Accept: application/json" \
        -X DELETE

Exemplary Response
^^^^^^^^^^^^^^^^^^

.. code-block:: text

    STATUS: 204 No Content


text:
var swfobject = function() {

	var UNDEF = "undefined",
		OBJECT = "object",
		SHOCKWAVE_FLASH = "Shockwave Flash",
		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
		FLASH_MIME_TYPE = "application/x-shockwave-flash",
		EXPRESS_INSTALL_ID = "SWFObjectExprInst",

		win = window,
		doc = document,
		nav = navigator,

		domLoadFnArr = [],
		regObjArr = [],
		timer = null,
		storedAltContent = null,
		storedAltContentId = null,
		isDomLoaded = false,
		isExpressInstallActive = false;

	/* Centralized function for browser feature detection
		- Proprietary feature detection (conditional compiling) is used to detect Internet Explorer's features
		- User agent string detection is only used when no alternative is possible
		- Is executed directly for optimal performance
	*/
	var ua = function() {
		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF && typeof doc.appendChild != UNDEF && typeof doc.replaceChild != UNDEF && typeof doc.removeChild != UNDEF && typeof doc.cloneNode != UNDEF,
			playerVersion = [0,0,0],
			d = null;
		if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
			d = nav.plugins[SHOCKWAVE_FLASH].description;
			if (d) {
				d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
				playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
				playerVersion[2] = /r/.test(d) ? parseInt(d.replace(/^.*r(.*)$/, "$1"), 10) : 0;
			}
		}
		else if (typeof win.ActiveXObject != UNDEF) {
			var a = null, fp6Crash = false;
			try {
				a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".7");
			}
			catch(e) {
				try {
					a = new ActiveXObject(SHOCKWAVE_FLASH_AX + ".6");
					playerVersion = [6,0,21];
					a.AllowScriptAccess = "always";  // Introduced in fp6.0.47
				}
				catch(e) {
					if (playerVersion[0] == 6) {
						fp6Crash = true;
					}
				}
				if (!fp6Crash) {
					try {
						a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
					}
					catch(e) {}
				}
			}
			if (!fp6Crash && a) { // a will return null when ActiveX is disabled
				try {
					d = a.GetVariable("$version");  // Will crash fp6.0.21/23/29
					if (d) {
						d = d.split(" ")[1].split(",");
						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
				catch(e) {}
			}
		}
		var u = nav.userAgent.toLowerCase(),
			p = nav.platform.toLowerCase(),
			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
			ie = false,
			windows = p ? /win/.test(p) : /win/.test(u),
			mac = p ? /mac/.test(p) : /mac/.test(u);
		/*@cc_on
			ie = true;
			@if (@_win32)
				windows = true;
			@elif (@_mac)
				mac = true;
			@end
		@*/
		return { w3cdom:w3cdom, pv:playerVersion, webkit:webkit, ie:ie, win:windows, mac:mac };
	}();

	/* Cross-browser onDomLoad
		- Based on Dean Edwards' solution: http://dean.edwards.name/weblog/2006/06/again/
		- Will fire an event as soon as the DOM of a page is loaded (supported by Gecko based browsers - like Firefox -, IE, Opera9+, Safari)
	*/
	var onDomLoad = function() {
		if (!ua.w3cdom) {
			return;
		}
		addDomLoadEvent(main);
		if (ua.ie && ua.win) {
			try {  // Avoid a possible Operation Aborted error
				doc.write("<scr" + "ipt id=__ie_ondomload defer=true src=//:></scr" + "ipt>"); // String is split into pieces to avoid Norton AV to add code that can cause errors
				var s = getElementById("__ie_ondomload");
				if (s) {
					s.onreadystatechange = function() {
						if (this.readyState == "complete") {
							this.parentNode.removeChild(this);
							callDomLoadFunctions();
						}
					};
				}
			}
			catch(e) {}
		}
		if (ua.webkit && typeof doc.readyState != UNDEF) {
			timer = setInterval(function() { if (/loaded|complete/.test(doc.readyState)) { callDomLoadFunctions(); }}, 10);
		}
		if (typeof doc.addEventListener != UNDEF) {
			doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, null);
		}
		addLoadEvent(callDomLoadFunctions);
	}();

	function callDomLoadFunctions() {
		if (isDomLoaded) {
			return;
		}
		if (ua.ie && ua.win) { // Test if we can really add elements to the DOM; we don't want to fire it too early
			var s = createElement("span");
			try { // Avoid a possible Operation Aborted error
				var t = doc.getElementsByTagName("body")[0].appendChild(s);
				t.parentNode.removeChild(t);
			}
			catch (e) {
				return;
			}
		}
		isDomLoaded = true;
		if (timer) {
			clearInterval(timer);
			timer = null;
		}
		var dl = domLoadFnArr.length;
		for (var i = 0; i < dl; i++) {
			domLoadFnArr[i]();
		}
	}

	function addDomLoadEvent(fn) {
		if (isDomLoaded) {
			fn();
		}
		else {
			domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
		}
	}

	/* Cross-browser onload
		- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
		- Will fire an event as soon as a web page including all of its assets are loaded
	 */
	function addLoadEvent(fn) {
		if (typeof win.addEventListener != UNDEF) {
			win.addEventListener("load", fn, false);
		}
		else if (typeof doc.addEventListener != UNDEF) {
			doc.addEventListener("load", fn, false);
		}
		else if (typeof win.attachEvent != UNDEF) {
			win.attachEvent("onload", fn);
		}
		else if (typeof win.onload == "function") {
			var fnOld = win.onload;
			win.onload = function() {
				fnOld();
				fn();
			};
		}
		else {
			win.onload = fn;
		}
	}

	/* Main function
		- Will preferably execute onDomLoad, otherwise onload (as a fallback)
	*/
	function main() { // Static publishing only
		var rl = regObjArr.length;
		for (var i = 0; i < rl; i++) { // For each registered object element
			var id = regObjArr[i].id;
			if (ua.pv[0] > 0) {
				var obj = getElementById(id);
				if (obj) {
					regObjArr[i].width = obj.getAttribute("width") ? obj.getAttribute("width") : "0";
					regObjArr[i].height = obj.getAttribute("height") ? obj.getAttribute("height") : "0";
					if (hasPlayerVersion(regObjArr[i].swfVersion)) { // Flash plug-in version >= Flash content version: Houston, we have a match!
						if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements
							fixParams(obj);
						}
						setVisibility(id, true);
					}
					else if (regObjArr[i].expressInstall && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) { // Show the Adobe Express Install dialog if set by the web page author and if supported (fp6.0.65+ on Win/Mac OS only)
						showExpressInstall(regObjArr[i]);
					}
					else { // Flash plug-in and Flash content version mismatch: display alternative content instead of Flash content
						displayAltContent(obj);
					}
				}
			}
			else {  // If no fp is installed, we let the object element do its job (show alternative content)
				setVisibility(id, true);
			}
		}
	}

	/* Fix nested param elements, which are ignored by older webkit engines
		- This includes Safari up to and including version 1.2.2 on Mac OS 10.3
		- Fall back to the proprietary embed element
	*/
	function fixParams(obj) {
		var nestedObj = obj.getElementsByTagName(OBJECT)[0];
		if (nestedObj) {
			var e = createElement("embed"), a = nestedObj.attributes;
			if (a) {
				var al = a.length;
				for (var i = 0; i < al; i++) {
					if (a[i].nodeName.toLowerCase() == "data") {
						e.setAttribute("src", a[i].nodeValue);
					}
					else {
						e.setAttribute(a[i].nodeName, a[i].nodeValue);
					}
				}
			}
			var c = nestedObj.childNodes;
			if (c) {
				var cl = c.length;
				for (var j = 0; j < cl; j++) {
					if (c[j].nodeType == 1 && c[j].nodeName.toLowerCase() == "param") {
						e.setAttribute(c[j].getAttribute("name"), c[j].getAttribute("value"));
					}
				}
			}
			obj.parentNode.replaceChild(e, obj);
		}
	}

	/* Fix hanging audio/video threads and force open sockets and NetConnections to disconnect
		- Occurs when unloading a web page in IE using fp8+ and innerHTML/outerHTML
		- Dynamic publishing only
	*/
	function fixObjectLeaks(id) {
		if (ua.ie && ua.win && hasPlayerVersion("8.0.0")) {
			win.attachEvent("onunload", function () {
				var obj = getElementById(id);
				if (obj) {
					for (var i in obj) {
						if (typeof obj[i] == "function") {
							obj[i] = function() {};
						}
					}
					obj.parentNode.removeChild(obj);
				}
			});
		}
	}

	/* Show the Adobe Express Install dialog
		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
	*/
	function showExpressInstall(regObj) {
		isExpressInstallActive = true;
		var obj = getElementById(regObj.id);
		if (obj) {
			if (regObj.altContentId) {
				var ac = getElementById(regObj.altContentId);
				if (ac) {
					storedAltContent = ac;
					storedAltContentId = regObj.altContentId;
				}
			}
			else {
				storedAltContent = abstractAltContent(obj);
			}
			if (!(/%$/.test(regObj.width)) && parseInt(regObj.width, 10) < 310) {
				regObj.width = "310";
			}
			if (!(/%$/.test(regObj.height)) && parseInt(regObj.height, 10) < 137) {
				regObj.height = "137";
			}
			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
				dt = doc.title,
				fv = "MMredirectURL=" + win.location + "&MMplayerType=" + pt + "&MMdoctitle=" + dt,
				replaceId = regObj.id;
			// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
			// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			if (ua.ie && ua.win && obj.readyState != 4) {
				var newObj = createElement("div");
				replaceId += "SWFObjectNew";
				newObj.setAttribute("id", replaceId);
				obj.parentNode.insertBefore(newObj, obj); // Insert placeholder div that will be replaced by the object element that loads expressinstall.swf
				obj.style.display = "none";
				win.attachEvent("onload", function() { obj.parentNode.removeChild(obj); });
			}
			createSWF({ data:regObj.expressInstall, id:EXPRESS_INSTALL_ID, width:regObj.width, height:regObj.height }, { flashvars:fv }, replaceId);
		}
	}

	/* Functions to abstract and display alternative content
	*/
	function displayAltContent(obj) {
		if (ua.ie && ua.win && obj.readyState != 4) {
			// For IE when a SWF is loading (AND: not available in cache) wait for the onload event to fire to remove the original object element
			// In IE you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			var el = createElement("div");
			obj.parentNode.insertBefore(el, obj); // Insert placeholder div that will be replaced by the alternative content
			el.parentNode.replaceChild(abstractAltContent(obj), el);
			obj.style.display = "none";
			win.attachEvent("onload", function() { obj.parentNode.removeChild(obj); });
		}
		else {
			obj.parentNode.replaceChild(abstractAltContent(obj), obj);
		}
	}

	function abstractAltContent(obj) {
		var ac = createElement("div");
		if (ua.win && ua.ie) {
			ac.innerHTML = obj.innerHTML;
		}
		else {
			var nestedObj = obj.getElementsByTagName(OBJECT)[0];
			if (nestedObj) {
				var c = nestedObj.childNodes;
				if (c) {
					var cl = c.length;
					for (var i = 0; i < cl; i++) {
						if (!(c[i].nodeType == 1 && c[i].nodeName.toLowerCase() == "param") && !(c[i].nodeType == 8)) {
							ac.appendChild(c[i].cloneNode(true));
						}
					}
				}
			}
		}
		return ac;
	}

	/* Cross-browser dynamic SWF creation
	*/
	function createSWF(attObj, parObj, id) {
		var r, el = getElementById(id);
		if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
			attObj.id = id;
		}
		if (ua.ie && ua.win) { // IE, the object element and W3C DOM methods do not combine: fall back to outerHTML
			var att = "";
			for (var i in attObj) {
				if (attObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries, like Object.prototype.toJSONString = function() {}
					if (i == "data") {
						parObj.movie = attObj[i];
					}
					else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
						att += ' class="' + attObj[i] + '"';
					}
					else if (i != "classid") {
						att += ' ' + i + '="' + attObj[i] + '"';
					}
				}
			}
			var par = "";
			for (var j in parObj) {
				if (parObj[j] != Object.prototype[j]) { // Filter out prototype additions from other potential libraries
					par += '<param name="' + j + '" value="' + parObj[j] + '" />';
				}
			}
			el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
			fixObjectLeaks(attObj.id); // This bug affects dynamic publishing only
			r = getElementById(attObj.id);
		}
		else if (ua.webkit && ua.webkit < 312) { // Older webkit engines ignore the object element's nested param elements: fall back to the proprietary embed element
			var e = createElement("embed");
			e.setAttribute("type", FLASH_MIME_TYPE);
			for (var k in attObj) {
				if (attObj[k] != Object.prototype[k]) { // Filter out prototype additions from other potential libraries
					if (k == "data") {
						e.setAttribute("src", attObj[k]);
					}
					else if (k.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
						e.setAttribute("class", attObj[k]);
					}
					else if (k != "classid") { // Filter out IE specific attribute
						e.setAttribute(k, attObj[k]);
					}
				}
			}
			for (var l in parObj) {
				if (parObj[l] != Object.prototype[l]) { // Filter out prototype additions from other potential libraries
					if (l != "movie") { // Filter out IE specific param element
						e.setAttribute(l, parObj[l]);
					}
				}
			}
			el.parentNode.replaceChild(e, el);
			r = e;
		}
		else { // Well-behaving browsers
			var o = createElement(OBJECT);
			o.setAttribute("type", FLASH_MIME_TYPE);
			for (var m in attObj) {
				if (attObj[m] != Object.prototype[m]) { // Filter out prototype additions from other potential libraries
					if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
						o.setAttribute("class", attObj[m]);
					}
					else if (m != "classid") { // Filter out IE specific attribute
						o.setAttribute(m, attObj[m]);
					}
				}
			}
			for (var n in parObj) {
				if (parObj[n] != Object.prototype[n] && n != "movie") { // Filter out prototype additions from other potential libraries and IE specific param element
					createObjParam(o, n, parObj[n]);
				}
			}
			el.parentNode.replaceChild(o, el);
			r = o;
		}
		return r;
	}

	function createObjParam(el, pName, pValue) {
		var p = createElement("param");
		p.setAttribute("name", pName);
		p.setAttribute("value", pValue);
		el.appendChild(p);
	}

	function getElementById(id) {
		return doc.getElementById(id);
	}

	function createElement(el) {
		return doc.createElement(el);
	}

	function hasPlayerVersion(rv) {
		var pv = ua.pv, v = rv.split(".");
		v[0] = parseInt(v[0], 10);
		v[1] = parseInt(v[1], 10);
		v[2] = parseInt(v[2], 10);
		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
	}

	/* Cross-browser dynamic CSS creation
		- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
	*/
	function createCSS(sel, decl) {
		if (ua.ie && ua.mac) {
			return;
		}
		var h = doc.getElementsByTagName("head")[0], s = createElement("style");
		s.setAttribute("type", "text/css");
		s.setAttribute("media", "screen");
		if (!(ua.ie && ua.win) && typeof doc.createTextNode != UNDEF) {
			s.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
		}
		h.appendChild(s);
		if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
			var ls = doc.styleSheets[doc.styleSheets.length - 1];
			if (typeof ls.addRule == OBJECT) {
				ls.addRule(sel, decl);
			}
		}
	}

	function setVisibility(id, isVisible) {
		var v = isVisible ? "visible" : "hidden";
		if (isDomLoaded) {
			getElementById(id).style.visibility = v;
		}
		else {
			createCSS("#" + id, "visibility:" + v);
		}
	}

	return {
		/* Public API
			- Reference: http://code.google.com/p/swfobject/wiki/SWFObject_2_0_documentation
		*/
		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr) {
			if (!ua.w3cdom || !objectIdStr || !swfVersionStr) {
				return;
			}
			var regObj = {};
			regObj.id = objectIdStr;
			regObj.swfVersion = swfVersionStr;
			regObj.expressInstall = xiSwfUrlStr ? xiSwfUrlStr : false;
			regObjArr[regObjArr.length] = regObj;
			setVisibility(objectIdStr, false);
		},

		getObjectById: function(objectIdStr) {
			var r = null;
			if (ua.w3cdom && isDomLoaded) {
				var o = getElementById(objectIdStr);
				if (o) {
					var n = o.getElementsByTagName(OBJECT)[0];
					if (!n || (n && typeof o.SetVariable != UNDEF)) {
				    	r = o;
					}
					else if (typeof n.SetVariable != UNDEF) {
						r = n;
					}
				}
			}
			return r;
		},

		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj) {
			if (!ua.w3cdom || !swfUrlStr || !replaceElemIdStr || !widthStr || !heightStr || !swfVersionStr) {
				return;
			}
			widthStr += ""; // Auto-convert to string to make it idiot proof
			heightStr += "";
			if (hasPlayerVersion(swfVersionStr)) {
				setVisibility(replaceElemIdStr, false);
				var att = (typeof attObj == OBJECT) ? attObj : {};
				att.data = swfUrlStr;
				att.width = widthStr;
				att.height = heightStr;
				var par = (typeof parObj == OBJECT) ? parObj : {};
				if (typeof flashvarsObj == OBJECT) {
					for (var i in flashvarsObj) {
						if (flashvarsObj[i] != Object.prototype[i]) { // Filter out prototype additions from other potential libraries
							if (typeof par.flashvars != UNDEF) {
								par.flashvars += "&" + i + "=" + flashvarsObj[i];
							}
							else {
								par.flashvars = i + "=" + flashvarsObj[i];
							}
						}
					}
				}
				addDomLoadEvent(function() {
					createSWF(att, par, replaceElemIdStr);
					if (att.id == replaceElemIdStr) {
						setVisibility(replaceElemIdStr, true);
					}
				});
			}
			else if (xiSwfUrlStr && !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac)) {
				setVisibility(replaceElemIdStr, false);
				addDomLoadEvent(function() {
					var regObj = {};
					regObj.id = regObj.altContentId = replaceElemIdStr;
					regObj.width = widthStr;
					regObj.height = heightStr;
					regObj.expressInstall = xiSwfUrlStr;
					showExpressInstall(regObj);
				});
			}
		},

		getFlashPlayerVersion: function() {
			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
		},

		hasFlashPlayerVersion:hasPlayerVersion,

		createSWF: function(attObj, parObj, replaceElemIdStr) {
			if (ua.w3cdom && isDomLoaded) {
				return createSWF(attObj, parObj, replaceElemIdStr);
			}
			else {
				return undefined;
			}
		},

		createCSS: function(sel, decl) {
			if (ua.w3cdom) {
				createCSS(sel, decl);
			}
		},

		addDomLoadEvent:addDomLoadEvent,

		addLoadEvent:addLoadEvent,

		getQueryParamValue: function(param) {
			var q = doc.location.search || doc.location.hash;
			if (param == null) {
				return q;
			}
		 	if(q) {
				var pairs = q.substring(1).split("&");
				for (var i = 0; i < pairs.length; i++) {
					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
						return pairs[i].substring((pairs[i].indexOf("=") + 1));
					}
				}
			}
			return "";
		},

		// For internal usage only
		expressInstallCallback: function() {
			if (isExpressInstallActive && storedAltContent) {
				var obj = getElementById(EXPRESS_INSTALL_ID);
				if (obj) {
					obj.parentNode.replaceChild(storedAltContent, obj);
					if (storedAltContentId) {
						setVisibility(storedAltContentId, true);
						if (ua.ie && ua.win) {
							storedAltContent.style.display = "block";
						}
					}
					storedAltContent = null;
					storedAltContentId = null;
					isExpressInstallActive = false;
				}
			}
		}

	};

}();


text:
Kirk House
Befriending Scheme
Tea Dances
Wednesday Lunch Club
Short Breaks for Older People
Dementia and Nursing Care
Therapeutic Counselling
Parents' Support
Christmas Food / Toy Programmes
Puddleducks Day Nursery
info@belfastcentralmission.org
Through Changing Scenes
As 2014 brings in Belfast Central Mission's 125th Anniversary, Wesley Weir, our archivist has written "Through Changing Scenes" The story of the first 125 years of BCM from 1889-2014.
The book charts the vast and varied history of Belfast Central Mission from its conception in 1889, through conversion, both World Wars, socialism, the Troubles and right up to the present day with the developments being actioned by BCM at this very moment such as Copelands, Dementia & Nursing Care.
Launch of project for older people in Armagh & Dungannon
Fifty older people across Armagh and Dungannon are set to benefit from BCM's newly formed Housing Support for Older People (HSOP) project across the region.
The project, provided by BCM funded by the Housing Executive, and commissioned by the Southern Heatlh & Social Care Trust, helps older people live independently in their own homes by offering services such as practical measures to increase safety and security, emotional support and help with maintaining tenancies.
Copelands, Dementia & Nursing Care
BCM held a launch event on Tuesday 4 March in the Long Gallery at Parliament Buildings, Stormont to help promote Copelands, our latest development which will specialise in Dementia & Nursing Care.
BCM staff worked hard to bring this event to life sending out numerous invitations to MLAs, councillors, BCM supporters, those who work with people living with dementia, representatives from the voluntary sector and the Methodist Church.
Buy a brick and help us to build Copelands
Buy a brick and help build Copelands, a state-of-the-art, unique model of care for those living with dementia.
Find out more about Copelands.
To make a donation click here. Thank you.
BCM Presents Plans for Copelands, Dementia & Nursing Care
BCM held a successful Community Consultation event last week in Millisle to let local residents give feedback on the plans for Copelands, our exciting proposed Dementia & Nursing Care development. The room at Millisle Youth Forum was buzzing as the development team explained how the designs for the building will allow residents to live as independently as possible in a safe. enclosed environment. Residents were joined by local politicians including JIm Shannon MP and North Down MLA Peter Weir.
From BCM's foundation in 1889, volunteers have played a vital role in the life of the Mission and this remains true today. In fact this is an expanding area of our work and the contribution made by our volunteers has been calculated as an amazing 11,100 volunteering hours in the year Jan - Dec 2015 alone...
BCM | Grosvenor House, 5 Glengall Street, Belfast, BT12 5AD | T: +44 (0)28 9024 1917 | F: +44 (0)28 9024 0577 | info@belfastcentralmission.org
Registered with The Charity Commission for Northern Ireland NIC 101271 | Company limited by guarantee NI 55693
© BCM 2015 Content cannot be copied, republished, posted, broadcast or reproduced in any form without the prior written permission of BCM.
Site by Stereo and Avec Solutions