// Globals
var gAnmCyc = 0;

// Function to clear all hover areas on "whylaunch" ad animation
function clearLaunchHovers()
{
	$("#lftpneimg").attr("src","/a/i/lau_lftpnl_off.png");
	$("#toplftimg").attr("src","/a/i/lau_toplft_off.png");
	$("#toprgtimg").attr("src","/a/i/lau_toprgt_off.png");
	$("#rgtpneimg").attr("src","/a/i/lau_rgtpnl_off.png");
	$("#btmrgtimg").attr("src","/a/i/lau_btmrgt_off.png");
	$("#btmlftimg").attr("src","/a/i/lau_btmlft_off.png");

	$("#lftpnetxt").css("display","none");
	$("#toplfttxt").css("display","none");
	$("#toprgttxt").css("display","none");
	$("#rgtpnetxt").css("display","none");
	$("#btmrgttxt").css("display","none");
	$("#btmlfttxt").css("display","none");
}

function clearAttendHovers()
{
	$("#toplftimg").attr("src","/a/i/att_toplft_off.png"); 
	$("#toprgtimg").attr("src","/a/i/att_toprgt_off.png"); 
	$("#btmrgtimg").attr("src","/a/i/att_btmrgt_off.png"); 
	$("#bottomimg").attr("src","/a/i/att_bottom_off.png"); 
	$("#btmlftimg").attr("src","/a/i/att_btmlft_off.png"); 

	$("#toplfttxt").css("display","none");
	$("#toprgttxt").css("display","none");
	$("#btmrgttxt").css("display","none");
	$("#bottomtxt").css("display","none");
	$("#btmlfttxt").css("display","none");
}

function assignSelectedTab()
{
	var sUrl = new String(window.location);

	// Set default to add events popup...
	bDoPop = true;

	if (sUrl.indexOf("/launch/") > -1)
	{
		$("#launch_nav").addClass("launch_on").removeClass("launch_off");
		$("#launch_subnav").attr("style","display:block");

		if (sUrl.indexOf("whylaunch.html") > -1)
			$("#launch_whylaunch").addClass("active");
		else if (sUrl.indexOf("eligibility.html") > -1)
			$("#launch_eligibility").addClass("active");
		else if (sUrl.indexOf("providers.html") > -1)
			$("#launch_providers").addClass("active");
		else if (sUrl.indexOf("applylaunch.html") > -1)
			$("#launch_apply").addClass("active");
	}
	else if (sUrl.indexOf("/attend/") > -1)
	{
		$("#attend_nav").addClass("attend_on").removeClass("attend_off");
		$("#attend_subnav").attr("style","display:block");

		if (sUrl.indexOf("whyattend.html") > -1)
			$("#attend_whyattend").addClass("active");
		else if (sUrl.indexOf("whoattends.html") > -1)
			$("#attend_whoattends").addClass("active");
		else if (sUrl.indexOf("press.html") > -1)
			$("#attend_media").addClass("active");
	}
	else if (sUrl.indexOf("/pitch/") > -1)
	{
		$("#pitch_nav").addClass("pitch_on").removeClass("pitch_off");
		$("#pitch_subnav").attr("style","display:block");

		if (sUrl.indexOf("alphapitch.html") > -1)
			$("#pitch_alphapitch").addClass("active");
		else if (sUrl.indexOf("applypitch.html") > -1)
			$("#pitch_applypitch").addClass("active");
	}
	else if (sUrl.indexOf("/alumni/") > -1)
	{
		$("#alumni_nav").addClass("alumni_on").removeClass("alumni_off");
		$("#alumni_subnav").attr("style","display:block");
		$("#subnavcnt").removeClass("topcrvbth").addClass("topcrvlft");

		if (sUrl.indexOf("profiles.html") > -1)
			$("#alumni_profiles").addClass("active");
		else if (sUrl.indexOf("videolibrary.html") > -1)
			$("#alumni_video").addClass("active");
		else if (sUrl.indexOf("podcasts.html") > -1)
			$("#alumni_podcasts").addClass("active");
	}
	else if (sUrl.indexOf("/events/") > -1)
	{
		$("#logo_nav").addClass("logo_on").removeClass("logo_off");
		$("#event_subnav").attr("style","display:block");
		$("#subnavcnt").removeClass("topcrvbth").addClass("topcrvrgt");

		// Disable events popup
		bDoPop = false;

		if (sUrl.indexOf("location.html") > -1)
			$("#event_location").addClass("active");
		else if (sUrl.indexOf("agenda.html") > -1)
			$("#event_agenda").addClass("active");
		else if (sUrl.indexOf("awards.html") > -1)
		{
			$("#event_awards").addClass("active");
			$("#tabs").tabs();	// IMM 090109 Added
		}
		else if (sUrl.indexOf("speakers.html") > -1)
			$("#event_speakers").addClass("active");
		else if (sUrl.indexOf("producer.html") > -1)
			$("#event_producers").addClass("active");
		else if (sUrl.indexOf("directors.html") > -1)
			$("#event_directors").addClass("active");
		else if (sUrl.indexOf("providers.html") > -1)
			$("#event_providers").addClass("active");
		else if (sUrl.indexOf("sponsors.html") > -1)
			$("#event_sponsors").addClass("active");
		else if (sUrl.indexOf("viplist.html") > -1)
			$("#event_vips").addClass("active");
	}
	else
	{
		$("#logo_nav").addClass("logo_on").removeClass("logo_off");

		if ((sUrl.indexOf("about.html") > -1) || 
			(sUrl.indexOf("contact.html") > -1) ||
			(sUrl.indexOf("peoplesay.html") > -1) ||
			(sUrl.indexOf("successstories.html") > -1) ||
			(sUrl.indexOf("party.html") > -1) ||
			(sUrl.indexOf("subscribe.html") > -1) ||
			(sUrl.indexOf("preferences.html") > -1) ||
			(sUrl.indexOf("tos.html") > -1) ||
			(sUrl.indexOf("thankyou.html") > -1) ||
			(sUrl.indexOf("/press/") > -1) ||
			(sUrl.indexOf("community") > -1) || 
			(sUrl.indexOf("results.html") > -1))
		{
			$("#subnavcnt").removeClass("topcrvbth").addClass("hmecrvrgt");
			$("#allsub").addClass("hidden");
		}
	}

	// If we are to do events popup, bind it here
	if (bDoPop)	$("#evtnav").bind("mouseover",onEventHover);

	// IMM 06.09.09 Handle processing of company profile listings into columns
	if (sUrl.indexOf("profiles.html") > -1)
	{
		$(".TabCont .TabPanel .PnlCnt").each( function(index, domEle)
		{
			oColTwo = $(domEle).children("ul.coltwo");
			oColThr = $(domEle).children("ul.colthr");

			$(this).children("ul.colone").each(function()
			{
				// First, update all links to work off of a relative "redesign" path
				$(this).children().each( function()
				{
					sOrgLnk = new String(this.childNodes[0].href);
					this.childNodes[0].href = "http://demo.nww.com/alumni/" + sOrgLnk.substr(34,sOrgLnk.length-34);
				});

				iTotRow = $(this).children().size();

				iColRow = Math.ceil(iTotRow / 3);
				iColOne = iColTwo = iColRow;
				iColThr = iTotRow - (iColOne + iColTwo);

				iMveRow = 0;
				for ( iCurRow = iTotRow; ((iMveRow < iColThr) && (iCurRow > 0)); iCurRow-- )
				{
					iMveRow++;
					$(this).children("li:eq(" + iCurRow + ")").prependTo(oColThr);
					$(this).children("li:eq(" + iCurRow + ")").remove();
				}

				iMveRow = 0;
				for ( iCurRow = iCurRow; ((iMveRow < iColTwo) && (iCurRow > 0)); iCurRow-- )
				{
					iMveRow++;
					$(this).children("li:eq(" + iCurRow + ")").prependTo(oColTwo);
					$(this).children("li:eq(" + iCurRow + ")").remove();
				}
			});
		});
	}
}

