
var questionRefinePulldownOptions = new Array();

var questionBoxCurrentSelectedIndex = 0;
var questionBoxCurrentSelectedIndexMax = 0;

var questionBoxRefineCurrentSelectedIndex = 0;
var questionBoxRefineCurrentSelectedIndexMax = 0;
var pathToHBX;
/*******************************/
/** Pulldown for question box **/
/*******************************/

var questionPulldownOptions = new Array();

function hideQuestionSelectorPulldown()
{
	questionBoxCurrentSelectedIndex = 0;
	var targetDiv = document.getElementById("questionSelectPulldown");
	targetDiv.style.display = "none";
}

function updateQuestionPulldownOptionsList(item, keyEvent)
{
	var keynumber;
	var keyPressed = "";
	var startingHTML = "<tr><td onMouseOver=\"questionBoxCurrentSelectedIndex=";
	var secondHTML = ";setPulldownSelectedIndex(";
	var thirdHTML = ", 'questionBoxSelectorPulldownItem', 'questionBoxSelectorPulldownItemOver', 'questionBoxSelectorPulldownItemOff', document.searchBox.elements['question'], document.getElementById('questionSelectPulldown'));\" class=\"questionBoxSelectorPulldownItemOff\" id=\"questionBoxSelectorPulldownItem";
	var selectorClick = "\" onClick=\"questionBoxSelectorClick(this.getElementsByTagName('div')[0].innerHTML);\">";
	var tailHTML = "<div style=\"display: none;\">";
	var endingHTML = "</div></td></tr>";
	
	if(window.event) // IE
	{
		keynumber = keyEvent.keyCode;
	}
	else if(keyEvent.which) // Netscape/Firefox/Opera
	{
		keynumber = keyEvent.which;
	}
	if((keynumber > 31) && (keynumber < 128))
	{
		if(keynumber == 38){
			if(questionBoxCurrentSelectedIndex > 0){
				setPulldownSelectedIndex( questionBoxCurrentSelectedIndex-1, questionBoxCurrentSelectedIndexMax, "questionBoxSelectorPulldownItem", "questionBoxSelectorPulldownItemOver", "questionBoxSelectorPulldownItemOff", document.searchBox.elements['question'], document.getElementById("questionSelectPulldown"));
				questionBoxCurrentSelectedIndex--;
			}
			return;
		}else if(keynumber == 40){
			if(questionBoxCurrentSelectedIndex < questionBoxCurrentSelectedIndexMax){
				setPulldownSelectedIndex( questionBoxCurrentSelectedIndex+1,questionBoxCurrentSelectedIndexMax, "questionBoxSelectorPulldownItem", "questionBoxSelectorPulldownItemOver", "questionBoxSelectorPulldownItemOff", document.searchBox.elements['question'], document.getElementById("questionSelectPulldown"));
				questionBoxCurrentSelectedIndex++;
			}
			return;
		}else{
			keyPressed = String.fromCharCode(keynumber);
			questionBoxCurrentSelectedIndex = 0;
		}
	}else if(keynumber == 13)
	{
		hideQuestionSelectorPulldown();
		return;
	}

	var value = item.value;
	if(value.length > 1)
	{

		var baseDiv = document.getElementById("questionBoxAnchor");

		var url = "index?page=questionBoxPulldownSelector&keyin="+URLEncode(value);
		var targetDiv = document.getElementById("questionSelectPulldown");

		var myTop = baseDiv.offsetTop + baseDiv.offsetHeight -4;
		var myLeft = baseDiv.offsetLeft;

		if( isIE())
		{
			myTop += 0;
			myLeft += 0;
		}

		
		myTop += getAbsoluteTop(baseDiv, true);
		myLeft += getAbsoluteLeft(baseDiv, true);
		
	
		targetDiv.style.top = myTop+"px";
		targetDiv.style.left = myLeft+"px";
		
		
		/*$.get(url, function(data){
			
			if(data.indexOf("NOSUGGESTIONS") > -1)
			{
				targetDiv.style.display = "none";
			}else
			{
				targetDiv.style.display = "block";
				targetDiv.innerHTML = data;
			}
		});
		*/
		var divData = "<table id=\"questionSelectPulldownTable\" border=\"0\" style=\"margin-left: 1px;vertical-align: bottom;\" cellpadding=\"0\" cellspacing=\"0\" width=\"99%\" >";
		var foundValue = false;
		value = value.toUpperCase();
		var count = 1;
		for (i in questionPulldownOptions) { 
			if(questionPulldownOptions[i].toUpperCase().indexOf(value) >= 0)
			{
				foundValue = true;
				divData += startingHTML;
				divData += count;
				divData += secondHTML;
				divData += count;
				divData += ",";
				divData += (count+1);
				divData += thirdHTML;
				divData += count;
				divData += selectorClick; 
				divData += questionPulldownOptions[i];				
				divData += tailHTML;
				divData += questionPulldownOptions[i];		
				divData += endingHTML;	
				count++;
			}

		}
		questionBoxCurrentSelectedIndexMax = count;
		 
		targetDiv.innerHTML = divData + "</table>";
		if(!foundValue)
		{
			hideQuestionSelectorPulldown();
		}
		else
		{
			targetDiv.style.display = "block";			
		}
	}
	else
	{
		hideQuestionSelectorPulldown();
	}
}

