﻿/*These are initialization routines for the site, meaning they are placed at the end of the document*/
var FIX_RICH_IMAGE_NAME = 'fix-rich-image';
var FIX_EMPTY_SUB_HEAD_NAME = 'hide-empty-subhead';
var TEXT_SIZE_COOK_NAME = 'bi_tsize';
var TEXT_SIZE_CSS_ID = 'ctl00_large_css';
var TAB_LIST_ID = 'inner-tabs';
var TAB_LIST_PAGES_ID = 'inner-tab-pages';
var SEC_NAV_ITEMS_ID = 'sec-nav-items';
var SEC_NAV_HEADER_ID = 'sec-nav-parent-cont';
var SIDE_ELEM_CONTAINER_ID = 'side_2';
var SIDE_ELEM_HEAD_ID = 'side_2_h';
var SIDE_ELEM_CONTENT_ID = 'side_2_c';
var RAD_TABLE_CLASS = 'rad-table';
var RAD_TABLEROW_ALT_CLASS = 'alt-row';

/*Completely hides secondary navigation if there are no elements present*/
function initSecNav(){
	var itemsdiv = document.getElementById(SEC_NAV_ITEMS_ID);
	if (itemsdiv != null) {
		var itemcont = itemsdiv.getElementsByTagName('div');
		if (itemcont[0] != null) {
			if (!isEmptyElement(itemcont[0])){
				var headcont = document.getElementById(SEC_NAV_HEADER_ID);				
				if (headcont != null) headcont.style.display = 'block';
			}
		}
	}
}

/* Fixes issues with 'empty' RichImageFields taking up space on the page */
function fixRichImageField() {
	var allElements = getElements_ieFix('div', 'name', FIX_RICH_IMAGE_NAME, false);
	for (var curElement = 0; curElement < allElements.length; curElement++) {
		if(allElements[curElement].innerHTML.toLowerCase().indexOf('img') == -1){			
			allElements[curElement].style.display = 'none';
		}
	}
}

/* Hide any 'empty' sub headers (actually, SharePoint renders them with an &nbsp; for some reason */
function hideEmptySubHeads() {
	var allElements = getElements_ieFix('h3', 'name', FIX_EMPTY_SUB_HEAD_NAME, false);
	for (var curElement = 0; curElement < allElements.length; curElement++) {
		if (isEmptyElement(allElements[curElement])) {
			allElements[curElement].style.display = 'none';
		}
	}
}

/* Adds style clases to alternating items in rad-editor tables */
function initTables() {
	var tableElements = getElements_ieFix('table', 'class', RAD_TABLE_CLASS, true);
	for (var curElement = 0; curElement < tableElements.length; curElement++) {
		var rows = tableElements[curElement].getElementsByTagName('tr');
		for (var rownum = 0; rownum < rows.length; rownum ++) {
			var remainder = 0;
			remainder = rownum % 2;
			if (remainder != 0) { rows[rownum].className = RAD_TABLEROW_ALT_CLASS; }
		}						
	}
}

function getElements_ieFix(tag, attribute, attributeval, isClassAttribute){
	var elem = document.getElementsByTagName(tag);     
	var arr = new Array();     
	for(i = 0,iarr = 0; i < elem.length; i++) {
		var att;
		if (isClassAttribute) att = elem[i].className;
		else att = elem[i].getAttribute(attribute);
		
		if(att == attributeval) {
			arr[iarr] = elem[i];
			iarr++;
		}
	}
	return arr;
}

/*Changes the text size for the page, and stores the setting in a cookie*/
function changeTextSize(){
	/*Get the current value of the cookie, and switch it*/
	var cookval = getCookieValue();
	var newcookval = (cookval == 'large' ? 'small' : 'large'); 				
	
	/*Now, save the cookie and set the display for the page*/
	setCookieValue(newcookval);	
	setTextSize(newcookval);
}

function getCookieValue(){
	var cookval = '';
	var cooks = document.cookie.split(';');
	for (x=0; x<cooks.length; x++) {
		var cook = trim(cooks[x]);
		if(cook.indexOf(TEXT_SIZE_COOK_NAME) == 0) {
			cookval = cook.substring(TEXT_SIZE_COOK_NAME.length + 1, cook.length);
		}
	}
	return cookval;
}

function setCookieValue(value){
	var expdate = new Date();
	var expires;
	expdate.setTime(expdate.getTime() + 31536000000); //1-year expiration
	expires = ';expires=' + expdate.toGMTString();	
	document.cookie = TEXT_SIZE_COOK_NAME + "=" + value + expires + ";path=/";
}

/*Reads the cookie and sets the text size for the page accordingly.*/
function setTextSize(size){
	var largecss = document.getElementById(TEXT_SIZE_CSS_ID);
	if (largecss != null)
		largecss.disabled = (size == 'large' ? false : true);
}

