
/* Merged Plone Javascript file
 * This file is dynamically assembled from separate parts.
 * Some of these parts have 3rd party licenses or copyright information attached
 * Such information is valid for that section,
 * not for the entire composite file
 * originating files are separated by - filename.js -
 */

/* - orderablereference.js - */
// http://www.officinaedizioni.it/portal_javascripts/orderablereference.js?original=1
function oref_top(obj){obj=(typeof obj=="string")?document.getElementById(obj):obj;if(obj.tagName.toLowerCase()!="select"&&obj.length<2)
return false;var elements=new Array();for(var i=0;i<obj.length;i++){if(obj[i].selected){elements[elements.length]=new Array((document.body.innerHTML?obj[i].innerHTML:obj[i].text),obj[i].value,obj[i].style.color,obj[i].style.backgroundColor,obj[i].className,obj[i].id,obj[i].selected)}}
for(i=0;i<obj.length;i++){if(!obj[i].selected){elements[elements.length]=new Array((document.body.innerHTML?obj[i].innerHTML:obj[i].text),obj[i].value,obj[i].style.color,obj[i].style.backgroundColor,obj[i].className,obj[i].id,obj[i].selected)}}
for(i=0;i<obj.length;i++){if(document.body.innerHTML) obj[i].innerHTML=elements[i][0];else obj[i].text=elements[i][0];obj[i].value=elements[i][1];obj[i].style.color=elements[i][2];obj[i].style.backgroundColor=elements[i][3];obj[i].className=elements[i][4];obj[i].id=elements[i][5];obj[i].selected=elements[i][6]}}
function oref_bottom(obj){obj=(typeof obj=="string")?document.getElementById(obj):obj;if(obj.tagName.toLowerCase()!="select"&&obj.length<2)
return false;var elements=new Array();for(var i=0;i<obj.length;i++){if(!obj[i].selected){elements[elements.length]=new Array((document.body.innerHTML?obj[i].innerHTML:obj[i].text),obj[i].value,obj[i].style.color,obj[i].style.backgroundColor,obj[i].className,obj[i].id,obj[i].selected)}}
for(i=0;i<obj.length;i++){if(obj[i].selected){elements[elements.length]=new Array((document.body.innerHTML?obj[i].innerHTML:obj[i].text),obj[i].value,obj[i].style.color,obj[i].style.backgroundColor,obj[i].className,obj[i].id,obj[i].selected)}}
for(i=obj.length-1;i>-1;i--){if(document.body.innerHTML) obj[i].innerHTML=elements[i][0];else obj[i].text=elements[i][0];obj[i].value=elements[i][1];obj[i].style.color=elements[i][2];obj[i].style.backgroundColor=elements[i][3];obj[i].className=elements[i][4];obj[i].id=elements[i][5];obj[i].selected=elements[i][6]}}
function oref_up(obj){var obj_string=obj;obj=(typeof obj=="string")?document.getElementById(obj):obj;if(obj.tagName.toLowerCase()!="select"&&obj.length<2)
return false;var sel=new Array();for(var i=0;i<obj.length;i++){if(obj[i].selected==true){sel[sel.length]=i}}
for(i in sel){if(sel[i]!=0){if(obj[sel[i]-1]){if(!obj[sel[i]-1].selected){var tmp=new Array((document.body.innerHTML?obj[sel[i]-1].innerHTML:obj[sel[i]-1].text),obj[sel[i]-1].value,obj[sel[i]-1].style.color,obj[sel[i]-1].style.backgroundColor,obj[sel[i]-1].className,obj[sel[i]-1].id);if(document.body.innerHTML) obj[sel[i]-1].innerHTML=obj[sel[i]].innerHTML;else obj[sel[i]-1].text=obj[sel[i]].text;obj[sel[i]-1].value=obj[sel[i]].value;obj[sel[i]-1].style.color=obj[sel[i]].style.color;obj[sel[i]-1].style.backgroundColor=obj[sel[i]].style.backgroundColor;obj[sel[i]-1].className=obj[sel[i]].className;obj[sel[i]-1].id=obj[sel[i]].id;if(document.body.innerHTML) obj[sel[i]].innerHTML=tmp[0];else obj[sel[i]].text=tmp[0];obj[sel[i]].value=tmp[1];obj[sel[i]].style.color=tmp[2];obj[sel[i]].style.backgroundColor=tmp[3];obj[sel[i]].className=tmp[4];obj[sel[i]].id=tmp[5];obj[sel[i]-1].selected=true;obj[sel[i]].selected=false}}}}
inout_selectAllWords(obj_string)}
function oref_down(obj){var obj_string=obj;obj=(typeof obj=="string")?document.getElementById(obj):obj;if(obj.tagName.toLowerCase()!="select"&&obj.length<2)
return false;var sel=new Array();for(var i=obj.length-1;i>-1;i--){if(obj[i].selected==true){sel[sel.length]=i}}
for(i in sel){if(sel[i]!=obj.length-1){if(obj[sel[i]+1]){if(!obj[sel[i]+1].selected){var tmp=new Array((document.body.innerHTML?obj[sel[i]+1].innerHTML:obj[sel[i]+1].text),obj[sel[i]+1].value,obj[sel[i]+1].style.color,obj[sel[i]+1].style.backgroundColor,obj[sel[i]+1].className,obj[sel[i]+1].id);if(document.body.innerHTML) obj[sel[i]+1].innerHTML=obj[sel[i]].innerHTML;else obj[sel[i]+1].text=obj[sel[i]].text;obj[sel[i]+1].value=obj[sel[i]].value;obj[sel[i]+1].style.color=obj[sel[i]].style.color;obj[sel[i]+1].style.backgroundColor=obj[sel[i]].style.backgroundColor;obj[sel[i]+1].className=obj[sel[i]].className;obj[sel[i]+1].id=obj[sel[i]].id;if(document.body.innerHTML) obj[sel[i]].innerHTML=tmp[0];else obj[sel[i]].text=tmp[0];obj[sel[i]].value=tmp[1];obj[sel[i]].style.color=tmp[2];obj[sel[i]].style.backgroundColor=tmp[3];obj[sel[i]].className=tmp[4];obj[sel[i]].id=tmp[5];obj[sel[i]+1].selected=true;obj[sel[i]].selected=false}}}}
inout_selectAllWords(obj_string)}
function inout_selectAllWords(theList){myList=document.getElementById(theList);for(var x=0;x<myList.length;x++){myList[x].selected="selected"}}
function inout_addNewKeyword(toList,newText,newValue){theToList=document.getElementById(toList);for(var x=0;x<theToList.length;x++){if(theToList[x].text==newText){return false}}
theLength=theToList.length;theToList[theLength]=new Option(newText);theToList[theLength].value=newValue}
function inout_moveKeywords(fromList,toList,selectThese){theFromList=document.getElementById(fromList);for(var x=0;x<theFromList.length;x++){if(theFromList[x].selected){inout_addNewKeyword(toList,theFromList[x].text,theFromList[x].value)}}
theToList=document.getElementById(fromList);for(var x=theToList.length-1;x>=0 ;x--){if(theToList[x].selected){theToList[x]=null}}
inout_selectAllWords(selectThese)}


