vvvM = function () {
//  var self = this; var menuId = null; var transitions = []; var modifiers = ['followlinkcontent'];
  var self = this; var menuId = null; var transitions = []; var modifiers = ['followlinkcontent'];
  var cssClasses = {'root':'lm','folder':'lmFolder','folderOpen':'lmFolderOpen','folderClosed':'lmFolderClose','menuItem':'lmFile','evenLevel':'lmEvenLevel','oddLevel':'lmOddLevel','menuLevel':'lmLevel' }
  var menuOptions = { 'theme' : { 'name' : 'WE', 'options' : {} }, 'transitions' : { }, themeRootPath:null, maxDepth:0, maxOpenDepth:0, forceSkipTransitions:false, interval:3, length:0, openTimeout:0, closeTimeout:0, toggleMenuOnClick:true, closeSiblings:false, incrementalConvert:true, handlers:{ onOpen : [], onClose : [], onChangeState : [] }, stripCssClasses : { 'root':[], 'ul':[], 'li':[], 'a':[] }, flagOpenClass : cssClasses['folderOpen'], flagClosedClass : cssClasses['folderClosed'], dummy : null};
  var keys = {'cmsSelf' : '__cmsSelf','openFlag' : '__isOpen','interval' : '__interval','timeout' : '__timeout','isRoot' : '__isRoot','isFolder' : '__isFolder','parentNode' : '__parentNode','submenu' : '__submenu','menuLevel' : '__menuLevel','activator' : '__activator' }
  this.setMenuOption = function (n, v) { if (menuOptions[n] && typeof menuOptions[n] != typeof v) return false; menuOptions[n] = v; return true; }
  this.initMenu = function(mid) { menuId = mid; loader.init(); convertMenuById(); }
  this.reinitSubmenu = function (el) { if (!el || !el.tagName) return; var omd = menuOptions.maxDepth; switch (el.tagName.toLowerCase()) { case "li" : menuOptions.maxDepth = el[keys['parentNode']][keys['menuLevel']]+2; convertMenu (el[keys['submenu']],el[keys['parentNode']][keys['menuLevel']]+1); break; } menuOptions.maxDepth = omd; }
  var stripCssClasses = function (css, node) { try { for (var i=css.length;i>=0;i--) { if (menuOptions.stripCssClasses[node].indexOf(css[i])<0) continue; css.splice(i,1); } }catch(e){} return css; }
  var applyModifiers = function (node, type) { var run = {}; if (isUndefined(type) || 'string' != typeof type) type = node.tagName.toLowerCase(); for(var mod=0, smL=modifiers.length; mod<smL; mod++) { if (self.modifier[modifiers[mod]].runat != type || !isUndefined(run[modifiers[mod]])) continue;  self.modifier[modifiers[mod]].mod.call(self.modifier[modifiers[mod]], node, keys, cssClasses, menuOptions); run[modifiers[mod]] = true; } run = null; }
  var loader = new function () { 
    this.transitionOnload = function (name,cntr) { if (cntr>=10000) {self.transition[name] = true; return;}  if (!self.transition[name]) { setTimeout(function(){ls.transitionOnload(name,cntr+10)},10); return; }  transitions[transitions.length] = self.transition[name];  if ('function' == typeof self.transition[name].init) self.transition[name].init.call(self.transition[name],menuOptions, cssClasses, keys); }
    this.themeOnload = function (name) { transitions = [self.transition['default']]; for (var i in menuOptions.transitions) { if (!menuOptions.transitions.hasOwnProperty(i)) continue; playTimeout(this.transitionOnload,1,[i,0]); } if (menuOptions.modifiers && menuOptions.modifiers.length>0) { for (var i=0, tL=menuOptions.modifiers.length; i<tL; i++) { if (!self.modifier[menuOptions.modifiers[i]]) { if (isUndefined (self.modifier[menuOptions.modifiers[i]])) self.modifier[menuOptions.modifiers[i]] = menuOptions.modifiers[i]; } modifiers.push(menuOptions.modifiers[i]); } } }
    this.init = function () { var sp = menuOptions.theme.name.split('/');  if (isUndefined (self.theme[sp[0]])) self.theme[sp[0]] = sp[0]; } 
  }
  var menuItemEventHandler = function (e) { var root = getParent(e.srcElement || e.target, keys.isRoot, true); if (root[keys.cmsSelf] != self) return; var el = getParent(e.srcElement || e.target, 'li'); if (!getParent(el,root)) return; root = null; var cel = el; while (el && !el[keys['parentNode']] && cel != (cel = getParent(el,keys['isFolder'],true))) self.reinitSubmenu(cel); if (!el) return; switch (e.type.toLowerCase()) { case "mouseover" : case "mouseout" : while (!el[keys['isRoot']]) { if (el[keys['isFolder']]) { if (parseInt(el[keys['timeout']])) clearTimeout(el[keys['timeout']]); el[keys['timeout']] = null; switch (e.type.toLowerCase()) { case 'mouseover' : if (!el[keys['openFlag']]) el[keys['timeout']] = playTimeout(playOpenClose,menuOptions.openTimeout,[el,'open']); break; case 'mouseout' : if (el[keys['openFlag']] && parseInt(menuOptions.closeTimeout)) el[keys['timeout']] = playTimeout(playOpenClose,menuOptions.closeTimeout,[el,'close']); break; } } el = el[keys['parentNode']]; } break; case "mouseup" : if (!el[keys['isFolder']] || (el[keys['submenu']][keys['interval']] && el[keys['submenu']][keys['interval']].interval)) return; clearTimeout(el[keys['timeout']]); if (menuOptions['toggleMenuOnClick'] && (menuOptions['toggleMenuOnClick'] ^ el[keys['openFlag']]*2)) playOpenClose(el, 'toggle'); break; } }
  var playOpenClose = function(el, flag) {
    var isOpen, i, player; if (flag != 'toggle' && el[keys['openFlag']] == (flag == 'open')) return; switch (flag.toLowerCase()) {case 'open': flag = 'Open'; break; case 'close': flag = 'Close'; break; case 'toggle': flag = el[keys['openFlag']]?'Close':'Open'; break; default: return; } if (el[keys['openFlag']] != (flag=='Open')) callEventHandlers(el, flag); if (null == el[keys['submenu']][keys['menuLevel']]) self.reinitSubmenu(el); isOpen = el[keys['openFlag']] = (flag=='Open'); if (menuOptions['closeSiblings'] && isOpen) for (i=0,sL=el[keys['parentNode']][keys['submenu']].length;i<sL;i++)  if ( el[keys['parentNode']][keys['submenu']][i][keys['openFlag']] && el[keys['parentNode']][keys['submenu']][i] != el && el[keys['parentNode']][keys['submenu']][i][keys['isFolder']]) playOpenClose (el[keys['parentNode']][keys['submenu']][i], 'close'); el = el[keys['submenu']];
    player = function(el,t,e) {  var i,tL=t.length,eL=e.length; var dt = (new Date).valueOf(); el[keys['interval']].pg = Math.round(el[keys['interval']].pg+(dt-el[keys['interval']].start)*100/menuOptions.length); el[keys['interval']].start = dt; if (el[keys['interval']].pg>100) el[keys['interval']].pg = 100;  el[keys['interval']].pg_delta = el[keys['interval']].pg/100; for (i=0;i<tL;i++) {  if (null == t[i]) continue;  if (!t[i][0].call(t[i][1],el,menuOptions,cssClasses,keys)) { t.splice(i,1); i--; tL--; } } if (0 == t.length) {  for (i=0;i<eL;i++) e[i][0].call(e[i][1],el,menuOptions,cssClasses,keys);  clearInterval(el[keys['interval']].interval);  el[keys['interval']].interval = false; menuOptions['forceSkipTransitions'] = false; }  }
    if (el[keys['interval']]) { clearInterval(el[keys['interval']].interval); el[keys['interval']].pg = 100-el[keys['interval']].pg; el[keys['interval']].pg_delta = el[keys['interval']].pg/100; } else { el[keys['interval']] = { 'pg' : 0, 'pg_delta' : 0 } }
    var f, t = [], e = []; for (i=0,mL=transitions.length; i<mL; i++) { f = transitions[i]['init'+flag]; if (typeof f == 'function') f.call(transitions[i],el,menuOptions,cssClasses,keys);  f = transitions[i]['play'+flag]; if (!menuOptions['forceSkipTransitions'] && typeof f == 'function') t[t.length] = [f, transitions[i]];  f = transitions[i]['finish'+flag]; if (typeof f == 'function') e[e.length] = [f, transitions[i]]; } el[keys['interval']].start = (new Date).valueOf(); el[keys['interval']].interval = setInterval(function(){player(el,t,e)},menuOptions.interval);
  }
  var callEventHandlers = function (el, flag) {
    if (!menuOptions.handlers) return;									   
    var _call = function (el, h) { if (menuOptions.handlers[h] instanceof Array) { for (var i=0, mL = menuOptions.handlers[h].length; i<mL; i++) { try { menuOptions.handlers[h][i][1].call(menuOptions.handlers[h][i][0],el, keys, cssClasses, menuOptions); } catch (e) {} } } }
    var h = 'on'+flag; _call(el,h); _call(el,'onChangeState'); 
  } 
  var convertMenu = function (el,level) { if (menuOptions.maxDepth && level > menuOptions.maxDepth-1 && (el[keys.parentNode] && el[keys.parentNode][keys.openFlag]===false)) return; el[keys.menuLevel] = level; var dummy = document.createElement('div'); el.parentNode.replaceChild(dummy,el); level++; el[keys.submenu] = []; for (var i=0,cL=el.childNodes.length; i<cL; i++) {  if (!el.childNodes[i].tagName || el.childNodes[i].tagName.toLowerCase() != 'li') continue; el[keys.submenu][el[keys.submenu].length] = el.childNodes[i]; el.style.display = ''; el.childNodes[i][keys.parentNode] = el; var tmp = el.childNodes[i].className.split(' '); el.childNodes[i][keys.openFlag] = ((level < menuOptions.maxOpenDepth || tmp.indexOf(menuOptions.flagOpenClass) > -1 ) && tmp.indexOf(menuOptions.flagClosedClass) <0); tmp = stripCssClasses(tmp, 'li'); convertMenuItem(el.childNodes[i],level); if (!isUndefined(el.childNodes[i][keys.submenu])) { tmp[tmp.length] = cssClasses['folder']; tmp[tmp.length] = cssClasses[el.childNodes[i][keys.openFlag]?'folderOpen':'folderClosed']; el.childNodes[i][keys.isFolder] = true; } else { tmp[tmp.length] = cssClasses.menuItem; el.childNodes[i][keys.isFolder] = false; } tmp[tmp.length] = cssClasses.menuLevel.split(" ").map(function(el){return el+level}).join(" "); tmp[tmp.length] = cssClasses[level%2?'evenLevel':'oddLevel']; el.childNodes[i].className=tmp.join(' '); applyModifiers(el.childNodes[i]); var a = el.childNodes[i].firstChild; while (null != a && (!a.tagName || (a.tagName && a.tagName.toLowerCase()!='a'))) a = a.nextSibling; if (a) { el.childNodes[i][keys.activator] = a; a[keys.parentNode] = el.childNodes[i]; var tmp = a.className.split(' '); tmp = stripCssClasses(tmp, 'a'); a.className = tmp.join(" "); applyModifiers(a); } } if (el[keys['submenu']].length < 1 && el[keys.parentNode]) {el[keys.parentNode][keys.openFlag] = false;} dummy.parentNode.replaceChild(el,dummy); dummy = null; }
  var convertMenuItem = function (el,level) { for (var i=0,cL=el.childNodes.length; i<cL; i++) { if (!el.childNodes[i].tagName || el.childNodes[i].tagName.toLowerCase() != 'ul') continue; var tmp = el.childNodes[i].className.split(" "); tmp = stripCssClasses(tmp, 'ul'); el.childNodes[i].className = tmp.join(" "); el[keys['submenu']] = el.childNodes[i]; el.childNodes[i][keys['parentNode']] = el; if (!menuOptions.incrementalConvert ||  el[keys['openFlag']] || level < menuOptions['maxDepth']-1 ) convertMenu(el[keys['submenu']],level); applyModifiers(el.childNodes[i]); } }
  var convertMenuById = function () { var el = document.getElementById(menuId); loader['themeOnload']('WE');	 if (!el) { setTimeout(convertMenuById,10); return} menuOptions.stripCssClasses.li.push(menuOptions.flagOpenClass); menuOptions.stripCssClasses.li.push(menuOptions.flagClosedClass); var tmp = el.className.split(" "); tmp = stripCssClasses(tmp, 'root'); tmp[tmp.length] = cssClasses.root; var n = menuOptions.theme.name.split("/"); var s = ""; for (var i=0,nL=n.length;i<nL;i++) { s += n[i]; tmp[tmp.length] = cssClasses.root+s; } el.className = tmp.join(" "); el[keys['isRoot']] = true; convertMenu(el,-1); if (menuOptions.openTimeout) { el.attachEvent('onmouseover',menuItemEventHandler); el.attachEvent('onmouseout',menuItemEventHandler); } el.attachEvent('onmouseup',menuItemEventHandler); el.style.display = ''; applyModifiers(el,'root'); el[keys['cmsSelf']] = self; } 
}
vvvM.prototype.theme = {};
vvvM.prototype.theme.WM = { menuOptions : { 'transitions' : {}, 'modifiers' : ['followlinkcontent'] } }
vvvM.prototype.transition = { 'default' : { 'initOpen' : function (el,mo,cssClasses,keys) { el = el[keys['parentNode']]; var tmp = el.className.split(" "), tc = cssClasses.folderClosed.split(" "), idx; for (var i=0,tcL=tc.length; i<tcL; i++) { idx = tmp.indexOf(tc[i]); if (idx > -1) tmp.splice(idx,1);} tc = cssClasses.folderOpen.split(" "); for (var i=0,tcL=tc.length; i<tcL; i++) { idx = tmp.indexOf(tc[i]); if (idx > -1) tmp.splice(idx,1);} tmp[tmp.length] = cssClasses.folderOpen; el.className = tmp.join(" "); }, 'finishClose' : function (el,mo,cssClasses,keys) { el = el[keys['parentNode']]; var tmp = el.className.split(" "), tc = cssClasses.folderOpen.split(" "), idx; for (var i=0,tcL=tc.length; i<tcL; i++) { idx = tmp.indexOf(tc[i]); if (idx > -1) tmp.splice(idx,1);} tc = cssClasses.folderClosed.split(" "); for (var i=0,tcL=tc.length; i<tcL; i++) { idx = tmp.indexOf(tc[i]); if (idx > -1) tmp.splice(idx,1);} tmp[tmp.length] = cssClasses.folderClosed; el.className = tmp.join(" "); } } }; 
vvvM.prototype.modifier = {};
vvvM.prototype.modifier.followlinkcontent = { runat: 'a',
  mod : function (el, keys) {
    var preventFollowLink = function(e) { var el = e.target || e.srcElement ,a = getParent(el, 'a'); if (el.tagName.toLowerCase() == 'a' || document.location.href == a.href) { if (e.preventDefault) e.preventDefault(); e.returnValue = false; } else { if (e.stopPropagation) e.stopPropagation(); e.cancelBubble = true; } }
    var preventCloseOnFollow = function(e) { var el = e.srcElement || e.target ,a  = getParent(el, 'a') ,li = getParent(a,  'li'); if (li[keys['openFlag']] && (!el.tagName || el.tagName.toLowerCase() != 'a') && document.location.href != a.href) { if (e.stopPropagation) e.stopPropagation(); e.cancelBubble = true; } }
    var span = document.createElement('span'); while (el.firstChild) { span.appendChild(el.firstChild); } el.appendChild(span); el.attachEvent('onclick', preventFollowLink); el.attachEvent('onmouseup', preventCloseOnFollow);
  }
}
function isUndefined(i){return(typeof i=='undefined')}function isFunction(i){return(typeof i=='function')}function isString(i){return(typeof i=='string')}function isNumber(i){return(typeof i=='number')}function isNumeric(i){return(isNumber(i)||isString(i))&&!isNaN(parseInt(i))&&isFinite(parseInt(i))}function isArray(i){return(i instanceof Array)}function isRegExp(i){return(i instanceof RegExp)}function isBoolean(i){return('boolean'==typeof i)}function isScalar(i){return isNumeric(i)||isString(i)}function isEmpty(i){if(isBoolean(i))return false;if(isRegExp(i)&&new RegExp("").toString()==i.toString())return true;if(isString(i)||isNumber(i))return!i;if(Boolean(i)&&false!=i){for(var I in i)if(i.hasOwnProperty(I))return false}return true}function dump(i,I){var l=[];if(!I)I=0;if(I>2)return"***********8Recursion*************";var o="";for(var O=0;O<I;O++)o+="    ";for(var O in i){var Q=[o,O,': '];try{if(!isScalar(i[O])&&!isFunction(i[O])){Q[Q.length]='{';l[l.length]=Q.join("");l[l.length]=dump(i[O],I+1);l[l.length]='}'}else{Q[Q.length]=i[O];l[l.length]=Q.join("")}}catch(err){}}return l.join("\n")}function gluePath(){var i=arguments.length,I=i-2,l=arguments[i-1];for(;I>=0;I--)l=((!isString(arguments[I])&&!isNumber(arguments[I]))||isEmpty(arguments[I])?l:arguments[I]+'\x00'+l);return l?l.replace(/\/*\x00+\/*/g,"/"):""}function findPath(i){var I=document.getElementsByTagName('script'),l=new RegExp('^(.*/|)('+i+')([#?]|$$)');for(var o=0,O=I.length;o<O;o++){var Q=String(I[o].src).match(l);if(Q){if(Q[1].match(/^((https?|file)\:\/{2,}|\w:[\\])/))return Q[1];if(Q[1].indexOf("/")==0)return Q[1];b=document.getElementsByTagName('base');if(b[0]&&b[0].href)return b[0].href+Q[1];return(document.location.href.match(/(.*[\/\\])/)[0]+Q[1]).replace(/^\/+(?=\w:)/,"")}}return null}function getScriptQuery(i){var I=document.getElementsByTagName('script'),l=new RegExp('^(.*/|)('+i+')([#?].*|$$)');for(var o=0,O=I.length;o<O;o++){var Q=String(I[o].src).match(l);if(Q)return parseQuery(Q[3].replace(/^[^?]*\?([^#]+)/,"$$1"))}return{}}function parseQuery(i){if('string'!=typeof i||i.length<2)return{};i=i.split("&");for(var I=0,l=i.length,o={},O,Q;I<l;I++){O=i[I].split("=");O[0]=O[0].replace(/[{}\[\]]*$/,"");Q=o[O[0]];O[1]=unescape(O[1]?O[1].replace("+"," "):"");if(Q)if('array'==typeof(Q))o[O[0]][o[O[0]].length]=O[1];else o[O[0]]=[o[O[0]],O[1]];else o[O[0]]=O[1]}return o}if(isUndefined(DOM))var DOM={};getParent=function(i,I,l){if(i==null)return null;else if(i.nodeType==1&&((!isUndefined(l)&&i[I]==l)||('string'==typeof I&&DOM.hasTagName(i,I))||i==I))return i;else return arguments.callee(i.parentNode,I,l)};DOM.getOffset=function(O){var i=true,I=e,l=0,o=0,O=0,Q=0,_=null,c=null;if(I==null)return null;c=I.offsetParent;var C=I,e=I;while(e.parentNode!=null){e=e.parentNode;if(e.offsetParent==null){}else{var v=true;if(i&&window.opera){if(e==C.parentNode||e.nodeName=="TR"){v=false}}if(v){if(e.scrollTop&&e.scrollTop>0){o-=e.scrollTop}if(e.scrollLeft&&e.scrollLeft>0){l-=e.scrollLeft}}}if(e==c){l+=I.offsetLeft;if(e.clientLeft&&e.nodeName!="TABLE"){l+=e.clientLeft}o+=I.offsetTop;if(e.clientTop&&e.nodeName!="TABLE"){o+=e.clientTop}I=e;if(I.offsetParent==null){if(I.offsetLeft){l+=I.offsetLeft}if(I.offsetTop){o+=I.offsetTop}}c=I.offsetParent}}if(C.offsetWidth){O=C.offsetWidth}if(C.offsetHeight){Q=C.offsetHeight}return{'x':l,'y':o,'width':O,'height':Q}};DOM.getClientWidth=function(){var i=0;if(self.innerHeight)i=self.innerWidth;else if(document.documentElement&&document.documentElement.clientWidth)i=document.documentElement.clientWidth;else if(document.body)i=document.body.clientWidth;return i};DOM.getClientHeight=function(){var i=0;if(self.innerHeight)i=self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)i=document.documentElement.clientHeight;else if(document.body)i=document.body.clientHeight;return i};DOM.getBodyScrollTop=function(){return self.pageYOffset||(document.documentElement&&document.documentElement.scrollTop)||(document.body&&document.body.scrollTop)};DOM.getBodyScrollLeft=function(){return self.pageXOffset||(document.documentElement&&document.documentElement.scrollLeft)||(document.body&&document.body.scrollLeft)};DOM.hasTagName=function(I,i){if(isString(i))i=[i];if(!isArray(i)||isEmpty(i)||isUndefined(I)||isEmpty(I.tagName))return false;var l=I.tagName.toLowerCase();for(var o=0,O=i.length;o<O;o++){if(i[o].toLowerCase()==l)return true}return false};function getClientWidth(){var i=0;if(self.innerHeight)i=self.innerWidth;else if(document.documentElement&&document.documentElement.clientWidth)i=document.documentElement.clientWidth;else if(document.body)i=document.body.clientWidth;return i}function getClientHeight(){var i=0;if(self.innerHeight)i=self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)i=document.documentElement.clientHeight;else if(document.body)i=document.body.clientHeight;return i}function getClientCenterX(){return parseInt(getClientWidth()/2)+getBodyScrollLeft()}function getClientCenterY(){return parseInt(getClientHeight()/2)+getBodyScrollTop()}function getBodyScrollTop(){return self.pageYOffset||(document.documentElement&&document.documentElement.scrollTop)||(document.body&&document.body.scrollTop)}function getBodyScrollLeft(){return self.pageXOffset||(document.documentElement&&document.documentElement.scrollLeft)||(document.body&&document.body.scrollLeft)}function table2array(i,I,l,o){if(isString(i))i=document.getElementById(i);if(!i||!DOM.hasTagName(i,['table','tbody,','thead','tfoot']))return null;if(!isEmpty(l)&&(!isString(l)||!(i=i.getElementsByTagName(l))))return null;if(!isEmpty(o)&&(!isNumber(o)||o<0||!(i=i[o])))return null;if(isUndefined(i.rows))return null;var O=[],Q=document.createElement('span'),_=null,c=null;for(var C=0,e=i.rows.length;C<e;C++){var v=[];if(isArray(I)){for(var V=0,x=I.length;V<x;V++){c=i.rows[C].cells[I[V]];if(c){Q.innerHTML=c.innerText?c.innerText:c.innerHTML.replace(/<script\s+(.|\r?\n)*?<\/script>|<[^>]*>/g,"");Q.normalize();v[v.length]=Q.firstChild?Q.firstChild.nodeValue.trim(" \xA0"):""}else{v[v.length]=""}}}else{for(var V=0,X=i.rows[C].cells.length;V<X;V++){cd=i.rows[C].cells[V];Q.innerHTML=c.innerText?c.innerText:c.innerHTML.replace(/<script\s+(.|\r?\n)*?<\/script>|<[^>]*>/g,"");Q.normalize();v[v.length]=Q.firstChild?Q.firstChild.nodeValue.trim(" \xA0"):""}}if(!isEmpty(v))O[O.length]=v}return O}document.createElementExt=function(I,i){var l,o,O,Q=document.createElement(I);if(!Q)return null;for(o in i){if(!i.hasOwnProperty(o))continue;switch(o){case"class":Q.setAttribute('className',i[o]);Q.setAttribute('class',i[o]);break;case"style":for(O in i[o]){if(!i[o].hasOwnProperty(O))continue;Q.style[O]=i[o][O]}break;case"event":for(O in i[o]){if(!i[o].hasOwnProperty(O))continue;Q.attachEvent(O,i[o][O])}break;case"child":l=i[o].length;for(O=0;O<l;O++)Q.appendChild(i[o][O]);break;case"param":for(O in i[o]){if(!i[o].hasOwnProperty(O))continue;try{Q[O]=i[o][O]}catch(e){}}break}}return Q};function playInterval(i,I,l){return setInterval(function(){(l instanceof Array)?i.apply(this,l):i.call(this,l)},I)}function playTimeout(i,I,l){return setTimeout(function(){(l instanceof Array)?i.apply(this,l):i.call(this,l)},I)}if('undefined'==typeof Object.hasOwnProperty){Object.prototype.hasOwnProperty=function(i){var I=this;return!('undefined'==typeof I[i]||I.constructor&&I.constructor.prototype[i]&&I[i]===I.constructor.prototype[i])}}if(Node&&!Node.prototype){var node=document.createTextNode(''),Node=node.constructor};if(window.Node){Node.prototype.removeNode=function(i){var I=this,l=I;if(Boolean(i)||I.childNodes.length<1)return I.parentNode.removeChild(l);else{var o=document.createRange();o.selectNodeContents(l);return I.parentNode.replaceChild(o.extractContents(),l)}};Node.prototype.swapNode=function(i){var I=this;n=I.cloneNode(true);nt=i.cloneNode(true);I.parentNode.insertBefore(nt,I);I.removeNode(true);i.parentNode.insertBefore(n,i);i.removeNode(true)};if(!Node.prototype.attachEvent)Node.prototype.attachEvent=function(I,i,l){var o=this;return o.addEventListener(I.substr(2),i,false)};if(!Node.prototype.fireEvent)Node.prototype.fireEvent=function(o){var i={resize:['HTMLEvents',1,0],scroll:['HTMLEvents',1,0],focusin:['HTMLEvents',0,0],focusout:['HTMLEvents',0,0],gainselection:['HTMLEvents',1,0],loseselection:['HTMLEvents',1,0],activate:['HTMLEvents',1,1],load:['HTMLEvents',0,0],unload:['HTMLEvents',0,0],abort:['HTMLEvents',1,0],error:['HTMLEvents',1,0],select:['HTMLEvents',1,0],change:['HTMLEvents',1,0],submit:['HTMLEvents',1,1],reset:['HTMLEvents',1,0],focus:['HTMLEvents',0,0],blur:['HTMLEvents',0,0],click:['MouseEvents',1,1],mousedown:['MouseEvents',1,1],mouseup:['MouseEvents',1,1],mouseover:['MouseEvents',1,1],mousemove:['MouseEvents',1,0],mouseout:['MouseEvents',1,0],keypress:['KeyEvents',1,1],keydown:['KeyEvents',1,1],keyup:['KeyEvents',1,1],DOMSubtreeModified:['MutationEvents',1,0],DOMNodeInserted:['MutationEvents',1,0],DOMNodeRemoved:['MutationEvents',1,0],DOMNodeRemovedFromDocument:['MutationEvents',0,0],DOMNodeInsertedIntoDocument:['MutationEvents',0,0],DOMAttrModified:['MutationEvents',1,0],DOMCharacterDataModified:['MutationEvents',1,0]},I=this;o=o.substr(2);if(!i[o])return false;var l=document.createEvent(i[o][0]);l.initEvent(o,i[o][1],i[o][2]);return I.dispatchEvent(l)}}if(!window.attachEvent){window.attachEvent=function(I,i,l){var o=this;if(o.addEventListener)o.addEventListener(I.substr(2),i,false);else o[I]=i}}if('undefined'==typeof Function.call)Function.prototype.call=function(){var i,I,l=[],o=1,O=arguments.length;if(arguments.length==0)i=window;else i=arguments[0];I=i.______________tmp______________;i.______________tmp______________=this;for(;o<O;o++)l[l.length]='arguments['+o+']';var Q=eval("context.______________tmp______________("+l.join(",")+")");i.______________tmp______________=I;return Q};if('undefined'==typeof Function.apply)Function.prototype.apply=function(){var i,I,l=[],o=0,O=arguments[1].length;if(arguments.length==0)i=window;else i=arguments[0];I=i.______________tmp______________;i.______________tmp______________=this;for(;o<O;o++)l[l.length]='arguments[1]['+o+']';var Q=eval("context.______________tmp______________("+l.join(",")+")");i.______________tmp______________=I;return Q};if(isUndefined(Array.prototype.concat)){Array.prototype.concat=function(I){var i=this.copy();for(var l=0,o=I.length;l<o;l++){i[i.length]=I[l]}return i}}if(isUndefined(Array.prototype.copy)){Array.prototype.copy=function(){var i=this;var I=[];for(var l=0,o=i.length;l<o;l++){I[l]=i[l]}return I}}if(isUndefined(Array.prototype.pop)){Array.prototype.pop=function(){var i=this,I=undefined;if(i.length>0){I=i[i.length-1];i.length--}return I}}if(isUndefined(Array.prototype.push)){Array.prototype.push=function(){var i=this,I=i.length;for(var l=0;l<arguments.length;l++){i[I+l]=arguments[l]}return i.length}}if(isUndefined(Array.prototype.shift)){Array.prototype.shift=function(){var i=this,I=i[0];for(var l=0,o=i.length-1;l<o;l++){i[l]=i[l+1]}i.length--;return I}}if(isUndefined(Array.prototype.slice)){Array.prototype.slice=function(i,I){var l=this,o;if(I==null||I=='')I=l.length;else if(I<0)I=l.length+I;if(i<0)i=l.length+i;if(I<i){o=I;I=i;i=o}var O=[];for(var Q=0;Q<I-i;Q++){O[Q]=l[i+Q]}return O}}if(isUndefined(Array.prototype.splice)){Array.prototype.splice=function(I,i){var l=this;if(i==null||i=='')i=l.length-I;var o=l.copy();for(var O=I,Q=I+arguments.length-2;O<Q;O++){l[O]=arguments[O-I+2]}var _=i-arguments.length+2;for(var O=I+arguments.length-2,c=l.length-i+arguments.length-2;O<c;O++){l[O]=o[O+_]}l.length=l.length-_;return o.slice(I,I+i)}}if(isUndefined(Array.prototype.unshift)){Array.prototype.unshift=function(I){var i=this;for(var l=i.length-1;l>=0;l--){i[l+1]=i[l]}i[0]=I;return i.length}}Array.prototype.indexOf=function(l,i){var I=this;for(var o=(null==i||isNaN(i)||i<0)?0:Math.round(i),O=I.length,Q=-1;Q==-1&o<O;o++){Q=(I[o]==l)?o:Q}return Q};Array.prototype.lastIndexOf=function(I,i){var l=this;for(var o=(null==i||isNaN(i)||i>l.length)?l.length-1:Math.round(i),O=-1;O==-1&o>-1;o--){O=(l[o]==I)?o:O}return O};if(isUndefined(Array.prototype.map)){Array.prototype.map=function(I){var i=this;if('function'!=typeof I)return i;var l=[];for(var o=i.length-1;o>=0;o--){l[o]=I(i[o])}return l}}if(isUndefined(Array.prototype.unique)){Array.prototype.unique=function(){var i=this,I=[];for(var l=0,o=i.length;l<o;l++){if(I.indexOf(i[l])<0)I[I.length]=i[l]}return I}}if(isUndefined(Array.prototype.flatten)){Array.prototype.flatten=function(i,I){var l=this;if(l.length<1)return[];if(isNumeric(i))i=[i];var o=false;if(isArray(i)){o={};for(var O=0,Q=i.length;O<Q;O++)o[i[O]]=true}var _=[];for(var O=0,c=l.length;O<c;O++){if(isUndefined(l[O]))continue;if(!isArray(l[O])){if(false===o)_[_.length]=l[O]}else{for(var C=0,Q=l[O].length;C<Q;C++){if(false===o||o.hasOwnProperty(C))_[_.length]=l[O][C]}}}return _}}if(isUndefined(Array.prototype.filter)){Array.prototype.filter=function(i){var I=this;if(!isFunction(i))i=null;for(var l=0,o=I.length,O=[],Q=null;l<o;l++){Q=i?i(I[l]):I[l];if(!isEmpty(Q))O[O.length]=Q}return O}}if(isUndefined(Array.range)){Array.range=function(o,i,I){if(!isNumber(o))return null;if(!isNumber(I))I=1;if(!isNumber(i))i=0;var l=[],O=Math.min(i,o),Q=Math.max(i,o),_=Math.abs(I),c=-1;do{c++;l[c]=O;O+=_}while(O<=Q);return I>0?l:l.reverse()}}RegExp.escape=function(i){if(!arguments.callee.sRE){var I=['/','.','*','+','?','|','(',')','[',']','{','}','$$','^','\\'];arguments.callee.sRE=new RegExp('(\\'+I.join('|\\')+')','g')}return isString(i)?i.replace(arguments.callee.sRE,'\\$$1'):(isArray(i)?i.map(RegExp.escape).join("|"):"")};String.prototype.ltrim=function(I){var i=this;if(isString(I))I=I.split("");if(isArray(I)||isUndefined(I)){I=isEmpty(I)?"\\s":RegExp.escape(I);I=new RegExp("^(?:"+I+")+","g");return i.replace(I,"")}return i};String.prototype.rtrim=function(I){var i=this;if(isString(I))I=I.split("");if(isArray(I)||isUndefined(I)){I=isEmpty(I)?"\\s":RegExp.escape(I);I=new RegExp("(?:"+I+")+$$","g");return i.replace(I,"")}return i};String.prototype.trim=function(I){var i=this;if(isString(I))I=I.split("");if(isArray(I)||isUndefined(I)){I=isEmpty(I)?"\\s":RegExp.escape(I);I=new RegExp("^(?:"+I+")+|(?:"+I+")+$$","g");return i.replace(I,"")}return i};String.prototype.dup=function(){var i=this.valueOf();return[i,i].join("")};String.prototype.repeat=function(i){if(isNaN(i=parseInt(i))||i<0)return"";return Array(i+1).join(this.valueOf())};String.prototype.padding=function(o,i){var I=this,l=I.valueOf();o=parseInt(o);if(!o)return l;if(isUndefined(i))i=" ";var O=String(i).charAt(0).repeat(Math.abs(o)-I.length);return(o<0)?O+l:l+O};String.prototype.padLeft=function(i,I){return this.padding(-Math.abs(i),I)};String.prototype.padRight=function(i,I){return this.padding(Math.abs(i),I)};String.prototype.sprintf=function(){var i=isArray(arguments[0])?arguments[0]:arguments,o=0,O=this.replace(/%%/g,"\0\0"),Q=/%((?:\d+\$)?)((?:[-0+# ])?)((?:\d+|\*(?:\d+\$)?)?)((?:.(?:\d+|\*(?:\d+\$)?))?)([bcdeEfosuxX])/g;O=O.replace(Q,function(){var _=arguments,Q=false,O;if(!isUndefined(_[3])&&_[3].indexOf("*")==0){_[3]=parseInt(_[3].replace(/\D/g,""));if(isNaN(_[3])){_[3]=i[o];o++}else{_[3]=i[_[3]]}}if(""!=_[4]){if(_[4].indexOf("*")==1){_[4]=parseInt(_[4].replace(/\D/g,""));if(isNaN(_[4])){_[4]=i[o];o++}else{_[4]=i[_[4]]}}else{_[4]=_[4].replace(/\D/,"")}_[4]=Math.abs(_[4])}_[1]=parseInt(_[1]);var O;if(isNumeric(_[1])){O=i[_[1]]}else{O=i[o];o++}switch(_[5]){case"b":if(O<0)O=0x10000000000000000+parseInt(O);O=Number(O).bin(_[4]);if(_[4])O=O.substr(0,_[4]);if(_[2]=='#')O='0b'+O;break;case"c":O=String.fromCharCode(O);break;case"u":O=Math.abs(O);case"d":O=Math.round(O);if(O<0){O="-"+Math.abs(O).dec(_[4])}else{O=Number(O).dec(_[4]);Q=(_[2]==' '||_[2]=='+')}break;case"e":case"E":if(O>0){Q=(_[2]==' '||_[2]=='+')}O=Number(O).toExponential(_[4]?_[4]:6);if(_[5]=='E')O=O.toUpperCase();break;case"f":if(O>0){Q=(_[2]==' '||_[2]=='+')}O=Number(O).toFixed(isNumeric(_[4])?_[4]:6);break;case"o":if(O<0)O=0x10000000000000000+parseInt(O);O=Number(O).toString(8);if(_[4])O=O.substr(0,_[4]);if(_[2]=='#'&&O!=0)O='0'+O;break;case"s":O=String(O);if(_[4])O=O.substr(0,_[4]);break;case"x":case"X":if(O<0)O=0x10000000000000000+parseInt(O);O=Number(O).hex(-_[4]);if(_[4])O=O.substr(0,_[4]);if(_[2]=='#')O='0x'+O;if(_[5]=='X')O=O.toUpperCase();break}if(Q)O=_[2]+O;if(_[3])O=(_[2]=='-'||_[3]<0)?O.padRight(_[3]):O.padLeft(_[3],_[2]=='0'?0:" ");return O});return O.replace(/\0\0/g,"%")};Object.prototype.merge = function (obj, overwrite) {try { var n = new obj.constructor(); } catch(e) {return null;}
try {if (isUndefined(overwrite)) overwrite = true;for (var i in obj) {if (!obj.hasOwnProperty(i)) continue;if (isUndefined(this[i]) || (overwrite && typeof this[i] != typeof obj))
if (obj[i] instanceof Array) this[i] = [];else if ('object' == typeof obj[i]) this[i] = {};if (obj[i] instanceof Array) this[i] = this[i].concat(obj[i]);
else if ('object' == typeof obj[i]) this[i].merge(obj[i], overwrite);
else if (isUndefined(this[i]) || overwrite) this[i] = obj[i];}} catch(e) {return this}}

