function cancel_edit() {
	container = document.getElementById('blockform').parentNode;

	while (container.hasChildNodes())
		container.removeChild(container.childNodes[0]);
	
	while (original_form.length)
		container.appendChild(original_form.shift());
}
function editblock(container, blockid) {
	if ((typeof original_form!="undefined") && (original_form.length>0))
		cancel_edit();

	original_form = new Array();
	while (container.hasChildNodes())
		original_form.push(container.removeChild(container.childNodes[0]));

	innerXHTML(edit_form, 1, container);

	blockform(blocks[blockid], blocks[blockid]['content_type']);
	document.getElementById('blockid').value = blockid;
	if (blocks[blockid]['flavor'] >= 0)
		document.getElementById('content').value = blocks[blockid]['content'];
	document.getElementById('position').value = blocks[blockid]['position'];
	document.getElementById('blocksort').value = blocks[blockid]['blocksort'];
	if (1==blocks[blockid]['active'])
		document.getElementById('disableblock').value = 'Disable block';
		else document.getElementById('disableblock').value = 'Enable block';
}
function tag(style, id) {
	if ('link' == style)
		var url = prompt("Please enter the destination URL", "http://");

	styles = {	bold:['[bold ', ']'],
				italic:['[italic ', ']'],
				link:['[link '+url+' ', ']'] }
	
    var textarea = document.getElementById(id);
	var len = textarea.value.length;
	var start = textarea.selectionStart;
	var end = textarea.selectionEnd;
	var sel = textarea.value.substring(start, end);
	if ('' == sel) sel = prompt("Please enter the text to format");
	var replace = styles[style][0] + sel + styles[style][1];
	textarea.value = textarea.value.substring(0,start) + replace + textarea.value.substring(end,len);
	return false;
}
function toggle(id) {
	el = document.getElementById(id);
	if (el.style.display == 'block') {
		el.style.display = 'none';
	} else {
		el.style.display = 'block';
	}
}
function blockform(block, type_id) {
	tabs = document.getElementById('blockform').getElementsByTagName('ul')[0].getElementsByTagName('li');
	for (i = 0; i < tabs.length; i++) {
		if (tabs[i].id == 'type_' + type_id)
			tabs[i].className='sel';
		else tabs[i].className = '';
	}

	items0 = document.getElementById('blockform').querySelectorAll('.blockform0');
	for (i=0; i<items0.length; i++) {
		if (subform_data[type_id]['flavor'] >= 0)
			items0[i].style.display = 'block';
		else items0[i].style.display = 'none';
	}
	items1 = document.getElementById('blockform').querySelectorAll('.blockform1');
	for (i=0; i<items1.length; i++) {
		if (subform_data[type_id]['flavor'] > 0)
			items1[i].style.display = 'block';
		else items1[i].style.display = 'none';
	}
	items_1 = document.getElementById('blockform').querySelectorAll('.blockform-1');
	for (i=0; i<items_1.length; i++) {
		if (subform_data[type_id]['flavor'] < 0)
			items_1[i].style.display = 'block';
		else items_1[i].style.display = 'none';
	}
	itemspos = document.getElementById('blockform').querySelectorAll('.blockformpos');
	for (i=0; i<itemspos.length; i++) {
		if (subform_data[type_id]['positionable'] > 0)
			itemspos[i].style.display = 'block';
		else itemspos[i].style.display = 'none';
	}

	document.getElementById('content_type').value=type_id;
	document.getElementById('blockform').className='subform';
}
function subform(data_id, prefix) {
	tabs = document.getElementById(prefix+prefix).getElementsByTagName('li');
	for (i = 0; i < tabs.length; i++) {
		if (tabs[i].id == prefix + data_id)
			tabs[i].className='sel';
		else tabs[i].className = '';
	}

	if (subform_data[data_id]) {
		for (i in subform_data[data_id])
			if (document.getElementById(prefix+i))
				document.getElementById(prefix+i).value = subform_data[data_id][i];

		document.getElementById(prefix+prefix).className='subform';
	}
}
function innerXHTML(str, replace, target) {
	// http://www.moddular.org/log/simple-inner-xhtml/
	if (typeof target == 'string') {
		var target = document.getElementById(target);
	} else if (target == undefined) {
		var target = document.getElementsByTagName('body')[0];
	}

	if (!target) {
		return false;
	}

	if (window.DOMParser) {
		try {
			var dom = new DOMParser().parseFromString(
				'<div xmlns="http://www.w3.org/1999/xhtml">' + 
				str + 
				'</div>', 'application/xhtml+xml');
			if (dom.firstChild.nodeName == 'parsererror') {
				return false;
			}
		} catch(e) {
			return false;
		}

		if (replace) {
			while (target.hasChildNodes()) {
				target.removeChild(target.firstChild);
			}
		}

		for (var i = 0; i < dom.firstChild.childNodes.length; ++i) {
			target.appendChild(
				document.importNode(dom.firstChild.childNodes[i], true)
			);
		}

	} else {
		if (replace) {
			target.innerHTML = str;
		} else {
			target.innerHTML += str;
		}
	}
	return true;
}

