/*******************************************************************
*  Javascript for Clarica Navigation menu
*  Feb 2001 Maclaren McCann Interactive
*  - kn, sp
*
********************************************************************/
if(document.layers){
	origWidth = innerWidth;
	origHeight = innerHeight;
	}

function reDo() {
	if(document.layers){
		if (innerWidth != origWidth || innerHeight != origHeight)
		    location.reload();
	}
}

onresize = reDo;

var win;

//Window Opener for Sun Life site(s)
var strSiteUrl_js;
var theirSite;
function openSunLifeWindow(strSiteUrl_js) {
	// DETERMINE X & Y COORDINATES TO OPEN THE WINDOW BASED ON 
	// USERS SCREEN RESOLUTION.
	var popSunWidth = 700;
	var popSunHeight = 425;
	var SunWinX = (screen.width / 2) - (popSunWidth / 2);
	var SunWinY = (screen.height / 2) - (popSunHeight / 2);
	theirSite=window.open(strSiteUrl_js,'SunLifeSite', 'innerHeight=' + popSunHeight  + ',innerWidth=' + popSunWidth + ',width=' + popSunWidth + ',height=' + popSunHeight + ',screenX=' + SunWinX + ',screenY=' + SunWinY + ',left=' + SunWinX + ',top=' + SunWinY + 'directories=yes,location=yes,menubar=yes,personalbar=yes,resizable=yes,scrollbars=yes,status=yes,titlebar=yes,toolbar=yes');
	theirSite.focus();
}


//all purpose window opener
	var ie5 = (document.all && document.getElementbyID) ? false : true;
	var isMac = (navigator.appVersion.indexOf("Mac") == -1) ? false : true;
	var win, win2;	
	function openWin(url, popWidth, popHeight, popScroll, popStatus) {
		var winName =  "popup";
		var statusBar = popScroll; 
		// DETERMINE X & Y COORDINATES TO OPEN THE TOOL WINDOW IN BASED ON 
		// USERS SCREEN RESOLUTION.
		var winX = (screen.width / 2) - (popWidth / 2);
		var winY = (screen.height / 2) - (popHeight / 2);
		
		if (popStatus != null) { 
			statusBar  = popStatus;		
			if (!ie5 && !ns && isMac) { popHeight += 18; }
		}

		if(win) {
			if(!win.closed) {
			  	win.close(); 
			}			
			win = null;	
		}
		
		win=window.open(url, winName, 'width=' + popWidth + ',height=' + popHeight + ',screenX=' + winX + ',screenY=' + winY + ',left=' + winX + ',top=' + winY + ',scrollbars=' + popScroll + ',resizable=no,status=' + statusBar + '');
		
		if (win.opener == null) win.opener = self;
		win.focus();
	}

//init variables
	var ready = false; //no menu rollovers until onLoad has loaded all images 	
 	
	// First Nav positions
	var M_hide = 0;
	var M_show = 113;
	
	//globals for layer methods, timer
	var prefix, suffix, layerSuffix, left, top, layerName, menuUpName, menuDownName, yUpPos, yDownPos;
	var active = "a";
	
	// constructors for DOM
	// NS 4
	if (document.layers) {
		prefix = 'document.layers[\"';
		layerSuffix = '\"]';
		suffix = layerSuffix;
		left = '.left';
		top = ".top";
	}
	// IE 4,5
	else if (document.all){
		prefix = 'document.all[\"';
		layerSuffix = '\"]';
		suffix = layerSuffix + '.style';
		left = '.pixelLeft';
		top = ".pixelTop";
	}	
	// NS 6
	else if(document.getElementById) {   //ns6+Mozilla
		prefix = 'document.getElementById(\"';
		layerSuffix = '\")';
		suffix = layerSuffix; 
		left = '.style.left';
		top = ".style.top";		
	}

	// prefix for Netscape layers when needed
	function nameLayer(name) {
		var layer = '';
  		if(document.layers) {layer = 'document.layers[\"' + name + '\"].';}
  		return layer;
  	}