// Function to handle cycling of hover areas on "whylaunch" ad animation
function cycleLaunchHovers()
{
	anmSpd = 400;

	switch ( gAnmCyc )
	{
		case 0:
			$("#toplftimg").attr("src","/a/i/lau_toplft_ovr.png");
			break;

		case 1:
			$("#toplftimg").attr("src","/a/i/lau_toplft_off.png");
			$("#toprgtimg").attr("src","/a/i/lau_toprgt_ovr.png");
			break;

		case 2:
			$("#toprgtimg").attr("src","/a/i/lau_toprgt_off.png");
			$("#rgtpneimg").attr("src","/a/i/lau_rgtpnl_ovr.png");
			break;

		case 3:
			$("#rgtpneimg").attr("src","/a/i/lau_rgtpnl_off.png");
			$("#btmrgtimg").attr("src","/a/i/lau_btmrgt_ovr.png");
			break;

		case 4:
			$("#btmrgtimg").attr("src","/a/i/lau_btmrgt_off.png");
			$("#btmlftimg").attr("src","/a/i/lau_btmlft_ovr.png");
			break;

		case 5:
			$("#btmlftimg").attr("src","/a/i/lau_btmlft_off.png");
			break;

	}

	gAnmCyc++;

	if (gAnmCyc < 6)
		setTimeout(cycleLaunchHovers,anmSpd);
}

function cycleAttendHovers()
{
	anmSpd = 200;

	switch ( gAnmCyc )
	{
		case 0:
			$("#toplftimg").attr("src","/a/i/att_toplft_ovr.png");
			break;

		case 1:
			$("#toplftimg").attr("src","/a/i/att_toplft_off.png");
			$("#toprgtimg").attr("src","/a/i/att_toprgt_ovr.png");
			break;

		case 2:
			$("#toprgtimg").attr("src","/a/i/att_toprgt_off.png");
			$("#btmrgtimg").attr("src","/a/i/att_btmrgt_ovr.png");
			break;

		case 3:
			$("#btmrgtimg").attr("src","/a/i/att_btmrgt_off.png");
			$("#bottomimg").attr("src","/a/i/att_bottom_ovr.png");
			break;

		case 4:
			$("#bottomimg").attr("src","/a/i/att_bottom_off.png");
			break;
	}

	gAnmCyc++;

	if (gAnmCyc < 5)
		setTimeout(cycleAttendHovers,anmSpd);
}

