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

/* - niftyCorners.js - */
// http://old.linux.co.uk/portal_javascripts/niftyCorners.js?original=1
function NiftyCheck(){if(!document.getElementById||!document.createElement)
return(false);isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);if(Array.prototype.push==null){Array.prototype.push=function(){this[this.length]=arguments[0];return(this.length)}}
return(true)}
function Rounded(selector,wich,bk,color,opt){var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false;if(color=="transparent"){cn=cn+"x";ecolor=bk;bk="transparent"}
else if(opt&&opt.indexOf("border")>=0){var optar=opt.split(" ");for(i=0;i<optar.length;i++)
if(optar[i].indexOf("#")>=0) ecolor=optar[i];if(ecolor=="") ecolor="#666";cn+="e";edges=true}
else if(opt&&opt.indexOf("smooth")>=0){cn+="a";ecolor=Mix(bk,color)}
if(opt&&opt.indexOf("small")>=0) cn+="s";prefixt=cn;prefixb=cn;if(wich.indexOf("all")>=0){t=true;b=true}
else if(wich.indexOf("top")>=0) t="true";else if(wich.indexOf("tl")>=0){t="true";if(wich.indexOf("tr")<0) prefixt+="l"}
else if(wich.indexOf("tr")>=0){t="true";prefixt+="r"}
if(wich.indexOf("bottom")>=0) b=true;else if(wich.indexOf("bl")>=0){b="true";if(wich.indexOf("br")<0) prefixb+="l"}
else if(wich.indexOf("br")>=0){b="true";prefixb+="r"}
var v=getElementsBySelector(selector);var l=v.length;for(i=0;i<l;i++){if(edges) AddBorder(v[i],ecolor);if(t) AddTop(v[i],bk,color,ecolor,prefixt);if(b) AddBottom(v[i],bk,color,ecolor,prefixb)}}
function AddBorder(el,bc){var i;if(!el.passed){if(el.childNodes.length==1&&el.childNodes[0].nodeType==3){var t=el.firstChild.nodeValue;el.removeChild(el.lastChild);var d=CreateEl("span");d.style.display="block";d.appendChild(document.createTextNode(t));el.appendChild(d)}
for(i=0;i<el.childNodes.length;i++){if(el.childNodes[i].nodeType==1){el.childNodes[i].style.borderLeft="1px solid "+bc;el.childNodes[i].style.borderRight="1px solid "+bc}}}
el.passed=true}
function AddTop(el,bk,color,bc,cn){var i,lim=4,d=CreateEl("b");if(cn.indexOf("s")>=0) lim=2;if(bc) d.className="artop";else d.className="rtop";d.style.backgroundColor=bk;for(i=1;i<=lim;i++){var x=CreateEl("b");x.className=cn+i;x.style.backgroundColor=color;if(bc) x.style.borderColor=bc;d.appendChild(x)}
el.style.paddingTop=0;el.insertBefore(d,el.firstChild)}
function AddBottom(el,bk,color,bc,cn){var i,lim=4,d=CreateEl("b");if(cn.indexOf("s")>=0) lim=2;if(bc) d.className="artop";else d.className="rtop";d.style.backgroundColor=bk;for(i=lim;i>0;i--){var x=CreateEl("b");x.className=cn+i;x.style.backgroundColor=color;if(bc) x.style.borderColor=bc;d.appendChild(x)}
el.style.paddingBottom=0;el.appendChild(d)}
function CreateEl(x){if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));else return(document.createElement(x))}
function getElementsBySelector(selector,parentlist){var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];if(parentlist==null) parentlist=[document];if(parentlist.length==0) return [];blankspace_pos=selector.indexOf(" ")
if(blankspace_pos>0){parent_selector=selector.substring(0,blankspace_pos);sub_selector=selector.substring(blankspace_pos+1);parentlist=getElementsBySelector(parent_selector,parentlist);return getElementsBySelector(sub_selector,parentlist)}
if(selector.indexOf("#")>=0){s=selector.split("#");tag=s[0];selid=s[1]}
if(selid!=""){f=document.getElementById(selid);if(f) objlist.push(f);return(objlist)}
if(selector.indexOf(".")>0){s=selector.split(".");tag=s[0];selclass=s[1]}
for(pi=0;pi<parentlist.length;pi++){var v=parentlist[pi].getElementsByTagName(tag);if(selclass=="")
return(v);for(i=0;i<v.length;i++){if(v[i].className.indexOf(selclass)>=0){objlist.push(v[i])}}}
return(objlist)}
function Mix(c1,c2){var i,step1,step2,x,y,r=new Array(3);if(c1.length==4)step1=1;else step1=2;if(c2.length==4) step2=1;else step2=2;for(i=0;i<3;i++){x=parseInt(c1.substr(1+step1*i,step1),16);if(step1==1) x=16*x+x;y=parseInt(c2.substr(1+step2*i,step2),16);if(step2==1) y=16*y+y;r[i]=Math.floor((x*50+y*50)/100)}
return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16))}


