Outsourcing enters adulthood

ICT Outsourcing in Ireland now comes in all shapes and shades, as exemplified by HP being handed much of Bank of Ireland's IT operation to run. Leslie Faughnan talks to practitioners about the best approaches and looks at some of the most successful outsourcing arrangements in Ireland to date

Outsourcing is maturing. Not everything in IT does when it gets older—and certainly not just because it has been around for a long time. But outsourcing is exhibiting welcome post-adolescent signs of early adulthood (it is entering its early 20s, according to most IT
industry commentators) not least in that outsourcers are much less inclined to quarrel with others about what exactly constitutes ‘true’ outsourcing.

In fact, many of them do not actually care about preserving the orthodoxy that it is only outsourcing if staff and assets change from client to outsourcer. Many of those actually practising in this area and making money (outsourcers) or saving money (clients) have
come to regard any distinction between outsourcing and managed services as artificial.

HP Services in Ireland covers the full span and its head, Tom Carson, happily accepts that ‘managed services come in all sorts of different shapes and shades because the clients are selective about what business processes they need or want to entrust to an outsourcer.’ He points to the comprehensive nature of the Bank of Ireland/HP deal, the wide range of network management services that is still the most common type of outsourced requirement, or the specialist business continuity and disaster-recovery services that are absolutely mission-critical to certain types of organisation. ‘However the market regards outsourcing, it is clear that our Bank of Ireland contract brings it into the business mainstream,’ he said. ‘We expect to clinch two or three contracts of similar significance in
the next year or so.’

 

advertisement

 

He identifies financial services, government and state agencies and the agri-food sector as the most fertile potential markets. ‘But we also expect to see outsourcing moving deeper into the market,’ he says, ‘Even into the top end of SMEs, where so many elements of
managed services are already tried and tested.’ He also foresees developments in the reseller channel, where the combination of HP, local partners and telecoms companies can provide almost any kind of business with a set of services that allows it to enjoy the benefits of state of the art ICT at controlled costs while getting on with its core business.

Core competencies
Of course it is a cliché, but the idea of concentrating on ‘core competencies’ is none the less valid for all that and, in fact, has become something of a prevailing orthodoxy. US management guru Tom Peters’ maxim: ‘Do what you do best and outsource the rest’ is still often cited. But as the concept and practice mature we also have to learn how to manage this new form of administration and organisation.

It is certainly clear that outsourcing or managed services brings client and supplier into a much closer, deeper and mutually dependent relationship. Instinctively, this is where most business people understand that they are or would be going well beyond the traditional customer/supplier business deal. Many of those with experience suggest that it is something closer to a proprietor/staff relationship: it is intended to be longer term; needs both sides to attain the best results; is never perfect but almost always better to negotiate or compromise rather than fire and so on. Yes, it is a form of partnership but, as with employers, there is never any doubt about who is paying the bills!

‘If you are thinking of outsourcing, get yourself an adviser with direct experience of an outsourcing relationship, not just a consultant,’ says Paul Toner, VP of Bearing Point. ‘An experienced third party who is not in line for the contract will be welcomed by any sensible bidding organisation because professionals in this area recognise that if either the contractor or the client is naïve about the anticipated results there will be disappointment.

The model does work. If both sides have been involved previously then a contract could be hammered out in perhaps a couple of weeks. Where the client, especially, is new to the game there is a negotiation and education process that is really going to be much longer and still not guarantee a real depth of understanding. So it is worth hiring an adviser or facilitator who will help both sides ensure they have the same understanding of what the contract and the relationship will entail.’

ICT leads the trend
Most outsourcing contracts have involved facilities and services, which is why ICT has been the leading sector, closely followed by logistics and fulfilment. But Paul Toner and others believe that business processes will be the next wave. Accounts administration is the process most often cited and indeed Ireland has just seen its first example with the announcement last month that Independent News & Media had contracted its accounts to a Cork firm.

‘Outsourcing, offshoring and the digitising of back office and administrative tasks are just dimensions of a fundamental restructuring of the organisation as we know it,’ says Tom Rourke, general manager of CSC Computer Services, the Irish operation of the US multinational that fulfils global contracts in Ireland for Nortel, Raytheon, Bombardier, DuPont and Gallagher Tobacco. ‘White collar clerical work is being subjected to the kind of radical disruption that blue collar and manufacturing has undergone over the past 30
years or so.’

He suggests that outsourcers will now look to add value by exploiting the capabilities of their customers, of which they may have had a major input into developing. So a customer with a strong billing capability, for example, might partner with its outsourcer to sell on that capability to other users. So we could see the creation of value networks and specialised services facilitated by outsourcing companies.

