var baseurl = 'lib/';
var currSelectedLink = null;
var doAlerts=false;
var currRoot = null;

function showException(req, e)
{
	
}






	
function updateContent(url, pars) {
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawFragments,
																			onLoading: displayLoadingDiv});
}

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 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';
}

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 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 submit_download(var1)
{
	document.download.link.value=var1;	
	document.download.action="download.php";
	document.download.submit();			
}

function aggiungi(){
	var url="http://www.questionididirittodifamiglia.it";
	var title="Questioni di Diritto di Famiglia";
	if (document.all)
		window.external.AddFavorite(url, title);
	else if (window.sidebar)
		window.sidebar.addPanel(title, url, "");
}

function zoom()
{
	var elem=$('testoDoc');
	if (elem)
		elem.style.fontSize = '20px';
}

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,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 url = baseurl + 'tree_buildList.php';
	var pars = 'id_ramo=' + id_ramo + '&tipologia=' + tipologia + '&page=' + page + '&ctrf=2';
	pageToSwitch = 0;
	updateContent(url, pars);
}

function drawList(tipologia,page) {
	var url = baseurl + 'buildList.php';
	var pars = 'tipologia=' + tipologia + '&page=' + page + '&ctrf=2';
	pageToSwitch = 0;
	updateContent(url, pars);
}

function getDoc(did) {
	var url = baseurl + 'getBody.php';
	var pars = 'did=' + did;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function search(page,sc)
{
	var pars = 'page=' + page + '&sc=' + sc;
	var flag_campi = 0;
	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 Anno può contenere solo caratteri numerici!");
			$('anno').focus();
			flag_campi = 1;
		} 
		pars += "&anno=" + $('anno').value;
	}
	if (!$('stringa1').value)
	{
		alert("Inserire almeno una parola da ricercare!");
		$('stringa1').focus();
		flag_campi = 1;
	}
	if($('stringa1').value){
		str1 = new String($('stringa1').value);
		stringaform = escape($('stringa1').value);
		pars += "&stringa1=" + stringaform;
	}
	if($('sez').value){
		pars += "&sez=" + $('sez').value;
	}
	var url = baseurl + 'getResultSearch.php';
	if (flag_campi == 0) {
		pageToSwitch = 0;
		updateContent(url, pars);
	}
}

function searchByTip(page,tip,sc,numTip)
{
	var pars = 'page=' + page + '&sez=' + tip + '&sc=' + sc + '&numTip=' + numTip;
	var url = baseurl + 'getResultSearch.php';
	pageToSwitch = 0;
	updateContent(url, pars);
}

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 = baseurl + '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 getProvv(did) {
	var url = baseurl + 'getProvv.php';
	var pars = 'did=' + did;
	pageToSwitch = 1;
	updateContent(url, pars);
}

function interoProvv(did) {
	if($('listArticoli'))
		$('listArticoli').style.display = 'none';	
	var url = baseurl + 'interoProvv.php';
	var pars = 'did=' + did;
	pageToSwitch = 1;
	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 getArticoli2(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 + 'didsByPid.php';
	var pars = 'pid=' + pid;
	var myAyax = new Ajax.Request(url, {method: 'post',
																			parameters: pars,
																			onComplete: drawDidsByPidFragments,
																			onLoading: displayLoadingDiv});
}

function changeSheets(whichSheet){
	if(document.styleSheets){
		//var c = document.stylesheets.length;
		if (doAlerts) alert('Stile selezionato: '+(whichSheet+1));
		for(var i=1;i<4;i++){
			if(i!=whichSheet){
		    	document.styleSheets[i].disabled=true;
		    }
		    else{
		       	document.styleSheets[i].disabled=false;
		    }
		}
	}
}

function getArticoloNorm() {
	var url = baseurl + 'getArticoloNorm.php';
	var pars = '';
	if($('listArt').value){
		pars = "did=" + $('listArt').value;
	}
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				onLoading: displayLoadingDiv});
}

function getArt(did) {
	var url = baseurl + 'getArticoloNorm.php';
	var pars = "did=" + did;
	var myAyax = new Ajax.Request(url, {method: 'post',
																				parameters: pars,
																				onComplete: drawFragments,
																				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';
		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 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 insert_quesiti()
{
	if($('q4'))
		$('q4').style.display = 'none';
	if($('q5'))
		$('q5').style.display = 'none';
	if($('q6'))
		$('q6').style.display = 'none';	
	if($('q7'))
		$('q7').style.display = 'block';		
}*/

function trim(s)
{
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function check_fields()
{
	var selRegioni = document.getElementById('regione');
	if(selRegioni){
		if(selRegioni.value == -1) {
			alert("Selezionare la regione di interesse");
			return;
		}
	}
  var textareafld = document.getElementById('textarea');
  
  var passwordfld = document.getElementById('password');
  if (passwordfld){
    if(trim(passwordfld.value) == ''){
      alert('Inserire la password');
      return;
    }
  }  
  var edit_nome = document.getElementById('referente');
  if (edit_nome && trim(edit_nome.value) == ''){
      alert('Inserire il nome');
      return;
  }
  var email = document.getElementById('email');
  if(email && !email.options && trim(email.value) == ''){
  	alert('Inserire un indirizzo di mail');
  	return;
  }
  var frm = document.getElementById('Form1');
  if(frm)
     frm.submit();
}

function newmail(){
	new_mail = window.prompt('Inserire un nuovo indirizzo di mail', '');
	if(trim(new_mail) != '' && new_mail){
		var se_email = document.getElementById('email');
		if(se_email){
			var oOption = document.createElement("OPTION");
			oOption.text = new_mail;
			oOption.value = new_mail;
			oOption.selected = true;
			se_email.options.add(oOption);
		}
	}
}

function conta_caratteri(){
	var max_len = 500;
	var ta = document.getElementById("textarea");
	if(ta){
		var txt = new String(ta.value);
		if(txt.length > max_len){
			alert("Impossibile inserire più di " + max_len + " caratteri\nIl testo del quesito potrebbe essere incompleto");
			ta.value = txt.substr(0, max_len);
		}
		var lbl = document.getElementById("lbl_n_chr");
		if(lbl){
			txt = ta.value;
			lbl.innerHTML = max_len - txt.length;
		}
	}
}

function DoPaginate(page){
	var form = document.getElementById("frm");
	if(!form)
		return;
	var edPage = document.getElementById("page");
	if(!edPage)
		return;
	edPage.value = page;
	form.submit();
}

var currentSize = 100;
function setFontSize(increment){
	currentSize += (increment * 10);
	if(currentSize <=70){
		currentSize += 10;
	}
	$('testoDoc').style.fontSize = currentSize + "%";
	$('estremiDoc').style.fontSize = currentSize + "%";
}

function setFontSize2(increment){
	currentSize += (increment * 10);
	if(currentSize <=70){
		currentSize += 10;
	}
	$('body').style.fontSize = currentSize + "%";
	$('estremi').style.fontSize = currentSize + "%";
}


function checkForm2()
{
	if (!$('parole').value)
	{
		alert("E' obbligatorio inserire una parola!");
        $('parole').focus();
        return false;
	}	
	return true;
}

function easySearch(sez,page)
{
	var url = baseurl + 'easySearch.php';
	var pars = 'sezione=' + sez + '&page=' + page;
	pageToSwitch = 0;
	updateContent(url, pars);
}

function searchAvanzata(sez,page)
{
	var url = baseurl + 'getResultSearch.php';
	var pars = 'sez=' + sez + '&page=' + page;
	pageToSwitch = 0;
	updateContent(url, pars);
}