var getElementsByClassName = document.getElementsByClassName ? function (class_name, scope) {
return [].slice.call((scope || document).getElementsByClassName(class_name));
} : document.evaluate ? function (class_name, scope) {
var re = [];
var scope_doc = scope ? (!scope.ownerDocument ? scope : scope.ownerDocument) : document;
var xpathResult = scope_doc.evaluate(".//*[contains(concat(' ', @class, ' '), ' " + class_name + " ')]", scope || document, null, 0, null);
var ele;
while ((ele = xpathResult.iterateNext()))
re.push(ele)
return re;
} : function (class_name, scope) {
var re = [];
var elements = (scope || document).getElementsByTagName("*");
for (var i = 0, ele; ele = elements[i]; i++)
if (ele.className && ele.className.split(" ").indexOf(class_name) >= 0)
re.push(ele);
return re;
};