// ***********************************************************
// Fujitsu Technology Solutions global web statistics include
// Version 1.1, 02/10/2009, FTS IS S&M AD
// ***********************************************************

// Define global Google Analytics variables
var gaPageTracker;
var gaPageTrackerForMainInternetDomain;

var addLoadEventFunction;

// Check if the 'addLoadEvent' function is already defined
if (typeof addLoadEvent === 'function') {
 addLoadEventFunction = addLoadEvent;
} else {
 // Define the 'addLoadEvent' function, which appends the function
 //  'newFunction' to the 'onload' event of the document
 addLoadEventFunction = function addLoadEvent(newFunction) {
  var oldOnLoad = window.onload;
  if (typeof oldOnLoad === 'function') {
   window.onload = function() {
    oldOnLoad();
    newFunction();
   };
  } else {
   window.onload = newFunction;
  }
 };
}

// Chooses a Google Analytics ID based on the current hostname,
//  or returns false in case of an unsupported hostname
function getGaId() {
 var gaId = false;

 switch (document.location.hostname) {
  case 'ts.fujitsu.com':
  case 'video.ts.fujitsu.com':
  case 'support.ts.fujitsu.com':
   gaId = 'UA-3153991-1'; break;
  case 'de.fujitsu.com':
  case 'de.ts.fujitsu.com':
   gaId = 'UA-3153991-2'; break;
  case 'uk.ts.fujitsu.com':
   gaId = 'UA-3153991-3'; break;
  case 'at.fujitsu.com':
  case 'at.ts.fujitsu.com':
   gaId = 'UA-3153991-4'; break;
  case 'be.fujitsu.com':
  case 'be.ts.fujitsu.com':
   gaId = 'UA-3153991-5'; break;
  case 'bg.ts.fujitsu.com':
   gaId = 'UA-3153991-6'; break;
  case 'ch.fujitsu.com':
  case 'ch.ts.fujitsu.com':
   gaId = 'UA-3153991-7'; break;
  case 'rs.ts.fujitsu.com':
   gaId = 'UA-3153991-8'; break;
  case 'za.ts.fujitsu.com':
   gaId = 'UA-3153991-9'; break;
  case 'me.ts.fujitsu.com':
   gaId = 'UA-3153991-10'; break;
  case 'nwa.ts.fujitsu.com':
   gaId = 'UA-3153991-11'; break;
  case 'pl.fujitsu.com':
  case 'pl.ts.fujitsu.com':
   gaId = 'UA-3153991-12'; break;
  case 'tr.ts.fujitsu.com':
   gaId = 'UA-3153991-13'; break;
  case 'dk.ts.fujitsu.com':
   gaId = 'UA-3153991-14'; break;
  case 'ee.ts.fujitsu.com':
   gaId = 'UA-3153991-15'; break;
  case 'es.ts.fujitsu.com':
   gaId = 'UA-3153991-16'; break;
  case 'fi.ts.fujitsu.com':
   gaId = 'UA-3153991-17'; break;
  case 'fr.fujitsu.com':
  case 'fr.ts.fujitsu.com':
   gaId = 'UA-3153991-18'; break;
  case 'gr.ts.fujitsu.com':
   gaId = 'UA-3153991-19'; break;
  case 'hr.ts.fujitsu.com':
   gaId = 'UA-3153991-20'; break;
  case 'hu.ts.fujitsu.com':
   gaId = 'UA-3153991-21'; break;
  case 'ie.ts.fujitsu.com':
   gaId = 'UA-3153991-22'; break;
  case 'it.fujitsu.com':
  case 'it.ts.fujitsu.com':
   gaId = 'UA-3153991-23'; break;
  case 'lt.ts.fujitsu.com':
   gaId = 'UA-3153991-24'; break;
  case 'lu.fujitsu.com':
  case 'lu.ts.fujitsu.com':
   gaId = 'UA-3153991-25'; break;
  case 'lv.ts.fujitsu.com':
   gaId = 'UA-3153991-26'; break;
  case 'nl.fujitsu.com':
  case 'nl.ts.fujitsu.com':
   gaId = 'UA-3153991-27'; break;
  case 'no.ts.fujitsu.com':
   gaId = 'UA-3153991-28'; break;
  case 'pt.ts.fujitsu.com':
   gaId = 'UA-3153991-29'; break;
  case 'ro.ts.fujitsu.com':
   gaId = 'UA-3153991-30'; break;
  case 'ru.ts.fujitsu.com':
   gaId = 'UA-3153991-31'; break;
  case 'se.fujitsu.com':
  case 'se.ts.fujitsu.com':
   gaId = 'UA-3153991-32'; break;
  case 'si.ts.fujitsu.com':
   gaId = 'UA-3153991-33'; break;
  case 'cz.ts.fujitsu.com':
   gaId = 'UA-3153991-40'; break;
  case 'sk.ts.fujitsu.com':
   gaId = 'UA-3153991-41'; break;
  case 'handelsunterstuetzung.de.ts.fujitsu.com':
   gaId = 'UA-3153991-42'; break;
  case 'training-mediaserver.ts.fujitsu.com':
   gaId = 'UA-3153991-43'; break;
  case 'shop.de.ts.fujitsu.com':
   gaId = 'UA-8561301-1'; break;
  case 'shop.at.ts.fujitsu.com':
   gaId = 'UA-8561301-2'; break;
  case 'shop.ch.ts.fujitsu.com':
   gaId = 'UA-8561301-3'; break;
  case 'shop.fujitsu.com':
   gaId = 'UA-8561301-5'; break;
  case 'vip-customer.ts.fujitsu.com':
   gaId = 'UA-8561301-6'; break;
  case 'shop.fr.ts.fujitsu.com':
   gaId = 'UA-8561301-7'; break;
  case 'shop.nl.ts.fujitsu.com':
   gaId = 'UA-8561301-8'; break;
  case 'partners.ts.fujitsu.com':
   gaId = 'UA-9697913-1'; break;
  case 'partners-test.ts.fujitsu.com':
   gaId = 'UA-9697913-2'; break;
  case 'www.progreenit-mission.de':
   gaId = 'UA-9854060-2'; break;
  case 'fujitsu-demo.made4you.info':
   gaId = 'UA-10411774-1'; break;
  case 'staging.fujitsu-demo.made4you.info':
   gaId = 'UA-10411774-2'; break;
  default:
   break;
 }

 return gaId;
}

