escapeUri = function(string) {
	return string.replace(/[^A-Za-z0-9]/g, '');
}

updateTable = function(el, id) {
	// alert();
	if ($('autosuggest_choices' + id).getStyle('display') != 'block') {
		new Ajax.Updater(el.parentNode.parentNode.getElementsByTagName('td')[1], owUriBase + 'service/editValues/?property=' + escape(el.value), {evalScripts: true});
	}
}

deleteStatement = function(id) {
	stmId = id.replace('statement-', '');
	var stmSpan = $('stmId' + stmId);
	var stmPP = stmSpan.parentNode.parentNode;
	
	new Ajax.Request(owUriBase + 'service/deleteStatement/?stId=' + stmId);
	
	// TODO: make independant of html structure
	if ((stmPP.nodeName == 'TR') && (stmPP.className != 'Property')) {
		$jq(stmSpan).remove();
	} else if (stmPP.nodeName == 'UL' && stmPP.childNodes.length > 1) {
		$jq(stmSpan.parentNode).remove();
	} else {
		$jq(stmSpan.parentNode.parentNode).remove();
	}
}

editRow = function(td, event, instance, property) {
	if (!event) {
		event = window.event;
	}
	
	/* IE doesn't have event.target */
	// var targetName = event.target ? event.target.tagName : event.srcElement.tagName;
	// if ((targetName != 'INPUT') && (targetName != 'LABEL') && (targetName != 'IMG') {
		var uri = owUriBase + 'service/editInstance/?r=' + encodeURIComponent(instance) + '&property=' + encodeURIComponent(property);
		// new Ajax.Updater(td, uri , {evalScripts: true});
		$jq(td).load(uri, {dataType: 'html'});
	// }

	// clear selection in IE
	if (document.selection) {
		document.selection.empty();
	}
}

editStatement = function(btn) {
	// extract statements from RDFa
	var s = $jq(btn).parents('[about]').attr('about');
	var p = $jq(btn).parents('tr').find('span[property]').attr('property');
	var o = $jq(btn).parents('tr').find('span[content]').attr('content');
	
	alert('Sure to edit all statements that match <' + s + '> <' + p + '> ?s.?');
}

setCount = function(oldCount) {
	var count = prompt('Number of results to display per page:', oldCount);
	var uri = '';
	
	if (count > 0) {
		if (document.location.search.search('count') > -1) {
			uri = document.location.href.replace(/count=[0-9]+/, 'count=' + count);
		} else if (document.location.search != '') {
			uri = document.location.href + ('&count=' + count);
		} else {
			uri = document.location.href + ('?count=' + count);
		}
	}
	
	document.location.href = uri;
}

editColumn = function(img, prop, col) {
	var rows = powl.getAncestor(img, 'table').tBodies[0].rows;
	for (var i = 0; i < rows.length; ++i) { // loop started at 1
		var element = rows[i].cells[col + 1];
		var uri = owUriBase + 'service/editInstance/?r=' + encodeURIComponent(rows[i].cells[1].childNodes[2].value) + '&property=' + prop;
		new Ajax.Updater(element, uri, {evalScripts: true});
	}
	powl.remove(img);
}

subm = function(form, elem) {
	if (!form.combine || !form.combine.checked) {
		for (i = 0; i < form.elements.length; ++i) {
			if (elem != form.elements[i]) {
				if (form.elements[i].type != 'hidden') {
					form.elements[i].value = '';
				} /*else {
					if (form.elements[i] != 'hidden')
						form.elements[i].selectedIndex = 0;
				}*/
			}
		}
	}
	form.submit();
}