$(document).ready( function()
{
	// Setup DEMO Photos slideshow
	$("#sshow_top").slideshow(	
	{
		ImagePath:'/a/i/',
		AnimSpeed: 500,
		TransDelay: 8000,
		Looping: 'Cycle',
		StartPlay: false,
		Cycles: 5,
		CaptionFont: 'Georgia,Arial',
		CaptionColor: 'white',
		CaptionFontSize: '11px',
		CaptionLineHeight: '12px',
		CaptionBackColor: '#1e293f',
		ShowCapNumbers: true,
		PlayPauseButton: "bDSPly",
		NextButton: "bDSNxt",
		PreviousButton: "bDSPrv",
		PlayImage: 'plyphtclr.gif',
		PauseImage: 'psephtclr.gif'
	});

	$("#sshow_btm").slideshow(
	{
		ImagePath:'/a/i/',
		AnimSpeed: 500,
		TransDelay: 8000,
		Looping: 'Cycle',
		StartPlay: true,
		Cycles: 5,
		CaptionFont: 'Georgia,Arial',
		CaptionColor: 'white',
		CaptionFontSize: '11px',
		CaptionLineHeight: '12px',
		CaptionBackColor: '#1e293f',
		ShowCapNumbers: true,
		PlayPauseButton: "bDFPly",
		NextButton: "bDFNxt",
		PreviousButton: "bDFPrv",
		PlayImage: 'plyphtclr.gif',
		PauseImage: 'psephtclr.gif'
	});

	// Start rotating panels on top of right column
	$('#SwpNts').innerfade({ 
		speed: 'slow', 
		timeout: 6000, 
		type: 'sequence', 
		containerheight: '170px'
	});

	// Preload whocover background
	oTmp = new Image();
	oTmp.src = "http://demo.nww.com/rebuild/a/i/whocover_ovr.png";

	// Bind logo scroller for sponsor bar
	$("#sponcont").imageScroller({
		next:"arwlft",
		prev:"arwrgt",
		frame:"sponlnks",
		width:118,
		child:"a",
		speed:2000,
		delay:1500,
		direction:'right',
		auto:true
	});

	// Bind logo scroller for whobar
	$("#whocont").imageScroller({
		frame:"wholnks",
		width:118,
		child:"a",
		speed:2000,
		delay:2000,
		direction:'right',
		auto:true
	});

	// Used in demoletter signup form
	$('#country_').click(function () 
	{
		if (this.value=='USA') 
			$('#state').show();
		else
			$('#state').hide();
	});

/*
	var options = { 
		beforeSubmit: validate,
		success: function(data) 
		{ 
			var nlValue = $('input[@name=list]').fieldValue();
			if(nlValue !=null && nlValue.length > 0) 
				window.location = "nl_thankyou.jsp?tg="+data;
		} 
	}; 

	// Used in demoletter signup form
	$('#nlForm').ajaxForm(options);
*/

	// Set selected navigation tab
	assignSelectedTab();

	// Setup "Apply To Launch" panel hovers
	$("#toplftpnl").hover(function()
	{
		$("#applau").addClass("apphvr");
		$("#lautxt").addClass("lauhvr");
		$("#toplftpnl").addClass("toplftpnlhvr");
		$("#toplftpnl span.headbold").addClass("bitebold");
	},
	function()
	{
		$("#applau").removeClass("apphvr");
		$("#lautxt").removeClass("lauhvr");
		$("#toplftpnl").removeClass("toplftpnlhvr");
		$("#toplftpnl span.headbold").removeClass("bitebold");
	});

	$("#toplftpnl").click(function()
	{
		window.location = "http://www.demo.com/launch/whylaunch.html";
	});

	// Setup "Register To Attend" panel hovers
	$("#toprgtpnl").hover(function()
	{
		$("#regatt").addClass("reghvr");
		$("#atttxt").addClass("atthvr");
		$("#toprgtpnl").addClass("toprgtpnlhvr");
		$("#toprgtpnl span.headbold").addClass("bitebold");
	},
	function()
	{
		$("#regatt").removeClass("reghvr");
		$("#atttxt").removeClass("atthvr");
		$("#toprgtpnl").removeClass("toprgtpnlhvr");
		$("#toprgtpnl span.headbold").removeClass("bitebold");
	});

	//$("#toprgtpnl").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });
	$("#atttxt").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });
	$("#attarw").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });
	$("#rgttoppnl").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });
	$("#rgtmidpnl").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });
	$("#rgtbtmpnl").click(function() { window.location = "http://www.demo.com/attend/whyattend.html"; });

	$("#regatt").click(function()
	{
		window.location = "http://demo.nww.com/events/demofall09/index.html";
	});

	// Setup "Who Launch at DEMO" bar hover handler
	$("#whocover a").hover(function()
	{
		$("#whocover").addClass("whohover");
	},
	function()
	{
		$("#whocover").removeClass("whohover");
	});

	var sUrl = new String(window.location);

	// Handle "whylaunch" ad animation
	if (sUrl.indexOf("whylaunch.html") > -1)
	{
		// Top Left
		$("#toplftrgn").hover(function() 
		{
			sTopLftSrc = new String($("#toplftimg").attr("src"));
			if (sTopLftSrc.substr(sTopLftSrc.length - 7, 7) != "_on.png")
			{
				$("#toplftimg").attr("src","/a/i/lau_toplft_ovr.png"); 
			}
		},
		function() 
		{
			if (sTopLftSrc.substr(sTopLftSrc.length - 7,7) != "_on.png")
				$("#toplftimg").attr("src","/a/i/lau_toplft_off.png"); 
		});

		$("#toplftrgn").click(function()
		{
			// Make sure it's not already selected
			if (sTopLftSrc.substr(sTopLftSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sTopLftSrc = "/a/i/lau_toplft_on.png";
				$("#toplftimg").attr("src",sTopLftSrc);
				$("#toplfttxt").css("display","block");
			}

			return false;
		});

		// Top Right
		$("#toprgtrgn").hover(function() 
		{
			sTopRgtSrc = new String($("#toprgtimg").attr("src"));
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7, 7) != "_on.png")
			{
				$("#toprgtimg").attr("src","/a/i/lau_toprgt_ovr.png"); 
			}
		},
		function() 
		{
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7,7) != "_on.png")
				$("#toprgtimg").attr("src","/a/i/lau_toprgt_off.png"); 
		});

		$("#toprgtrgn").click(function()
		{
			// Make sure it's not already selected
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sTopRgtSrc = "/a/i/lau_toprgt_on.png";
				$("#toprgtimg").attr("src",sTopRgtSrc);
				$("#toprgttxt").css("display","block");
			}

			return false;
		});

		// Right
		$("#rgtpnergn").hover(function() 
		{
			sRgtPneSrc = new String($("#rgtpneimg").attr("src"));
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7, 7) != "_on.png")
			{
				$("#rgtpneimg").attr("src","/a/i/lau_rgtpnl_ovr.png"); 
			}
		},
		function() 
		{
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7,7) != "_on.png")
				$("#rgtpneimg").attr("src","/a/i/lau_rgtpnl_off.png"); 
		});

		$("#rgtpnergn").click(function()
		{
			// Make sure it's not already selected
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sRgtPneSrc = "/a/i/lau_rgtpnl_on.png";
				$("#rgtpneimg").attr("src",sRgtPneSrc);
				$("#rgtpnetxt").css("display","block");
			}

			return false;
		});

		// Bottom Right
		$("#btmrgtrgn").hover(function() 
		{
			sBtmRgtSrc = new String($("#btmrgtimg").attr("src"));
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7, 7) != "_on.png")
			{
				$("#btmrgtimg").attr("src","/a/i/lau_btmrgt_ovr.png"); 
			}
		},
		function() 
		{
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7,7) != "_on.png")
				$("#btmrgtimg").attr("src","/a/i/lau_btmrgt_off.png"); 
		});

		$("#btmrgtrgn").click(function()
		{
			// Make sure it's not already selected
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sBtmRgtSrc = "/a/i/lau_btmrgt_on.png";
				$("#btmrgtimg").attr("src",sBtmRgtSrc);
				$("#btmrgttxt").css("display","block");
			}

			return false;
		});

		// Bottom Left
		$("#btmlftrgn").hover(function() 
		{
			sBtmLftSrc = new String($("#btmlftimg").attr("src"));
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7, 7) != "_on.png")
			{
				$("#btmlftimg").attr("src","/a/i/lau_btmlft_ovr.png"); 
			}
		},
		function() 
		{
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7,7) != "_on.png")
				$("#btmlftimg").attr("src","/a/i/lau_btmlft_off.png"); 
		});

		$("#btmlftrgn").click(function()
		{
			// Make sure it's not already selected
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sBtmLftSrc = "/a/i/lau_btmlft_on.png";
				$("#btmlftimg").attr("src",sBtmLftSrc);
				$("#btmlfttxt").css("display","block");
			}

			return false;
		});

		// Left
		$("#lftpnergn").hover(function() 
		{
			sRgtPneSrc = new String($("#lftpneimg").attr("src"));
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7, 7) != "_on.png")
			{
				$("#lftpneimg").attr("src","/a/i/lau_lftpnl_ovr.png"); 
			}
		},
		function() 
		{
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7,7) != "_on.png")
				$("#lftpneimg").attr("src","/a/i/lau_lftpnl_off.png"); 
		});

		$("#lftpnergn").click(function()
		{
			// Make sure it's not already selected
			if (sRgtPneSrc.substr(sRgtPneSrc.length - 7, 7) != "_on.png")
			{
				clearLaunchHovers();
				sRgtPneSrc = "/a/i/lau_lftpnl_on.png";
				$("#lftpneimg").attr("src",sRgtPneSrc);
				$("#lftpnetxt").css("display","block");
			}

			return false;
		});

		// Once everything is bound up, start base animation
		cycleLaunchHovers();
	}
	else if (sUrl.indexOf("whyattend.html") > -1)
	{
		// Top Left
		$("#toplftrgn").hover(function() 
		{
			sTopLftSrc = new String($("#toplftimg").attr("src"));
			if (sTopLftSrc.substr(sTopLftSrc.length - 7, 7) != "_on.png")
			{
				$("#toplftimg").attr("src","/a/i/att_toplft_ovr.png"); 
			}
		},
		function() 
		{
			if (sTopLftSrc.substr(sTopLftSrc.length - 7,7) != "_on.png")
				$("#toplftimg").attr("src","/a/i/att_toplft_off.png"); 
		});

		$("#toplftrgn").click(function()
		{
			// Make sure it's not already selected
			if (sTopLftSrc.substr(sTopLftSrc.length - 7, 7) != "_on.png")
			{
				clearAttendHovers();
				sTopLftSrc = "/a/i/att_toplft_on.png";
				$("#toplftimg").attr("src",sTopLftSrc);
				$("#toplfttxt").css("display","block");
			}

			return false;
		});

		// Top Right
		$("#toprgtrgn").hover(function() 
		{
			sTopRgtSrc = new String($("#toprgtimg").attr("src"));
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7, 7) != "_on.png")
			{
				$("#toprgtimg").attr("src","/a/i/att_toprgt_ovr.png"); 
			}
		},
		function() 
		{
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7,7) != "_on.png")
				$("#toprgtimg").attr("src","/a/i/att_toprgt_off.png"); 
		});

		$("#toprgtrgn").click(function()
		{
			// Make sure it's not already selected
			if (sTopRgtSrc.substr(sTopRgtSrc.length - 7, 7) != "_on.png")
			{
				clearAttendHovers();
				sTopRgtSrc = "/a/i/att_toprgt_on.png";
				$("#toprgtimg").attr("src",sTopRgtSrc);
				$("#toprgttxt").css("display","block");
			}

			return false;
		});

		// Bottom Right
		$("#btmrgtrgn").hover(function() 
		{
			sBtmRgtSrc = new String($("#btmrgtimg").attr("src"));
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7, 7) != "_on.png")
			{
				$("#btmrgtimg").attr("src","/a/i/att_btmrgt_ovr.png"); 
			}
		},
		function() 
		{
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7,7) != "_on.png")
				$("#btmrgtimg").attr("src","/a/i/att_btmrgt_off.png"); 
		});

		$("#btmrgtrgn").click(function()
		{
			// Make sure it's not already selected
			if (sBtmRgtSrc.substr(sBtmRgtSrc.length - 7, 7) != "_on.png")
			{
				clearAttendHovers();
				sBtmRgtSrc = "/a/i/att_btmrgt_on.png";
				$("#btmrgtimg").attr("src",sBtmRgtSrc);
				$("#btmrgttxt").css("display","block");
			}

			return false;
		});

		// Bottom
		$("#bottomrgn").hover(function() 
		{
			sBottomSrc = new String($("#bottomimg").attr("src"));
			if (sBottomSrc.substr(sBottomSrc.length - 7, 7) != "_on.png")
			{
				$("#bottomimg").attr("src","/a/i/att_bottom_ovr.png"); 
			}
		},
		function() 
		{
			if (sBottomSrc.substr(sBottomSrc.length - 7,7) != "_on.png")
				$("#bottomimg").attr("src","/a/i/att_bottom_off.png"); 
		});

		$("#bottomrgn").click(function()
		{
			// Make sure it's not already selected
			if (sBottomSrc.substr(sBottomSrc.length - 7, 7) != "_on.png")
			{
				clearAttendHovers();
				sBottomSrc = "/a/i/att_bottom_on.png";
				$("#bottomimg").attr("src",sBottomSrc);
				$("#bottomtxt").css("display","block");
			}

			return false;
		});

		// Bottom Left
		$("#btmlftrgn").hover(function() 
		{
			sBtmLftSrc = new String($("#btmlftimg").attr("src"));
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7, 7) != "_on.png")
			{
				$("#btmlftimg").attr("src","/a/i/att_btmlft_ovr.png"); 
			}
		},
		function() 
		{
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7,7) != "_on.png")
				$("#btmlftimg").attr("src","/a/i/att_btmlft_off.png"); 
		});

		$("#btmlftrgn").click(function()
		{
			// Make sure it's not already selected
			if (sBtmLftSrc.substr(sBtmLftSrc.length - 7, 7) != "_on.png")
			{
				clearAttendHovers();
				sBtmLftSrc = "/a/i/att_btmlft_on.png";
				$("#btmlftimg").attr("src",sBtmLftSrc);
				$("#btmlfttxt").css("display","block");
			}

			return false;
		});

		cycleAttendHovers();
	}

	// IMM 04.06.10: Added
	setupGoogleSearch();

	// DEMO Fall 2010 Brightcove overlay 
	if ($(".bgover").length > 0)
	{
		$(".bgover").click( function()
		{
			$(".bgover").css("display","none");
		});
	}

	// IMM 07.09.10: Setup mobile homepage player depending on browser...
	if ($("#bgplayer").length > 0)
	{
		if (DetectSmartphone())
		{
			aVidLst = [
					   "111264284001",	// Zosh
					   "111264278001",	// Everloop
					   "111270401001",	// TAGtheLOOK
					   "111270396001",	// Gwabbit
					   "111247131001",	// Phone Halo
					   "110905916001"	// Blue Skies
					  ];

			iVidIdx = Math.floor(Math.random()*6);

			$("#BCSMBrs").html("<div style=\"display:none\"></div>\n"+
			"<script type=\"text/javascript\" src=\"http://admin.brightcove.com/js/BrightcoveExperiences.js\"></"+"script>"+
			"<object id=\"myExperience\" class=\"BrightcoveExperience\">"+
			  "<param name=\"bgcolor\" value=\"#FFFFFF\" />\n"+
			  "<param name=\"width\" value=\"486\" />\n"+
			  "<param name=\"height\" value=\"412\" />\n"+
			  "<param name=\"playerID\" value=\"89768276001\" />\n"+
			  "<param name=\"publisherID\" value=\"981571732\"/>\n"+
			  "<param name=\"isVid\" value=\"true\" />\n"+
			  "<param name=\"dynamicStreaming\" value=\"true\" />\n"+
			  "<param name=\"@videoPlayer\" value=\""+aVidLst[iVidIdx]+"\" />\n"+
			"</object>\n");

			$("#BCSMBrs").css("display","block");
			runMobileCompatibilityScript('myExperience', 'anId');
			brightcove.createExperiences();
		}
		else
			$("#BCDTBrs").css("display","block");
	}

	// Setup tooltips on sponsor logos
	if ($("#sponsor_group_container").length > 0)
		$("#sponsor_group_container a img[title]").tooltip('#demotip'); 

	// IMM 090310: Setup overlay...
	// IMM 07-26-10: Initialie homepage overlay
	var gOvrshw = false;
	function moveOverlay()
	{
		lftPos = Math.floor(($(window).width() - 640) / 2);
		topPos = Math.floor(($(window).height() - 500) / 2);
		//alert("width="+$(window).width()+"\nheight="+$(window).height()+"\ntop="+topPos+"\nleft="+lftPos);
		$("#hpOvrpnl").css({
			'position': 'absolute',
			'display': 'block',
			'top': topPos+'px',
			'left': lftPos+'px'
		});
	}

	function showOverlay()
	{
		$("#hpOvrlay").fadeIn(1000);
		gOvrshw = true;
	}

	function hideOverlay()
	{
		$("#hpOvrlay").fadeOut(500);
		gOvrshw = false;
	}

	$(window).resize( function()
	{
		if (gOvrshw)
			moveOverlay();
	});

	$("#hpReglnk").click( function()
	{
		hideOverlay();
	});

	$("#hpOvrlay").click( function()
	{
		hideOverlay();
	});

	$(document).keydown(function(e)
	{
		if(e.keyCode==27){
			hideOverlay();
		}
	});

	// Only proceed if cookie has not been set yet
	if ($.cookie("DF10Overlay2") != "SET")
	{
		$.cookie("DF10Overlay2","SET", { expires: 60 });
		moveOverlay();
		$(window).load(setTimeout(showOverlay,1000));
	}
});

