text:
Echo Location Talent
email enquires
Back to roster
Booking team: ELENE DU TOIT, ISHSHA BOURGUET
Assisted by: EWAN JENKINS
South Africa's Vanco is one of the hugely talented new wave of producers turning heads across the globe with their fresh Afro House sounds
Vanco is a diverse DJ/Producer hailing from Johannesburg, South Africa. His productions kick off foundations of thumping percussions and heavy baselines, interwoven with sweet vocals and a distinctly African influence. These have ignited and mesmerized audiences everywhere since he first stepped onto the scene in 2015.
From the early stages of his career, Vanco has released several tracks under international labels such as Universal Music Group, Get Physical, Connected, Foliage Records, Afrocentric Records and Sudam Recordings, to mention a few. His collaborators include the likes of Black Motion, DJEFF (Angola/ Portugal), Manoo, Boddhi Satva (Portugal) and Brenden Praise. Vanco's tracks have been received well on a large scale, smashing the dance floors and festivals across the globe. He often features in DJ sets played in Ibiza, where he hosts a monthly radio mix on Café Mambo Radio, as well as Tomorrowland & many other notable stages where he attracts great support from a multitude of accomplished international DJs.
As a DJ in his own capacity, he has shared stages with artist like Black Coffee, Bob Sinclar, Black Motion, Da Capo, Dj Angelo, Themba, Djeff, Shimza, DJ Fresh, Pablo Fierro & Boddhi Satva. He has played festivals and events in Europe, Africa and the Middle East, such as Mixmag "The Lab", Ultra South Africa, Santorini Greece, Dubai, Switzerland, France, Netherlands, Turkey, Portugal, Angola, Swaziland, Lesotho, Mozambique, Johannesburg, Cape Town, Durban and many other cities in South Africa & countries across the globe.
Vanco & Cee ElAsssad feat Lizwi
Zamekile
Mixmag "The Lab"
Flux Pavilion
©echo location talent agency | privacy & cookies policy
ECHO LOCATION TALENT AGENCY
125/133 Camden High St
L3, 689 Burke Road
The Landmark Centre
Plot 3 & 4, Water Corporation Road,
Off Ligali Ayorinde. Victoria Island Annex,


An attractive garden apartment set within the heart of Artesian village. The property enjoys a private entrance with good size accommodation throughout. A huge selling point for this property is the large 40ft south facing garden which is partly laid to lawn but also has a raised patio area which would be ideal for outdoor dining. The apartment has a delightful open plan reception room and kitchen which also features a large stone fireplace. Within the reception room there is direct access via French doors into the garden. There is a good size bedroom and shower room.


Join us the morning of Sunday, October 13, 2019 for a race in memory of Kevin Stoddard. Runners and walkers are welcome to go for gold in a scenic 5k course that winds through the beautiful Brookside Gardens and Wheaton Regional Park at the peak of autumn. Or break out your best cape and channel your favorite superhero in the 1-mile fun run! Can't be there in person but still want to contribute and be there in superhero spirit? Consider registering for the Virtual 5k.
All proceeds directly benefit the SuperHERO Kevin Stoddard Foundation, a 501(c)(3) organization that funds critical programs for those struggling with mental illness and addiction.
Thank you for making our 2018 inaugural race a huge success! Over $5,000 was donated to the Brain & Behavior Research Foundation to fund biomedical research into mental illness and addiction. Our heart-felt appreciation goes out to all the sponsors, volunteers, and participants for all your support.


Treating prolactinoma can prevent autoimmune diseases.
Watad A, Versini M, Jeandel PY, Amital H, Shoenfeld Y. Treating prolactinoma can prevent autoimmune diseases. Cell Immunol. 2014;.
Prolactin (PRL) is a pleiotropic hormone; in addition to a wide variety of endocrine effects, PRL also exhibits immunostimulating effects. Therefore, there is increasing evidence linking PRL with a large number of systemic and organ specific autoimmune diseases. Herein, we report the case of an adolescent girl diagnosed with multiple sclerosis (MS) occurring in the context of untreated prolactinoma evolving since childhood. This raises the exciting question of the involvement of PRL in the pathogenesis of MS. It is likely that early treatment of hyperprolactinemia in this case would have significantly reduced the risk of developing MS or even prevented its occurrence.


In episode 157 of The Physical Performance Show Brad Beer shares a conversation with James (Bobby) Tuttle – St George QLD Reds Rugby Union Scrumhalf in this featured performer episode.
James (Bobby) Tuttle first debuted for the St GeorgeQueensland Reds in a Super Rugby Australian League in 2016. Prior to that in 2015 Bobby had shown enormous promise by captaining Australia in the under 20's to the World Rugby Championships held in Italy.
During this episode Bobby shares the highs, the lows and the learnings about his career to date. Bobby is in a very unique situation to share around the lows of sport. Only a matter of weeks prior to recording Bobby suffered a re-rupture of his recently repaired Achilles Tendon, that's right a re-rupture only one cm higher than his previous Achilles Tendon repair. This is a really fascinating insight into the world of professional sport and the psychology of injury.
Like the Physical Performance Show, the Gold Coast Marathon encourages runners of all ages and abilities to push their boundaries and strive to complete a personal challenge. The Gold Coast Marathon is held annually on the first weekend in July and is a must do event for any budding athlete, weekend warrior or family looking for a challenge to complete together. Run for the good times at the Gold Coast Marathon. Visit the Gold Coast Marathon here.


text:
Era figlio di re Saebert, primo sovrano cristiano dei Sassoni orientali. Salito sul trono dopo il padre regnò insieme al fratello Saeward. I due fratelli repressero i cristiani in favore degli antichi dei pagani dei loro avi. Per questo esiliarono Mellito, vescovo di Londra che aveva rifiutato loro il sacramento dell'eucaristia. Morirono in battaglia contro gli eserciti del Wessex guidati dai re Ceawlin  e Cwichelm. Sul trono salì il figlio di Sæward, Sigeberht.

Re dell'Essex

redpajama_set_name: RedPajamaWikipedia