Site Report: Bank of Ireland
Bank of Ireland’s IT transformation kicks in
It is certainly the best known outsourcing example in Ireland’s business sector, and at $600m (reflecting its international status, the deal was announced last November in US dollars) over seven years, the outsourcing of essentially the entire IT function of the Bank of Ireland Group to Hewlett Packard is the largest such IT services contract on this island.

A total of around 500 skilled staff in Ireland and the UK transferred to the HP payroll when the contract formally began last April. Many of these had been involved in the bank’s first venture into IT outsourcing with Perot Systems. HP Services now manages the bank’s entire IT infrastructure, including desktop systems, servers, mainframes, local area networks, printing operations and service desk.

A major objective is to help the bank to minimise operating costs and reduce volume consumption. Although details of the contract have not been disclosed, it is believed that HP Services will share the savings resulting from its services over time, which is now a
fairly common feature of outsourcing contracts, to add incentive for the providers.

The scale of the contract can be gauged by the 17,000 desktop users in Ireland and the UK that are being served by it, with four major production facilities in addition to the head office and branch network. At the time of the announcement Cyril Dunne, Group chief
information officer, Bank of Ireland said: ‘We chose HP because of its proven managed services capability, its presence as a large IT services provider in Ireland and its attractive plan for the transfer and subsequent welfare of Bank of Ireland’s IT staff. The contract
supports our ambition to maintain industry-leading IT capability and greater certainty around IT costs.’

The last sentence is probably the key: all large organisations have to drive down their costs but the BoI Group is committed to using innovative technology in the future, which it has clearly identified as a strategic imperative for competition in financial services. In that
context, the deal with HP is as much about business transformation as it is about day-to-day ICT support and maintenance.

According to Mike Losey, senior client director of HP Services Ireland, the first three years of the contract are essentially going to be about a transformation programme. It will look to standardise and modernise technology and processes in BoI with consolidation, more
centralised management, improved business continuity resources with multiple failover options and much more in this vein.

‘The aim is to have a consistent, stable, well managed ICT environment from which we will move together to the next generation of technology,’ he said. The future shape of the BoI
investment in the technology base for its business strategies is entirely the bank’s decision, he emphasises: ‘Like all such outsourcing clients, they have yielded execution, not control.’
At the same time, it is clear that HP’s vast international resources will offer this outsourcing partnership the knowledge and expertise to make such decisions.

Site Report: Reach e-government
Brokering a new kind of outsourcing

The contract for the Public Service Broker (PSB) awarded to Bearing Point at the end of last year is certainly the most significant outsourcing deal in the state sector. This is not so much because of its value—believed to be about EUR*15m over the initial three years—but because the PSB is at the heart of the Government’s strategy for e-government.

According to the definitive Reach Agency tender document, it ‘provides a common access point for e-Government services, common interface standards, procedures and supporting services, together with the necessary infrastructure to make access to e-government services as straightforward and secure as possible. In addition to supporting customer interaction, the PSB will also provide the standard mechanism for supporting inter-agency collaboration.’

A wholly new state service like the PSB is in many ways a new breed of outsourcing, with a statutory function and legal existence, yet involving few if any public service staff at the operational end.
Bearing Point succeeded in the face of strong competition (Accenture, Hewlett Packard and Siemens were the other finalists) over a prolonged three-year planning, tendering and decision-making EU Negotiated Procedures process. The current contract is for the
development and delivery of Reachservices, with the first elements live since June. What may have swung it for Bearing Point was its much-praised eGovernment Framework for the State of Texas. In this three-year old fully outsourced enterprise, there is no State
funding whatsoever and no onus on the 254 separate public agencies to use it. Its income comes from modest transaction fees and success has come from selling the merits of its eGovernment services to their managements and 22 million Texans.

Paul Toner, Bearing Point VP and head of EMEA government business, describes the current work programme as ‘… essentially an application development project, with input/output running as a managed service. There are different project elements running in parallel phases, with about 30 people in the team at any one time working on design, building and testing. Telecommunications and hosting elements are being provided by Esat BT. We regard each other as ‘best of breed’ and have a strong partnership across a
number of projects.’ Bearing Point Ireland has tapped the experience and expertise of the Texas team for the PSB project: ‘One great strength of a multinational organisation like ours is that we can harvest the global experience of colleagues in similar projects.’

Site Report: Group 4
Securing support for business critical systems

With a presence in Ireland since 1968, Group 4 is one of the largest security service companies in the country, particularly so since the recent international merger with the guarding business of Securicor, bringing the employee total close to 1,800. ‘Rostering and payroll for that number, many paid weekly, is as business-critical as you can get,’ says Martin Farrell, Group 4 company secretary and also national IT manager.

