/* $Id: footer.php 13 2008-03-20 10:27:41Z steven $ */

var selectbox;
var querystring;
var description='';

if (typeof(AJAX_COLO_WIZ_PATH) == 'undefined')
	AJAX_COLO_WIZ_PATH = '/ajax_colo_wiz';
if (typeof(WIZARD_TYPE) == 'undefined')
	WIZARD_TYPE = 'colo';

function goWithChoice (object)
{
	selectbox = object;
	httpObject = getHTTPObject();
	var doAjax;

	if (httpObject)
	{
		switch (selectbox.name)
		{
                        case 'disk_nr':

					httpObject.open('GET', AJAX_COLO_WIZ_PATH+'/getraid.php?serverid=' + document.getElementById('server').value + '&disk_nr=' + selectbox.value+ '&cached=' + Math.floor(Math.random() * 20), true);
					doAjax = true;
				break;
			case 'server':
					httpObject.open('GET', AJAX_COLO_WIZ_PATH+'/getmemdisk.php?serverid=' + selectbox.value + '&cached=' + Math.floor(Math.random() * 20), true);
					doAjax = true;
				break;
			case 'os':
					httpObject.open('GET', AJAX_COLO_WIZ_PATH+'/getcp.php?osid=' + selectbox.value + '&cached=' + Math.floor(Math.random() * 20), true);
					doAjax = true;
				break;
			case 'rackspace':
					apc_checkbox = document.getElementById('apc');
					if (selectbox.options[selectbox.selectedIndex].text.indexOf('rack') >= 0)
					{
						apc_checkbox.checked = false;
						apc_checkbox.disabled= true;
					}
					else
						apc_checkbox.disabled= false;

					getPrice();
					doAjax = false;
				break;
			case 'traffic':
					traffic = selectbox.value.split(' ');
					document.getElementById('traffic_nr').value = traffic[0] ? traffic[0] : '';
					document.getElementById('traffic_unit').value = traffic[1] ? traffic[1] : '';
					getPrice();
					getDescription(document.getElementById('traffic_unit'));
				break;
//				case 'traffic_unit':
//						traffic_nr_box = document.getElementById('traffic_nr');
//						traffic_nr_box.options.length = 0;
//						if (selectbox.value == 'GB')
//						{
//							traffic_nr_box.options[0] = new Option ('');
//							traffic_nr_box.options[1] = new Option ('50', 50);
//							traffic_nr_box.options[2] = new Option ('100', 100);
//							traffic_nr_box.options[3] = new Option ('250', 250);
//							traffic_nr_box.options[4] = new Option ('500', 500);
//							traffic_nr_box.options[5] = new Option ('1000', 1000);
//							traffic_nr_box.options[6] = new Option ('2500', 2500);
//						}
//						else
//						{
//							traffic_nr_box.options[0] = new Option ('');
//							traffic_nr_box.options[1] = new Option ('1', 1);
//							traffic_nr_box.options[2] = new Option ('2', 2);
//							traffic_nr_box.options[3] = new Option ('5', 5);
//							traffic_nr_box.options[4] = new Option ('10', 10);
//							traffic_nr_box.options[5] = new Option ('15', 15);
//							traffic_nr_box.options[6] = new Option ('25', 25);
//						}
//
//						getPrice();
//						doAjax = false;
//					break;
			default:
					alert ('Nothing to do...');
					doAjax = false;
				break;
		}

		if (doAjax)
		{
			httpObject.onreadystatechange = setOutput;
			httpObject.send(null);
		}
	}
}

