///// SEARCH GUIDE ////////

var useSearchGuide = false;
if(sessionFlag)
	useSearchGuide = true;
var loadingMsg = '<div style="text-align:center; padding-top:15px; padding-bottom:15px;"><img src="/includes/images/spinner.gif" align="absmiddle" alt="Loading" /> Loading...</div>';
var searchGuideOpen = false; //leave this alone!
//var myBlackout = new Modalizer();

//console.log(Browser);

function initSearchGuide() {
	$("searchGuideContainer").setOpacity(0);
	//$("searchGuideContainer").setStyle("display", "block");
	$("searchGuideHead").addClass("searchGuideHead");
	$("searchGuideFoot").addClass("searchGuideFoot");
	
	$("searchGuideHoldingTank").set("html", loadingMsg); //prepopulate so it has an original height :)

	$("searchbox").addEvent("keydown", function(event) {
		if(event.key == "enter")
			submitBaynoteSearch();
	});
	
	$("container").addEvent("keydown", function(event) {
		//escape key closes search guide!
		if(event.key == "esc" && searchGuideOpen == true) {
			console.log("hiding");
			hideSearchGuide();
		}
	});
	
	//$("searchbox").value = "mike";
	//submitBaynoteSearch();
}



function submitBaynoteSearch() {
	if(useSearchGuide == true) {
		if(searchGuideOpen == false)
			showSearchGuide();
		getSearchResults();
	}
	else {
		if($("searchbox").value != "") {
			$("searchForm").submit();
		}
	}
}



function showHideFlash(state) {

	//hide all the flash
	var flashes = $("container").getElements("object");
	
	flashes.each(function(item) {
		item.style.visibility = state;
	});

	var flashes = $("container").getElements("embed");
	flashes.each(function(item) {
		item.style.visibility = state;
	});
	
	//also deal with the other troublesome areas
	//if($("tickerScroller")) { //tickerScroller on the front door
	//	$("tickerScroller").setStyle("visibility", state);
	//}
	if($("allTips")) { //hovers on the platform overview...IE problems of course
		$("allTips").setStyle("visibility", state);
	}

}



function searchTerm(term) {
	$("searchbox").value = term;
	submitBaynoteSearch();
}



function getSearchResults() {

	$("searchGuideContainer").setStyle("display", "block");
	
	searchGuideLoading();

	var ajax = new Request.HTML(
		{
			url:"/search/search-guide.php",
			update:"searchGuideHoldingTank",
			onComplete:function() {
				var current = $("searchGuide").getSize();
				var holding = $("searchGuideHoldingTank").getSize();
				var height1 = current.y;
				var height2 = holding.y;
				resizeSearchGuide(height1, height2);
				var tank = $("searchGuideHoldingTank").get("html");
				$("searchGuide").set("html", tank);
			}
		}
	);
	ajax.get($("searchForm"));
	
	searchGuideOpen = true;
}


function resizeSearchGuide(height1, height2) {
	var container = $("searchGuide");
	var myMorph = new Fx.Morph(container,
		{
			duration:300,
			transition: Fx.Transitions.Cubic.easeOut
		}
	);
	myMorph.start(
		{
			"height":[height1, height2]
		}
	);
}



function searchGuideLoading() {
	
	var oldHeight = $("searchGuideHoldingTank").getSize();

	$("searchGuideHoldingTank").set("html", loadingMsg);

	var newHeight = $("searchGuideHoldingTank").getSize();

	var height1 = oldHeight.y;
	var height2 = newHeight.y;
	
	resizeSearchGuide(height1, height2);
	$("searchGuide").set("html", loadingMsg);

}

function showSearchGuide() {
	//hide all the flash
	showHideFlash("hidden");
	
	blackout("show");

	var currentOpactity = $("searchGuideContainer").getStyles("opacity").opacity;
	if(currentOpactity == 0) {
		//fade in outside...ie can't deal with fading alpha channels
		if(!Browser.Engine.trident) {
		
		
			var container = $("searchGuideContainer");
			var myMorph = new Fx.Morph(container,
				{
					duration:250,
					transition: Fx.Transitions.Cubic.easeOut
				}
			);
			myMorph.start(
				{
					"opacity":[0, 1]
				}
			);
		}
		else {
			$("searchGuideContainer").setOpacity(1);		
		}
	}
}

function hideSearchGuide() {
	
	//fade out outside...ie can't deal with fading alpha channels
	if(!Browser.Engine.trident) {

		var container = $("searchGuideContainer");
		var myMorph = new Fx.Morph(container,
			{
				duration:250,
				transition: Fx.Transitions.Cubic.easeOut
			}
		);
		myMorph.start(
			{
				"opacity":[1, 0]
			}
		).chain(function() {
			$("searchGuide").set("html", "");
			$("searchGuideHoldingTank").set("html", "");
			$("searchGuideContainer").setStyle("display", "none");
			
			//show all the flash
			showHideFlash("visible");
		});
	}
	else { //ie still sucks
		$("searchGuideContainer").setOpacity(0);
		$("searchGuide").set("html", "");
		$("searchGuideHoldingTank").set("html", "");
		$("searchGuideContainer").setStyle("display", "none");

		//show all the flash
		showHideFlash("visible");
	}
	
	blackout("hide");
	
	searchGuideOpen = false;
}

function blackout(todo) {

	
	//var myBlackout = new Modalizer();
	
	//not working...just bail for now
	return;
	
	if(todo == "show") {
		myBlackout.modalShow(
			{
				modalStyle:
					{
						//"background-color":"#d6e1b9",
						"opacity":.3,
						"z-index":61
					}
			}
		);
	}
	else if(todo == "hide") {
		myBlackout.modalHide();
	}
		



	//not working...just bail for now
	return;

	//IE sucks...just forget it.
	if(Browser.Engine.trident) {
		return;
	}
	
	var myOpacity = .3;
	var startOp;
	var endOp;
	var blackout = $("blackout");
	blackout.setStyle("display", "block");
	
	if(todo == "show") {
		startOp = 0;
		endOp = myOpacity;
	}
	else if(todo == "hide") {
		startOp = myOpacity;
		endOp = 0;
	}
	
	var myMorph = new Fx.Morph(blackout,
		{
			duration:250,
			transition: Fx.Transitions.Cubic.easeOut
		}
	);
	myMorph.start(
		{
			"opacity":[startOp, endOp]
		}
	).chain(function() {
		if(endOp == 0)
			blackout.setStyle("display", "none");
	});
}