function OpenHelp(){	OpenNewWindow(HelpURL,'Help',640,480)}function DrawSplitPageJump(expand){	retV = ''	+	'<tr height="23" bgcolor="FAFAFF" class="blk_Font_11px_Bold">'	+	'<td colspan="2" align="center">'	+	'<table border="0"  width="800" >'	+	'<tr class="blk_Font_11px"><td style="padding-left: 16px;" align="left">Engine:&nbsp;&nbsp;'	+		'<form name="frmJump1" style="display:inline;">'	+		'<select name="cboJumpList" class="button" id="cboEngineList">'		var selIndex = 0;	for(var i=0;i < JumpPages.length;i++)	{		var Page = JumpPages[i].split('|');		var sel = '';		if(document.location.href.indexOf(Page[0]) > 0)		{			sel = ' selected="true" '			selIndex = i;		}		retV +='<option value="' + Page[0] + '" ' + sel + '>' + Page[1] + '</option>'	}	retV +=	'</select>'	+	'&nbsp;<input type="button" name="Go" class="button" value="Go" OnClick="Javascript:if(document.frmJump1.cboEngineList.selectedIndex > -1){document.location.replace(document.frmJump1.cboEngineList[document.frmJump1.cboEngineList.selectedIndex].value);}">'	+	'</td><td width="100%" align="right" valign="bottom" style="padding-right: 16px;">'	+	' <a Title="Previous Page" href="Javascript:" OnClick="Javascript:'	if(selIndex > 0)	{		var prevp = JumpPages[selIndex-1].split('|');		retV += 'document.location = \'' + prevp[0] + '\''	}	retV +=	';return false;"><img src="page_l.gif" border="0" width="15" height="15"></a> '	retV +=	'&nbsp;' + (selIndex +1) + ' of ' + JumpPages.length + '&nbsp;'	+ ' <a Title="Next Page" href="Javascript://" OnClick="Javascript:'	if(selIndex < JumpPages.length -1)	{		var nextp = JumpPages[selIndex+1].split('|');		retV += 'document.location = \'' + nextp[0] + '\''	}	retV +=	';return false;"><img src="page_r.gif" border="0" width="15" height="15"></a> '	retV +=	'</form>'	+	'</td>'	+	'<td align="right" style="padding-left: 16px;">'	if(expand == true)	{			if(CurPage == 7)				var selStr = 'Graphs'			else				var selStr = 'Nodes' 			retV += '<img border="0" id="i-AllNodes" align="bottom" title="Collapse All ' + selStr + '" src="maximize2.gif" onclick="javascript:ToggleAllNodes(this, \'' + selStr + '\');">'	}	else		retV += '&nbsp;'	retV +=	'</td>'	+	'</tr></table></td></tr>'	document.write(retV);}	function Jump(EList)	{		if(EList.selectedIndex == -1)			return;		var selVal = EList.options[EList.selectedIndex].value;		var obj = document.getElementsByName(selVal);		if(obj.length == 0)			return;		var p= obj[0];				var y= p.offsetTop;		while( (p= p.offsetParent) != null)		{			y= y + p.offsetTop;		}		scrollTo( 0, y);	}	function Jump2D(EList,KList)	{		if(EList.selectedIndex == -1 || KList.selectedIndex == -1)			return;		var obj = document.getElementsByName(EList.options[EList.selectedIndex].value + '-' + KList.options[KList.selectedIndex].value);		var p= obj[0];				if(obj.length == 0)			return;		var y= p.offsetTop;		while( (p= p.offsetParent) != null)		{			y= y + p.offsetTop;		}		scrollTo( 0, y);	}	function SetArrow(val)	{		var retV = '';		if(isNumeric(val))		{			var t = /\+/g;			val = val.replace(t,'');			if (val == 0)					retV = val + '&nbsp;<img width="8" height="0" src="equal.gif">' ;			else if(val > 0)				retV = val + '&nbsp;<img width="8" height="8" src="up.gif">';			else				retV = val + '&nbsp;<img width="8" height="8" src="down.gif">';		}		else		{			retV = val + '&nbsp;<img height="0" width="8" src="equal.gif">';		}		return retV;	}			function isNumeric(n)	{		var NumStr = new String(n)		var regex = /[^0-9\-\+]/		return !regex.test(NumStr)	}	function Draw2DTables(myData, ColSet)	{		myData = SplitData(myData)		for (var i in myData)		{			Draw2DTable(myData[i], ColSet)		}		if(myData.length == 0)		{			retV = ''			retV += '<table class="reportheader" cellspacing="0" cellpadding="0" align="center" border="0"><tr> '				+ '<td class="headerleft"></td>'				+ '<td class="headercenter">No Results Found.</td>'				if(Suppress == false)					retV += '<td class="headercenter" width="19"><a href="Javascript:OpenHelp();"><img src="help_card.gif" alt="Help" border="0"></a></td>'				retV += '<td class="headerright"></td>'				+ '</tr></table>'				+ '<table class="reportbody" cellspacing="0" cellpadding="0">'				+ '<tr bgcolor="#EDEDED"><td>&nbsp;</td></tr></table><BR>'			document.write(retV)		}	}	function SplitData(myData)	{		var retData = new Array();		for(var i in myData)		{		//Find 1st Dim			var fndfirst = '';			var fndsecond = '';			for(var j in retData)			{							if(retData[j][0][0][0] == myData[i][0])					fndfirst = j			}			if (fndfirst == '')			{				fndfirst = retData.length				retData[retData.length] = new Array();			}		//Find 2nd Dim			for(var k in retData[fndfirst])			{				if(retData[fndfirst][k][0][1] == myData[i][1])					fndsecond = k					}			if (fndsecond == '')			{				fndsecond = retData[fndfirst].length				retData[fndfirst][fndsecond] = new Array();			}					//Add Array			var obj = retData[fndfirst][fndsecond]			var fndthird = obj.length			obj[fndthird] = new Array();			for(var l in myData[i])			{				obj[fndthird][l] = myData[i][l]			}		}		return retData	}	function Draw2DTable(myData, ColSet)	{		var retV = ''				//Table Header		retV += '<a name="' + myData[0][0][0] + '"></a>'		retV += '<table class="reportheader" cellspacing="0" cellpadding="0" align="center" border="0">'        	+ '<tr> '		+ '<td class="headerleft"></td>'		+ '<td class="headercenter">' + myData[0][0][0] + '</td>'		if(Suppress == false)			retV += '<td class="headercenter" width="19"><a href="Javascript:OpenHelp();"><img src="help_card.gif" alt="Help" border="0"></a></td>'		retV += '<td class="headerright"></td>'		+ '</tr>'		+ '</table>'		+ '<table class="reportbody" cellspacing="0" cellpadding="0">'			//Columns Labels		retV += '<tr bgcolor="#EDEDED"><td width="6"></td>'		for (var i in ColSet)		{			if(i == 0 )				retV += '<td valign="top" style="padding-left: 16px;" class="engine_Cell_Head" width="' + ColWidths[i] + '">' + ColSet[i] + '</td>'			else				retV += '<td valign="top" align="right" style="padding-right: 16px;" class="engine_Cell_Head" width="' + ColWidths[i] + '">' + ColSet[i] + '</td>'		}		retV += '<td width="6"></td></tr>'				//Data		for (var i in myData)		{			DivCnt++;			if (i%2)				var bgcolor = ' bgcolor="EDEDED" '			else				var bgcolor =  'bgcolor="DADADA" '			for(var k in myData[i])			{				for (var j in ColSet)				{					if(j == 0 )					{						if (k < 1)						{							retV += '<tr ' + bgcolor + '><td></td>'							retV += '<td valign="top" colspan="' + (ColSet.length) + '" ><img src="drillDownSelected.gif" id="i-' + CleanForID(myData[0][0][0] + '-' + myData[i][k][1]) + '" OnClick="Javascript:ToggleLayer(\'' + CleanForID(myData[0][0][0] + '-' + myData[i][k][1]) + '\');" >&nbsp;' 							if( typeof(Reports[7]) != 'undefined')							{								if(CurPage == 2)									retV += '<a href="Javascript:OpenNewWindow(\'Trend-' + EncodeReportData(myData[i][k][0] + '-' + myData[i][k][1]) + '.png\',\'TrendGraph\',600,270)" Title="View Trend Graph">'								else if(CurPage == 3)									retV += '<a href="Javascript:OpenNewWindow(\'Trend-' + EncodeReportData(myData[i][k][1] + '-' + myData[i][k][0]) + '.png\',\'TrendGraph\',600,270)" Title="View Trend Graph">'							}							retV += '<b>' + FormatData(myData[i][k][parseInt(j)+1], ColSet[parseInt(j)-1]) + '</b>'							if( typeof(Reports[7]) != 'undefined' && (CurPage == 2 || CurPage == 3))								retV += '</a>'														if(CurPage != 8)							{								var ext = (myData[i].length == 1)? ' item' : ' items';								if (myData[i][0][3] == 0 || myData[i][0][3] == -1)									var bpVal = ", No page found)"								else									var bpVal = ', Best Position: ' + myData[i][0][3] + ')'								retV += '&nbsp;&nbsp;(' + myData[i].length + ext + bpVal							}							retV += '</td>'							retV += '<td ></td></tr>'						}					}					else if(j == 1)						retV += '<tr ' + bgcolor + ' id="r-' + CleanForID(myData[0][0][0] + '-' + myData[i][k][1]) + '"><td></td><td valign="top" style="padding-left: 32px;" >' + FormatData(myData[i][k][parseInt(j)+1], ColSet[parseInt(j)-1]) + '</td>'					else						retV += '<td valign="top" align="right" style="padding-right: 16px;">' + FormatData(myData[i][k][parseInt(j)+1], ColSet[parseInt(j)-1]) + '</td>'				}				retV += '<td valign="top" align="right" style="padding-right: 16px;">' + FormatData(myData[i][k][parseInt(j)+2], ColSet[parseInt(j)]) + '</td>'				retV += '<td width="6"></td></tr>'				document.write(retV);				retV = '';			}		}		//End Table		retV += '</table><BR>'		document.write(retV);		}	function EncodeReportData(myVal)	{		var t = /\`|\/|\\|\:|\*|\?|\""|\<|\>|\||\'/g;		myVal = myVal.replace(t,"_");		return myVal 	}	function CleanForID(sVal)	{		var t = /\'|\"|\<|\>|\:|\=|\/|\;|\.|\s|\?|\#/gi; 		sVal = sVal.replace(t, ""); 		return sVal	}	function ToggleLayer(glayer)	{		var timg = 'i-' + glayer		var trow = 'r-' + glayer		for(var i=0;i < document.images.length; i++)		{			var obj = document.images[i];			if(obj.id == timg)			{				if(obj.src.indexOf("drillDown.gif") > -1)					obj.src = "drillDownSelected.gif";				else if(obj.src.indexOf("drillDownSelected.gif") > -1)									obj.src = "drillDown.gif"				else if(obj.src.indexOf("minimize2.gif") > -1)					obj.src = "maximize2.gif";				else if(obj.src.indexOf("maximize2.gif") > -1)					obj.src = "minimize2.gif";			}		}		var x = document.getElementsByTagName('tr');		for (var i=0;i<x.length;i++)		{			var obj = x[i];			if(obj.id == trow)			{				var style2 = x[i].style;				style2.display = style2.display == "none"? "":"none";			}		}	}		function SetKeywords(eng,keys)	{		if(eng.selectedIndex == -1)			return;		var selEng = eng[eng.selectedIndex].value		var sArray = Jump2[selEng]		for (var i=(keys.options.length-1); i>=0; i--)		{ 			keys.options[i] = null; 		} 		for(var i in sArray )		{			keys.options[keys.length] = new Option( sArray[i], sArray[i], false, false);		}	}//Jump	function OpenNewWindow(url,title,width,height)	{		window.open(url,title,'scrollbars=yes,resizable=yes,toolbar=no,menubar=no,width=' + width + ',height=' + height);	}	function DrawHeader()	{		var retV = '';		retV += '<table border="0" width="820" cellspacing="0" cellpadding="0"><tr height="25">'		var cnt = 0;		for(var i in Reports)		{			if(CurPage == i)			{				retV += '<td cellspacing="0" cellpadding="0" class="menusel_lc" ></td>'				+	'<td align="center" cellspacing="0" cellpadding="0" width="' + Reports[i][3] + '" class="menusel_c" >'				+	'<a href="' + Reports[i][2] + '" title="' + Reports[i][1] + '" cellspacing="0" cellpadding="0" >' + Reports[i][0] + '</a>'				+	'</td>'				+	'<td cellspacing="0" cellpadding="0" class="menusel_rc" ></td>'			}			else			{				retV += '<td cellspacing="0" cellpadding="0" class="menu_lc" ></td>'				+	'<td align="center" cellspacing="0" cellpadding="0" width="' + Reports[i][3] + '" class="menu_c" >'				+	'<a href="' + Reports[i][2] + '" title="' + Reports[i][1] + '">' + Reports[i][0] + '</a></nobr>'				+	'</td>'				+	'<td cellspacing="0" cellpadding="0" class="menu_rc" ></td>'			}			cnt += Reports[i][3] + 12		}		if((820 - cnt) > 0)			retV += '<td style="border-bottom: 1px solid #CCCCCC;" width="' + (820 - cnt) + '">&nbsp;</td></tr></table>'		document.write (retV)	}function DrawTitle(){	var retV = ''	retV += '<table bgcolor="FAFAFF" width="820" style="border: 1px solid #CCCCCC;border-top: none;" cellspacing="0" cellpadding="0">'		+ '<tr height="3" bgcolor="FFFFFF"><td colspan="2"></td></tr>'		+ '<tr><td colspan="2" height="10" ></td></tr>'		+ '<tr> '		+ '<td class="blk_Font_11px_Bold" width="600" style="padding-left: 16px;">' + Reports[CurPage][0] + ' Report for: '		var Sites = DomainsStr.split(",");		for (var i = 0; i < Sites.length; i++)		{			var site = Sites[i].replace(" ","");			retV += '<a href="Javascript:OpenNewWindow(\'http://' + site + '\',\'site\',800,600);"><font style="font-weight:bold;font-size:11px;text-decoration : none;color : #E39215;font-family : Arial, Helvetica, sans-serif;">' + site + '</font></a>'			if (i < Sites.length -1)				retV += ', ';		}		retV	+= '</td><td align="right" style="padding-right: 16px;"><font class="blk_Font_11px_Bold">' + DateStr + '</font></td>'		+ '</tr>'		+ '<tr><td class="blk_Font_11px" colspan="2" style="padding-left: 16px;padding-right: 16px;">' + Reports[CurPage][1] + '<BR><BR></td>'		+ '</tr>'		+ '</table><table><tr><td height="1"></td></tr></table>'		+ '<table bgcolor="FAFAFF" width="820" style="border: 1px solid #CCCCCC;" cellspacing="0" cellpadding="0">'	document.write(retV);}	function ExpandAllNodes()	{		for(var i=0;i < document.images.length; i++)		{			var obj = document.images[i];			if(obj.id.indexOf('i-') == 0)			{				if(obj.src.indexOf("drillDown.gif") > -1)										obj.src = "drillDownSelected.gif"				else if(obj.src.indexOf("minimize2.gif") > -1)					obj.src = "maximize2.gif";			}		}		var x = document.getElementsByTagName('tr');		for (var i=0;i<x.length;i++)		{			var obj = x[i];			if(obj.id.indexOf('r-') == 0)			{				var style2 = x[i].style;				style2.display = "";							}		}	}	function CollapseAllNodes()	{		for(var i=0;i < document.images.length; i++)		{			var obj = document.images[i];			if(obj.id.indexOf('i-') == 0)			{				if(obj.src.indexOf("drillDownSelected.gif") > -1)										obj.src = "drillDown.gif"				else if(obj.src.indexOf("maximize2.gif") > -1)					obj.src = "minimize2.gif";			}		}		var x = document.getElementsByTagName('tr');		for (var i=0;i<x.length;i++)		{			var obj = x[i];			if(obj.id.indexOf('r-') == 0)			{				var style2 = x[i].style;				style2.display = "none";							}		}	}	function ToggleAllNodes(myObj, eType)	{		if(myObj.src.indexOf("maximize2.gif") > -1)		{			CollapseAllNodes();			myObj.title = 'Expand All ' + eType		}		else		{			ExpandAllNodes();			myObj.title = 'Collapse All ' + eType		}	}	function FormatData(myData,ColName)	{		//Check against Competitors		if(typeof(Competitors) != 'undefined')		{			for(var i = 0; i < Competitors.length; i++)			{				if(Competitors[i] == myData)					myData = myData + ' *';			}		}		if(ColName == "Change")		{			myData = SetArrow(myData);		}		else		{			var re = new RegExp(/\<a href\=/i);			if(! myData.match(re))			{				var t;				re = new RegExp(/\http:\/\//i);				if (myData.match(re))				{					var myData2 = ''					t = /([^ \t\n\r\f\v\/]{10,}?)/g;					myData2 = myData.replace(t,'$1<WBR>');					t = /\//g;					myData2 = myData2.replace(t,"/<wbr>");					myData = '<a href="Javascript:OpenNewWindow(\'' + myData + '\',\'vis\',800,500);" Title="' + myData + '">' + myData2 + '</a>'				}				else				{					t = /(\S{8,}?)/g;					myData = myData.replace(t,'$1<WBR>');				}			}		}		return myData	}