/* - plonesaurus.js - */
// http://www.officinaedizioni.it/portal_javascripts/plonesaurus.js?original=1
var req;
function loadXMLDoc(url){req=new XMLHttpRequest();if(req){req.onreadystatechange=processReqChange;req.open("GET",url,true);req.send("")}}
function processReqChange(){if(req.readyState==4){if(req.status==200){text=req.responseText;alert(text)} else{alert("There was a problem retrieving the XML data:\n"+req.statusText)}}}
var ps_req;
function ps_node_update(control,base_url,id,cmd){ps_req=new XMLHttpRequest();if(ps_req){ps_req.onreadystatechange=function(){if(ps_req.readyState==4){if(ps_req.status==200){text=ps_req.responseText;node=document.getElementById(id);if(node){if(node.parentNode.id=='ps_tree_root')
node=node.parentNode;node.innerHTML=text}} else{alert("There was a problem retrieving the XML data from "+url+":\n"+ps_req.statusText)}}}
var random=Math.random();random=parseInt(random*10000);random='&random='+random.toString();var url=base_url+'/ps_taxonomy_operation?uid='+id+'&cmd='+cmd+'&requester=client'
url=url+random;if((cmd=='set_selection')||(cmd=='unset_selection')){var terms=control.form.elements['term_uids:list'];if(isNaN(terms.length)) terms=[terms]
var checked_terms=''
for(j=0;j<terms.length;j++)
if(terms[j].checked)
checked_terms+='&term_uids:list='+terms[j].value;if(checked_terms)
url+=checked_terms;else{alert('No domains have been checked.');return false}}
if(cmd=='set_selection_from_search'){var terms=control.form.elements['domain_uids:list'];if(isNaN(terms.length)) terms=[terms]
var checked_terms=''
for(j=0;j<terms.length;j++)
if(terms[j].checked)
checked_terms+='&term_uids:list='+terms[j].value;if(checked_terms)
url+=checked_terms;else{alert('No domains have been checked in search results.');return false}}
node=document.getElementById(id);if(!node)
alert('Not found element with id '+id);ps_req.open("GET",url,true);ps_req.send("")}}
function verificaRank(f){var err_msg='Manual ranks must have a real value in the range 0.1 to 1.0';if(isNaN(f.value)){alert(err_msg);f.focus()}
var valore=parseFloat(f.value);if((valore<0.1)||(valore>1.0)){alert(err_msg);f.focus()}}
function calcolaRank(f,s){if(isNaN(f.value))
f.value=0.5
var valore=parseFloat(f.value);if((valore<0.1)||(valore>1.0))
f.value=0.5
if((valore>=0.1)&&(valore<=1.0)){if(s=='piu')
valore=valore+0.1;else if(s=='meno')
valore=valore-0.1;if(valore>1.0)
valore=1.0;else if(valore<0.1)
valore=0.1;f.value=parseFloat(parseInt((valore)*1000+0.5)/1000)}}
function test_annotate_selection(control){var radio=control.form.elements['domains_input'];var selection=null;for(j=0;j<radio.length;j++)
if(radio[j].checked)
selection=radio[j].value;if(selection=='cbox_selection'){var terms=control.form.elements['domain_uids:list'];if(terms==undefined){alert('No domains have been found.');return false}
if(isNaN(terms.length)) terms=[terms]
var n=0;for(j=0;j<terms.length;j++)
if(terms[j].checked)++n;if(n==0){alert('No domains have been selected.');return false}}
else if(selection=='taxonomy_checked')
return ps_save_checkbox_selection(control,'checked_nodes');return true}
function ps_save_checkbox_selection(control,dest_name){var dest_form=control.form;var dest_element=dest_form.elements[dest_name];var dest_value='';var taxo_form=document.ps_taxo_form;var terms=taxo_form.elements['term_uids:list'];var n=0;for(j=0;j<terms.length;j++){if(terms[j].checked){if(n>0) dest_value+=',';dest_value+=terms[j].value;++n}}
dest_element.value=dest_value;if(n==0){alert('No domains have been checked.');return false}
return true}
function set_select(select,value){options=select.options;n_options=options.length;for(i=0;i<n_options;i++){option=options[i];if(option.value==value){option.selected=true}
else{option.selected=false}}}
function term_cmd(cmd,uid,url){form=document.psterm_form;form.cmd.value=cmd;form.uid.value=uid;form.action=url}
function term_select_view(uid,url){term_cmd('select',uid,url)}
function term_select(uid,url,template){term_cmd('select',uid,url)}
function term_cut(control,uid){control.form.cmd.value='cut';control.form.uid.value=uid;control.form.submit()}
function term_paste(control,uid){control.form.cmd.value='paste';control.form.uid.value=uid;control.form.submit()}


