function Search()
{
	var m_programList = new ProgramList(ProgramList.SEARCH_PAGESIZE_THUMB);

	this.display = function()
		{
			__tabSearchClick(0);
			_console.lastReloadComponent = this;
		}

	this.reload = function()
		{
			this.resetMode();
			this.searchMoviesByPage(1);
		}
	
	this.resetMode = function()
		{
			m_programList.setMode();
		}

	this.onClickReset = function()
		{
			var table=document.getElementById("searchCriteriaTbl");
			var inputs=table.getElementsByTagName("input");
			for (var i=0; i<inputs.length; i++)
			{
				if (inputs[i].type=="text")
				   inputs[i].value="";
				
				if (inputs[i].type=="checkbox")
				   inputs[i].checked=false;
			}
			document.getElementById("search_Title").focus();
		}

	// Get categories based on dropdown/checkboxes		
	this.getCategories = function()
		{
			var cat=document.getElementById("lbCategories").value;
			if (cat=="")
			   return "";
			
			var subCat=document.getElementById("subcat_"+cat);
			if (subCat==null)
			   return "";
			   
			var arrSubCategories=new Array();
			var cbs=subCat.getElementsByTagName("input");
			for (var i=0; i<cbs.length; i++)
			{
				if (cbs[i].checked==true)
	   			   arrSubCategories[arrSubCategories.length]=cbs[i].value;
			}

			return arrSubCategories;
		}

	// Takes string and splits into words, trimming spaces
	this.getParamsArray = function(strText)
		{
			var tokens=strText.split(",");
			for (var i=0; i<tokens.length; i++)
			   tokens[i]=_util.trim(tokens[i]);
			
			return tokens;
		}

	this.setMode = function(m)
	{
		m_programList.setMode(m);
		this.searchMoviesByPage(1);
	}
	
	this.searchMoviesByPage = function(pn)
		{
			if(pn==null)
				pn = 1;

			var args=new Object();
			m_programList.setURLParams(args, pn);
			if(Console.MODE_LARGE==_console.m_consoleMode)
				args.large = "true"
			var argArray = new Array();
			for(n in args)
				argArray[argArray.length] = n + "=" + encodeURIComponent(args[n]);
			args = argArray.join("&");
			
			var strSearchArgs=document.getElementById("search_searchArgs");
			if (strSearchArgs!=null && strSearchArgs.value!="")
			{
				var params=args+"&"+strSearchArgs.value;
				_console.getComponentContent("search",params,this.callbackSearch);
			}
			_util.cancelEvt(window.event);
		}	
	this.searchMovies = function(strType,strSearch, pn)
		{
			if(pn==null)
				pn = 1;
				
			var args = new Object();
		    args.type = strType;
			args.param = strSearch;
			args.cid="";
			args.menuChannelIndex=g_lastChannelIndex;
			args.menuChannelId=g_lastChannelId;

			m_programList.setURLParams(args, pn);
			document.getElementById("content_Search").innerHTML="";
			
			var td=document.getElementById("tdResultsText");
			if (td!=null)
				td.innerHTML=getLocalizedString("searching_elipses");
				
			_console.getComponentContent("search",args,this.callbackSearch);
		}
	
	this.simpleSearch = function(strSearch)
		{
			this.searchMovies("3", strSearch);
		}	
	this.callbackSearch = function(result)
		{
			var td=document.getElementById("content_Search");
			td.innerHTML=result;

			td=document.getElementById("tdResultsText");
			if (td==null)
				return;
			
			var div=document.getElementById("divResultsTextHidden");
			if (div)
				td.innerHTML=div.innerHTML;
			else
				td.innerHTML="&#xa0;";

			var count=document.getElementById("searchResults_count").innerHTML;
			var query=document.getElementById("searchResults_query").innerHTML;
			
			document.getElementById("console").trackSearch(query, count);
		}
		
	this.onChangeCategory = function(input)
		 {
		 	var value=input.value;
		 	
		 	for (var i=1; i<input.options.length; i++)
		 	{
		 		var tr=document.getElementById("subcat_"+input.options[i].value);
		 		if (tr)
		 			tr.style.display="none";
 			}

			if (input.value!="")
			{
				var tr=document.getElementById("subcat_"+input.value);
				if (tr)
				   tr.style.display="";	
			}   
		 }
}