// +----------------------------------------+
// | Modified imageScroller class, included |
// | 'speed' and 'delay' parameters.        |
// +----------------------------------------+
// | IMacNeill 05.12.09 v1.0                |
// | IMacNeill 05.13.09 v1.1                |
// | > Added 'direction' parameter          |
// +----------------------------------------+
jQuery.fn.imageScroller = function(params)
{
	var p = params || 
	{
		next:"buttonNext",
		prev:"buttonPrev",
		frame:"viewerFrame",
		width:100,
		child:"a",
		speed:'fast',
		delay:2000,
		direction:'left',
		auto:true
	}; 
	
	var _btnNext = $("#"+ p.next);
	var _btnPrev = $("#"+ p.prev);
	var _imgFrame = $("#"+ p.frame);
	var _width = p.width;
	var _child = p.child;
	var _auto = p.auto;
	var _speed = p.speed;
	var _delay = p.delay;
	var _direction = p.direction;
	var _itv;
	
	var turnLeft = function()
	{
		_btnPrev.unbind("click",turnLeft);
		
		if(_auto) autoStop();
		
		_imgFrame.animate( {marginLeft:-_width}, _speed, 'swing', function()
		{
			_imgFrame.find(_child+":first").appendTo( _imgFrame );
			_imgFrame.css("marginLeft",0);
			_btnPrev.bind("click",turnLeft);
		
			if(_auto) autoPlay();
		});
	};
	
	var turnRight = function()
	{
		_btnNext.unbind("click",turnRight);
	
		if(_auto) autoStop();
		
		_imgFrame.find(_child+":last").clone().show().prependTo( _imgFrame );
		_imgFrame.css("marginLeft",-_width);
		
		_imgFrame.animate( {marginLeft:0}, _speed,'swing', function()
		{
			_imgFrame.find(_child+":last").remove();
			_btnNext.bind("click",turnRight);
			if(_auto) autoPlay(); 
		});
	};
	
	_btnNext.css("cursor","hand").click( turnRight );
	_btnPrev.css("cursor","hand").click( turnLeft );
	
	var autoPlay = function()
	{
		_itv = window.setInterval( (_direction == 'left' ? turnLeft : turnRight), _delay);
	};
	var autoStop = function()
	{
		window.clearInterval(_itv);
	};
	
	if(_auto)	
		autoPlay();
};

