/* rosebleed.js
 * copyright (c) 2006 Eddie Roosenmaallen // rosebleed.net
 * $Id$
 */

// --- disclosure functions -----------

function disclosure_open(baseid) {
	is_open	 = document.getElementById(baseid + '_open');
	is_shut	 = document.getElementById(baseid + '_shut');
	
	if (is_open)
		is_open.style.display = '';
	if (is_shut)
		is_shut.style.display = 'none';
}

function disclosure_shut(baseid) {
	is_open	 = document.getElementById(baseid + '_open');
	is_shut	 = document.getElementById(baseid + '_shut');
	
	if (is_open)
		is_open.style.display = 'none';
	if (is_shut)
		is_shut.style.display = '';
}

function disclosure_toggle(baseid) {
	is_open	 = document.getElementById(baseid + '_open');
	is_shut	 = document.getElementById(baseid + '_shut');
	
	if (is_open)
		is_open.style.display = (is_open.style.display==''?'none':'');
	if (is_shut)
		is_shut.style.display = (is_shut.style.display==''?'none':'');
}

function popup(url, popname, opts) {
	if (!popname)
		popname = 'rosePop';
	if (!opts)
		opts = 'width=500,height=400,location=no,toolbars=no';

	window.open(
		url,
		popname,
		opts
	);
}
function popLegal(page) {
	window.open(
		'legal_' + page + '.php',
		'popLegal',
		'width=500,height=400,location=no,toolbars=no'
	);
}

function checkAll(name) {
	master	 = document.getElementById(name+'_all');
	slaves	 = document.getElementsByName(name);
	if (slaves.length < 1)
		slaves	 = document.getElementsByName(name + '[]');
	
	c = master.checked;
	
	for(i = 0; i < slaves.length; i++) {
		slaves[i].checked = master.checked;
	}
}

function allCheck(name) {
	master	 = document.getElementById(name+'_all');
	slaves	 = document.getElementsByName(name);
	if (slaves.length < 1) {
		slaves	 = document.getElementsByName(name +'[]');
	}
	
	c = true;
	
	for(i = 0; i < slaves.length; i++) {
		c = c && slaves[i].checked;
	}
	
	master.checked = c;
}

function addLoadEvent(newfunc, append) {
	var func = window.onload;
	window.onload = function() {
		if(typeof append == 'boolean' && append) {
			if(typeof func == "function")
				func();
			newfunc();
		} else {
			newfunc();
			if(typeof func == "function")
				func();
		}
	};
}

function sideband_get(req, url, callback) {
	if (!req) {
		if(window.XMLHttpRequest && !(window.ActiveXObject)) {
			try {
				req = new XMLHttpRequest();
			} catch(e) {
				req = false;
			}
		// branch for IE/Windows ActiveX version
		} else if(window.ActiveXObject) {
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {
					req = false;
				}
			}
		}
    }
	if(req) {
		req.onreadystatechange = callback;
		req.open("GET", url, true);
		req.send("");
	}
}