text:
Runs [Babel](http://babeljs.io) on code emitted by the [Incremental Build Server for TypeScript](https://github.com/enlight/ibsforts).

## Limitations
- No support for inline source maps (though it wouldn't be that hard to do).

## Setup
```
npm install enlight/ibsforts-plugin-babel --save-dev
```

## Usage
Here's an example of plugging in the `babelTransform` function provided by this package into a
build server:
```typescript
import { IncrementalBuildServer, ProjectLoader } from 'ibsforts';
import { babelTransform } from 'ibsforts-plugin-babel';

function babelTransformPlugin(inputFiles: ts.OutputFile[]): Promise<ts.OutputFile[]> {
  const options: babel.IOptions = {
    babelrc: false,
    // Get Babel to convert ES6 constructs Node v4 doesn't support to ES5.
    plugins: [
      'babel-plugin-transform-strict-mode',
      'babel-plugin-transform-es2015-parameters',
      'babel-plugin-transform-es2015-destructuring',
      'babel-plugin-transform-es2015-spread'
    ]
  };
  return babelTransform(inputFiles, options);
}

const server = new IncrementalBuildServer(new Logger());
ProjectLoader.loadFromConfigFile('../src/tsconfig.json')
.then(project => {
  project.postCompileTransforms.push(babelTransformPlugin);
  server.watchProject(project);
});
```

## Debugging
If you'd like to see what the code looks like before an after Babel transforms it you can use the
`babelTransformDebug` function provided by this package, it works similarly to `babelTransform`
but takes two extra arguments, these should be functions, and they will be invoked before and
after code is transformed. For example you could replace the `babelTransformPlugin` function in the
example above with the following:
```typescript
import * as fsp from 'fs-promisified';

function debugInputFile(file: ts.OutputFile): Promise<void> {
  return fsp.writeFile(file.name + '.babel_in', file.text, 'utf8');
}

function debugOutputFile(file: ts.OutputFile): Promise<void> {
  return fsp.writeFile(file.name + '.babel_out', file.text, 'utf8');
}

function babelTransformPlugin(inputFiles: ts.OutputFile[]): Promise<ts.OutputFile[]> {
  const options: babel.IOptions = { ... };
  return babelTransformDebug(inputFiles, options, writeBabelInputToFile, writeBabelOutputToFile);
}
```

## License
MIT

redpajama_set_name: RedPajamaGithub


Mondays in Ibiza belong to Flower Power, the island's most authentic weekly hippie invasion. Rock and roll, a bit of a jive and a whole lot of peace and love come together on the hallowed dance-floor of the 50-year old nightclub and island institution, Pacha Ibiza. On Monday August 14, 2017 as part of the Pacha 50th birthday celebration, the event invites none other than The Original Blues Brothers Band to perform live.


text:
Drop appeal fees for sake of poorer pupils, exam boards urged
Teachers' leaders and MPs call for grade challenge charges to be waived to ensure 'level playing field'
By Camilla Turner, Education Editor 8 August 2020 • 12:35am
Coronavirus Article Bar with counter ..
Exam boards are under mounting pressure to make appeals free so that the poorest children do not miss out.
Schools usually have to pay between £8 and £70 per query for GCSE and A-level re-markings.
But exam boards are being urged to follow the lead of their Scottish counterparts, and waive fees this year to avoid putting students from deprived communities at a disadvantage.
Leora Cruddas, chief executive of the Confederation of School Trusts which represents academies, said that charging a fee to appeal exam results may "put schools off appealing". She warned that with education budgets strained by extra coronavirus-related costs, charging risks "unfairly disenfranchising" certain schools.
Appeal fees may also create "perverse incentives" where head teachers are put off appealing grades because they want to save money, she added.
Teenagers in England will this month receive A-level and GCSE grades calculated using the statistical model after all exams were cancelled due to coronavirus. The model takes into account factors including pupils' past performances and the last three years of schools' grades in the same subjects.
Geoff Barton, general secretary of the Association of School and College Leaders, said that fees must be waived to ensure a "level playing field" and that "the ability to appeal would not be constrained by the funding that is available".
Robert Halfon, Tory chairman of the education select committee, also called for appeals to be free. "Otherwise, the system will favour the well-off, the well-heeled and sharp-elbowed. It will basically favour schools with big budgets and surpluses rather than those who would rather spend money on tuition and making sure pupils catch up."
Last month, the committee said that less affluent schoolchildren risk not getting the results they deserve as a result of an "unfair" appeals system. MPs said the process for allowing students to appeal, set out by England's exams regulator Ofqual, is too complicated and could favour children with wealthy parents.
Layla Moran, education spokesman for the Liberal Democrats, said that pupils should be allowed to appeal their grades directly with the regulator without fees. "The Government must confirm that pupils will be able to appeal grades free of charge," she said.
Last year, a "clerical check" to ensure all pages were marked and all marks added up correctly was the least expensive, costing £8.05 for GCSEs and £16.10 for A-levels with AQA. A "priority review of marking" cost up to £46.40 with Edexcel for GCSEs and rising to £55.90 for A-levels. For AQA, it was £37.55 for GCSE and £51.75 for A-levels. OCR charge £59.80 for a "review of marking" for A-levels, rising to £71.95 if one wants to see a script.
Most boards waive fees if the grade is changed as a result of the re-mark.
Earlier this week, the exam watchdog announced that pupils will be allowed to challenge "unfair" A-level and GCSE grades after the exam regulator changed its stance in the face of a backlash from head teachers. Schools can now appeal results in "exceptional" cases if they believe students are incorrectly marked down by the statistical modelling used to calculate the grades.
It came in the wake of the Scottish results fiasco, where close to 125,000 predicted grades were downgraded by the Scottish Qualifications Authority.
The Joint Council for Qualifications, an umbrella group that represents the country's leading exam boards, said that no decision has yet made so far on whether school will be charged fees this year for appeals.
Ofqual said it has no powers to require exam boards to waive fees for appeals, but added that complaints about bias or malpractice are not appeals, and should be investigated without fees.
"The arrangements in place this summer are the fairest possible to enable the majority to move on to further study or employment as planned," a spokesman said.
"Overall, students will get the best estimate that can be made of the grade they would have achieved if exams had gone ahead.
"But it is right that their school or college can appeal if they believe there has been an error or that the moderation process has not produced a reliable result."
A-levels,
Exams,
Pictures: See 'impressive' new Army attack helicopter set to bolster Britain's military arsenal
'Shameful shambles' as shortchanged pensioners die before DWP pays up
By Mason Boycott-Owen 21 Jan 2022, 6:00am
Grant Shapps signals end of the line for 'Tannoy spam' train announcements
By Jack Hardy 21 Jan 2022, 6:00am
Three men arrested over fatal bridge collapse in Lancashire
Whisper it, but we may have hit peak misery
Jeremy Warner 21 Jan 2022, 6:00am

redpajama_set_name: RedPajamaCommonCrawl


Are you tired of spending too much money on grocery? Well you are not alone.
Access to Facebook group for accountability, support and follow up answers to your direct questions.
Normal price is $14.99. Get your copy today for only $9.99. All fees are final and non refundable.


Consumers will most likely suffer in the form of incentives that are being given to Sui Southern Gas Company (SSGC). Government is preparing a plan that will take away the Rs 31 billion relief package provided to energy consumers.
SSGC shareholders and several other businessmen are said to pocket a huge chunk of hard cash if the policy gets implemented. SSGC shareholders made a lot of money by trading shares for huge amounts of money in the past as well.
OGRA activities stirred a controversy and had received a lot of criticism from media and public. Due to the backlash, the plan was put on hold at the time. National Accountability Bureau (NAB) also launched an investigation into the matter in response to the controversy.
The incentive was provided to SSGC during the previous government's tenure. However, it was put on hold but the government has now decided to work on it again. Oil and Gas Regulatory Authority (OGRA) then-Chairman Tauqeer Sadiq was the one to provide relief to SSGC in 2009-10.
During the same financial year, OGRA counted SSGC's revenues coming from non-core activities as non-operating income. This was done to determine the company's final revenue for the FY 09-10.
In the following financial year (FY 2010-11), OGRA reversed the policy and started treating non-core activities' income as operating income. SSGC didn't seem pleased with OGRA's decision so they took up the case to supreme court and got a stay order. After five years, in 2016, of court hearings supreme court gave the verdict against SSGC's plea.
Keeping in line with the court's decision OGRA calculated SSGC's income from non-core activities as operating income. The company was further advised to make arrangements accordingly for years 2010-2016.
The adjustments, as per supreme court's decision, resulted in an amount of Rs 31 billion. Considering the negative financial impacts of such an amount SSGC challenged the decision again in supreme court.
Sales of Condensate and Liquified Petroleum Gas (LPG).
In 2014 Economic Coordination Committee (ECC) directed a proposal to handle revenue from non-core activities in the new tax regime.


Ascension has enjoyed a long tradition of excellent music shared by the choir. Meeting weekly for a two hour rehearsal, as well as fellowship and coffee, our choir brings a musical offering to most Sunday worship services. Christmas and Easter Cantatas, joint ventures with the young people of our congregation as well as other choirs, and hosting musical groups from around the city and province are some of the many activities this versatile choir engages in. Many musical styles are sung, as well as a variety of arrangements, from simple to more difficult. Whatever is being worked on, these singers have fun!!


text:
«Бал в Мулен де ла Галетт» () — картина, написанная французским художником Пьером Огюстом Ренуаром (1841—1919) в 1876 году.

История и описание
В 1876 году Ренуар снимал на Монмартре студию с садом, которая находилась недалеко от Мулен де ла Галетт — ресторана с танцевальным залом в верхней части Монмартра, который получил своё название по имени мельницы, находящейся недалеко от него. В хорошую погоду основное действие происходило на улице, где были расставлены по кругу столики и скамейки. Ренуару нравилась такая весёлая, непринуждённая обстановка, и здесь он начал создавать первые наброски будущей картины. Для картины он просил позировать своих друзей, так что некоторых из них можно узнать среди танцующих и сидящих за столиками. При написании этой картины художник справился с трудной задачей — изобразить отражение солнечных бликов, пробивающихся сквозь листву акаций, на лицах и одежде танцующих и сидящих людей.

Картина «Бал в Мулен де ла Галетт» была выставлена на 3-й выставке импрессионистов в 1877 году (вместе с картиной «Качели»), и она считается основной работой Ренуара середины 1870-х годов.

С 1879 года картина находилась в собрании французского художника и коллекционера Гюстава Кайботта. После его смерти в 1894 году она перешла в собственность государства в качестве налога на наследство, а в 1896 году была передана в Музей в Люксембургском саду. С 1929 года картина находилась в собрании Лувра, откуда в 1986 году она была передана в Музей Орсе, где она и находится до сих пор.

Картина «Бал в Мулен де ла Галетт» участвовала в нескольких выставках, среди которых можно отметить «выставку одной картины» в Государственном Эрмитаже, проходившую в Санкт-Петербурге с 18 марта по 7 июля 2015 года. Взамен Эрмитаж отправил на временную экспозицию в Париж триптих Пьера Боннара «У Средиземного моря» (1911). Для выставки в Эрмитаже «Бал в Мулен де ла Галетт» был застрахован на 90 миллионов евро.

Уменьшенная версия
Ренуар также написал уменьшенную версию этой картины () с тем же названием. В 1990 году она была продана на аукционе Sotheby's в Нью-Йорке за сумму в 78 миллионов долларов, что на тот момент сделало её второй по цене картиной за всю историю аукционов. Она до сих пор входит в число самых дорогих картин, когда-либо проданных на аукционе.

Фильмография
Картине «Бал в Мулен де ла Галетт» был посвящён фильм  «Прекрасные воскресные дни» () из цикла «Палитры» (Франция, 1997).

Примечания

Ссылки
 Dance at Le Moulin de la Galette, 1876, Auguste Renoir, Google Art Project, www.googleartproject.com
 Пьер Огюст Ренуар — Бал в Мулен де ла Галетт, impressionism.su

Картины Ренуара
Картины из собрания музея Орсе
Париж в живописи
Жанровые картины
Танец в изобразительном искусстве


Trenton, N.J. – Today, the New Jersey Board of Public Utilities (Board) approved a settlement reached among the parties in the base rate case filed by New Jersey Natural Gas Company (NJNG) that reduces the company's originally proposed rate increase of 24.2% to 7.4%.
NJNG Files Rate Case | New Jersey Natural Gas. www.njresources.com.
Write us: New Jersey Natural Gas, 1415 Wyckoff Road, P.O. Box 1464, Wall, NJ 07719. Do You Qualify for Energy Assistance?
Make Direct Energy your New Jersey gas company to receive low gas prices and great customer service. Sign up and start saving on your NJ gas costs today.
WALL, N.J. - New Jersey Natural Gas (NJNG) today filed a request with the New Jersey Board of Public Utilities (BPU) seeking an increase of approximately $148 million to its delivery rates, which covers primarily the cost of constructing, operating and maintaining its infrastructure.
Search results for "new jersey natural gas rate case".
New Jersey natural gas price and rates comparison for businesses.
Deregulated Natural Gas Prices for New Jersey. Comparison of all natural gas offers are below. Save money for home or business.


I feel that if a saver does not increase the balance of their Rapid Saver Account, the BNZ only pays .1% interest. That is in my opinion "theft" as the BNZ should at least pay the usual rate of interest applicable to am ordinary savings account. I have clients with large savings and if they need money for say provisional tax - they only get .1% interest for that month.
I don't mind this. It is a really good incentive for me to keep increasing my balance each month. You can hardly call this theft when the account is purposely set up to work this way. Maybe you have the wrong kind of account? Be worth looking into an Online Call account maybe?
It's encouraging you to save, if you weren't increasing the balance then your not trying to save.


The Epson Stylus CX5400 is an all-in-one color printer, color copier, and color scanner. This versatile machine is perfect for the home office or small business where space is at a premium.
This self-extracting file contains the Epson Stylus CX5400 Printer Driver for Windows 2000 and XP (Printer Driver v5.4aA, Core Driver Disk v5.40).
Important: After installing this printer driver, but before connecting your printer to your computer, you must download and install the TWAIN driver (also available for download on this page).
NOTE: Windows 2000 Users - If you have previously installed Microsoft Security Update KB835732, you may receive a General Protection Fault error when installing an Epson printer driver. Please see our Windows 2000 printer driver installation instructions to successfully install the driver.


text:
Setting Standards for Judging the Rapid Film Reporting Section in Postgraduate Radiology Assessment: a Feasibility Study
AF Abdul Rahim, NS Roslan, IL Shuaib, MS Abdullah, KA Sayuti, H Abu Hassan
Hong Kong J Radiol 2021 Mar;24(1):23-30
https://doi.org/10.12809/hkjr2117199
AF Abdul Rahim1, NS Roslan1, IL Shuaib2, MS Abdullah3, KA Sayuti3, H Abu Hassan4
1 Department of Medical Education, School of Medical Sciences, Universiti Sains Malaysia, Malaysia
2 Department of Radiology, Advanced Medical and Dental Institute, Universiti Sains Malaysia, Malaysia
3 Department of Radiology, School of Medical Sciences, Universiti Sains Malaysia, Malaysia
4 Department of Radiology, Faculty of Medicine and Health Sciences, Universiti Putra Malaysia, Malaysia
Correspondence: Dr AF Abdul Rahim, Department of Medical Education, School of Medical Sciences, Universiti Sains Malaysia, Malaysia. Email: fuad@usm.my
Submitted: 8 Mar 2020; Accepted: 4 Jun 2020.
Contributors: AFAR and NSR designed the study. ILS, MSA, KAS, and HAH acquired the data. AFAR, NSR analysed the data. AFAR, NSR, ILS, and HAH drafted the manuscript. All authors critically revised the manuscript for important intellectual content. All authors had full access to the data, contributed to the study, approved the final version for publication, and take responsibility for its accuracy and integrity.
Conflicts of Interest: All authors have disclosed no conflicts of interest.
Funding/Support: This research received no specific grant from any funding agency in the public, commercial, or not-for-profit sectors.
Ethics Approval: The study was granted an exemption from ethical approval from the Human Research Ethics Committee USM. The participants were treated in accordance with the tenets of the Declaration of Helsinki. The participants provided written informed consent for all data collection.
Full Article in PDF
We investigated the feasibility of applying a standard-setting procedure for the rapid film reporting examination of the Malaysian National Conjoint Board of Radiology.
We selected the modified Angoff standard-setting process. Judges were nominated and trained, performance categories were discussed, and judges' ratings on films were collected after an iterative procedure. The process was then evaluated for evidence of validity.
A cut-off score of 92% resulted, compared with the 80% usually used. Judges were satisfied with the training and understood the procedure and their roles. In all, 27.3% felt that time given for the task was not sufficient. A total of 54.5% of judges thought the final passing cut-off score of 92% was too high, and 27.3% were not confident regarding its appropriateness. The inter-rater reliability was 0.928. External comparison with a 'gold standard' of supervisor ratings revealed a sensitivity of 0.25 and specificity of 1.00 compared with the traditional cut-off score having a sensitivity of 0.92 and specificity of 0.33. In this kind of situation, high specificity is considered to be more important than high sensitivity.
Standard setting for the rapid film reporting examination using the modified Angoff method was feasible with robust procedural, internal, and external validity evidence. Areas for improvement were identified to address the perceived high cut-off score obtained and improve the overall process.
Key Words: Education, medical; Preceptorship; Psychometrics; Radiology; Teacher training
於放射科培訓醫生的快速放射影像報告考核中使用標準設定:可行性研究
AF Abdul Rahim、NS Roslan、IL Shuaib、MS Abdullah、KA Sayuti、H Abu Hassan
檢視馬來西亞國家放射學聯合委員會以設定快速放射影像報告考核標準的可行性。
採用改良版Angoff標準設定法,獲提名考官須經過培訓、討論考核表現類別,並以迭代程序收集考官對放射影像片子的評級,然後對該程序進行有效性評估。
跟一般使用的劃割分數80%相比,本研究的劃割分數為92%。考官對培訓感到滿意,並且 理解過程和他們的角色。當中,27.3%認為完成任務時間不足,54.5%認為最終合格分數過高(即 92%),27.3%對這個合格分數的適當性存疑。評分者間一致度信度為0.928。與主管級醫師評級的 「黃金標準」進行外部比較時,使用劃割分數92%的靈敏度為0.25,特異性為1.00;使用傳統劃割分 數(即80%)的靈敏度則為0.92,特異性為0.33。在這種情況下,高特異性比高靈敏度更為重要。
基於過程上、內部和外部的可靠效度,快速放射影像報告考核中使用改良版Angoff標準設定 法是可行的。研究也就劃割分數過高提出改進之處,以改善整個程序。
Assessment in medical education is an important undertaking; one of its goals is protecting the public by upholding high professional standards.[1] Over the past two decades, medical schools and postgraduate training bodies have put in rigorous efforts to provide valid assessment in certifying physicians. This is guided by the current view of validity as a hypothesis that must be supported by evidence.[2]
The Malaysian National Conjoint Board of Radiology, responsible for the training of radiologists in Malaysia, has recently embarked on gradually improving the assessment of its graduates. The establishment of standard setting of the assessment procedure is a priority area.
The 4-year training programme is currently divided into three phases. Phase I is the first year, phase II covers the second and third years, and the fourth year is phase III. Assessment is divided into continuous and end-of-phase professional examinations. Examinations in Phase I include a multiple true-false (Type X) question examination, an objective structured clinical examination, an objective structured practical examination, and an oral examination. In Phase II the professional examinations include multiple-choice tests, film reporting, and an oral examination. The final Phase III examinations include a rapid film reporting examination, a dissertation, and an oral examination based on the dissertation project.
The rapid film reporting examination simulates the typical day-to-day tasks of a radiologist, who has to review numerous radiographs in a short time, particularly in emergency medicine and general practice situations.[3] The examination requires candidates to view several radiographs within a specified amount of time and report on the findings. In the Malaysian setting, candidates need to report on 25 radiographs within 30 minutes. For each film, they have to state whether it is normal or abnormal; and if abnormal, then they have to describe the abnormalities seen. The Royal College of Radiologists in the United Kingdom has reported using rapid reporting sessions as part of their examinations.[3]
The Board feels that, as part of the final-year high-stakes exit examination, the rapid film reporting examination also requires standard setting of its cut-off score.
This article reports on a pilot study of standard setting of the rapid film reporting examination of the Malaysian National Conjoint Board of Radiology. To our knowledge, there is no literature reporting on standard setting of this particular method of assessment. We hope this report will be useful for radiology postgraduate training institutions employing similar assessment modalities.
A workshop to introduce members of the board to standard-setting principles and practice was held in April 2019. The workshop was organised with the help of the Medical Education Department from one of the participating universities.
A standard-setting meeting was organised before the rapid film reporting examination in the exit examination for Year 4 candidates in May 2019. It was chaired by one of the authors, ILS.
An eight-step standard-setting planning process was followed.[4]
Selection of a Standard-Setting Method
Modified Angoff is one of the standard-setting methods that offers a systematic procedure in estimating performance standard at the pass-fail level.[5] It has been used in various high-stakes examinations as it offers the best balance between technical adequacy and feasibility.[6] The Modified Angoff method was selected for this examination as it is an absolute standard-setting method — the candidates are judged against defined standards rather than cohort performance. This is achieved by asking qualified and trained judges to review test items or prompts before the examination is administered. Although the process can be time-consuming and labour-intensive, it is relatively easier and more flexible than other test-based methods. It is supported by a strong body of evidence in the literature and has wide applicability to many formats.[7]
In the modified Angoff method, judges review items (questions) used in the assessment, discuss and agree on the characteristics of a borderline candidate, and assess the likely performance of borderline candidates for each item. The mean of the judges' estimates for all items is taken as the cut-off score for that particular assessment.[4]
Selection of Judges
The selection of qualified judges is critical for an absolute standard-setting method.[4] The following criteria are recommended: content expertise, familiarity with the target population, understanding of the task of judging as well as the content materials, being fair and open-minded, willingness to follow directions, lack of bias, and willingness to devote their full attention to the task.
A total of 11 judges were chosen after considering the above criteria.
Preparation of Descriptions of Performance Categories
Judges need to have a clear understanding of the performance categories, which are 'narrative descriptions of the minimally acceptable behaviours required in order to be included in a given category'[4] to enable them to distinguish between different levels of performance.
In licensing and certification situations, the focus is often on discussion and description of a 'borderline candidate'.[8] Candidates who equal or exceed the performance of these borderline candidates are then deemed 'pass' while those who perform worse are deemed 'fail'.
The group discussed the characteristics of a borderline candidate in the setting of the Radiology Master of Medicine course and agreed that: 'A borderline candidate of the exit examination should demonstrate basic knowledge for safe clinical decision and management, is able to work under minimal supervision, is equipped with basic radiological skills and conducts himself/ herself professionally.'
Training of Judges
The definition of the borderline candidate appears straightforward, but judges often find it difficult to come up with an actual mark after reading a question while thinking like a borderline student.[4] Judges need familiarisation with the procedure and in generating ratings. Training judges, therefore, is given priority and can take more than one day.[9]
In our situation, apart from attending the introductory workshop mentioned above, judges were also briefed by the department chairperson at the beginning of the exercise. The objectives, procedures for standard setting, and the definition of a borderline candidate were discussed.
Collection of Ratings or Judgements
All 25 films used in the rapid film reporting examination, together with the answers, were shown in the standard-setting session. Each film was shown for 10 seconds and judges were asked to individually decide, "Will a borderline candidate be able to decide whether this film is normal or abnormal? If abnormal, will they be able to describe the abnormality in full?" Based on the answers to these questions the judges calculated the scores obtained by their hypothetical borderline candidates. Judges then announced the scores verbally in turn and their judgements were recorded immediately in a pre-prepared Excel file by an assistant.
The rating of one film by judges and the collection of their judgements was considered as one round of standard setting.
Provision of Feedback and Facilitation of Discussion
We included a discussion session after each round of judgement. The completed spreadsheet was projected to a screen where judges could see their standing relative to the other judges. This 'normative information' helps judges generate relevant and realistic cut-off scores.[8] Ratings at the extreme ends were then discussed. A second round of standard setting followed, where judges were then allowed to revise their ratings. This step of feedback and discussion followed by a second round of ratings is known as an 'iterative procedure'.[4]
Evaluation of the Standard-Setting Procedure
There are three main sources of evidence to support the validity of a standard-setting procedure: procedural evidence, internal evidence, and external evidence.[4]
For procedural evidence, we reviewed the practicality and implementation of the exercise and obtained feedback from the judges involved. To this end, an online questionnaire, taken from Yudkowsky et al[4] was administered. It looked at judges' perceptions of their orientation, training, and implementation as well as their confidence in the resulting cut-off scores.
Internal evidence was evaluated by calculating the inter-rater reliability, the standard deviation of judge scores (judgement SD), and the standard deviation of examinee test scores (test SD). The judgement SD should be no more than 25% of the test SD.[10]
Provision of Results, Consequences and Validity Evidence to Decision-Makers
For the external evidence, we looked at the aspect of reasonableness which is '…the degree to which cut-off scores derived from the standard-setting process classify examinees into groups in a manner consistent with other information about the examinees'.[11] We adapted the 'diagnostic performance' approach used by Schoonheim-Klein et al[12] whereby two clinical supervisors in each participating university were asked to independently rate their candidates' ability in rapid reporting on a four-point scale: excellent, borderline pass, borderline fail, and poor. The supervisors, who observe their supervisees over a prolonged time period, were guided by a rubric for each decision. To ensure credible ratings, they were informed that their ratings were not a measure of supervision quality and would not contribute to the candidates' examination marks. Candidates rated as 'poor' and 'borderline fail' were grouped as 'incompetent', and those rated as 'borderline pass' and 'excellent' were grouped as 'competent'. This clinical rating (considered as the 'true qualification') was then compared with the pass-fail classification obtained from the standard-setting method under study to get the rate of 'false positives' and 'false negatives'. We also calculated the sensitivity and specificity for the traditional and standard-setting–derived passing mark. Sensitivity is defined as the ability of the standard-setting– derived passing mark to correctly identify the competent candidates or the true-positive rate. On the other hand, specificity is defined as the ability of the mark to correctly eliminate the incompetent candidates, or true-negative rate. Table 1 summarises these concepts and the formulas used to arrive at the decisions.
Table 1. Possible consequences of decisions in diagnostic performance approach.
Ultimately, policymakers set the standards, not the judges.[8] As this is a pilot study, the validity data were presented to the board to help decide on the adoption of the standard-setting procedure.
A summary of these procedures is given as steps before (Figure 1), during (Figure 2) and after (Figure 3) the standard-setting procedure.
Figure 1. Flowchart showing steps before standard setting.
Figure 2. Flowchart showing steps during standard setting.
Figure 3. Flowchart showing steps after standard setting.
Procedural Evidence
A cut-off score of 0.95 (95%) was obtained for the first round, and 0.92 (92%) for the second round. The traditional passing mark of the rapid film reporting was 80%.
Eleven judges provided feedback via the online questionnaire. The panel was comprised of an almost equal number of junior (<10 years of post-residency practice and <5 years of involvement in teaching the Radiology Master of Medicine course) and senior members. The same can be said of gender distribution. The majority of panel members were ethnic Malay (Table 2).
Table 2. Background information on the panel of judges.
As regards feedback from judges about the training and orientation that was provided before the session, judges were generally clear about the purpose of the test, the nature of the examinees, the characteristics of a borderline candidate, and the rating task to be performed (Table 3).
Table 3. Feedback from standard-setting judges regarding training prior to the session.
In terms of feedback from judges regarding the process of standard setting, the majority were positive (Table 4). Interesting points to note included the time given for the rating task, where a minority (27.3%) felt that it was insufficient. Slightly over half (54.5%) of judges thought that the final passing score of 92% was too high. A minority (27.3%) were not confident regarding the appropriateness of the cut-off score.
Table 4. Feedback from standard-setting judges regarding the standard-setting process and results.
Internal Evidence
As stated above, cut-off scores of 0.95 and 0.92 were obtained in the first and second rounds, respectively (Table 5). The judgement SD was 0.04 on both rounds while the test SD was 19.4. Inter-rater reliability was 0.733 and 0.928 for the first and second rounds, respectively.
Table 5. Statistics of the standard-setting exercise and examination.
External Evidence
As the 'diagnostic performance approach' assumes the supervisors' rating to be the gold standard, we calculated the inter-rater reliability of the two supervisors. Cohen's kappa revealed a good agreement between the two supervisors at κ = 0.780, p < 0.001.
The supervisors' rating classified 24 candidates as 'competent' and three candidates as 'incompetent'. As illustrated in Table 6, the traditional passing score of 80% resulted in a passing rate of 91.7% and a failure rate of 8.3% among competent candidates. It is interesting to note the occurrence of false-positives, where two incompetent candidates passed the assessment. Only one out of three incompetent candidates failed the assessment using the traditional passing score. The sensitivity and specificity for this passing score were found to be at 0.92 and 0.33, respectively.
Table 6. Pass and fail rates of candidates who were classified 'competent' and 'incompetent' by their supervisors using the traditional passing mark of 80%.
On the other hand, as per Table 7, using the standard-setting– derived passing score of 92% resulted in a 25% passing rate among competent candidates. No incompetent candidates passed the assessment but there was a high false-negative occurrence where 75% of competent candidates failed the assessment. All three incompetent candidates failed the assessment. This gives this passing score a sensitivity of 0.25 and specificity of 1.00.
Table 7. Pass and fail rates of candidates that were classified as 'competent' and 'incompetent' by their supervisors using the standard-setting–derived passing mark of 92%.
The main aim of this pilot study was to assess the validity of the standard-setting procedure for the rapid film reporting examination. The current concept of validity is the accumulation of evidence to support or refute a particular interpretation or use of examination data.[13] In the context of standard setting, we looked at the procedural, internal, and external evidence to support the validity of our rapid film reporting standard-setting exercise[8] and generally found the results encouraging.
Procedurally, the process was feasible and practical. No major hurdles were encountered in the planning as well as preparation of the standard-setting exercise, including the physical setting. The positive responses from judges regarding implementation of points raised in the questionnaire provided additional evidence of the credibility of the standard-setting process.[8]
We take note that thorough and meticulous documentation of the procedure is critical.[9] This includes the summary of judges' background information, which includes speciality and teaching experience, as shown in Table 2. The background and experiential composition of the judges' panel should be determined before their nomination.[9]
It is interesting to note that slightly more than half of the judges (54.5%) believed that the cut-off score obtained was too high. Despite that, only 27.3% of judges were not confident of the cut-off score obtained. We need to differentiate between the perception of judges that the cut-off score is high from actual unrealistically high cut-off scores. The clarity of the judges regarding their role and the nature of the candidates, as well as their confidence in the cut-off score, are more in favour of the former. The latter is noted to happen in many standardsetting situations, particularly using the Angoff method when judges are not given performance data.[4]
Still, the issue of producing a cut-off score that is too high needs to be addressed, as it may hinder the acceptance of standard setting in the future. One approach is to increase the quality and efficiency of all the eight steps of standard setting described in the methodology, especially the types of feedback given to the judges during step 6 (Provision of Feedback and Facilitation of Discussion). In our case, the judges' relative standing to each other, known as normative information, were revealed following the first round. The literature also describes providing judges with information about actual candidate performance on each item (reality information) and the consequences of the generated cut-off scores (impact information).[8] To have these kinds of information available, however, requires the standard-setting procedure to be done after the actual examination. Another approach is to adjust the cut-off score using the standard error of measurement of the test. If false-negative decisions (failing competent candidates) are of concern, then the cut-off score can be lowered by one standard error of measurement.[4]
The internal evidence of validity includes the high inter-rater reliability of the judgements, which was 0.733 for the first round and 0.928 for the second round. Reliability ≥0.9 is needed for very-high-stakes examinations.[14] It is worth noting that the reliability increased from 0.7 to 0.9 in the second round, supporting the value of the iterative procedure in standard setting.
The judgement SD was small (0.04), less than the recommended limit, which is 25% of the standard deviation of the examinee test scores[10]; in this case, 4.85. Several factors may have contributed to this. One is that all films to be used for the examination were standardised in the session, instead of just sampling some films. Another possible factor is the adequate number of judges, 11 in this case. The recommended number is 10 to 12 judges.[4]
The sensitivity and specificity testing has shown the value of standard setting in establishing consequential validity evidence, discussed as part of 'reasonableness' in standard-setting literature.[9] In this exercise, using the traditional passing mark of 80% resulted in three incompetent candidates passing the assessment. For high-stakes assessment such as the exit examination, high specificity is considered to be more important than high sensitivity. This is because re-examination can correct the false-negative occurrences but not the false-positive candidates who may practise unsafely below the desired standards.[12] However, as judges have been shown to naturally produce higher passing scores in Angoff exercises, future practice could improve with more training sessions, a more detailed discussion of the borderline standards, and using performance data during the judging process as a control measure.[12] [15] [16]
In summary, we are encouraged by the findings of this standard-setting feasibility study of the rapid film reporting examination. It appears feasible and seems to have good procedural, internal, and external validity. Areas of potential improvement include more judge training and providing more feedback data to judges. We look forward to its official implementation in the near future.
1. Epstein RM. Assessment in medical education. N Engl J Med. 2007;356:387-96. Crossref
2. Beckman TJ, Cook DA, Mandrekar JN. What is the validity evidence for assessments of clinical teaching? J Gen Intern Med. 2005;20:1159-64. Crossref
3. Booth TC, Martins RD, McKnight L, Courtney K, Malliwal R. The Fellowship of the Royal College of Radiologists (FRCR) examination: a review of the evidence. Clin Radiol. 2018;73:992-8. Crossref
4. Yudkowsky R, Downing SM, Tekian A. Standard Setting. In: Yudkowsky R, Park YS, Downing SM, editors. Assessment in Health Professions Education. 2nd ed. New York: Routledge; 2020: p 86-105. Crossref
5. Shulruf B, Wilkinson T, Weller J, Jones P, Poole P. Insights into the Angoff method: results from a simulation study. BMC Med Educ. 2016;16:134. Crossref
6. Cizek GJ, Bunch MB. The Angoff method and Angoff variations. In: Cizek GJ, Bunch MB, editors. Standard Setting. California: Sage Publications; 2011: p 81-95.
7. Plake BS, Cizek GJ. Variations on a theme. ¬The modified Angoff, extended Angoff and Yes/No standard setting methods. In: Cizek GJ, editor. Setting Performance Standards: Foundations, Methods, and Innovations. 2nd ed. New York: Routledge; 2012: p 181-99.
8. Cizek GJ, Earnest DS. Setting performance standards on tests. In: Lane S, Raymond MR, Haladyna TM, editors. Handbook of Test Development. 2nd ed. New York: Routledge; 2016; p 212-37.
9. Hambleton RK, Pitoniak MJ, Coppella JM. Essential steps in setting performance standards on educational tests and strategies for assessing the reliability of results. In: Cizek GJ, editor. Setting Performance Standards: Foundations, Methods, and Innovations. 2nd ed. New York: Routledge; 2012: p 47-76.
10. Meskauskas JA. Setting standards for credentialing examinations: an update. Eval Health Prof. 1986;9:187-203. Crossref
11. Cizek GJ. The forms and functions of evaluations in the standard setting process. In: Cizek GJ, editor. Setting Performance Standards: Foundations, Methods, and Innovations. 2nd ed. New York: Routledge; 2012; p 165-78. Crossref
12. Schoonheim-Klein M, Muijtjens A, Habets L, Manogue M, van der Vleuten C, van der Velden U. Who will pass the dental OSCE? Comparison of the Angoff and the borderline regression standard setting methods. Eur J Dent Educ. 2009;13:162-71. Crossref
13. Downing SM. Validity: on the meaningful interpretation of assessment data. Med Educ. 2003;37:830-7. Crossref
14. Axelson RD, Kreiter CD. Rater and occasion impacts on the reliability of pre-admission assessments. Med Educ. 2009;43:1198-202. Crossref
15. Kane MT, Crooks TJ, Cohen AS. Designing and evaluating standard-setting procedures for licensure and certification tests. Adv Heal Sci Educ Theory Pract. 1999;4:195-207. Crossref
16. Kramer A, Muijtjens A, Jansen K, Düsman H, Tan L, van der Vleuten C. Comparison of a rational and an empirical standard setting procedure for an OSCE. Objective structured clinical examinations. Med Educ. 2003;37:132-9. Crossref
v24n1_Setting.pdf 486.74 KB


The results will be automatically updated** in the early hours of Tuesday morning, for matching results.
** This will be manually checked for the first few weeks until May.
To assist clubs with arranging and seeing all fixtures for their clubs at the bottom of this page is a feature to select your club and see all matches to be played. This shows A Cup, A League, B Cup and B League matches.


Snakes are found throughout the US and can be a cause for concern for a lot of people. Snakes tend to generate fear in people weather venomous or not. Snakes are very beneficial to the ecosystem and should not be killed unless they pose a direct threat. It can also be very difficult to determine if a snake is venomous or not. Always let a trained wildlife professional inspect the situation and identify if the snake is venomous or not.
Snakes live in a variety of habitats. Some typically live in wooded areas, while other prefer a body of water. The species and food source they are consuming will determine their primary habitat. Snakes can often easily be overlooked due to their ability to camouflage.
Snakes are specifically carnivorous and eat a wide variety of prey, from rodents to eggs, amphibians, birds, fish and even insects. As they eat they will grow and molt their skin. During molting, snakes are very vulnerable to predation and may be more aggressive.
Snakes can commonly become a nuisance to homeowners. They can be found getting into crawlspaces, attics or even inside the home. These issues are typically caused by an underlying problem. These are best identified and resolved by a wildlife professional.
Call Terminix today at 1-800-BUGS-911 to schedule a snake inspection.


What foods are best for boosting one's immune system?
What foods are best for boosting one's immune system?
Your question is a good one. I get asked that question just about every day from my oncology patients. Because they are given drugs that many time deplete the immune system, they often want to know what foods will help improve their immune system and keep them as healthy as possible. A healthy diet can absolutely help strengthen one's immune system and help reduce the chance of illness (especially during cold and flu season). Let me begin by saying that while diet may help boost ones immunity, a diet that is filled with processed foods can actually deplete the immune system. I recommend that my patients limit foods with a lot of added sugar (candy, fruit punch, soda, cookies, etc) and limit foods that are very high in salt and fat (potato chips, processed snack crackers, doughnuts). People that eat a lot of greasy fast food burgers, salted fries, and giant sugary sodas will definitely be at higher risk for getting sick this winter season. The best way to boost your immune system is to eat a well-balanced and colorful diet. First be sure to include healthy forms of protein in your daily diet. Choose a variety of beans, nuts, whole grains (quinoa, barley, faro), and eggs. Now be sure to choose foods rich in vitamin A. This vitamin has an important role in keeping the tissues in your respiratory system, mouth, and gastrointestinal system healthy. Foods rich in vitamin A include: red bell pepper, spinach, carrots, sweet potatoes and kale. Another vitamin that can help keep you healthy is vitamin E. It works as an antioxidant and can help neutralize free radicals in your body. Foods high in vitamin E are: sunflower seeds, almonds, fortified cereal, and almonds. Vitamin C is another important vitamin for your immune system and there are plenty of foods rich in it like oranges, peppers, tomatoes, and grapefruit. Finally, try to remember to follow safe food handling techniques. Wash your hands thoroughly and often and be sure to cook food to proper temperatures and store the food safely in the refrigerator.


General Hospital (GH) spoilers tease that Oscar Nero's (Garren Stitt) stint on the ABC soap is winding down. After Oscar's clinical trial failed, Dr. Kim Nero (Tamara Braun) felt horrible for giving her son false hope. Oscar didn't even want to undergo the treatment since he didn't expect it to work, but he was ultimately persuaded by Josslyn Jacks (Eden McCoy). She wanted him to at least pursue one last chance at life.
Sadly, that chance didn't pan out and now Oscar's marching toward a grim fate. Many General Hospital viewers were hoping for a better outcome. Since soapy twists happen often in Port Charles, some fans figured there might be one at the end of all this. Oscar is a sweet kid who barely even had a chance to know his dad and extended family. His life's being cut short so tragically and that's hard to accept.
However, it appears we should indeed get ready for some difficult goodbyes. A GH insider who regularly posts accurate leaks posted about this story. This person maintains that Oscar won't get a miracle. There's no shocking cure that'll pop up when the end is near. According to this insider, Oscar will end up dead as planned. Garren Stitt is set to leave the show in the near future.
This isn't the news that hopeful fans wanted, but it's better to know than not know! Like Oscar's loved ones, we want to be prepared. Having time to come to grips with a character's death often makes it easier. Kiki Jerome's (Hayley Erin) murder was awful, but at least there had been rumblings about it for months. It lessened the shock and pain when the big day arrived.
Although this isn't official General Hospital confirmation on Oscar's demise, it's pretty darn close. This insider is trustworthy and really knows her stuff. It's safe to go ahead and stock up on tissues for the aftermath of Oscar's passing.
On the bright side, this is sure to give Billy Miller (Drew Cain), Tamara Braun and Eden McCoy some gripping material. They should score some good stuff to put on their Daytime Emmy reels next year. General Hospital spoilers say the conclusion of Oscar's storyline will bring some can't-miss episodes.
A dark cloud is rolling in over Port Charles, but Oscar's friends and family members will just have to remember the good times! We'll give you updates as other GH details emerge. Stay tuned to the ABC soap and don't forget to check CDL often for the latest General Hospital spoilers, updates and news.


Slime flux oozing out of a cut at the base of a tree.
The rain we received recently was great for our landscapes and gardens. In some cases however, like the 4-inch pots of lavender I had in my backyard, the rains did not wet the planting medium evenly. There were still dry spots down about an inch.
Water does not always move evenly through soil and wet the soil particles uniformly. This is true not only with soil-less planting mixes, but with the native soil in our gardens and landscapes. Even when we amend are native soils with a good-quality organic matter there is always going to be areas drier than others. Amending the soil certainly helps correct some of those problems, but as gardeners we need to be aware of these inconsistencies in soil moisture and correct for this problem as much as possible.
The rain is likely to increase the amount of ooze produced by slime flux-infected trees as the water pressure in these trees increases. When this ooze drips onto grass a sunken, round depression is likely to form. Sometimes the dead grass is confused as a fungal pathogen. If there is a tree overhanging that area, you can often see the cause of the depression by standing over the hole and looking straight up. Sometimes you'll find brown scummy material on a sidewalk, patio, or road resulting from slime dripping from an overhead branch.
Slime flux is a bacterial infection that ferments the internal tissue of the tree creating a pressure which can split a tree apart unless there is a crack or cut through which the high pressure ooze can escape. I examined a large silver Maple last week which was dying back from the tips of the branches. The dieback was a direct effect of the pressure of slime flux crushing the vascular system preventing water and nutrients to move to the affected parts of the tree. When this occurs fertilizing with nitrogen to produce more water and nutrient-conducting tissue in addition to increasing the amount of water applied should help relieve the problem of dieback. This will not eliminate the disease, but should extend the life of the tree.
In this instance a portion of the roots were under an asphalt driveway on the other side of which was a dry gravel parking area. Watering the dry area would also help relieve the tree's stress. When applying fertilizer one must ensure it's not over applied. Fertilizers are salts and excessive levels can kill roots, making the problem of reduced water uptake caused by slime flux even worse.
The rain will stimulate growth of our lawns and, if we don't change our cultural techniques to accommodate for this, we likely will have an increase in summer disease problems. If the rains had been accompanied by lightning the anticipated problems could even be greater. Rains, especially those which include plant-available nitrogen generated by lightning, increase the growth rate and succulence of turf. Succulent turf is preferred by disease organisms.
The increased growth rate of the grass requires more frequent mowing to ensure no more than one-third of the blade is removed at any one mowing. As with trees and shrubs, removing too much of the grass at one time results in root death. Since plants are most susceptible when under stress, and dieback of roots results in stress, you can expect fast-growing succulent lawns (which are not mown often enough) to be more susceptible to disease. You should also avoid the application of nitrogen when lawns are already growing too fast. Increased susceptibility to disease is one reason why lawns of cool-season grasses should not receive high doses of nitrogen in the summer when these grasses are under heat stress. The fertilizer increases the stress. Small amounts of fertilizer are acceptable, but large amounts should be avoided.
There are some exceptions to the rule of removing no more than one-third of the foliage of the plant at any one time. As you have noticed, commercial fruit growers will remove 70-90 percent of last year's growth from their peaches and nectarine trees every spring. This is to ensure these trees produce adequate growth for fruit production the following year. This procedure, however, stresses the trees and as such would increase their susceptibility to insect and disease pests. In this case production is more important than tree health.
Multi-stem shrubs such as the Austrian copper rose and lilacs can be cut back to the ground removing all of the leaf-bearing stems. While this damages root growth it also stimulates sucker growth from which a new, healthier, insect- and disease-free plant emerges. When this procedure is used to rejuvenate an old plant, it needs to be accomplished as soon as possible after bloom to ensure sufficient regrowth of leaves. While plants treated in this manner may not bloom the following year, their overall health will be greatly improved.
When an arborist trims a mature shade or ornamental tree, no more than 25 percent of the leaf-bearing tissue is removed to avoid excessive dieback of roots. When you pinch back a herbaceous plant to make it spread out, it is best to follow this 25-percent rule. Remove no more than 25 percent of the leaf-bearing surface or root death will occur.


Trainer Tools is a podcast for Learning and Development professionals.
For more information on what a podcast is, and for details on how to listen and subscribe, please click here.
Scroll down to see the latest episodes in the series.


As you can see from the preceding syntax, after naming the table, you define each columnin orderwithin parentheses. Each column and description should be separated by a comma. Should you choose to create indexes at this time, you can add those at the end of the creation statement (you can add indexes at a later time, as well).
(Prior to MySQL 4.0.18, you have to use the word TYPE instead of ENGINE). If you don't specify a storage engine when creating tables, MySQL will use the default type (InnoDB on Windows, MyISAM otherwise).
I'll now create the four tables that compose the accounting database.
It'll be easier to create the tables if you select the database first. You will need to be logged in as a user that has permission to create tables on this database.
Figure 4.8. The first steps I take are to log in to mysql and select the accounting database.
Create the invoices table (Figure 4.9).
This step takes the information about the invoices table I established earlier and integrates that within the CREATE table syntax. The order in which you enter the columns here will dictate the order the columns appear in the table. You'll also need to specify any indexes last so that they are enacted after the column itself has been created.
Figure 4.9. The mysql client allows you to enter commands over multiple lines, making long SQL statements more readable.
Because the mysql client will not run a query until it encounters a semicolon, you can enter statements over multiple lines as I do in Figure 4.9.
Create the clients table (Figure 4.10).
This table has the most columns but only two indexes.
Figure 4.10. MySQL will report if a command worked, using the Query OK statement as indicated here.
Create the expenses table (Figure 4.11).
Figure 4.11. Creating the third table.
Finally, create the expense_categories table (Figure 4.12).
This is the simplest of the four tables, with only two columns and two indexes.
Figure 4.12. Creating the fourth and final table.
Confirm the existence of the tables (Figure 4.13).
The SHOW command can reveal the tables in a database or the column names and types in a table.
Figure 4.13. You can confirm the existence and structure of databases and tables using the SHOW command. Don't be alarmed by the results of the SHOW COLUMNS command. MySQL has its own way of describing a table that might differ from how you created it.
DESCRIBE tablename, which you might see in other resources, is the same statement as SHOW COLUMNS FROM tablename.
You can also run a SHOW CREATE TABLE tablename query to see how an existing table was created.
If you run a SHOW CREATE TABLE tablename query after making a table, you'll see how MySQL implements your creation. Doing so will help you see how MySQL may change column types for its own performance purposes.


A comedy group are putting the 'fun' into funeral by holding an improvised ceremony at Leicester Cathedral.
As part of the Leicester Comedy Festival, Oxford Imps will be putting on the ceremony and taking suggestions from the congregation as they give eulogies and summarise the life of a fictional deceased person.
The event, which takes place at 7.30pm on Wednesday, February 20, next year, will also include improvised poetry readings and hymns.
The Oxford Imps even have their own coffin for the show, as well as flowers and an urn.
Harry Househam, who performs in the show, said: "I came up with the show idea while attending the funerals of my great aunt and my grandmother.
"I found it interesting to recognise the same hesitance to sit on the front row at a funeral as with a comedy night - nobody wants to be the focus of attention or in the spotlight.
"It's also amazing how much tension around death makes people quite giggly, from stifled laughter when somebody almost trips over or imagining all the things that could go wrong.
"It just seemed like funerals and death were a subject that we all take far too seriously, and there is joy to be found in peoples lives.
He said the show was about giving audience members a chance to laugh at the thing they worry about the most – their own mortality.
The show has already been performed at venues in Oxford and after Leicester Comedy Festival, the show is being performed in May as part of the Brighton Fringe.
A recent review by the Cherwell students' newspaper at Oxford University said the show was "a great success: genuinely funny, talented improvisers came together around a thoroughly amusing theme to astound the audience".
The university's Daily Info paper said: "The Oxford Imps have managed to bring mirth to that most solemn of occasions: a funeral."


Runway and taxiway is base facilities for aircraft take off and landing and runway capacity is one of major factor for airport capacity. Runway occupancy time is affect on the runway capacity. The identification of aircraft using taxiway by analysis of airport ground surveillance data and the measurement of pass time on the points is general method for the confirmation of the runway occupancy time. This study is runway occupancy time analysis of landing airplane using ADS-B message, in this study we surveyed landing aircraft runway occupancy time and analysis of serviced record using taxiway include rapid exit taxiway. The result of analysis is to confirm the different of landing direction and aircraft category on the same runway caused by structure of airport. Also the result of runway occupancy time analyzed data, it is base input data for the air transportation simulation.
FAA AC150/5060-5, Airport capacity and delay, Federal Aviation Administration, Sep. 1983.
ICAO Doc9157 Part2, Aerodrome design manual - Taxiway, aprons and holding bays, International Civil Aviation Organization, 2005.
V. Kumar, L. Sherry and R. Kicinger, Runway occupancy time extraction and analysis using surface track data, Research report, George Mason University, Jul. 2009.
D. D. Lee, A. Smith, R. Cassell and B. Abdul-Baki, "NASA low visibility landing and surface operations (LVLASO) runway occupancy time(ROT) analysis," in Digital Avionics System Conference, 1999. Proceedings 18th, St Louis: MO, pp 5.D.5-1- 5.D.5-9 vol.1, Oct. 1999.
ICAO Annex14, Volume 1, Aerodrome design and operations, , Jul. 2013.
S. K. Ku and H. J. Baik, "Analysis of ADS-B ground trajectory data using non-aviation approval public data," Journal of the Korean Society for Aviation and Aeronautics, Vol. 23, No. 4, pp. 6-11, Dec. 2016.
ICAO Doc8643, Aircraft type designators, International Civil Aviation Organization, Apr. 2015.


>>> enough by a certain behavior to ask here if there's any way to stop it.
>>> keys jumps it back to where it was.
>>> Have others run into this, and if so is there a way to prevent it?
>> This also happens on Mac OS 10.7.3, and it's been one of the reasons why I don't usually write long texts with maths in Mathematica (combined with other problems such as inadequate undo functionality).
>> I don't know how to fix this for equations in text cells, but at least the jumps don't occur if you put equations in DisplayFormula or DisplayFormulaNumbered cells (this can be chosen from the Format>  Style menu), instead of text cells. I would try to do that as much as possible, but of course sometimes you need inline maths as well, and in that case the only way to avoid screen jumps is to emulate the math style by hand, e.g. by choosing italic font for variables without putting them in a Ctrl-( inset. This of course can't always be done.
> After you have inserted your first displayed formula, you can get back to the same style directly by pressing command-0. This brings up the style menu with the last setting selected. Then you simply press return to get a new cell with that style, press Shift-Command-t to enter TraditionalForm. Now you're ready to start entering the formula not perfect, but at least some shortcuts do exist.
Thanks, Jens, this is useful.


Mastino Rooms enjoys a privileged position, as it is located a few steps from Piazza Brà and the Arena, but outside the pedestrian area, allowing you to get comfortably in our private parking. The centre, monuments, museums and shops can be easily reached on foot. Mastino Rooms is the ideal starting point for a business or relaxing stay. You can find us at the Mastino Hotel located in Corso Porta Nuova 16, where we will be happy to accompany you to your Mastino Rooms room, located in Vicolo Ghiaia 5.


Floral Satin Jacquard is a fun, light-weight, and silky. It is woven with roses, giving it depth, and texture, adding another dimension to your project. The silky texture makes it perfect for eye-catching gowns and dresse, beautiful bed sets, pillow cases and other projects where a delicate touch is desired. Care: Machine wash gentle cycle, tumble dry with low heat. Width: 60"


A special form of postings are events. The events you and your contacts share can be found at /events on your node. To get there go to your wall and follow the tab "events" Depending on the theme you are using, there might be an additional link from the navigation menu to this page.
The overview page shows the calendar of the current month, plus a few days days at the beginning and the end. Listed are all events for this month, created by you, or shared with you by your contacts, This includes birthday reminders for contacts who share their birthday with you.
From the controls, you can switch between month/week/day view. Flip through the view forwards and backwards. And return to today.
To create a new event, you can either follow the link "Create New Event" or double click on the desired box in the calendar in which the event should take place.
With a click on an existing event a pop-up box will be opened which shows you the event. From there you can edit the event or view the event at the source link, if you are the one who created the event.
Following one of the methods mentioned above you reach a form to enter the event data. Fields marked with a *** have to be filled.
When you click in one of these fields a pop-up will be opened that allows you to pick the day and the time. If you double clicked on the day box in the calendar these fields will be pre-filled for you. The finishing date/time has to be after the beginning date/time of the event. But you don't have to specify it. If the event is open-ended or the finishing date/time does not matter, just select the box below the two first fields.
This might prevent early birthday wishes, or the panic that you have forgotten the birthday from your buddy at the other side of the world. And similar events.
These three fields describe your events. In the description and location field you can use BBCode to format the text.
Share this event: when this box is checked the ACL will be shown to let you select with whom you wish to share the event. This works just like the controls of any other posting.
When you Share the event it will be posted to your wall with the access permissions you've selected. But before you do, you can also preview the event in a pop-up box.
When you publish an event, you can choose who shall receive it, as with a regular new posting. The recipients will see the posting about the event in their network-stream. Additionally it will be added to their calendar and thus be shown in their events overview page.
Recipients of the event-posting can comment or dis-/like the event, as with a regular posting. Furthermore they can announce that they will attend, not attend or may-be attend the event with a single click.
If you want to export your public events to ical or csv, you can activate an additional feature in your user settings (Additional features -> General Features -> Export Public Calendar). Afterwards a link will be shown in the events page of your profile to access the calendar.


1. AI Everywhere : 35 percent of advanced internet users want an AI advisor at work, and one in four would like an AI as their manager. At the same time, almost half are concerned that AI robots will soon make a lot of people lose their jobs.
2. Setting the Pace for Internet of Things : Consumers are increasingly using automated applications, encouraging IoT adoption. Two in five believe smartphones will learn their habits and perform activities on their behalf automatically.
3. Pedestrians Drive Autonomous Cars : Car drivers may not exist in the future. One in four pedestrians would feel safer crossing a street if all cars were autonomous, and 65 percent of them would prefer to have an autonomous car.
4. Merged Reality : Almost four out of five virtual reality users believe VR will be indistinguishable from reality in only three years. Half of respondents are already interested in gloves or shoes that allow you to interact with virtual objects.
5. Bodies Out of Sync : As autonomous cars become reality, car sickness issues will increase, and three in ten foresee needing sickness pills. One in three also want motion sickness pills for use with virtual and augmented reality technology.
6. The Smart Device Safety Paradox : More than half already use emergency alarms, tracking or notifications on their smartphones. Of those who say their smartphone makes them feel safer, three in five say they take more risks because they rely on their phone.
7. Social Silos : Today, people willingly turn their social networks into silos. One in three says social networks are their main source of news. And more than one in four value their contacts' opinions more than politicians' viewpoints.
8. Augmented Personal Reality : Over half of people would like to use augmented reality glasses to illuminate dark surroundings and highlight dangers. More than one in three would also like to edit out disturbing elements around them.
9. The Privacy Divide : Two in five advanced internet users want to use only encrypted services, but people are divided. Almost half would like to have just reasonably good privacy across all services, and more than one out of three believes privacy no longer exists.
10. Big Tech for All : More than two out of five advanced internet users would like to get all their products from the biggest five IT companies. Of those, three in four believe this will happen only five years from now.


Get your sunset fill here!
I could not be bothered this morning, but I dragged myself out of bed and ended up running a 58min 10km! I'm very pleased with that. And to top it off the weather is starting to calm down a bit so there wasn't any crazy wind or hail to battle through.
Mum and I have had a gorgeous day today and not online because of the weather.
We did so much including drinks at the highest bar in London, not one but two boat trips, and finally a delicious Italian dinner in Fulham! Top marks all around.
I've had a gorgeous Sunday. I'm feeling at about 90% full health, still a little dizzy and a little deaf, but I'm getting there.
This morning I managed a short 5km run, then headed out for a walk with Fae and her dog Ruby. We then had brunch at hear house and I walked home in the sunshine with a big smile on my face.
I'm back working! Well, trying my best at least. Today was a bit of a slog, but I managed to get some work done and I'm even wobbling into the office tomorrow. Still dizzy but I'm slowly getting my sea legs.
I'm SO excited to get out into the gorgeous weather we've been having! Just look at this clear sky as the sun set.


· The Society endeavours to make our activities accessible to all.
· The Society encourages members to follow the Geological Code for fieldwork and collecting published by the Geologists' Association.
The Officers, Committee and volunteers of the Society have not had a criminal record check. Young members and guests under the age of 18 should be accompanied by a responsible adult.
The Society will whenever practicable make activities accessible to disabled people. The accessibility of the rooms for our indoor meetings is the responsibility of the hosts. The rooms do not have inductions loops for members with hearing difficulties. There are adjustable tables and chairs in some of the meeting rooms we use. The nature of geological fieldwork means that it is often unsuitable for people using wheelchairs or have other mobility problems.
The leaders and volunteers at our events are not required to be first aiders.
The Society has third party public liability insurance through our affiliation to the Geologists' Association.
Members and guests attending our events are advised to have their own personal accident insurance.
The views expressed in the Society's publicationsare not necessarily those of the Society. Mention of a site in our publications does not imply that there is a right to access to that site or that permission to visit and collect specimens has been granted by the owner.


text:
var checkflag = "false";

function checkAll(field) {
if (field != null) {
  if (field.length >0){
// for more than one checkbox
    if (checkflag == "false") {
       for (i = 0; i < field.length; i++) {
           field[i].checked = true;}
       checkflag = "true";
       return "Uncheck all"; }
    else {
       for (i = 0; i < field.length; i++) {
           field[i].checked = false; }
       checkflag = "false";
       return "Check all"; }
  }
  else {
// for only one checkbox
    if (checkflag == "false") {
  field.checked = true;
  checkflag = "true";
  return "Uncheck all"; }
else {
  field.checked = false;
  checkflag = "false";
  return "Check all"; }

   }
}
}

function uncheck(field){
      field.checked = false;
  checkflag = "false";
    return "uncheck";
}

// this is for movePool. uncheck all other radio buttons when one is checked, to make it  behave like they are in an array.

function uncheckOthers(field){
 var fieldname = field.getAttribute("name");
 var tables= document.getElementsByTagName("TABLE");

  for (var i = 0; i < tables.length; i++) {
        if ( tables[i].id.indexOf("radiobtn") >=0){
 		var radiobtn = tables[i].getElementsByTagName("INPUT")[0];
// go through the radio buttons, if it's the one clicked on, uncheck all others
	if (fieldname!=radiobtn.getAttribute("name")){
		radiobtn.checked = false;
}
        }
  }

var selectId =  field.getAttribute("value");
var inputhidden = document.getElementById("movePool:selectedRadioBtn");
inputhidden.setAttribute("value", selectId);

}

// The following have been modified based on tigris tree javascript

function flagRows(){
//return;
  var divs = document.getElementsByTagName("A");
  for (var i = 0; i < divs.length; i++) {
     var d = divs[i];
     if (d.className == "treefolder"){
        d.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-closed.gif)";
     }
  }
}

function toggleRows(elm) {
 var tables = document.getElementsByTagName("TABLE");
 var t=0;
 for (t= 0; t< tables.length; t++) {
        if ( tables[t].id.indexOf("TreeTable") >=0){
                break;
        }
 }

 var rows = tables[t].getElementsByTagName("TR");

 //var rows = document.getElementsByTagName("TR");
 elm.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-closed.gif)";
 var newDisplay = "none";
 var spannode = elm.parentNode;
 var inputnode = spannode.getElementsByTagName("INPUT")[0];
 var thisID = inputnode.value+ "-";
 // Are we expanding or contracting? If the first child is hidden, we expand
  for (var i = 1; i < rows.length; i++) {
   var r = rows[i];

// get row id
     var cell= r.getElementsByTagName("TD")[0];
     var sf= cell.getElementsByTagName("SPAN")[0];
     var sfs= cell.getElementsByTagName("SPAN");
	if (sfs.length >0) {   // skip the table for remove checkboxes
     var ht= sf.getElementsByTagName("INPUT")[0];
   var rowid = ht.value;

   if (matchStart(rowid, thisID, true)) {
    if (r.style.display == "none") {
     if (document.all) newDisplay = "block"; //IE4+ specific code
     else newDisplay = "table-row"; //Netscape and Mozilla
     elm.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-open.gif)";
    }
    break;
   }
   }

 }

 // When expanding, only expand one level.  Collapse all desendants.
 var matchDirectChildrenOnly = (newDisplay != "none");

 for (var j = 1; j < rows.length; j++) {
   var s = rows[j];
// get row id
     var cell= s.getElementsByTagName("TD")[0];
     var sf= cell.getElementsByTagName("SPAN")[0];
     var sfs= cell.getElementsByTagName("SPAN");
	if (sfs.length >0) {   // skip the table for remove checkboxes
     var ht= sf.getElementsByTagName("INPUT")[0];
   var rowid = ht.value;

   if (matchStart(rowid, thisID, matchDirectChildrenOnly)) {
     s.style.display = newDisplay;
     var cell = s.getElementsByTagName("TD")[0];
     var tier = cell.getElementsByTagName("SPAN")[0];
     var folder = tier.getElementsByTagName("A")[0];
     if (folder.getAttribute("onclick") != null) {
      folder.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-closed.gif)";
     }
   }
  }

 }
}

