function create_http_object()
{
	var ActiveXTypes = [
		"Microsoft.XMLHTTP",
		"MSXML2.XMLHTTP.5.0",
		"MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0",
		"MSXML2.XMLHTTP"
	];

	for( var i = 0; i < ActiveXTypes.length; i++ )
	{
		try
		{
			return new ActiveXObject( ActiveXTypes[i] );
		}
		catch( e )
		{ }
	}

	try
	{
		return new XMLHttpRequest();
	}
	catch( e )
	{ }

	return false;
}

function make_request(url, callback_function, http_method, post_values, return_xml)
{
	http = create_http_object();

	if(!http)
	{
		alert('Je browser ondersteunt deze feature niet.');
		return false;
	}
	
	

	http.onreadystatechange = function()
	{
		if(http.readyState == 4)
		{
			if(http.status == 200)
			{
				if(callback_function)
				{
					if(return_xml)
					{
						eval(callback_function + '(http.responseXML)');
					}
					else
					{
						eval(callback_function + '(http.responseText)');
					}
				}
			}
			else
			{
				alert('Error! (' + http.status + ')');
			}
		}
	}

	if(!post_values)
	{
		post_values = null;
	}
	if(!http_method)
	{
		http_method = "GET";
	}

	http.open(http_method, url, true);


	if(http_method == "POST")
	{
		http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	}

	http.send(post_values);
}

function get_types()
{
	var merk = document.getElementById('merk');

	if(merk.selectedIndex == -1 || merk.selectedIndex == 0 || merk.options[merk.selectedIndex].value == "")
	{
		return;
	}

	make_request('ajax.php?ajax=types&merk=' + merk.options[merk.selectedIndex].value, 'handle_response', 'GET', null, true);
}

function get_abonnementen(toestel)
{
    document.getElementById('throbber').style.display='inline';
	var provider = document.getElementById('provider');
	var verlengen = document.getElementById('verlengen').value;

	if(provider.selectedIndex == -1 || provider.selectedIndex == 0 || provider.options[provider.selectedIndex].value == "")
	{
		return;
	}
	
	make_request('tabel.php?toestel=' + toestel + '&provider=' + provider.options[provider.selectedIndex].value + '&verlengen=' + verlengen, 'handle_response_tabel', 'GET', null, false);

}


function request_abonnementen()
{
    var provider = document.getElementById('provider');
    
    	make_request('abonnement.php?provider=' + provider.options[provider.selectedIndex].value, 'handle_response_abonnement', 'GET', null, true);
}

function get_resultaten(toestel)
{
    document.getElementById('throbber').style.display='inline';
    
	var abonnement = document.getElementById('abonnement');
	var provider = document.getElementById('provider');
	var verlengen = document.getElementById('verlengen').value;

	if(abonnement.selectedIndex == -1 || abonnement.selectedIndex == 0 || abonnement.options[abonnement.selectedIndex].value == "")
	{
		return;
	}

	make_request('tabel.php?toestel='+toestel+'&abonnement=' + abonnement.options[abonnement.selectedIndex].value + '&verlengen=' + verlengen + '&provider=' + provider.options[provider.selectedIndex].value, 'handle_response_tabel_2', 'GET', null, false);
}

function get_resultaten_maanden(toestel)
{
    document.getElementById('throbber').style.display='inline';
    var abonnement = document.getElementById('abonnement');
	var maanden = document.getElementById('maanden');
	var verlengen = document.getElementById('verlengen').value;

	if(maanden.selectedIndex == -1 || maanden.selectedIndex == 0 || maanden.options[maanden.selectedIndex].value == "")
	{
		return;
	}
	make_request('tabel.php?maanden='+maanden.options[maanden.selectedIndex].value+'&toestel='+toestel+'&abonnement=' + abonnement.options[abonnement.selectedIndex].value  + '&verlengen=' + verlengen, 'handle_response_tabel_2', 'GET', null, false);


}

function get_types_feeds()
{
	var merk = document.getElementById('merk');

	if(merk.selectedIndex == -1 || merk.selectedIndex == 0 || merk.options[merk.selectedIndex].value == "")
	{
		return;
	}

	make_request('overzicht.php?ajax=types&merk=' + merk.options[merk.selectedIndex].value, 'handle_response_feeds', 'GET', null, true);
}

function handle_response_tabel(result)
{

    document.getElementById('aanbiedingen_tabel').innerHTML = result;
    
    request_abonnementen();
}

function handle_response_tabel_2(result)
{
	//alert(result);
    document.getElementById('aanbiedingen_tabel').innerHTML = result;
    document.getElementById('maanden').style.display='inline';
    document.getElementById('throbber').style.display='none';
}

function handle_response_abonnement(result)
{
    document.getElementById('abonnement').style.display='inline';
	var abonnementen = result.getElementsByTagName('abonnement');

	var abonnement_select = document.getElementById('abonnement');
	abonnement_select.options.length = 0;
	abonnement_select.options[0] = new Option("Abonnement", '', false);

	if(abonnementen.length > 0)
	{
		for(var i = 0, j = 1; i < abonnementen.length; i++, j++)
		{
			//alert("I: " + i + ", J: " + j);
			//var type = types.item(i).firstChild.nodeValue;
			//alert(type);
			var name = abonnementen[i].getAttribute('name');
			var value = abonnementen[i].getAttribute('value');

			abonnement_select.options[j] = new Option(name, value, false);
		}
	}
	document.getElementById('throbber').style.display='none';
}

function handle_response(result)
{
    document.getElementById('type').style.display='block';
	var types = result.getElementsByTagName('type');

	var types_select = document.getElementById('type');
	types_select.options.length = 0;
	types_select.options[0] = new Option("Selecteer een type", '', false);

	if(types.length > 0)
	{
		for(var i = 0, j = 1; i < types.length; i++, j++)
		{
			//alert("I: " + i + ", J: " + j);
			//var type = types.item(i).firstChild.nodeValue;
			//alert(type);
			var name = types[i].getAttribute('name');
			var value = types[i].getAttribute('value');

			types_select.options[j] = new Option(name, value, false);
		}
	}
}

function handle_response_feeds(result)
{
    document.getElementById('type').style.display='block';
	var types = result.getElementsByTagName('type');

	var types_select = document.getElementById('type');
	types_select.options.length = 0;
	types_select.options[0] = new Option("Selecteer een type", '', false);

	if(types.length > 0)
	{
		for(var i = 0, j = 1; i < types.length; i++, j++)
		{
			//alert("I: " + i + ", J: " + j);
			var type = types.item(i).firstChild.nodeValue;

			types_select.options[j] = new Option(type, type, false);
		}
	}

	types_select.options[types_select.options.length] = new Option("Maakt niet uit", '', false);
}

function toggle_resultaten(webshop_id)
{

	var trs = document.getElementsByTagName('tr');

	for(var i = 0; i < trs.length; i++)
	{
		if(trs[i].id == webshop_id)
		{
			if(trs[i].style.display == '')
			{
                trs[i].style.display = 'none';
			}
			else
   			{
   				trs[i].style.display = '';
	  		}
		}
	}


}
