/*
 * Generated configuration file, do not edit.
 * uiGenerator v2.98a
 * Copyright (C) 2002-2005 Ubicom Inc. <www.ubicom.com>.  All rights reserved.
 */

function access_ctrl_js_loaded() { return true }

function createDataObjectFromBinaryArray (initial)
{
	if (initial) createDataObject();
	var d = data;
	i = 0;				// global, accessed by the s*() functions
	d.lan_network_address=sX();
	d.lan_subnet_mask=sX();
	d.access_ctrl_max_ip_machines=sU(1);
	d.access_ctrl_max_mac_machines=sU(1);
	for (var i1=0; i1<15; i1++) {
		d.access_ctrl_table[i1].bsecure_web_access=sU(1);
		for (var i2=0; i2<3; i2++) {
			d.access_ctrl_table[i1].bsecure_web_access_categories[i2]=sU(4);
		}
		d.access_ctrl_table[i1].enabled=sU(1);
		d.access_ctrl_table[i1].filter_method=sU(1);
		d.access_ctrl_table[i1].log_access=sU(1);
		for (var i2=0; i2<8; i2++) {
			d.access_ctrl_table[i1].machine_table[i2].addr_type=sU(1);
			d.access_ctrl_table[i1].machine_table[i2].enabled=sU(1);
			d.access_ctrl_table[i1].machine_table[i2].machine=sX();
			d.access_ctrl_table[i1].machine_table[i2].machine_mac=sH(6);
			d.access_ctrl_table[i1].machine_table[i2].used=sU(1);
		}
		d.access_ctrl_table[i1].policy_name=sS(16);
		d.access_ctrl_table[i1].port_filter=sU(1);
		for (var i2=0; i2<8; i2++) {
			d.access_ctrl_table[i1].port_filter_table[i2].dest_ip_end=sX();
			d.access_ctrl_table[i1].port_filter_table[i2].dest_ip_start=sX();
			d.access_ctrl_table[i1].port_filter_table[i2].dest_port_end=sU(2);
			d.access_ctrl_table[i1].port_filter_table[i2].dest_port_start=sU(2);
			d.access_ctrl_table[i1].port_filter_table[i2].enabled=sU(1);
			d.access_ctrl_table[i1].port_filter_table[i2].entry_name=sS(15);
			d.access_ctrl_table[i1].port_filter_table[i2].protocol=sU(1);
		}
		d.access_ctrl_table[i1].sched_name=sS(16);
		d.access_ctrl_table[i1].used=sU(1);
		d.access_ctrl_table[i1].web_access=sU(1);
	}
	d.enable_access_ctrl=sU(1);
	for (var i1=0; i1<32; i1++) {
		d.sched_table[i1].enabled=sU(1);
		d.sched_table[i1].end_time=sU(4);
		d.sched_table[i1].sched_name=sS(16);
		d.sched_table[i1].start_time=sU(4);
		d.sched_table[i1].used=sU(1);
		d.sched_table[i1].weekdays=sU(1);
	}
}

