function ToggleAll( id )
{
	button	= document.getElementById( 'selectallbutton' + id );
	
	src	= button.getAttribute( "src" );

	if( src.search( "/site/images/button_selectall.gif" ) > -1 )
	{
		SelectAll( id );
	}
	else
	{
		ClearAll( id );
	}

}

function SelectAll( id )
{
	tab_id		= 'tab' + id;
	form		= document.getElementById( tab_id );
	button		= document.getElementById( 'selectallbutton' + id );

	checkboxes	= form.getElementsByTagName( "INPUT" );

	for( var item = 0; item < checkboxes.length; item++ )
	{
		if( checkboxes[ item ].value == "Submit" )
		{
			continue;
		}

		checkboxes[ item ].checked	= true;
	}

	button.setAttribute( "src", "/site/images/button_clearall.gif" );
}

function ClearAll( id )
{
	tab_id		= 'tab' + id;
	form		= document.getElementById( tab_id );
	button		= document.getElementById( 'selectallbutton' + id );

	checkboxes	= form.getElementsByTagName( "INPUT" );

	for( var item = 0; item < checkboxes.length; item++ )
	{
		if( checkboxes[ item ].value == "Submit" )
		{
			continue;
		}

		checkboxes[ item ].checked	= false;
	}

	button.setAttribute( "src", "/site/images/button_selectall.gif" );
}





tabs	= new Array();
tabs[1]	= 't';
tabs[2]	= 'a';
tabs[3]	= 'mfr';

urls	= new Array();
urls[1]	= '/products/search_types.php';
urls[2]	= '/products/search_applications.php';
urls[3]	= '/products/search_manufacturers.php';

var urlquery	= '';

function Update( id )
{
	update_tab_id		= 'tab' + id;
	update_tablink_id	= 'tablink' + id;

	for( tabcount = 1; tabcount <= 3; tabcount++ )
	{
		if( tabcount == id )
		{
			continue;
		}

		GetCheckBoxValues( tabcount );
	}

	//	Ajaxificate the tab clicked on
	url	= urls[ id ] + "?" + urlquery;

	//	Ajax the updated form
	loadDivContents( url, update_tab_id );

	document.getElementById( update_tab_id ).style.display	= "block";
	document.getElementById( update_tablink_id ).className	= "active";
}


function GetCheckBoxValues( id )
{
	tab_id		= 'tab' + id;
	field_id	= tabs[ id ];

	tablink_id	= 'tablink' + id;

	var query	= '';
	var count	= 0;

	section	= document.getElementById( tab_id );

	checkboxes	= section.getElementsByTagName( "INPUT" );

	for( var item = 0; item < checkboxes.length; item++ )
	{
		if( checkboxes[ item ].value == "Submit" )
		{
			continue;
		}

		if( checkboxes[ item ].checked == true )
		{
			if( count++ )
			{
				query	+= ",";
			}

			query	+= checkboxes[ item ].value;
		}
	}

	if( urlquery )
	{
		urlquery	+= "&";
	}

	urlquery	+= tabs[ id ] + "=" + query;

	document.getElementById( tab_id ).style.display	= "none";
	document.getElementById( tablink_id ).className	= "";
}
















//#########################################################################################################
//
//	Public AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Load an object dynamiclly with a source page
//---------------------------------------------------------------------------------------------------------
function loadDivContents( url, div )
{
	objNumber = 0;
	
	//	Have we used the div object before?
	for( i=1; i<= HTTPObjects.length; i++ )
	{
		if (HTTPObjects[i] == div)
		{
			objNumber = i
		}
	}

	//	Not found?
	if(!objNumber)
	{
		objNumber				= HTTPObjects.length;
		HTTPObjects[objNumber]	= div;
	}

	//	Generate the div object pointer
	var divObj = eval( 'document.getElementById("' + div + '");' );
	
	eval( 'http' + objNumber + ' = initHTTPObject();' );
	eval( 'http' + objNumber + '.open("GET", url, true );');
	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {divObj.innerHTML = http' + objNumber + '.responseText;}};');
	eval( 'http' + objNumber + '.send(null);');
}

//---------------------------------------------------------------------------------------------------------
//	Submit a webtop form inline inisde a container
//---------------------------------------------------------------------------------------------------------
function PostFormInline( formname, processurl, div )
{
	objNumber = 0;
	
	//	Have we used the div object before?
	for( i=1; i<= HTTPObjects.length; i++ )
	{
		if (HTTPObjects[i] == div)
		{
			objNumber = i
		}
	}

	//	Not found?
	if(!objNumber)
	{
		objNumber				= HTTPObjects.length;
		HTTPObjects[objNumber]	= div;
	}

	//	Generate the div object pointer
	var divObj = eval( 'document.getElementById("' + div + '");' );
	
	//	Get the fields
	eval( 'string = compileAllFieldValues( document.forms.' + formname + ' );');
	
	eval( 'http' + objNumber + ' = initHTTPObject();' );
//	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {doSearch();divObj.innerHTML = http' + objNumber + '.responseText;}};');
	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {divObj.innerHTML = http' + objNumber + '.responseText;}};');
	eval( 'http' + objNumber + '.open("POST", "' + processurl + '", true );');
	eval( 'http' + objNumber + '.setRequestHeader("Content-Type","application/x-www-form-urlencoded");');
	eval( 'http' + objNumber + '.send(string);');
	
	return false;

}


//---------------------------------------------------------------------------------------------------------
//	Return all the name/value pairs of a form, to be sent via HTTP POST
//---------------------------------------------------------------------------------------------------------
	function compileAllFieldValues( form )
	{
		valuestring = '';
		
		for (var e = 0; e < form.elements.length; e++) 
		{
			var el = form.elements[e];
			
			if (el.type == 'text' || el.type == 'textarea' ||
			el.type == 'password' || el.type == 'file' || el.type == 'hidden' ) 
			{ 
				valuestring += el.name + '=' + el.value + '&';
			}
		
			else if (el.type == 'radio') 
			{
				valuestring += el.name + '=' + el.value + '&';	
			}
		
			else if (el.type == 'checkbox') 
			{
				valuestring += el.name + '=' + el.checked + '&';	
			}
		
			else if (el.nodeName == 'SELECT')
			{
				valuestring += el.name + '=' + el.value + '&';	
			}
		}
		
		return valuestring;
	}
	
//---------------------------------------------------------------------------------------------------------
//	HACK
//---------------------------------------------------------------------------------------------------------
	function validatedetails()
	{
		return true;
	}


//#########################################################################################################
//
//	Private AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Define the elements
//---------------------------------------------------------------------------------------------------------
var HTTPObjects = Array();	//	Track all the used HTTP objects on the page
var objNumber   = null;

//---------------------------------------------------------------------------------------------------------
//	Initialize a new HTTP object
//	PRIVATE
//---------------------------------------------------------------------------------------------------------
function initHTTPObject() 
{
	var xmlhttp;
	
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
 	 	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
			xmlhttp = false;
 		}
	}

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
  			xmlhttp = new XMLHttpRequest();
		} catch (e) {
  			xmlhttp = false;
		}
	}

	return xmlhttp;
}

	

