$.createXMLDocument = function(string) {
	var browserName = navigator.appName;
	var doc;
	if (browserName == 'Microsoft Internet Explorer') {
		doc = new ActiveXObject('Microsoft.XMLDOM');
		doc.async = 'false';
		doc.loadXML(string);
	} else {
		doc = (new DOMParser()).parseFromString(string, 'text/xml');
	}
	return doc;
};



function saveUserDataWrapper(element) {
	var name = $(element).prev('input').val();
	if (name != '') {
		removeTmpFilters();

		var currentTab = $('#jseForm').find('#tab').val();
		var currentTerritorio = $('#jseForm').find('#aptve_territorio').val().replace(/Ambito di /, '');

		var xml = buildXml(false);
		saveUserData('ricerca', rawurlencode(xml) + '&name=' + rawurlencode(name) + '&datapair=' + rawurlencode(currentTab + '|' + currentTerritorio));
	}
	return false;
}

function saveUserData(what, data) {
	if (warningFlag) {
		warningFlag = false;

		$.ajax({
			type:'POST',
			url:'/index.php',
			data:'ajax=save_user_data&case=' + what + '&data=' + data,
			success:function(response){
				showWarning(response, warningEnd, true);
				return false;
			},
			error: function(){
				warningEnd(false);
			}
		});
	}
	return false;
}



function deleteUserData(what, data) {
	var confirm = jsConfirm();
	if (confirm) {
		$.ajax({
			type:'POST',
			url:'/index.php',
			data:'ajax=delete_user_data&case=' + what + '&data=' + data,
			success:function(response){
				if (response == 'OK') loadUserData(what);
				else showWarning(response, warningEnd, true);
				return false;
			},
			error: function(){
				warningEnd(false);
			}
		});
	}
	return false;
}



function openUserData(what) {
	var otherP = $('#user_data').children('p').not('#user_data_' + what);
	if (otherP.is(':visible')) {
		otherP.slideUp('slow', function(){
			loadUserData(what);
		});
	} else loadUserData(what);

	setSession('USER_DATA_STATUS', what);

	return false;
}



function loadUserData(what) {
	$('#user_data_controls').children('li').removeClass('hover');
	$('#user_data_controls_' + what).addClass('hover');

	$.ajax({
		type:'POST',
		url:'/index.php',
		data:'ajax=load_user_data&case=' + what + '&lang=' + jsLang,
		success:function(response){
			appendClose(what);
			$('#user_data_' + what).html(response);
			if (window.location.href.match(/(\?id=2(&.*)?|\/2(\/.*)?$)/) && what == 'ricerca') $('#user_data_' + what).append(appendSaveElement());
			$('#user_data_' + what).slideDown('slow');
			return false;
		}
	});
}

function appendSaveElement() {
	var input = $('<input>');
	input.attr('type', 'text');

	var button = $('<input>');
	button.attr('type', 'button');
	button.addClass('pulsante');
	button.click(function(){
		return saveUserDataWrapper(this);
	});
	button.val(translatedSaveSearchButton);

	var div = $('<div>');
	div.attr('id', 'user_data_save');
	div.append(translatedSaveSearchText + '&nbsp;');
	div.append(input);
	div.append('&nbsp;');
	div.append(button);

	return div;
}

function appendClose() {
	var lastId = $('#user_data_controls').children('li:last').attr('id');
	if (lastId != 'user_data_close') {
		$('#user_data_controls').children('li').removeClass('ultimo');

		var li = $('<li>');
		li.attr('id', 'user_data_close');
		li.addClass('ultimo');

		var a = $('<a>');
		a.attr('href', '#');
		a.click(function(){
			return closeUserData();
		});
		a.text(translatedUserDataClose);

		li.append(a);

		$('#user_data_controls').append(li);
		$('#user_data_controls').children('li:last').animate({opacity:1},500);
	}
}

function removeClose() {
	$('#user_data_controls').children('li').removeClass('hover');
	$('#user_data_controls').children('li:last').fadeOut(500,function(){
		$(this).remove();
	});
	$('#user_data_controls').children('li:last').addClass('ultimo');
}

function closeUserData() {
	var id = $('#user_data').children('p:visible').attr('id');
	$('#' + id).slideUp('slow');
	removeClose();

	setSession('USER_DATA_STATUS', false);

	return false;
}



function postXml(datapair, xml, back) {
	var form;
	var input;

	form = $('<form>');
	form.attr('method', 'POST');
	form.attr('action', buildUrl({ 'id': 2, 'lang': jsLang, 'back': back }));

	input = $('<input>');
	input.attr('type', 'hidden');
	input.attr('name', 'post_datapair');
	input.attr('value', datapair);

	form.append(input);

	input = $('<input>');
	input.attr('type', 'hidden');
	input.attr('name', 'post_xml');
	input.attr('value', xml);

	form.append(input);

	form.appendTo('body');
	form.submit();

	return false;
}