function matchStart(target, pattern, matchDirectChildrenOnly) {
 var pos = target.indexOf(pattern);
 if (pos != 0) return false;
 if (!matchDirectChildrenOnly) return true;
 if (target.slice(pos + pattern.length, target.length).indexOf("-") >= 0) return
 false;
 return true;
}

function collapseAllRows() {
 var tables = document.getElementsByTagName("TABLE");
 var t= 0;
 var hastreetable= "false";

 if (!tables.length > 0){

	return;
 }
 for (t= 0; t< tables.length; t++) {
	if ( tables[t].id.indexOf("TreeTable") >=0){
	hastreetable= "true";
		break;
        }
 }

if (hastreetable== "false") {
        return;
}

 var rows = tables[t].getElementsByTagName("TR");
 //var rows = document.getElementsByTagName("TR");
 for (var j = 1; j < rows.length; j++) {
   var r = rows[j];
     var cells= r.getElementsByTagName("TD");
     var cell= r.getElementsByTagName("TD")[0];
     var sfs= cell.getElementsByTagName("SPAN");
	if (sfs.length >0) {   // skip the table for remove checkboxes
     var sf= cell.getElementsByTagName("SPAN")[0];
     var ht= sf.getElementsByTagName("INPUT")[0];
   if (ht.value.indexOf("-") >= 0) {
     r.style.display = "none";
   }
  }

 }
}

