//var baseurl = '../lib/';
var baseurlprivate = '/lib/private/';
var baseurl = '/lib/';
var currIdRamo = null;
var currRoot = null;
var currPid;
var currPidRims;
var currSelectedLink = null;
var currLblRamo;
var currLblRoot;
var pageToSwitch = -1;
var subPageToSwitch = -1;

function updateContent(url, pars) {
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawFragments,
																			onLoading: displayLoadingDiv});
}

function error401(){
	$('lista').style.display = 'none';
	$('doc').style.display = 'none';
	$('rimandi').style.display = 'none';
	$('abstract').style.display = 'none';
	$('tab_ricerche').style.display = 'none';
	$('currRamo').style.display = 'none';
	hideLoadingDiv();
	$('paginaProtetta').style.display = "block";
}

function drawFragments(req) {
	if(req.status == 401){
		error401();
		return;
	}
	var xmlDoc = req.responseXML.documentElement;
	
	var fragments = xmlDoc.getElementsByTagName('fragment');
	for(i=0; i<fragments.length; i++){
		var idelem = fragments.item(i).getElementsByTagName('id');
		if(idelem.length == 1)
			id = idelem.item(0).firstChild.data;
		if($(id)){
			var content = fragments.item(i).getElementsByTagName('content');
			if(content.length == 1){
				if(content.item(0).hasChildNodes()){
//				alert(content.item(0).firstChild.data);
					$(id).innerHTML = content.item(0).firstChild.data;
				} else {
					$(id).innerHTML = "";
				}
			}
		}
	}
	hideLoadingDiv();
	switchPage(pageToSwitch);
	switchSubPage(subPageToSwitch);
	pageToSwitch = -1;
	subPageToSwitch = -1;
}

function explode(id_ramo) {
	/*if(currIdRamo && (currIdRamo != id_ramo) && (currIdRamo != currRoot)){
		var elem = $('v_' + currIdRamo);
		if(elem){
			elem.style.display = 'none';
		}
		elem = $('d_' + currIdRamo);
		var links = $A(elem.getElementsByTagName('a'));
		links[0].className = 'expand';
	}*/
	currIdRamo = id_ramo;
	var elem = $('d_' + id_ramo);
	if(elem){
		var links = $A(elem.getElementsByTagName('a'));
		links[0].className = (links[0].className == 'expand')?'collapse':'expand';
		currLblRamo = links[0].innerHTML;
	}
	var sub_elem = $('v_' + id_ramo);
	if(sub_elem) {
		sub_elem.style.display = (sub_elem.style.display == 'block')?'none':'block';
	} else {
		var url = baseurl + 'tree_getChilds.php';
		var pars = 'id_ramo=' + id_ramo;
		var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawTreeFragment,
																				onLoading: displayLoadingDiv});
	}
}