But in fact we also have 24*365 applications which are part of the services we give—and guarantee—to our clients. We had invested in good systems and employed third-party maintenance, which was OK. But with no IT department and too many routine tasks like
adding new users falling to me the idea of outsourcing the lot became very attractive. So earlier this year we basically went out to tender and ended up doing a trial deal with our Sandyford neighbours Moresoft.’

Group 4 Securicor has offices in Cork, Limerick and Athlone as well as Dublin, each linked to a WAN for which Moresoft has taken responsibility, including re-configuring servers and installing new hardware in a move to Microsoft 2003 Server and Exchange Server
2003. There are just under 100 desktops and some managers with remote access using a VPN. Antivirus, Internet content filtering and e-mail are all centralised and all standard IT administration is outsourced to Moresoft, as well as complete system maintenance and problem solving. It provides a nine-hour daily ‘hot line’ support service for users while engineers are deployed on-site every day.

‘We were impressed by the calibre of Moresoft’s people and service, so after about six months we moved to a 12-month rolling contract,’ says Martin Farrell. ‘On the costs side, we have certainly reduced the regular outgoings but it is actually the combination of lower and fixed or controlled costs that is so valuable. We can see clearly what and where our costs are. There is also the essential security of having support and expertise to rely on because the technology is business-critical for us. We offer a 24*7 service, so our systems
have to match that.’

Site Report: Maritime College
Maritime College anchors ICT infrastructure

The new National Maritime College just opened in Ringaskiddy, Cork, is the first third-level example of a new approach to providing education facilities: It is a public private partnership, in which Focus Education (a consortium of construction giant Bovis and Lend Lease Facilities Management with financial shareholders) has designed, financed and built the facility and will run it for 25 years.

The education side is provided by the Cork Institute of Technology and includes serving the nonmilitary training needs of the Naval Service. Capacity is 750 full-time student equivalents with first term enrolment of just over 200. A wide range of course is planned
and the college is expected to attract students from overseas. The outsourcing extends just as completely to the essential ICT infrastructure for a 21st century third-level institution:
Esat BT has the contract to supply, install and maintain just about everything from cabling to servers and desktop PCs, data storage, the LAN (and likely extension to WiFi), 2Mbit/s connectivity to parent campus CIT, videoconferencing equipment, IP telephony and, of course, lots of printing capability.

Although Esat BT would claim considerable depth of ICT engineering from its own resources it is partnering with Hewlett Packard in this as in other major projects for the computing and printing elements. The deal is worth an estimated EUR*1.5m over the initial three-year contract, of which just under half is for capital equipment. That includes 215 desktops and a small number of laptops, three servers and related data storage, 45 network attached printers and 160 IP phones, according to Mark O’Reilly, Esat BT corporate accounts manager for the public sector, who is personally managing this
contract.

‘Serving the college user community is now the priority,’ he said. ‘We have a help desk facility and at least one support engineer on the premises from nine to five, Monday to Friday. The network and telecoms aspects are fully managed remotely and there is a
comprehensive “handbook” for users that documents FAQs (frequently asked questions) and everything the non-technical user might need to know. Security, new users and passwords and all of that sort of administration is our responsibility also.’

The Maritime College is a first of its kind in Irish education, but there is a very successful UK model in several locations and Esat BT has been able to draw on the expertise and experience of group colleagues in developing a solution for Irish requirements.

Site Report: Orgamon
Outsourcing benefits in black and white

Organon has been in Ireland since the Sixties and moved to its purpose-built plant in Swords, Dublin in 1992. With more than 600 employees it is one of the largest pharmachem operations in the state with a range of products that are shipped to more than 50 countries worldwide.

‘We have more than 400 desktop users and had reached a total of 72 printers last year when we decided to look at outsourcing,’ says Graham O’Keeffe, IT manager. ‘The number of devices had mushroomed, with workgroup laser printers and even inkjets—at least in part because our senior managers do have a need for confidential print output. So we did a complete overview of the print function and decided to try the outsourcing route.’

Ergo services was an obvious candidate because of its track record as the doyen of print outsourcing, including the prestigious Microsoft contract now in its eighth year. ‘We signed an initial contract for a year because this kind of outsourcing was new territory for us. In fact it worked very successfully and we have now agreed a new three-year contract.’

O’Keeffe continued that the annual cost savings to Organon have amounted to 35 per cent, notably on direct costs, and perhaps up to 40 per cent when softer factors such as staff time are factored in. Reducing the number of devices (now 42) and replacing workgroup models with new high speed multifunctional printers was a first major step. ‘We were fairly aggressive with reducing the number of printers,’ says Graham O’Keeffe, ‘So, for example, anyone keeping personal printers has to pay the running costs out of their own
budgets!’

