function getHTTPObject()
{
	if (window.ActiveXObject) 
		return new ActiveXObject("Microsoft.XMLHTTP");
	else if (window.XMLHttpRequest) 
		return new XMLHttpRequest();
	else {
		alert("Your browser does not support AJAX.");
		return null;
	}
}

function hidediv(target_div)
{
	if(target_div == "")
	{
		return;
	}

	if(document.getElementById(target_div) == null)
	{
		return;
	}

	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(target_div).style.visibility = 'hidden';
		document.getElementById(target_div).style.height = '0px';
	}
	else {
		if (document.layers) { // Netscape 4
			document.hideshow.visibility = 'hidden';
			document.hideshow.height = '0px';
		}
		else { // IE 4
			document.all.hideshow.style.visibility = 'hidden';
			document.all.hideshow.style.height = '0px';
		}
	}

	var children = document.getElementById(target_div).childNodes;

   for (var i=0; i < children.length; i++)
	{
		var target_div = children[i].id;
		hidediv(target_div);
	}

}

function showdiv(target_div)
{
	if(target_div == "")
	{
		return;
	}

	if(document.getElementById(target_div) == null)
	{
		return;
	}

	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(target_div).style.visibility = 'visible';
		document.getElementById(target_div).style.height = 'auto';
	}
	else {
		if (document.layers) { // Netscape 4
			document.hideshow.visibility = 'visible';
		}
		else { // IE 4
			document.all.hideshow.style.visibility = 'visible';
		}
	}
} 

function showhide(target_div) {
	if (document.getElementById) { // DOM3 = IE5, NS6
		state = document.getElementById(target_div).style.visibility;
	}
	else {
		if (document.layers) { // Netscape 4
			state = document.hideshow.visibility;
		}
		else { // IE 4
			state = document.all.hideshow.style.visibility;
		}
	}

	if(state == 'hidden')
	{
		if (document.getElementById) { // DOM3 = IE5, NS6
			document.getElementById(target_div).style.visibility = 'visible';
			document.getElementById(target_div).style.height = 'auto';
		}
		else {
			if (document.layers) { // Netscape 4
				document.hideshow.visibility = 'visible';
				document.hideshow.height = 'auto';
			}
			else { // IE 4
				document.all.hideshow.style.visibility = 'visible';
				document.all.hideshow.style.height = 'auto';
			}
		}
	}
	else
	{
		if (document.getElementById) { // DOM3 = IE5, NS6
			document.getElementById(target_div).style.visibility = 'hidden';
			document.getElementById(target_div).style.height = '0px';
		}
		else {
			if (document.layers) { // Netscape 4
				document.hideshow.visibility = 'hidden';
				document.hideshow.height = '0px';
			}
			else { // IE 4
				document.all.hideshow.style.visibility = 'hidden';
				document.all.hideshow.style.height = '0px';
			}
		}
	}
} 

/*
function addElement_old()
{
	var ni = document.getElementById('cat0');
	//var numi = document.getElementById('theValue');
	//var num = (document.getElementById('theValue').value -1)+ 2;
	var numi = document.getElementById('cat0');
	var num = 55;
	numi.value = num;
	var newdiv = document.createElement('div');
	var divIdName = 'my'+num+'Div';
	newdiv.setAttribute('id',divIdName);
	newdiv.innerHTML = 'Element Number '+num+' has been added! <a href=\'#\' onclick=\'removeElement('+divIdName+')\'>Remove the div "'+divIdName+'"</a>';
	ni.appendChild(newdiv);
}
*/

function rateAnswer(answer_id, rate)
{
	//alert("add_search_result_rating.php");

	// add_search_result_rating.php

	var state;
	//var target_div = 'cat'+cat_id+'_children';
	// If this div does not exist make async call to build it
	httpObject = getHTTPObject();
	if (httpObject != null)
	{
		httpObject.onreadystatechange = function() {
			//alert(httpObject.readyState);
			if(httpObject.readyState == 4 && httpObject.responseText != "")
			{
					//alert(httpObject.responseText);
						/*
						var ni = document.getElementById('cat'+cat_id);

						var newdiv = document.createElement('div');
						var divIdName = 'cat'+cat_id+'_children';
						newdiv.setAttribute('id',divIdName);
						newdiv.setAttribute('style',"visibility: visible;");
						ni.appendChild(newdiv);
						document.getElementById('cat'+cat_id+'_children').innerHTML = httpObject.responseText;
						*/
			}
		}

	httpObject.open("GET", "/add_search_result_rating.php?answer="+answer_id+"&rate="+rate, true);
	httpObject.send(null);

	//httpObject.value = cat_id;
	}

	return;
}	