/* - ajax_client.js - */
// http://www.officinaedizioni.it/portal_javascripts/ajax_client.js?original=1
var req;
function loadXMLDoc(url){req=new XMLHttpRequest();if(req){req.onreadystatechange=processReqChange;req.open("GET",url,true);req.send("")}}
function processReqChange(){if(req.readyState==4){if(req.status==200){text=req.responseText;alert(text)} else{alert("There was a problem retrieving the XML data:\n"+req.statusText)}}}

/* - table_sorter.js - */
// http://www.officinaedizioni.it/portal_javascripts/table_sorter.js?original=1
function compare(a,b){au=new String(a);bu=new String(b);if(au.charAt(4)!='-'&&au.charAt(7)!='-'){var an=parseFloat(au)
var bn=parseFloat(bu)}
if(isNaN(an)||isNaN(bn)){as=au.toLowerCase()
bs=bu.toLowerCase()
if(as>bs){return 1}
else{return-1}}
else{return an-bn}}
function getConcatenedTextContent(node){var _result="";if(node==null){return _result}
var childrens=node.childNodes;var i=0;while(i<childrens.length){var child=childrens.item(i);switch(child.nodeType){case 1:case 5:_result+=getConcatenedTextContent(child);break;case 3:case 2:case 4:_result+=child.nodeValue;break;case 6:case 7:case 8:case 9:case 10:case 11:case 12:break}
i++}
return _result}
function sort(e){var el=window.event?window.event.srcElement:e.currentTarget;var a=new Array();if(el.nodeName=='IMG') el=el.parentNode;var name=el.childNodes.item(1).nodeValue;var dad=el.parentNode;var node;for(var im=0;(node=dad.getElementsByTagName("th").item(im));im++){if(node.lastChild.nodeName=='IMG'){lastindex=node.getElementsByTagName('img').length-1;node.getElementsByTagName('img').item(lastindex).setAttribute('src',portal_url+'/arrowBlank.gif')}}
for(var i=0;(node=dad.getElementsByTagName("th").item(i));i++){var xre=new RegExp(/\bnosort\b/);if(!xre.exec(node.className)&&node.childNodes.item(1).nodeValue==name){lastindex=node.getElementsByTagName('img').length-1;node.getElementsByTagName('img').item(lastindex).setAttribute('src',portal_url+'/arrowUp.gif');break}}
var tbody=dad.parentNode.parentNode.getElementsByTagName("tbody").item(0);for(var j=0;(node=tbody.getElementsByTagName("tr").item(j));j++){a[j]=new Array();a[j][0]=getConcatenedTextContent(node.getElementsByTagName("td").item(i));a[j][1]=getConcatenedTextContent(node.getElementsByTagName("td").item(1));a[j][2]=getConcatenedTextContent(node.getElementsByTagName("td").item(0));a[j][3]=node}
if(a.length>1){a.sort(compare);if(a[0][0]==getConcatenedTextContent(tbody.getElementsByTagName("tr").item(0).getElementsByTagName("td").item(i))&&a[1][0]==getConcatenedTextContent(tbody.getElementsByTagName("tr").item(1).getElementsByTagName("td").item(i))){a.reverse();lastindex=el.getElementsByTagName('img').length-1;el.getElementsByTagName('img').item(lastindex).setAttribute('src',portal_url+'/arrowDown.gif')}}
for(var j=0;j<a.length;j++){a[j][3].className=((j%2)==0)?'odd':'even';tbody.appendChild(a[j][3])}}
function initalizeTableSort(e){if(!W3CDOM){return false};var tbls=document.getElementsByTagName('table');for(var t=0;t<tbls.length;t++){var re=new RegExp(/\bbrowsing\b|\blisting\b/)
var xre=new RegExp(/\bnosort\b/)
if(re.exec(tbls[t].className)&&!xre.exec(tbls[t].className)){try{var thead=tbls[t].getElementsByTagName("thead").item(0);var node;blankarrow=document.createElement('img');blankarrow.setAttribute('src',portal_url+'/arrowBlank.gif');blankarrow.setAttribute('height',6);blankarrow.setAttribute('width',9);initialsort=false;for(var i=0;(node=thead.getElementsByTagName("th").item(i));i++){if(!xre.exec(node.className)){node.insertBefore(blankarrow.cloneNode(1),node.firstChild);node.style.cursor='pointer';if(!initialsort){initialsort=true;uparrow=document.createElement('img');uparrow.setAttribute('src',portal_url+'/arrowUp.gif');uparrow.setAttribute('height',6);uparrow.setAttribute('width',9);node.appendChild(uparrow)} else{node.appendChild(blankarrow.cloneNode(1))}
if(node.addEventListener) node.addEventListener("click",sort,false);else if(node.attachEvent) node.attachEvent("onclick",sort)}}} catch(er){}}}}
registerPloneFunction(initalizeTableSort)