/*
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
Code licensed under the BSD License: http://www.featureblend.com/license.txt
Version: 1.0.3
*/
var FlashDetect = new function(){
	var self = this;
	self.installed = false;
	self.raw = "";
	self.major = -1;
	self.minor = -1;
	self.revision = -1;
	self.revisionStr = "";
	var activeXDetectRules = [
		{
			"name":"ShockwaveFlash.ShockwaveFlash.7",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash.6",
			"version":function(obj){
				var version = "6,0,21";
				try{
					obj.AllowScriptAccess = "always";
					version = getActiveXVersion(obj);
				}catch(err){}
				return version;
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		}
	];
	var getActiveXVersion = function(activeXObj){
		var version = -1;
		try{
			version = activeXObj.GetVariable("$version");
		}catch(err){}
		return version;
	};
	var getActiveXObject = function(name){
		var obj = -1;
		try{
			obj = new ActiveXObject(name);
		}catch(err){}
		return obj;
	};
	var parseActiveXVersion = function(str){
		var versionArray = str.split(",");//replace with regex
		return {
			"raw":str,
			"major":parseInt(versionArray[0].split(" ")[1], 10),
			"minor":parseInt(versionArray[1], 10),
			"revision":parseInt(versionArray[2], 10),
			"revisionStr":versionArray[2]
		};
	};
	var parseStandardVersion = function(str){
		var descParts = str.split(/ +/);
		var majorMinor = descParts[2].split(/\./);
		var revisionStr = descParts[3];
		return {
			"raw":str,
			"major":parseInt(majorMinor[0], 10),
			"minor":parseInt(majorMinor[1], 10), 
			"revisionStr":revisionStr,
			"revision":parseRevisionStrToInt(revisionStr)
		};
	};
	var parseRevisionStrToInt = function(str){
		return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
	};
	self.majorAtLeast = function(version){
		return self.major >= version;
	};
	self.FlashDetect = function(){
		if(navigator.plugins && navigator.plugins.length>0){
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
				var version = mimeTypes[type].enabledPlugin.description;
				var versionObj = parseStandardVersion(version);
				self.raw = versionObj.raw;
				self.major = versionObj.major;
				self.minor = versionObj.minor; 
				self.revisionStr = versionObj.revisionStr;
				self.revision = versionObj.revision;
				self.installed = true;
			}
		}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
			var version = -1;
			for(var i=0; i<activeXDetectRules.length && version==-1; i++){
				var obj = getActiveXObject(activeXDetectRules[i].name);
				if(typeof obj == "object"){
					self.installed = true;
					version = activeXDetectRules[i].version(obj);
					if(version!=-1){
						var versionObj = parseActiveXVersion(version);
						self.raw = versionObj.raw;
						self.major = versionObj.major;
						self.minor = versionObj.minor; 
						self.revision = versionObj.revision;
						self.revisionStr = versionObj.revisionStr;
					}
				}
			}
		}
	}();
};
FlashDetect.release = "1.0.3";

