function addLoadEvent(newFunction) {
 var oldOnLoad = window.onload;
 if (typeof oldOnLoad === 'function') {
  window.onload = function() {
   oldOnLoad();
   newFunction();
  };
 } else {
  window.onload = newFunction;
 }
}

function addHomepageRotatingBanner() {
 if (!document.getElementById('homepagerotatingbannerelements')) {
  return false;
 }

 var targetTags = document.getElementsByTagName('head');
 var hrbjs = document.createElement('script');
 hrbjs.setAttribute('type', 'text/javascript');
 hrbjs.setAttribute('src', '/resources/257/homepagerotatingbanner.js');

 hrbjs.onload = function() {
  var bannerElements = [];
  var bannerElement = document.getElementById('homepagerotatingbannerelements');
  var dtElements = bannerElement.getElementsByTagName('dt');
  var ddElements = bannerElement.getElementsByTagName('dd');
  var i = 0;

  for (i = 0; i < dtElements.length; i++) {
   var aElements = dtElements[i].getElementsByTagName('a');
   var mainImgElements = dtElements[i].getElementsByTagName('img');
   var thumbImgElements = ddElements[i].getElementsByTagName('img');

   bannerElements[i] = [mainImgElements[0].getAttribute('src'), thumbImgElements[0].getAttribute('src'), aElements[0].getAttribute('href'), aElements[0].getAttribute('target')];
  }

  bannerElement.style.display = 'none';
  createDia(bannerElements, '750px', '180px', '0 0 0 8px', 'right: 20px; bottom: 43px;', '0');
 };

 hrbjs.onreadystatechange = function() {
  if ((hrbjs.readyState === 'loaded') || (hrbjs.readyState === 'complete')) {
   hrbjs.onload();
  }
 };

 targetTags[0].appendChild(hrbjs);
}

function addHomepageNewsFeed() {
 if (!document.getElementById('homepagenewsfeed')) {
  return false;
 }

 var newsFeedElement = document.getElementById('homepagenewsfeed');
 var aElements = newsFeedElement.getElementsByTagName('a');
 var newsFeedUrl = aElements[0].getAttribute('href');

 if (newsFeedUrl.indexOf('/') === 0) {
  newsFeedUrl = window.location.protocol + '//' + window.location.hostname + newsFeedUrl;
 }

 if (newsFeedUrl.indexOf(window.location.protocol + '//' + window.location.hostname) < 0) {
  newsFeedElement.innerHTML = '<ul><li><a href="' + newsFeedUrl + '">Continue to RSS feed...</a></li></ul>';
  return false;
 }

 if (window.ActiveXObject) {
  xhr = new ActiveXObject('Microsoft.XMLHTTP');
 } else if (window.XMLHttpRequest) {
  xhr = new XMLHttpRequest();
 } else {
  //alert('your browser does not support AJAX');
  return false;
 }

 xhr.open('GET', newsFeedUrl, true);

 xhr.setRequestHeader('Cache-Control', 'no-cache');
 xhr.setRequestHeader('Pragma', 'no-cache');

 xhr.onreadystatechange = function() {
  var i = 0;
  if (xhr.readyState == 4) {
   if (xhr.status == 200) {
    if (xhr.responseText != null) {
     var rssXml = xhr.responseXML;
     var rssItems = rssXml.getElementsByTagName('item');

     var output = '<ul>';
	 var maxItems = rssItems.length > 3 ? 3: rssItems.length;
     for (i = 0; i < maxItems; i++) {
      var rssItemTitles = rssItems[i].getElementsByTagName('title');
      var rssItemLinks = rssItems[i].getElementsByTagName('link');

      output = output + '<li><a href="' + rssItemLinks[0].firstChild.nodeValue + '">' + rssItemTitles[0].firstChild.nodeValue + '</a></li>';
     }
     output = output + '</ul>';

     if (rssItems.length < 1) {
      output = '<ul><li>No items to show.</li></ul>';
     }

     newsFeedElement.innerHTML = output;
    } else {
     //alert('Failed to receive RSS file from the server - file not found.');
     return false;
    }
   } else {
    //alert('Error code ' + xhr.status + ' received: ' + xhr.statusText);
   }
  }
 };

 xhr.send(null);
}

