// Function to determine which XMLHTTP request to use depending on browser, for AJAX
function createRequestObject()
{
	try
	{
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(ex)
	{
		//either this is not IE, or it is a version of IE which does not support XMLHTTP
		var notIECompatibleXMLHTTP=true;
	}
	if(notIECompatibleXMLHTTP==true)
	{
		try
		{
			request_o = new XMLHttpRequest();
		}
		catch(ex)
		{
			//we can't use AJAX because this browser is not compatible.
			request_o = false;
		}
	}
	return request_o;
}

var http=createRequestObject();
var global = new Object();function getSpelling(field, key)
{
	var parameters = "field_text=" + encodeURI( field.value );
	// Key 32 = spacebar, Key 13 = enter
	if (key == 32 || key == 13 || key == 'tab')
	{
		http.open('POST', '/order/ajax.php?module=spell&block='+field.name, true);
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.onreadystatechange = handleSpelling; 
		http.send(parameters);
	}
}

// Handle spelling request
function handleSpelling()
{

	if(http.readyState == 4)
	{
		// Return our request as XML
		var request = http.responseXML;
		
		var bad_words = '';

		// Get data from XML
		data	  = request.getElementsByTagName('spelling');

		orig_data	= isset(data[0].getElementsByTagName('orig_data')[0].firstChild) ? data[0].getElementsByTagName('orig_data')[0].firstChild.data : '';
		block		= isset(data[0].getElementsByTagName('block')[0].firstChild) ? data[0].getElementsByTagName('block')[0].firstChild.data : '';
		
		if (block != '')
		{
			var words = request.getElementsByTagName('word');
			if (words.length > 0)
			{
				for (i=0; i<words.length; i++)
				{
					word 	= isset(words[i].firstChild) ? words[i].firstChild.data : '';
					bad_words = bad_words + '<li' + (i % 2 ? ' class="alt"':'') + '>&nbsp;<a href="#" onclick="openspell('+"'"+'box-'+block+"'"+');">' + word + '</a></li>';
				}

				sp_block = document.getElementById('mispelled-'+block);
				
				extra_style = '';
				if (words.length > 5)
				{
					extra_style = ' style="height:75px; overflow:auto"'; 
				}
				// Output our block of mispelled words!
				sp_block.innerHTML = '<div class="misspelled_wrapper"><h4><span>Possible Misspelled Words</span></h4><div class="misspelled"'+extra_style+'><ul>' + bad_words + '</ul></div></div>';
			
			}
			else
			{
				// No bad words, so lets reset the display
				document.getElementById('mispelled-'+block).innerHTML = '';
			}
			
		}
		
	}
}
