var navApp = navigator.userAgent;
var ieSeven = false;
var featuredItemWidth = 153;
var toggleLinkPrefix = "toggle-subscription-";
var selectorContainer = $("#featured-widget-selector");
var selector = $("#featured-widget-selector div");
var selectorList = $("#featured-widget-selector ul");
var leftScroller = $("#featured-widget-scroller div.feature-selector-scroller-left");
var rightScroller = $("#featured-widget-scroller div.feature-selector-scroller-right");
var searchTypes = {
	1: "boardSearch",
	2: "generalSearch",
	3: "academiesSearch"
}

$(document).ready(function() {
	var searchBox = $("input#search-box");

	selectorContainer = $("#featured-widget-selector");
	selector = $("#featured-widget-selector div");
	selectorList = $("#featured-widget-selector ul");
	leftScroller = $("#featured-widget-scroller div.feature-selector-scroller-left");
	rightScroller = $("#featured-widget-scroller div.feature-selector-scroller-right");

	checkBrowser();
	highlightTab();
	checkSearchDomain();
	checkSearchBox(searchBox);
	checkFeatureScroller();

	searchBox.click(function() {
		enterSearchBox($(this));
	});

	searchBox.select(function() {
		enterSearchBox($(this));
	});

	searchBox.focus(function() {
		enterSearchBox($(this));
	});

	searchBox.blur(function() {
		checkSearchBox($(this));
	});

	searchBox.load(function() {
		checkSearchBox($(this));
	});

	setInterval(rotateSlides, 10000);

	$("#text-size-plus").click(function() {
		changeTextSize(1);
	});

	$("#text-size-minus").click(function() {
		changeTextSize(-1);
	});

	$("#text-size").click(function() {
		changeTextSize(0);
	});

	$("[id^=" + toggleLinkPrefix + "]").each(function() {
		$(this).toggle(function() {
			var targetId = $(this).attr("id").substring(7);
			$("#" + targetId).slideUp(200);
			$(this).text("show list");
			return false;
		}, function() {
			var targetId = $(this).attr("id").substring(7);
			$("#" + targetId).slideDown(200);
			$(this).text("hide list");
			return false;
		});
	});

	$("#subscription-frequency").change(function() {
		var frequency = $("#subscription-frequency").val();
		$("#email_frequency_monthly").val(null);
		$("#email_frequency_instant").val(null);
		$("#email_frequency_both").val(null);

		if (frequency == "EMAIL_FREQUENCY_MONTHLY") {
			$("#email_frequency_monthly").val("yes");
		}

		if (frequency == "EMAIL_FREQUENCY_INSTANT") {
			$("#email_frequency_instant").val("yes");
		}

		if (frequency == "EMAIL_FREQUENCY_BOTH") {
			$("#email_frequency_both").val("yes");
		}
	});
});

function checkBrowser() {
	if (navApp.indexOf("MSIE 7") != -1) {
		$("body").addClass("ie7");
		ieSeven = true;
	}

	if (navApp.indexOf("MSIE 8") != -1) {
		$("body").addClass("ie8");
	}

	if (navApp.indexOf("Chrome") != -1 || navApp.indexOf("Safari") != -1) {
		$("body").addClass("gecko");
	}
}

function switchFeatureImage(linkBox, featureId) {
	$("#featured-widget-selector li").each(function() {
		$(this).removeClass();
	});

	$(linkBox).parent().addClass("selected");

	$("#featured-widget-top").children(".feature-wrapper").each(function() {
		if (featureId != $(this).attr("id")) {
			$(this).removeClass("featured");
		} else {
			$(this).addClass("featured");
		}
	});
}

function checkFeatureScroller() {
	if (selectorContainer) {
		var liList = $("#featured-widget-selector li");
		var listSize = liList.size();
		var single = listSize < 2;

		if (listSize < 5) {
			selector.width("100%");
			if (ieSeven) {
				if (single) {
					liList.width("612px");
				} else {
					var itemWidth = 610 / listSize;
					liList.each(function(i) {
						if (i < 1) {
							$(this).width(itemWidth - listSize + 2 + "px");
						} else {
							$(this).width(itemWidth + "px");
						}
					});
				}
			}
		} else {
			var position = parseInt(selector.css("left"));
			if (ieSeven) {
				selectorList.width(listSize * 154);
			}
			showHideScroller(position);

			$(window).resize(function() {
				position = parseInt(selector.css("left"));
				showHideScroller(position);
			});
		}
	}
}

function showHideScroller(position) {
	if (position < 0) {
		leftScroller.css("display", "block");
	} else {
		leftScroller.css("display", "none");
	}

	if (Math.abs(selector.width() + position - selectorContainer.width() > 10)) {
		rightScroller.css("display", "block");
	} else {
		rightScroller.css("display", "none");
	}
}

function moveSlider(direction) {
	var containerWidth = selectorContainer.width();
	var selectorWidth = selector.width();
	var position = parseInt(selector.css("left"));

	if (direction < 0 && position == 0) {
		return;
	}

	if (direction > 0 && Math.abs(selectorWidth + position - containerWidth) < 10) {
		return;
	}

	var numItems = Math.floor(containerWidth / featuredItemWidth);
	var displacement = numItems * featuredItemWidth;

	if (direction < 0 && (position < 0)) {
		if (position >= -(containerWidth)) {
			selector.animate({ left : 0 }, 500, showHideScroller(0));
		} else {
			position += displacement;
			selector.animate({ left : position }, 500, showHideScroller(position));
		}
	} else if (direction > 0 && (-(position) < selectorWidth + position)) {
		position -= displacement;
		selector.animate({ left : position }, 500, showHideScroller(position));
	}
}

