function unselectable(root)
{
	var i, node, children;

	if(!(root.nodeType == 1 || root.nodeType == 9))
		return;

	root.unselectable = true;

	children = root.childNodes;

	//alert('refract.js/unselectable: tagname=[' + root.tagName + '], length=[' + children.length + ']');

	for (i=0; i < children.length; i++)
	{
		node = children.item(i);
		if (node.tagName != 'INPUT' && node.tagName != 'TEXTAREA') {
			unselectable(node);
		}
	}
}

function areyousure(message)
{
	var result;
	result = window.showModalDialog('_refract/areyousure.asp', message, 'dialogWidth: 400px; dialogHeight: 180px; status: no;');
	return result == 'yes';
}

function showmessage(message)
{
	window.showModalDialog('_refract/showmessage.asp', message, 'dialogWidth: 320px; dialogHeight: 120px; status: no;');
}

function imagechooser(f, b)
{
	var image_id, xin=new Array(), xout;

	eval('image_id=document.' + f + '.' + b + '_id.value;');

	if (image_id == '')
		image_id = 0;

	xin['image_id'] = image_id;
	xout = window.showModalDialog('_refract/imagechooser.asp', xin, 'dialogWidth: 420px; dialogHeight: 350px; status: no;');

	if (xout['ok'] == 'yes')
	{
		eval('document.' + f + '.' + b + '_id.value=xout["image_id"];');
		eval('document.' + f + '.' + b + '_name.value=xout["name"];');
	}
}

function imageclear(f, b)
{
	eval('document.' + f + '.' + b + '_id.value=""');
	eval('document.' + f + '.' + b + '_name.value=""');
}

function canAccessPage(page_id, user_id) {
	if(!refract || !refract.user || !refract.user.data || !refract.user.data[user_id])
		return false;

	if(refract.user.data[user_id].administrator == 'y')
		return true;

	if(!refract.page || !refract.page.data || !refract.page.data[page_id])
		return false;

	if(refract.page.data[page_id].owner != 0)
		return (refract.page.data[page_id].owner == user_id);

	// Go back up the tree to find the source of permission for this page
	var permission_page_id = page_id;
	while(permission_page_id && refract.page.data[permission_page_id].owner != user_id)
		permission_page_id = refract.page.data[permission_page_id].parent_page_id;

	if(permission_page_id && refract.page.data[permission_page_id].owner == user_id)
		return true;

	return false;
}

function previewPage(page_id, version) {
	var previewWindow = window.open('../driver.asp?command=preview&page_id=' + page_id + '&version=' + version, 'preview', 'width=550,height=500,scrollbars,resizable');
	previewWindow.focus();
}

// move up/down elements
function shuffle(dir, node)
{
	if (dir == 'up')
	{
		if (node.previousSibling)
			node.previousSibling.insertAdjacentElement('beforeBegin', node);
		else
			alert('This is already at the top.');
	}
	else if (dir == 'down')
	{
		if (node.nextSibling)
			node.nextSibling.insertAdjacentElement('afterEnd', node);
		else
			alert('This is already at the bottom.');
	}
	else
	{
		alert('Direction is unknown.');
	}
}
