<!DOCTYPE html>
<html>

	<head>
<script type="text/javascript">
var SCSCacheKeys = {
	product: '_cache_a2fa',
	site: '_cache_1820',
	theme: '_cache_56e6',
	component: '_cache_ee71',
	caas: '_cache_a7fa'
};
</script>
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="initial-scale=1">

		<link href="https://static.ocecdn.oraclecloud.com/cdn/cec/v24.8.1.1/_sitesclouddelivery/renderer/require.js" rel="preload" as="script">
		<link href="https://static.ocecdn.oraclecloud.com/cdn/cec/v24.8.1.1/_sitesclouddelivery/renderer/renderer.js" rel="preload" as="script">

		<!-- uploading 10-13 -->

		<script type="text/javascript">
        var SCS = {
            sitesCloudCDN: 'https://static.ocecdn.oraclecloud.com/cdn/cec/v24.8.1.1',
podPlatform: 'OCI-N',
isAssetAnalyticsEnabled: true,
serviceId: '243AF26234FA475792D81197E697E261',
assetAnalyticsAccount: '162e41604824481ee4cd386f061fca53',
sitePrefix: '/site/Netsuite_Headstart/'
        };

		function verifyDetailPage(data, pageId) {
			let result;

			for (let i=0; i<data.length; i++) {
				if (data[i].id === pageId) {
					result = data[i];
					break;
				}
			}
			
			return (result) ? result.isDetailPage : false;
		}

        SCS.preInitRendering = function() {
            let curPath = window.location.pathname;
            let canPath = curPath;
            let origin = window.origin;
            
			/*let faviconPrefix = SCS.sitePrefix;
			if (origin.indexOf('orasites-') === -1) {
				faviconPrefix = "/site" + faviconPrefix;
			}*/

			let faviconLink = document.createElement('link');
			faviconLink.type = 'image/x-icon';
			faviconLink.rel = 'shortcut icon';
			faviconLink.href = `${SCS.sitePrefix}favicon.ico`;
			document.getElementsByTagName('head')[0].appendChild(faviconLink);


            if (SCS.isPrerenderEnvironment()) {
                canPath = canPath.substring(canPath.lastIndexOf(SCS.sitePrefix) + SCS.sitePrefix.length - 1);
                if (origin.indexOf('orasitestest') >= 0)
                    origin = 'https://www-stage.netsuite.com';
                else if (origin.indexOf('orasites-') >= 0)
                    origin = 'https://www.netsuite.com';
            }

            if (canPath.indexOf('/site/') != 0) {
                if (!/\/portal\/[^.]+.shtml$/.test(curPath))
                    canPath = '/portal' + canPath + '.shtml';
				else if (/\/(index.html)?$/.test(curPath))
                    canPath = '/portal/home.shtml';
                // console.log('CANONICAL:', origin + canPath);
            }
            window.canURL = origin + canPath;

            SCS.orig_getPageId = SCS.getPageId;
            SCS.getPageId = function(pageUrl, locale) {
                // console.log("GOT Page URL", pageUrl);
                const regex = new RegExp(SCS.sitePrefix + "portal/([^.]+).shtml", "gm");
                const subst = SCS.sitePrefix + '$1';
                pageUrl = pageUrl.replace(regex, subst);
                const artRegex = new RegExp(SCS.sitePrefix + "(resource/articles\\d?/)([^/]+)/(.*)");
                pageUrl = pageUrl.replace(artRegex, SCS.sitePrefix + '$1$2%2f$3');
                /*if (pageUrl.match('home$')) {
                    pageUrl = pageUrl.replace(/home$/, 'index.html');
                }*/
                // console.log("Updated Page URL", pageUrl);
                return SCS.orig_getPageId(pageUrl, locale);
            };

            SCS.orig_resolveLinks = SCS.resolveLinks;
            SCS.resolveLinks = function(pageLayout) {
                let valRet = SCS.orig_resolveLinks(pageLayout);
                if (SCS.isPrerenderEnvironment() && /\/portal\//.test(curPath))
                    valRet = valRet.replace(/"\.\.\/\.\.\/_cache_/ig, "\"../_cache_");
                
				return valRet;
            }

			SCS.orig_getPageData = SCS.getPageData;
			SCS.getPageData = async function() {
				let channelData = SCS.data;
				const urlObject = new URL(window.location.href);
				const channelToken = channelData.siteInfo.properties.channelAccessTokens[0].value;
				
				let pathname = urlObject.pathname;
				pathname = pathname.replace(/^\//, "");
				
				let pathnameArray = pathname.split("/");
				let currentPageId = SCS.getPageId(window.location.pathname);
				const isDetailPage = verifyDetailPage(channelData.structurePages, currentPageId);

				// Checking to see if page is a detail page
				if (isDetailPage) {
					let languageArray = ["en", "fr", "de", "es", "ja", "zh", "ru", "it", "ko", "pt"];
					let langCode = (languageArray.includes(pathnameArray[0])) ? pathnameArray[0] : 'en';
					
					// Creating reversed version of pathname array to make it easier to understand value postions in the array
					// Example Newsroom url --> site/Netsuite_Headstart/portal/company/newsroom/how-netsuite-has-hello-products-smiling-for-joy.shtml
					// path array --> ["site","Netsuite_Headstart","portal","company","newsroom","how-netsuite-has-hello-products-smiling-for-joy.shtml"]
					// reversed array to --> ["how-netsuite-has-hello-products-smiling-for-joy.shtml","newsroom","company","portal","Netsuite_Headstart","site"]
					// Example Resource Article
					// path array --> ["site","Netsuite_Headstart","portal","resource","articles","ps","m2b-sample-blog.shtml"]
					// revered array to --> ["m2b-sample-blog.shtml","ps","articles","resource","portal","Netsuite_Headstart","site"]
					let reversePathArray = pathnameArray.reverse();
					let slug = reversePathArray[0];

					// We need to remove the extension .html or .shtml from the slug to pass to the api
					// If the slug has a period in the last portion we have an extension
					if(slug.lastIndexOf('.') != -1) {
						slug = slug.slice(0, slug.lastIndexOf('.'));
					}

					// Checking the reversePathArray for resource details pages
					// The url of the article will always have resource and articles
					if (pathname.indexOf("resource/articles") >= 0) {
						// If this is a resource article we need to prepend the topic to the slug
						slug = reversePathArray[1] + '%2F' + slug;
					}
					
					const api = `${urlObject.origin}/content/published/api/v1.1/items/.by.slug/${slug}/variations/language/${langCode}?fields=all&channelToken=${channelToken}`;
					
					try {
						let response = await fetch(api);
						if (!response.ok) {
							let errPage = this.getErrorPageId();
							
							if (errPage) {
								this.data.isRenderingErrorPage = !0;
								this.set404Condition({
									pageNotFound: !0
								});
								this.data.pageId = errPage;
								return this.fetchPageData(this.data.pageId);
							} else {
								return void this.showErrorPage(404);
							}
						}

					} catch(err) {
						console.error("ERROR FETCHING",api);
						console.error(err);
					}
				}
				return SCS.orig_getPageData();
				
			};
        }
    </script>
		<script src="https://static.ocecdn.oraclecloud.com/cdn/cec/v24.8.1.1/_sitesclouddelivery/renderer/controller.js"></script>
	</head>

	<body id="scsControllerBody"><noscript>This site requires JavaScript to be enabled.</noscript>
		<img id="scsWaitImage" style="display: none; margin-top: 5%; margin-left: auto; margin-right: auto;" src="data:image/png;base64,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"
    />
</body>

</html>