/*******************************************
NOTE: The validateSearch() method is here since this file is already included in all the pages.
Pass in the field name.
*******************************************/
function validateSearch(sField) {
	var sTerm = sField.value;
  	if (sField.value == "") {
    	alert("Please enter at least one word to search for.");
    	sField.focus();
    	return false;
  	}  	
  	return true;
}

activeXTagsReloaded = false;
function reloadActiveXTags () 
{
	if(activeXTagsReloaded) return;
	activeXTagsReloaded = true;

	tagTypeArray = new Array("embed","applet","object");

	for(h=0;h < tagTypeArray.length;h++)
	{
		tags = document.getElementsByTagName(tagTypeArray[h]);

		ids = new Array(tags.length);
		for(i = 0;i < tags.length;i++)
		{
			ids[i] = tags[i].getAttribute("id");
		}

		for(i = 0; i < ids.length; i++)
		{
			if(!ids[i]) return;
			tag = document.getElementById(ids[i]);

			paramStrings = new Array(tag.childNodes.length);
			for (j = 0; j < tag.childNodes.length; j++)
			{
				if (tag.childNodes[j].tagName == "PARAM")
				{
					paramStrings[j] = tag.childNodes[j].outerHTML;
				}
			}

			parNode = tag.parentNode;
			tagHTML = parNode.innerHTML;

			tagName = tagTypeArray[h];

			regStr = "(<" + tagName + "[\\s\\S]*?id=['\\\"]?" + ids[i] + "['\\\"]?[\\s\\S]*?>)([\\s\\S]*?</" + tagName + ">)";
			reg = new RegExp(regStr,"gi"); //the innerHTML does not contain the param tags...

			reg.input = tagHTML;

			splitObjectTag = reg.exec(tagHTML);

			outputHtml = splitObjectTag[1];
			for(k = 0;k < paramStrings.length;k++)
			{
				outputHtml += paramStrings[k];
			}
			outputHtml += splitObjectTag[2];

			span = document.createElement("span");
			span.innerHTML = outputHtml;

			parNode.insertBefore(span,tag);
			tag.style.display = "none";
			parNode.removeChild(tag);
		}
	}
}

function GetCookie(key1,key2)
{
	var sCookie = new String(document.cookie);
	//alert(sCookie)
	if(key1 != null)
	{
		var aCList = sCookie.split('; ');
		for(var i = 0;i < aCList.length;i++)
		{
			sCookie = aCList[i];
			var oReg = new RegExp("(^"+key1+"=)(.*)","ig");
			var aResult = oReg.exec(sCookie); //Do not use: sCookie.match(oReg) Netscape fails
			if(aResult != null)
			{
				sCookie = RegExp.$2;
				if(key2 != null)
				{
					aCList = sCookie.split("&");
					for(var i = 0;i < aCList.length;i++)
					{
						sCookie = aCList[i];
						var oReg = new RegExp("(^"+key2+"=)(.*)","ig");
						var aResult = oReg.exec(sCookie);  //Do not use: sCookie.match(oReg) Netscape fails
						if(aResult != null)
						{
							sCookie = unescape(RegExp.$2);
							break;
						}else {
							sCookie = "";
						}
					}
				}
				break;
			} else {
				sCookie = "";
			}
		}
	}
	return sCookie;
}


/*********************************************************	
	Full menu functionality for:
	- IE 5.5, 6, 7. NOTE: Update after IE version 7.
	- Netscape 7.02 and 8. (Flash bug fixed in 7.02)
	- Firefox	
*********************************************************/	

// Detail variable from Javascript.js
var sBrowser = GetBrowser();

// Basic browser variable. Left for older code
var agt = navigator.userAgent.toLowerCase();

// Highlight and default for background on mouseover and mouseoff
var OFFcolor = '#d9d9d9';
var ONcolor = '#e5e5e5';

// Debug	alert("I am: " + sBrowser + ". My details: " + navigator.appVersion);

if (sBrowser == "Msie55Up")
{
	//Debug		alert("Uplevel browser:\n" + agt);
	
	// Error handler for CM tool
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CmErrorHandler.js"></script>');
	
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuSwap.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuBuilder.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuArray' + MarketID + '.js"></script>');

	if(MarketID == 0) // Corporate
	{
		// debug		alert("Corporate: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenuIE.js"></script>');
	}
	else	// Division
	{
		// debug		alert("Division: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenuIE.js"></script>');	
	}
	document.write('<link rel="stylesheet" href="xsl/TimeWarner/images/DivisionIE.css" type="text/css">')
	addOnLoadFunction(reloadActiveXTags); //works around a activeX issue
}

