//-This file must be included to render the headers and footers.-

var allcookies = document.cookie;

function cookieExists(name)
{
	var indexCookie = allcookies.indexOf(name + "=");
	
	return indexCookie;
}
function getCookieValue(name)
{
	var pos = allcookies.indexOf(name + "=");
	if (pos != -1) {
		var start = pos + name.length + 1;
		var end = allcookies.indexOf(";",start);
		if (end == -1) end = allcookies.length;
		var value = allcookies.substring(start, end);
		
		return value;
	} else {
		return "";
	}
}
function getChipValue(cookiename,chipname)
{
	var cookievalue = getCookieValue(cookiename);
	if (cookievalue != "") {
		if (cookievalue.indexOf(chipname) != -1) {
			var start = unescape(cookievalue.substring(cookievalue.indexOf(chipname) + chipname.length));
			var end = start.substring(0,start.indexOf(";"));
			var regexp = /(\\W)/g;;
			var value = end.replace(regexp," ");
			
			return value;
		} else {
			return "";
		}
	} else {
		return "";
	}
}
function setSessionCookie (name, value) {
	var the_cookie = name + "=" + value;
	var the_cookie = the_cookie + ";path=/";
	var the_cookie = the_cookie + ";domain=.techtarget.com";
	document.cookie = the_cookie;
}
function getDisplayName()
{
	return getChipValue("Datav1", "DispName");
}
function getHandle()
{
	return getChipValue("Datav1", "Handle");
}

//document.write("getDisplayName()", getDisplayName(),"<BR>");
//document.write("getHandle()", getHandle(),"<BR>");

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-Variable declarations-////////////////////////////

var JSapps = new Array("searchCRM","searchSAP");
var JScore = new Array("searchDatabase","searchMobileComputing","searchNetworking","searchOracle","searchSecurity","searchStorage","searchWebServices","WhatIs");
var JSdev = new Array("searchVB");
var JSeitm = new Array("searchCIO");
var JSplat = new Array("search390","search400","searchDomino","searchEnterpriseLinux","searchWin2000","searchWindowsManageability");
var JSsoftlaunch = new Array("");
var JSmag = new Array("StorageMagazine");
var JSall = (JSapps + "," + JScore + "," + JSdev + "," + JSeitm + "," + JSplat + "," + JSsoftlaunch + "," + JSmag).split(",");

var JSdigitalGuideName = JSgetGuideName();
var JSbaseHref = (JSexternal == "true") ? "http://" + JSdigitalGuideName + JSconfig : "";

if (JSdigitalGuideName == "WhatIs") {
    JSnav = (JSnav == "") ? ((JSisHomePage == "true") ? "" : "whome," ) + "definitionsSearch,techHappenings,resourceCenter,jobSearch,bookstore" :  JSnav;
} else {
    if (JShasCareerCenter == "on") {
        JSnav = (JSnav == "") ? ((JSisHomePage == "true") ? "" : "home," ) + "news,bestWebLinks,buyersGuide,discussions,careers,bookstore" :  JSnav;
    } else {
        JSnav = (JSnav == "") ? ((JSisHomePage == "true") ? "" : "home," ) + "news,bestWebLinks,buyersGuide,discussions,jobSearch,events,bookstore" :  JSnav;
    }
}

if (JSexternal == "true") {
    //document.writeln("<base href=\"http://" + JSdigitalGuideName + JSconfig + "/\">");
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSgetGuideName section-////////////////////////////
function JSgetGuideName() {
    var gguide;
    var hhost = window.location.hostname.toLowerCase();
    if (hhost.indexOf("search") != -1) {
        gguide = hhost.substring(hhost.indexOf("search"), hhost.indexOf("."));
    } else if (hhost.indexOf("storagemagazine") != -1) {
        gguide = "StorageMagazine";
    } else if (hhost.indexOf("whatis") != -1) {
        gguide = "WhatIs";
    }
    return JSmatchGuideName(gguide);
}
function JSmatchGuideName(name) {
    for (var i = 0; i < JSall.length; i++) {
        if (JSall[i].toLowerCase() == name.toLowerCase()) {
            return JSall[i];
        } else {
            continue;
        }
    }
    return name;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-CSS style sheet section-////////////////////////////
function JSwriteCSS() {
    if (navigator.appVersion.indexOf("Mac") != -1) {
	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/dgmac.css\">");
        	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/" + JSdigitalGuideName + "mac.css\">");
    } else if (navigator.appVersion.indexOf("Win") != -1){
	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/dgwin.css\">");
        	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/" + JSdigitalGuideName + "win.css\">");
    } else {
	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/dgother.css\">");
        	document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/" + JSdigitalGuideName + "other.css\">");
    }
    // new stylesheets for Home Page Redesign
    document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/DG.css\">");
 document.writeln("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + JSbaseHref + "/digitalguide/stylesheets/" + JSdigitalGuideName + ".css\">");
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-user login and cookie section-////////////////////////////
var loggedIn;
var allcookies = document.cookie;
var indexLogin = allcookies.indexOf("Accessv1");
var indexProps = allcookies.indexOf("Datav1");
var SiteList = unescape(allcookies.substring(allcookies.indexOf("Site") + 4));
var thisSite = SiteList.indexOf("," + JSdigitalGuideID + ",");
if (indexLogin != -1 && indexProps != -1 && thisSite != -1) {
	loggedIn = 1;
} else {
	loggedIn = -1;
}
var beginName = unescape(allcookies.substring(allcookies.indexOf("DispName", indexProps) + 8));
var endName = beginName.substring(0,beginName.indexOf(";"));
var regexp = /(\+)/g;;
var DisplayName = endName.replace(regexp," ");

var locationOffer = document.location.href.indexOf("?Offer=");
//var expDate = new Date((new Date()).getTime() + 24*3600000);
//expDate = expDate.toGMTString();
if (locationOffer != -1) {
    var Offer = document.location.href.substring(locationOffer + 7, document.location.href.length);
    var underscoreOffer = "-" + Offer;
    setSessionCookie("Offer",Offer);
} else {
    var underscoreOffer = "";
}

//member update
var  memUpd = -1;
if (JSmemberUpdate == "on" && loggedIn == 1) {
	var mu1 = getCookieValue("mu1");
	if (mu1 == "") memUpd = 1;
	if (mu1 != 1 && mu1 != "") {
		var oneDay = (24 * (60 * (60*1000)));
		var cDate = (new Date(mu1)).getTime();
		var tDate = cDate + oneDay;
		var nowDate = (new Date()).getTime();
		if (nowDate > tDate) memUpd = 1;
	}
}

