//////////////////////////////////////////////////
//
// libjs.js
//
//////////////////////////////////////////////////

function pause(ms)
{
	var	now = new Date();
	var	exitTime = now.getTime() + ms;

	while(true) {
		now = new Date();

		if(now.getTime() > exitTime)
			return;
	}
}

//////////////////////////////////////////////////

function popnreload(url)
{
	var	testImg = new Image(1,1);
	testImg.src = url;

	pause(1500);
	window.close();
	window.opener.location.reload(true);
	return(true);
}

//////////////////////////////////////////////////

function popnewloc(url, newloc)
{
	var	testImg = new Image(1,1);
	testImg.src = url;

	pause(1500);
	window.close();
	window.opener.location.href = newloc;
	return(true);
}

//////////////////////////////////////////////////

function editconfig()
{
	var	argv = editconfig.arguments;

	var	listmenu = document.getElementById('listmenu');
	var	value = document.getElementById('value');
	var	comment = document.getElementById('comment');

	var	l = "&listmenu=" + listmenu.value;
	var	v = "&value="    + value.value;
	var	c = "&comment="  + comment.value;

	var	url = argv[0] + l + v + c;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=2"));
}

//////////////////////////////////////////////////

function editfilter()
{
	var	argv = editfilter.arguments;

	var	filter = document.getElementById('filter');
	var	listmenu = document.getElementById('listmenu');
	var	value = document.getElementById('value');
	var	comment = document.getElementById('comment');

	var	f = "&filter="   + Base64.encode(filter.value);
	var	l = "&listmenu=" + listmenu.value;
	var	v = "&value="    + value.value;
	var	c = "&comment="  + Base64.encode(comment.value);

	var	url = argv[0] + f + l + v + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function newprofile()
{
	var	argv = newprofile.arguments;
	var	pro = document.getElementById('newprofile');
	var	url = argv[0] + "?newprofile=" + pro.value;
	var	nexloc = "/admin/doswitch.php?newprofile=" + pro.value;

	// alert(url);

	// return(popnewloc(url, nexloc));
	window.close();
	pause(1500);
	window.opener.location.href = nexloc;
}

//////////////////////////////////////////////////

function savebayes()
{
	var	argv = savebayes.arguments;

	var	unsscore = document.getElementById('unsscore');
	var	unsmenu = document.getElementById('unsmenu');
	var	unsvalue = document.getElementById('unsvalue');
	var	unscomment = document.getElementById('unscomment');

	var	spmscore = document.getElementById('spmscore');
	var	spmmenu = document.getElementById('spmmenu');
	var	spmvalue = document.getElementById('spmvalue');
	var	spmcomment = document.getElementById('spmcomment');

	var	u1 = "&unsscore="   + unsscore.value;
	var	u2 = "&unsmenu="    + unsmenu.value;
	var	u3 = "&unsvalue="   + unsvalue.value;
	var	u4 = "&unscomment=" + unscomment.value;

	var	s1 = "&spmscore="   + spmscore.value;
	var	s2 = "&spmmenu="    + spmmenu.value;
	var	s3 = "&spmvalue="   + spmvalue.value;
	var	s4 = "&spmcomment=" + spmcomment.value;

	var	url = argv[0] + u1 + u2 + u3 + u4 + s1 + s2 + s3 + s4;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=2"));
}

//////////////////////////////////////////////////

function savefetch()
{
	var	argv = savefetch.arguments;

	var	server  = document.getElementById('server');
	var	actopt  = document.getElementById('actopt');
	var	locuser = document.getElementById('locuser');
	var	remuser = document.getElementById('remuser');
	var	rempswd = document.getElementById('rempswd');
	var	protopt = document.getElementById('protopt');
	var	sslopt  = document.getElementById('sslopt');
	var	comment = document.getElementById('comment');

	var	f1 = "&server="  + server.value;
	var	f2 = "&action="  + actopt.value;
	var	f3 = "&locuser=" + locuser.value;
	var	f4 = "&remuser=" + remuser.value;
	var	f5 = "&rempswd=" + rempswd.value;
	var	f6 = "&proto="   + protopt.value;
	var	f7 = "&sslflag=" + sslopt.value;
	var	f8 = "&comment=" + comment.value;

	var	url = argv[0] + f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function savedup()
{
	var	argv = savedup.arguments;

	var	listmenu = document.getElementById('wsiz');
	var	comment = document.getElementById('comment');

	var	l = "&listmenu=" + listmenu.value;
	var	v = "&value=";
	var	c = "&comment="  + comment.value;

	var	url = argv[0] + l + v + c;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=2"));
}

//////////////////////////////////////////////////

function saveldap()
{
	var	argv = saveldap.arguments;

	var	ltype   = document.getElementById('ltype');
	var	host    = document.getElementById('host');
	var	port    = document.getElementById('port');
	var	action  = document.getElementById('action');
	var	user    = document.getElementById('user');
	var	pswd    = document.getElementById('pswd');
	var	base    = document.getElementById('base');
	var	comment = document.getElementById('comment');

	var	f1 = "&ltype="   + ltype.value;
	var	f2 = "&host="    + host.value;
	var	f3 = "&port="    + port.value;
	var	f4 = "&action="  + action.value;
	var	f5 = "&user="    + user.value;
	var	f6 = "&pswd="    + pswd.value;
	var	f7 = "&base="    + base.value;
	var	f8 = "&comment=" + comment.value;

	var	url = argv[0] + f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8;

	return(popnewloc(url, "/index.php?panel=4"));
}

//////////////////////////////////////////////////

function savepswd()
{
	var	argv = savepswd.arguments;

	var	profile = document.getElementById('user');
	var	cp = document.getElementById('cp');
	var	np1 = document.getElementById('np1');
	var	np2 = document.getElementById('np2');

	var	p = "?profile=" + profile.value;
	var	c = "&cp="      + Base64.encode(cp.value);
	var	n1 = "&np1="    + Base64.encode(np1.value);
	var	n2 = "&np2="    + Base64.encode(np2.value);

	var	url = argv[0] + p + c + n1 + n2;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function editforward()
{
	var	argv = editforward.arguments;

	var	value = document.getElementById('value');
	var	comment = document.getElementById('comment');

	var	v = "&value="   + value.value;
	var	c = "&comment=" + comment.value;

	var	url = argv[0] + v + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function editd64()
{
	var	argv = editd64.arguments;

	var	listmenu = document.getElementById('listmenu');
	var	comment = document.getElementById('comment');

	var	l = "&listmenu=" + listmenu.value;
	var	c = "&comment="  + comment.value;

	var	url = argv[0] + l + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function editmb()
{
	var	argv = editmb.arguments;

	var	msiz = document.getElementById('msiz');
	var	listmenu = document.getElementById('listmenu');
	var	value = document.getElementById('value');
	var	comment = document.getElementById('comment');

	var	h = "&msiz="     + msiz.value;
	var	l = "&listmenu=" + listmenu.value;
	var	v = "&value="    + value.value;
	var	c = "&comment="  + comment.value;

	var	url = argv[0] + h + l + v + c;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=2"));
}

//////////////////////////////////////////////////

function editquar()
{
	var	argv = editquar.arguments;

	var	fold = document.getElementById('fold');
	var	addr = document.getElementById('addr');
	var	quar;

	var	f = "&fold=" + fold.value;
	var	a = "&addr=" + addr.value;
	var	q = "&quar=";

	if(quar = document.getElementById('quar0'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	if(quar = document.getElementById('quar1'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	if(quar = document.getElementById('quar2'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	var	url = argv[0] + f + a + q;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function edithits()
{
	var	argv = edithits.arguments;

	var	hits = document.getElementById('hits');
	var	listmenu = document.getElementById('listmenu');
	var	value = document.getElementById('value');
	var	comment = document.getElementById('comment');

	var	h = "&hits="     + hits.value;
	var	l = "&listmenu=" + listmenu.value;
	var	v = "&value="    + value.value;
	var	c = "&comment="  + comment.value;

	var	url = argv[0] + h + l + v + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function editscl()
{
	var	argv = editscl.arguments;

	var	value = document.getElementById('value');
	var	scl = document.getElementById('scl');
	var	listmenu = document.getElementById('listmenu');
	var	comment = document.getElementById('comment');

	var	v = "&value="   + value.value;
	var	s = "&scl="     + scl.value;
	var	l = "&listmenu=" + listmenu.value;
	var	c = "&comment=" + comment.value;

	var	url = argv[0] + v + s + l + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function editrejtext()
{
	var	argv = editrejtext.arguments;

	var	comment = document.getElementById('comment');
	var	c = "?comment=" + comment.value;

	var	url = argv[0] + c;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function netupdate()
{
	var	argv = netupdate.arguments;

	var	hostname   = document.getElementById('hostname');
	var	domainname = document.getElementById('domainname');
	var	ipaddr     = document.getElementById('ipaddr');
	var	netmask    = document.getElementById('netmask');
	var	gateway    = document.getElementById('gateway');
	var	ns1        = document.getElementById('ns1');
	var	ns2        = document.getElementById('ns2');
	var	ns3        = document.getElementById('ns3');

	var	f1 = "&hostname="   + hostname.value;
	var	f2 = "&domainname=" + domainname.value;
	var	f3 = "&ipaddr="     + ipaddr.value;
	var	f4 = "&netmask="    + netmask.value;
	var	f5 = "&gateway="    + gateway.value;
	var	f6 = "&ns1="        + ns1.value;
	var	f7 = "&ns2="        + ns2.value;
	var	f8 = "&ns3="        + ns3.value;

	var	url = argv[0] + f1 + f2 + f3 + f4 + f5 + f6 + f7 + f8;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function rebootconf()
{
	var	argv = rebootconf.arguments;

	var	url = argv[0];
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function savemt()
{
	var	argv = savemt.arguments;

	var	name     = document.getElementById('name');
	var	listmenu = document.getElementById('listmenu');
	var	comment  = document.getElementById('comment');

	var	n = "&name="    + name.value;
	var	l = "&action="  + listmenu.value;
	var	c = "&comment=" + comment.value;

	var	url;
	var	testImg = new Image(1,1);

	if(argv[1] == "local_domains") {
		// has owner column
		var	owner = document.getElementById('owner');
		var	r = "&owner=" + owner.value;

		// has maxvusers column
		var	maxvusers = document.getElementById('maxvusers');
		var	m = "&maxvusers=" + maxvusers.value;

		url = argv[0] + n + l + c + r + m;
	} else if(argv[1] == "mailertable") {
		// has relay column
		var	relay = document.getElementById('relay');
		var	r = "&relay=" + relay.value;

		url = argv[0] + n + l + c + r;
	} else {
		// no relay column
		url = argv[0] + n + l + c;
	}

	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function saveexim()
{
	var	argv = saveexim.arguments;

	var	v01 = document.getElementById('dnsbl');
	var	v02 = document.getElementById('ldap');
	var	v03 = document.getElementById('msql');
	var	v04 = document.getElementById('batv');
	var	v05 = document.getElementById('message_size_limit');
	var	v06 = document.getElementById('ratelim_count');
	var	v07 = document.getElementById('ratelim_interval');
	var	v08 = document.getElementById('deliver_load_max');
	var	v09 = document.getElementById('queue_only_load');
	var	v10 = document.getElementById('smtp_accept_max');

	var	a01 = "?dnsbl="              + v01.value;
	var	a02 = "&ldap="               + v02.value;
	var	a03 = "&msql="               + v03.value;
	var	a04 = "&batv="               + v04.value;
	var	a05 = "&message_size_limit=" + v05.value;
	var	a06 = "&ratelim_count="      + v06.value;
	var	a07 = "&ratelim_interval="   + v07.value;
	var	a08 = "&deliver_load_max="   + v08.value;
	var	a09 = "&queue_only_load="    + v09.value;
	var	a10 = "&smtp_accept_max="    + v10.value;

	var	url;

	url = argv[0] + a01 + a02 + a03 + a04 + a05 + a06 + a07 + a08 + a09 + a10;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=4"));
}

//////////////////////////////////////////////////

function saveuser()
{
	var	argv = saveuser.arguments;

	var	user     = document.getElementById('user');
	var	name     = document.getElementById('name');
	var	pass1    = document.getElementById('password');
	var	pass2    = document.getElementById('np2');
	var	listmenu = document.getElementById('listmenu');

	var	u  = "?user="   + user.value;
	var	n  = "&name="   + name.value;
	var	p1;
	var	a  = "&action=" + listmenu.value;

	if(pass1.value != pass2.value) {
		alert("Passwords do no match");
		return(false);
	}

	if(pass1.value.length == 0) {
		// no password change
		p1 = "&password=";
	} else if(pass1.value.length < 6) {
		// bad password
		alert("Password is too short");
		return(false);
	} else {
		// good password
		p1 = "&password=" + Base64.encode(pass1.value);
	}

	var	url = argv[0] + u + n + p1 + a;
	// alert(url);

	return(popnreload(url));
}

//////////////////////////////////////////////////

function savealias()
{
	var	argv = savealias.arguments;

	var	owner    = document.getElementById('owner');
	var	alias    = document.getElementById('alias');
	var	domain   = document.getElementById('domain');
	var	user     = document.getElementById('user');
	var	listmenu = document.getElementById('listmenu');

	var	o  = "?owner="  + owner.value;
	var	n  = "&alias="  + alias.value;
	var	d  = "&domain=" + domain.value;
	var	u  = "&user="   + user.value;
	var	a  = "&action=" + listmenu.value;

	var	url = argv[0] + o + n + d + u + a;
	// alert(url);

	return(popnewloc(url, "/index.php?panel=4"));
}

//////////////////////////////////////////////////

function presetsave()
{
	var	argv = presetsave.arguments;

	var	level;
	var	l = "&level=";

	if(level = document.getElementById('RadioGroup1_0'))
		if(level.checked)
			l = "&level=" + level.value;

	if(level = document.getElementById('RadioGroup1_1'))
		if(level.checked)
			l = "&level=" + level.value;

	if(level = document.getElementById('RadioGroup1_2'))
		if(level.checked)
			l = "&level=" + level.value;

	if(level = document.getElementById('RadioGroup1_3'))
		if(level.checked)
			l = "&level=" + level.value;

	///////////////////////////////////////////

	var	quar;
	var	fold = document.getElementById('fold');
	var	addr = document.getElementById('addr');
	var	f = "&fold=" + fold.value;
	var	a = "&addr=" + addr.value;
	var	q = "&quar=";

	var	url;

	if(quar = document.getElementById('RadioGroup2_0'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	if(quar = document.getElementById('RadioGroup2_1'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	if(quar = document.getElementById('RadioGroup2_2'))
		if(quar.checked)
			q = "&quar=" + quar.value;

	url = argv[0] + l + f + a + q;
	// alert(url);

	return(popnewloc(url, "/settings/overview.php"));
}

//////////////////////////////////////////////////

function ebaxsave()
{
	var	argv = ebaxsave.arguments;

	var	url = argv[0];
	// alert(url);

	return(popnewloc(url, "/settings/overview.php"));
}

//////////////////////////////////////////////////

function genpopup()
{
	// generic popup window

	var	argv    = genpopup.arguments;
	var	loc     = argv[0];
	var	height  = argv[1];
	var	width   = argv[2];
	var	caption = argv[3];
	var	x       = (window.screen.width - width) / 2;
	var	y       = (window.screen.height - height) / 2;

	var	opts    = "location=no, menubar=no, scrollbars=yes, toolbar=no, height=" + height + ", width=" + width + ", left=" + x + ", top=" + y;

	window.open(loc, caption, opts);
	return(true);
}

//////////////////////////////////////////////////

function editor()
{
	// just call genpopup() with size args

	var	argv = editor.arguments;
	var	loc  = argv[0];

	return(genpopup(argv[0], '260', '620', 'Edit'));
}

//////////////////////////////////////////////////

function editfetch()
{
	// just call genpopup() with size args

	var	argv = editfetch.arguments;
	var	loc  = argv[0];

	return(genpopup(argv[0], '350', '620', 'Edit'));
}

//////////////////////////////////////////////////

function edituser()
{
	// just call genpopup() with size args

	var	argv = edituser.arguments;
	var	loc  = argv[0];

	return(genpopup(argv[0], '300', '620', 'Edit'));
}

//////////////////////////////////////////////////

function editalias()
{
	// just call genpopup() with size args

	var	argv = editalias.arguments;
	var	loc  = argv[0];

	return(genpopup(argv[0], '280', '700', 'Edit'));
}

//////////////////////////////////////////////////

function editldap()
{
	// just call genpopup() with size args

	var	argv = editldap.arguments;
	var	loc  = argv[0];

	return(genpopup(argv[0], '360', '700', 'Edit'));
}

//////////////////////////////////////////////////

function deliver()
{
	var	argv = deliver.arguments;

	var	url = argv[0];
	// alert(url);
	pause(1500);

	// return(popnewloc(url, "/index.php?panel=0"));
	return(popnreload(url));
}

//////////////////////////////////////////////////

function checkauthport()
{
	var	ltype = document.getElementById('ltype');

	if(ltype.value == 'AUTH_IMAP')
		this.value = '143';

	if(ltype.value == 'AUTH_LDAP')
		this.value = '389';
}

//////////////////////////////////////////////////