// layer methods, which include DOM differences

	function show (myLayer) {
		eval(prefix + myLayer + suffix + '.visibility = "visible"');
	}
	function hide (myLayer) {
		eval(prefix + myLayer + suffix + '.visibility = "hidden"');
	}
	
	// get/set layer positions	
	
	function getY(myLayer) {
		var here=0;
		var layer;	
		eval('layer = ' + prefix + myLayer + layerSuffix + ';');
		if(layer)
			eval('here = ' + prefix + myLayer + suffix + top);
		return parseInt(here);
	}
	function setY(myLayer, here) {
		eval(prefix + myLayer + suffix + top + ' = ' + here);
	}
	
	function slideM (myLayerName) {
	
	   //- is move up, + is move down
		var dir = -1;
	    var yNow = getY(myLayerName);
	    if(myLayerName == active) {			
			 dir = 1;
			 yFinal = M_show;
		} else {
			 dir = -1;
			 yFinal = M_hide;
		}
		if(yNow != yFinal) {	
			setY(myLayerName, (yNow + (dir * Math.ceil(Math.abs(yNow - yFinal) / 4))) );
			eval('setTimeout(\"slideM(\'' + myLayerName + '\')\",25)' );
		}
		else {
			//done
		}
	}
	
 // Preload menu images - called by body onLoad 
	var menuNum = 9; // must be set to number of dropping menus
	
	function LoadImages() {

		// Name the current window so it can be identified.
		if ((window.name).length == 0)
			{
			window.name='ClaricaSite';
			}
		
		if(document.images) {
			//Preload Static Images
			logo = new Image();
			logo.src = "/e_images/clarica_logo.gif";
			
			maskPic = new Image();
			maskPic.src = "/e_images/mask.gif";
			
			for(var x=1;x<9;x++) {
				eval('top' + x + '= new Image()');
				eval('top' + x + '.src = \"/e_images/nav_top_' + x + '.gif\"');
			}
			
			loginButton = new Image();
			loginButton.src = "/e_images/sign_in.gif";

			frenchButton = new Image();
			frenchButton.src = "/e_images/francais.gif"; 
			
			quicklinksmain = new Image();
			quicklinksmain.src = "/e_images/home_image.jpg";
			custAccess = new Image();
			custAccess.src = "/e_images/ql_cust_acc.gif";
			sponsAccess = new Image();
			sponsAccess.src = "/e_images/ql_spon_acc.gif";
			careersAtClarica = new Image();
			careersAtClarica.src = "/e_images/ql_care_opp.gif";
			dailyFunds = new Image();
			dailyFunds.src = "/e_images/ql_daily_fund.gif";
			newsReleases = new Image();
			newsReleases.src = "/e_images/ql_news_rele.gif";
			
			//Preload Rollover Images
			debug = "";
			var state = new Array("","_off","_on");
			var suffix = new Array("","_r.gif","_r_h.gif");
			var alpha = new Array("","_a","_b","_c","_d","_e","_f","_g","_h","_i");
			
			// DEFINE THE NUMBER OF DROP DOWN ITEMS FOR EACH NAV
			var items = new Array("","5","6","5","0","9","0","6","3","1");
			for(var j=1;j<3;j++) {
				for(var i=1;i<=menuNum;i++) {
					// nav bar
					eval('n'+ i + state[j] + '= new Image()');
					eval('n'+ i + state[j] + '.src = \"/images/v3/clarica/english/nav_' + i + suffix[j] + "\"");
					
					// menus
					for(var k=1;k<=items[i];k++) {
						eval('m'+ i + alpha[k] + state[j] + '= new Image()');
						eval('m'+ i + alpha[k] + state[j] + '.src = \"/images/v3/clarica/english/nav_' + i + alpha[k] + suffix[j] + "\"");
					}	
				}
			}			
		}
		
		ready = true;
		setTimeout("closeMenu()", 1000);
	}
	
// Menu Rollovers with layer triggers - use only for nav & menu!
//    Note: If adding new menu dropdowns... you need to change "items" array in the 
//          LoadImages() function above.
	function MRollOn(name) {	
		if(ready) {
			var layer = (name.charAt(0) == "m")? name.substring(0,2): name.substr(0,1);			
			eval(nameLayer(layer) + 'document.images[\"' + name + '\"].src = ' + name + '_on.src');			
			active = (name.charAt(0) == "n")? "m" + name.charAt(1): layer;
			drop();
		}	
	}
	
	function MRollOff(name) {	
		if(ready) {
			active = "";
			var layer = (name.charAt(0) == "m")? name.substring(0,2): name.substr(0,1);
			eval(nameLayer(layer) + 'document.images[\"' + name + '\"].src = ' + name + '_off.src');
			setTimeout("closeMenu()", 2000);			
		}	
	}
	
	function closeMenu() {
		if (active.charAt(0) != "m")  drop(); 
	}
	
	function drop() {
		var menu = 0;
		var thing;
		if(active.charAt(0) == "m") {
			menu = active.charAt(1);
			if(getY(active) < M_show) { slideM(active); }
		}
		for(var i=1;i<=menuNum;i++) { 
			if(menu != i) {
				thing = "m" + i;
				if(getY(thing) > M_hide) { slideM(thing); }				
			}
		}
	}
 
