protected function p_jsfunc() { if (self::$jsFuncDisp) { return; } else { self::$jsFuncDisp = TRUE; } echo '<script type="text/javascript"> function nf_pp_init(m,x,u){function q(a){n(a,"pp_expandOpen");l(a,"pp_expandClosed")}function r(a){n(a,"pp_expandClosed");l(a,"pp_expandOpen")}function t(a){r(a);g(a,"pp_isRoot")||t(a.parentNode.parentNode)}function y(a,b){for(var d=a.getElementsByTagName("SPAN"),c=[],f=d.length-1;0<=f;f--){var e=d[f];if(g(e,"pp_key"))for(var h=b.length-1;0<=h;h--)if(-1!=e.innerHTML.search(new RegExp("\\\\["+b[h]+"(:<span[^<]*</span>)?\\\\]","i"))){c.push(e.parentNode.parentNode);break}}for(f=c.length-1;0<=f;f--)t(c[f])} function z(a){a=a.getElementsByTagName("LI");for(var b=a.length-1;0<=b;b--){var d=a[b];g(d,"pp_node")&&q(d)}}function v(){var a=w(this.parentNode.nextSibling.nextSibling,this.value.toLowerCase());this.parentNode.getElementsByTagName("SPAN")[0].innerHTML="found: "+a.length;this.found=a;this.foundCurIdx=-1}function w(a,b){var d=[];if("SPAN"==a.tagName&&g(a,"pp_key")||g(a,"pp_value")){if(a.getElementsByTagName("EM").length)for(var c=null,f=0;f<a.childNodes.length;){var e=a.childNodes[f];3==e.nodeType? c?(c.nodeValue+=e.nodeValue,a.removeChild(e)):(c=e,++f):1==e.nodeType&&(g(e,"pp_foundInText")?(c||(c=document.createTextNode(""),a.insertBefore(c,e),++f),c.nodeValue+=e.innerText||e.textContent,a.removeChild(e)):(c=null,++f))}if(b)for(var f=b.length,h=a.childNodes[0],c=-1;-1!=(c=h.nodeValue.toLowerCase().indexOf(b,c+1));){var k=h.nodeValue.substring(c,c+f),e=document.createElement("EM");l(e,"pp_foundInText");e.appendChild(document.createTextNode(k));h=h.splitText(c);h.nodeValue=h.nodeValue.substring(f); a.insertBefore(e,h);d.push(e)}}else if(a.children.length)for(c=a.children,f=0,e=c.length;f<e;++f)d=d.concat(w(c[f],b));return d}function g(a,b){return 0<=(" "+a.className+" ").indexOf(" "+b+" ")}function l(a,b){g(a,b)||(a.className+=(a.className?" ":"")+b)}function n(a,b){a.className=a.className.split(b).join("").replace(/^\\s+|\\s+$/g,"")}function p(a,b,d){d=d||"click";a.addEventListener?a.addEventListener(d,b,!1):a.attachEvent("on"+d,function(){b.call(a)})}var k=document.getElementById(m);m=k.children[2].firstChild; x&&z(k);u.length&&y(k,u);p(k,function(a){a=a||window.event;a=a.target||a.srcElement;if(g(a,"pp_expand")){var b=a.parentNode;g(b,"pp_expandOpen")?q(b):g(b,"pp_expandClosed")&&r(b)}else if(g(a,"pp_ctrlCollapseCh")){b=a.parentNode.parentNode;a=!1;for(var d=null,c=b.children.length-1;0<=c;c--)if("UL"==b.children[c].nodeName){d=b.children[c];break}b=null;d&&(b=d.children);for(c=b.length-1;0<=c;c--)if(g(b[c],"pp_expandOpen")){a=!0;break}if(a)for(c=b.length-1;0<=c;c--)q(b[c]);else for(c=b.length-1;0<=c;c--)r(b[c])}else if(g(a, "pp_top"))if(g(k,"pp_fixed"))n(k,"pp_fixed");else{a=document.getElementsByTagName("DIV");for(d=a.length-1;0<=d;d--)g(a[d],"pp_fixed")&&n(a[d],"pp_fixed");l(k,"pp_fixed")}else g(a,"pp_value")&&(b=a.parentNode,g(b,"pp_noTrim")?n(b,"pp_noTrim"):l(b,"pp_noTrim"))});p(m,v,"input");p(m,function(){"value"==event.propertyName&&v.apply(this)},"propertychange");p(m,function(a){a=a||window.event;if(13==a.keyCode&&this.found&&this.found.length){a.shiftKey?0>=this.foundCurIdx?this.foundCurIdx=this.found.length- 1:--this.foundCurIdx:this.foundCurIdx==this.found.length-1?this.foundCurIdx=0:++this.foundCurIdx;a=this.found[this.foundCurIdx];var b=a.parentNode;l(b.parentNode,"pp_noTrim");t(b);a.scrollIntoView()}},"keyup")}; </script>'; }
protected function p_jsfunc() { if (self::$jsFuncDisp) { return; } else { self::$jsFuncDisp = TRUE; } //echo '<script src="/application/templates/js/nf_pp.js"></script>'; }
protected function p_jsfunc() { if (self::$jsFuncDisp) { return; } else { self::$jsFuncDisp = TRUE; } echo '<script type="text/javascript"> //<![CDATA[ function nf_pp_init( id, autoCollapsed, autoOpen ){ var classCtrl = \'pp_expand\', classOpened = \'pp_expandOpen\', classClosed = \'pp_expandClosed\', classCollapseCh = \'pp_ctrlCollapseCh\', classKey = \'pp_key\', classValue = \'pp_value\', classNode = \'pp_node\', classRoot = \'pp_isRoot\', classFoundInText = \'pp_found_in_text\', re = new RegExp( \'(^|\\\\s)(\'+classOpened+\'|\'+classClosed+\')(\\\\s|$)\' ); var wrap = document.getElementById( id ), searchInput = wrap.children[2].firstChild; if( autoCollapsed ) autoCollapseTree( wrap ); if( autoOpen.length ) autoOpenTree( wrap, autoOpen ); applyHdlr( wrap, tree_toggle ); applyHdlr( searchInput, searchHdlr, \'input\' ); applyHdlr( searchInput, function(){ if (event.propertyName == \'value\') searchHdlr.apply( this ); }, \'propertychange\' ); applyHdlr( searchInput, searchKeyHdlr, \'keyup\' ); function tree_toggle( event ){ event = event || window.event; var clickedElem = event.target || event.srcElement; if( hasClass( clickedElem, classCtrl ) ){ var node = clickedElem.parentNode; if( hasClass( node, classOpened ) ) closeNode( node ); else if( hasClass( node, classClosed ) ) openNode( node ); } else if( hasClass( clickedElem, \'pp_ctrlCollapseCh\' ) ) { var node = clickedElem.parentNode.parentNode; collapseChildren(node); } else if( hasClass( clickedElem, \'pp_top\' ) ) { onTop( wrap ); } } function closeNode( node ){ node.className = node.className.replace( re, \'$1\'+classClosed+\'$3\' ); } function openNode( node ){ node.className = node.className.replace( re, \'$1\'+classOpened+\'$3\' ); } function openNodeUpWard( node ){ openNode( node ); // open current node if( ! hasClass( node, classRoot ) ){ var parent = node.parentNode.parentNode; openNodeUpWard( parent ); // open parent node } } function autoOpenTree( node, autoOpen ){ var arSpan = node.getElementsByTagName( \'SPAN\' ), arToOpen = []; for( var c = arSpan.length - 1; c >= 0; c-- ){ var curSpan = arSpan[c]; if( ! hasClass( curSpan, classKey ) ) continue; for( var q = autoOpen.length - 1; q >= 0; q-- ){ var rx = new RegExp( \'\\\\[\'+autoOpen[q]+\'(:<span[^<]*</span>)?\\\\]\', \'i\' ); if( curSpan.innerHTML.search( rx ) != -1 ){ arToOpen.push( curSpan.parentNode.parentNode ); break; } } } for( var c = arToOpen.length - 1; c >= 0; c-- ) openNodeUpWard( arToOpen[c] ); } function autoCollapseTree( node ){ var arLi = node.getElementsByTagName( \'LI\' ); for( var c = arLi.length - 1; c >= 0; c-- ){ var curli = arLi[c]; if( hasClass( curli, classNode ) ) closeNode( curli ); } } function collapseChildren( node ){ var collapse = false; // get children UL var ul = null; for( var c = node.children.length - 1; c >= 0; c-- ){ if( node.children[c].nodeName == \'UL\' ){ ul = node.children[c]; break; } } // get children LIs var arLi = null; if( ul ) arLi = ul.children; // determine if there is opened nodes for( var c = arLi.length - 1; c >= 0; c-- ){ if( hasClass( arLi[c], classOpened ) ){ collapse = true; break; } } if( collapse ) // collapse for( var c = arLi.length - 1; c >= 0; c-- ) closeNode( arLi[c] ); else // open for( var c = arLi.length - 1; c >= 0; c-- ) openNode( arLi[c] ); } function onTop( wrap ){ if( hasClass( wrap, \'pp_fixed\' ) ){ wrap.className = wrap.className.replace( \' pp_fixed\', \'\' ); } else { var divs = document.getElementsByTagName( \'DIV\' ); for( var c = divs.length - 1; c >= 0; c-- ){ if( hasClass( divs[c], \'pp_fixed\' ) ){ divs[c].className = divs[c].className.replace( \' pp_fixed\', \'\' ); } } wrap.className += \' pp_fixed\'; } } function searchHdlr(){ var searchString = this.value, found = recSearch( this.parentNode.nextSibling.nextSibling, this.value.toLowerCase() ); this.nextSibling.innerHTML = \'found: \' + found.length; this.found = found; } function searchKeyHdlr( event ){ event = event || window.event; // hit ENTER if( event.keyCode == 13 && this.found && this.found.length ){ var firstFound = this.found.pop(); openNodeUpWard( firstFound ); firstFound.scrollIntoView(); this.found.unshift( firstFound ); } } function recSearch( node, text ){ var found = []; if ( node.tagName == \'SPAN\' && hasClass( node, classKey+\'|\'+classValue ) ) { // remove old marks if( node.getElementsByTagName( \'EM\' ).length ){ var prevNode = null; var i = 0; while( i < node.childNodes.length ){ var curNode = node.childNodes[i]; if( curNode.nodeType == 3 ){ if( prevNode ){ prevNode.nodeValue += curNode.nodeValue; node.removeChild( curNode ); } else{ prevNode = curNode; ++i; } } else if(curNode.nodeType == 1 ){ if( hasClass( curNode, classFoundInText ) ){ if( ! prevNode ){ prevNode = document.createTextNode( \'\' ); node.insertBefore( prevNode, curNode ); ++i; } prevNode.nodeValue += curNode.innerText || curNode.textContent; node.removeChild( curNode ); } else{ prevNode = null; ++i; } } } } if( text ){ var textLength = text.length, textNode = node.childNodes[0], startPos = textNode.nodeValue.toLowerCase().indexOf( text ); if( startPos > -1 ){ var foundText = textNode.nodeValue.substring( startPos, startPos + textLength ), mark = document.createElement( \'EM\' ); mark.className = classFoundInText; mark.appendChild( document.createTextNode( foundText ) ); var tail = textNode.splitText( startPos ); tail.nodeValue = tail.nodeValue.substring( textLength ); node.insertBefore( mark, tail ); found.push( node ); } } } else if( node.children.length ){ var children = node.children; for( var i = children.length - 1; i >= 0; i-- ){ found = found.concat( recSearch( children[i], text ) ); } } return found; } function hasClass( elem, className ){ return new RegExp( \'(^|\\\\s)\'+className+\'(\\\\s|$)\' ).test( elem.className ); } /** * Applies handler to control */ function applyHdlr( target, handler, type ){ type = type || \'click\'; if( target.addEventListener ) target.addEventListener( type, handler, false ); else target.attachEvent( \'on\' + type, function(){ handler.call( target ) } ); } } //]]> </script>'; }
protected function p_jsfunc() { if (self::$jsFuncDisp) { return; } else { self::$jsFuncDisp = TRUE; } echo '<script type="text/javascript"> {{nf_pp.js}} </script>'; }