function createBinaryArrayFromDataObject()
{
	byte_array = new Array;		// global, accessed by the g*() functions
	var d = data;
	gX(d.lan_network_address);
	gX(d.lan_subnet_mask);
	gU(d.access_ctrl_max_ip_machines,1);
	gU(d.access_ctrl_max_mac_machines,1);
	for (var i1=0; i1<15; i1++) {
		gU(d.access_ctrl_table[i1].bsecure_web_access,1);
		for (var i2=0; i2<3; i2++) {
			gU(d.access_ctrl_table[i1].bsecure_web_access_categories[i2],4);
		}
		gU(d.access_ctrl_table[i1].enabled,1);
		gU(d.access_ctrl_table[i1].filter_method,1);
		gU(d.access_ctrl_table[i1].log_access,1);
		for (var i2=0; i2<8; i2++) {
			gU(d.access_ctrl_table[i1].machine_table[i2].addr_type,1);
			gU(d.access_ctrl_table[i1].machine_table[i2].enabled,1);
			gX(d.access_ctrl_table[i1].machine_table[i2].machine);
			gH(d.access_ctrl_table[i1].machine_table[i2].machine_mac,6);
			gU(d.access_ctrl_table[i1].machine_table[i2].used,1);
		}
		gS(d.access_ctrl_table[i1].policy_name,16);
		gU(d.access_ctrl_table[i1].port_filter,1);
		for (var i2=0; i2<8; i2++) {
			gX(d.access_ctrl_table[i1].port_filter_table[i2].dest_ip_end);
			gX(d.access_ctrl_table[i1].port_filter_table[i2].dest_ip_start);
			gU(d.access_ctrl_table[i1].port_filter_table[i2].dest_port_end,2);
			gU(d.access_ctrl_table[i1].port_filter_table[i2].dest_port_start,2);
			gU(d.access_ctrl_table[i1].port_filter_table[i2].enabled,1);
			gS(d.access_ctrl_table[i1].port_filter_table[i2].entry_name,15);
			gU(d.access_ctrl_table[i1].port_filter_table[i2].protocol,1);
		}
		gS(d.access_ctrl_table[i1].sched_name,16);
		gU(d.access_ctrl_table[i1].used,1);
		gU(d.access_ctrl_table[i1].web_access,1);
	}
	gU(d.enable_access_ctrl,1);
	for (var i1=0; i1<32; i1++) {
		gU(d.sched_table[i1].enabled,1);
		gU(d.sched_table[i1].end_time,4);
		gS(d.sched_table[i1].sched_name,16);
		gU(d.sched_table[i1].start_time,4);
		gU(d.sched_table[i1].used,1);
		gU(d.sched_table[i1].weekdays,1);
	}
	return byte_array;
}

function naturalizeDataObject()
{
	var d = data;
	d.access_ctrl_max_ip_machines=naturalize(d.access_ctrl_max_ip_machines);
	d.access_ctrl_max_mac_machines=naturalize(d.access_ctrl_max_mac_machines);
	for (var i1=0; i1<15; i1++) {
		d.access_ctrl_table[i1].bsecure_web_access=naturalize(d.access_ctrl_table[i1].bsecure_web_access);
		for (var i2=0; i2<3; i2++) {
			d.access_ctrl_table[i1].bsecure_web_access_categories[i2]=naturalize(d.access_ctrl_table[i1].bsecure_web_access_categories[i2]);
		}
		d.access_ctrl_table[i1].filter_method=naturalize(d.access_ctrl_table[i1].filter_method);
		d.access_ctrl_table[i1].log_access=naturalize(d.access_ctrl_table[i1].log_access);
		for (var i2=0; i2<8; i2++) {
			d.access_ctrl_table[i1].machine_table[i2].used=naturalize(d.access_ctrl_table[i1].machine_table[i2].used);
		}
		for (var i2=0; i2<8; i2++) {
			d.access_ctrl_table[i1].port_filter_table[i2].dest_port_end=naturalize(d.access_ctrl_table[i1].port_filter_table[i2].dest_port_end);
			d.access_ctrl_table[i1].port_filter_table[i2].dest_port_start=naturalize(d.access_ctrl_table[i1].port_filter_table[i2].dest_port_start);
		}
		d.access_ctrl_table[i1].used=naturalize(d.access_ctrl_table[i1].used);
	}
	for (var i1=0; i1<32; i1++) {
		d.sched_table[i1].end_time=naturalize(d.sched_table[i1].end_time);
		d.sched_table[i1].start_time=naturalize(d.sched_table[i1].start_time);
		d.sched_table[i1].used=naturalize(d.sched_table[i1].used);
		d.sched_table[i1].weekdays=naturalize(d.sched_table[i1].weekdays);
	}
}
