var RefinementBar = {
	searchComponents:[],
	container:null,
	refinements:[],
	
	componentsContainer:null,
	refinementsContainer:null,
	refinementsFooter:null,
	
	refinementBars:[],
	
	
	init:function(){
		this.container.innerHTML = '<div id="components"></div><div id="refinements"></div><div id="refinementsFooter" class="advantages_foot"></div><div style="display:none" id="subscribeDiv"></div>';
		this.refinementsFooter = document.getElementById("refinementsFooter");
		this.refinementsContainer = document.getElementById("refinements");
		this.componentsContainer = document.getElementById("components");
		
		if(this.searchComponents.length == 0){
			
			this.refinementsFooter.style.display="none";
			return;
		}
		this.renderRefinements();
		this.renderComponents();
	},

	renderComponents:function(){
		ihtml = "<div class='advantages_head' align='center'>Current Search</div><ul class='ref1'>";
		for(var key in this.searchComponents){
			if(key == 'Distance')
			{
				ihtml+="<li><a href='#nul' class='delete_component' onclick='RefinementBar.deleteComponent(\""+key+"\")'> "+" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a><select onchange='RefinementBar.setDistance(this)' style='border: 1px solid #333;color: #000;'>";
				for(var i=0;i<document.getElementById('ddlDistance').options.length;i++){
					ihtml+='<option value='+document.getElementById('ddlDistance').options[i].value +
							((document.getElementById('ddlDistance').options[i].selected)?' selected ':'')+'>'+
							document.getElementById('ddlDistance').options[i].text+'</option>';
				}
				ihtml+="</select></li>";
				continue;
			}

			if(this.searchComponents[key]!=null)
				ihtml+="<li><a href='#nul' class='delete_component' onclick='RefinementBar.deleteComponent(\""+key+"\")'> "+" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a> "+this.searchComponents[key].title+" </li>";
			if(document.getElementById('rl'+key)){
				document.getElementById('rl'+key).style.display="none";
			}
		}
		ihtml += "</ul><div class='advantages_foot'><div>";
		this.componentsContainer.innerHTML = ihtml;
	},
	
	renderRefinements:function()
	{
		this.refinementsContainer.innerHTML = "";
		ihtml = "";
		for(var i in this.refinements.industries){ 
			ihtml+="<li><a href='#nul' onclick='RefinementBar.addComponent(\"Industry\",\""+this.refinements.industries[i].data[0]+"\",\""+this.refinements.industries[i].title+"\")'>"+this.refinements.industries[i].title
											 +" ("+this.refinements.industries[i].count+")</a></li>";
		}
		if(ihtml!=""){
			ihtml = "<ul id='rlIndustry'><li><b>Industries</b></li>"+ihtml+"</ul>";
		}
	
		this.refinementsContainer.innerHTML += ihtml;
		
		ihtml = "";
		for(var i in this.refinements.job_function){  
			ihtml+="<li><a href='#nul' onclick='RefinementBar.addComponent(\"JobFunction\",\""+this.refinements.job_function[i].data[0]+"\",\""+this.refinements.job_function[i].title+"\")'>"+this.refinements.job_function[i].title
												+" ("+this.refinements.job_function[i].count+")</a></li>";
		}
		
		if(ihtml!=""){
			ihtml = "<ul id='rlJobFunction'><li><b>Job function</b></li>"+ihtml+"</ul>";
		}
		this.refinementsContainer.innerHTML += ihtml;
		
		
		ihtml = "";
		for(var i in this.refinements.days_added){   
			ihtml+="<li><a href='#nul' onclick='RefinementBar.addComponent(\"DateAdded\",\""+this.refinements.days_added[i].data[0]+"\",\""+this.refinements.days_added[i].title+"\")'>"+this.refinements.days_added[i].title
												+" ("+this.refinements.days_added[i].count+")</a></li>";
		}
		if(ihtml!=""){
			ihtml = "<ul id='rlDateAdded'><li><b>Posting Date</b></li>"+ihtml+"</ul>";
		}

		this.refinementsContainer.innerHTML += ihtml;
		if(this.refinementsContainer.innerHTML.length ==0){
			document.getElementById("refinements").style.display="none";
			document.getElementById("refinementsFooter").style.display="none";
		}else{
			///*
			 this.refinementsContainer.innerHTML = "<div class='advantages_head' align='center'>Refine Your Search</div>"+this.refinementsContainer.innerHTML
			//*/
		}

		//this.refinementsFooter.style.display="";
	},
	
	deleteComponent:function(cmpKey)
	{
		this.searchComponents[cmpKey]=null;
		this.renderComponents();
		if(document.getElementById('rl'+cmpKey))
			document.getElementById('rl'+cmpKey).style.display="block";
		this.submitSearchForm();
	},
	
	addComponent:function(cmpKey,cmpValue,cmpTitle)
	{
		this.searchComponents[cmpKey]={value:cmpValue,title:cmpTitle};
		if(document.getElementById('rl'+cmpKey)){
			document.getElementById('rl'+cmpKey).style.display="none";
		}
		this.renderComponents();
		this.submitSearchForm();
		
	},
	
	submitSearchForm:function()
	{
		for(var i in this.searchComponents)
		{
			if(i == 'JobFunction')
			{
				/*if(!this.searchComponents[i])
				{
					$('#jfValues').val('');
				}
				else
				{*/
					$('#jfValues').val(this.searchComponents[i].value);
				//}
			}
			else if(i == 'Industry')
			{
				if(!this.searchComponents[i]){
					document.getElementById('ddlSearchIndustry').selectedIndex = 0;
				}else{
					for(var j=0;j<document.getElementById('ddlSearchIndustry').options.length;j++){
						if(document.getElementById('ddlSearchIndustry').options[j].value == this.searchComponents[i].value){
							document.getElementById('ddlSearchIndustry').selectedIndex = j;
							break;
						}
					}
				}
			}else if(i == 'DateAdded'){
				if(!this.searchComponents[i]){
					document.getElementById('ddlSearchDateAdded').selectedIndex = 0;
					document.getElementById('ddlSearchDateJoined').selectedIndex = 0;
				}else{
					for(var j=0;j<document.getElementById('ddlSearchDateAdded').options.length;j++){
						if(document.getElementById('ddlSearchDateAdded').options[j].value == this.searchComponents[i].value){
							document.getElementById('ddlSearchDateAdded').selectedIndex = j;
							break;
						}
					}
					for(var j=0;j<document.getElementById('ddlSearchDateJoined').options.length;j++){
						if(document.getElementById('ddlSearchDateJoined').options[j].value == this.searchComponents[i].value){
							document.getElementById('ddlSearchDateJoined').selectedIndex = j;
							break;
						}
					}
				}
			}else if(i.indexOf('Keywords')>=0){
				document.getElementById('tbSearchKeywords').value=""
				for(var j in this.searchComponents){
					if(j.indexOf('Keywords')>=0 && this.searchComponents[j]){
						document.getElementById('tbSearchKeywords').value+=this.searchComponents[j].value.replace(/^\s+|\s+$/g, '');
					}
				}
			}else if(i == 'ExcludedKeywords'){
				if(!this.searchComponents[i])
					document.getElementById('tbSearchExcludeKeywords').value="";
			}else if(i == 'JobType'){
				if(!this.searchComponents[i])
					for(var j=0;j<document.getElementById('ddlJobType').options.length;j++){
						if(document.getElementById('ddlJobType').options[j].value == 0){
							document.getElementById('ddlJobType').selectedIndex = j;
						}
					}
			}else if(i == 'State'){
				if(!this.searchComponents[i])
					document.getElementById('tbSearchState').value="";
			}else if(i == 'Locations'){
				if(!this.searchComponents[i])
					document.getElementById('tbSearchLocation').value="";
			}else if(i == 'Distance'){
				if(!this.searchComponents[i]){
					for(var j=0;j<document.getElementById('ddlDistance').options.length;j++){
						if(document.getElementById('ddlDistance').options[j].value ==0 ){
							document.getElementById('ddlDistance').selectedIndex = j;
						}
					}
				}else{
					for(var j=0;j<document.getElementById('ddlDistance').options.length;j++){
						if(document.getElementById('ddlDistance').options[j].value == this.searchComponents[i].value){
							document.getElementById('ddlDistance').selectedIndex = j;
							//document.getElementById('ddlDistance').selectedIndex
						}
					}
				}
			}
		}
	
		if(!this.searchComponents[i]){
			document.getElementById('searchForm').submit();
		}else{
			checkAddress(document.getElementById('searchForm'));
		}
		
	},
	
	setDistance:function(selector){
		this.searchComponents['Distance'] = {value:selector.options[selector.selectedIndex].value,text:selector.options[selector.selectedIndex].text};
		this.submitSearchForm();
	},
	
	subscribe:function(){///subscription/add
		
		document.getElementById("subscribeDiv").innerHTML = "<form method='post' action='/subscription/add/' id='subscribeForm'>"+
						"<input type='hidden' name='searchSubscribe' value='"+($.toJSON(this.searchComponents))+"'></form>";
		document.getElementById("subscribeForm").submit();
	}
	
	
}