/****************************************************************/
// this is for movePool and copyPool, where there are nested tr, td tags

function toggleRowsForSelectList(elm) {
 var tables = document.getElementsByTagName("TABLE");
 var t=0;
 for (t= 0; t< tables.length; t++) {
        if ( tables[t].id.indexOf("TreeTable") >=0){
                break;
        }
 }

 var rows = tables[t].getElementsByTagName("TR");

 //var rows = document.getElementsByTagName("TR");
 elm.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-closed.gif)";
 var newDisplay = "none";
 var spannode = elm.parentNode;
 var inputnode = spannode.getElementsByTagName("INPUT")[0];
 var thisID = inputnode.value+ "-";
 // Are we expanding or contracting? If the first child is hidden, we expand
  for (var i = 1; i < rows.length; i++) {
   var r = rows[i];

// to skip the cell for radio button or checkbox
      var cells= r.getElementsByTagName("TD");
if (cells.length !=7) {
 continue;
}

     var cell= r.getElementsByTagName("TD")[2];
     var sf= cell.getElementsByTagName("SPAN")[0];
     var ht= sf.getElementsByTagName("INPUT")[0];
   var rowid = ht.value;

   if (matchStart(rowid, thisID, true)) {
    if (r.style.display == "none") {
     if (document.all) newDisplay = "block"; //IE4+ specific code
     else newDisplay = "table-row"; //Netscape and Mozilla
     elm.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-open.gif)";
    }
    break;
   }
 }

 // When expanding, only expand one level.  Collapse all desendants.
 var matchDirectChildrenOnly = (newDisplay != "none");

 for (var j = 1; j < rows.length; j++) {
   var s = rows[j];
// get row id
// to skip the cell for radio button or checkbox
      var cells= s.getElementsByTagName("TD");
if (cells.length !=7) {
 continue;
}

     var cell= s.getElementsByTagName("TD")[2];

     var sf= cell.getElementsByTagName("SPAN")[0];
     var ht= sf.getElementsByTagName("INPUT")[0];
   var rowid = ht.value;

   if (matchStart(rowid, thisID, matchDirectChildrenOnly)) {
     s.style.display = newDisplay;
     var cell = s.getElementsByTagName("TD")[2];
     var tier = cell.getElementsByTagName("SPAN")[0];
     var folder = tier.getElementsByTagName("A")[0];
     if (folder.getAttribute("onclick") != null) {
      folder.style.backgroundImage = "url(${pageContext.request.contextPath}/images/folder-closed.gif)";
     }
   }
 }
}