function questionBoxSelectorClick(label)
{
	document.searchBox.elements['question'].value = label;
	hideQuestionSelectorPulldown();
}


function blurQuestionSelectPulldown()
{
	setTimeout("hideQuestionSelectorPulldown();",500);

}


/*******************/
/** Refine box methods **/
/*******************/

function hideQuestionRefineSelectorPulldown()
{

	var targetDiv = document.getElementById("questionRefineSelectPulldown");
	targetDiv.style.display = "none";
}

function updateQuestionRefinePulldownOptionsList(item, keyEvent)
{
	var keynumber;
	var keyPressed = "";
	var startingHTML = "<tr><td onMouseOver=\"questionBoxRefineCurrentSelectedIndex=";
	var secondHTML = ";setPulldownSelectedIndex(";
	var thirdHTML = ", 'questionBoxSelectorPulldownItem', 'questionBoxSelectorPulldownItemOver', 'questionBoxSelectorPulldownItemOff', document.refineBox.elements['question'], document.getElementById('questionRefineSelectPulldown'));\" class=\"questionBoxSelectorPulldownItemOff\" id=\"questionBoxSelectorPulldownItem";
	var selectorClick = "\" onClick=\"questionBoxRefineSelectorClick(this.getElementsByTagName('div')[0].innerHTML);\">";
	var endingHTML = "</div></td></tr>";
	
	if(window.event) // IE
	{
		keynumber = keyEvent.keyCode;
	}
	else if(keyEvent.which) // Netscape/Firefox/Opera
	{
		keynumber = keyEvent.which;
	}
	if((keynumber > 31) && (keynumber < 128))
	{
		if(keynumber == 38){
			if(questionBoxRefineCurrentSelectedIndex >= 0){
				setPulldownSelectedIndex( questionBoxRefineCurrentSelectedIndex-1, questionBoxRefineCurrentSelectedIndexMax, "questionBoxSelectorPulldownItem", "questionBoxSelectorPulldownItemOver", "questionBoxSelectorPulldownItemOff", document.refineBox.elements['question'], document.getElementById("questionRefineSelectPulldown"));
				questionBoxRefineCurrentSelectedIndex--;
			}
			return;
		}else if(keynumber == 40){
			if(questionBoxRefineCurrentSelectedIndex <= questionBoxRefineCurrentSelectedIndexMax){
				setPulldownSelectedIndex( questionBoxRefineCurrentSelectedIndex+1,questionBoxRefineCurrentSelectedIndexMax, "questionBoxSelectorPulldownItem", "questionBoxSelectorPulldownItemOver", "questionBoxSelectorPulldownItemOff", document.refineBox.elements['question'], document.getElementById("questionRefineSelectPulldown"));
				questionBoxRefineCurrentSelectedIndex++;
			}
			return;
		}else{
			keyPressed = String.fromCharCode(keynumber);
			questionBoxRefineCurrentSelectedIndex = 0;
		}
	}else if(keynumber == 13)
	{
		hideQuestionRefineSelectorPulldown();
		return;
	}

	var value = item.value;
	if(value.length > 1)
	{
		

		var baseDiv = document.getElementById("questionBoxAnchor");

		var url = "index?page=questionBoxPulldownSelector&keyin="+URLEncode(value);
		var targetDiv = document.getElementById("questionRefineSelectPulldown");
		var targetInput = document.getElementById("refineQuestion");
		

		var myTop = baseDiv.offsetHeight -4;
		var myLeft = 0; 

		if( isIE())
		{
			myTop += 0;
			myLeft += 0;
		}

		
		myTop += getAbsoluteTopFromID(baseDiv, "bodyWrapper", true);
		myLeft += getAbsoluteLeftFromID(targetInput, "bodyWrapper", true);
		
		
		targetDiv.style.top = myTop+"px";
		targetDiv.style.left = myLeft+"px";
		
		/*$.get(url, function(data){
			
			if(data.indexOf("NOSUGGESTIONS") > -1)
			{
				targetDiv.style.display = "none";
			}else
			{
				targetDiv.style.display = "block";
				targetDiv.innerHTML = data;
			}
		});
		*/
		var divData = "<table border=\"0\" style=\"margin-left: 1px;vertical-align: bottom;\" cellpadding=\"0\" cellspacing=\"0\" width=\"99%\" >";
		var foundValue = false;
		var count = 1;
		value = value.toUpperCase();
		for (i in questionPulldownOptions) { 
			if(questionPulldownOptions[i].toUpperCase().indexOf(value) >= 0)
			{
				foundValue = true;
				divData += startingHTML;
				divData += count;
				divData += secondHTML;
				divData += count;
				divData += ",";
				divData += (count+1);
				divData += thirdHTML;
				divData += count;
				divData += selectorClick;
				divData += questionPulldownOptions[i];				
				divData += "<div style=\"display: none;\">";
				divData += questionPulldownOptions[i];		
				divData += endingHTML;	
				count++;				
			}

		};

		questionBoxRefineCurrentSelectedIndexMax = count;
		targetDiv.innerHTML = divData + "</table>";
		if(!foundValue)
		{
			hideQuestionRefineSelectorPulldown();
		}
		else
		{
			targetDiv.style.display = "block";			
		}
	}
	else
	{
		hideQuestionRefineSelectorPulldown();
	}
}

