var objRequest;
var offset

function GetFile(url) {
	objRequest = false;

	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
	{
		try
		{
			objRequest = new XMLHttpRequest()
		}
		catch (e)
		{
			objRequest = false
		}
	}
	// code for IE Windows
	else if (window.ActiveXObject)
	{
		try
		{
			objRequest = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e)
		{
			try
			{
				objRequest = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e)
			{
				objRequest = false
			}
		}
	}
	else
	{
		objRequest = false;
	}
	if (objRequest)
	{
		objRequest.onreadystatechange = RequestChangeHandler;
		objRequest.open("GET", url, true);
		objRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
		objRequest.send(null);
	}
}

function RequestChangeHandler()
{
/*	readyState:
	0 = uninitialized
	1 = loading
	2 = loaded
	3 = interactive
	4 = complete*/

	var res;

	if (objRequest.readyState == 4)
	{
		if (objRequest.status == 200)	// 200 = "OK"
		{
			// Show results on screen (by using the "searchcontent" layer)
			res = objRequest.responseText;
			if (res.indexOf('<!--NO RESULTS-->') != -1)
			{
				if (document.getElementById("supportsitelanguage").value != 'EN_GB')
				{
					if (document.getElementById("ensearch").checked == false)
					{
						document.getElementById("ensearch").click();
					}
				}
			}
			document.getElementById("searchcontent").innerHTML = res;
			
		}
		else
		{
			alert("Problem retrieving XML data");
		}
	}
}

function CreateQuery(search,start,col,frontend)
{
	stylesheet = frontend;

	// Checkbox available?
	if(document.getElementById("ensearch"))
	{
		if(document.getElementById("ensearch").checked)
		{
			// Search in English collection
			col += "|EN";
		}
	}

	// Google querystring
	query = "?q=" + search;
	query = query + "&oe=UTF-8";
	query = query + "&ie=UTF-8";
	query = query + "&site=" + col;
	query = query + "&output=xml_no_dtd";
	query = query + "&client=" + stylesheet;
	query = query + "&proxystylesheet=" + stylesheet;
	query = query + "&filter=0";
	query = query + "&start=" + start;
	query = query + "&proxyreload=1";

	return query;
}

function CreatePagedQuery(search,start,col,frontend)
{
	stylesheet = frontend;

	// Google querystring
	query = "?q=" + search;
	query = query + "&oe=UTF-8";
	query = query + "&ie=UTF-8";
	query = query + "&site=" + col;
	query = query + "&output=xml_no_dtd";
	query = query + "&client=" + stylesheet;
	query = query + "&proxystylesheet=" + stylesheet;
	query = query + "&filter=0";
	query = query + "&start=" + start;
	query = query + "&proxyreload=1";

	return query;
}

//function NewSearch(intStart,strCol,inurl)
function NewSearch(intStart,strCol, frontend)
{
	try
	{
		strSearch = document.getElementById("searchstring").value;

		strSearch = FilterSearchQuery(strSearch);

		if(strSearch != "")
		{
			// if omdid defined then expand the search term with " inurl:%omdid%"
			if(document.getElementById("omdid") != null){
				inurl = document.getElementById("omdid").value;
				if(inurl != "")
				{
					strSearch = strSearch + " inurl:" + inurl;
				}
			}

			
			// Show "Waiting for search results" page.
			document.getElementById("searchheader").innerHTML = "";
			document.getElementById("searchcontent").innerHTML = "<br>" + strWait;

			if (strServer == "")
			{
				strServer = "http://www.oce.com/"
			}

			// Call asp page to read the search results
			GetFile(strServer + "ajaxwriter.asp" + CreateQuery(strSearch,intStart,strCol.toUpperCase(),frontend));
		}
	}
	catch (e)
	{
		return false;
	}
}

function PagedSearch(intStart,strCol, frontend)
{
	try
	{
		strSearch = document.getElementById("searchstring").value;

		strSearch = FilterSearchQuery(strSearch);

		if(strSearch != "")
		{
			// if omdid defined then expand the search term with " inurl:%omdid%"
			if(document.getElementById("omdid") != null){
				inurl = document.getElementById("omdid").value;
				if(inurl != "")
				{
					strSearch = strSearch + " inurl:" + inurl;
				}
			}

			// Show "Waiting for search results" page.
			document.getElementById("searchheader").innerHTML = "";
			document.getElementById("searchcontent").innerHTML = "<br>" + strWait;

			if (strServer == "")
			{
				strServer = "http://www.oce.com/"
			}

			// Call asp page to read the search results
			GetFile(strServer + "ajaxwriter.asp" + CreatePagedQuery(strSearch,intStart,strCol.toUpperCase(),frontend));
		}
	}
	catch (e)
	{
		return false;
	}
}

function DidYouMeanSearch(search, strCol, frontend)
{
	try
	{
		search = FilterSearchQuery(search);

		if(search != "")
		{
			// if omdid defined then expand the search term with " inurl:%omdid%"
			if(document.getElementById("omdid") != null){
				inurl = document.getElementById("omdid").value;
				if(inurl != "")
				{
					search = search + " inurl:" + inurl;
				}
			}

			// Show "Waiting for search results" page.
			document.getElementById("searchheader").innerHTML = "";
			document.getElementById("searchcontent").innerHTML = "<br>" + strWait;
			document.getElementById("searchstring").value = search;

			if (strServer == "")
			{
				strServer = "http://www.oce.com/"
			}

			// Call asp page to read the search results
			GetFile(strServer + "ajaxwriter.asp" + CreateQuery(search,0,strCol.toUpperCase(),frontend));
		}
	}
	catch (e)
	{
		return false;
	}
}

// Method used by Support homepage
function NewResultPage()
{
	if(checkSearchField(document.getElementById("supportsearch")))
	{
		document.getElementById("supportsearch").submit()
	}
}

// Method used by Support homepage
function checkSearchField(frm)
{
	if (frm.searchstring.value != "")
	{
		return true
	}
	else
	{
		return false
	}
}

function FilterSearchQuery(search)
{
	try
	{
		search = search.replace('=', ' ');
		return search;
	}
	catch (e)
	{
		return '';
	}
}