function fixSupportPages() {
 if ((window.location.hostname == 'support.ts.fujitsu.com') || (window.location.pathname.substr(0, 9) === '/support/')) {
  if (document.getElementsByTagName('iframe').length < 1) {
   return false;
  }

  var resizeIFrameEvent = function() {
   var i = 0;
   var iFrames = document.getElementsByTagName('iframe');
   for (i = 0; i < iFrames.length; i++) {
    if (document.documentElement.clientHeight == 0) {
     iFrames[i].height = document.body.clientHeight - 215;
    } else {
     iFrames[i].height = document.documentElement.clientHeight - 215;
    }
   }
  };

  resizeIFrameEvent();
  window.onresize = resizeIFrameEvent;

  var headElements = document.getElementsByTagName('head');
  var supportStyleElement = document.createElement('style');
  var supportStyles = 'div.header { width: 780px; } ' +
                      'div#location { width:778px; } ' +
                      'div.footer { width: 780px; }';
  supportStyleElement.setAttribute('type', 'text/css');
  if (supportStyleElement.styleSheet) {
   // IE workaround
   supportStyleElement.styleSheet.cssText = supportStyles;
  } else {
   // Correct DOM manipulation for everyone else
   var supportStyleElementText = document.createTextNode(supportStyles);
   supportStyleElement.appendChild(supportStyleElementText);
  }
  headElements[0].appendChild(supportStyleElement);
 }
}

function getCookie(name) 
{
	var start = document.cookie.indexOf(name + '=');
	var len = start + name.length + 1;
	
	if((!start ) && (name != document.cookie.substring(0, name.length))) {return null;}
	if(start == -1) {return null;}
	
	var end = document.cookie.indexOf(';', len);
	if(end == -1) {end = document.cookie.length;}
	
	return unescape(document.cookie.substring(len, end));
}

function setCookie(name, value, expires, path, domain, secure) 
{
	var today = new Date();
	today.setTime(today.getTime());
	
	if(expires) 
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	
	var expires_date = new Date(today.getTime() + (expires));
	
	document.cookie = name + '=' + escape(value) + 
	((expires) ? ';expires=' + expires_date.toGMTString() : '') + 
	';path=/' + 
	((domain) ? ';domain=' + domain : '') +
	(( secure) ? ';secure' : '');
}

// Global variable used for MDA tooltips
var tooltip = function(){
 var id = 'mdaGenuineTooltip';
 var top = -15;
 var left = 3;
 var maxw = 400;
 var speed = 10;
 var timer = 20;
 var endalpha = 95;
 var alpha = 0;
 var tt,t,c,b,h;
 var ie = document.all ? true : false;
 return{
  show:function(v,w){
   if(tt == null){
    tt = document.createElement('div');
    tt.setAttribute('id',id);
    document.body.appendChild(tt);
    tt.style.opacity = 0;
    tt.style.filter = 'alpha(opacity=0)';
    document.onmousemove = this.pos;
   }
   tt.style.display = 'block';
   tt.innerHTML = v;
   tt.style.width = w ? w + 'px' : 'auto';
   if(!w && ie){
    t.style.display = 'none';
    b.style.display = 'none';
    tt.style.width = tt.offsetWidth;
    t.style.display = 'block';
    b.style.display = 'block';
   }
   if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px';}
   if(top >= 0){
    h = parseInt(tt.offsetHeight) + top;
   }else{
    h = top;
   }
   clearInterval(tt.timer);
   tt.timer = setInterval(function(){tooltip.fade(1);},timer);
  },
  pos:function(e){
   var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
   var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
   tt.style.top = (u - h) + 'px';
   tt.style.left = (l + left) + 'px';
  },
  fade:function(d){
   var a = alpha;
   if((a != endalpha && d == 1) || (a != 0 && d == -1)){
    var i = speed;
   if(endalpha - a < speed && d == 1){
    i = endalpha - a;
   }else if(alpha < speed && d == -1){
     i = a;
   }
   alpha = a + (i * d);
   tt.style.opacity = alpha * 0.01;
   tt.style.filter = 'alpha(opacity=' + alpha + ')';
  }else{
    clearInterval(tt.timer);
     if(d == -1){tt.style.display = 'none';}
  }
 },
 hide:function(){
  clearInterval(tt.timer);
   tt.timer = setInterval(function(){tooltip.fade(-1);},timer);
  }
 };
}();

function ShowToolTip() {
 var genuineTooltipElement = document.getElementById('genuineTooltip');

 if (genuineTooltipElement) {
  var genuineTooltipText = genuineTooltipElement.firstChild.nodeValue;
  tooltip.show(genuineTooltipText, 350);
 }
}

function HideToolTip() {
 tooltip.hide();
}

addLoadEvent(addHomepageRotatingBanner);
addLoadEvent(addHomepageNewsFeed);
addLoadEvent(fixSupportPages);