// Determine whether the current hostname is classed as a main Internet domain
// Note: only fujitsu.com domains are supported for cross-domain tracking
function isMainInternetDomain() {
 var result = false;

 switch (document.location.hostname) {
  case 'ts.fujitsu.com':
  case 'at.fujitsu.com':
  case 'at.ts.fujitsu.com':
  case 'be.fujitsu.com':
  case 'be.ts.fujitsu.com':
  case 'bg.ts.fujitsu.com':
  case 'ch.fujitsu.com':
  case 'ch.ts.fujitsu.com':
  case 'cz.ts.fujitsu.com':
  case 'de.fujitsu.com':
  case 'de.ts.fujitsu.com':
  case 'dk.ts.fujitsu.com':
  case 'ee.ts.fujitsu.com':
  case 'es.ts.fujitsu.com':
  case 'fi.ts.fujitsu.com':
  case 'fr.fujitsu.com':
  case 'fr.ts.fujitsu.com':
  case 'gr.ts.fujitsu.com':
  case 'hr.ts.fujitsu.com':
  case 'hu.ts.fujitsu.com':
  case 'ie.ts.fujitsu.com':
  case 'it.fujitsu.com':
  case 'it.ts.fujitsu.com':
  case 'lt.ts.fujitsu.com':
  case 'lu.fujitsu.com':
  case 'lu.ts.fujitsu.com':
  case 'lv.ts.fujitsu.com':
  case 'nl.fujitsu.com':
  case 'nl.ts.fujitsu.com':
  case 'no.ts.fujitsu.com':
  case 'me.ts.fujitsu.com':
  case 'nwa.ts.fujitsu.com':
  case 'pl.fujitsu.com':
  case 'pl.ts.fujitsu.com':
  case 'pt.ts.fujitsu.com':
  case 'ro.ts.fujitsu.com':
  case 'rs.ts.fujitsu.com':
  case 'ru.ts.fujitsu.com':
  case 'se.fujitsu.com':
  case 'se.ts.fujitsu.com':
  case 'si.ts.fujitsu.com':
  case 'sk.ts.fujitsu.com':
  case 'tr.ts.fujitsu.com':
  case 'uk.ts.fujitsu.com':
  case 'za.ts.fujitsu.com':
   result = true;
   break;
  default:
   break;
 }

 return result;
}