// IMM 012008: Code to handle auto-activating Flash objects
// -  sID : id
// - sSrc : Source for Flash SWF, with arguments if any
// - iWdt : Width
// - iHgt : Height
// - sCID : classid			  (leave blank if undefined)
// - sAln : Alignment		  (leave blank if undefined)
// - sQul : Quality			  (leave blank if undefined)
// - sASA : allowScriptAccess (leave blank if undefined)
// - sWMd : wmode			  (leave blank if undefined)
// - sBGC : bgcolor			  (leave blank if undefined)
// - bAlt : Alternate mode - used for custom Flash objects (Podcasts)
//          If true, then:
//			1. Includes "data" attribute, with sSrc
//			2. does not use "embed" tag
//          3. Includes: ie_update=\"NWW_NO_IE_OBJECT_UPDATE\"
//			4. Excludes: codebase attribute
//			5. Includes: type="application/x-shockwave-flash"
// -------------------------------------------------------------------------
// IMM 071108: Optional Flash/Firefox MP3 player bug fix
// - If this argument is not an empty string, will proceed to check browser 
//   and Flash player version. If they match the version which has the bug
//   that prevents MP3 players from playing when there are too many players
//   on a page (more than 15), then it will render just a link to the argument
//   instead of the Flash player.
function autoactivateFlash( sID, sSrc, iWdt, iHgt, sCID, sAln, sQul, sASA, sWMd, sBGC, bAlt, sFLA )
{
	var bFLA = true;
	if (sFLA != undefined)
	{
		var sExt = sFLA.substr( sFLA.length - 3, 3 ).toLowerCase();

		if ((navigator.appName != "Microsoft Internet Explorer") && (sExt == "mp3"))
		{
			if ((FlashDetect.major == 9) && (FlashDetect.minor == 0) && ((FlashDetect.revision == 115) || (FlashDetect.revision == 124)))
				bFLA = false;

/*			sDBG = "Flash: " + FlashDetect.major + "." + FlashDetect.minor + "." + FlashDetect.revision + "\n";
			sDBG+= "Browser: " + navigator.appName + " - " + navigator.appVersion + "\n";
			sDBG+= "URL: " + sFLA + "\n";
			sDBG+= "Extension: " + sExt + "\n";
			sDBG+= "bFLA=[" + bFLA + "]";
			alert(sDBG);
*/		}
	}

	if (bFLA)
	{
		var sSwf = "<object " + 
				   (bAlt != true ? "codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\" " : "") + 
				   (bAlt == true ? "type=\"application/x-shockwave-flash\" " : "") + 
				   (sID != "" ? "id=\"" + sID + "\" " : "") + 
				   (bAlt == true ? "data=\"" + sSrc + "\" " : "") + 
				   "width=\"" + iWdt + "\"  " + 
				   "height=\"" + iHgt + "\" " + 
				   (bAlt == true ? "ie_update=\"NWW_NO_IE_OBJECT_UPDATE\" " : "") + 
				   (sCID != "" ? "classid=\"clsid:" + sCID + "\" " : "") + 
				   (sAln != "" ? "align=\"" + sAln + "\" " : "") + 
				   ">\n" + 
				   "<param name=\"movie\" value=\"" + sSrc + "\"/>\n" +
				   (sQul != "" ? "<param name=\"quality\" value=\"" + sQul + "\"/>\n" : "") + 
				   (sASA != "" ? "<param name=\"allowScriptAccess\" value=\"" + sASA + "\"/>\n" : "") + 
				   (sWMd != "" ? "<param name=\"wmode\" value=\"" + sWMd + "\"/>\n" : "") + 
				   (sBGC != "" ? "<param name=\"bgcolor\" value=\"" + sBGC + "\"/>\n" : "");
		if (bAlt != true)
		{
			sSwf += "<embed " + 
					(sID != "" ? "name=\"" + sID + "\" " : "") + 
					"width=\"" + iWdt + "\"  " + 
					"height=\"" + iHgt + "\" " + 
					(sAln != "" ? "align=\"" + sAln + "\" " : "") + 
					"src=\"" + sSrc + "\" " + 
					(sQul != "" ? "quality=\"" + sQul + "\" " : "") + 
					(sASA != "" ? "allowscriptaccess=\"" + sASA + "\" " : "") + 
					(sWMd != "" ? "wmode=\"" + sWMd + "\" " : "") + 
					(sBGC != "" ? "bgcolor=\"" + sBGC + "\" " : "") + 
					"pluginspage=\"http://www.macromedia.com/go/getflashplayer\" " +  
					"type=\"application/x-shockwave-flash\"/></embed>\n";
		}
		sSwf += "</object>\n";
		document.write(sSwf);
	}
	else
		document.write("<a href=\"" + sFLA + "\" target=\"_blank\">Click to download this podcast</a><br/>(will open in a new browser window)");
}