function toggleBarLinkSection(id) {
	$("#bar-links-wrapper div.accordion-slider").each(function() {
		if ($(this).attr("id") == id) {
			$(this).slideToggle(300);
		} else {
			$(this).slideUp(300);
		}
	});
}

function highlightTab() {
	var tabName = $("#tabName").val();

	if (tabName === null || tabName === undefined) {
		return;
	}

	$("#" + tabName).addClass("selected-tab");
}

function checkSearchBox(searchBox) {
	if (searchBox.val().length < 1) {
		searchBox.addClass("empty");
	} else {
		enterSearchBox($(this));
	}
}

function enterSearchBox(searchBox) {
	searchBox.removeClass();
}

function checkSearchDomain() {
	var criterion = $("#search-form-domain").val();
	var board = $("#search-tab-1").is("span");

	for (i = 1; i < 4; i++) {
		if (searchTypes[i] == criterion) {
			switchSearch($("#search-tab-" + i), board);
			break;
		}
	}
}

function switchSearch(clicked, board) {
	var container = $("#search-form-elements");
	var domain = $("#search-form-domain");
	var criterion = parseInt($(clicked).attr("id").substring(11));

	// Select the clicked tab
	$("#search-tabs-element span").each(function() {
		$(this).removeClass("selected");
	});
	$(clicked).addClass("selected");

	// Change search type in the hidden input
	domain.val(searchTypes[criterion]);

	// Change search form background to highlight the clicked tab
	container.removeClass();
	container.addClass("search-bar-right-cell-wrapper");

	if (!board) {
		criterion -= 1;
	}
	container.addClass("select-" + criterion);
}

function changeTextSize(factor) {
	$("#column-2 *").not("img").not("br").not("a.bar-link-toggler")
			.not("#featured-widget-selector *").not("#topic-header-wrapper").each(function() {
		if (factor == 0) {
			$(this).css("font-size", "");
		} else {
			var currentFontSize = parseFloat($(this).css("font-size"));
			if ((factor > 0 && currentFontSize > 18) || (factor < 0 && currentFontSize < 10)) {
				return;
			}
			var newFontSize = currentFontSize + factor;
			$(this).css("font-size", newFontSize + "px");
		}
	});
}

function showSortList(listWrapper) {
	var wrapper = $(listWrapper);
	wrapper.children("span").attr("style", "border-bottom-width: 0; padding-bottom: 5px;");
	wrapper.children("ul").show();
}

function hideSortList(listWrapper) {
	var wrapper = $(listWrapper);
	wrapper.children("span").attr("style", "border-bottom-width: 1px");
	$(listWrapper).children("ul").hide();
}

function getNumberResults(count) {
	$("#numberOfEvents").value = count;
	document.forms["sortUpcomingEvents"].submit();
}

function rotateSlides() {
	var flip = false;
	var counter = 0;
	var slideshowItems = $("#topic-report-slideshow").children();
	var size = slideshowItems.size();

	if (size < 2) {
		return;
	}

	slideshowItems.each(function(index) {
		if ($(this).hasClass("active")) {
			$(this).removeClass("active");
			if (index == size - 1) {
				slideshowItems.each(function(idx) {
					if (idx == 0) {
						$(this).addClass("active");
					}
				});
				return;
			}
			flip = true;
			counter = index + 1;
		}
		if (flip == true && counter == index) {
			$(this).addClass("active");
			flip = false;
		}
	});
}

function visitOurBoards() {
	var jumpTo = $("#visit-our-boards option:selected").val();
	if (jumpTo != "#") {
		location.href = jumpTo;
	}
}



function browseByBoardTopic() {

	var jumpTo = $("#browse-by-topic option:selected").val();
	if (jumpTo != "#") {
		location.href =  jumpTo + "/Reports-Academies-Findings"


	}
}
function showStageDesc(index) {
	var stageIdPrefix = "study-stage-description-";
	var stageId = stageIdPrefix + index;

	$("[id^=" + stageIdPrefix + "]").each(function() {
		if ($(this).attr("id") == stageId) {
			$(this).addClass("selected");
		} else {
			$(this).removeClass();
		}
	});
}

function getSearchResultsPage(page) {
	$("#search-start-index").val(page);
}

function sortSearchResults(sortOrder, prefix) {
	$("input#" + prefix + "-order").val(sortOrder);
	$("form#" + prefix + "-form").submit();
}

function checkAll(parentId) {
	$("#" + parentId + " input").each(function() {
		$(this).attr("checked", "checked");
	});
}

function uncheckAll(parentId) {
	$("#" + parentId + " input").each(function() {
		$(this).removeAttr("checked");
	});
}

function setArtifactType(tab, artifactType) {
	$("input#search-artifact-type").val(artifactType);
	$("input#search-active-tab").val(tab.id);
	$("form#search-tabs-form").submit();
}

