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

/* - ++resource++maparent.hypertext.javascripts/collatediv.js - */
// http://www.realworldsystems.net/portal_javascripts/++resource++maparent.hypertext.javascripts/collatediv.js?original=1
;(function($){var sortOrder;if(document.documentElement.compareDocumentPosition){sortOrder=function(a,b){var ret=a.compareDocumentPosition(b)&4?-1:a===b?0:1;return ret}} else if("sourceIndex" in document.documentElement){sortOrder=function(a,b){var ret=a.sourceIndex-b.sourceIndex;return ret}} else if(document.createRange){sortOrder=function(a,b){var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.selectNode(a);aRange.collapse(true);bRange.selectNode(b);bRange.collapse(true);var ret=aRange.compareBoundaryPoints(Range.START_TO_END,bRange);return ret}};
function collatedivOne(opts){return function(){var context=$(this);var specs;for(var i=0;i<opts.specs.length;i++){if(context.hasClass(opts.specs[i].startClass)){specs=opts.specs[i];break}}
if(specs==null){if(opts.debug)
alert("internal error: start class not found.");return}
context.before('<div class="'+specs.divClass+'"></div>');var div=context.prev();var endClasses=specs.endClasses;var finished=false;while(!finished){div.append(context);context=div.next();if(context.length==0)
break;for(var i=0;i<endClasses.length;i++){if(context.hasClass(endClasses[i])){div.append(context);return div}}
if(specs.allowTags.length>0&&$.inArray(el.tagName,specs.allowTags)>=0){continue}
if(specs.allowClasses.length>0){finished=true;classNames=el.className.split(' ');for(var i=0;i<specs.allowClasses.length;i++){if(context.hasClass(specs.allowClasses[i])){finished=false;break}}}}
return div}};
function compareVersions(v2){var version=$.fn.jquery.split('.');v2=v2.split('.');for(var i in version){var b=parseInt(version[i]);var c=parseInt(v2[i]);if(b!=c)
return b-c}
return 0};$.collatediv=function(options){var opts=$.extend({},$.collatediv.defaults,options);var startClasses="";for(var i=0;i<opts.specs.length;i++){if(i>0)
startClasses+=',';startClasses+="."+opts.specs[i].startClass}
function disallowAncestor(){var a=$(this).parent();while(a.length>0){for(var i=0;i<opts.exceptInsideClass.length;i++){if(a.hasClass(opts.exceptInsideClass[i]))
return false}
a=a.parent()}
return true}
var el=$(startClasses);if(sortOrder&&compareVersions("1.3.2")<0){el.setArray(el.get().sort(sortOrder))}
el.reverse().filter(disallowAncestor).each(collatedivOne(opts))};$.fn.reverse=function(){return this.setArray(this.get().reverse())};$.collatediv.version=function(){return "1.0.0"};$.collatediv.defaults={specs:[{startClass:"startStretch",divClass:"stretchText",endClasses:["endStretch"],allowTags:[],allowClasses:[]}],exceptInsideClass:["kupu"],debug:true}})(jQuery);jQuery(document).ready(jQuery.collatediv);

/* - ++resource++maparent.hypertext.javascripts/stretchtext.js - */
// http://www.realworldsystems.net/portal_javascripts/++resource++maparent.hypertext.javascripts/stretchtext.js?original=1
;(function($){
function attachStretchText(anchor,targets,opts){targets.hide();var spans=targets.filter("span");var nospans=targets.not("span");if(spans.length)
spans.each(prepareStretchText);anchor.toggle(
function(){if(spans.length)
animateFunction.call(spans,showMoreText,endShowMoreText,opts.speed);if(nospans.length)
nospans.show(opts.speed)},
function(){if(spans.length)
animateFunction.call(spans,showLessText,endShowLessText,opts.speed);if(nospans.length)
nospans.hide(opts.speed)})};jQuery.fn.stretchtext=function($,options){var opts=jQuery.extend({},jQuery.fn.stretchtext.defaults,options);$('.'+opts.stretchAnchorClass).each(
function(){var el=$(this);var target=el.nextAll("."+opts.stretchTextClass);if(target.length==0)
target=el.parent().nextAll("."+opts.stretchTextClass);if(target.length>0)
attachStretchText(el,target.eq(0),opts)})};jQuery.fn.stretchtext.version=function(){return "1.0.0"};jQuery.fn.stretchtext.defaults={stretchTextClass:"stretchText",stretchAnchorClass:"stretchAnchor",speed:"slow"};
function truncateToLength(element,l){if(element.nodeType==3){var content=element.nodeValue;if(content.length>l){element.nodeValue=content.substring(0,Math.max(0,l))}
return element.nodeValue.length} else if(element.nodeType==6){return element.nodeValue.length} else if(element.nodeType==7){return element.nodeValue.length} else if(element.nodeType==1){var sum=0;var nodes=element.childNodes;var remove=new Array();for(var i=0;i<nodes.length;i++){if(sum<l){sum+=truncateToLength(nodes[i],l-sum)} else{remove.push(nodes[i])}}
for(var i=0;i<remove.length;i++){element.removeChild(remove[i])}
return sum}
return 0};
function prepareStretchText(i){jQuery(this).after('<span class="showStretch"></span>');this.showTextSpan=jQuery(this).next()};
function showMoreText(pos,effect){stretchTextEl=this[0];text=this.text();len=text.length;pos1=Math.floor(len * pos/100);theCopy=this.clone(true);truncateToLength(theCopy[0],pos1);showTextSpan=jQuery(stretchTextEl.showTextSpan);showTextSpan.html("");showTextSpan.append(theCopy);theCopy.show()};
function endShowMoreText(){stretchTextEl=this[0];theCopy=this.clone(true);showTextSpan=jQuery(stretchTextEl.showTextSpan);showTextSpan.html("");showTextSpan.append(theCopy);theCopy.show()};
function showLessText(pos,effect){showMoreText.call(this,100-pos,effect)};
function endShowLessText(){jQuery(this[0].showTextSpan).html("")};
function animateFunction(step,complete,speed){var opt=jQuery.extend(jQuery.speed(speed),{complete:complete,step:step,curAnim:{opacity:"toggle"}});return this.each(function(){var e=new jQuery.fx(jQuery(this),opt,"opacity");e.custom(0,100,"%")})}})(jQuery);jQuery(document).ready(jQuery.fn.stretchtext);