function collapseAllRowsForSelectList() {
 var tables = document.getElementsByTagName("TABLE");
 var t=0;
 for (t= 0; t< tables.length; t++) {
        if ( tables[t].id.indexOf("TreeTable") >=0){
                break;
        }
 }
 var rows = tables[t].getElementsByTagName("TR");
 //var rows = document.getElementsByTagName("TR");
 for (var j = 1; j < rows.length; j++) {
   var r = rows[j];
// to skip the cell for radio button or checkbox
      var cells= r.getElementsByTagName("TD");
if (cells.length !=7) {
 continue;

}
      var cell= r.getElementsByTagName("TD")[2];

     var sf= cell.getElementsByTagName("SPAN")[0];
     var ht= sf.getElementsByTagName("INPUT")[0];
   if (ht.value.indexOf("-") >= 0) {
     r.style.display = "none";
   }
 }
}

/****************************************************************/
function collapseRowsByLevel(level) {

 var tables = document.getElementsByTagName("TABLE");
 var t= 0;
 var hastreetable= "false";
 if (!tables.length > 0){
        return;
 }
 for (t= 0; t< tables.length; t++) {
        if ( tables[t].id.indexOf("TreeTable") >=0){
 		hastreetable= "true";
                break;
        }
 }
if (hastreetable== "false") {
	return;
}

 var rows = tables[t].getElementsByTagName("TR");
 //var rows = document.getElementsByTagName("TR");
 for (var j = 1; j < rows.length; j++) {
   var r = rows[j];
     var cells= r.getElementsByTagName("TD");
     var cell= r.getElementsByTagName("TD")[0];
     var sfs= cell.getElementsByTagName("SPAN");
        if (sfs.length >0) {   // skip the table for remove checkboxes
     var sf= cell.getElementsByTagName("SPAN")[0];
     var ht= sf.getElementsByTagName("INPUT")[0];
   var rtokens =ht.value.split("-");
   if (ht.value.indexOf("-") >= 0) {
     if (rtokens.length > level) {
       r.style.display = "none";
     }
   }
  }

 }
}