//cobrand
var dgWID = "";
var dgADW = "on";
var dgHDW = "off";
var coBrandSession = cookieExists("coBrandSession");
var locationPathname = location.pathname.substring(1, location.pathname.length);
locationPathname = locationPathname.substring(0, locationPathname.indexOf("/"));
if (coBrandSession != -1) {
	var cbValue = getCookieValue("coBrandSession");
	dgWID = cbValue.substring(cbValue.indexOf("wid"), cbValue.length);
	dgWID = dgWID.substring(3, dgWID.indexOf("_"));
	dgHDW = cbValue.substring(cbValue.indexOf("hdw"), cbValue.length);
	dgHDW = dgHDW.substring(3, dgHDW.indexOf("_"));
	dgADW = cbValue.substring(cbValue.indexOf("adw"), cbValue.length);
	dgADW = dgADW.substring(3, dgADW.indexOf("_"));
	var dgDGW = cbValue.substring(cbValue.indexOf("dgw"), cbValue.length);
	dgDGW = dgDGW.substring(3, dgDGW.indexOf("_"));
	var dgCTW = cbValue.substring(cbValue.indexOf("ctw") + 3, cbValue.length);
	if (dgADW == "off" && coBrandPath[dgCTW + locationPathname] == "on") {
		JSadHeader = "off";
		JSadFooter = "off";
	}
	//creates the redirect string to be prepended to cobranded URLs
	var redirectString = "/cgi-bin/rd.pl/wdID-" + dgWID + "-sidWID-" + JSdigitalGuideID;
	if (gciWID.length > 0) redirectString += "-gciID-" + gciWID;
	if (cidWID.length > 0) redirectString += "-cidID-" + cidWID;
	if (alpWID.length > 0) redirectString += "-alpID-" + alpWID;
	if (taxWID.length > 0) redirectString += "-taxID-" + taxWID;
	if (idxWID.length > 0) redirectString += "-idxID-" + idxWID;
	redirectString += "?/";
}

//Lift Study
var LSvalue = "";
var LSuser = "";
var lsbool = "";
if (allcookies.indexOf("LS=") != -1 && JSadCategory != "") {
	LSvalue = getCookieValue("LS");
	LSuser = LSvalue.substr(LSvalue.indexOf(":")+1);
	LSvalue = LSvalue.substr(0,LSvalue.indexOf(":"));
	if (LSvalue.substring(LSvalue.length-1,LSvalue.length) == "A") {
		lsbool = "true";
	}
	if (allcookies.indexOf("LSA=") == -1 && lsbool == "true") {
		setSessionCookie("LSA", 1);
	} else {
		if (getCookieValue("LSA") == 1 && lsbool == "true") {
			setSessionCookie("LSA", 2);
		}
	}
}

//webReporting----------------------------------------------------------------------------
function getRptSiteID(siteName) {
	switch(siteName) {
		case 'search390':
			return "DM521219LORB83EN3";
		case 'search400':
			return "DM521219NDDD83EN3";
		case 'searchcio':
			return "DM521219E7WS83EN3";
		case 'searchcrm':
			return "DM521219G7FN83EN3";
		case 'searchdatabase':
			return "DM521219AMNF83EN3";
		case 'searchdomino':
			return "DM5212194GSR83EN3";
		case 'searchenterpriselinux':
			return "DM521219OHCE83EN3";
		case 'searchmobilecomputing':
			return "DM52121901VD83EN3";
		case 'searchnetworking':
			return "DM521219EFAV83EN3";
		case 'searchsap':
			return "DM521219E3DE83EN3";
		case 'searchsecurity':
			return "DM5212192CBA83EN3";
		case 'searchsolaris':
			return "DM5212197KEV83EN3";
		case 'searchstorage':
			return "DM521219EGDW83EN3";
		case 'searchsystemsmanagement':
			return "DM521219EBBC83EN3";
		case 'searchvb':
			return "DM521219GGVD83EN3";
		case 'searchwebservices':
			return "DM5211140NRV83EN3";
		case 'searchwin2000':
			return "DM521219EGAV83EN3";
		case 'searchwindowsmanageability':
			return "DM521219CPNS83EN3";
		case 'whatis':
			return "DM521219MANF83EN3";
	}
}

function getURLParam(param) {
	var paramValue = param + "=";
	var searchValue = window.location.search.toLowerCase();
	var searchValueParam = "";
	
	if (searchValue.indexOf(paramValue) != -1) {
		searchValueParam = window.location.search.substring(searchValue.indexOf(paramValue),searchValue.length);
		if (searchValueParam.indexOf("&") != -1) {
			searchValueParam = searchValueParam.substring(0,searchValueParam.indexOf("&"));
		}
	}
	return searchValueParam;
}