/* Fork for Firefox */
else if (sBrowser == "Firefox")
{
	//Debug			alert("Firefox:\n" + agt);
	
	// Error handler for CM tool
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CmErrorHandler.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuSwap.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuBuilder.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuArray' + MarketID + '.js"></script>');

	if(MarketID == 0) // Corporate
	{
		// debug alert("Corporate: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenuNS.js"></script>');
	}
	else	// Division
	{
		// debug alert("Division: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenuNS.js"></script>');	
	}
	document.write('<link rel="stylesheet" href="/Includes/Stylesheets/DivisionNS.css" type="text/css">')
	
}
/* Fork for Netscape 7.02 and above */
else if (sBrowser == "Netscape702Up")
{
	//Debug 	alert("Netscape 7.02 or above:\n" + agt);
	
	// Error handler for CM tool
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CmErrorHandler.js"></script>');
		
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuSwap.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuBuilder.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuArrays/MenuArray' + MarketID + '.js"></script>');

	if(MarketID == 0) // Corporate
	{
		// debug		alert("Corporate: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenuNS.js"></script>');
	}
	else	// Division
	{
		// debug		alert("Division: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenuNS.js"></script>');	
	}
	document.write('<link rel="stylesheet" href="/Includes/Stylesheets/DivisionNS.css" type="text/css">');
}

/* Fork for Safari */
else if (sBrowser == "Safari" )
{
	//Debug	alert("You be surfin' safari:\n" + agt);
	
	// Error handler for CM tool
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CmErrorHandler.js"></script>');
		
	
	/* NOTE Removed expanding menu for Safari because Flash causes problems.
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuSwap.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuBuilder.js"></script>');
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuArrays/MenuArray' + MarketID + '.js"></script>');

	if(MarketID == 0) // Corporate
	{
		// debug		alert("Corporate: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenuNS.js"></script>');
	}
	else	// Division
	{
		// debug		alert("Division: " + MarketID);
		
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenu.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenuNS.js"></script>');	
	}
	*/
	
	// NOTE: Static menu
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/BlankMenu.js"></script>');	
	
	document.write('<link rel="stylesheet" href="/Includes/Stylesheets/DivisionNS.css" type="text/css">')
}

else if (sBrowser == "Gecko")
{
	//Debug 	alert("Gecko-browser:\n" + agt);
	
	//For Hiding menus. Left this in but it should be handled by the '702Up' fork above.
	if(agt.indexOf('netscape/7.1') != -1 || agt.indexOf('5') != -1)
	{
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuSwap.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuBuilder.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/MenuArrays/MenuArray' + MarketID + '.js"></script>');
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenuNS.js"></script>');
	}
	else
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/BlankMenuGecko.js"></script>');
	
	if(MarketID == 0)
	{
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/CorporateJavascriptMenu.js"></script>');
	}
	else
	{
		document.write('<script type="text/javascript" src="xsl/TimeWarner/images/DivisionJavascriptMenu.js"></script>');
	}
	 
	document.write('<link rel="stylesheet" href="/Includes/Stylesheets/DivisionNS.css" type="text/css">')
}

else	// Use down-level menu
{
	//Debug 	alert("Downlevel browser:\n" + agt);
	document.write('<script type="text/javascript" src="xsl/TimeWarner/images/BlankMenu.js"></script>');
	document.write('<link rel="stylesheet" href="/Includes/Stylesheets/DivisionNS.css" type="text/css">')
}

	
var aMonths = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
if(MarketID != 0)
{
	var expdate = new Date();
	expdate.setFullYear(expdate.getFullYear() + 1);
	var curID = GetCookie("LevelID");
	if (curID != MarketID)
	{
		// clear localization cookies
		var deldate = getDeleteDate();
		setCookie("CLUID", "", deldate);
		setCookie("Zip", "", deldate);
		setCookie("SubMarketID", "", deldate);
		setCookie("City", "", deldate);
		setCookie("LHP", "", deldate);
		setCookie("LocalizationGUID", "", deldate);
	}
	setCookie("LevelID", MarketID, expdate);
	setCookie("LevelNumber", 4, expdate);
}
			