/****************************************************************/

function collapseRowsByLevel1(i) {
// not used
 var tables = document.getElementsByTagName("TABLE");
 var t=0;
 for (t= 0; t< tables.length; t++) {
        if ( tables[t].id.indexOf("TreeTable") >=0){
                break;
        }
 }

 var rows = tables[t].getElementsByTagName("TR");

 //var rows = document.getElementsByTagName("TR");
 for (var j = 0; j < rows.length; j++) {
   var r = rows[j];
   var rtokens =r.id.split("-");

   if (r.id.indexOf("-") >= 0) {
     if (rtokens.length > i) {
       r.style.display = "none";
     }
   }

 }
}

// below is for simple tree
function toggleBullet(elm) {
 var newDisplay = "none";
 var e = elm.nextSibling;
 while (e != null) {
  if (e.tagName == "OL" || e.tagName == "ol") {
   if (e.style.display == "none") newDisplay = "block";
   break;
  }
  e = e.nextSibling;
 }
 while (e != null) {
  if (e.tagName == "OL" || e.tagName == "ol") e.style.display = newDisplay;
  e = e.nextSibling;
 }
}

function collapseAll() {
  var lists = document.getElementsByTagName('OL');
  for (var j = 0; j < lists.length; j++)
   lists[j].style.display = "none";
  lists = document.getElementsByTagName('ol');
  for (var j = 0; j < lists.length; j++)
   lists[j].style.display = "none";
  var e = document.getElementById("root");
  e.style.display = "block";
}

