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

/*var myGlobalHandlers = {
	onCreate: function(){
		document.documentElement.style.cursor = ' ';
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			document.documentElement.style.cursor = 'pointer';
		}
	}
};

Ajax.Responders.register(myGlobalHandlers);*/

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

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

function getLoginNews(did) {
	var url = baseurl + 'getLoginNews.php';
	var pars = 'did=' + did;
	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 firstRamo = document.forms["login"].firstRamo.value;
	var mem = document.forms["login"].mem.checked;
	var url = baseurl + 'doLogin.php';
	var pars = 'did=' + did + '&id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&firstRamo=' + firstRamo + '&username=' + username + '&password=' + password + '&mem=' + mem;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function doLoginNews() {
	var username = document.forms["loginews"].username.value;
	var password = document.forms["loginews"].password.value;
	var did = document.forms["loginews"].did.value;
	var mem = document.forms["loginews"].mem.checked;
	var url = baseurl + 'doLoginNews.php';
	var pars = 'did=' + did + '&username=' + username + '&password=' + password + '&mem=' + mem;
	pageToSwitch = 1;
	updateContent(url, pars);
}

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

function hideLoadingDiv() {
	var elemLoading=$('loading');
	if(elemLoading)
		elemLoading.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 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 setRoot(id_ramo,firstRamo){
	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,firstRamo);
}

function explode(id_ramo,firstRamo) {
	/*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 + '&firstRamo=' + firstRamo;
		var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawTreeFragment,
																				onLoading: displayLoadingDiv});
	}
}

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 drawPage(id_ramo,firstRamo,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 myCurrLblRoot = escape(currLblRoot);
	var myCurrLblRamo = escape(currLblRamo);
	var url = baseurl + 'tree_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&firstRamo=' + firstRamo + '&tipologia=' + tipologia + '&page=' + page + '&currLblRoot=' + myCurrLblRoot + '&currLblRamo=' + myCurrLblRamo;
	pageToSwitch = 0;
	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;
}

function submit_download(var1)
{
	document.download.link.value=var1;	
	document.download.action="download.php";
	document.download.submit();			
}	

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

function submit_formulario(par1)
{
	document.formulario.id.value=par1;
	document.formulario.action="formulario.php";
	document.formulario.submit();
}

function submit_doc(par1)
{
	document.notizie.did.value=par1;
	document.notizie.action="news.php";
	document.notizie.submit();
}

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

function submit_articolo(did,oldid,pid)
{
	var url = baseurl + 'getDocArticolo.php';
	var pars = 'didArt=' + did + '&oldid=' + oldid + '&pid=' + pid;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function getLinks()
{
	if(document){
		var linki = document.links;
		if(linki){
			for(var i=0;i<linki.length;i++){
				hr = linki.item(i).href;
				/*posiz = hr.indexOf("/tid/");
				if(posiz>0){
					str = hr.substring(posiz + 5, hr.length);
					newurl = "doc_ex.htm?did=" + str + "&haslinks=0&id_bd=" + id_bd;
					linki.item(i).href = newurl;
				}
				posiz = hr.indexOf("/pid/");
				if(posiz>0){
					str = hr.substring(posiz + 5, hr.length);
					newurl = "search.htm?pid=" + str + "&querystring=(pid|e,)&id_bd=" + id_bd + "&querykind=trBoolean&query_lbl=Normativa";
					linki.item(i).href = newurl;
				}*/
				posiz = hr.indexOf("news");
				if(posiz>0){
					str = hr.substring(posiz + 4, hr.length);
					newurl = "search.htm?pid=" + str + "&querystring=(pid|e,)&id_bd=" + id_bd + "&querykind=trBoolean&query_lbl=Normativa";
					linki.item(i).href = newurl;
				}
			}
		}
	}
}

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 drawPageDocument(id_ramo,firstRamo,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 myCurrLblRoot = escape(currLblRoot);
	var myCurrLblRamo = escape(currLblRamo);
	var url = baseurl + 'tree_buildListDocument.php';
	var pars = 'id_ramo=' + id_ramo + '&firstRamo=' + firstRamo + '&tipologia=' + tipologia + '&page=' + page + '&currLblRoot=' + myCurrLblRoot + '&currLblRamo=' + myCurrLblRamo;
	pageToSwitch = 0;
	updateContent(url, pars);
}

function getArticoli(id_ramo,pid,firstRamo){
	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 + '&firstRamo=' + firstRamo;
	//var pars = 'pid=' + pid;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}

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