function GetXmlHttpObject(handler){
	var objXMLHttp=null
	
	if(window.XMLHttpRequest){
		objXMLHttp=new XMLHttpRequest()
	} else if(window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	} 
	
	return objXMLHttp
}

function display_mattress_catalog(){
	
	//TARGET TABLE
	var display_table = document.getElementById('catalog');
		
	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		//SET LOADER TIMEOUT
		setTimeout(remove_loader, 1500);		
	}	
	
	function remove_loader(){
		//REMOVE OLD LOADING SCREENS
		var loading_screen = document.getElementById('loading'); if(loading_screen){ loading_screen.parentNode.removeChild(loading_screen); }
		
		//TRIGGER CONTENT LOAD
		load_content();
	}
	
	function load_content(){
		
		//RESPONSE
		var xml_doc = xmlHttp.responseText;
		
		//DISPLAY DATA
		display_table.innerHTML = xml_doc;
		
	}
	
}

function mattress_catalog(url, post_params){
	
	//TARGET TABLE
	var display_table = document.getElementById('catalog');
	display_table.innerHTML = '';
	
	//DISPLAY DATA
	div = document.createElement('div');	
	div.setAttribute('id', 'loading');
	div.className = 'loading';
	div.innerHTML = '<div><h2>Finding Mattresses That Match Your Selections</h2></div><div><img src="../../images/ajax-loader.gif" /></div>';
		
	//INSERT
	display_table.appendChild(div);
			
	//GET PRICE INPUTS
	var input_select = document.getElementsByTagName('input');
	for(i = 0; i < input_select.length; i++){
		if(input_select[i].name.split("_")[0] == "price" || input_select[i].name.split("_")[0] == "sizes" || input_select[i].name.split("_")[0] == "comfort" || input_select[i].name.split("_")[0] == "brand" || input_select[i].name.split("_")[0] == "material"){
			post_params = post_params+'&'+input_select[i].name+'='+input_select[i].value;
		}	
	}
		
	xmlHttp=GetXmlHttpObject()
	if(xmlHttp==null){ alert("Browser does not support HTTP Request"); return; }
	
	post_params = post_params+"&session="+Math.random();
	xmlHttp.onreadystatechange = display_mattress_catalog;
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", post_params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(post_params);
	
}

/* FAST PAGE CHANGE WITHOUT CLEARNING OF INNERHTML */
function mattress_catalog_page(url, post_params){
			
	//GET PRICE INPUTS
	var input_select = document.getElementsByTagName('input');
	for(i = 0; i < input_select.length; i++){
		if(input_select[i].name.split("_")[0] == "price" || input_select[i].name.split("_")[0] == "sizes" || input_select[i].name.split("_")[0] == "comfort" || input_select[i].name.split("_")[0] == "material"){
			post_params = post_params+'&'+input_select[i].name+'='+input_select[i].value;
		}	
	}
		
	xmlHttp=GetXmlHttpObject()
	if(xmlHttp==null){ alert("Browser does not support HTTP Request"); return; }
	
	post_params = post_params+"&session="+Math.random();
	xmlHttp.onreadystatechange = fast_display_mattress_catalog;
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", post_params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(post_params);
	
}

function fast_display_mattress_catalog(){
	
	//TARGET TABLE
	var display_table = document.getElementById('catalog');
		
	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		//RESPONSE
		var xml_doc = xmlHttp.responseText;
		
		//DISPLAY DATA
		display_table.innerHTML = xml_doc;		
	}		
}

function display_furniture_catalog(){
	
	//TARGET TABLE
	var display_table = document.getElementById('catalog_holder');
		
	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		
		//RESPONSE
		var xml_doc = xmlHttp.responseText;
		
		//DISPLAY DATA
		display_table.innerHTML = xml_doc;
			
	}	
	
}

function furniture_catalog(url, post_params){
	
	//TARGET TABLE
	var display_table = document.getElementById('catalog_holder');
	display_table.style.minHeight = display_table.offsetHeight+'px';
	display_table.innerHTML = '<div class="loading"><h2>Matching Furniture To Your Selections</h2><img src="../../images/ajax-loader.gif" /></div>';
				
	xmlHttp=GetXmlHttpObject()
	if(xmlHttp==null){ alert("Browser does not support HTTP Request"); return; }
	
	post_params = post_params+"&session="+Math.random();
	xmlHttp.onreadystatechange = display_furniture_catalog;
	xmlHttp.open("POST",url,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", post_params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(post_params);
	
}

/* CATALOG SORTS */
function catalog_price_sort(sub_category_id){
	
	//GET PRICE RANGES
	start_range = document.getElementById('price_start_range').value;
	end_range = document.getElementById('price_end_range').value;
	
	//LOAD OTHER PRESETS AND REFRESH CATALOG
	select_option('furniture', '', sub_category_id+'&start_range='+start_range+'&end_range='+end_range)
	
}

function select_option(target_type, input_name, sub_category_id){
	
	//CHANGE VALUE BASED ON CLICK
	if(input_name != ''){
		if(document.forms['product_sort'].elements[input_name].value == '0'){ 
			document.forms['product_sort'].elements[input_name].value = '1'; 
			document.forms['product_sort'].elements[input_name].checked = true; 
			document.forms['product_sort'].elements[input_name].parentNode.className = 'catalog-sort-item-checked';
		} else { 
			document.forms['product_sort'].elements[input_name].value = '0'; 
			document.forms['product_sort'].elements[input_name].checked = false;
			document.forms['product_sort'].elements[input_name].parentNode.className = 'catalog-sort-item';
		}
	}
		
	//GATHER FORM DATA
	var post_params = '';
	var inputs = document.getElementsByTagName('input');
	for(i = 0; i < inputs.length; i++){ if(inputs[i].name.split('_')[0] == 'sort'){ post_params = post_params+'&'+inputs[i].name+'='+inputs[i].value; } }
	
	//CATALOG SORT VALUES
	post_params = post_params+'&catalog_sort='+document.getElementById('catalog_sort_select').value;
	
	//CHECK FOR PRICE VALUES
	if(document.getElementById('price_start_range')){ post_params = post_params+'&start_range='+ document.getElementById('price_start_range').value; }
	if(document.getElementById('price_end_range')){ post_params = post_params+'&end_range='+ document.getElementById('price_end_range').value; }
	
	//RUN QUERY
	furniture_catalog('//www.deetsfurniture.com/ajax/'+target_type+'-catalog.php', 'sub_category_id='+sub_category_id+post_params);	
	
}

/* CATALOG PAGES */
function catalog_pages(target_type, page_number, sub_category_id){
	
	//SCROLL TO TOP
	scroll(0,0);
	
	//GATHER FORM DATA
	var post_params = '';
	var inputs = document.getElementsByTagName('input');
	for(i = 0; i < inputs.length; i++){ if(inputs[i].name.split('_')[0] == 'sort'){ post_params = post_params+'&'+inputs[i].name+'='+inputs[i].value; } }
	
	//CATALOG SORT VALUES
	post_params = post_params+'&catalog_sort='+document.getElementById('catalog_sort_select').value;
	
	//RUN QUERY
	furniture_catalog('//www.deetsfurniture.com/ajax/'+target_type+'-catalog.php', 'sub_category_id='+sub_category_id+'&page='+page_number+post_params);	
		
}
