//initialise variables
var vTimer;
var vLastSearch;
vTimer=10;

//init timer
function initSearchTimer()
{
//alert("done!");
setTimeout("pollTimer()", 100);
}

//reset time count if a key is pressed
function resetTimer()
{
vTimer=10;
document.getElementById("SearchMain").style.display="none";
document.getElementById('clearSearch').style.visibility="hidden";
if (document.getElementById("search-field").value=="")
	{
	document.getElementById("SearchMain").style.display="none";
	document.getElementById("searching").style.visibility='hidden';
	}
}

//decrease timer variable and hide divs that should not be visible
function pollTimer()
{
if (document.getElementById("search-field").value=="")
	{document.getElementById("SearchMain").style.display="none";}
if (document.getElementById("search-field").value!="")
	{
	vTimer=vTimer-1;
	if (vTimer<0){vTimer=10}
	}
//alert(vTimer);
//document.getElementById("debug").innerHTML=vTimer;
if (vTimer==0 & vLastSearch!=document.getElementById("search-field").value & document.getElementById("search-field").value!='')
	{
	ajaxSearch(document.getElementById("search-field").value);
	vLastSearch=document.getElementById("search-field").value
	}
//if (vTimer==0 & document.getElementById("search-field").value!='' & vLastSearch==document.getElementById("search-field").value)
	//{document.getElementById("SearchMain").style.display="";}
setTimeout("pollTimer()", 100);
}

//do the search
function ajaxSearch(searchString)
{
var xmlhttp;

document.getElementById("searching").style.visibility='visible';
document.getElementById("SearchMain").style.display="none";
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  // code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
else
  {
  alert("Your browser does not support XMLHTTP!");
  }
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
	{
	//only display results if the searech string hasn't been changed
	if (document.getElementById("search-field").value==searchString)
		{
		document.getElementById("SearchResultsHolder").innerHTML=xmlhttp.responseText;
		document.getElementById("searching").style.visibility='hidden';
		document.getElementById("clearSearch").style.visibility='visible';
		document.getElementById("thumb").style.top=scrollMinY + "px";
		document.getElementById("thumb").style.left=scrollMinX + "px";
		scrolldiv.style.top=0 +"px";
		if (document.getElementById("SearchResultsHolder").innerHTML.length>2)
			{
			document.getElementById("SearchMain").style.display="";
			}
		else
			{
			document.getElementById("SearchMain").style.display="none";
			}
		}
	//document.getElementById("debug").innerHTML=document.getElementById("SearchResultsHolder").offsetHeight;
	if (document.getElementById("SearchResultsHolder").offsetHeight>400)
		{
		document.getElementById("").style.height=399 + "px";
		document.getElementById("thumb").style.display="";
		document.getElementById("thumbSlide").style.display="";
		}
	else
		{
		document.getElementById("SearchResultsContainer").style.height=document.getElementById("SearchResultsHolder").offsetHeight+"px";
		document.getElementById("thumb").style.display="none";
		document.getElementById("thumbSlide").style.display="none";
		}
	}
}
xmlhttp.open("GET","/_ajaxSearch.asp?" + searchString,true);
xmlhttp.send(null);
}
function resizeSearch()
{
  if (document.getElementById("SearchResultsHolder").offsetHeight>400)
	{
	document.getElementById("SearchResultsContainer").style.height=399 + "px";
	document.getElementById("thumb").style.display="";
	document.getElementById("thumbSlide").style.display="";
	}
else
	{
	document.getElementById("SearchResultsContainer").style.height=document.getElementById("SearchResultsHolder").offsetHeight+"px";
	document.getElementById("thumb").style.display="none";
	document.getElementById("thumbSlide").style.display="none";
	}
}

function hideSection(vSection)
{
if (vSection=='ForumTopics')
	{
	document.getElementById('matchesForumTopics').style.display='none';
	document.getElementById('HideForumPosts').style.display='none';
	document.getElementById('ShowForumPosts').style.display='inline';
	resizeSearch();
	}
if (vSection=='Products')
	{
	document.getElementById('matchesProducts').style.display='none';
	document.getElementById('HideProducts').style.display='none';
	document.getElementById('ShowProducts').style.display='inline';
	resizeSearch();
	}
if (vSection=='Pages')
	{
	document.getElementById('matchesPages').style.display='none';
	document.getElementById('HidePages').style.display='none';
	document.getElementById('ShowPages').style.display='inline';
	resizeSearch();
	}
}
function showSection(vSection)
{
if (vSection=='ForumTopics')
	{
	document.getElementById('matchesForumTopics').style.display='block';
	document.getElementById('HideForumPosts').style.display='inline';
	document.getElementById('ShowForumPosts').style.display='none';
	resizeSearch();
	}
if (vSection=='Products')
	{
	document.getElementById('matchesProducts').style.display='block';
	document.getElementById('HideProducts').style.display='inline';
	document.getElementById('ShowProducts').style.display='none';
	resizeSearch();
	}
if (vSection=='Pages')
	{
	document.getElementById('matchesPages').style.display='block';
	document.getElementById('HidePages').style.display='inline';
	document.getElementById('ShowPages').style.display='none';
	resizeSearch();
	}
}

function hookEvent(element, eventName, callback)
{
  if(typeof(element) == "string")
    element = document.getElementById(element);
  if(element == null)
    return;
  if(element.addEventListener)
  {
    if(eventName == 'mousewheel')
      element.addEventListener('DOMMouseScroll', callback, false);  
    element.addEventListener(eventName, callback, false);
  }
  else if(element.attachEvent)
    element.attachEvent("on" + eventName, callback);
}

function cancelEvent(e)
{
  e = e ? e : window.event;
  if(e.stopPropagation)
    e.stopPropagation();
  if(e.preventDefault)
    e.preventDefault();
  e.cancelBubble = true;
  e.cancel = true;
  e.returnValue = false;
  return false;
}

function getY( oElement )
{
var iReturnValue = 0;
while( oElement != null ) {
iReturnValue += oElement.offsetTop;
oElement = oElement.offsetParent;
}
return iReturnValue;
}

function scrollDiv(e)
{
	e = e ? e : window.event;
	var raw = e.detail ? e.detail : e.wheelDelta;
	var normal = e.detail ? e.detail * -1 : e.wheelDelta / 40;
	if (document.getElementById("SearchResultsHolder").offsetHeight>400)
		{
		var thumbPos=document.getElementById('thumb').style.top;
		scrollBarTop=scrollBarTop - (normal*2);
		if (scrollBarTop<scrollMinY){scrollBarTop=scrollMinY}
		if (scrollBarTop>scrollMaxY){scrollBarTop=scrollMaxY}
		document.getElementById('thumb').style.top=scrollBarTop + "px";
		document.getElementById("SearchResultsHolder").style.top=-(scrollBarTop-scrollMinY) * ((document.getElementById("SearchResultsHolder").offsetHeight+scrollMaxY)/(scrollMaxY-scrollMinY)) +"px";
		}
	cancelEvent(e);
}

var scrollMinX=290;
var scrollMaxX=290;
var scrollMinY=-765;
var scrollMaxY=-407;
var scrollHeight=scrollMaxY-scrollMinY
var scrollBarTop=scrollMinY;

addLoadEvent(initSearchTimer);