// IMM 011108: Clears input field, if contents is "search" or "enter email address"
// IMM 031408: Added "search videos"
function clearText(oFld)
{
	if ((oFld.value == "Search this site") || 
		(oFld.value == "Enter Email Address") || 
		(oFld.value == "Search Videos"))
		oFld.value = "";
}

function restoreText(oFld)
{
	if (oFld.value == "")
	{
		if (oFld.name == "email")	oFld.value = "Enter Email Address";
		else if (oFld.name == "qt")	oFld.value = "Search this site";
	}
}

// IMM 012108: Get top offset of passed element
function getPageOffsetTop( oEle ) 
{
	var iOffTop = oEle.offsetTop;
	while((oEle = oEle.offsetParent) != null) 
	{ 
		iOffTop += oEle.offsetTop; 
	}
	return iOffTop;
}

// IMM 012108: Returns Y position of passed anchor
function getAnchorYPos(sAnchor) 
{
	var yPos = 0;
	
	// Logic to find position
 	if (document.getElementById && document.all) 
		yPos = getPageOffsetTop(document.all[sAnchor]);
	else if (document.getElementById) 
		yPos = getPageOffsetTop(document.getElementById(sAnchor));
 	else if (document.all) 
		yPos = getPageOffsetTop(document.all[sAnchor]);
	else if (document.layers) 
	{
		var bFnd = 0;
		for (var i = 0; i < document.anchors.length; i++) 
		{
			if (document.anchors[i].name == sAnchor) 
			{ 
				bFnd = 1; 
				break; 
			}
		}

		if (bFnd == 0) 
			return yPos;
		
		yPos = document.anchors[i].yPos;
	}

	return yPos;
}

function validateEmail()
{
	var oFrm = document.forms[0];
	var sMsg = "";

	// Ensure that something was entered for E-Mail field
	if ($.trim( oFrm.email.value) == "")
		sMsg += "- \"E-Mail\" is a required field.\n";
	else	// Confirm E-Mail entered is well formed
	{
		var v = new RegExp();
		v.compile("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$");
		if (!v.test(StripWS(oFrm.email.value)))
			sMsg += "- \"E-Mail\" address provided is not valid.\n";
	}

	if (sMsg == "")
		return true;
    else
    {
        alert("Request could not be processed due to the following problems:\n\n" + sMsg + "\nPlease resolve the above problems, then resubmit the form.");
        return false;
    }
}

function onEventHover() 
{
	$("#evtpopcont").bind("mouseleave", function() 
	{
		$("#evtpopcont").hide();
	});

	$("#evtpopcont").show();     
}

// IMM 04.07.10: Globals for Google custom search
var gQuery = "";
var searchControl;
var searchLocale;
var imageHover = "http://demo.nww.com/a/i/search_box.png";
var imageBase = "http://demo.nww.com/a/i/search_gcse.png";
var demoSiteKey = "007910216449832961915:gqwvsbh6zie";

// IMM 04.07.10: Method to retrieve URL arguments
function getUrlVars() 
{
	var vars = {};
	var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) 
	{
		vars[key] = value;
	});
	return vars;
}