function setCookie(name, value, expires, path, domain, secure)
{
	var curCookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	"; path=" + ((path) ? path : "/") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "") + ";";
	document.cookie = curCookie;
}

/*********************************
	This is it's own method so it can be called if there is somewhere
	else that needs to remove a cookie they can just call it.
**********************************/
function getDeleteDate()
{
	var date = new Date();
	date.setDate(date.getDate() - 30);
	return date;
}

function GetCurrentTime()
{
	var dNow = new Date();
	return " | " + aMonths[dNow.getMonth()] + " " + dNow.getDate() + ", " + dNow.getFullYear();
}


/*****************************************
	Trim a string to fit. Shortens and adds ellipsis (...).
	Pass in string and max length.
	Removes broken character entity at end of line to prevent rendering '&#16' for '&#160;', etc.
*****************************************/
function TrimString(LongString,MaxLength)
{	
	//Check for end-of-line partial character entity after trimming a string to prevent rendering something like '&#16' for '&#160;'
	var oRegYes = new RegExp("(&.{0,5}\.\.\.)$" );

	var NewString = LongString;
		
	if (LongString.length > MaxLength)
	{
		NewString = LongString.substr(0,MaxLength) + "... ";
		
		if( NewString.match(oRegYes) )
		{
			NewString = NewString.replace(oRegYes,"... ");
		}
	}
	return NewString;
}

/******************************************************
 Code for buttons that change the font size.
******************************************************/ 
function GetData()
{
	var Checker = document.getElementById('oDiv');
	var CheckerPosition = Checker.offsetTop;	
	return CheckerPosition;	
}

var cookiedate = new Date();
var cookiemonth = aMonths[cookiedate.getMonth()];
var cookieday = cookiedate.getDay();
var cookieyear = cookiedate.getFullYear();
var cookieexpdate = new Date(cookiemonth + " " + cookieday + ", " + parseInt(cookieyear + 1));

var textsize;
var Size1 = 0.68, Size2 = 0.8, Size3 = 1.0, Size4 = 1.2, Size5 = 1.4, Size6 = 1.6, Size7 = 1.8, Size8 = 2.0, Size9 = 2.2;

var SizeNow = GetCookie("textsize");

function Bigger()
{
	var CheckerPosition = GetData();
		
	if (CheckerPosition >= Max)	// Max is set in 3 menu xslt files (Div, Corp, CorpHome). 
	{
		//DEBUG alert("GT Max.\nPosition:\t" + CheckerPosition + "\nMedium:\t" + Medium + "\nMax:\t" + Max  + "\nSize:\t" + SizeNow);
		if (SizeNow == null) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size1) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size2) setCookie('textsize', Size2, cookieexpdate);
		else if (SizeNow < Size3) setCookie('textsize', Size3, cookieexpdate);
		else if (SizeNow < Size4) setCookie('textsize', Size4, cookieexpdate);
		else if (SizeNow < Size5) setCookie('textsize', Size5, cookieexpdate);
		else if (SizeNow < Size6) setCookie('textsize', Size6, cookieexpdate);
		/* Big enough.
		else if (SizeNow < Size7) setCookie('textsize', Size7, cookieexpdate);
		else if (SizeNow < Size8) setCookie('textsize', Size8, cookieexpdate);
		else if (SizeNow < Size9) setCookie('textsize', Size9, cookieexpdate);
		*/
		else alert('This is the largest available font size.');		
	}
	else if (CheckerPosition >= Medium)		// Allow larger sizes if user reduced text size with browser command.
	{
		//DEBUG alert("Else A\nPosition:\t" + CheckerPosition + "\nMedium:\t" + Medium + "\nMax:\t" + Max  + "\nSize:\t" + SizeNow);
		if (SizeNow == null) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size1) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size2) setCookie('textsize', Size2, cookieexpdate);
		else if (SizeNow < Size3) setCookie('textsize', Size3, cookieexpdate);
		else if (SizeNow < Size4) setCookie('textsize', Size4, cookieexpdate);
		else if (SizeNow < Size5) setCookie('textsize', Size5, cookieexpdate);
		else if (SizeNow < Size6) setCookie('textsize', Size6, cookieexpdate);
		else if (SizeNow < Size7) setCookie('textsize', Size7, cookieexpdate);
		else if (SizeNow < Size8) setCookie('textsize', Size8, cookieexpdate);
		else if (SizeNow < Size9) setCookie('textsize', Size9, cookieexpdate);
		else alert('To make the text larger, please use the browser command under the View menu.');	
	}
	else
	{
		//DEBUG alert("Else B\nPosition:\t" + CheckerPosition + "\nMedium:\t" + Medium + "\nMax:\t" + Max  + "\nSize:\t" + SizeNow);
		if (SizeNow == null) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size1) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow < Size2) setCookie('textsize', Size2, cookieexpdate);
		else if (SizeNow < Size3) setCookie('textsize', Size3, cookieexpdate);
		else if (SizeNow < Size4) setCookie('textsize', Size4, cookieexpdate);
		else if (SizeNow < Size5) setCookie('textsize', Size5, cookieexpdate);
		else if (SizeNow < Size6) setCookie('textsize', Size6, cookieexpdate);
		else if (SizeNow < Size7) setCookie('textsize', Size7, cookieexpdate);
		else if (SizeNow < Size8) setCookie('textsize', Size8, cookieexpdate);
		else if (SizeNow < Size9) setCookie('textsize', Size9, cookieexpdate);
		else alert('To make the text larger, please use the browser command under the View menu.');	
	}
	window.location.reload();
}

