abilitypath.home =
{
	"rowAAdTimeout": 7000,
	"rowAAdContext": null,
	"rssLoads": [],
	"feeds": [],
	"tabBoxSelector": null,

	/*
		START: utility funcs.
	*/
		"pickRandom": function(n, set, setType)
		{
			var picked = 0, picks = [], picksInd = [];
			setType = setType ? setType : "Array";
	
			if (n > set.length)
			{
				n = set.length;
			}
	
			while (picked != n)
			{
				ind = Math.round(Math.random() * (set.length - 1));
				while (picksInd[""+ind])
				{
					if (++ind == set.length)
					{
						ind = 0;
					}
				}
	
				picksInd[""+ind] = true;
				switch (setType)
				{
					case "jQuery":
						picks.push(set.eq(ind));
						break;
					default:
						picks.push(set[ind]);
						break;
				}
				
				picked++;
			}
	
			return picks;
		},
	/*
		END: utility funcs.
	*/


	/*
		START: Top row ad area
	*/
		"rowAAdsInit": function(selector)
		{
			var jqc = jQuery(selector+" span"), nodes = jqc.children();
			if (nodes.length > 1)
			{
				nodes.addClass("hidden");
				nodes.eq(Math.round(Math.random() * (nodes.length - 1))).removeClass("hidden").addClass("visible");
				nodes.addClass("ad");
				this.rowAAdContext = nodes.eq(0).parent();
				setTimeout(function() { abilitypath.home.rowAAdsUpdate(); }, this.rowAAdTimeout);
			}
		},
		"rowAAdsUpdate": function()
		{
			var node = jQuery(".visible", this.rowAAdContext), nodeNext;
			node.fadeOut("slow").removeClass("visible");
			if (node.next().length)
			{
				nodeNext = node.next();
			}
			else
			{
				nodeNext = jQuery(".ad", this.rowAAdContext).eq(0);
			}
			nodeNext.fadeIn("slow").addClass("visible");
			setTimeout(function() { abilitypath.home.rowAAdsUpdate(); }, this.rowAAdTimeout);
		},
	/*
		END: Top row ad area
	*/

	/*
		START: Pick n of x community profiles
	*/
		"communityCorner": function(selector, n)
		{
			var members = jQuery(selector+" div.member");
			var i, c, picks = this.pickRandom(n, members, "jQuery"), p, h;
			members.addClass("hidden").css("display", "none");
			for (i = 0, c = picks.length; (i < n) && (i < c); i++)
			{
				p = picks[i];
				p.removeClass("hidden").addClass("visible").css("display", "block");
				h = jQuery(".hidden span", p).html();
				jQuery(".info a", p).attr("href", h);
				jQuery("a.mask", p).attr("href", h);
			}
			jQuery(selector+" div.member.visible").eq(0).addClass("first");
		},
	/*
		END: Pick n of x community profiles
	*/

	/*
		START: Make sure showing right home page for logged in/out
	*/
		"showMemberAnonPage": function()
		{
			var name = abilitypath.cookieSess.get("CONSNAME").length;
			if (name && (window.location.pathname.match(/^\/index\.[^\.]+$/)))
			{
				window.location = "index-member.html";
			}
			else if (!name && (window.location.pathname.match(/^\/index\-member\.[^\.]+$/)))
			{
				window.location = "index.html";
			}
		},
	/*
		END: Make sure showing right home page for logged in/out
	*/

	/*
		START: Tab box A
	*/
		"tabLayoutA": function(selector)
		{
			if (!this.rssLoads["recentDisc"] || !this.rssLoads["recentNews"])
			{
				this.tabBoxSelector = selector;
				setTimeout(function () { abilitypath.home.tabLayoutA(); }, 32);
				return;
			}

			selector = selector ? selector : this.tabBoxSelector;
			var jqc = jQuery(selector), jq, i, c, hMax = 0, h, click;
			this.memberTabBox = selector;
			
			jq = jQuery("div.tab_content", jqc);
			for (i = 0, c = jq.length; i < c; i++)
			{
				h = jq.eq(i).addClass("tab_"+i).get(0).offsetHeight;
				hMax = (h > hMax) ? h : hMax;
			}
			jq.css("display", "none").eq(0).css("display", "block");
			jQuery("div.tab_contents", jqc).css("height", hMax+"px");

			click = function()
			{
				var m, tabs = jQuery("div.tab_content", liltype.parentClass(jQuery(this), "tab_layout_a")).css("display", "none");
				if (m = this.className.match(/(^|\s)tab_([0-9]+)(\s|$)/))
				{
					jQuery("div.tab_content.tab_"+m[2], tabs.eq(0).parent()).css("display", "block");
				}
				return false;
			}

			jq = jQuery("div.tab_links a", jqc);
			for (i = 0, c = jq.length; i < c; i++)
			{
				h = jq.eq(i).addClass("tab_"+i).click(click);
			}
		},
	/*
		START: Tab box A
	*/

	/*
		START: Members home - recent discussion
	*/
		"onMemberHomeFeed": function(result)
		{
			var i, c, html = "", entry, d, h, m, apm, jq, jqc;
			c =
				result.feed.entries.length < 4 ?
				result.feed.entries.length : 
				4;

			if (!c)
			{
				if (c = liltype.parentClass(this.jqTgt, "call_out_a"))
				{
					c.addClass("hidden");
				}
				abilitypath.home.rssLoads[this.feedLabel] = true;
				return;
			}

			for (i = 0; i < c; i++)
			{
				entry = result.feed.entries[i];
				d = new Date(entry.publishedDate);
				h = d.getHours();
				if (h == 0)
				{
					h = 12;
					apm = "AM";
				}
				else if (h == 12)
				{
					apm = "PM";
				}
				else if (h > 12)
				{
					apm = "PM";
					h -= 12;
				}
				else
				{
					apm = "AM";
				}

				m = ""+d.getMinutes();
				m = m.replace(/^([0-9])$/, "0$1");

				html +=
				(
					'<div class="discussion'+(!i ? ' first' : '')+'">'+
						'<div class="title"><a href="'+entry.link+'">'+entry.title+'<'+'/a><'+'/div>'+
						'<div class="info">'+(d.getMonth() + 1)+'/'+d.getDate()+'/'+d.getFullYear()+' '+h+':'+m+' '+apm+'<'+'/div>'+
						'<div class="content">'+entry.contentSnippet+'<'+'/div>'+
					'<'+'/div>'
				);
			}
			this.jqTgt.html(html).removeClass("hidden");
			abilitypath.home.rssLoads[this.feedLabel] = true;
		},
		"memberHomeFeed": function(selector, feedLabel)
		{
			var jq = jQuery(selector).addClass("hidden");
			var f = new liltype.FeedGetter
			(
				jQuery("span", jq).eq(0).html().replace(/\&amp;/g, '&'),
				{
					"feedLabel": feedLabel,
					"callback": this.onMemberHomeFeed,
					"jqTgt": jq,
					"url": jQuery("span", jq).eq(0).html().replace(/\&amp;/g, '&')
				},
				"callback"
			);
			f.get();
			this.feeds.push(f);
		},
	/*
		END: Members home - recent discussion
	*/
	

	/*
		START: Members home - child development articles
	*/
		"memberHomeChildDev": function(selector)
		{
			var i, c, jq, jqs = jQuery(selector+" div.call_out_a1");
			for (i = 0, c = jqs.length; i < c; i++)
			{
				jq = jqs.eq(i);
				jQuery("div.see_all a", jq).attr("href", jQuery("div.header a", jq).eq(0).attr("href"));
			}
		},
	/*
		END: Members home - child development articles
	*/

	/*
		START: Toggle language in center column
	*/
		"initLanguageToggle": function()
		{
			jQuery("div.col_center div.language_toggle_ctl a").click
			(
				function()
				{
					var m = this.className.match(/(^|\s)(espanol|ingles)(\s|$)/);
					if (m)
					{
						jQuery("div.col_center div.language_toggle_content div.espanol").css("display", "none");
						jQuery("div.col_center div.language_toggle_content div.ingles").css("display", "none");
						jQuery("div.col_center div.language_toggle_content div."+m[2]).css("display", "block");
						
						jQuery("div.col_center div.language_toggle_ctl a").css("display", "inline");
						jQuery("div.col_center div.language_toggle_ctl a."+m[2]).css("display", "none");
					}
					return false;
				}
			);

			var jqcs = jQuery("div#home_child_dev_box_esp div.call_out_a1"), jqc, i, c, href;
			jQuery("div.header", jqcs).eq(0).addClass("first");
			for (i = 0, c = jqcs.length; i < c; i++)
			{
				jqc = jqcs.eq(i);
				href = jQuery("div.title_link a", jqc).eq(0).attr("href").
					replace(/(https?:\/\/[^\/]+)\//, "$1/espanol/");
				jQuery("a.title_esp_link", jqc).attr("href", href);
				jQuery("div.see_all a", jqc).attr("href", href);
			}
			
		},
	/*
		END: Toggle language in center column
	*/

	/*
		START: Fix lower left col items 
	*/
		"espLeftCol": function(selector)
		{
			var jqc = jQuery(selector).eq(0), box, html, htmlb;
			html = (box = jQuery("div.left_col_donate", jqc).eq(0)).html();
			html = html ? html.replace(/<[^>]+>/g, "").replace(/\s/g, "") : "";
			if (!html.length)
			{
				box.css("display", "none");
			}

			box = jQuery("div.ds_box_a", jqc);
			html = jQuery("div.box_header", box).html();
			html = html ? html.replace(/<[^>]+>/g, "").replace(/\s/g, "") : "";
			htmlb = jQuery("div.box_body", box).html();
			htmlb = htmlb ? htmlb.replace(/<[^>]+>/g, "").replace(/\s/g, "") : "";
			if (!html.length || !htmlb.length)
			{
				box.css("display", "none");
			}
		},
	/*
		END: Fix lower left col items 
	*/

	/*
		START: Fix Esp. child dev. box
	*/
		"espChildDevBox": function(selector)
		{
			var jqcs = jQuery(selector+" div.call_out_a"), jqc, jq, i, c, tag;
			for (i = 0, c = jqcs.length; i < c; i++)
			{
				jqc = jqcs.eq(i);
				tag = jQuery("div.title_link a", jqc).attr("href").replace(/^.+\/([^\/]+)\/$/, "$1");
				jQuery("a.title_esp_link", jqc).attr("href", "/espanol/articles.html#"+tag);
				jQuery("div.see_all a", jqc).attr("href", "/espanol/articles.html#"+tag);
			}
		},
	/*
		END: Fix Esp. child dev. box
	*/

	/*
		START: Fix height of listen, learn box
	*/
		"homeRowAHeightAdj": function(selector)
		{
		}
	/*
		END: Fix height of listen, learn box
	*/
};


jQuery(document).ready
(
	function()
	{
		//abilitypath.home.initLanguageToggle();
		
		// Rollover for the promo buckets
		jQuery("img.pngfix.rollover").parent().each
		(
			function()
			{
				jQuery(this).mouseover
				(
					function()
					{
						img = jQuery("img", this).get(0);
						img.src = img.src.replace(/(\.[^\.]+)$/, "-rollover$1");
					}
				).mouseout
				(
					function()
					{
						img = jQuery("img", this).get(0);
						img.src = img.src.replace(/-rollover(\.[^\.]+)$/, "$1");
					}
				);
			}
		);
		
		jQuery("div#home_child_dev_box div.call_out_a div.header").eq(0).css("background-image", "none");
	}
);