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

/* - nodeutilities.js - */
// http://www.ecu.ac.uk/portal_javascripts/nodeutilities.js?original=1
function wrapNode(node,wrappertype,wrapperclass){jq(node).wrap('<'+wrappertype+'>').parent().addClass(wrapperclass)};
function nodeContained(innernode,outernode){return jq(innernode).parents().filter(function(){return this==outernode}).length>0};
function findContainer(node,func){p=jq(node).parents().filter(func);return p.length?p.get(0):false};
function hasClassName(node,class_name){return jq(node).hasClass(class_name)};
function addClassName(node,class_name){jq(node).addClass(class_name)};
function removeClassName(node,class_name){jq(node).removeClass(class_name)};
function replaceClassName(node,old_class,new_class,ignore_missing){if(ignore_missing||jq(node).hasClass(old_class))
jq(node).removeClass(old_class).addClass(new_class)};
function walkTextNodes(node,func,data){jq(node).find('*').andSelf().contents().each(function(){if(this.nodeType==3) func(this,data)})};
function getInnerTextCompatible(node){return jq(node).text()};
function getInnerTextFast(node){return jq(node).text()};
function sortNodes(nodes,fetch_func,cmp_func){var SortNodeWrapper=function(node){this.value=fetch_func(node);this.cloned_node=node.cloneNode(true)}
SortNodeWrapper.prototype.toString=function(){return this.value.toString?this.value.toString():this.value}
var items=jq(nodes).map(function(){return new SortNodeWrapper(this)});if(cmp_func) items.sort(cmp_func);else items.sort();jq.each(items, function(i){jq(nodes[i]).replace(this.cloned_node)})};
function copyChildNodes(srcNode,dstNode){jq(srcNode).children().clone().appendTo(jq(dstNode))}


/* - cookie_functions.js - */
// http://www.ecu.ac.uk/portal_javascripts/cookie_functions.js?original=1
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString()} else{expires=""}
document.cookie=name+"="+escape(value)+expires+"; path=/;"};
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length)}
if(c.indexOf(nameEQ)==0){return unescape(c.substring(nameEQ.length,c.length))}}
return null};

/* - livesearch.js - */
// http://www.ecu.ac.uk/portal_javascripts/livesearch.js?original=1
var livesearch=function(){var _search_delay=400;var _hide_delay=400;var _search_handlers={};var _LSHighlight="LSHighlight";
function _searchfactory($form,$inputnode){var $lastsearch=null;var $request=null;var $cache={};var $querytarget="livesearch_reply";if(typeof portal_url!="undefined")
$querytarget=portal_url+"/"+$querytarget;var $$result=$form.find('div.LSResult');var $shadow=$form.find('div.LSShadow');var $path=$form.find('input[name=path]');
function _hide(){$$result.hide();$lastsearch=null};
function _hide_delayed(){window.setTimeout('livesearch.hide("'+$form.attr('id')+'")',_hide_delay)};
function _show($data){$$result.show();$shadow.html($data)};
function _search(){if($lastsearch==$inputnode.value){return}
$lastsearch=$inputnode.value;if($request&&$request.readyState<4)
$request.abort();if($inputnode.value.length<2){_hide();return}
var $$query={q:$inputnode.value};if($path.length&&$path[0].checked)
$$query['path']=$path.val();$$query=jq.param($$query);if($cache[$$query]){_show($cache[$$query]);return}
$request=jq.get($querytarget,$$query, function($data){_show($data);$cache[$$query]=$data},'text')};
function _search_delayed(){window.setTimeout('livesearch.search("'+$form.attr('id')+'")',_search_delay)};return{hide:_hide,hide_delayed:_hide_delayed,search:_search,search_delayed:_search_delayed}};
function _keyhandlerfactory($form){var $timeout=null;var $$result=$form.find('div.LSResult');var $shadow=$form.find('div.LSShadow');
function _keyUp(){$cur=$shadow.find('li.LSHighlight').removeClass(_LSHighlight);$prev=$cur.prev('li');if(!$prev.length) $prev=$shadow.find('li:last');$prev.addClass(_LSHighlight);return false};
function _keyDown(){$cur=$shadow.find('li.LSHighlight').removeClass(_LSHighlight);$next=$cur.next('li');if(!$next.length) $next=$shadow.find('li:first');$next.addClass(_LSHighlight);return false};
function _keyEscape(){$shadow.find('li.LSHighlight').removeClass(_LSHighlight);$$result.hide()};
function _handler($event){window.clearTimeout($timeout);switch($event.keyCode){case 38:return _keyUp();case 40:return _keyDown();case 27:return _keyEscape();case 37:break;case 39:break;default:{$timeout=window.setTimeout('livesearch.search("'+$form.attr('id')+'")',_search_delay)}}};
function _submit(){var $target=$shadow.find('li.LSHighlight a').attr('href');if(!$target) return;window.location=$target;return false};return{handler:_handler,submit:_submit}};
function _setup(i){var $id='livesearch'+i;var $form=jq(this).parents('form:first');var $key_handler=_keyhandlerfactory($form);_search_handlers[$id]=_searchfactory($form,this);$form.attr('id',$id).css('white-space','nowrap').submit($key_handler.submit);jq(this).attr('autocomplete','off').keydown($key_handler.handler).focus(_search_handlers[$id].search_delayed).blur(_search_handlers[$id].hide_delayed)};jq(function(){jq("#searchGadget,input.portlet-search-gadget").each(_setup)});return{search: function(id){_search_handlers[id].search()},hide: function(id){_search_handlers[id].hide()}}}();