All printers are now networked Hewlett Packard machines, enabling central management of priorities, routing, colour privileges (most users just have mono drivers on their PCS) and so on. Monitoring ensures that the IT department can produce reports detailing usage
by individual, numbers of pages, standard/duplex, etc. Printers are sited on each of the two floors, with high speed machines per corridor and recently two HP 9000 multifunction machines (capable of 120,000 jobs per month or more), which have also taken over the photocopying function.

The contract covers everything involved in the print function, with a comprehensive service level agreement that includes the on-site presence of an Ergo engineer every morning 9.00-10.00. ‘Apart from attending to problems and fixes, the engineers—there’s a regular panel of three because Organon policy means they need some training and security clearance—have been invaluable in helping to educate our users. They have built up a rapport with users and our own support staff and the printing-related burden on our IT help desk has been greatly reduced so we can concentrate on business critical issues.’

29/11/04

RELATED ARTICLES
#mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: px;} /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block. We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
Sign up for the
Technology Minute
(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='MMERGE2';ftypes[2]='text';fnames[3]='MMERGE3';ftypes[3]='text';fnames[4]='MMERGE4';ftypes[4]='text';fnames[5]='SIGNUP';ftypes[5]='text';fnames[6]='MMERGE6';ftypes[6]='imageurl';}(jQuery));var $mcj = jQuery.noConflict(true); // SMS Phone Multi-Country Functionality if(!window.MC) { window.MC = {}; } window.MC.smsPhoneData = { defaultCountryCode: 'IE', programs: [], smsProgramDataCountryNames: [] }; function getCountryUnicodeFlag(countryCode) { return countryCode.toUpperCase().replace(/./g, (char) => String.fromCodePoint(char.charCodeAt(0) + 127397)) }; // HTML sanitization function to prevent XSS function sanitizeHtml(str) { if (typeof str !== 'string') return ''; return str .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, ''') .replace(/\//g, '/'); } // URL sanitization function to prevent javascript: and data: URLs function sanitizeUrl(url) { if (typeof url !== 'string') return ''; const trimmedUrl = url.trim().toLowerCase(); if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) { return '#'; } return url; } const getBrowserLanguage = () => { if (!window?.navigator?.language?.split('-')[1]) { return window?.navigator?.language?.toUpperCase(); } return window?.navigator?.language?.split('-')[1]; }; // getBrowserLanguageCode() and getSmsProgramForCountryAndLanguage() are provided globally // by the external mc-sms-phone.js script loaded alongside this inline form script. function getDefaultCountryProgram(defaultCountryCode, smsProgramData) { if (!smsProgramData || smsProgramData.length === 0) { return null; } var browserCountryCode = getBrowserLanguage(); var browserLangCode = getBrowserLanguageCode(); if (browserCountryCode) { var match = getSmsProgramForCountryAndLanguage(smsProgramData, browserCountryCode, browserLangCode); if (match) { return match; } } if (defaultCountryCode) { var match = getSmsProgramForCountryAndLanguage(smsProgramData, defaultCountryCode, browserLangCode); if (match) { return match; } } return smsProgramData[0]; } function updateSmsLegalText(countryCode, fieldName) { if (!countryCode || !fieldName) { return; } var programs = window?.MC?.smsPhoneData?.programs; if (!programs || !Array.isArray(programs)) { return; } var browserLangCode = getBrowserLanguageCode(); var program = getSmsProgramForCountryAndLanguage(programs, countryCode, browserLangCode); if (!program || !program.requiredTemplate) { return; } var smsConsentHtmlRenderingFixEnabled = true; const legalTextElement = document.querySelector('#legal-text-' + fieldName); if (!legalTextElement) { return; } const divRegex = new RegExp(']*>', 'gi'); const blockWrapperRegex = new RegExp(']*>', 'gi'); const fullAnchorRegex = new RegExp('<a.*?', 'g'); const anchorRegex = new RegExp('(.*?)'); const template = smsConsentHtmlRenderingFixEnabled ? program.requiredTemplate .replace(/\s*

]*>/gi, ' ') .replace(blockWrapperRegex, '') : program.requiredTemplate.replace(divRegex, ''); legalTextElement.textContent = ''; const parts = template.split(/(.*?)/g); parts.forEach(function(part) { if (!part) { return; } const anchorMatch = part.match(/(.+?)/); if (anchorMatch) { const linkElement = document.createElement('a'); linkElement.href = sanitizeUrl(anchorMatch[1]); linkElement.target = anchorMatch[2] ? sanitizeHtml(anchorMatch[2]) : '_blank'; linkElement.rel = 'noopener noreferrer'; linkElement.textContent = sanitizeHtml(anchorMatch[3]); legalTextElement.appendChild(linkElement); } else { legalTextElement.appendChild(document.createTextNode(part)); } }); } function generateDropdownOptions(smsProgramData) { if (!smsProgramData || smsProgramData.length === 0) { return ''; } var programs = true ? smsProgramData.filter(function(p, i, arr) { return arr.findIndex(function(q) { return q.countryCode === p.countryCode; }) === i; }) : smsProgramData; return programs.map(program => { const flag = getCountryUnicodeFlag(program.countryCode); const countryName = getCountryName(program.countryCode); const callingCode = program.countryCallingCode || ''; // Sanitize all values to prevent XSS const sanitizedCountryCode = sanitizeHtml(program.countryCode || ''); const sanitizedCountryName = sanitizeHtml(countryName || ''); const sanitizedCallingCode = sanitizeHtml(callingCode || ''); return '' + sanitizedCountryName + ' ' + sanitizedCallingCode + ''; }).join(''); } function getCountryName(countryCode) { if (window.MC?.smsPhoneData?.smsProgramDataCountryNames && Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) { for (let i = 0; i < window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) { if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) { return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name; } } } return countryCode; } function getDefaultPlaceholder(countryCode) { if (!countryCode || typeof countryCode !== 'string') { return '+1 000 000 0000'; // Default US placeholder } var mockPlaceholders = [ { countryCode: 'US', placeholder: '+1 000 000 0000', helpText: 'Include the US country code +1 before the phone number', }, { countryCode: 'GB', placeholder: '+44 0000 000000', helpText: 'Include the GB country code +44 before the phone number', }, { countryCode: 'CA', placeholder: '+1 000 000 0000', helpText: 'Include the CA country code +1 before the phone number', }, { countryCode: 'AU', placeholder: '+61 000 000 000', helpText: 'Include the AU country code +61 before the phone number', }, { countryCode: 'DE', placeholder: '+49 000 0000000', helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein', }, { countryCode: 'FR', placeholder: '+33 0 00 00 00 00', helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', }, { countryCode: 'ES', placeholder: '+34 000 000 000', helpText: 'Incluya el código de país ES +34 antes del número de teléfono', }, { countryCode: 'NL', placeholder: '+31 0 00000000', helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', }, { countryCode: 'BE', placeholder: '+32 000 00 00 00', helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone', }, { countryCode: 'CH', placeholder: '+41 00 000 00 00', helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein', }, { countryCode: 'AT', placeholder: '+43 000 000 0000', helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein', }, { countryCode: 'IE', placeholder: '+353 00 000 0000', helpText: 'Include the IE country code +353 before the phone number', }, { countryCode: 'IT', placeholder: '+39 000 000 0000', helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono', }, { countryCode: 'NO', placeholder: '+47 000 00 000', helpText: 'Inkluder NO landskode +47 før telefonnummeret', }, { countryCode: 'SE', placeholder: '+46 00 000 00 00', helpText: 'Inkludera SE landskod +46 före telefonnumret', }, { countryCode: 'DK', placeholder: '+45 00 00 00 00', helpText: 'Inkluder DK landekode +45 før telefonnummeret', }, { countryCode: 'FI', placeholder: '+358 00 000 0000', helpText: 'Sisällytä FI-maakoodi +358 ennen puhelinnumeroa', }, { countryCode: 'EE', placeholder: '+372 0000 0000', helpText: 'Lisage EE riigikood +372 telefoninumbri ette', }, { countryCode: 'PL', placeholder: '+48 000 000 000', helpText: 'Podaj numer kierunkowy PL +48 przed numerem telefonu', }, { countryCode: 'SK', placeholder: '+421 000 000 000', helpText: 'Pred telefónne číslo uveďte kód krajiny SK +421', }, { countryCode: 'LV', placeholder: '+371 0000 0000', helpText: 'Iekļaujiet LV valsts kodu +371 pirms tālruņa numura', }, { countryCode: 'LT', placeholder: '+370 0000 0000', helpText: 'Įtraukite LT šalies kodą +370 prieš telefono numerį', }, { countryCode: 'GR', placeholder: '+30 000 000 0000', helpText: 'Συμπεριλάβετε τον κωδικό χώρας GR +30 πριν από τον αριθμό τηλεφώνου', }, { countryCode: 'PT', placeholder: '+351 000 000 000', helpText: 'Inclua o código de país PT +351 antes do número de telefone', }, { countryCode: 'HR', placeholder: '+385 00 000 0000', helpText: 'Uključite HR pozivni broj države +385 prije telefonskog broja', }, { countryCode: 'SI', placeholder: '+386 00 000 000', helpText: 'Vključite SI kodo države +386 pred telefonsko številko', }, { countryCode: 'IS', placeholder: '+354 000 0000', helpText: 'Láttu IS landsnúmer +354 fylgja á undan símanúmerinu', }, { countryCode: 'LU', placeholder: '+352 000 000 000', helpText: 'Incluez le code pays LU +352 avant le numéro de téléphone', }, { countryCode: 'MC', placeholder: '+377 00 00 00 00', helpText: 'Incluez le code pays MC +377 avant le numéro de téléphone', }, { countryCode: 'AD', placeholder: '+376 000 000', helpText: 'Incloeu el codi de país AD +376 abans del número de telèfon', }, { countryCode: 'JE', placeholder: '+44 0000 000000', helpText: 'Include the JE country code +44 before the phone number', }, { countryCode: 'IM', placeholder: '+44 0000 000000', helpText: 'Include the IM country code +44 before the phone number', }, { countryCode: 'GG', placeholder: '+44 0000 000000', helpText: 'Include the GG country code +44 before the phone number', }, { countryCode: 'AL', placeholder: '+355 00 000 0000', helpText: 'Përfshini kodin e vendit AL +355 para numrit të telefonit', }, { countryCode: 'SM', placeholder: '+378 0000 000000', helpText: 'Includere il prefisso internazionale SM +378 prima del numero di telefono', }, { countryCode: 'FO', placeholder: '+298 000000', helpText: 'Inkluder FO landekode +298 før telefonnummeret', }, { countryCode: 'MT', placeholder: '+356 0000 0000', helpText: 'Include the MT country code +356 before the phone number', }, { countryCode: 'LI', placeholder: '+423 000 0000', helpText: 'Fügen Sie vor der Telefonnummer die LI-Ländervorwahl +423 ein', }, { countryCode: 'GI', placeholder: '+350 000 00000', helpText: 'Include the GI country code +350 before the phone number', }, { countryCode: 'MD', placeholder: '+373 00 000 000', helpText: 'Includeți codul de țară MD +373 înaintea numărului de telefon', }, { countryCode: 'HU', placeholder: '+36 00 000 0000', helpText: 'A telefonszám előtt adja meg a HU országkódot +36', }, { countryCode: 'NZ', placeholder: '+64 00 000 0000', helpText: 'Include the NZ country code +64 before the phone number', }, { countryCode: 'ME', placeholder: '+382 00 000 000', helpText: 'Uključite ME pozivni broj države +382 prije telefonskog broja', }, ]; const selectedPlaceholder = mockPlaceholders.find(function(item) { return item && item.countryCode === countryCode; }); return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder; } function updatePlaceholder(countryCode, fieldName) { if (!countryCode || !fieldName) { return; } const phoneInput = document.querySelector('#mce-' + fieldName); if (!phoneInput) { return; } const placeholder = getDefaultPlaceholder(countryCode); if (placeholder) { phoneInput.placeholder = placeholder; } } function updateCountryCodeInstruction(countryCode, fieldName) { updatePlaceholder(countryCode, fieldName); } function getDefaultHelpText(countryCode) { var mockPlaceholders = [ { countryCode: 'US', placeholder: '+1 000 000 0000', helpText: 'Include the US country code +1 before the phone number', }, { countryCode: 'GB', placeholder: '+44 0000 000000', helpText: 'Include the GB country code +44 before the phone number', }, { countryCode: 'CA', placeholder: '+1 000 000 0000', helpText: 'Include the CA country code +1 before the phone number', }, { countryCode: 'AU', placeholder: '+61 000 000 000', helpText: 'Include the AU country code +61 before the phone number', }, { countryCode: 'DE', placeholder: '+49 000 0000000', helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein', }, { countryCode: 'FR', placeholder: '+33 0 00 00 00 00', helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone', }, { countryCode: 'ES', placeholder: '+34 000 000 000', helpText: 'Incluya el código de país ES +34 antes del número de teléfono', }, { countryCode: 'NL', placeholder: '+31 0 00000000', helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer', }, { countryCode: 'BE', placeholder: '+32 000 00 00 00', helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone', }, { countryCode: 'CH', placeholder: '+41 00 000 00 00', helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein', }, { countryCode: 'AT', placeholder: '+43 000 000 0000', helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein', }, { countryCode: 'IE', placeholder: '+353 00 000 0000', helpText: 'Include the IE country code +353 before the phone number', }, { countryCode: 'IT', placeholder: '+39 000 000 0000', helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono', }, { countryCode: 'NO', placeholder: '+47 000 00 000', helpText: 'Inkluder NO landskode +47 før telefonnummeret', }, { countryCode: 'SE', placeholder: '+46 00 000 00 00', helpText: 'Inkludera SE landskod +46 före telefonnumret', }, { countryCode: 'DK', placeholder: '+45 00 00 00 00', helpText: 'Inkluder DK landekode +45 før telefonnummeret', }, { countryCode: 'FI', placeholder: '+358 00 000 0000', helpText: 'Sisällytä FI-maakoodi +358 ennen puhelinnumeroa', }, { countryCode: 'EE', placeholder: '+372 0000 0000', helpText: 'Lisage EE riigikood +372 telefoninumbri ette', }, { countryCode: 'PL', placeholder: '+48 000 000 000', helpText: 'Podaj numer kierunkowy PL +48 przed numerem telefonu', }, { countryCode: 'SK', placeholder: '+421 000 000 000', helpText: 'Pred telefónne číslo uveďte kód krajiny SK +421', }, { countryCode: 'LV', placeholder: '+371 0000 0000', helpText: 'Iekļaujiet LV valsts kodu +371 pirms tālruņa numura', }, { countryCode: 'LT', placeholder: '+370 0000 0000', helpText: 'Įtraukite LT šalies kodą +370 prieš telefono numerį', }, { countryCode: 'GR', placeholder: '+30 000 000 0000', helpText: 'Συμπεριλάβετε τον κωδικό χώρας GR +30 πριν από τον αριθμό τηλεφώνου', }, { countryCode: 'PT', placeholder: '+351 000 000 000', helpText: 'Inclua o código de país PT +351 antes do número de telefone', }, { countryCode: 'HR', placeholder: '+385 00 000 0000', helpText: 'Uključite HR pozivni broj države +385 prije telefonskog broja', }, { countryCode: 'SI', placeholder: '+386 00 000 000', helpText: 'Vključite SI kodo države +386 pred telefonsko številko', }, { countryCode: 'IS', placeholder: '+354 000 0000', helpText: 'Láttu IS landsnúmer +354 fylgja á undan símanúmerinu', }, { countryCode: 'LU', placeholder: '+352 000 000 000', helpText: 'Incluez le code pays LU +352 avant le numéro de téléphone', }, { countryCode: 'MC', placeholder: '+377 00 00 00 00', helpText: 'Incluez le code pays MC +377 avant le numéro de téléphone', }, { countryCode: 'AD', placeholder: '+376 000 000', helpText: 'Incloeu el codi de país AD +376 abans del número de telèfon', }, { countryCode: 'JE', placeholder: '+44 0000 000000', helpText: 'Include the JE country code +44 before the phone number', }, { countryCode: 'IM', placeholder: '+44 0000 000000', helpText: 'Include the IM country code +44 before the phone number', }, { countryCode: 'GG', placeholder: '+44 0000 000000', helpText: 'Include the GG country code +44 before the phone number', }, { countryCode: 'AL', placeholder: '+355 00 000 0000', helpText: 'Përfshini kodin e vendit AL +355 para numrit të telefonit', }, { countryCode: 'SM', placeholder: '+378 0000 000000', helpText: 'Includere il prefisso internazionale SM +378 prima del numero di telefono', }, { countryCode: 'FO', placeholder: '+298 000000', helpText: 'Inkluder FO landekode +298 før telefonnummeret', }, { countryCode: 'MT', placeholder: '+356 0000 0000', helpText: 'Include the MT country code +356 before the phone number', }, { countryCode: 'LI', placeholder: '+423 000 0000', helpText: 'Fügen Sie vor der Telefonnummer die LI-Ländervorwahl +423 ein', }, { countryCode: 'GI', placeholder: '+350 000 00000', helpText: 'Include the GI country code +350 before the phone number', }, { countryCode: 'MD', placeholder: '+373 00 000 000', helpText: 'Includeți codul de țară MD +373 înaintea numărului de telefon', }, { countryCode: 'HU', placeholder: '+36 00 000 0000', helpText: 'A telefonszám előtt adja meg a HU országkódot +36', }, { countryCode: 'NZ', placeholder: '+64 00 000 0000', helpText: 'Include the NZ country code +64 before the phone number', }, { countryCode: 'ME', placeholder: '+382 00 000 000', helpText: 'Uključite ME pozivni broj države +382 prije telefonskog broja', }, ]; if (!countryCode || typeof countryCode !== 'string') { return mockPlaceholders[0].helpText; } const selectedHelpText = mockPlaceholders.find(function(item) { return item && item.countryCode === countryCode; }); return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText; } function setDefaultHelpText(countryCode) { const helpTextSpan = document.querySelector('#help-text'); if (!helpTextSpan) { return; } } function updateHelpTextCountryCode(countryCode, fieldName) { if (!countryCode || !fieldName) { return; } setDefaultHelpText(countryCode); } function initializeSmsPhoneDropdown(fieldName) { if (!fieldName || typeof fieldName !== 'string') { return; } const dropdown = document.querySelector('#country-select-' + fieldName); const displayFlag = document.querySelector('#flag-display-' + fieldName); if (!dropdown || !displayFlag) { return; } const smsPhoneData = window.MC?.smsPhoneData; if (smsPhoneData && smsPhoneData.programs && Array.isArray(smsPhoneData.programs)) { dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs); } const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs); if (defaultProgram && defaultProgram.countryCode) { dropdown.value = defaultProgram.countryCode; const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); if (flagSpan) { flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode); flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag'); } updateSmsLegalText(defaultProgram.countryCode, fieldName); updatePlaceholder(defaultProgram.countryCode, fieldName); updateCountryCodeInstruction(defaultProgram.countryCode, fieldName); } var smsNotRequiredRemoveCountryCodeEnabled = true; var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","enabled":false,"order":null,"field_type":"merge","merge_id":1},"MMERGE2":{"name":"MMERGE2","label":"Second Name","helper_text":"","type":"text","required":false,"audience_field_name":"Second Name","enabled":false,"order":null,"field_type":"merge","merge_id":2},"MMERGE3":{"name":"MMERGE3","label":"Company Name","helper_text":"","type":"text","required":false,"audience_field_name":"Company Name","enabled":false,"order":null,"field_type":"merge","merge_id":3},"MMERGE4":{"name":"MMERGE4","label":"Job Title","helper_text":"","type":"text","required":false,"audience_field_name":"Job Title","enabled":false,"order":null,"field_type":"merge","merge_id":4},"SIGNUP":{"name":"SIGNUP","label":"Signup form location","helper_text":"","type":"text","required":false,"audience_field_name":"Signup form location","enabled":false,"order":null,"field_type":"merge","merge_id":5},"MMERGE6":{"name":"MMERGE6","label":"Image URL","helper_text":"","type":"imageurl","required":false,"audience_field_name":"Image URL","enabled":false,"order":null,"field_type":"merge","merge_id":6}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; }); var isRequired = smsField ? smsField.required : false; var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true; var phoneInput = document.querySelector('#mce-' + fieldName); if (phoneInput && defaultProgram.countryCallingCode && shouldAppendCountryCode) { phoneInput.value = defaultProgram.countryCallingCode; } displayFlag?.addEventListener('click', function(e) { dropdown.focus(); }); dropdown?.addEventListener('change', function() { const selectedCountry = this.value; if (!selectedCountry || typeof selectedCountry !== 'string') { return; } const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName); if (flagSpan) { flagSpan.textContent = getCountryUnicodeFlag(selectedCountry); flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag'); } const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) { return program && program.countryCode === selectedCountry; }); var smsNotRequiredRemoveCountryCodeEnabled = true; var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":0,"field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","enabled":false,"order":null,"field_type":"merge","merge_id":1},"MMERGE2":{"name":"MMERGE2","label":"Second Name","helper_text":"","type":"text","required":false,"audience_field_name":"Second Name","enabled":false,"order":null,"field_type":"merge","merge_id":2},"MMERGE3":{"name":"MMERGE3","label":"Company Name","helper_text":"","type":"text","required":false,"audience_field_name":"Company Name","enabled":false,"order":null,"field_type":"merge","merge_id":3},"MMERGE4":{"name":"MMERGE4","label":"Job Title","helper_text":"","type":"text","required":false,"audience_field_name":"Job Title","enabled":false,"order":null,"field_type":"merge","merge_id":4},"SIGNUP":{"name":"SIGNUP","label":"Signup form location","helper_text":"","type":"text","required":false,"audience_field_name":"Signup form location","enabled":false,"order":null,"field_type":"merge","merge_id":5},"MMERGE6":{"name":"MMERGE6","label":"Image URL","helper_text":"","type":"imageurl","required":false,"audience_field_name":"Image URL","enabled":false,"order":null,"field_type":"merge","merge_id":6}}).find(function(f) { return f.name === fieldName && f.type === 'smsphone'; }); var isRequired = smsField ? smsField.required : false; var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true; var phoneInput = document.querySelector('#mce-' + fieldName); if (phoneInput && selectedProgram.countryCallingCode && shouldAppendCountryCode) { phoneInput.value = selectedProgram.countryCallingCode; } updateSmsLegalText(selectedCountry, fieldName); updatePlaceholder(selectedCountry, fieldName); updateCountryCodeInstruction(selectedCountry, fieldName); }); } document.addEventListener('DOMContentLoaded', function() { const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]'); smsPhoneFields.forEach(function(dropdown) { const fieldName = dropdown?.id.replace('country-select-', ''); initializeSmsPhoneDropdown(fieldName); }); });

- Advertisment -

Most Popular