function PopupWin(url)
{
   window.open(url,"ha_fullscreen","toolbar=no,location=no,directories=no,status=no,menubar=yes,"+"scrollbars=yes,resizable=yes,width=640,height=480");

}

function checkUpdate(){
 var tables= document.getElementsByTagName("INPUT");
 for (var i = 0; i < tables.length; i++) {
    if (tables[i].name.indexOf("removeCheckbox") >=0){
         if(tables[i].checked){
            abledButton();
             break;
         }
         else disabledButton();
    }

 }
}

// convenience function for single button arrays, see next function
function updateButtonStatusOnCheck(button, checkboxContainer)
{
    updateButtonStatusesOnCheck([button], checkboxContainer);
}

// enables/disables the given buttons depending on whether or not
// any checkbox child element of the given container is checked
function updateButtonStatusesOnCheck(buttons, checkboxContainer)
{
    if (buttons === null || checkboxContainer === null)
    {
        return;
    }

    var inputs = checkboxContainer.getElementsByTagName("input");
    var foundChecked = false;
    for (i = 0; i < inputs.length; ++i)
    {
        if (inputs[i].type === "checkbox" && inputs[i].checked)
        {
            foundChecked = true;
            break;
        }
    }

    for (i = 0; i < buttons.length; ++i)
    {
        if (buttons[i] !== null)
        {
            buttons[i].disabled = !foundChecked;
        }
    }
}