/* - explorer.js - */
/*
jQuery portletNavigationTree plugin
	Collapsible/expandable navigation tree.
*/

(function($) {
	// Expands or collapses a node of which sub-items already have been loaded.
	function toggleNode(event){
		var twistie = $(this);
		
		// find ul element
		var ul = $(this).closest("li").children("ul");
		if (!ul) { return; }
		
		// toggle class names
		if (twistie.hasClass("showChildren")){
			ul.removeClass("hideChildren");
			twistie.removeClass("showChildren");
		} else {
			ul.addClass("hideChildren");
			twistie.addClass("showChildren");
		}
		
		// prevent default action of event
		event.preventDefault();
	}
	
	// Loads the sub-items of a node.
	function loadNode(event){
	
		// prevent default action of event
		event.preventDefault();
		
		// Find the portlet information
		var portletWrapper = $(this).closest(".portletWrapper");
		var portletHash = portletWrapper[0] ? portletWrapper[0].id.replace("portletwrapper-","") : "";
		if (!portletHash) { return; }

		// find the li element of the clicked node
		var node = $(this).closest("li");
		
		if (node.hasClass("nodeLoading")) { return; }
		
		// get node uid
		var uidClassName = node[0].className.match(/node-(\w+)/);
		var uid = uidClassName ? uidClassName[1] : null;
		if (!uid) { return; }
		
		// data to send with request
		var data = {
			portlethash : portletHash,
			uid : uid
		};
		
		// add nodeLoading class
		node.addClass("nodeLoading");
		
		// send request
		$.post("expandNode", data, function(html){
			node.replaceWith(html);
		});
	}

	// observe clicks on toggle buttons
	$(".portletNavigationTree span.toggleNode").live("click", loadNode);
	$(".portletNavigationTree span.expandedNode").live("click", toggleNode);
})(jQuery);


/* - qcomments.js - */
// http://www.realworldsystems.net/portal_javascripts/qcomments.js?original=1
function render_abuse_report_form(comment_id){jq('form.report_abuse').bind("submit", function(event){event.preventDefault()});var render_button='input#input-render-abuse-cancel-'+comment_id;jq(render_button).attr('disabled','disabled');var form='span#span-reply-form-'+comment_id;jq(form).slideToggle(500);var holder='span#span-reply-form-holder-'+comment_id;var cancel_button=holder+' input#input-report-abuse-cancel';var qq=jq(cancel_button);jq(cancel_button).attr('comment_id',comment_id)}
function remove_abuse_report_form(comment_id,html){jq('form.report_abuse').bind("submit", function(event){event.preventDefault()});var form='span#span-reply-form-'+comment_id;jq(form).fadeOut();var render_button='input#input-render-abuse-cancel-'+comment_id;jq(render_button).attr('disabled','');if(html!=undefined){var holder='span#span-abuse-count-holder-'+comment_id;jq(holder).append(html)}}
kukit.actionsGlobalRegistry.register("remove_abuse_report_form", function(oper){var comment_id=oper.parms.comment_id;var html=oper.parms.html
remove_abuse_report_form(comment_id,html)});kukit.commandsGlobalRegistry.registerFromAction('remove_abuse_report_form',kukit.cr.makeSelectorCommand);