function setRoot(id_ramo){
	if(currRoot && (currRoot != id_ramo)){
		var elem = $('v_' + currRoot);
		if(elem)
			elem.style.display = 'none';
		elem = $('d_' + currRoot);
		var links = $A(elem.getElementsByTagName('a'));
		links[0].className = 'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	currLblRoot = links[0].innerHTML;
	explode(id_ramo);
}

function drawTreeFragment(req) {
	var xmlDoc = req.responseXML.documentElement;

	var elem=$('d_' + currIdRamo);
	if(elem)
		elem.innerHTML += xmlDoc.getElementsByTagName('content').item(0).firstChild.data;
//		elem.innerHTML += req.responseText;
	hideLoadingDiv();
}

function drawPage(id_ramo,tipologia,page) {
	if(id_ramo != currSelectedLink){
		// Ho cliccato su una nuova voce dell'albero
		var elem = $('l_' + id_ramo);
		if(elem)
			elem.className = 'leaf selected';
		var elem = $('l_' + currSelectedLink);
		if(elem)
			elem.className = 'leaf';
		currSelectedLink = id_ramo;
	}
	$('currRamo').innerHTML = currLblRoot + ' > ' + currLblRamo + ' > ' + $('l_' + id_ramo).innerHTML;
	$('currRamo').style.display = 'block';
	var url = baseurlprivate + 'tree_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page;
	pageToSwitch = 0;
	updateContent(url, pars);
}

function getArticoli(id_ramo, pid){
	currPid = pid;
	var elem = $('ph_' + currPid);
	if(elem.getAttribute('_status') == 'full'){
		elem.style.display = (elem.style.display == 'block') ? 'none' : 'block';
		return;
	}

	var url = baseurl + 'tree_didsByPid.php';
	var pars = 'id_ramo=' + id_ramo + '&pid=' + pid;
	//var pars = 'pid=' + pid;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}




function getArticoliSearch(pid){
	currPid = pid;
	var elem = $('ph_' + currPid);
	if(elem.getAttribute('_status') == 'full'){
		elem.style.display = (elem.style.display == 'block') ? 'none' : 'block';
		return;
	}

	var url = baseurlprivate + 'search_didsByPid.php';
	//var pars = 'id_ramo=' + id_ramo + '&pid=' + pid;
	var pars = 'pid=' + pid;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}

function getArticoliSearchByArt(art,pid){
	currPid = pid;
	var elem = $('ph_' + currPid);
	if(elem.getAttribute('_status') == 'full'){
		elem.style.display = (elem.style.display == 'block') ? 'none' : 'block';
		return;
	}

	var url = baseurlprivate + 'search_didsByPid.php';
	//var pars = 'id_ramo=' + id_ramo + '&pid=' + pid;
	var pars = 'pid=' + pid + '&articolo=' + art;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}

function getArticoliSearchWord(num,pid){
	currPid = pid;
	var elem = $('ph_' + currPid);
	if(elem.getAttribute('_status') == 'full'){
		elem.style.display = (elem.style.display == 'block') ? 'none' : 'block';
		return;
	}

	var url = baseurlprivate + 'search_didsByPid.php';
	//var pars = 'id_ramo=' + id_ramo + '&pid=' + pid;
	var pars = 'pid=' + pid + '&num=' + num;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}






function drawDidsByPidFragments(req) {
	var elem = $('ph_' + currPid);
	if(elem){
		var xmlDoc = req.responseXML.documentElement;
		var docBody = xmlDoc.getElementsByTagName('docs').item(0).firstChild.data;
		elem.innerHTML = docBody;
		elem.style.display = 'block';
		elem.setAttribute('_status', 'full');
	}
	hideLoadingDiv();
}

function getProvv(did) {
	var url = baseurl + 'getProvv.php';
	var pars = 'did=' + did;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function displayLoadingDiv() {
	var elem=$('loading');
	if(elem)
		elem.style.display = 'block';
}

function hideLoadingDiv() {
	var elem=$('loading');
	if(elem)
		elem.style.display = 'none';
}

function getRimandi(did,tipologia,page){
	var url = baseurl + 'rims_buildList.php';
	var pars = 'did=' + did + '&tipologia=' + tipologia + '&page=' + page;
	pageToSwitch = 2;
	subPageToSwitch = 0;
	updateContent(url, pars);
}

function getArticoliRims(did, pid){
	currPidRim = pid;
	var elem = $('phr_' + currPidRim);
	if(elem.getAttribute('_status') == 'full'){
		elem.style.display = (elem.style.display == 'block') ? 'none' : 'block';
		return;
	}

	var url = baseurl + 'rims_didsByPid.php';
	var pars = 'did=' + did + '&pid=' + pid;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawRimsDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}

function drawRimsDidsByPidFragments(req) {
	var elem = $('phr_' + currPidRim);
	if(elem){
		var xmlDoc = req.responseXML.documentElement;
		var docBody = xmlDoc.getElementsByTagName('docs').item(0).firstChild.data;
		elem.innerHTML = docBody;
		elem.style.display = 'block';
		elem.setAttribute('_status', 'full');
	}
	hideLoadingDiv();
}

function getDocRims(did) {
	var url = baseurlprivate + 'getBodyRims.php';
	var pars = 'did=' + did;
	pageToSwitch = 2;
	subPageToSwitch = 1;
	updateContent(url, pars);
}

function switchSubPage(id){
	var lista = $('rim_lista');
	var doc = $('rim_doc');

	lista.style.display	= (id == 0) ? 'block' : 'none';
	doc.style.display		= (id == 1) ? 'block' : 'none';
}


function searchByTip(page,tip)
{
	var pars = 'page=' + page + '&tipologia=' + tip;
	var url = baseurlprivate + 'getResultSearchByTip.php';
	pageToSwitch = 0;
	updateContent(url, pars);
}


function loadOrgano(tipologia) {
	if($('organo').value){
		var pars = 'organo=' + $('organo').value;
	}
	var url = baseurlprivate + 'changeForm.php';
	/*pageToSwitch = 0;
	updateContent(url, pars);*/
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawFragments,
																			onLoading: displayLoadingDiv});
}





function tipologiaLoad(tip,num) {
	var pars = 'tipologia=' + tip + '&numero=' + num;
	if($('tipologiaparole').value){
		pars += '&tipologiaparole=' + $('tipologiaparole').value;
	}
		if($('stringa1').value){
			pars += "&stringa1=" + $('stringa1').value;
		}
		if($('stringa2').value){
			pars += "&stringa2=" + $('stringa2').value;
		}
		if($('annop').value){
			pars += "&annop=" + $('annop').value;
		}
		if($('annof').value){
			pars += "&annof=" + $('annof').value;
		}
		if($('titolo').checked){
			pars += "&titolo=" + $('titolo').value;
		}
		if($('oggetto').checked){
			pars += "&oggetto=" + $('oggetto').value;
		}
		if($('testo').checked){
			pars += "&testo=" + $('testo').value;
		}
	var url = baseurlprivate + 'changeForm.php';
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				onLoading: displayLoadingDiv});
}