// Initialises the Analytics tracking
function gaInit() {
 var gaId = getGaId();
 if (!gaId) {
  // The current hostname is unsupported, so exit
  return false;
 }

 // Check if the Analytics main object is available
 if (typeof _gat === 'undefined') {
  // The Analytics main object is not available, so exit
  return false;
 }

 gaPageTracker = _gat._getTracker(gaId);
 // Check if the primary Analytics object has already been used for tracking
 if (!(gaPageTracker.hasFired)) {
  gaPageTracker._trackPageview();
  gaPageTracker.hasFired = true;
 }
 // Check if it is appropriate to use the secondary Analytics object
 if (isMainInternetDomain()) {
  gaPageTrackerForMainInternetDomain = _gat._getTracker('UA-4166334-1');
  // Check if the secondary Analytics object has already been used for tracking
  if (!(gaPageTrackerForMainInternetDomain.hasFired)) {
   gaPageTrackerForMainInternetDomain._setDomainName('.fujitsu.com');
   gaPageTrackerForMainInternetDomain._trackPageview();
   gaPageTrackerForMainInternetDomain.hasFired = true;
  }
 }
}

// Adds the Google Analytics code to the document, and sets the document up to be tracked
function addGaStatistics() {
 var targetTags = document.getElementsByTagName('head');
 if (targetTags.length < 1) {
  // The 'head' emement of the document could not be found, so exit
  return false;
 }
 
 // Create a new 'script' element to reference the external Analytics script file
 var gaJs = document.createElement('script');
 gaJs.setAttribute('type', 'text/javascript');
 if (document.location.protocol === 'https:') {
  gaJs.setAttribute('src', 'https://ssl.google-analytics.com/ga.js');
 } else {
  gaJs.setAttribute('src', 'http://www.google-analytics.com/ga.js');
 }
 
 // Define that tracking should take place once the script file has fully loaded
 gaJs.onload = gaInit;

 // IE workaround: Force the script 'onload' event to fire
 gaJs.onreadystatechange = function() {
  // Check if the Analytics script file has loaded
  if ((gaJs.readyState === 'loaded') || (gaJs.readyState === 'complete')) {
   gaInit();
  }
 };

 // Add the external Analytics script file reference to the document 'head' element
 targetTags[0].appendChild(gaJs);
}

// Wrapper function for the Analytics '_trackPageview' function
function gaTrackPageView(pageUrl) {
 // Check if the primary Analytics object is available
 if (typeof gaPageTracker === 'undefined') {
  // The primary Analytics object is not available, so exit
  return true;
 }

 // Check if the 'pageUrl' parameter has been specified
 if (typeof pageUrl === 'undefined') {
  // The 'pageUrl' parameter has not been specified, so track the page view with the current URL
  gaPageTracker._trackPageview();
  // Check if the secondary Analytics object is available
  if (typeof gaPageTrackerForMainInternetDomain != 'undefined') {
   gaPageTrackerForMainInternetDomain._trackPageview();
  }
 } else {
  // The 'pageUrl' parameter has been specified, so track the page view with the specified URL
  gaPageTracker._trackPageview(pageUrl);
  // Check if the secondary Analytics object is available
  if (typeof gaPageTrackerForMainInternetDomain != 'undefined') {
   gaPageTrackerForMainInternetDomain._trackPageview(pageUrl);
  }
 }

 // This function is normally called via an 'onclick' event, so return
 //  true to allow the link to function
 return true;
}

// Wrapper function for the Analytics '_trackEvent' function
function gaTrackEvent(category, action, label, value) {
 // Check if the primary Analytics object is available
 if (typeof gaPageTracker === 'undefined') {
  // The primary Analytics object is not available, so exit
  return true;
 }

 // Track the event using the parameters specified and the main Analytics object
 gaPageTracker._trackEvent(category, action, label, value);
 // Check if the secondary Analytics object is available
 if (typeof gaPageTrackerForMainInternetDomain != 'undefined') {
  // Track the event using the parameters specified and the secondary Analytics object
  gaPageTrackerForMainInternetDomain._trackEvent(category, action, label, value);
 }

 // This function is normally called via an 'onclick' event, so return
 //  true to allow the link to function
 return true;
}

// Adds the Enecto code to the document, and sets the document up to be tracked
function addEnectoStatistics() {
 var enectoImage = document.createElement('img');
 var enectoImageSrc = window.location.protocol + '//trk.enecto.com/track?cust_id=8a8484e62214978c0122166cfa6a05ac' + '&purl=' + escape('http://' + window.location.hostname + window.location.pathname) + '&ref=' + escape(document.referrer) + '&tm=' + new Date().getTime();

 enectoImage.setAttribute('src', enectoImageSrc);
 enectoImage.setAttribute('height', '1');
 enectoImage.setAttribute('width', '1');
 enectoImage.setAttribute('alt', '');

 document.body.appendChild(enectoImage);
}

// Add the Analytics statistics function to the load event of the page
addLoadEventFunction(addGaStatistics);
// Add the Enecto statistics function to the load event of the page
addLoadEventFunction(addEnectoStatistics);