/* FILE COMBINES PBAR_HM AND TICKER_FB 
		1) PBAR_HM
		2) TICKER_FB
*/

/*	1) PBAR_HM */

/**
 Title:pbar_hm.js
 * Description:js file to generate pbar on freescale.com homepage
 * Copyright:    Copyright (c) 2009
 * Company: LTI
 * @version 1.0
**/
/*Method to load menu */
<!--//--><![CDATA[//><!--
sfPBarHover = function() {
	var sfEls = document.getElementById("pbarNav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfpbarhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfpbarhover\\b"), "");
		}
	}
}
function getCookieLoginStatus() {
		var name='SessID';
		var start = document.cookie.indexOf(name+"=");
		var temp = document.cookie.substring(start);
		var indext = temp.indexOf("SessID=");
		if (indext == -1) {
			return false;
		}
		var val=temp.substring(indext+1);
		if (val.length > 0) {
			return true;
		}
		return false;
	}
if (window.attachEvent) window.attachEvent("onload",sfPBarHover);
//--><!]]>
function getCookie(name) { 
    var bikky = document.cookie;
    var index = bikky.indexOf(name + "=");
    if (index == -1) return null;
    index = bikky.indexOf("=", index) + 1; // first character
    var endstr = bikky.indexOf(";", index);
    if (endstr == -1) endstr = bikky.length; // last character
    return unescape(bikky.substring(index, endstr));
}
function generatePBar()
{
	var name =  getCookie('remember_me');
	
	if (name != null)
	{
        var decryptedName = decrypt(name);
        getBarForIdentifiedUser(decryptedName);
    } 
    else{
			getBarForAnonymousUser();
	}
}
function getBarForAnonymousUser()
{	
	var loginLink = null;
	if ( !getCookieLoginStatus() ) {
		loginLink = '<a class="login" href="https://www.freescale.com/security/public/login.LoginActionController.sp"  onclick="call_pbar_metrics(\'pb_login\');">Login</a>';
	} else {
		loginLink = '<a  class="login" href="https://www.freescale.com/security/public/login.LogoutController.sp" onclick="call_pbar_metrics(\'pb_logout\');">Logout</a>';
	}
	document.write('<div id="pbar">\n');
	document.write('<ul id="pbarNav">\n');
	document.write('<li class="first">');
	document.write('<a class=\"wc\">Welcome Guest</a>');
	document.write('</li>\n');
	document.write('<li><a class=\"login\" href="https://www.freescale.com/webapp/crcl.ccr_register.framework"  onclick="call_pbar_metrics(\'pb_register\');">Register</a>');
	if(loginLink != null)
	{
		document.write('<a href="#" class="nostyle">&nbsp;or&nbsp;</a>');
		document.write(loginLink);
	}
	document.write('</li>\n');
	document.write('<li>');
	document.write('<a href="#" onclick="displayBlockForHistory();call_pbar_metrics(\'pb_browse_history\');" >');
	document.write(String("Browse History"));
	document.write('</a></li>\n');
	document.write('<li class="last"><a href="#" onclick="displayWhyReg(\'WHYREGISTER\');call_pbar_metrics(\'pb_whyregister\');">Why Should I Register?</a></li>\n');
	document.write('</ul>\n');
	document.write('</div>');
}

function getBarForIdentifiedUser(userName)
{
	var loginLink = null;
	if ( !getCookieLoginStatus() ) {
		loginLink = '<a class="login" href="https://www.freescale.com/security/public/login.LoginActionController.sp"  onclick="call_pbar_metrics(\'pb_login\');">Login</a>';
	} else {
		loginLink = '<a class="login" href="https://www.freescale.com/security/public/login.LogoutController.sp" onclick="call_pbar_metrics(\'pb_logout\');">Logout</a>';
	}
	document.write("<div id=\"pbar\">\n");
	document.write("<ul id=\"pbarNav\">\n");
	document.write("<li class=\"first\">");
	document.write("<a class=\"firstcolor\" href=\"#\">");
	document.write(userName+"'s Freescale");
	document.write("&nbsp;<img src=\"/shared/images/pbar_arrow1.gif\"/></a>");
	document.write("<ul class=\"persMenu\">\n");
	document.write("<li><a href=\"https://www.freescale.com/webapp/crcl.ccr_interest_in.framework?regFlag=fromProvideUpdateInterests&#step4\"  onclick=\"call_pbar_metrics(\'pb_my_profile\');\">My Profile</a></li>\n");
	document.write("<li><a href=\"https://www.freescale.com/ruhp/myFreescale.html\" onclick=\"call_pbar_metrics(\'pb_my_freescale\');\">My Freescale</a></li>\n");
	document.write("<li><a href=\"#\"  onclick=\"displayBlockForDownload();call_pbar_metrics('pb_recent_downloads');\">Recent Downloads</a></li>\n");
	document.write("<li><a href=\"#\" onclick=\"displayBlockForTraining();call_pbar_metrics('pb_my_training');\">My Training</a></li>\n");
	document.write("</ul>\n");
	document.write("</li>\n");
	if(loginLink != null)
	{	
		document.write("<li>\n");
		document.write(loginLink);
		document.write("</li>\n");
	}
	document.write("<li class=\"last\">");
	document.write("<a href=\"#\" onclick=\"displayBlockForHistory();call_pbar_metrics(\'pb_browse_history\');\">Browse History</a></li>\n");
	document.write("</ul>\n");
	document.write("</div>");
}