function questionBoxRefineSelectorClick(label)
{
	document.refineBox.elements['question'].value = label;
	hideQuestionRefineSelectorPulldown();
}

function blurQuestionRefineSelectPulldown()
{
	setTimeout("hideQuestionRefineSelectorPulldown();",500);

}


function loadSearchResultPortlets()
{

	//check to see if the hiddenFacets div is present. if it is, load it in facetsList
	var targetDiv = $("#hiddenFacets").html();
	if(targetDiv != null)
	{
		$("#facetsList").html(targetDiv);
	}
	
	//check to see if the hiddenPortlets div is present. if it is, load it in facetsList
	targetDiv = $("#hiddenPortlets").html();
	if(targetDiv != null)
	{
		$("#portletsList").html(targetDiv);
	} 
	
	//for HBX, get the product
	var product = "";	
	product = $("#hiddenProduct").html();
	if((product == null)||(product == ""))
	{
		product = "NOPRODUCT";
	}
	
	//for HBX, get the question
	var question = "";
	targetDiv = $("#hiddenQuestion").html();
	if(targetDiv != null)
	{
		question = targetDiv;
	}
	
	//for HBX, get the result count
	var resultCount = "";
	targetDiv = $("#hiddenAnswersCount").html();
	if(targetDiv != null)
	{
		resultCount = targetDiv;
		//fire a HBX event
		searchEvent(question, resultCount, product, pathToHBX);
	}
	
	
}