function getPrice ()
{
	httpObject2 = getHTTPObject();
	if (httpObject2)
	{
		period			= document.getElementById('period')				? document.getElementById('period').value : 0 ;

		serverid		= document.getElementById('server')				? document.getElementById('server').value : 0 ;
		mem_nr			= document.getElementById('mem_nr')				? document.getElementById('mem_nr').value : 0 ;
		mem_id			= document.getElementById('mem_size')			? document.getElementById('mem_size').value : 0 ;
		disk_nr			= document.getElementById('disk_nr')			? document.getElementById('disk_nr').value : 0 ;
		disk_id			= document.getElementById('disk_size')			? document.getElementById('disk_size').value : 0 ;
		raid_id			= document.getElementById('raid_controller')	? document.getElementById('raid_controller').value : 0 ;
		os_id			= document.getElementById('os')					? document.getElementById('os').value : 0 ;
		cp_id			= document.getElementById('cp')					? document.getElementById('cp').value : 0 ;

		location_id		= document.getElementById('location').value;
		rackspace_id	= document.getElementById('rackspace') 			? document.getElementById('rackspace').value : 0 ;
		traffic_nr		= document.getElementById('traffic_nr').value;
		traffic_unit	= document.getElementById('traffic_unit').value;
		backup_id		= document.getElementById('colo_wiz_backup').value;

		extra_sfw		= document.getElementById('sfw').checked	? 1 : 0 ;
		extra_apc		= document.getElementById('apc').checked	? 1 : 0 ;
		extra_sms		= document.getElementById('sms').checked	? 1 : 0 ;
		extra_uplink2	= document.getElementById('uplink2').checked	? 1 : 0 ;

		querystring = 'server_id=' + serverid
			+ '&mem_nr=' + mem_nr
			+ '&mem_id=' + mem_id
			+ '&disk_nr=' + disk_nr
			+ '&disk_id=' + disk_id
			+ '&raid_id=' + raid_id
			+ '&os_id=' + os_id
			+ '&cp_id=' + cp_id
			+ '&period_id=' + period
			+ '&location_id=' + location_id
			+ '&rackspace_id=' + rackspace_id
			+ '&traffic_nr=' + traffic_nr
			+ '&traffic_unit=' + traffic_unit
			+ '&backup_id=' + backup_id
			+ '&extra_sfw=' + extra_sfw
			+ '&extra_apc=' + extra_apc
			+ '&extra_sms=' + extra_sms
			+ '&extra_uplink2=' + extra_uplink2
			+ '&cached=' + Math.floor(Math.random() * 20);

//		document.getElementById('div_price').innerHTML = AJAX_COLO_WIZ_PATH+'/getprice.php?'+querystring;
//		return false;

		httpObject2.open('GET', AJAX_COLO_WIZ_PATH+'/getprice.php?'+querystring, true);
		httpObject2.onreadystatechange = calculatePrice;
		httpObject2.send(null);
	}
}

function setOutput ()
{
	if (httpObject.readyState == 4)
	{
		ajaxData = eval ('('+httpObject.responseText+')');

		switch (selectbox.name)
		{
			case 'server':
					if (ajaxData.membanks) populateSelectBox('mem_nr', ajaxData.membanks);
					if (ajaxData.memtypes) populateSelectBox('mem_size', ajaxData.memtypes);
					if (ajaxData.raid) populateSelectBox('raid_controller', ajaxData.raid, 'No RAID (Select 2 or more disks)', false);
					if (ajaxData.nrdisks) populateSelectBox('disk_nr', ajaxData.nrdisks);
					if (ajaxData.disks) populateSelectBox('disk_size', ajaxData.disks);
				break;
			case 'disk_nr':

					if (ajaxData.raid) populateSelectBox('raid_controller', ajaxData.raid, 'Geen RAID (Selecteer 2 of meer schijven)', false);
				break;
			case 'os':
					if (ajaxData.cp) populateSelectBox('cp', ajaxData.cp, true);
				break;
			default:
				break;
		}

		getPrice ();
	}
}

function calculatePrice ()
{
	if (httpObject2.readyState == 4 && httpObject2.responseText)
	{
		ajaxData2 = eval('('+httpObject2.responseText+')');

		price_div = '<table class="price">';
		price_div += '<tr><td><strong>Total (indicative)</strong></td><td style="text-align: right;"> &euro; '+ajaxData2.price.total.toFixed(2)+' </td><td> / month</td></tr>';
		price_div += '<tr><td><strong>Setup cost</strong></td><td style="text-align: right;"> &euro; '+ajaxData2.price.colo.setup.toFixed(2)+' </td><td>(one time fee)</td></tr>';
		price_div += '<tr><td colspan="2"><i>Prices 21% VAT exclusive</i></td></tr>';


		price_div += '</table>';
//			price_div += '<br />' + querystring;
//			price_div += '<br />' + httpObject2.responseText;

		document.getElementById('div_price').innerHTML = price_div + '<br />';

		if (document.getElementById('disk_nr') && document.getElementById('disk_nr').value > 1 )
			document.getElementById('raid_controller').disabled='';
		else
		{
            if (document.getElementById('raid_controller')) {
                document.getElementById('raid_controller').value=0;
                document.getElementById('raid_controller').disabled='disabled';
            }
		}
	}
}