function inIt()
{
  var inputs= document.getElementsByTagName("INPUT");
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].name.indexOf("Update") >=0) {
      inputs[i].disabled=false;
    }
  }
}

function disableIt()
{
  var inputs= document.getElementsByTagName("INPUT");
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].name.indexOf("Update") >=0) {
      inputs[i].disabled=true;
    }
  }
}

function disabledButton(){
  var inputs= document.getElementsByTagName("INPUT");
  for (var i = 0; i < inputs.length; i++){
    if (inputs[i].name.indexOf("Submit") >=0) {
      inputs[i].disabled=true;
	  inputs[i].className='disabled';
	}
  }
}
function abledButton(){
  var inputs= document.getElementsByTagName("INPUT");
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].name.indexOf("Submit") >=0) {
      inputs[i].disabled=false;
	  inputs[i].className='active';
	}
  }
}

function toggleRemove(){
  var inputs= document.getElementsByTagName("INPUT");
  var selectitem = null;
  for (var i = 0; i < inputs.length; i++) {
    if (inputs[i].name.indexOf("selectall") >=0) {
       selectitem = inputs[i];
       break;
    }
  }

  var checkit = selectitem.checked;
  if (checkit)
    selectitem.title=textuncheckall;
  else
    selectitem.title=textcheckall;

  for (var i = 0; i < inputs.length; i++){
    if (inputs[i].name.indexOf("removeCheckbox") >=0)
      inputs[i].checked=checkit;
  }
}

// **********************************************
// ****************** SAM-2049 ******************
// **********************************************

function checkChildrenCheckboxes(item) {
	var localItem = jQuery(item);
	var itemChecked = localItem.is(':checked');

	// Go to the item's parent table that has the tier. I would have used a wildcard selector but the version
	// of jquery we are using doesn't seem to have that working well
	var itemParentTable = localItem.parents("table[id$='radiobtn']");

	// Make sure we found something.  A length of 0 would be not found
	if (itemParentTable.length == 1) {
		// What is the css style of this parent table? we assume this is "tierX"
		var itemTierClassName = itemParentTable.attr("class");
		var itemCheckboxTierDigit = getTierDigit(itemTierClassName);
		var itemParentTr = itemParentTable.parent().parent().parent();

		// Let's get all the other mega table rows
		var itemPeerTrs = itemParentTr.nextAll(); // Get all sibling tr's AFTER this tr.

		// This will be used if we find a tier level that is at a level the same or higher than the one being checked
		var isKeepLooping = true;

		for (var index = 0; (isKeepLooping && index < itemPeerTrs.length); index++) {
			var siblingTr = jQuery(itemPeerTrs.get(index));
			var siblingTierTable = siblingTr.find("table");
			var siblingTierTableClassName = siblingTierTable.attr("class");
			var siblingCheckboxTierDigit = getTierDigit(siblingTierTableClassName);

			// If this tier level is greater than the initial item checked then these are child
			// checkboxes that need to be set or unset.
			if (siblingCheckboxTierDigit > itemCheckboxTierDigit) {
				var siblingInputCheckbox = siblingTierTable.find("input:checkbox");
				if (itemChecked) {
					siblingInputCheckbox.attr("checked", "checked");
					siblingInputCheckbox.attr("disabled", "disabled");
				} else {
					siblingInputCheckbox.removeAttr("checked");
					siblingInputCheckbox.removeAttr("disabled");
				}
			} else {
				// This tier level is NOT a child tier. No need to look at any more checkboxes
				isKeepLooping = false;
			}
		}
  	}
}

function getTierDigit(tierString) {
	if (tierString !== undefined) {
		return tierString.substr(4, tierString.length - 4);
	}
	else {
		return -1;
	}
}

function checkAllCheckboxes( selectAllCheckbox )
{
	var allCheckboxes = jQuery(':checkbox');
	var isSelectAllChecked = selectAllCheckbox.checked;
	for( i = 0; i < allCheckboxes.length; i++ )
	{
		var checkbox = allCheckboxes[i];
		if( selectAllCheckbox.id !== checkbox.id )
		{
			if( isSelectAllChecked )
			{
				checkbox.checked = true;
				checkbox.disabled = true;
			}
			else
			{
				checkbox.checked = false;
				checkbox.disabled = false;
			}
		}
	}
}

function passSelectedPoolIds() {
	var allCheckboxes = jQuery('#transferPool\\:TreeTable').find(':checkbox:checked');
	var poolIds = new Array();
	var checkboxValue;

	for (var index = 0; index < allCheckboxes.length; index++) {
		checkboxValue = jQuery(allCheckboxes.get(index)).val();
		poolIds[index] = checkboxValue;
	}

	var hideInput = jQuery('input[name$=transferPoolIds]');
	hideInput.val(poolIds);
}

function checkChildrenCheckboxesDisable(item) {
	var localItem = jQuery(item);
	var itemChecked = localItem.is(':checked');
	var itemParentTable = localItem.closest('table');

	if (itemParentTable.length == 1) {
		var itemTierClassName = itemParentTable.attr("class");
		var itemCheckboxTierDigit = getTierDigit(itemTierClassName);
		var itemParentTr = itemParentTable.closest('tr');
		var itemPeerTrs = itemParentTr.nextAll(); // Get all sibling tr's AFTER this tr.
		var isKeepLooping = true;

		for (var index = 0; (isKeepLooping && index < itemPeerTrs.length); index++) {
			var siblingTr = jQuery(itemPeerTrs.get(index));
			var siblingTierTable = siblingTr.find("table");
			var siblingTierTableClassName = siblingTierTable.attr("class");
			var siblingCheckboxTierDigit = getTierDigit(siblingTierTableClassName);

			if (siblingCheckboxTierDigit > itemCheckboxTierDigit) {
				var siblingInputCheckbox = siblingTierTable.find("input:checkbox");
				if (itemChecked) {
					siblingInputCheckbox.attr("disabled", "disabled");
				} else {
					siblingInputCheckbox.removeAttr("disabled");
				}
			} else {
				isKeepLooping = false;
			}
		}
	}
}

function disableCheckboxes() {
	var allCheckboxes = jQuery(':checkbox');
	var checkAllChecked = jQuery('input[name$=checkAllCheckbox]').is(':checked');

	for (var index = 1; index < allCheckboxes.length; index++) {
		var checkboxItem = jQuery(allCheckboxes.get(index) );
		if (checkAllChecked) {
			checkboxItem.attr("disabled", "disabled");
		} else {
			checkboxItem.removeAttr("disabled");
		}
	}

	var otherCheckboxes = jQuery('input[name$=radiobtn]');
	for (var i = 0; i < otherCheckboxes.length; i++) {
		checkChildrenCheckboxesDisable(otherCheckboxes.get(i));
	}
}

function disableButtons() {

	// Get the buttons
	var elements = $(":submit");
	for (i = 0; i < elements.length; i++) {

		// Hide the original
		var button = elements[i];
		button.style.display = "none";

		// Clone and disable the original
		var newButton = document.createElement("input");
		newButton.setAttribute("type", "button" );
		newButton.setAttribute("id", button.getAttribute("id") + "Disabled");
		newButton.setAttribute("name", button.getAttribute("name") + "Disabled");
		newButton.setAttribute("value", button.getAttribute("value"));
		newButton.setAttribute("className", button.getAttribute("className"));
		newButton.setAttribute("disabled", "true");

		// Add the clone where the original is in the DOM
		var parent = button.parentNode;
		parent.insertBefore(newButton, button);
	}
}

/*
  Toggle JSF checkboxes that match a controller checkbox
*/
function toggleCheckboxes(checkbox,checkboxtargetname) {
    // Render the transfer button if one or more checkboxes are selected
    // Basically this needs to split out the ID from checkbox which will be named
    // editform:_id142:chk
    //
    // And either check or uncheck all boxes named depending on whether or not it (itself) is checked
    // editform:_id142:#:*
		// Add your controller checkbox with the name:
		// <h:selectBooleanCheckbox id="importCheckbox_chk" onclick="toggleCheckboxes(this);" value="" />

		//debugger;
    if (checkboxtargetname) {
				params = checkbox.name.split(":")
		}
		if (params && params.length == 3) {
				params.pop();
				params.push(checkboxtargetname);
		}
    else
			return;

		for (i = 0;; i++) {
        id = params[0] + ":" + params[1] + ":" + i + ":" + params[2];
        elem = null;
        if (document.getElementsByName)
            elem = document.getElementsByName(id);
        if (elem == null || elem.length == 0) {
            break;
        } else {
            if (elem.length == 1)
                elem[0].checked = checkbox.checked;
            //Not sure if it finds multiple elements with the same name, since this is a special JSF case
            //It shouldn't happen
        }
    }
}

function toggleSelectAllCheck(checkbox,checkboxtargetname) {
	if (checkboxtargetname)
		params = checkbox.name.split(":");

	if (params && params.length == 4) {
		params.pop();
		params.pop();
		params.push(checkboxtargetname);
	}
	else
		 return;

	id = params[0] + ":" + params[1] + ":" + params[2];
	elem = document.getElementsByName(id);

	if(elem == null || elem.length == 0)
		return;
	else{

		if(elem.length == 1){
			if(elem[0].checked&&!checkbox.checked)
				elem[0].checked = checkbox.checked;
			else
				return;
		}
		else
			return;
	}
}

var orderUpdate = null;

function enableOrderUpdate() {
	if(orderUpdate != null) return;
	var inputs = document.getElementsByTagName("INPUT");
	for(var i = 0; i < inputs.length; i++) {
		if(inputs[i].name.indexOf("orderUpdate") != -1) {
			orderUpdate = inputs[i];
			orderUpdate.disabled=false;
			break;
		}
	}
}