// JavaScript Document

var sections;
var pdfPrefix = "081212_Bilancio italiano_FN ";
function assegnaXMLHttpRequest() 
{ 
   var XHRequest = null, 
   browserUtente = navigator.userAgent.toUpperCase(); 
   if ( typeof(XMLHttpRequest)==="function" || typeof(XMLHttpRequest)==="object" ) 
      XHRequest = new XMLHttpRequest(); 
   else 
      if ( window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) 
      { 
         if(browserUtente.indexOf("MSIE 5") < 0) 
            XHRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
         else 
            XHRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
   return XHRequest; 
} 

function pdfGotoNextSection(){
	//alert(sessionPage);
	//console.dir(sections);
	var i = 0;
	var nextPage=88;
	for (i=0; i<sections.length;i++){
	//console.log("NextPage is " + nextPage + ", trying " + sections[i].page)
		if ((sections[i].page*1 > (sessionPage+1)*1)){
		//console.log ("sections[i].page > sessionPage+1: " + sections[i].page + ">" + sessionPage+1);
			if ((sections[i].page*1 < nextPage*1)){
			//console.log("sections[i].page < nextPage:" + sections[i].page + "<" +  nextPage);
				nextPage = sections[i].page;
			//	console.log("Now next page is " + nextPage);
			} else {
			//	console.log("sections[i].page > nextPage! " + sections[i].page + ">" + nextPage)
			}
			
		}
	}
	
	//console.log("nextpage is " + nextPage);
	if (nextPage != 88){
		loadPage("pdfContainer",'pdf/page.php?p='+nextPage);
		setPage(nextPage);
	}
}
      function isIE()
      {
   
      return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
   
      }


function pdfGotoPrevSection(){
	//console.dir(sections);
	var i = 0;
	var nextPage=0;
	for (i=0; i<sections.length;i++){
		if ((sections[i].page*1) < (sessionPage+1)*1 && (sections[i].page*1 > nextPage)){
			nextPage = sections[i].page;
		}
	}
	
	//console.log("nextpage is " + nextPage);
	if (nextPage != 0){
		loadPage("pdfContainer",'pdf/page.php?p='+nextPage);
		setPage(nextPage);
	}
}
function toggleTreeNode(domElm,sign,isLeaf){
	var i;
	//domElm.style.fontWeight="bold";
	console.dir(openBranches);
	
	console.log("we have " + window.openBranches.length + " branches open");
	if (window.openBranches.length>0) console.log (window.openBranches[0].node + "\n" + window.openBranches[0].sign);
	var numBranches = window.openBranches.length;
	for (var j=0; j<numBranches;j++){
	
		if (window.openBranches[j] && !isAncestor(domElm,window.openBranches[j].node)){
		try{
			for (var i=0; i<window.openBranches[j].node.childNodes.length; i++){
				if (window.openBranches[j].node.childNodes[i].tagName.toUpperCase() == "UL"){
					
					if (window.openBranches[j].node.childNodes[i].style.display != "block"){
						//window.openBranches[j].node.childNodes[i].style.display="block";
						//console.log("showing element");
					} 
					else {
						window.openBranches[j].node.childNodes[i].style.display="none";
						console.log("closing branch");
						window.openBranches[j].sign.src = "images/plus.gif";
						
						window.openBranches.splice(j,1);
						break;
					} 
					
						
					
				} 
			}
		} catch (err){
			console.log("J is " + j);
		}
			
		}
	}
	var tmp = new Object();
	tmp.node = domElm;
	tmp.sign = sign;
	window.openBranches.push(tmp);
	
	
	for (var i=0; i<domElm.childNodes.length; i++){
		if (domElm.childNodes[i].tagName.toUpperCase() == "UL"){
			if (domElm.childNodes[i].style.display != "block") domElm.childNodes[i].style.display="block";
			else domElm.childNodes[i].style.display="none";			
			var img = sign.src.substring(sign.src.length-8,sign.src.length);
			//alert(img);
			if (img == "plus.gif") sign.src = "images/minus.gif";
			else sign.src = "images/plus.gif";
		}
	}
}


function pdfLookUp(domElm, text){
	//loadPage(domElm,'pdf/search.php?p='+text);
	//alert("domElem: " + domElm + "\ntext: " +text);
	domElm.innerHTML ="";
	loadPage("pdfContainer", "pdf/search.php?query="+text+lang());
}
function isAncestor(nodeSon,nodeUnknown){
	if (nodeSon == nodeUnknown) return true;
	var node = nodeSon;
	var isParent = false;
	while (node = node.parentNode){
		if (node == nodeUnknown){
			isParent = true;
		}
	}
	return isParent;
}
function drawMenu(domElm, jsonData){
	var i=0;
	var li = document.createElement("li");
	domElm.appendChild(li);
	
		if (jsonData && jsonData.name && jsonData.page){
			var tmp = new Object();
			tmp.name = jsonData.name;
			tmp.page = jsonData.page;
			
			if (tmp.page >0) {
				sections.push(tmp);
				console.log("pushing page "  + jsonData.page + " with title " + jsonData.name);
			}
			
			
			//console.dir (sections);
//			li.innerHTML = "<a href='#'>" + jsonData.name+"(" + jsonData + ")</a>";
			var a = document.createElement("a");
			var count = 0;
			var img = document.createElement("img");
			img.src = "images/plus.gif";
			img.style.margin=0;
			img.style.padding=0;
			
			
			var table 	= document.createElement("table");
			table.cellspacing=0;
			table.cellpadding=0;
			var tbody 	= document.createElement("tbody");
			var tr 		= document.createElement("tr");
			var td1 	= document.createElement("td");
			var td2 	= document.createElement("td");
			
			tr.appendChild(td1);
			tr.appendChild(td2);
			tbody.appendChild(tr);
			table.appendChild(tbody);
			table.width="100%";
			
			li.appendChild(table);
			
				var plus = document.createElement("a");
				
				plus.appendChild(img);
				//plus.style.margin=0;
				//plus.style.padding=0;
				plus.href='#';
				plus.onclick = function(){toggleTreeNode(li,img)}
				
				if (jsonData.sons){
					td1.appendChild(plus);
				} else {
					var txt = document.createElement("span");
					txt.innerHTML = "&nbsp;";
					td1.appendChild(txt);
				}
				if (isIE()){
					//table.style.position="relative";
					//table.style.top = "-12px";
					//a.style.position="relative";
					//a.style.top="-5px";
				}
				td1.style.width="10px";
				td1.style.padding="5px";
				plus.style['vertical-align']="top";
				li.style['list-style-type'] = "disk";
				//plus.style.top="-20px";
				//plus.style.position="relative";
				//plus.style.top="40px";
			a.href='#';
			a.className="pdfMenuA";
			a.innerHTML = jsonData.name;
			
			if(jsonData.page==0) {		
				a.onclick = function() { 
					toggleTreeNode(li, img)
				}
			} else if(jsonData.page==89) {
				a.onclick = function() {
					window.open('pdf/pdfs/it/bilancio-consolidato.pdf'); 
					}
			} else {
				a.onclick = function() { 
					loadPage('pdfContainer','pdf/page.php?p=' + jsonData.page);
					a.style.fontWeight = "bold";
					if (window.currentPage) {currentPage.style.fontWeight="normal";}
					window.currentPage = a;
					a.style.fontWeight="bold";
					drawgraphMenu(jsonData.page); setPage(jsonData.page); 
					return false; 
				}		
			}
			
			//alert("domElm: " + domElm + "\nli: " + li + "\nli.innerHTML: " + li.innerHTML);
			
			td2.appendChild(a);
			//alert(li.innerHTML);
			//alert("domElm: " + domElm + "\nli: " + li + "\nli.innerHTML: " + li.innerHTML);
		}
		if (jsonData && jsonData.sons){
			//alert(jsonData.name + " has " + jsonData.sons.length + " sons");
			var ul = document.createElement("ul");
			li.appendChild(ul);
			for (i=0;i<jsonData.sons.length;i++){
				
				drawMenu(ul,jsonData.sons[i]);
				//console.dir(sections);
			}
		}
}
function setPage(page){
	window.sessionPage=page-1;
	var sel = document.getElementById("pageSelector");
	sel.options[window.sessionPage].selected=true;
	//alert(document.getElementById("pdfCurrentFileLink"));
	//document.getElementById("pdfCurrentFileLink").href = "pdf/pdfs/"+page+".pdf";
}
	function drawgraphMenu(pageNum){
	var graphMenuContainer = document.getElementById("graphMenuContainer");
	graphMenuContainer.innerHTML ="";
		if (window.pdfPagesWithGraph){
			if (window.pdfPagesWithGraph[pageNum]){
				var i = 0;
				var graphs = window.pdfPagesWithGraph[pageNum];
				
				
				for (j=0; j< graphs.length; j++){					i=graphs.length-j-1;
					//console.dir(graphs[i]);					
					var a = document.createElement("a");
					var img = document.createElement("img");
					img.src = "images/bilancioNavbar/xlsInv.gif";
					img.style.width="30px";
					img.style.height="30px";
					img.title = graphs[i].name;
					a.appendChild(img);
					//a.innerHTML = graphs[i].name;
					a.href = graphs[i].url;
					a.className="pdfXlsFloat";
					a.target="_blank";
					graphMenuContainer.appendChild(a);
					//graphMenuContainer.appendChild(document.createElement("br"));
					//alert ("graph named " + graphs[i].name + " at url: " + graphs[i].url);
				}
				var graph;
				
			}
		}
	}
function getGraphs(){
	var xlsButton = document.getElementById("pdfXls");
	var ajax = assegnaXMLHttpRequest();
	if(ajax){
		ajax.open("get", "pdf/graphs_it.txt",true);
		ajax.setRequestHeader("connection", "close"); 
		
		var json;
		ajax.onreadystatechange = function(){
         if(ajax.readyState == 4) 
         { 
            if(ajax.statusText === "OK") 
			{
				//alert (ajax.responseText);
				var json = eval('(' + ajax.responseText + ')');
				window.pdfPagesWithGraph = json.pages;
				//alert(window.pdfPagesWithGraph.pippo);
				//console.dir(window.pdfPagesWithGraph);
				
			}
            else 
            { 
               domElm.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />"; 
               domElm.innerHTML += "Errore riscontrato: " + ajax.statusText; 
            } 
         } 
      } 
      ajax.send(null); 
      return true ; 
	}
}
function getMenu(){
	var domElm = document.getElementById("pdfMenuContainer");
	var ajax = assegnaXMLHttpRequest();
	sections= new Array();
	if(ajax){
	ajax.open("get", "pdf/"+balanceIntMenu,true);
	ajax.setRequestHeader("connection", "close"); 
	domElm.innerHTML = "Loading chapters..";
	//alert(domElm);
	var json;
	ajax.onreadystatechange = function() 
      { 
         if(ajax.readyState == 4) 
         { 
            if(ajax.statusText === "OK") 
			{
				json = eval('(' + ajax.responseText + ')'); 
				//console.dir(json);
				//domElm.innerHTML ="json found";
				domElm.innerHTML ="";
				var i = 0;
//				domElm.innerHTML += json.page.sons[i].name;	
				var ul = document.createElement("ul");
				domElm.appendChild(ul);
				drawMenu(ul, json.page);
				//console.dir(sections);
				
				//obj.innerHTML = ajax.responseText; 
			}
            else 
            { 
               domElm.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />"; 
               domElm.innerHTML += "Errore riscontrato: " + ajax.statusText; 
            } 
         } 
      } 
      ajax.send(null); 
      return true ; 
	}
}
/**
 *	@param domElem the DOM element we are going to append the response
 *  @param name should be the page url
 */
 
 function lang(){
 	return "";
 }
function loadPage(domElem,name) 
{ 
   var ajax = assegnaXMLHttpRequest(); 
  // alert("domElem: " + domElem + ";\nname: " + name);
   var obj = document.getElementById(domElem); 
   if(ajax) { 
   
      ajax.open("get", name+lang(), true); 
      ajax.setRequestHeader("connection", "close"); 
      obj.innerHTML = "Loading..."; 
      ajax.onreadystatechange = function() 
      { 
         if(ajax.readyState == 4) 
         { 
            if(ajax.statusText === "OK") 
			{
				obj.innerHTML = ajax.responseText; 
			}
            else 
            { 
               obj.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />"; 
               obj.innerHTML += "Errore riscontrato: " + ajax.statusText; 
            } 
         } 
      } 
      ajax.send(null); 
      return true ; 
      } 
   return false ; 
}
function addPage(n) 
{ 
   var ajax = assegnaXMLHttpRequest(); 
   if(ajax) { 
      ajax.open("get", "pdf/aggiungipagina.php", true); 
      ajax.setRequestHeader("connection", "close"); 
      ajax.onreadystatechange = function() 
      { 
         if(ajax.readyState == 4) 
         { 
            if(ajax.statusText === "OK") 
			{
				if (ajax.responseText=="ok") alert("La pagina corrente e' stata aggiunta all'elenco");
				else	if (ajax.responseText=="no") alert("Non e' stato possibile aggiungere la pagina corrente all'elenco");
						else alert("La pagina corrente e' gia' presente nell'elenco ");
			}
            else 
            { 
               alert("Impossibile effettuare l'operazione richiesta.\nErrore riscontrato: " + ajax.statusText); 
            } 
         } 
      } 
      ajax.send(null); 
      return true ; 
      } 
   return false ; 
} 

function vai(n) {
					loadPage('pdfContainer','pdf/page.php?p=' + n);
					drawgraphMenu(n); setPage(n); 
}