function Smaller()
{
	var CheckerPosition = GetData();
	//DEBUG alert("Smaller fcn\nPosition:\t" + CheckerPosition + "\nMIN:\t" + Min + "\nSize:\t" + SizeNow);
	
	if (CheckerPosition < Min ) 
	{
		if (SizeNow == null) setCookie('textsize', Size1);
		else if (SizeNow > Size8) setCookie('textsize', Size8, cookieexpdate);
		else if (SizeNow > Size7) setCookie('textsize', Size7, cookieexpdate);
		else if (SizeNow > Size6) setCookie('textsize', Size6, cookieexpdate);
		else if (SizeNow > Size5) setCookie('textsize', Size5, cookieexpdate);
		else if (SizeNow > Size4) setCookie('textsize', Size4, cookieexpdate);
		else if (SizeNow > Size3) setCookie('textsize', Size3, cookieexpdate);
		else if (SizeNow > Size2) setCookie('textsize', Size2, cookieexpdate);
		else if (SizeNow > Size1) setCookie('textsize', Size1, cookieexpdate);
		else alert('This is the smallest available font size.');
	}
	else
	{
		if (SizeNow == null) setCookie('textsize', Size1, cookieexpdate);
		else if (SizeNow > Size8) setCookie('textsize', Size8, cookieexpdate);
		else if (SizeNow > Size7) setCookie('textsize', Size7, cookieexpdate);
		else if (SizeNow > Size6) setCookie('textsize', Size6, cookieexpdate);
		else if (SizeNow > Size5) setCookie('textsize', Size5, cookieexpdate);
		else if (SizeNow > Size4) setCookie('textsize', Size4, cookieexpdate);
		else if (SizeNow > Size3) setCookie('textsize', Size3, cookieexpdate);
		else if (SizeNow > Size2) setCookie('textsize', Size2, cookieexpdate);
		else if (SizeNow > Size1) setCookie('textsize', Size1, cookieexpdate);
		else alert('To make the text smaller, please use the browser command under the View menu.');
	}
	window.location.reload();
}

if (SizeNow == null || SizeNow == '') 
{
	textsize = Size1;
	setCookie('textsize', Size1);
} 
else 
{
	textsize = SizeNow; 
}

// Adjustments for special cases
var menutextsize = textsize * 1.1;
var footertextsize = textsize * 0.95;
var footerlinktextsize = textsize * 1.1;
var copyrighttextsize = textsize * 0.9;
// Write new styles
document.write('<style type="text/css">');
document.write('td {font-size:'+textsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('.MenuLink {font-size:'+menutextsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('.MenuBar {font-size:'+0.8+'em; font-family: Verdana, Sans-Serif;}');
document.write('.FooterBox04 {font-size:'+footertextsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('.FooterBar {font-size:'+footertextsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('.FooterSearch {font-size:'+footertextsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('td.Copyright04 {font-size:'+copyrighttextsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('.SideNavHeader {font-size:'+textsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('td.SideNavCellText {font-size:'+textsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('td.SideNavHighlightSecondary {font-size:'+textsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('td.SideNavHighlightTertiary {font-size:'+textsize+'em; font-family: Verdana, Sans-Serif;}');
document.write('<\/style>');

// End of font-size code.