/* Utili per Maschera Ricerca Dottrina in Polnews */

function visualFormSearch(number,tip) {
	var url = baseurlprivate + 'getFormSearch.php';
	var pars = 'numero=' + number + '&tip=' + tip;
	pageToSwitch = 2;
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				onLoading: displayLoadingDiv});
}

function visualFormSearch2(number,tip) {
	var url = baseurlprivate + 'getFormSearch2.php';
	var pars = 'numero=' + number + '&tip=' + tip;
	pageToSwitch = 2;
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				onLoading: displayLoadingDiv});
}

function organoLoad(tip,num) {
	var pars = 'tipologia=' + tip + '&numero=' + num;
	if($('organo').value){
		pars += '&organo=' + $('organo').value;
	}
	if (tip == 'dottrina')
	{
		/**if($('annodott').value){
			pars += "&annodott=" + $('annodott').value;
		}*/
		if($('stringa1').value){
			pars += "&stringa1=" + $('stringa1').value;
		}
	}
	var url = baseurlprivate + 'changeForm.php';
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				onLoading: displayLoadingDiv});
}






function executeSearch(page,tip) {
	var pars = 'page=' + page + '&tipologia=' + tip;
	var flag_campi = 0;
	var number = 0;
	if (tip == 'quesiti')
	{
		if($('stringa1').value){
			str1 = new String($('stringa1').value);
			stringaform = escape($('stringa1').value);
			pars += "&stringa1=" + stringaform;
		}
		if($('anno').value){
			ann = new String($('anno').value);
			cont_ann = 0;
			for(k2 = 0; k2 < ann.length; k2++)
			{
				cann = ann.charAt(k2);
				if (!(cann >= '0' && cann <= '9'))
					cont_ann++;
			}
			if(cont_ann > 0)
			{
				alert("Il campo relativo all'anno puņ contenere solo caratteri numerici!");
				$('anno').focus();
				flag_campi = 1;
			}
			pars += "&anno=" + $('anno').value;
		}
	}
	var url = baseurlprivate + 'getResultSearch.php';
	if (flag_campi == 0) {
		pageToSwitch = 0;
		updateContent(url, pars);
	}
}

function pageRicerca(num,tip) {
	var pars = 'tipologia=' + tip + '&page=' + num;
	var url = baseurlprivate + 'getResultSearch.php';
	pageToSwitch = 0;
	updateContent(url, pars);
}

function executeSearch2(page,tip) {
	var pars = 'page=' + page + '&tipologia=' + tip;
	var flag_campi = 0;
	var number = 0;
	if (tip == 'dottrina')
	{
		/*if($('organo').value){
			pars += "&organo=" + $('organo').value;
		}*/
		if($('sede').value){
			pars += "&sede=" + escape($('sede').value);
		}
		if($('stringa1').value){
			str1 = new String($('stringa1').value);
			stringaform = escape($('stringa1').value);
			pars += "&stringa1=" + stringaform;
		}
		/*if($('annodott').value){
			ann = new String($('annodott').value);
			cont_ann = 0;
			for(k2 = 0; k2 < ann.length; k2++)
			{
				cann = ann.charAt(k2);
				if (!(cann >= '0' && cann <= '9'))
					cont_ann++;
			}
			if(cont_ann > 0)
			{
				alert("Il campo relativo all'anno puņ contenere solo caratteri numerici!");
				$('annodott').focus();
				flag_campi = 1;
			}
			pars += "&annodott=" + $('annodott').value;
		}*/
	}
	var url = baseurlprivate + 'getResultSearch2.php';
	if (flag_campi == 0) {
		pageToSwitch = 0;
		updateContent(url, pars);
	}
}

function pageRicerca2(num,tip) {
	var pars = 'tipologia=' + tip + '&page=' + num;
	var url = baseurlprivate + 'getResultSearch2.php';
	pageToSwitch = 0;
	updateContent(url, pars);
}





function getDoc(did) {
	var url = baseurlprivate + 'getBody.php';
	var pars = 'did=' + did;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function switchPage(id){
	$('lista').style.display	= (id == 0) ? 'block' : 'none';
	$('doc').style.display		= (id == 1) ? 'block' : 'none';
	$('polnews').style.display		= (id == 2) ? 'block' : 'none';
	/*$('rimandi').style.display	= (id == 2) ? 'block' : 'none';
	$('abstract').style.display = 'none';
	$('paginaProtetta').style.display = 'none';*/
}
/**/