Вход Регистрация
Файл: usr/plugins/highlight_code/util.js
Строк: 255
<?php
/* A few useful utility functions. */

// Capture a method on an object.
function method(objname) {
  return function() {
obj[name].apply(objarguments);};
}

// The value used to signal the end of a sequence in iterators.
var StopIteration = {toString: function() {return "StopIteration"}};

// Apply a function to each element in a sequence.
function forEach(iterf) {
  if (
iter.next) {
    try {while (
truef(iter.next());}
    catch (
e) {if (!= StopIteration) throw e;}
  }
  else {
    for (var 
0iter.lengthi++)
      
f(iter[i]);
  }
}

// Map a function over a sequence, producing an array of results.
function map(iterf) {
  var 
accum = [];
  forEach(
iter, function(val) {accum.push(f(val));});
  return 
accum;
}

// Create a predicate function that tests a string againsts a given
// regular expression. No longer used but might be used by 3rd party
// parsers.
function matcher(regexp){
  return function(
value){return regexp.test(value);};
}

// Test whether a DOM node has a certain CSS class. Much faster than
// the MochiKit equivalent, for some reason.
function hasClass(elementclassName){
  var 
classes element.className;
  return 
classes && new RegExp("(^| )" className "($| )").test(classes);
}

// Insert a DOM node after another node.
function insertAfter(newNodeoldNode) {
  var 
parent oldNode.parentNode;
  
parent.insertBefore(newNodeoldNode.nextSibling);
  return 
newNode;
}

function 
removeElement(node) {
  if (
node.parentNode)
    
node.parentNode.removeChild(node);
}

function 
clearElement(node) {
  while (
node.firstChild)
    
node.removeChild(node.firstChild);
}

// Check whether a node is contained in another one.
function isAncestor(nodechild) {
  while (
child child.parentNode) {
    if (
node == child)
      return 
true;
  }
  return 
false;
}

// The non-breaking space character.
var nbsp "u00a0";
var 
matching = {"{""}""[""]""("")",
                
"}""{""]""["")""("};

// Standardize a few unportable event properties.
function normalizeEvent(event) {
  if (!
event.stopPropagation) {
    
event.stopPropagation = function() {this.cancelBubble true;};
    
event.preventDefault = function() {this.returnValue false;};
  }
  if (!
event.stop) {
    
event.stop = function() {
      
this.stopPropagation();
      
this.preventDefault();
    };
  }

  if (
event.type == "keypress") {
    
event.code = (event.charCode == null) ? event.keyCode event.charCode;
    
event.character String.fromCharCode(event.code);
  }
  return 
event;
}

// Portably register event handlers.
function addEventHandler(nodetypehandlerremoveFunc) {
  function 
wrapHandler(event) {
    
handler(normalizeEvent(event || window.event));
  }
  if (
typeof node.addEventListener == "function") {
    
node.addEventListener(typewrapHandlerfalse);
    if (
removeFunc) return function() {node.removeEventListener(typewrapHandlerfalse);};
  }
  else {
    
node.attachEvent("on" typewrapHandler);
    if (
removeFunc) return function() {node.detachEvent("on" typewrapHandler);};
  }
}

function 
nodeText(node) {
  return 
node.textContent || node.innerText || node.nodeValue || "";
}

function 
nodeTop(node) {
  var 
top 0;
  while (
node.offsetParent) {
    
top += node.offsetTop;
    
node node.offsetParent;
  }
  return 
top;
}

function 
isBR(node) {
  var 
nn node.nodeName;
  return 
nn == "BR" || nn == "br";
}
function 
isSpan(node) {
  var 
nn node.nodeName;
  return 
nn == "SPAN" || nn == "span";
}
?>
Онлайн: 2
Реклама