function decrypt(source) 
{
	 var letterForOutput = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ @#$^&*()-_=+.:";
	 var letterToInput = "zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA +=_-)(*&^$#@:.";
   	 var charofInputString; 
  	 var posOfSrcInInput; 
  	 var charFrmOutPut; 
  	 var output = ""; 
  	 var sourceLength = source.length; 
  	 var start = 0; 
  	 var end = 1; 
  	 while (start != sourceLength) { 
	    charofInputString = source.substring(start,end);
	    posOfSrcInInput = letterToInput.indexOf(charofInputString);
	    if(posOfSrcInInput == -1)
        {
         charFrmOutPut = charofInputString;
        }
        else
        {
            charFrmOutPut = letterForOutput.charAt(posOfSrcInInput);
	    }
        start++;
	    end++;
	    output += charFrmOutPut;
	 }
    return output;
}
function displayWhyReg(code){ 
		var url = "/webapp/shared/components/inc_collateral.jsp?code="+code;
		var window_title = "Why Should I Register?"
		var width = "700";
		var height = "350";
		ajaxwin=dhtmlwindow.open('ajaxbox',url,window_title, 'width='+width+'px,height='+height+'px,left=100px,top=100px,resize=0,scrolling=1');
		return ajaxwin ;
}
function call_pbar_metrics(action)
{
if (window.personalization_bar_metrics && action!= 'undefined' ){
		personalization_bar_metrics(action);
	}
}

/*	2) TICKER_FB */

function addEventToObject(obj,evt,func) {
	var oldhandler = obj[evt];
	obj[evt] = (typeof obj[evt] != 'function') ? func : function(ev){oldhandler(ev);func(ev);};
}
function ajaxRequest(url,func,obj) {
	if (window.XMLHttpRequest) {var req = new XMLHttpRequest();}
	else if (window.ActiveXObject) {try {req = new ActiveXObject("Msxml2.XMLHTTP");}catch(e) {req = new ActiveXObject("Microsoft.XMLHTTP");}}
	if (func) {req.onreadystatechange = function() {func(req,obj);}}
	req.open('GET',url,true);
	req.setRequestHeader('X-Requested-With','XMLHttpRequest');
	req.setRequestHeader('If-Modified-Since','Wed, 15 Nov 1995 00:00:00 GMT');
	if (req.overrideMimeType) {req.overrideMimeType("text/xml");}
	req.send(null);
	return false;
}