/* - niftyPloneCorners.js - */
// http://old.linux.co.uk/portal_javascripts/niftyPloneCorners.js?original=1
function roundFromCSV(){if(!NiftyCheck())
return;Rounded("ul#portal-globalnav li.selected","all","White","#fbd521","small");Rounded("ul#portal-globalnav li.plain","all","White","#fbd521","small");Rounded("#portal-column-one dl.portlet","all","White","#fbd521");Rounded("#portal-column-two dl.portlet","all","White","#fbd521");Rounded("#content div.roundedPortletWrapper","all","White","#fbd521");Rounded("#content div.boxPortletWrapper","all","White","#fbd521","small");Rounded("div.tutorialAbout","all","White","#fbd521");Rounded("dl.portletThirdWidth","all","White","#fbd521");Rounded("dl.visualNoPrint","all","White","#fbd521");Rounded("div.button","all","White","#fbd521","small")}
registerPloneFunction(roundFromCSV)


/* - smartprint.js - */
// http://old.linux.co.uk/portal_javascripts/smartprint.js?original=1
var in_progres=false;var $j=jQuery.noConflict();
function cleanupContent(node){var arr=node.getElementsByTagName('div');for(var i=0;i<arr.length;i++){var classname=arr[i].className;if(classname.indexOf('documentActions')!=-1||classname.indexOf('documentByLine')!=-1){arr[i].parentNode.removeChild(arr[i])}}
var arr=node.getElementsByTagName('p');for(var i=0;i<arr.length;i++){if(arr[i].id=='link-presentation'){arr[i].parentNode.removeChild(arr[i])}}
var arr=node.getElementsByTagName('div');for(var i=0;i<arr.length;i++){if(arr[i].id=='smartprint'){arr[i].parentNode.removeChild(arr[i])}}}
function getContentElement(){var el=$j('#content');if(!el[0])
el=$j('#region-content');if(!el[0])
alert('No DOM node with id "region-content" or "content" found');return el}
function openControl(){if(!$j('#smartprint')[0]){var divContent=getContentElement().clone(true);if(!divContent){alert('Error: the element with id=content could not be found!');return}
var newdiv=document.createElement('div');newdiv.id='smartprint';getContentElement().append(newdiv)} else{if(in_progres){alert('Conversion in progres...please wait');return}
closeControl()}}
function closeControl(){$j('#smartprint').remove()}
function showResponse(request){if($j('#smartprint'))
$j('#smartprint')[0].innerHTML=request.responseText}
function smartPrintSelection(url,template){openControl();var url=url+'/'+template;var r=$j.ajax({url:url,type:'GET',complete:showResponse})}
function startConversion(url){var divContent=getContentElement().clone(true);if(!divContent){alert('Error: the element with id=content could not be found!');return}
divContent=divContent[0]
cleanupContent(divContent);$j('#smartprint-html')[0].value=divContent.innerHTML
var postBody=$j('#smartprint-selection-form').serialize();in_progres=true;var r=$j.ajax({url:url+'/sp_progres',type:'GET',asynchronous:false,complete:showResponse});var r2=$j.ajax({url:url+'/smartPrintConvert',type:'POST',asynchronous:true,data:postBody,requestHeaders:['content-type','application/x-www-form-urlencoded'],complete: function(request){in_progres=false;closeControl();if(request.status==200){var filename=request.responseText;document.location=url+'/smartPrintDeliver?filename='+encodeURIComponent(filename)} else{var status=request.status;alert('Conversion failed (Error code: '+status+')')}},onFailure: function(request){in_progres=false;var status=request.status;alert('Conversion failed (Error code: '+status+')');closeControl()}})}


