function Search()
{
	var m_programList = new ProgramList();

	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,pn)
		{
			if(pn==null)
				pn = 1;
				
			var args = new Object();
		
		    args.type = strType;
			args.days = document.getElementById("lbReleaseDate").value;
			args.cid = this.getCategories();
			
			if (strType=="0")        // Title
   			   args.param = document.getElementById("search_txtTitle").value;
			else if (strType=="1")   // Cast
   			   args.param = document.getElementById("search_txtCast").value;
			else if (strType=="2")   // Keywords
   			   args.param = this.getParamsArray(document.getElementById("search_txtKeywords").value);
			else if (strType=="3")   // Keywords
   			{
				args.param = document.getElementById("search_txtMainConsole").value;
				args.days="";
				args.cid="";
   			}

			m_programList.setURLParams(args, pn);
			if(Console.MODE_LARGE==_console.m_consoleMode)
				args.large = "true"
			var td=document.getElementById("content_Search");
			td.innerHTML="<div style='padding:20px;padding-top:20px'>"+getLocalizedString("searching_elipses")+"</div>";
			__tabSearchClick(1);
			_console.getComponentContent("search",args,this.callbackSearch);
		}
	
	this.simpleSearch = function()
		{
			_console.showComponent('Search');		
			this.searchMovies("3");
		}	
	this.callbackSearch = function(result)
		{
			var td=document.getElementById("content_Search");
			td.innerHTML=result;
			__tabSearchClick(1);
			trackSearch();
		}
		
	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="";	
			}   
		 }
}