var rssFetchAndDisplay = {
	aFeeds: [[[''],[''],['']]],
	iCurrentFeedsItem: 0,
	aNews: new Array(),
	iCurrentNewsItem: 0,
	tTM: null,
	sState: 'show',
	iCycleCount: 2000,
	iFadeInCount: 110,
	iFadeOutCount: 110,
	Init: function()
		{
		var r = rssFetchAndDisplay;
		// NOTE: Link must be a http: link and NOT local
		//r.SetXml('http://web3.b1xnet.com/freescale/feed.xml');
		r.SetXml('http://www.freescale.com/files/rss/fb/FB_FSL_PRESSRELEASES.xml');
		},
	SetXml: function(sUrl)
		{
		var r = rssFetchAndDisplay;
		ajaxRequest(sUrl,r.XmlFetchResponse);
		},
	XmlFetchResponse: function(req)
		{
		var r = rssFetchAndDisplay;
		if (req.readyState == 4) 
			{
			if (req.status == 200)
				{
				if (r.tTM){clearTimeout(r.tTM);}
				r.Create(req);
				} 
			else
				{
				 alert("There was a problem retrieving the XML data:\n\r" + req.statusText);
				}
			}
		},
	Create: function(req)
		{
		var r = rssFetchAndDisplay;
		r.iCurrentNewsItem = 0,
		r.ParseXMLToArray(req);
		var oTickerCont = document.getElementById('ticker');
		oTickerCont.innerHTML = "\n\r"+'<table border="0" cellpadding="0" cellspacing="0" class="'+r.sState+'">'+"\n\r"+'<tr><td id="tic-title" width="8"><span>'+r.aFeeds[r.iCurrentFeedsItem][2]+'</span></td><td id="tic-item"><a href="'+r.aNews[r.iCurrentNewsItem].url+'">'+r.aNews[r.iCurrentNewsItem].title+'</a></td></tr>'+"\n\r"+'</table>'+"\n\r";
		
		var aHrefs = document.getElementById('tic-item').getElementsByTagName('a');
		addEventToObject(aHrefs[0],'onmouseover',r.PauseTicker);
		addEventToObject(aHrefs[0],'onmouseout',r.RestartTicker);
		r.CycleTicker();
		},
	ParseXMLToArray: function(req)
		{
		var r = rssFetchAndDisplay;
		if (req.responseXML.documentElement)
			{
			aItems = req.responseXML.documentElement.getElementsByTagName('item');
			}
		else
			{
			dom = new ActiveXObject("MSXML.DOMDocument");
			dom.loadXML(req.responseText);
			aItems = dom.documentElement.getElementsByTagName('item');
			}	
		for (var i=0;i<aItems.length;i++)
			{
			r.aNews[i] = new Array();
				if(aItems[i].getElementsByTagName('title')[0].firstChild.nodeValue.length > 105)
				{
					/*if longer than 100 split string to array*/
					var fullString = aItems[i].getElementsByTagName('title')[0].firstChild.nodeValue.substring(0,105);
					var fullString_a = new Array();
					fullString_a = fullString.split(' ');
										
					/*pop the last word off the array*/
					fullString_a.pop();
					
					/*re-assemble string*/
					fullString = fullString_a.join(" ");
					
					/*add a ... to the end*/
					r.aNews[i].title = fullString+"...";
					/*r.aNews[i].title = aItems[i].getElementsByTagName('title')[0].firstChild.nodeValue.substring(0,135)+'...';*/
				} else {
					r.aNews[i].title = aItems[i].getElementsByTagName('title')[0].firstChild.nodeValue;
				}
			r.aNews[i].url = aItems[i].getElementsByTagName('link')[0].firstChild.nodeValue;
			}
		},
	PauseTicker: function()
		{
		var r = rssFetchAndDisplay;
		if (r.tTM){clearTimeout(r.tTM)};
		var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
		oFadeItem.style.KHTMLOpacity = 0.999; // Safari<1.2, Konqueror
		oFadeItem.style.MozOpacity = 0.999; // Older Mozilla and Firefox
		oFadeItem.style.opacity = 0.999; // Safari 1.2, newer Firefox and Mozilla, CSS3
		//obj.style.zoom = 1; // bizarre ie fix
		//obj.style.filter = 'alpha(opacity:'+obj.fadeCount+')'; // IE/Win
		r.iFadeOutCount = 100;
		},
	RestartTicker: function()
		{
		var r = rssFetchAndDisplay;
		r.iCycleCount = 2000;
		r.CycleTicker();
		},
	CycleTicker: function()
		{
		var r = rssFetchAndDisplay;		
      if (r.tTM){clearTimeout(r.tTM);}
		if (r.iCycleCount < 0)
			{
			r.iCycleCount = 2000;
			r.FadeOut();
			}
		else
			{
			r.iCycleCount -= 100;
			//var iDelay = (r.iCurrentNewsItem == 0) ? 0 : 100;
			r.tTM = setTimeout(function(){r.CycleTicker()},100); 		  
			}
		},
	FadeOut: function()
		{
		var r = rssFetchAndDisplay;
		if (r.tTM){clearTimeout(r.tTM)};                         
		if (r.iFadeOutCount < 0)
			{
			r.iCurrentNewsItem = (r.iCurrentNewsItem < r.aNews.length-1) ? r.iCurrentNewsItem + 1 : 0;
			var oActiveItem = document.getElementById('tic-item');
			oActiveItem.innerHTML = '<a href="'+r.aNews[r.iCurrentNewsItem].url+'">'+r.aNews[r.iCurrentNewsItem].title+'</a>';
			var aHrefs = document.getElementById('tic-item').getElementsByTagName('a');
			addEventToObject(aHrefs[0],'onmouseover',r.PauseTicker);
			addEventToObject(aHrefs[0],'onmouseout',r.RestartTicker);
			r.iFadeOutCount = 110;
			r.CycleTicker();
			}
		else
			{
			r.iFadeOutCount -= 10;
			if (r.iFadeOutCount <= 100)
				{
				var oFadeItem = document.getElementById('tic-item').getElementsByTagName('a')[0];
				var opac = ((r.iFadeOutCount/100) > 0.999) ? 0.999 : (r.iFadeOutCount/100);
				oFadeItem.style.KHTMLOpacity = opac; // Safari<1.2, Konqueror
				oFadeItem.style.MozOpacity = opac; // Older Mozilla and Firefox
				oFadeItem.style.opacity = opac; // Safari 1.2, newer Firefox and Mozilla, CSS3
				//obj.style.zoom = 1; // bizarre ie fix
				//obj.style.filter = 'alpha(opacity:'+obj.fadeCount+')'; // IE/Win
				}
			r.tTM = setTimeout(function(){r.FadeOut()},50);   
			}
		}
	}
	
addEventToObject(window,'onload',rssFetchAndDisplay.Init);