// breadcrumb generator - uses page default or cookies rev 2
//   breadcrumb text style set in CSS
//   relies on default crumbs, page title, and page url set in each page

	// Array defCrumbs contains default breadcrumbing; must be populated by each page
	var defCrumbs = new Array();  
	
	function Get_Cookie(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));
	}
	
	// max # of breadcrumbs to display
	// var cCount = 4; // Why was this here?
	var setCurly = false;  
	function DropCrumbs(hereURL, hereTitle, defCrumbs) {			
		var tempCrumbs = new Array();
		var crumbs = "";
		var cookieValue = Get_Cookie('ClaricaBreadcrumb');
		if((cookieValue != null) && (cookieValue.length > 10)) {
			tempCrumbs = cookieValue.split('^');
			document.cookie = "ClaricaBreadcrumb=x; path=/";
		}
		else tempCrumbs = defCrumbs;				
		
//		for(var i=0;i<tempCrumbs.length;i++) crumbs += '<span class="yellow"> { </span>' + tempCrumbs[i] + '<span class="yellow"> }</span> ';	
		for(var i=0;i<tempCrumbs.length;i++) crumbs += '<span class="yellow"> { </span>' + tempCrumbs[i] + '<span class="yellow"> }</span> ';	
		if (setCurly) {
			crumbs += '<span class="yellow"> { </span>' + hereTitle.toLowerCase() + '<span class="yellow"> }</span>';
		}
		else {
			crumbs += hereTitle.toLowerCase();
		}
		return crumbs;
		
	}
	
	function Set_BC(){			
		defCrumbs[defCrumbs.length] = hereURL;
		cookieValue = defCrumbs.join('^');		
			
		document.cookie ="ClaricaBreadcrumb=" + cookieValue + "; path=/";
	}	
	

// date generator
 function y2k(number) { return (number < 1000) ? number + 1900 : number; }

 var months = new Array('Jan.','Feb.','Mar.','Apr.','May','Jun.','Jul.','Aug.','Sep.','Oct.','Nov.','Dec.'); 

 var today = new Date();
 var myDate  = today.getDate();
 var month = today.getMonth();
 var year  = y2k(today.getYear());
 
 var formattedDate = '<span class="bc">' + months[month] + '&nbsp;' + myDate + ',&nbsp;' + year + '</span>';
 
//french to english or english to french swapper

 function SwapToLang(Lang) {
	if (Lang == "F") {
		var dir = "" + window.location;
		var index = dir.toLowerCase().indexOf("/e/");
		if (index != -1) {
			var url
			url = dir.substring(0,index + 1) + "f" + dir.substring(index + 2, dir.length);
			document.location.href = url;
		}
		else {
			document.location.href = strServerPath_js.substring(0,strServerPath_js.length - 2) + "f/index.asp";
		}
	}
	else {
		var dir = "" + window.location;
		var index = dir.toLowerCase().indexOf("/f/");
		if (index != -1) {
			var url
			url = dir.substring(0,index + 1) + "e" + dir.substring(index + 2, dir.length);
			document.location.href = url;
		}
		else {
			document.location.href = strServerPath_js.substring(0,strServerPath_js.length - 2) + "e/index.asp";
		}
	}
 } 
 
 function BrowserGetForm() {
	if (document.layers) {
		return document.content.document;
	}
	else if(document.getElementById || document.all) {
		return document;
	}
	else {
		//error: unhandled browser
	}
 }
 
 function AnchorLink() {
	if (window.location.hash != "") {
		window.location.hash = window.location.hash.substring(1,window.location.hash.length);
	}
 }
 

function openNamedWin(url, popWidth, popHeight, popScroll, popStatus, winName) {
	var statusBar = popScroll; 
	// DETERMINE X & Y COORDINATES TO OPEN THE TOOL WINDOW IN BASED ON 
	// USERS SCREEN RESOLUTION.
	var winX = (screen.width / 2) - (popWidth / 2);
	var winY = (screen.height / 2) - (popHeight / 2);
	
	if (popStatus != null) { 
		statusBar  = popStatus;		
		if (!ie5 && !ns && isMac) { popHeight += 18; }
	}

	if(win) {
		if(!win.closed) {
		  	win.close(); 
		}			
		win = null;	
	}
	
	win=window.open(url, winName, 'width=' + popWidth + ',height=' + popHeight + ',screenX=' + winX + ',screenY=' + winY + ',left=' + winX + ',top=' + winY + ',scrollbars=' + popScroll + ',resizable=yes,status=' + statusBar + '');
	
	if (win.opener == null) win.opener = self;
	win.focus();
}	
