//var baseurl = '../lib/';
var baseurlprivate = 'lib/private/';
var baseurl = 'lib/';
var currIdRamo = null;
var currRoot = null;
var currRootviewDocument = 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 newUpdateContent(url, pars) {
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawTreeFragments,
																			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 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 drawTreeFragments(req) {
	if(req.status == 401){
		error401();
		return;
	}
	var xmlDoc = req.responseXML.documentElement;
	//var xmlDoc2 = req2.responseXML.documentElement;

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


	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()){
					$(id).innerHTML = content.item(0).firstChild.data;
				} else {
					$(id).innerHTML = "";
				}
			}
		}
	}
	hideLoadingDiv();
	switchPage(pageToSwitch);
	switchSubPage(subPageToSwitch);
	pageToSwitch = -1;
	subPageToSwitch = -1;
}

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 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 getDoc(did,id_ramo,tipologia,ctrf) {
	var url = baseurl + 'getBody.php';
	var pars = 'did=' + did + '&id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&ctrf=' + ctrf;
	pageToSwitch = 1;
	updateContent(url, pars);
	document.documentElement.scrollTop = 0;
}

function getLogin(did,id_ramo,tipologia,ctrf) {
	var url = baseurl + 'getLogin.php';
	var pars = 'did=' + did + '&id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&ctrf=' + ctrf;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function doLogin() {
	var username = document.forms["login"].username.value;
	var password = document.forms["login"].password.value;
	var did = document.forms["login"].did.value;
	var id_ramo = document.forms["login"].id_ramo.value;
	var tipologia = document.forms["login"].tipologia.value;
	var ctrf = document.forms["login"].ctrf.value;
	var url = baseurl + 'doLogin.php';
	var pars = 'did=' + did + '&id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&ctrf=' + ctrf + '&username=' + username + '&password=' + password;
	pageToSwitch = 1;
	updateContent(url, pars);
}

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 switchPage(id){
	$('lista').style.display	= (id == 0) ? 'block' : 'none';
	$('doc').style.display		= (id == 1) ? 'block' : 'none';
	$('rimandi').style.display	= (id == 2) ? 'block' : 'none';
	$('abstract').style.display = 'none';
	$('paginaProtetta').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 = baseurl + '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';
}

/*************************************/
/* FUNZIONI UTILI PER PRONTUARIO CDS */
/*************************************/

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';
		links[0].className = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	currLblRoot = links[0].innerHTML;
	explode(id_ramo);
}

function setRootCodice(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';
		links[0].className = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	currLblRoot = links[0].innerHTML;
	expCodice(id_ramo);
}

function explode(id_ramo) {
	/*if(currIdRamo && (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 expCodice(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';
		links[0].className = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	currLblRoot = links[0].innerHTML;
	explode(id_ramo);
}

function viewDocument(id_ramo,tipologia,page) {
	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 = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	links[0].className = 'leaf_selected';
	currLblRoot = links[0].innerHTML;

	/*if(id_ramo != currSelectedLink){
		// Ho cliccato su una nuova voce dell'albero
		var elem = $('d_' + id_ramo);
		if(elem)
			elem.className = 'leaf_selected';
		var elem = $('d_' + currSelectedLink);
		if(elem)
			elem.className = 'leaf';
		currSelectedLink = id_ramo;
	}*/
	$('currRamo').innerHTML = currLblRoot;
	$('currRamo').style.display = 'block';
	$('currRamo').style.textTransform = 'uppercase';
	var url = baseurl + 'doc_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page + '&ctrf=1';
	pageToSwitch = 0;
	newUpdateContent(url, pars);
}

function viewDocumentCodice(id_ramo,tipologia,page) {
	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 = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	links[0].className = 'leaf_selected';
	currLblRoot = links[0].innerHTML;

	/*if(id_ramo != currSelectedLink){
		// Ho cliccato su una nuova voce dell'albero
		var elem = $('d_' + id_ramo);
		if(elem)
			elem.className = 'leaf_selected';
		var elem = $('d_' + currSelectedLink);
		if(elem)
			elem.className = 'leaf';
		currSelectedLink = id_ramo;
	}*/
	$('currRamo').innerHTML = currLblRoot;
	$('currRamo').style.display = 'block';
	$('currRamo').style.textTransform = 'uppercase';
	var url = baseurl + 'tree_buildListCodice.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page;
	pageToSwitch = 0;
	newUpdateContent(url, pars);
}






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;
	}

	var flagStringCompare = currLblRoot.localeCompare(currLblRamo);
	if (flagStringCompare == 0)
		$('currRamo').innerHTML = currLblRoot + ' > ' + $('l_' + id_ramo).innerHTML;
	else
		$('currRamo').innerHTML = currLblRoot + ' > ' + currLblRamo + ' > ' + $('l_' + id_ramo).innerHTML;

	$('currRamo').style.display = 'block';
	$('currRamo').style.textTransform = 'uppercase';
	var url = baseurl + 'tree_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page + '&ctrf=2';
	pageToSwitch = 0;
	updateContent(url, pars);
}





function drawPageCodice(id_ramo,tipologia,page) {
	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 = ((links[0].className == 'leaf') || (links[0].className == 'leaf_selected'))?'leaf':'expand';
	}
	currRoot = id_ramo;
	elem = $('d_' + currRoot);
	var links = $A(elem.getElementsByTagName('a'));
	links[0].className = 'leaf_selected';
	currLblRoot = links[0].innerHTML;

	/*if(id_ramo != currSelectedLink){
		// Ho cliccato su una nuova voce dell'albero
		var elem = $('d_' + id_ramo);
		if(elem)
			elem.className = 'leaf_selected';
		var elem = $('d_' + currSelectedLink);
		if(elem)
			elem.className = 'leaf';
		currSelectedLink = id_ramo;
	}*/
	$('currRamo').innerHTML = currLblRoot;
	$('currRamo').style.display = 'block';
	$('currRamo').style.textTransform = 'uppercase';
	var url = baseurl + 'doc_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page + '&ctrf=1';
	pageToSwitch = 0;
	newUpdateContent(url, pars);
}

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

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

		function check_form(test1,test2)
		{
			str = new String(test1.value);
			if (str == "") 
			{
        		alert("Il campo Username non puņ essere vuoto!");
        		test1.focus();
        		return false;
			}
			strbis = new String(test2.value);
			if (strbis == "") 
			{
        		alert("Il campo Password non puņ essere vuoto!");
        		test2.focus();
        		return false;
			}
			return true;
		}


/******************************************/
/* FINE FUNZIONI UTILI PER PRONTUARIO CDS */
/******************************************/