// IMM 04.07.10: Function to url encode a string
function urlencode (str) {
    // URL-encodes string  
    // 
    // version: 910.813
    // discuss at: http://phpjs.org/functions/urlencode
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Joris
    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
    var hexStr = function (dec) {
        return '%' + (dec < 16 ? '0' : '') + dec.toString(16).toUpperCase();
    };

    var ret = '',
            unreserved = /[\w.-]/; // A-Za-z0-9_.- // Tilde is not here for historical reasons; to preserve it, use rawurlencode instead
    str = (str+'').toString();

    for (var i = 0, dl = str.length; i < dl; i++) {
        var ch = str.charAt(i);
        if (unreserved.test(ch)) {
            ret += ch;
        }
        else {
            var code = str.charCodeAt(i);
            if (0xD800 <= code && code <= 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters); https://developer.mozilla.org/index.php?title=en/Core_JavaScript_1.5_Reference/Global_Objects/String/charCodeAt
                ret += ((code - 0xD800) * 0x400) + (str.charCodeAt(i+1) - 0xDC00) + 0x10000;
                i++; // skip the next one as we just retrieved it as a low surrogate
            }
            // We never come across a low surrogate because we skip them, unless invalid
            // Reserved assumed to be in UTF-8, as in PHP
            else if (code === 32) {
                ret += '+'; // %20 in rawurlencode
            }
            else if (code < 128) { // 1 byte
                ret += hexStr(code);
            }
            else if (code >= 128 && code < 2048) { // 2 bytes
                ret += hexStr((code >> 6) | 0xC0);
                ret += hexStr((code & 0x3F) | 0x80);
            }
            else if (code >= 2048) { // 3 bytes (code < 65536)
                ret += hexStr((code >> 12) | 0xE0);
                ret += hexStr(((code >> 6) & 0x3F) | 0x80);
                ret += hexStr((code & 0x3F) | 0x80);
            }
        }
    }
    return ret;
}

// IMM 04.07.10: Function to validate global search before submission
function checkSearch()
{
	query = $("#search").val();
	if (query == null || $.trim(query).length == 0 || query.indexOf("</") >= 0 || query.indexOf(";") >= 0)
	{
		alert("Please enter a valid search term.");
		return false;
	}

	var htmlRegEx = new RegExp('[\w*|\W*]*<[[\w*|\W*]*|/[\w*|\W*]]>[\w*|\W*]*');
	if(htmlRegEx.exec(query))
	{
		alert("Please enter a valid search term.  HTML, URLs, and Scripts are not allowed.");return false;
		return false;
	}

	query = query.replace(/^\s+/g, '').replace(/\s+$/g, '');
	query = urlencode(query);

	$("#frmSearch").attr("action","/search_results.html?s=" + query);
}

// IMM 10-14-09: Modified to now perform postback to handle search
function setupGoogleSearch()
{
	if ($("#search").val() == "")
	{
		if (!$("#search").hasClass("search_base"))
			$("#search").addClass("search_base");

		if ($("#search").hasClass("search_over"))
			$("#search").removeClass("search_over");
	}
	else
	{
		if (!$("#search").hasClass("search_over")) 
			$("#search").addClass("search_over");

		if ($("#search").hasClass("search_base"))
			$("#search").removeClass("search_base");
	}

	$("#search").focus( function()
	{
		if (!$("#search").hasClass("search_over")) 
			$("#search").addClass("search_over");

		if ($("#search").hasClass("search_base"))
			$("#search").removeClass("search_base");
	});

	$("#search").blur( function()
	{ 
		if ($("#search").val() == "")
		{
			if (!$("#search").hasClass("search_base"))
				$("#search").addClass("search_base");

			if ($("#search").hasClass("search_over"))
				$("#search").removeClass("search_over");
		}
	});

	// IMM 04.07.10: Couple the global search action handler
	$("#frmSearch").submit( function()
	{
		return checkSearch();
	});

	// IMM 04.07.10: If this is the results page, attempt to process search results
	if ($("#dynsearch").length > 0)
	{
		gQuery = getUrlVars()["s"];
		$("#dynsearch h2").html("Search Results: " + gQuery);
		google.setOnLoadCallback(doGoogleSearch);
	}
}

// IMM 04.07.10: Method to perform search results
function doGoogleSearch()
{
	searchControl = new google.search.WebSearch();
	searchControl.setSiteRestriction( demoSiteKey );
	searchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
	searchControl.setSearchCompleteCallback(this, processGoogleResults, null);
	searchControl.execute(gQuery);
}

// IMM 04.07.10: Method to handle displaying the search results
function processGoogleResults()
{
	$("div#results").html("");
	if (searchControl.results && searchControl.results.length > 0)
	{
		for ( i = 0; i < searchControl.results.length; i++ )
		{
			$("div#results").append( "<div class=\"result-title\"><a href=\"" + searchControl.results[i].url + "\">" + searchControl.results[i].title + "</a></div>" );
			$("div#results").append( "<div class=\"result-blurb\">" + searchControl.results[i].content + "</div>" );
			//$("div#results").append( searchControl.results[i].html );
			$("div#results").append( "<div class=\"search-sep\"><!-- --></div>" );
		}

		var cursor = searchControl.cursor;
		addPaginationLinks();

		// Remove extra pages from pagination
		var currentPage = $("table#paged td.page").index( $('td#ActPge')[0] );
		var removeLeft = currentPage - 5;
		$("table#paged td.page:lt(" + removeLeft + ")").remove();
		
		var currentPage = $("table#paged td.page").index( $('td#ActPge')[0] );
		var removeRight = currentPage + 5;
		$("table#paged td.page:gt(" + removeRight + ")").remove();
		
		// Now we can enable the pagination
		$("table#paged").show();
	}
	else
	{
		$("div#results").append( "<div id=\"results-count\">Your search on \"" + gQuery + "\" returned " + searchControl.results.length + " results.</div>" );
	}
	$("div.result-title a").each( function() {
		var theURL = $(this).attr("href");
		$(this).parent().next().append("<span>" + theURL + "</span>");
	});
}

function addPaginationLinks() 
{
	// The cursor object has all things to do with pagination
	var cursor = searchControl.cursor;
	var curPage = cursor.currentPageIndex; // check what page the app is on
	var pages = "<table id=\"paged\" style=\"display:table;\"><tbody><tr>";
	for (var i = 0; i < cursor.pages.length; i++) 
	{
		var page = cursor.pages[i];
		// if we are on the curPage, then don't make a link
		if (curPage == i) 
		{ 
			pages += "<td id=\"ActPge\" class=\"page\">";
			pages += "<strong>" + page.label + "</strong>";
		} 
		else 
		{
			// If we aren't on the current page, then we want a link to this page.
			// So we create a link that calls the gotoPage() method on the searcher.
			pages += "<td class=\"page\">";
			pages += "<a href=\"javascript:searchControl.gotoPage(" + i + ");\">" + page.label + "</a>";
		}
		pages += "</td>";
	}
	pages += "</tr></tbody></table>";

	$("div#results").append(pages);
}
