//"see more from citi" flyout
var flyout = 
{
	triggerElementContainer : 'more',
	triggerElement : 'h2',
	triggerCoordinates : [0,0],
	flyoutContainer : "flyout-main-container",
	flyoutInnerWrap : "flyout-inner-wrap",
	flyoutGradientWrap : "flyout-gradient-wrap",
	flyoutHeaderDiv : "flyout-header",
	flyoutHeaderH2 : "flyout-h2",
	flyoutHeaderText : "See more from Citi",
	flyoutHeaderImg :"flyout-head-img",
	flyoutHeaderImgSrc : "../domain/cm/img/home/morefrom_close.gif",
	flyoutHeaderImgWidth : 115,
	flyoutHeaderTagLineText : "Link to corporate and small business services, Citigroup careers, etc...",
	flyoutHeaderTagLine : "flyout-head-tagline",
	flyoutListWrap : "flyout-list-wrap",
	theLists : "flyout-menu-holder",
  	attachTrigger : function()
	{
		if(document.getElementById(this.triggerElementContainer)){
			trigger = document.getElementById(this.triggerElementContainer).getElementsByTagName(this.triggerElement)[0];
			trigger.id = "more-trigger";
			trigger.style.cursor = "pointer";
			this.triggerCoordinates = this.cumulativeOffset(trigger)
			this.constructFlyout();
		}
	},
	displayFlyout : function()
	{
		if(document.getElementById(this.flyoutContainer)) {
			var flyoutContainer = document.getElementById(this.flyoutContainer);
			if(flyoutContainer.style.display == "none") {
				flyoutContainer.style.display = "block"
	  		} else {
	  			flyoutContainer.style.display = "none";
	  		}
		}
	},
	constructFlyout : function()
	{
	//preload images
	var imgFlyoutBg = new Image();
	imgFlyoutBg.src = "../domain/cm/img/home/splittest/morefrom-bg.gif";
	
	//build flyout	
	var mainContainer = document.createElement("div");
		mainContainer.style.position = "absolute";
		mainContainer.id = this.flyoutContainer;
		mainContainer.style.top =  parseInt(this.triggerCoordinates[1] - 10) + "px";
		mainContainer.style.left = "10px" ;//parseInt(this.triggerCoordinates[0] - 10) + "px";
		mainContainer.style.display = "none";
	var innerWrap = document.createElement("div");
		innerWrap.id = this.flyoutInnerWrap;
		mainContainer.appendChild(innerWrap);
	var gradientWrap = document.createElement("div");
		gradientWrap.id = this.flyoutGradientWrap;
		innerWrap.appendChild(gradientWrap);
	var flyoutHeaderBlock = document.createElement("div");
		flyoutHeaderBlock.id = this.flyoutHeaderDiv;
		gradientWrap.appendChild(flyoutHeaderBlock);
	var flyoutHeaderH2 = document.createElement("h2");
		flyoutHeaderH2.id = this.flyoutHeaderH2;
		flyoutHeaderH2.onclick = function(){flyout.displayFlyout()}
		flyoutHeaderBlock.appendChild(flyoutHeaderH2);
	var flyoutHeaderLink = document.createElement("a");
		flyoutHeaderLink.href="javascript:void(0);";
		flyoutHeaderH2.appendChild(flyoutHeaderLink);
	var flyoutHeaderText = document.createTextNode(this.flyoutHeaderText);
		flyoutHeaderLink.appendChild(flyoutHeaderText);
	var flyoutHeaderTaglineText = document.createTextNode(this.flyoutHeaderTagLineText);
	var flyoutHeaderTagline = document.createElement('p');
		flyoutHeaderTagline.id = this.flyoutHeaderTagLine;
		flyoutHeaderTagline.appendChild(flyoutHeaderTaglineText);
		flyoutHeaderBlock.appendChild(flyoutHeaderTagline);
	var flyoutListWrap = document.createElement('div');
		flyoutListWrap.id = this.flyoutListWrap;
		// grab the lists and place them in the container
	var theLists = document.getElementById(this.theLists);
		if (theLists)
		{
		flyoutListWrap.innerHTML = theLists.innerHTML;	
		}
		gradientWrap.appendChild(flyoutListWrap)
		document.getElementsByTagName('body')[0].appendChild(mainContainer);
		this.addPngSupport();
	},
	addPngSupport : function()
	{
		if (msie_real_vers && msie_real_vers<=7)
		{
		var rndm = Math.floor(Math.random()*10001);
		//var imgtop = 'url(../domain/cm/img/home/bg_morefrom_top.gif?' + rndm + ')';
		
		/* backgrounds for the following must be "filtered";
		     flyoutInnerWrap --> flyout-inner-wrap
		     flyoutContainer --> flyout-main-container
		   need to apply some minor adjustments in widths and margins for IE as well */
		var elements2 = document.getElementById('flyout-main-container');
		elements2.style.backgroundImage = 'url(../domain/cm/img/home/splittest/morefrom-bg.gif)';
		}
	},
	cumulativeOffset: function(element) 
	{
		var valueT = 0, valueL = 0;
		do {
			valueT += element.offsetTop  || 0;
		    valueL += element.offsetLeft || 0;
		    element = element.offsetParent;
		   } while (element);
		return [valueL, valueT];
    },
    getEventTarget : function(event)
    {
 	var targetElement = null;
	 	if(typeof event.target !="undefined")
	 	{
	 		targetElement = event.target;
	 	}else{
	 		targetElement = event.srcElement;
	 	}
	 	while (targetElement.nodeType == 3 && targetElement.parentNode !=null)
	 	{
	 		targetElement = targetElement.parentNode;
	 	}
 	return targetElement;
    },
	attachEventListener : function (target,eventType,functionRef,capture)
	{
	 	if(typeof target.addEventListenr != "undefined")
	 	{
	 		target.addEventListener(eventType,functionRef,capture);
	 	}
	 	else if (typeof target.attachEvent != "undefined")
	 	{
	 		target.attachEvent("on" + eventType, functionRef);
	 	}else{
	 		eventType="on" + eventType;
	 		if(typeof target[eventType] == "function")
	 		{
	 			var oldListener = target[eventType];
	 			target[eventType] = function()
	 			{
	 				oldListener();
	 				return functionRef();
	 			};
	 		}else{
	 		target[eventType] = functionRef;
	 		}
	 	}	
	},
	stopEvent : function(event)
	{
	 	if(typeof event.stopPropagation != "undefined")
	 	{
		 	event.stopPropagation();
	 	}else{
		 	event.cancelBubble = true;
	 	}	
	},
	closeFlyout : function(e)
	{
		if(document.getElementById('flyout-main-container')){
			var target = (e && e.target) || (event && event.srcElement);
			var obj = document.getElementById('flyout-main-container');
			if(target.parentNode.id !='more-trigger'){
				if(flyout.checkParent(target,obj.id)){obj.style.display='none';}
			}
			var obj = document.getElementById('countrymenuparent');
			if(target.parentNode.id !='more-trigger'){
				if(flyout.checkParent(target,obj.id)){obj.style.display='none';}
			}
		}
	},
	checkParent: function(theNode,theParent)
	{
		while(theNode.parentNode)
			{
			if(theNode==document.getElementById(theParent))
				{
				return false;
				}
			theNode=theNode.parentNode;
			}
		return true;
	}
}