function initPods() {
	var pods = new Array(8);
	for (y=0; y<pods.length; y++){
		pods[y] = new Array(4);
	}
		
	for (i=0; i<8; i++){	//Init array of IDs
		var idnum = (i + 1);
		pods[i][0] = "p" + idnum;
		pods[i][1] = "p" + idnum + "_h_img";
		pods[i][2] = "p" + idnum + "_h";
		pods[i][3] = "p" + idnum + "_c";
	}	
	
	for (x=0; x<pods.length; x++) {
		var p, phi, ph, pc;
		p = document.getElementById(pods[x][0]);
		phi = document.getElementById(pods[x][1]);
		ph = document.getElementById(pods[x][2]);
		pc = document.getElementById(pods[x][3]);
		
		if (p != null){
			var noContent = 
				(phi.innerHTML.toLowerCase().indexOf("img") == -1 &&
				ph.innerHTML.toLowerCase().indexOf("a href") == -1 &&
				trim(pc.innerHTML).toLowerCase().indexOf('</div>&nbsp;') != -1);
				
			if (!noContent) p.style.display = 'block';
		}
	}
}

function initSideElem(){
	var se, seh, sec;
	se = document.getElementById(SIDE_ELEM_CONTAINER_ID);
	seh = document.getElementById(SIDE_ELEM_HEAD_ID);
	sec = document.getElementById(SIDE_ELEM_CONTENT_ID);				
	
	if (se != null){
		var noContent = 
			seh.innerHTML.toLowerCase().indexOf("a href") == -1 && 
			((trim(sec.innerHTML).toLowerCase().indexOf('</div>&nbsp;') != -1) || isEmptyElement(sec));			
			
		if (!noContent) se.style.display = 'block';
	}
}

function initInnerTabs() {
	var list = document.getElementById(TAB_LIST_ID);
	var tabcontent = document.getElementById(TAB_LIST_PAGES_ID);
	if (list != null){
		var items = list.getElementsByTagName('li');
		for (x=0; x<items.length; x++) {
			var tabcount = 0;
			var noContent = isEmptyElement(items[x].getElementsByTagName('span')[0]);
			if (!noContent) {
				items[x].style.display = 'block';
				tabcount += 1;
			}
			
			if (tabcount > 0) tabcontent.style.display = 'block';
		}
	}
}

function trim(str){ 
	return str.replace(/^\s+|\s+$/g, '') ;
}

function isEmptyElement(obj){	
	var	trimmed = trim(obj.innerHTML);	
	var empt1 = (trimmed == '');
	var empt2 = (trimmed == '&nbsp;');
	var empt3 = (trimmed == '&nbsp;&nbsp;');
	var empt4 = (trimmed.length == 1 && trimmed.charCodeAt(0) == 160) //For Google's Chrome Browser	
	var empt5 = (trimmed.length == 2 && trimmed.charCodeAt(0) == 160 && trimmed.charCodeAt(1) == 160) //For Google's Chrome Browser	
	return (empt1 || empt2 || empt3 || empt4 || empt5);
}

function initSIFR(){
	if (typeof sIFR == "function"){        
		sIFR.replaceElement(".sec-nav-head",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_Medium_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sCase:"upper",
				sFlashVars:"underline=true",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".one-col div",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_35_Thin_READ_Opt.swf",
				sColor:"#FFFFFF",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".pod-header",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_Medium_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sFlashVars:"underline=true",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".inner-tab-heading",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_35_Thin_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".page-head-2",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_35_Thin_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".feature-box-header",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_35_Thin_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sFlashVars:"underline=true",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".tab-item",
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_Medium_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sCase:"upper",
				sFlashVars:"underline=true",
				sWmode:"transparent"
			}));
	 	
		sIFR.replaceElement("#page-head", 
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_35_Thin_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sBgColor:"#FFFFFF",
				sWmode:"transparent"
			}));
	
		sIFR.replaceElement(".side-elem-1-header", 
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_45_Light_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sWmode:"transparent"
			}));		
			
		sIFR.replaceElement(".side-elem-2-header", 
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_45_Light_READ_Opt.swf",
				sColor:"#FFFFFF",
				sLinkColor:"#FFFFFF",
				sHoverColor:"#FFFFFF",				
				sWmode:"transparent",
				sFlashVars:"underline=true"
			}));		
			
		/*	
		sIFR.replaceElement(".action-desc", 
			named({
				sFlashSrc:"/Style Library/Beltone/Styles/Helvetica_45_Light_READ_Opt.swf",
				sColor:"#004290",
				sLinkColor:"#004290",
				sHoverColor:"#004290",
				sWmode:"transparent"
			}));		
		*/
	}	    
}

/*
init calls
ORDER HERE IS IMPORTANT--any elements which modify sIFR replacements section must be run
before initSIFR().  'Fix' and 'hide' routines must be run before anything else.
*/

fixRichImageField();
hideEmptySubHeads();
initPods();
initTables();
initSecNav();
initSideElem();
initInnerTabs();
initSIFR();
setTextSize(getCookieValue());/*Initialization routine for setting the text-size*/	

/*
Inner tab display initialization
THIS MUST RUN AFTER INITIALIZATION OF sIFR ABOVE (otherwise 'hidden' tabs won't render as sIFR replacement text)
*/
var innertabs = new ddtabcontent(TAB_LIST_ID)
innertabs.setpersist(false)
innertabs.setselectedClassTarget("link") //"link" or "linkparent"
innertabs.init()				
