/**************** * $Id: cms.js 99 2007-03-12 12:01:00Z wingedfox $ * $HeadURL: https://svn.debugger.ru/repos/CompleteMenuSolution/tags/v0.5.12/cms.js $ * * The Complete Menu Solution project * * @application Complete Menu Solution * @author Ilya Lebedev * @copyright (c) 2005-2006, Ilya Lebedev * @license Free for non-commercial use * @title Complete Menu Solution * @version $Rev: 99 $ * ******/ CompleteMenuSolution=function(){var i=this;var I=null;var l=[];var o=[];var O=[];var Q={'root':'CmsListMenu','folder':'CmsMenuItemFolder','folderOpen':'CmsMenuItemFolderExpanded','folderClosed':'CmsMenuItemFolderCollapsed','menuItem':'CmsMenuItemFile','evenLevel':'CmsMenuItemEvenLevel','oddLevel':'CmsMenuItemOddLevel','menuLevel':'CmsMenuItemLevel'};var _={'theme':{'name':'','options':{}},'transitions':{},themeRootPath:null,maxDepth:0,maxOpenDepth:0,forceSkipTransitions:false,interval:10,length:100,openTimeout:0,closeTimeout:0,toggleMenuOnClick:0,closeSiblings:true,incrementalConvert:true,handlers:{onOpen:[],onClose:[],onChangeState:[]},stripCssClasses:{'root':[],'ul':[],'li':[],'a':[]},flagOpenClass:Q['folderOpen'],flagClosedClass:Q['folderClosed'],appendTemplateSuffix:false,dummy:null};var c={'cmsSelf':'__cmsSelf','openFlag':'__isOpen','interval':'__interval','timeout':'__timeout','isRoot':'__isRoot','isFolder':'__isFolder','parentNode':'__parentNode','submenu':'__submenu','menuLevel':'__menuLevel','activator':'__activator'};var C;this.setMenuOption=function(e,K){if(_[e]&&typeof _[e]!=typeof K)return false;_[e]=K;return true};this.initMenu=function(e,K){I=e;_.theme.merge(K.theme);if(K.themeRootPath)_.themeRootPath=K.themeRootPath;X.init(K);S();};this.getThemePath=function(e){if(!/^[-a-z0-9\/]*$/.test(name.toLowerCase()))return false;var K=_.theme.name.split('/');return gluePath(_.themeRootPath?_.themeRootPath:gluePath(i.cmsRoot,'templates'),(e?_.theme.name:K[0]));};this.reinitSubmenu=function(e){if(!e||!e.tagName)return;var K=_.maxDepth;switch(e.tagName.toLowerCase()){case"li":_.maxDepth=e[c['parentNode']][c['menuLevel']]+2;W(e[c['submenu']],e[c['parentNode']][c['menuLevel']]+1);break}_.maxDepth=K};var v;var V=function(K,q){try{for(var E=K.length;E>=0;E--){if(_.stripCssClasses[q].indexOf(K[E])<0)continue;K.splice(E,1);}}catch(e){};return K};var x=function(e,K){var q={};if(isUndefined(K)||'string'!=typeof K)K=e.tagName.toLowerCase();for(var E=0,r=O.length;E=10000){i.transition[R]=true;return}if(!i.transition[R]){setTimeout(function(){e.transitionOnload(R,t+10)},10);return}o[o.length]=i.transition[R];if('function'==typeof i.transition[R].init)i.transition[R].init.call(i.transition[R],_,Q,c);};this.themeOnload=function(R){o=[i.transition['default']];_.merge(K);for(var t in _.transitions){if(!_.transitions.hasOwnProperty(t))continue;if(!i.transition[t])r(gluePath(i.cmsRoot,'transitions',t+'.js'));playTimeout(this.transitionOnload,1,[t,0]);}if(_.modifiers&&_.modifiers.length>0){for(var t=0,T=_.modifiers.length;t100)K[c['interval']].pg=100;K[c['interval']].pg_delta=K[c['interval']].pg/100;for(r=0;r_.maxDepth-1&&(e[c.parentNode]&&e[c.parentNode][c.openFlag]===false))return;e[c.menuLevel]=K;var q=document.createElement('div');e.parentNode.replaceChild(q,e);K++;e[c.submenu]=[];for(var E=0,r=e.childNodes.length;E-1)&&R.indexOf(_.flagClosedClass)<0);R=V(R,'li');s(e.childNodes[E],K);if(!isUndefined(e.childNodes[E][c.submenu])){R[R.length]=Q['folder'];R[R.length]=Q[e.childNodes[E][c.openFlag]?'folderOpen':'folderClosed'];e.childNodes[E][c.isFolder]=true}else{R[R.length]=Q.menuItem;e.childNodes[E][c.isFolder]=false}R[R.length]=Q.menuLevel.split(" ").map(function(e){return e+K}).join(" ");R[R.length]=Q[K%2?'evenLevel':'oddLevel'];e.childNodes[E].className=R.join(' ');x(e.childNodes[E]);var t=e.childNodes[E].firstChild;while(null!=t&&(!t.tagName||(t.tagName&&t.tagName.toLowerCase()!='a')))t=t.nextSibling;if(t){e.childNodes[E][c.activator]=t;t[c.parentNode]=e.childNodes[E];var R=t.className.split(' ');R=V(R,'a');t.className=R.join(" ");x(t);}}if(e[c['submenu']].length<1&&e[c.parentNode]){e[c.parentNode][c.openFlag]=false}q.parentNode.replaceChild(e,q);q=null};var s=function(e,K){for(var q=0,E=e.childNodes.length;q=10000){throw Error("Resource could not be loaded: "+l[e][0]+" - "+l[e][1]);}else{l[e][3]+=10}}return!l.length}};CompleteMenuSolution.prototype.cmsRoot=findPath('cms.js');CompleteMenuSolution.prototype.loadedStylesheets={};CompleteMenuSolution.prototype.loadedJS={};CompleteMenuSolution.prototype.theme={};CompleteMenuSolution.prototype.transition={'default':{'initOpen':function(i,I,l,o){i=i[o['parentNode']];var O=i.className.split(" "),Q=l.folderClosed.split(" "),_;for(var c=0,C=Q.length;c-1)O.splice(_,1);}Q=l.folderOpen.split(" ");for(var c=0,C=Q.length;c-1)O.splice(_,1);}O[O.length]=l.folderOpen;i.className=O.join(" ");},'finishClose':function(i,I,l,o){i=i[o['parentNode']];var O=i.className.split(" "),Q=l.folderOpen.split(" "),_;for(var c=0,C=Q.length;c-1)O.splice(_,1);}Q=l.folderClosed.split(" ");for(var c=0,C=Q.length;c-1)O.splice(_,1);}O[O.length]=l.folderClosed;i.className=O.join(" ");}}};CompleteMenuSolution.prototype.modifier={};CompleteMenuSolution.prototype.requires=['extensions/helpers.js','extensions/objectextensions.js','extensions/functionextensions.js','extensions/arrayextensions.js','extensions/domextensions.js'];for(var i=0,cL=CompleteMenuSolution.prototype.requires.length;i");}catch(e){var el=document.getElementsByTagName('head')[0],s=document.createElement('script');s.type="text/javascript";s.src=CompleteMenuSolution.prototype.cmsRoot+CompleteMenuSolution.prototype.requires[i];el.appendChild(s);}}function findPath(i){var I=document.getElementsByTagName('script'),l=new RegExp('^(.*/|)('+i+')([#?]|$)');for(var o=0,O=I.length;o