var countryMenu = 
{
menuLoaded:false,
cumulativeOffset: function(element) 
{
	var valueT = 0, valueL = 0;
	do {
		valueT += element.offsetTop  || 0;
	    valueL += element.offsetLeft || 0;
	    element = element.offsetParent;
	   } while (element);
	return [valueL, valueT];
},
displayCountryMenu : function()
{
if(!countryMenu.menuLoaded) return;
var countryTrigger = document.getElementById("country");
var countryCoords = countryMenu.cumulativeOffset(countryTrigger);
var flyoutContainer = document.getElementById("countrymenuparent");
flyoutContainer.style.top = countryCoords[1] - 9 + "px";
flyoutContainer.style.left = countryCoords[0] - 11 + "px";
  if((flyoutContainer.style.display == "none") || (flyoutContainer.style.display == ""))
  { flyoutContainer.style.width = "";
 	var uls=document.getElementById('countrymenu').getElementsByTagName('ul');
 	var links=document.getElementById('countrymenu').getElementsByTagName('a');
	var parentClass='parent';
	var showClass='shown';
	var hideClass='hidden';
	var openClass='open';

	for(i=0;i<uls.length;i++){
		this.cssjs('remove',uls[i],showClass);
		this.cssjs('add',uls[i],hideClass);
	}
	for(i=0;i<links.length;i++){
		if (this.cssjs('check',links[i],openClass)){
			this.cssjs('remove',links[i],openClass);
			this.cssjs('add',links[i],parentClass);
		}
		
	}
	flyoutContainer.style.display = "block"
  }else{
	flyoutContainer.style.display = "none";
  }
},
 ul2finder : function()
 {
	var i,uls,als,finder,j;
	var parentClass='parent';
	var showClass='shown';
	var hideClass='hidden';
	var openClass='open';
	var container = document.getElementById('countrymenuparent');
	var containerWidth = 0;
	finder=document.getElementById('countrymenu');
	if(!finder){return;}
	this.cssjs('add',document.body,'domenabled');
	uls=document.getElementById('countrymenu').getElementsByTagName('ul');
	for(i=0;i<uls.length;i++)
	{
		this.cssjs('add',uls[i],hideClass);
	}
	lis=document.getElementById('countrymenu').getElementsByTagName('li');
	for(i=0;i<lis.length;i++)
	{
		if(!lis[i].getElementsByTagName('ul')[0])
		{
				
			continue;
		}
		var newa=document.createElement('a');
		newa.href='#';
		newa.appendChild(document.createTextNode(lis[i].firstChild.nodeValue));
		lis[i].replaceChild(newa,lis[i].firstChild);
		this.cssjs('add',newa,parentClass);
		lis[i].getElementsByTagName('a')[0].onclick=function()
		{
		k = 1;
			for(var i=0;i<uls.length;i++)
			{
				var found=false;
				for(j=0;j<uls[i].getElementsByTagName('ul').length;j++)
				{
					if(uls[i].getElementsByTagName('ul')[j] == 		
						this.parentNode.getElementsByTagName('ul')[0])
					{
						found=true;
						k++;
						break;
					}
				}
				if(!found)
				{
					countryMenu.cssjs('add',uls[i],hideClass);
					countryMenu.cssjs('remove',uls[i],showClass);
					countryMenu.cssjs('remove',uls[i].parentNode.getElementsByTagName('a')[0],openClass);
					countryMenu.cssjs('add',uls[i].parentNode.getElementsByTagName('a')[0],parentClass);
				}
			}
			countryMenu.cssjs('swap',this,parentClass,openClass)
			countryMenu.cssjs('add',this.parentNode.getElementsByTagName('ul')[0],showClass);
			if (k==1) containerWidth = 444;
			if (k==2) containerWidth = 666;
			if (k==3) containerWidth = 888;
			container.style.width = containerWidth + 'px';
			return false;
		}
	}
 },
cssjs : function (a,o,c1,c2)
{
	switch (a){
		case 'swap':
			o.className=!countryMenu.cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!countryMenu.cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
	}
}
}