function populateSelectBox (boxid, values, emptyvalue, enable)
{
	emptyvalue = emptyvalue === undefined ? false : emptyvalue ;
	enable = enable === undefined ? true : false ;
	selectbox = document.getElementById(boxid);
	selectbox.options.length = 0;
	if (emptyvalue) selectbox.options[0] = new Option (typeof emptyvalue == 'string' ? emptyvalue : '', 0);
	for (a=0; a < values.length; a++)
	{
		index = emptyvalue ? a+1 : a ;
		selectbox.options[index] = new Option (values[a].name, values[a].id);
		if (values[a].defaultselected == 1) selectbox.options[index].selected='selected';
	}

//	if (a == 0) selectbox.disabled='disabled';
//	else
	if (enable) selectbox.disabled='';
}

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 getDescription (sbox)
{
	return true;	// DISABLE DESCRIPITION!

	var doAjax;
	var col_name = 'name';
	var col_desc = 'description';
	var itemid = sbox.value;

	switch (sbox.name)
	{
		case 'server':
				doAjax = true;
				table = 'colo_wiz_server';
			break;
		case 'period':
				doAjax = true;
				table = 'colo_wiz_period';
				col_name = 'months||\' Months\'';
			break;
		case 'raid_controller':
				doAjax = true;
				table = 'colo_wiz_raid';
			break;
		case 'mem_size':
				doAjax = true;
				table = 'colo_wiz_mem';
			break;
		case 'disk_size':
				doAjax = true;
				table = 'colo_wiz_disk';
			break;
		case 'os':
				doAjax = true;
				table = 'colo_wiz_os';
			break;
		case 'cp':
				doAjax = true;
				table = 'colo_wiz_controlpanel';
			break;
		case 'location':
				doAjax = true;
				table = 'colo_location';
			break;
		case 'rackspace':
				doAjax = true;
				table = 'colo_wiz_rackspace';
			break;
		case 'traffic_unit':
				doAjax = true;
				table = 'traffic';
			break;
		case 'backup':
				doAjax = true;
				table = 'colo_wiz_backup';
			break;
		case 'sfw':
				doAjax = true;
				table = 'sfw';
			break;
		case 'apc':
				doAjax = true;
				table = 'colo_wiz_option';
			break;
		case 'sms':
				doAjax = true;
				table = 'colo_wiz_option';
			break;
		case 'uplink2':
				doAjax = true;
				table = 'colo_wiz_option';
			break;
		default:
				doAjax = false;
			break;
	}
	if (doAjax)
	{
		httpObject3 = getHTTPObject();
		if (httpObject3)
		{
			httpObject3.open('GET', AJAX_COLO_WIZ_PATH+'/getDescription.php?table=' + table + '&itemid=' + itemid + '&col_name=' + col_name + '&col_desc=' + col_desc, true);
			httpObject3.onreadystatechange = setDescription;
			httpObject3.send(null);
		}
	}
}

function setDescription ()
{
	if (httpObject3.readyState == 4)
	{
		document.getElementById('div_description').innerHTML = httpObject3.responseText
			 ? '<hr />' + httpObject3.responseText
			 : '' ;
	}
}

function checkForm ()
{
	var errors='';

	if (WIZARD_TYPE == 'ded')
	{
		if (!document.getElementById('period').value) errors += 'Choose a contract period<br />';

		if (!document.getElementById('server').value) errors += 'Choose a server type<br />';
		if (!document.getElementById('mem_nr').value || !document.getElementById('mem_size').value) errors += 'Choose the desired memory<br />';
		if (!document.getElementById('disk_nr').value || !document.getElementById('disk_size').value) errors += 'Choose your hard disks<br />';
		if (!document.getElementById('os').value) errors += 'Choose an operating system<br />';
	}

	if (!document.getElementById('location').value) errors += 'Choose a location<br />';
	if (!document.getElementById('traffic_nr').value || !document.getElementById('traffic_unit').value) errors += 'Choose your datatraffic<br />';

	if (errors)
	{
		document.getElementById('div_error').style.display = 'block';
		document.getElementById('div_error').innerHTML = errors;
		return false;
	}
	else
		return true;
}