var wlh = window.location.hostname.toLowerCase(window.location.hostname);
if (wlh.indexOf("whatis") != -1) {
	tt_rptSiteName = "whatis";
} else {
	tt_rptSiteName = wlh.substring(wlh.indexOf("search"),wlh.indexOf("."));
}
var tt_rptGlobalID = "DM5212204PCA83EN3";
var tt_rptSiteID = getRptSiteID(tt_rptSiteName);
var tt_rptMLC = tt_rptSiteName;
var tt_rptCampaignGoal = "";
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteCoBrandedHeader function-/////////////////////////////
function JSwriteCoBrandedHeader() {
	var cbheader = "";
	cbheader += "<nolayer>\n";
	cbheader += "<iframe src=\"" + JSbaseHref + "/coBrandHeaderRedirect/0,,sid"+ JSdigitalGuideID + ",00.html\" name=\"coBrandHeader\" width=\"100%\" height=\"65\" border=\"0\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\"></iframe>\n";
	cbheader += "</nolayer>\n";
	cbheader += "<ilayer id=\"coBrandHeader\" visibility=\"hide\" height=\"0\" left=\"0\" top=\"0\"></ilayer>\n";
	cbheader += "<layer src=\"" + JSbaseHref + "/coBrandHeaderRedirect/0,,sid" + JSdigitalGuideID + ",00.html\" visibility=\"show\" onload=\"moveToAbsolute(Survey.pageX, Survey.pageY);\"></layer>\n";

	return cbheader;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteHeader function-/////////////////////////////
function JSwriteHeader() {
	var hheader = "";
	if(navigator.appName == "Netscape" && parseInt(navigator.appVersion) < 5 || webReporting == "off") { } else {
		hheader += "<!-- BEGIN WEBSIDESTORY CODE v7.3 -->\n";
		hheader += "<!-- COPYRIGHT 1997-2001 WEBSIDESTORY, INC. ALL RIGHTS RESERVED. U.S.PATENT PENDING. Privacy notice at: http://websidestory.com/privacy -->\n";
		hheader += "<script language=\"JavaScript\">\n<!-- \n";
		hheader += "var _pn = \"\"; 	//page name(s)\n";
		hheader += "var wlp = window.location.pathname.replace(eval('/\\\\//g'),'-');\n";
		hheader += "var oidValue = \"\";\n";
		hheader += "//get path name and oid value\n";
		hheader += "if (wlp == \"/\") {\n";
		hheader += "	_pn = \"/home\";\n";
		hheader += "} else if (wlp.indexOf(\"-0,\") != -1) {\n";
		hheader += "	_pn = wlp.substring(0, wlp.indexOf(\"-0,\"));\n";
		hheader += "	oidValue = wlp.substring(wlp.indexOf(\"-0,\"),wlp.length);\n";
		hheader += "	oidSplit = oidValue.split(\",\");\n";
		hheader += "	oidValue = oidSplit[2];\n";
		hheader += "	_pn = _pn + \"--\" + oidValue;\n";
		hheader += "} else if (wlp.indexOf(\"-1,\") != -1) {\n";
		hheader += "	_pn = wlp.substring(0,wlp.indexOf(\"-1,\"));\n";
		hheader += "	oidValue = wlp.substring(wlp.indexOf(\"-1,\"),wlp.length);\n";
		hheader += "	oidSplit = oidValue.split(\",\");\n";
		hheader += "	oidValue = oidSplit[2];\n";
		hheader += "	_pn = _pn + \"--\" + oidValue;\n";
		hheader += "} else {\n";
		hheader += "	_pn = wlp;\n";
		hheader += "}\n";
		hheader += "//add URL parameters\n";
		hheader += "var searchValueOffer = getURLParam(\"offer\");\n";
		hheader += "var searchValueTrack = getURLParam(\"track\");\n";
		hheader += "if (searchValueOffer != \"\") _pn += \"--\" + searchValueOffer;\n";
		hheader += "if (searchValueTrack != \"\") _pn += \"--\" + searchValueTrack;\n";
		hheader += "_pn = _pn.replace(eval('/\\%/g'),'.');\n";
		hheader += "var _mlc=tt_rptMLC;	//multi-level content category\n";
		hheader += "var _seg=\"\"; // visitor segmentation\n";
		hheader += "var _cmp=Offer; // campaign analysis - id\n";
		hheader += "var _gp=tt_rptCampaignGoal;  // campaign analysis - goal page\n";
		hheader += "var _cmpn=\"\"; // campaign analysis - query name for id\n";
		hheader += "var _gpn=\"\"; // campaign analysis - query name for goal page\n";
		hheader += "var _cp=\"null\";  //campaign\n";
		hheader += "var _acct=tt_rptGlobalID + \";\" + tt_rptSiteID; 	//account number(s)\n";
		hheader += "var _pndef=\"title\";	//default page name\n";
		hheader += "var _ctdef=\"full\"; 	//default content category\n";
		hheader += "var _dlf=\"n\";	//download filter\n";
		hheader += "var _elf=\"n\";	//exit link filter\n";
		hheader += "var _epg=\"n\"; 	//event page identifier\n";
		hheader += "var _mn=\"we91\"; //machine name\n";
		hheader += "var _gn=\"ehg-techtarget.hitbox.com\"; //gateway name\n";
		hheader += "var _lp=location.protocol.indexOf('https')>-1?'https://':'http://';var _hcv=68;function _gf(x){return x.substring(x.lastIndexOf(\"/\")+1,x.length);};function ";
		hheader += "_wn(_nm){return(!_nm.indexOf(\"PUT\")&&_nm.indexOf(\"NAME\")>0)||(!_nm.indexOf(";
		hheader += "\"CONTENT\")&&_nm.indexOf(\"CATEGORY\")>0)};function _gd(x,w){var d=x.lastIndexOf(";
		hheader += "\"/\");var b=(w!=\"full\")?x.lastIndexOf(\"/\",d-2):x.indexOf(\"/\");return(b==d)?\"/\":";
		hheader += "x.substring(b,d);};function _vc(_ml){_mll=_ml.length-1;if(_ml.lastIndexOf(\"/\")";
		hheader += "==_mll){_ml=_ml.substring(0,_mll)}if(_ml.indexOf(\"/\")!=0)_ml=\"/\"+_ml;return _ml";
		hheader += "};function _ps(b,_pml){var l=location.pathname;if(b&&_wn(_pml)){return(";
		hheader += "_pndef==\"title\"&&document.title!=\"\")?document.title:_gf(l)?_gf(l):_pndef;}else";
		hheader += "{return _wn(_pml)?_gd(l,_ctdef):_vc(_pml,_pml.length-1);}};function _pm(_ml,";
		hheader += "_fml,h){if(_ml.indexOf(\";\")!=-1){_nml=_ml.substring(0,_ml.indexOf(\";\"));_rm=";
		hheader += "_ml.substring(_ml.indexOf(\";\")+1,_ml.length);_fml+=_ps(h,_nml)+\";\";_fp=_pm(_rm,";
		hheader += "_fml,h);return _fp;}else {_fml+=_ps(h,_ml);return _fml;}}var _sv=10;";
		hheader += "var _bn=navigator.appName;if(_bn.substring(0,9)==\"Microsoft\"){_bn=\"MSIE\";};var _bv=(";
		hheader += "Math.round(parseFloat(navigator.appVersion)*100));if((_bn==\"MSIE\")&&(parseInt(";
		hheader += "_bv)==2))_bv=301;var _rf=escape(document.referrer);_mlc=_pm(_mlc,\"\",false);_pn=";
		hheader += "_pm(_pn,\"\",true); // -->\n</script><script language=\"javascript1.1\"><!-- _sv=11; // -->\n</script>";
		hheader += "<script language=\"JavaScript1.1\" defer src=\"" + JSbaseHref + "/hbe.js\"></script>";
		hheader += "<script language=\"JavaScript\"><!-- if(_sv<11){if(document.cookie.indexOf(";
		hheader += "\"CP=\")!=-1){_ce=\"y\";}else{document.cookie=\"CP=null*; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT\";_ce=(document.cookie.indexOf(\"CP=\")!=-1)?\"y\":\"n\";};if((";
		hheader += "_rf==\"undefined\")||(_rf==\"\")){_rf=\"bookmark\";};document.write(\"<img src='\"+_lp+";
		hheader += "_gn+\"/HG?hc=\"+_mn+\"&hb=\"+escape(_acct)+\"&n=\"+escape(_pn)+\"&bn=\"+escape(_bn)+";
		hheader += "\"&bv=\"+_bv+\"&ce=\"+_ce+\"&ss=na&sc=na&dt=&sv=\"+_sv+\"&con=\"+escape(_ct)+\"&vcon=\"+";
		hheader += "escape(_mlc)+\"&epg=\"+_epg+\"&hp=u&cy=u&ja=na&ln=na&cp=\"+escape(_cp)+\"&pl=&cd=\"+";
		hheader += "\"1&hv=6&seg=\"+_seg+\"&rf=\"+_rf+\"' border=0 height=1 width=1>\");}";
		hheader += "// -->\n</script>\n";
		hheader += "<!-- END WEBSIDESTORY CODE  -->\n";
		//window.alert(hheader); //used to check the webReporting output
	}
	hheader += "<a name=\"top\"></a>\n";
	if (JSmemberUpdate == "on" && memUpd != -1 && JSmemberUpdateOverride != "on") {
		hheader += "<nolayer>\n";
		hheader += "<iframe src=\"" + JSbaseHref + "/memberUpdateCheck/1,,sid"+ JSdigitalGuideID + ",00.html\" name=\"memberUpdate\" width=\"1\" height=\"1\" border=\"0\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\"></iframe>\n";
		hheader += "</nolayer>\n";
		hheader += "<ilayer id=\"memberUpdate\" visibility=\"hide\" height=\"0\" left=\"0\" top=\"0\"></ilayer>\n";
		hheader += "<layer src=\"" + JSbaseHref + "/memberUpdateCheck/1,,sid" + JSdigitalGuideID + ",00.html\" visibility=\"hide\" onload=\"moveToAbsolute(memberUpdate.pageX, memberUpdate.pageY);\"></layer>\n";
	}
	if (dgHDW == "on" && coBrandPath[dgCTW + locationPathname] == "on") { 
		//cobranded header is on
		hheader += JSwriteCoBrandedHeader();
		hheader += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n";
		hheader += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"3\"></td></tr>\n";
		hheader += "<tr class=\"color1\">\n";
	} else {
		if (JSportfolioStrip != "off") {
			hheader += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" class=\"colorPortfolioBandBackground\">\n";
			hheader += "<tr class=\"colorPortfolioBandBackground\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"3\"></td>\n";
			hheader += "<tr class=\"colorPortfolioBandBackground\">\n";
			hheader +="<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\">\n";
			hheader += "<td width=\"100%\"><font class=\"portfolioBandText\"><b>Explore the TechTarget Network at </b><a href=\"http://searchtechtarget" + JSconfig + "\" class=\"portfolioBandTextHighlite\">SearchTechTarget.com</a>.</font></td>\n";
			hheader += "<td nowrap align=\"right\" class=\"portfolioBandText\">\n";
			if (JSuserInfo == "on") {
				if (loggedIn != -1) {
					hheader += "<i>You're logged in as:</i> <b>" + DisplayName + "</b>&nbsp;\n";
					hheader += "<a href=\"" + JSbaseHref + "/register/1,,sid" + JSdigitalGuideID + ",00.html\" class=\"portfolioBandTextHighlite\">Edit your Profile</a>&nbsp;<font class=\"portfolioBandTextHighlite\">|</font>\n";
					hheader += "<a href=\"" + ((JSlinkLogout != "") ? JSlinkLogout : JSbaseHref + "/logout/1,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"portfolioBandTextHighlite\">Log-out</a>\n";
				} else {
					hheader += "<a href=\"" + JSbaseHref + "/register/1,,sid" + JSdigitalGuideID + ",00.html\" class=\"portfolioBandTextHighlite\">Activate your FREE membership today</a>&nbsp;<font class=\"portfolioBandTextHighlite\">|</font>\n";
					hheader += "<a href=\"" + ((JSlinkLogin != "") ? JSlinkLogin : JSbaseHref + "/login/1,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"portfolioBandTextHighlite\">Log-in</a>\n";
				}
			} else {
				hheader += "&nbsp;\n";
			}
			hheader += "</td>\n";
			hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"8\" height=\"1\">\n";
			hheader += "</tr>\n";
			hheader += "<tr class=\"colorPortfolioBandBackground\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"3\"></td>\n";
			hheader += "</table>\n";
		}
		hheader += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n";
		hheader += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"3\"></td></tr>\n";
		hheader += "<tr class=\"color1\">\n";
		hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
		if (JSlogo == "on") {
			hheader += "<td colspan=\"2\"><a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/whome/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/home/0,,sid" + JSdigitalGuideID + ",00.html") + "\"><img src=\"" + JSbaseHref + "/images/header-logo-small.gif\" border=\"0\"></a></td>\n";
		} else {
			hheader += "<td colspan=\"2\">&nbsp;</td>\n";
		}
		hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
		hheader += "</tr>\n";
		if (JSisHomePage == "true" || JSbyline == "on") {
			hheader += "<tr class=\"color1\">\n";
			hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
			hheader += "<td colspan=\"2\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"62\" height=\"1\"><a href=\"http://www.techtarget.com\"><img src=\"" + JSbaseHref + "/images/tagline.gif\" alt=\"Part of the TechTarget Network of Enterprise IT Web Sites\" border=\"0\"></a></td>\n";
			hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
			hheader += "</tr>\n";
		}
		hheader += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"15\"></td></tr>\n";
		hheader += "<tr class=\"color1\">\n";
		hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
	}
	if (JSnavHeader == "on") {
		hheader += "<td class=\"color1\" width=\"100%\">" + JSwriteNavigation('header') + "</td>\n";
	} else {
		hheader += "<td width=\"100%\">&nbsp;</td>\n";
	}
	if (JSnavConference=="on") {
		hheader += "<td nowrap><a href=\"" + JSnavConferenceUrl + "\" class=\"color1\">FREE Conferences&nbsp;&gt;&gt;</a><br><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"2\"></td>\n";
	} else {
		hheader += "<td nowrap>&nbsp;</td>\n";
	}
	//vibrant media 1x1 pixel image request is contained in the cell below, REMOVED
	hheader += "<td>\n";
	hheader += "<img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"8\" height=\"1\"><IMG src=\"" + JSbaseHref + "/images/spacer.gif\" border=0 width=1 height=1>\n";
	hheader += "</td>\n";
	hheader += "</tr>\n";
	hheader += "</table>\n";
	if (JSnavHeader != "on") {
		hheader += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" class=\"color2\">\n";
		hheader += "<tr>\n";
		hheader += "<td>\n";
		hheader += "<img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"8\">";
		hheader += "</td>\n";
		hheader += "</tr>\n";
		hheader += "</table>\n";
	}
	if (JSsponsorBanner == "on") {
		if (JSisHomePage == "true") {
			var imageWidth = "8";
		} else {
			var imageWidth = "5";
		}
		hheader += "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n";
		hheader += "<tr><td colspan=\"3\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"10\"></td></tr>\n";
		hheader += "<tr>\n";
		hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=" + imageWidth + " height=\"1\"></td>\n";
		hheader += "<td width=\"100%\" class=\"color4\">\n";
		hheader += "<table cellpadding=\"0\" cellspacing=\"1\" border=\"0\" width=\"100%\">\n";
		hheader += "<tr bgcolor=\"#ffffff\">\n";
		hheader += "<td><img src=\"" + JSbaseHref + "/digitalguide/images/Misc/platinum_site_sponsor.gif\" width=\"77\" height=\"33\"></td>\n";
		hheader += "<td width=\"100%\">\n";
		if (JSshowInfoLink == "true") {
		    hheader += JSwriteADInfo(JSad9SiteName, JSad9PageName, JSad9Width, JSad9Height, JSad9Tile, JSad9KW, JSad9KV, JSadCategory, JSad9INT);
		}
		hheader += JSwriteAD(JSad9SiteName, JSad9PageName, JSad9Width, JSad9Height, JSad9Tile, JSad9KW, JSad9KV, JSad9INT);
		hheader += "</td>\n";
		hheader += "</tr>\n";
		hheader += "</table>\n";
		hheader += "</td>\n";
		hheader += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=" + imageWidth + " height=\"1\"></td>\n";
		hheader += "</tr>\n";
		hheader += "</table>\n";
	}

	if (JSisHomePage != "true") {
		if (JSpromo == "on" || JSadHeader == "on" || JSheaderWOTD == "on") {
			hheader += "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"5\">\n";
			hheader += "<tr><td>\n";
			if (JSheaderWOTD == "on") {
				hheader += JSwriteWOTD();
			} else if (JSpromo == "on") {
				hheader +=  JSwritePromo();
			} else {
				hheader += "&nbsp;\n";
			}
			hheader += "</td>\n";
			hheader += "<td width=\"100%\" align=\"right\" valign=\"middle\">\n";
			hheader += "<table width=\"468\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
			hheader += "<tr><td width=\"468\" align=\"right\">\n";
			if (JSadHeader == "on") {
				if (JSad1Type == "2" && JSshowInfoLink == "true") {
					hheader += JSwriteADInfo(JSad1SiteName, JSad1PageName, JSad1Width, JSad1Height, JSad1Tile, JSad1KW, JSad1KV, JSadCategory, JSad1INT);
				}
				if (JSad1Type == "2") {
					hheader += JSwriteAD(JSad1SiteName, JSad1PageName, JSad1Width, JSad1Height, JSad1Tile, JSad1KW, JSad1KV, JSad1INT);
				} else {
					hheader += JSwriteAdBanner(JSad1Id, JSad1SiteName, JSad1PageName, JSad1SearchPageName, JSad1BannerSize, JSad1KeyWord);
				}
			} else {
				hheader += "&nbsp;\n";
			}
			hheader += "</td></tr></table>\n";
			hheader += "</td>\n";
			hheader += "</tr>\n";
			hheader += "</table>\n";
		} else {
			hheader += "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"5\">\n";
			hheader += "<tr><td colspan=\"2\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"5\"></td></tr>\n";
			hheader += "</table>\n";
		}
	}

	document.writeln(hheader);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteFooter section-////////////////////////////
function JSwriteFooter() {
    JSwriteFooterTop();
    JSwriteFooterBottom();
}

function JSwriteFooterTop() {
	var ffooter = "";
	if (JSadFooter == "on" && JSisHomePage != "true") {
		ffooter += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"5\" width=\"100%\">\n";
		ffooter += "<tr><td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"60\"></td></tr>";
		ffooter += "<tr>";
		ffooter += "<td align=\"" + JSadFooterAlign + "\">";
		ffooter += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"468\">";
		ffooter += "<tr><td>";
		if (JSad2Type == "2" && JSshowInfoLink == "true") {
			ffooter += JSwriteADInfo(JSad2SiteName, JSad2PageName, JSad2Width, JSad2Height, JSad2Tile, JSad2KW, JSad2KV, JSadCategory, JSad2INT);
		}
		if (JSad2Type == "2") {
			ffooter += JSwriteAD(JSad2SiteName, JSad2PageName, JSad2Width, JSad2Height, JSad2Tile, JSad2KW, JSad2KV, JSad2INT);
		} else {
			ffooter += JSwriteAdBanner(JSad2Id, JSad2SiteName, JSad2PageName, JSad2SearchPageName, JSad2BannerSize, JSad2KeyWord);
		}
		ffooter += "</td></tr>";
		ffooter += "</table>\n";
		ffooter += "</td>";
		ffooter += "</tr>";
		ffooter += "</table>\n";
	}
	ffooter += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n";
	ffooter += "<tr><td colspan=\"3\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"15\"></td></tr>\n";
	ffooter += "<tr><td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td>\n";
	ffooter += "<td width=\"100%\">\n";
	if (JSnavFooter == "on") {
		ffooter += JSwriteNavigation("footer");
	} else {
		ffooter += "&nbsp;\n";
	}
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"9\" height=\"1\"></td></tr>\n";
	ffooter += "</table>\n";
	ffooter += "<table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\" border=\"0\">\n";
	ffooter += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td></tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "<td width=\"100%\" colspan=\"2\" class=\"textcolor1\">\n";
	ffooter += "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/waboutUs/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/aboutUs/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">About Us</a>&nbsp;&nbsp;|&nbsp;\n";
	ffooter += "<a href=\"" + JSbaseHref + "/contactUs/0,,sid" + JSdigitalGuideID + ",00.html\" class=\"color1-inline\">Contact Us</a>&nbsp;&nbsp;|&nbsp;\n";
	ffooter += "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wAdvertiseWithUs/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/buyersGuideForVendors/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">For Advertisers</a>&nbsp;&nbsp;|&nbsp;\n";
	ffooter += "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wforBusinessPartners/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/forBusinessPartners/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">For Business Partners</a>&nbsp;&nbsp;|&nbsp;\n";
	ffooter += "<a href=\"" + JSbaseHref + "/careersContacts/0,,sid" + JSdigitalGuideID + ",00.html\" class=\"color1-inline\">Career Center Contacts</a>\n";
	if (JSdigitalGuideName == "WhatIs") {
     		ffooter += "&nbsp;|&nbsp;<a href=\"http://whatis.techtarget.com/content/0,290959,sid9_gci815552,00.html\" class=\"color1-inline\">Awards</a>";
	}
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td></tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "<td colspan=\"2\" align=\"center\">";

	document.writeln(ffooter);
}

function JSwriteFooterBottom() {
	var ffooter = "";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"3\"></td></tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "<td width=\"100%\" colspan=\"2\" class=\"grayMid\">\n";
	ffooter += "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n";
	ffooter += "<tr bgcolor=\"#ffffff\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "<td width=\"100%\" colspan=\"6\"><img src=\"" + JSbaseHref + "/images/footerTaglineSite.gif\"><img src=\"" + JSbaseHref + "/digitalguide/images/footerTagline.gif\" width=\"353\" height=\"18\" alt=\"part of the TechTarget network if industry-specific IT Web sites\"></td>\n";
	ffooter += "<td valign=\"top\" rowspan=\"4\" class=\"color1\"><a href=\"http://www.techtarget.com\"><img src=\"/digitalguide/images/footerTTlogo.gif\" width=\"102\" height=\"104\" border=\"0\"></a></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr><td colspan=\"7\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"2\"></td></tr>\n";
	ffooter += "<tr><td colspan=\"7\" class=\"color1\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"5\"></td></tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "<td width=\"33%\" valign=\"top\" class=\"textcolor1\">\n";
	ffooter += "<b>APPLICATIONS</b><br>\n";
	ffooter += JSwritePortfolio(JSapps);
	ffooter += "<p>\n";
	ffooter += "<b>DEVELOPMENT</b><br>\n";
	ffooter += JSwritePortfolio(JSdev);
	ffooter += "<p>\n";
	ffooter += "<b>ENTERPRISE IT MANAGEMENT</b><br>\n";
	ffooter += JSwritePortfolio(JSeitm);
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "<td width=\"33%\" valign=\"top\" class=\"textcolor1\">\n";
	ffooter += "<b>CORE TECHNOLOGIES</b><br>\n";
	ffooter += JSwritePortfolio(JScore);
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "<td width=\"33%\" valign=\"top\" class=\"textcolor1\">\n";
	ffooter += "<b>PLATFORMS</b><br>\n";
	ffooter += JSwritePortfolio(JSplat);
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"5\" height=\"1\"></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr class=\"color1\"><td colspan=\"8\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"10\"></td></tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "<td colspan=\"7\" class=\"textcolor1\"><a href=\"http://www.ttconferences.com\" class=\"color1-inline\">TechTarget Enterprise IT Conferences</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href=\"http://www.techtarget.com\" class=\"color1-inline\">TechTarget Corporate Web Site</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href=\"http://www.techtarget.com/mediakit\" class=\"color1-inline\">Media Kit</a></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr class=\"color1\"><td colspan=\"8\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"10\"></td></tr>\n";
	ffooter += "<tr><td colspan=\"8\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"2\"></td></tr>\n";
	ffooter += "<tr bgcolor=\"#ffffff\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "<td colspan=\"7\" class=\"body\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"2\"><br>\n";
	ffooter += "Explore <a href=\"http://searchtechtarget" + JSconfig + "\" class=\"blackBold\">SearchTechTarget.com</a>, the guide to the TechTarget network of industry-specific IT Web sites.<br><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"2\"><br>\n";
	ffooter += "</td>\n";
	ffooter += "</tr>\n";
	ffooter += "</table>\n";
	ffooter += "</td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "</tr>\n";
	ffooter += "<tr class=\"color1\">\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "<td class=\"textcolor1\"><b>All Rights Reserved, <a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wcopyright/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/copyright/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1\">Copyright " + JScopyrightText + "</a>, TechTarget</b></td>\n";
	ffooter += "<td align=\"right\" class=\"textcolor1\"><a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wprivacy/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/privacy/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">Read our Privacy Statement</a></td>\n";
	ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
	ffooter += "</tr>\n";
	if (JSdigitalGuideName == "searchSAP") {
		ffooter += "<tr class=\"color1\">\n";
		ffooter += "<td><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"1\"></td>\n";
		ffooter += "<td colspan=\"4\" width=\"100%\" class=\"textcolor1\"><b>SearchSAP.com is a search service provided by TechTarget and is completely<BR> independent of and not affiliated with SAP AG.</b></td>\n";
		ffooter += "</tr>\n";
	}
	ffooter += "<tr class=\"color1\"><td colspan=\"4\"><img src=\"" + JSbaseHref + "/images/spacer.gif\" width=\"1\" height=\"5\"></td></tr>\n";
	ffooter += "</table>\n";
	if (JSadHeader == "on" && JSad1Type == "1") {
		//Modified for Lift Study use - PJH
		ffooter += JSwriteLSAdLayer(JSad1Id, JSad1SiteName, JSad1PageName, JSad1SearchPageName, JSad1BannerSize, JSad1KeyWord);
	}
	if (JSadFooter == "on" && JSad2Type == "1") {
		ffooter += JSwriteAdLayer(JSad2Id, JSad2SiteName, JSad2PageName, JSad2SearchPageName, JSad2BannerSize, JSad2KeyWord);
	}
	//Lift Study Survey Queue - PJH
	ffooter += "<NOLAYER>\n";
	ffooter += "<IFRAME src=\"" + JSbaseHref + "/liftStudySurveyQueue/0,,sid" + JSdigitalGuideID + ",00.html\" name=\"Survey\" width=\"0\" height=\"1\" border=\"0\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\">\n";
	ffooter += "</IFRAME>\n";
	ffooter += "</NOLAYER>\n";
	ffooter += "<ILAYER id=\"Survey\" visibility=\"hide\" height=\"0\" left=\"0\" top=\"0\"></ILAYER>\n";
	ffooter += "<LAYER src=\"" + JSbaseHref + "/liftStudySurveyQueue/0,,sid" + JSdigitalGuideID + ",00.html\" visibility=\"show\" onload=\"moveToAbsolute(Survey.pageX, Survey.pageY);\"></LAYER>\n";

	document.writeln(ffooter);
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteNavigation section-////////////////////////////
function JSwriteNavigation(loc) {
    //- Links and images must be declared to be able to customize navigation bar
    var home = "<a href=\"" + JSbaseHref + "/home/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_home.gif\" border=\"0\" alt=\"Home\"></a>";
    var whome = "<a href=\"" + JSbaseHref + "/whome/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_home.gif\" border=\"0\" alt=\"Home\"></a>";
    var definitionsSearch = "<a href=\"" + JSbaseHref + "/definitionsSearch/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_look_it_up.gif\" border=\"0\" alt=\"Look It Up\"></a>";
    var techHappenings = "<a href=\"" + JSbaseHref + "/techHappenings/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_tech_happenings.gif\" border=\"0\" alt=\"Tech Happenings\"></a>";
    var resourceCenter = "<a href=\"" + JSbaseHref + "/resourceCenter/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_fast_references.gif\" border=\"0\" alt=\"Fast References\"></a>";
    var jobSearch = "<a href=\"" + JSbaseHref + "/jobSearch/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_job_search.gif\" border=\"0\" alt=\"Job Search\"></a>";
    var integratedSearch = "<a href=\"" + JSbaseHref + "/integratedSearch/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_search.gif\" border=\"0\" alt=\"Search\"></a>";
    var news = "<a href=\"" + JSbaseHref + "/news/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_news.gif\" border=\"0\" alt=\"News\"></a>";
    var bestWebLinks = "<a href=\"" + JSbaseHref + "/bestWebLinks/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_best_web_links.gif\" border=\"0\" alt=\"Best Web Links\"></a>";
    var buyersGuide = "<a href=\"" + JSbaseHref + "/buyersGuide/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_buyers_guide.gif\" border=\"0\" alt=\"Buyer's Guide\"></a>";
    var discussions = "<a href=\"http://" + JSdigitalGuideName + ".discussions.techtarget.com/\"><img src=\"" + JSbaseHref + "/images/nav/nav_discussions.gif\" border=\"0\" alt=\"Discussions\"></a>";
    if (JSdigitalGuideID == 5) {
     var careers = "<a href=\"" + JSbaseHref + "/jobstorFrame/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_career_center.gif\" border=\"0\" alt=\"Career Center\"></a>";
} else {
    var careers = "<a href=\"" + JSbaseHref + "/careers/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_career_center.gif\" border=\"0\" alt=\"Career Center\"></a>";
}
    var whitepapers = "<a href=\"" + JSbaseHref + "/whitepapers/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_whitepapers.gif\" border=\"0\" alt=\"White Papers\"></a>";
    var downloads = "<a href=\"" + JSbaseHref + "/downloads/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_downloads.gif\" border=\"0\" alt=\"Downloads Center\"></a>";
    var events = "<a href=\"" + JSbaseHref + "/events/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_events.gif\" border=\"0\" alt=\"Events\"></a>";
    if (JSdigitalGuideID != 9) {
        var bookstore = "<a href=\"" + JSbaseHref + "/specialOffers/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_books_training_research.gif\" border=\"0\" alt=\"Books, Training & Research\"></a>";
    } else {
        var bookstore = "<a href=\"" + JSbaseHref + "/specialOffers/0,,sid" + JSdigitalGuideID + ",00.html\"><img src=\"" + JSbaseHref + "/images/nav/nav_books.gif\" border=\"0\" alt=\"Books & Training\"></a>";
    }
    nnav = JSnav.split(",");
    for (var i = 0; i < nnav.length; i++) nnav[i] = eval(nnav[i]);
    var nnavigation = "";
    nnavigation += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n";
    nnavigation += "<tr>\n";
    nnavigation += "<td>";
    nnavigation += "<nobr>" + nnav.join("<img src=\"" + JSbaseHref + "/images/nav/nav_spacer.gif\" border=\"0\">") + "</nobr>";
    nnavigation += "</td>\n";
    nnavigation += "</tr>\n";
    nnavigation += "</table>\n";

    return nnavigation;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteOptionalNavigation section-////////////////////////////
function JSwriteOptionalNavigation() {
    //- Links must be declared to be able to customize navigation bar
    var aboutUs = "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/waboutUs/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/aboutUs/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">About Us</a>";
    var contactUs = "<a href=\"" + JSbaseHref + "/contactUs/0,,sid" + JSdigitalGuideID + ",00.html\" class=\"color1-inline\">Contact Us</a>";
    var mediaKit = "<a href=\"http://www.techtarget.com/mediakit/\" class=\"color1-inline\">Media Kit</a>";
    var homePage = "<a href=\"http://www.techtarget.com/\" class=\"color1-inline\">TechTarget.com HomePage</a>";
    var forAdvertisers = "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wAdvertiseWithUs/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/buyersGuideForVendors/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">For Advertisers</a>";
    var forBusinessPartners = "<a href=\"" + ((JSdigitalGuideName == "WhatIs") ? JSbaseHref + "/wforBusinessPartners/0,,sid" + JSdigitalGuideID + ",00.html" : JSbaseHref + "/forBusinessPartners/0,,sid" + JSdigitalGuideID + ",00.html") + "\" class=\"color1-inline\">For Business Partners</a>";
    var careersContacts = "<a href=\"" + JSbaseHref + "/careersContacts/0,,sid" + JSdigitalGuideID + ",00.html\" class=\"color1-inline\">Career Center Contacts</a>";
    var awards = "<a href=\"http://whatis.techtarget.com/content/0,290959,sid9_gci815552,00.html\" class=\"color1-inline\">Awards</a>";

    var oNavTop = new Array(aboutUs,contactUs,mediaKit,homePage);
    var oNavBottom = new Array();
    if (JSnav.indexOf("buyersGuide") != -1 || JSdigitalGuideName == "WhatIs") {
        oNavBottom[oNavBottom.length] = forAdvertisers;
        oNavBottom[oNavBottom.length] = forBusinessPartners;
    }
    if (JSnav.indexOf("careers") != -1 || JSnav.indexOf("jobSearch") != -1) {
        oNavBottom[oNavBottom.length] = careersContacts;
    }
    if (JSdigitalGuideName == "WhatIs") {
        oNavBottom[oNavBottom.length] = awards;
    }

    var oonavigation = "";
    oonavigation += "<td class=\"textcolor1\" width=\"100%\">";
    oonavigation += oNavTop.join(" | ") + "<br>";
    oonavigation += oNavBottom.join(" | ");
    oonavigation += "</td>\n";
    return oonavigation;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwritePromo section-////////////////////////////
function JSwritePromo() {
    var ppromo = "";
    if (!document.layers) {
    ppromo += "<iframe src=\"" + JSbaseHref + "/headerPromo/0,,sid" + JSdigitalGuideID + ",00.html\" border=\"0\" frameborder=\"0\" width=\"283\" height=\"114\" scrolling=\"no\"></iframe>\n";
    }
    if (document.layers) {
    ppromo += "<ilayer src=\"" + JSbaseHref + "/headerPromo/0,,sid" + JSdigitalGuideID + ",00.html\" id=\"promo1\" width=\"283\" height=\"114\" visibility=\"show\"></ilayer>\n";
    }
    return ppromo;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwriteWOTD section-////////////////////////////
function JSwriteWOTD() {
    var wotd = "";
    if (!document.layers) {
    wotd += "<iframe src=\"" + JSbaseHref + "/headerWOTD/0,,sid" + JSdigitalGuideID + ",00.html\" border=\"0\" frameborder=\"0\" width=\"250\" height=\"75\" scrolling=\"no\"></iframe>\n";
    }
    if (document.layers) {
    wotd += "<ilayer src=\"" + JSbaseHref + "/headerWOTD/0,,sid" + JSdigitalGuideID + ",00.html\" id=\"wotd1\" width=\"250\" height=\"75\" visibility=\"show\"></ilayer>\n";
    }
    return wotd;
}

///////////////////////////////////////////sponsorMove///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function sponsorMove() {
	var moveX=3;
	var moveY=5;
	NN4=(document.layers) ? 1 : 0;
	NN6=(document.getElementById && !document.all) ? 1 : 0;
	IE=(document.all) ? 1 : 0;

	if (IE) {
		var agt=navigator.userAgent.toLowerCase();
		var is_mac=(agt.indexOf("mac")!=-1);
		var is_major=parseInt(navigator.appVersion);
		var msie_vers_start=agt.indexOf("msie")+5;
		var msie_real_vers=parseFloat(agt.substring(msie_vers_start, msie_vers_start+3));
		var mac45=(is_mac && (msie_real_vers < 5)) ? 1 : 0;

		if (mac45) {
			temp=document.all.divMove.innerHTML;
			//alert(temp);
			document.all.divMove.innerHTML="";
			document.all.divHolder.innerHTML=temp;
		} else {
			divHolder.getRealLeft = getRealLeft;
			divHolder.getRealTop = getRealTop;

			function getRealLeft() {
				xPos = this.offsetLeft;
				tempEl = this.offsetParent;
				while (tempEl != null) {
					xPos += tempEl.offsetLeft;
					tempEl = tempEl.offsetParent;
				}
				return xPos;
			}

			function getRealTop() {
				yPos = this.offsetTop;
				tempEl = this.offsetParent;
				while (tempEl != null) {
					yPos += tempEl.offsetTop;
					tempEl = tempEl.offsetParent;
				}
				return yPos;
			}

			Left=divHolder.getRealLeft();
			Top=divHolder.getRealTop();

			divMove.style.left=Left+moveX;
			divMove.style.top=Top+moveY;

			divMove.style.visibility="visible";
		}
	} else if (NN4) {
		document.layerMove.moveToAbsolute(document.layerHolder.pageX+moveX, document.layerHolder.pageY+moveY);
		document.layerMove.visibility='show';
	} else if (NN6) {
		tempDiv=document.getElementById("Holder");
		Top=document.defaultView.getComputedStyle(tempDiv, "").getPropertyValue("top");
		Left=document.defaultView.getComputedStyle(tempDiv, "").getPropertyValue("left");

		if (Top.indexOf("px")) {
			Top=Top.slice(0,-2);
			Top=Top*1;
		}

		if (Left.indexOf("px")) {
			Left=Left.slice(0,-2);
			Left=Left*1;
		}

		document.getElementById("divMove").style.top=Top+moveY;
		document.getElementById("divMove").style.left=Left+moveX;
		document.getElementById("divMove").style.visibility="visible";
	}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////-JSwritePortfolio section-////////////////////////////
function JSwritePortfolio(type) {
    var pportfolio = "";
    var cconfig = (JSconfig == "" || JSconfig == "null" || JSconfig == "undefined") ? ".techtarget.com" : JSconfig;
    for (var i = 0; i < type.length; i++) {
	if (type[i] == "WhatIs") {
		pportfolio += "<a href=\"http://" + type[i] + cconfig + "/\" class=\"footer-color1-inline\">Whatis\.com</a><br>\n";
	} else {
		pportfolio += "<a href=\"http://" + type[i] + cconfig + "/\" class=\"footer-color1-inline\">" + type[i].substring(0,1).toUpperCase() + type[i].substring(1) + "\.com</a><br>\n";
	}
    }
    return pportfolio;
}




function checkEmail (emailStr) 
{
	
	var num_error=0;
	var NewemailStr="";
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)\\{\\}\/%?\\$\\*\\^\\|\\.=&`~#!<>@,;:\\\\\\\"\\.\\[\\]"
	var invalidchars="\\(\\)\\{\\}\/%?\\$\\s\\^~#!&`\\*\\|=@<>,;:\\\\\\\"\\[\\]'"
	var validChars="\[^\\s" + specialChars + "\]"
	var validChars1="\[^\\s" + invalidchars + "\]"
	var quotedUser=/(\"[^\"]*\"\')/
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var atom1=validChars1 + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var word1="(" + atom1 + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" +  word1 + "(" + word1 + ")*$")

	if (emailStr == "") {
		// change to false
		return "An email address is required";
	} else {
		var NewemailStr=emailStr;
		// need to trim space beginning and the end each email, then pass back to the form. 
	}

	
	var matchArray=NewemailStr.match(emailPat);
	
	if (matchArray==null) {
		return "Email address seems incorrect (check @ and .'s)";
	}
	var user=matchArray[1];
	var domain=matchArray[2];

	if (user.match(userPat)==null) {
	    return "The username in the email address doesn't seem to be valid.";
	}

	if(user.length>0)
	{
		if((user.charAt(0)=="-")||(user.charAt(0)=="_"))	
		{
			return "The username in the email address doesn't seem to be valid.";
		} else if((user.charAt(user.length-1)=="_")||(user.charAt(user.length-1)=="-"))
		       {
				return "The username in the email address doesn't seem to be valid.";
		      }				 
	}

	
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) 
      {
	        for (var i=1;i<=4;i++)
              {
		    if (IPArray[i]>255) 
                {
		        return "Destination IP address in the email address is invalid!";
		    }
	        }
	   return true;
	}
	
	var domainArray=domain.match(domainPat);	
	if (domainArray==null) {
		return "The domain name in the email address doesn't seem to be valid.";
	}

	if(domain.length>0)
	{
		if(domain.charAt(0)==".")	
		{
			return "The domain name in the email address doesn't seem to be valid.";
		} else if(domain.charAt(domain.length-1)==".")
		         {

			return "The domain name in the email address doesn't seem to be valid.";

		         } else {
			var errors=0;
			for(var k=1; k<domain.length; k++)
			{
				if(domain.charAt(k)==".")
					errors++;
				if((domain.charAt(k)==".") && (domain.charAt(k+1)=="."))
			              {
				     errors=errors + 5;
				     k=domain.length;
				}
			}
			if(errors>4)
			{
				return "The domain name in the email address doesn't seem to be valid.";
			}
		        }				 
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	
	var len=domArr.length;
	if (domArr[domArr.length-1].length < 2) 
      {
	   return "The email address must end in a valid domain.";
	}
	
	if (len<2)
              {
	   return "This email address is missing a hostname!";
	}
	
	return "good";
}

function validateEmail (emailAddr) 
{
	var emailAlert = checkEmail(emailAddr)

	if (emailAlert == 'good')
		return true;
	else 
	{
		alert(emailAlert);
		return false;
	}
}



function buildURL(form, site) {

	// search400 uses "AS/400" for it's short name, so regexp out the "/"
	var regexp = /(\/)/g;;
	var name = site.replace(regexp,"");
	var regexp = / /g;;
	var name = name.replace(regexp,"");	// Get rid of spaces, for "Systems Management"

	var URL = form.URL.value;
	URL += "&email=" + form.email.value;

	if (validateEmail(form.email.value)) {
		window.open( URL, name, 'height=400,width=285,scrollbars=yes');
	}
}

function addRedirectString(aCollection) {
	//redirectString is built in JSvariables, this function is called from the Footer template
	var i = 0;
	for(i = 0; i < aCollection.length; i++) {
		if (aCollection[i].href.indexOf("mailto:") == -1 && aCollection[i].href.indexOf("javascript:") == -1 && pathCoBrand[aCollection[i].pathname.substring(0, aCollection[i].pathname.indexOf("/"))] == "on") {
			aCollection[i].href = redirectString + aCollection[i].href;
		}
	}	
}

//-end of file-