function goPicker(str){
	var v = str.split("|");
	if (v.length != 3) return;
	var menu = v[0].split("_")[0];
	if (v[1]=='E') {
		launchPopup(v[2],'apply','');
		return;
	}
	else if (v[1]=='PGI') _locationHref='//'+PGI+'/track/predir.asp?Tgt='+escape(v[2]); // PGI redirect to pickup ProspectID
	else if (v[1]=='BT-E') _locationHref='//'+PGI+v[2]+addBreadcrumb(v[2]); // bridgetrack
	else if (v[1]=='S') _locationHref=makeBVPLink(v[2],true); // CBOL script path
	else if (v[1]=='P') _locationHref=makeJPLink(v[2],true); // CBOL portal path
	else if (v[1]=='PX') _locationHref=makeJPLink(v[2],false); // CBOL portal path no BV_UseBVCookie=yes
	else if (v[1]=='PS') _locationHref=merchandiseLink(v[2]); // CBOL products & services
	else if (v[1]=='JFP') _locationHref=makeJfpLink(v[2]); // JFP target
	else if (v[1]=='C') _locationHref=makeCitiLink(v[2]); // citi.com
	if (menu=='ApplyForMenu' && v[1]=='PS')
		_locationHref+='&Promo_ID='+_promoID;
	_sendClick(v[0]);
	location.href = _locationHref;
}
function countrylink(e){
	var l = '../domain/redirect/country/' + e;
	//add domain to test links in CM environment and for client demos running locally
	//l = '../www.citibank.com/default.htm' + l;
	location.href = l;
}
function lnkCBOL(t,i)
{
	if (t == 'ProdDisp') _locationHref=makeJPLink('ps/detail.do',true)+'&BS_Id='+i; // CBOL products & services
	location.href = _locationHref;
}

//used for apply and sign on pseudo-selects
function toggleDiv(toShow, toHide){
	if(toShow == 'SignOnDropDownOpen') {
		hideDiv('ApplyDropDownOpen');
		showDiv('ApplyDropDown');
	}
	else if(toShow == 'ApplyDropDownOpen') {
		hideDiv('SignOnDropDownOpen');
		showDiv('SignOnDropDown');
	}
	showDiv(toShow);
	hideDiv(toHide);
}
function showDiv(id){
	document.getElementById(id).style.display = 'block';
}
function hideDiv(id){
	document.getElementById(id).style.display = 'none';
}
function isSelect(theNode){
	while(theNode.parentNode){
		if(theNode.className == 'DropDownContainer'){
			return true;
		}
		theNode=theNode.parentNode;
	}
	return false;
}
function closeSelects(e){
	if(document.getElementById('ApplyDropDownOpen') && document.getElementById('ApplyDropDown') && document.getElementById('SignOnDropDownOpen') && document.getElementById('SignOnDropDown')){
		var target = (e && e.target) || (event && event.srcElement);
		if(!isSelect(target)){
			hideDiv('ApplyDropDownOpen');
			showDiv('ApplyDropDown');
			hideDiv('SignOnDropDownOpen');
			showDiv('SignOnDropDown');
		}
	}
}
//end - used for apply and sign on pseudo-selects

preFlyout = (window.onload) ? window.onload : function () {};
window.onload = function() {
	countryMenu.menuLoaded=true;
	preFlyout();
	countryMenu.ul2finder();
	flyout.attachTrigger();
}
var previousHomeBodyOnclick = (document.body.onclick) ? document.body.onclick : function () {};
document.body.onclick = function (e) {
	previousHomeBodyOnclick(e);
	flyout.closeFlyout(e);
	closeSelects(e);
}