function addElement(cat_id, a_id)
{
	var state;
	var target_div = 'cat'+cat_id+'_children';
	
	// If this div does not exist make async call to build it
	if(document.getElementById(target_div) == null)
	{
		httpObject = getHTTPObject();
		if (httpObject != null)
		{
			httpObject.onreadystatechange = function() {
					if(httpObject.readyState == 4 && httpObject.responseText != "")
					{
						var ni = document.getElementById('cat'+cat_id);

						var newdiv = document.createElement('div');
						var divIdName = 'cat'+cat_id+'_children';
						newdiv.setAttribute('id',divIdName);
						newdiv.setAttribute('style',"visibility: visible;");
						ni.appendChild(newdiv);
						document.getElementById('cat'+cat_id+'_children').innerHTML = httpObject.responseText;
					}
				}

			httpObject.open("GET", "/get_subcategories.php?parent_category_id="+cat_id+"&a_id="+a_id, true);
			httpObject.send(null);

			//httpObject.value = cat_id;
		}

		return;
	}	


	// Div must exist get it's current state
	if (document.getElementById) { // DOM3 = IE5, NS6
		state = document.getElementById(target_div).style.visibility;
	}
	else {
		if (document.layers) { // Netscape 4
			state = document.hideshow.visibility;
		}
		else { // IE 4
			state = document.all.hideshow.style.visibility;
		}
	}

	// Toggle div's visible state
	if(state == 'visible' || state == '')
	{
		hidediv(target_div);
	}
	else
	{
		showdiv(target_div);

		var children = document.getElementById(target_div).childNodes;

	   for (var i=0; i < children.length; i++)
		{
			var target_div = children[i].id;
			showdiv(target_div);
		}
		/*
		alert(target_div);

		if (document.getElementById) { // DOM3 = IE5, NS6
			document.getElementById(target_div).style.visibility = 'visible';
			document.getElementById(target_div).style.height = 'auto';
		}
		else {
			if (document.layers) { // Netscape 4
				document.hideshow.visibility = 'visible';
				document.hideshow.height = 'auto';
			}
			else { // IE 4
				document.all.hideshow.style.visibility = 'visible';
				document.all.hideshow.style.height = 'auto';
			}
		}
		*/
	}
}

function setOutput()
{
	if(httpObject.readyState == 4)
	{

		var ni = document.getElementById('cat'+httpObject.value);

		var newdiv = document.createElement('div');
		var divIdName = 'cat'+httpObject.value+'_children';
		newdiv.setAttribute('id',divIdName);
		newdiv.setAttribute('style',"visibility: visible;");
		//newdiv.innerHTML = 'Element Number '+httpObject.value+' has been added! <a href=\'#\' onclick=\'removeElement('+divIdName+')\'>Remove the div "'+divIdName+'"</a>';
		ni.appendChild(newdiv);

		//alert(httpObject.value);
		document.getElementById('cat'+httpObject.value+'_children').innerHTML = httpObject.responseText;
	}
}

/*
function removeElement(divNum)
{
  var d = document.getElementById('myDiv');
  var olddiv = document.getElementById(divNum);
  d.removeChild(olddiv);
}
*/

function suggestCategory(a_id, category_id, category_name)
{
	//var state;
	//var target_div = 'cat'+cat_id+'_children';
	
	httpObject = getHTTPObject();
	if (httpObject != null)
	{
		httpObject.open("GET", "/suggest_category.php?a_id="+a_id+"&cat_id="+category_id, true);
		httpObject.send(null);
		//httpObject.value = cat_id;
		httpObject.onreadystatechange = newCategorySuggest;
	}

}

function newCategorySuggest()
{
	if(httpObject.readyState == 4)
	{
		//alert(httpObject.responseText);
		//alert(document.getElementById("suggest_category").innerHTML);

		document.getElementById("suggest_category").innerHTML = "<span style='color:green; font-weight: bold; font-size:15px;'>New category suggested</span>";
		hidediv("cat0");

		/*
		var ni = document.getElementById('cat'+httpObject.value);

		var newdiv = document.createElement('div');
		var divIdName = 'cat'+httpObject.value+'_children';
		newdiv.setAttribute('id',divIdName);
		newdiv.setAttribute('style',"visibility: visible;");
		//newdiv.innerHTML = 'Element Number '+httpObject.value+' has been added! <a href=\'#\' onclick=\'removeElement('+divIdName+')\'>Remove the div "'+divIdName+'"</a>';
		ni.appendChild(newdiv);

		//alert(httpObject.value);
		document.getElementById('cat'+httpObject.value+'_children').innerHTML = httpObject.responseText;
		*/
	}
}

