UNPKG

pov

Version:

lightweight multivariate a/b testing

31 lines (29 loc) 68.2 kB
/*! * ============================================================= * Ender: open module JavaScript framework (https://ender.no.de) * Build: ender build pov * ============================================================= */ /*! * Ender: open module JavaScript framework (client-lib) * copyright Dustin Diaz & Jacob Thornton 2011-2012 (@ded @fat) * http://ender.jit.su * License MIT */ (function(context){function require(identifier){var module=modules["$"+identifier]||window[identifier];if(!module)throw new Error("Ender Error: Requested module '"+identifier+"' has not been defined.");return module}function provide(name,what){return modules["$"+name]=what}function aug(o,o2){for(var k in o2)k!="noConflict"&&k!="_VERSION"&&(o[k]=o2[k]);return o}function Ender(s,r){var elements,i;this.selector=s;if(typeof s=="undefined"){elements=[];this.selector=""}else typeof s=="string"||s.nodeName||s.length&&"item"in s||s==window?elements=ender._select(s,r):elements=isFinite(s.length)?s:[s];this.length=elements.length;for(i=this.length;i--;)this[i]=elements[i]}function ender(s,r){return new Ender(s,r)}context.global=context;var modules={},old=context.$,oldEnder=context.ender,oldRequire=context.require,oldProvide=context.provide;context.provide=provide;context.require=require;Ender.prototype.forEach=function(fn,opt_scope){var i,l;for(i=0,l=this.length;i<l;++i)i in this&&fn.call(opt_scope||this[i],this[i],i,this);return this};Ender.prototype.$=ender;ender._VERSION="0.4.3-dev";ender.fn=Ender.prototype;ender.ender=function(o,chain){aug(chain?Ender.prototype:ender,o)};ender._select=function(s,r){return typeof s=="string"?(r||document).querySelectorAll(s):s.nodeName?[s]:s};ender.noConflict=function(callback){context.$=old;if(callback){context.provide=oldProvide;context.require=oldRequire;context.ender=oldEnder;typeof callback=="function"&&callback(require,provide,this)}return this};typeof module!="undefined"&&module.exports&&(module.exports=ender);context.ender=context.$=ender}(this));(function(){var module={exports:{}},exports=module.exports;(function(){var root=this,previousUnderscore=root._,breaker={},ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype,push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,unshift=ArrayProto.unshift,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty,nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind,_=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!="undefined"){typeof module!="undefined"&&module.exports&&(exports=module.exports=_);exports._=_}else root._=_;_.VERSION="1.4.2";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach)obj.forEach(iterator,context);else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++)if(iterator.call(context,obj[i],i,obj)===breaker)return}else for(var key in obj)if(_.has(obj,key)&&iterator.call(context,obj[key],key,obj)===breaker)return};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;obj==null&&(obj=[]);if(nativeReduce&&obj.reduce===nativeReduce){context&&(iterator=_.bind(iterator,context));return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=!0}else memo=iterator.call(context,memo,value,index,list)});if(!initial)throw new TypeError("Reduce of empty array with no initial value");return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;obj==null&&(obj=[]);if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){context&&(iterator=_.bind(iterator,context));return arguments.length>2?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=!0}else memo=iterator.call(context,memo,obj[index],index,list)});if(!initial)throw new TypeError("Reduce of empty array with no initial value");return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return!0}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){iterator.call(context,value,index,list)&&(results[results.length]=value)});return results};_.reject=function(obj,iterator,context){var results=[];if(obj==null)return results;each(obj,function(value,index,list){iterator.call(context,value,index,list)||(results[results.length]=value)});return results};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=!0;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=!1;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){var found=!1;if(obj==null)return found;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;found=any(obj,function(value){return value===target});return found};_.invoke=function(obj,method){var args=slice.call(arguments,2);return _.map(obj,function(value){return(_.isFunction(method)?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs){return _.isEmpty(attrs)?[]:_.filter(obj,function(value){for(var key in attrs)if(attrs[key]!==value[key])return!1;return!0})};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535)return Math.max.apply(Math,obj);if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535)return Math.min.apply(Math,obj);if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand,index=0,shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria,b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={},iterator=lookupIterator(value);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){_.has(result,key)||(result[key]=0);result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj),low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){return obj?obj.length===+obj.length?slice.call(obj):_.values(obj):[]};_.size=function(obj){return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){return n!=null&&!guard?slice.call(array,Math.max(array.length-n,0)):array[array.length-1]};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,function(value){return!!value})};var flatten=function(input,shallow,output){each(input,function(value){_.isArray(value)?shallow?push.apply(output,value):flatten(value,shallow,output):output.push(value)});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){var initial=iterator?_.map(array,iterator,context):array,results=[],seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments),length=_.max(_.pluck(args,"length")),results=new Array(length);for(var i=0;i<length;i++)results[i]=_.pluck(args,""+i);return results};_.object=function(list,values){var result={};for(var i=0,l=list.length;i<l;i++)values?result[list[i]]=values[i]:result[list[i][0]]=list[i][1];return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted!="number"){i=_.sortedIndex(array,item);return array[i]===item?i:-1}i=isSorted<0?Math.max(0,l+isSorted):isSorted}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf)return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item);var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0),idx=0,range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};var ctor=function(){};_.bind=function(func,context){var bound,args;if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));if(!_.isFunction(func))throw new TypeError;args=slice.call(arguments,2);return bound=function(){if(this instanceof bound){ctor.prototype=func.prototype;var self=new ctor,result=func.apply(self,args.concat(slice.call(arguments)));return Object(result)===result?result:self}return func.apply(context,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);funcs.length==0&&(funcs=_.functions(obj));each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,throttling,more,result,whenDone=_.debounce(function(){more=throttling=!1},wait);return function(){context=this;args=arguments;var later=function(){timeout=null;more&&(result=func.apply(context,args));whenDone()};timeout||(timeout=setTimeout(later,wait));if(throttling)more=!0;else{throttling=!0;result=func.apply(context,args)}whenDone();return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments,later=function(){timeout=null;immediate||(result=func.apply(context,args))},callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);callNow&&(result=func.apply(context,args));return result}};_.once=function(func){var ran=!1,memo;return function(){if(ran)return memo;ran=!0;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--)args=[funcs[i].apply(this,args)];return args[0]}};_.after=function(times,func){return times<=0?func():function(){if(--times<1)return func.apply(this,arguments)}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)_.has(obj,key)&&(keys[keys.length]=key);return keys};_.values=function(obj){var values=[];for(var key in obj)_.has(obj,key)&&values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)_.has(obj,key)&&pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)_.has(obj,key)&&(result[obj[key]]=key);return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj)_.isFunction(obj[key])&&names.push(key);return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){for(var prop in source)obj[prop]=source[prop]});return obj};_.pick=function(obj){var copy={},keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){key in obj&&(copy[key]=obj[key])});return copy};_.omit=function(obj){var copy={},keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj)_.contains(keys,key)||(copy[key]=obj[key]);return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){for(var prop in source)obj[prop]==null&&(obj[prop]=source[prop])});return obj};_.clone=function(obj){return _.isObject(obj)?_.isArray(obj)?obj.slice():_.extend({},obj):obj};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;a instanceof _&&(a=a._wrapped);b instanceof _&&(b=b._wrapped);var className=toString.call(a);if(className!=toString.call(b))return!1;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return!1;var length=aStack.length;while(length--)if(aStack[length]==a)return bStack[length]==b;aStack.push(a);bStack.push(b);var size=0,result=!0;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result)while(size--)if(!(result=eq(a[size],b[size],aStack,bStack)))break}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor))return!1;for(var key in a)if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}if(result){for(key in b)if(_.has(b,key)&&!(size--))break;result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return!0;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return!1;return!0};_.isElement=function(obj){return!!obj&&obj.nodeType===1};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});_.isArguments(arguments)||(_.isArguments=function(obj){return!!obj&&!!_.has(obj,"callee")});typeof /./!="function"&&(_.isFunction=function(obj){return typeof obj=="function"});_.isFinite=function(obj){return _.isNumber(obj)&&isFinite(obj)};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===!0||obj===!1||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){for(var i=0;i<n;i++)iterator.call(context,i)};_.random=function(min,max){if(max==null){max=min;min=0}return min+(0|Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){return string==null?"":(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=idCounter++;return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/,escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g"),index=0,source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});source+=escape?"'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'":interpolate?"'+\n((__t=("+interpolate+"))==null?'':__t)+\n'":evaluate?"';\n"+evaluate+"\n__p+='":"";index=offset+match.length});source+="';\n";settings.variable||(source="with(obj||{}){\n"+source+"}\n");source="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{var render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);(name=="shift"||name=="splice")&&obj.length===0&&delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=!0;return this},value:function(){return this._wrapped}})}).call(this);provide("underscore",module.exports);$.ender(module.exports)})();(function(){var module={exports:{}},exports=module.exports; /*! * Bean - copyright (c) Jacob Thornton 2011-2012 * https://github.com/fat/bean * MIT license */ ;!function(name,context,definition){typeof module!="undefined"&&module.exports?module.exports=definition(name,context):typeof define=="function"&&typeof define.amd=="object"?define(definition):context[name]=definition(name,context)}("bean",this,function(name,context){var win=window,old=context[name],namespaceRegex=/[^\.]*(?=\..*)\.|.*/,nameRegex=/\..*/,addEvent="addEventListener",removeEvent="removeEventListener",doc=document||{},root=doc.documentElement||{},W3C_MODEL=root[addEvent],eventSupport=W3C_MODEL?addEvent:"attachEvent",ONE={},slice=Array.prototype.slice,str2arr=function(s,d){return s.split(d||" ")},isString=function(o){return typeof o=="string"},isFunction=function(o){return typeof o=="function"},standardNativeEvents="click dblclick mouseup mousedown contextmenu mousewheel mousemultiwheel DOMMouseScroll mouseover mouseout mousemove selectstart selectend keydown keypress keyup orientationchange focus blur change reset select submit load unload beforeunload resize move DOMContentLoaded readystatechange message error abort scroll ",w3cNativeEvents="show input invalid touchstart touchmove touchend touchcancel gesturestart gesturechange gestureend textinputreadystatechange pageshow pagehide popstate hashchange offline online afterprint beforeprint dragstart dragenter dragover dragleave drag drop dragend loadstart progress suspend emptied stalled loadmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate play pause ratechange volumechange cuechange checking noupdate downloading cached updateready obsolete ",nativeEvents=function(hash,events,i){for(i=0;i<events.length;i++)events[i]&&(hash[events[i]]=1);return hash}({},str2arr(standardNativeEvents+(W3C_MODEL?w3cNativeEvents:""))),customEvents=function(){var isAncestor="compareDocumentPosition"in root?function(element,container){return container.compareDocumentPosition&&(container.compareDocumentPosition(element)&16)===16}:"contains"in root?function(element,container){container=container.nodeType===9||container===window?root:container;return container!==element&&container.contains(element)}:function(element,container){while(element=element.parentNode)if(element===container)return 1;return 0},check=function(event){var related=event.relatedTarget;return related?related!==this&&related.prefix!=="xul"&&!/document/.test(this.toString())&&!isAncestor(related,this):related==null};return{mouseenter:{base:"mouseover",condition:check},mouseleave:{base:"mouseout",condition:check},mousewheel:{base:/Firefox/.test(navigator.userAgent)?"DOMMouseScroll":"mousewheel"}}}(),Event=function(){var commonProps=str2arr("altKey attrChange attrName bubbles cancelable ctrlKey currentTarget detail eventPhase getModifierState isTrusted metaKey relatedNode relatedTarget shiftKey srcElement target timeStamp type view which propertyName"),mouseProps=commonProps.concat(str2arr("button buttons clientX clientY dataTransfer fromElement offsetX offsetY pageX pageY screenX screenY toElement")),mouseWheelProps=mouseProps.concat(str2arr("wheelDelta wheelDeltaX wheelDeltaY wheelDeltaZ axis")),keyProps=commonProps.concat(str2arr("char charCode key keyCode keyIdentifier keyLocation location")),textProps=commonProps.concat(str2arr("data")),touchProps=commonProps.concat(str2arr("touches targetTouches changedTouches scale rotation")),messageProps=commonProps.concat(str2arr("data origin source")),stateProps=commonProps.concat(str2arr("state")),overOutRegex=/over|out/,typeFixers=[{reg:/key/i,fix:function(event,newEvent){newEvent.keyCode=event.keyCode||event.which;return keyProps}},{reg:/click|mouse(?!(.*wheel|scroll))|menu|drag|drop/i,fix:function(event,newEvent,type){newEvent.rightClick=event.which===3||event.button===2;newEvent.pos={x:0,y:0};if(event.pageX||event.pageY){newEvent.clientX=event.pageX;newEvent.clientY=event.pageY}else if(event.clientX||event.clientY){newEvent.clientX=event.clientX+doc.body.scrollLeft+root.scrollLeft;newEvent.clientY=event.clientY+doc.body.scrollTop+root.scrollTop}overOutRegex.test(type)&&(newEvent.relatedTarget=event.relatedTarget||event[(type=="mouseover"?"from":"to")+"Element"]);return mouseProps}},{reg:/mouse.*(wheel|scroll)/i,fix:function(){return mouseWheelProps}},{reg:/^text/i,fix:function(){return textProps}},{reg:/^touch|^gesture/i,fix:function(){return touchProps}},{reg:/^message$/i,fix:function(){return messageProps}},{reg:/^popstate$/i,fix:function(){return stateProps}},{reg:/.*/,fix:function(){return commonProps}}],typeFixerMap={},Event=function(event,element,isNative){if(!arguments.length)return;event=event||((element.ownerDocument||element.document||element).parentWindow||win).event;this.originalEvent=event;this.isNative=isNative;this.isBean=!0;if(!event)return;var type=event.type,target=event.target||event.srcElement,i,l,p,props,fixer;this.target=target&&target.nodeType===3?target.parentNode:target;if(isNative){fixer=typeFixerMap[type];if(!fixer)for(i=0,l=typeFixers.length;i<l;i++)if(typeFixers[i].reg.test(type)){typeFixerMap[type]=fixer=typeFixers[i].fix;break}props=fixer(event,this,type);for(i=props.length;i--;)!((p=props[i])in this)&&p in event&&(this[p]=event[p])}};Event.prototype.preventDefault=function(){this.originalEvent.preventDefault?this.originalEvent.preventDefault():this.originalEvent.returnValue=!1};Event.prototype.stopPropagation=function(){this.originalEvent.stopPropagation?this.originalEvent.stopPropagation():this.originalEvent.cancelBubble=!0};Event.prototype.stop=function(){this.preventDefault();this.stopPropagation();this.stopped=!0};Event.prototype.stopImmediatePropagation=function(){this.originalEvent.stopImmediatePropagation&&this.originalEvent.stopImmediatePropagation();this.isImmediatePropagationStopped=function(){return!0}};Event.prototype.isImmediatePropagationStopped=function(){return this.originalEvent.isImmediatePropagationStopped&&this.originalEvent.isImmediatePropagationStopped()};Event.prototype.clone=function(currentTarget){var ne=new Event(this,this.element,this.isNative);ne.currentTarget=currentTarget;return ne};return Event}(),targetElement=function(element,isNative){return!W3C_MODEL&&!isNative&&(element===doc||element===win)?root:element},RegEntry=function(){var wrappedHandler=function(element,fn,condition,args){var call=function(event,eargs){return fn.apply(element,args?slice.call(eargs,event?0:1).concat(args):eargs)},findTarget=function(event,eventElement){return fn.__beanDel?fn.__beanDel.ft(event.target,element):eventElement},handler=condition?function(event){var target=findTarget(event,this);if(condition.apply(target,arguments)){event&&(event.currentTarget=target);return call(event,arguments)}}:function(event){fn.__beanDel&&(event=event.clone(findTarget(event)));return call(event,arguments)};handler.__beanDel=fn.__beanDel;return handler},RegEntry=function(element,type,handler,original,namespaces,args,root){var customType=customEvents[type],isNative;type=="unload"&&(handler=once(removeListener,element,type,handler,original));if(customType){customType.condition&&(handler=wrappedHandler(element,handler,customType.condition,args));type=customType.base||type}this.isNative=isNative=nativeEvents[type]&&!!element[eventSupport];this.customType=!W3C_MODEL&&!isNative&&type;this.element=element;this.type=type;this.original=original;this.namespaces=namespaces;this.eventType=W3C_MODEL||isNative?type:"propertychange";this.target=targetElement(element,isNative);this[eventSupport]=!!this.target[eventSupport];this.root=root;this.handler=wrappedHandler(element,handler,null,args)};RegEntry.prototype.inNamespaces=function(checkNamespaces){var i,j,c=0;if(!checkNamespaces)return!0;if(!this.namespaces)return!1;for(i=checkNamespaces.length;i--;)for(j=this.namespaces.length;j--;)checkNamespaces[i]==this.namespaces[j]&&c++;return checkNamespaces.length===c};RegEntry.prototype.matches=function(checkElement,checkOriginal,checkHandler){return this.element===checkElement&&(!checkOriginal||this.original===checkOriginal)&&(!checkHandler||this.handler===checkHandler)};return RegEntry}(),registry=function(){var map={},forAll=function(element,type,original,handler,root,fn){var pfx=root?"r":"$";if(!type||type=="*")for(var t in map)t.charAt(0)==pfx&&forAll(element,t.substr(1),original,handler,root,fn);else{var i=0,l,list=map[pfx+type],all=element=="*";if(!list)return;for(l=list.length;i<l;i++)if((all||list[i].matches(element,original,handler))&&!fn(list[i],list,i,type))return}},has=function(element,type,original,root){var i,list=map[(root?"r":"$")+type];if(list)for(i=list.length;i--;)if(!list[i].root&&list[i].matches(element,original,null))return!0;return!1},get=function(element,type,original,root){var entries=[];forAll(element,type,original,null,root,function(entry){return entries.push(entry)});return entries},put=function(entry){var has=!entry.root&&!this.has(entry.element,entry.type,null,!1),key=(entry.root?"r":"$")+entry.type;(map[key]||(map[key]=[])).push(entry);return has},del=function(entry){forAll(entry.element,entry.type,null,entry.handler,entry.root,function(entry,list,i){list.splice(i,1);entry.removed=!0;list.length===0&&delete map[(entry.root?"r":"$")+entry.type];return!1})},entries=function(){var t,entries=[];for(t in map)t.charAt(0)=="$"&&(entries=entries.concat(map[t]));return entries};return{has:has,get:get,put:put,del:del,entries:entries}}(),selectorEngine,setSelectorEngine=function(e){arguments.length?selectorEngine=e:selectorEngine=doc.querySelectorAll?function(s,r){return r.querySelectorAll(s)}:function(){throw new Error("Bean: No selector engine installed")}},rootListener=function(event,type){if(!W3C_MODEL&&type&&event&&event.propertyName!="_on"+type)return;var listeners=registry.get(this,type||event.type,null,!1),l=listeners.length,i=0;event=new Event(event,this,!0);type&&(event.type=type);for(;i<l&&!event.isImmediatePropagationStopped();i++)listeners[i].removed||listeners[i].handler.call(this,event)},listener=W3C_MODEL?function(element,type,add){element[add?addEvent:removeEvent](type,rootListener,!1)}:function(element,type,add,custom){var entry;if(add){registry.put(entry=new RegEntry(element,custom||type,function(event){rootListener.call(element,event,custom)},rootListener,null,null,!0));custom&&element["_on"+custom]==null&&(element["_on"+custom]=0);entry.target.attachEvent("on"+entry.eventType,entry.handler)}else{entry=registry.get(element,custom||type,rootListener,!0)[0];if(entry){entry.target.detachEvent("on"+entry.eventType,entry.handler);registry.del(entry)}}},once=function(rm,element,type,fn,originalFn){return function(){fn.apply(this,arguments);rm(element,type,originalFn)}},removeListener=function(element,orgType,handler,namespaces){var type=orgType&&orgType.replace(nameRegex,""),handlers=registry.get(element,type,null,!1),removed={},i,l;for(i=0,l=handlers.length;i<l;i++)if((!handler||handlers[i].original===handler)&&handlers[i].inNamespaces(namespaces)){registry.del(handlers[i]);!removed[handlers[i].eventType]&&handlers[i][eventSupport]&&(removed[handlers[i].eventType]={t:handlers[i].eventType,c:handlers[i].type})}for(i in removed)registry.has(element,removed[i].t,null,!1)||listener(element,removed[i].t,!1,removed[i].c)},delegate=function(selector,fn){var findTarget=function(target,root){var i,array=isString(selector)?selectorEngine(selector,root):selector;for(;target&&target!==root;target=target.parentNode)for(i=array.length;i--;)if(array[i]===target)return target},handler=function(e){var match=findTarget(e.target,this);match&&fn.apply(match,arguments)};handler.__beanDel={ft:findTarget,selector:selector};return handler},fireListener=W3C_MODEL?function(isNative,type,element){var evt=doc.createEvent(isNative?"HTMLEvents":"UIEvents");evt[isNative?"initEvent":"initUIEvent"](type,!0,!0,win,1);element.dispatchEvent(evt)}:function(isNative,type,element){element=targetElement(element,isNative);isNative?element.fireEvent("on"+type,doc.createEventObject()):element["_on"+type]++},off=function(element,typeSpec,fn){var isTypeStr=isString(typeSpec),k,type,namespaces,i;if(isTypeStr&&typeSpec.indexOf(" ")>0){typeSpec=str2arr(typeSpec);for(i=typeSpec.length;i--;)off(element,typeSpec[i],fn);return element}type=isTypeStr&&typeSpec.replace(nameRegex,"");type&&customEvents[type]&&(type=customEvents[type].type);if(!typeSpec||isTypeStr){if(namespaces=isTypeStr&&typeSpec.replace(namespaceRegex,""))namespaces=str2arr(namespaces,".");removeListener(element,type,fn,namespaces)}else if(isFunction(typeSpec))removeListener(element,null,typeSpec);else for(k in typeSpec)typeSpec.hasOwnProperty(k)&&off(element,k,typeSpec[k]);return element},on=function(element,events,selector,fn){var originalFn,type,types,i,args,entry,first;if(selector===undefined&&typeof events=="object"){for(type in events)events.hasOwnProperty(type)&&on.call(this,element,type,events[type]);return}if(!isFunction(selector)){originalFn=fn;args=slice.call(arguments,4);fn=delegate(selector,originalFn,selectorEngine)}else{args=slice.call(arguments,3);fn=originalFn=selector}types=str2arr(events);this===ONE&&(fn=once(off,element,events,fn,originalFn));for(i=types.length;i--;){first=registry.put(entry=new RegEntry(element,types[i].replace(nameRegex,""),fn,originalFn,str2arr(types[i].replace(namespaceRegex,""),"."),args,!1));entry[eventSupport]&&first&&listener(element,entry.eventType,!0,entry.customType)}return element},add=function(element,events,fn,delfn){return on.apply(null,isString(fn)?[element,fn,events,delfn].concat(arguments.length>3?slice.call(arguments,5):[]):slice.call(arguments))},one=function(){return on.apply(ONE,arguments)},fire=function(element,type,args){var types=str2arr(type),i,j,l,names,handlers;for(i=types.length;i--;){type=types[i].replace(nameRegex,"");if(names=types[i].replace(namespaceRegex,""))names=str2arr(names,".");if(!names&&!args&&element[eventSupport])fireListener(nativeEvents[type],type,element);else{handlers=registry.get(element,type,null,!1);args=[!1].concat(args);for(j=0,l=handlers.length;j<l;j++)handlers[j].inNamespaces(names)&&handlers[j].handler.apply(element,args)}}return element},clone=function(element,from,type){var handlers=registry.get(from,type,null,!1),l=handlers.length,i=0,args,beanDel;for(;i<l;i++)if(handlers[i].original){args=[element,handlers[i].type];(beanDel=handlers[i].handler.__beanDel)&&args.push(beanDel.selector);args.push(handlers[i].original);on.apply(null,args)}return element},bean={on:on,add:add,one:one,off:off,remove:off,clone:clone,fire:fire,setSelectorEngine:setSelectorEngine,noConflict:function(){context[name]=old;return this}};if(win.attachEvent){var cleanup=function(){var i,entries=registry.entries();for(i in entries)entries[i].type&&entries[i].type!=="unload"&&off(entries[i].element,entries[i].type);win.detachEvent("onunload",cleanup);win.CollectGarbage&&win.CollectGarbage()};win.attachEvent("onunload",cleanup)}setSelectorEngine();return bean});provide("bean",module.exports);!function($){var b=require("bean"),integrate=function(method,type,method2){var _args=type?[type]:[];return function(){for(var i=0,l=this.length;i<l;i++){!arguments.length&&method=="on"&&type&&(method="fire");b[method].apply(this,[this[i]].concat(_args,Array.prototype.slice.call(arguments,0)))}return this}},add=integrate("add"),on=integrate("on"),one=integrate("one"),off=integrate("off"),fire=integrate("fire"),clone=integrate("clone"),hover=function(enter,leave,i){for(i=this.length;i--;){b.on.call(this,this[i],"mouseenter",enter);b.on.call(this,this[i],"mouseleave",leave)}return this},methods={on:on,addListener:on,bind:on,listen:on,delegate:add,one:one,off:off,unbind:off,unlisten:off,removeListener:off,undelegate:off,emit:fire,trigger:fire,cloneEvents:clone,hover:hover},shortcuts="blur change click dblclick error focus focusin focusout keydown keypress keyup load mousedown mouseenter mouseleave mouseout mouseover mouseup mousemove resize scroll select submit unload".split(" ");for(var i=shortcuts.length;i--;)methods[shortcuts[i]]=integrate("on",shortcuts[i]);b.setSelectorEngine($);$.ender(methods,!0)}(ender)})();(function(){var module={exports:{}},exports=module.exports; /*! * domready (c) Dustin Diaz 2012 - License MIT */ ;!function(name,definition){typeof module!="undefined"?module.exports=definition():typeof define=="function"&&typeof define.amd=="object"?define(definition):this[name]=definition()}("domready",function(ready){function flush(f){loaded=1;while(f=fns.shift())f()}var fns=[],fn,f=!1,doc=document,testEl=doc.documentElement,hack=testEl.doScroll,domContentLoaded="DOMContentLoaded",addEventListener="addEventListener",onreadystatechange="onreadystatechange",readyState="readyState",loaded=/^loade|c/.test(doc[readyState]);doc[addEventListener]&&doc[addEventListener](domContentLoaded,fn=function(){doc.removeEventListener(domContentLoaded,fn,f);flush()},f);hack&&doc.attachEvent(onreadystatechange,fn=function(){if(/^c/.test(doc[readyState])){doc.detachEvent(onreadystatechange,fn);flush()}});return ready=hack?function(fn){self!=top?loaded?fn():fns.push(fn):function(){try{testEl.doScroll("left")}catch(e){return setTimeout(function(){ready(fn)},50)}fn()}()}:function(fn){loaded?fn():fns.push(fn)}});provide("domready",module.exports);!function($){var ready=require("domready");$.ender({domReady:ready});$.ender({ready:function(f){ready(f);return this}},!0)}(ender)})();(function(){var module={exports:{}},exports=module.exports; /*! * Bonzo: DOM Utility (c) Dustin Diaz 2012 * https://github.com/ded/bonzo * License MIT */ (function(name,definition,context){typeof module!="undefined"&&module.exports?module.exports=definition():typeof context["define"]=="function"&&context.define.amd?define(name,definition):context[name]=definition()})("bonzo",function(){function classReg(c){return new RegExp("(^|\\s+)"+c+"(\\s+|$)")}function each(ar,fn,opt_scope,opt_rev){var ind,i=0,l=ar.length;for(;i<l;i++){ind=opt_rev?ar.length-i-1:i;fn.call(opt_scope||ar[ind],ar[ind],ind,ar)}return ar}function deepEach(ar,fn,opt_scope){for(var i=0,l=ar.length;i<l;i++)if(isNode(ar[i])){deepEach(ar[i].childNodes,fn,opt_scope);fn.call(opt_scope||ar[i],ar[i],i,ar)}return ar}function camelize(s){return s.replace(/-(.)/g,function(m,m1){return m1.toUpperCase()})}function decamelize(s){return s?s.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase():s}function data(el){el[getAttribute]("data-node-uid")||el[setAttribute]("data-node-uid",++uuids);var uid=el[getAttribute]("data-node-uid");return uidMap[uid]||(uidMap[uid]={})}function clearData(el){var uid=el[getAttribute]("data-node-uid");uid&&delete uidMap[uid]}function dataValue(d){var f;try{return d===null||d===undefined?undefined:d==="true"?!0:d==="false"?!1:d==="null"?null:(f=parseFloat(d))==d?f:d}catch(e){}return undefined}function isNode(node){return node&&node.nodeName&&(node.nodeType==1||node.nodeType==11)}function some(ar,fn,opt_scope){for(var i=0,j=ar.length;i<j;++i)if(fn.call(opt_scope||null,ar[i],i,ar))return!0;return!1}function styleProperty(p){p=="transform"&&(p=features.transform)||/^transform-?[Oo]rigin$/.test(p)&&(p=features.transform+"Origin")||p=="float"&&(p=features.cssFloat);return p?camelize(p):null}function insert(target,host,fn,rev){var i=0,self=host||this,r=[],nodes=query&&typeof target=="string"&&target.charAt(0)!="<"?query(target):target;each(normalize(nodes),function(t,j){each(self,function(el){fn(t,r[i++]=j>0?cloneNode(self,el):el)},null,rev)},this,rev);self.length=i;each(r,function(e){self[--i]=e},null,!rev);return self}function xy(el,x,y){var $el=bonzo(el),style=$el.css("position"),offset=$el.offset(),rel="relative",isRel=style==rel,delta=[parseInt($el.css("left"),10),parseInt($el.css("top"),10)];if(style=="static"){$el.css("position",rel);style=rel}isNaN(delta[0])&&(delta[0]=isRel?0:el.offsetLeft);isNaN(delta[1])&&(delta[1]=isRel?0:el.offsetTop);x!=null&&(el.style.left=x-offset.left+delta[0]+px);y!=null&&(el.style.top=y-offset.top+delta[1]+px)}function setter(el,v){return typeof v=="function"?v(el):v}function Bonzo(elements){this.length=0;if(elements){elements=typeof elements!="string"&&!elements.nodeType&&typeof elements.length!="undefined"?elements:[elements];this.length=elements.length;for(var i=0;i<elements.length;i++)this[i]=elements[i]}}function normalize(node,host,clone){var i,l,ret;if(typeof node=="string")return bonzo.create(node);isNode(node)&&(node=[node]);if(clone){ret=[];for(i=0,l=node.length;i<l;i++)ret[i]=cloneNode(host,node[i]);return ret}return node}function cloneNode(host,el){var c=el.cloneNode(!0),cloneElems,elElems;if(host.$&&typeof host.cloneEvents=="function"){host.$(c).cloneEvents(el);cloneElems=host.$(c).find("*");elElems=host.$(el).find("*");for(var i=0;i<elElems.length;i++)host.$(cloneElems[i]).cloneEvents(elElems[i])}return c}function scroll(x,y,type){var el=this[0];if(!el)return this;if(x==null&&y==null)return(isBody(el)?getWindowScroll():{x:el.scrollLeft,y:el.scrollTop})[type];if(isBody(el))win.scrollTo(x,y);else{x!=null&&(el.scrollLeft=x);y!=null&&(el.scrollTop=y)}return this}function isBody(element){return element===win||/^(?:body|html)$/i.test(element.tagName)}function getWindowScroll(){return{x:win.pageXOffset||html.scrollLeft,y:win.pageYOffset||html.scrollTop}}function bonzo(els){return new Bonzo(els)}var win=window,doc=win.document,html=doc.documentElement,parentNode="parentNode",query=null,specialAttributes=/^(checked|value|selected|disabled)$/i,specialTags=/^(select|fieldset|table|tbody|tfoot|td|tr|colgroup)$/i,table=["<table>","</table>",1],td=["<table><tbody><tr>","</tr></tbody></table>",3],option=["<select>","</select>",1],noscope=["_","",0,1],tagMap={thead:table,tbody:table,tfoot:table,colgroup:table,caption:table,tr:["<table><tbody>","</tbody></table>",2],th:td,td:td,col:["<table><colgroup>","</colgroup></table>",2],fieldset:["<form>","</form>",1],legend:["<form><fieldset>","</fieldset></form>",2],option:option,optgroup:option,script:noscope,style:noscope,link:noscope,param:noscope,base:noscope},stateAttributes=/^(checked|selected|disabled)$/,ie=/msie/i.test(navigator.userAgent),hasClass,addClass,removeClass,uidMap={},uuids=0,digit=/^-?[\d\.]+$/,dattr=/^data-(.+)$/,px="px",setAttribute="setAttribute",getAttribute="getAttribute",byTag="getElementsByTagName",features=function(){var e=doc.createElement("p");e.innerHTML='<a href="#x">x</a><table style="float:left;"></table>';return{hrefExtended:e[byTag]("a")[0][getAttribute]("href")!="#x",autoTbody:e[byTag]("tbody").length!==0,computedStyle:doc.defaultView&&doc.defaultView.getComputedStyle,cssFloat:e[byTag]("table")[0].style.styleFloat?"styleFloat":"cssFloat",transform:function(){var props=["transform","webkitTransform","MozTransform","OTransform","msTransform"],i;for(i=0;i<props.length;i++)if(props[i]in e.style)return props[i]}(),classList:"classList"in e,opasity:function(){return typeof doc.createElement("a").style.opacity!="undefined"}()}}(),trimReplace=/(^\s*|\s*$)/g,whitespaceRegex=/\s+/,toString=String.prototype.toString,unitless={lineHeight:1,zoom:1,zIndex:1,opacity:1,boxFlex:1,WebkitBoxFlex:1,MozBoxFlex:1},trim=String.prototype.trim?function(s){return s.trim()}:function(s){return s.replace(trimReplace,"")},getStyle=features.computedStyle?function(el,property){var value=null,computed=doc.defaultView.getComputedStyle(el,"");computed&&(value=computed[property]);return el.style[property]||value}:ie&&html.currentStyle?function(el,property){if(property=="opacity"&&!features.opasity){var val=100;try{val=el.filters["DXImageTransform.Microsoft.Alpha"].opacity}catch(e1){try{val=el.filters("alpha").opacity}catch(e2){}}return val/100}var value=el.currentStyle?el.currentStyle[property]:null;return el.style[property]||value}:function(el,property){return el.style[property]};if(features.classList){hasClass=function(el,c){return el.classList.contains(c)};addClass=function(el,c){el.classList.add(c)};removeClass=function(el,c){el.classList.remove(c)}}else{hasClass=function(el,c){return classReg(c).test(el.className)};addClass=function(el,c){el.className=trim(el.className+" "+c)};removeClass=function(el,c){el.className=trim(el.className.replace(classReg(c)," "))}}Bonzo.prototype={get:function(index){return this[index]||null},each:function(fn,opt_scope){return each(this,fn,opt_scope)},deepEach:function(fn,opt_scope){return deepEach(this,fn,opt_scope)},map:function(fn,opt_reject){var m=[],n,i;for(i=0;i<this.length;i++){n=fn.call(this,this[i],i);opt_reject?opt_reject(n)&&m.push(n):m.push(n)}return m},html:function(h,opt_text){var method=opt_text?html.textContent===undefined?"innerText":"textContent":"innerHTML",that=this,append=function(el,i){each(normalize(h,that,i),function(node){el.appendChild(node)})},updateElement=function(el,i){try{if(opt_text||typeof h=="string"&&!specialTags.test(el.tagName))return el[method]=h}catch(e){}append(el,i)};return typeof h!="undefined"?this.empty().each(updateElement):this[0]?this[0][method]:""},text:function(opt_text){return this.html(opt_text,!0)},append:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el.appendChild(i)})})},prepend:function(node){var that=this;return this.each(function(el,i){var first=el.firstChild;each(normalize(node,that,i),function(i){el.insertBefore(i,first)})})},appendTo:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t.appendChild(el)})},prependTo:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t.insertBefore(el,t.firstChild)},1)},before:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el[parentNode].insertBefore(i,el)})})},after:function(node){var that=this;return this.each(function(el,i){each(normalize(node,that,i),function(i){el[parentNode].insertBefore(i,el.nextSibling)},null,1)})},insertBefore:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){t[parentNode].insertBefore(el,t)})},insertAfter:function(target,opt_host){return insert.call(this,target,opt_host,function(t,el){var sibling=t.nextSibling;sibling?t[parentNode].insertBefore(el,sibling):t[parentNode].appendChild(el)},1)},replaceWith:function(node){bonzo(normalize(node)).insertAfter(this);return this.remove()},addClass:function(c){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&!hasClass(el,setter(el,c))&&addClass(el,setter(el,c))})})},removeClass:function(c){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&hasClass(el,setter(el,c))&&removeClass(el,setter(el,c))})})},hasClass:function(c){c=toString.call(c).split(whitespaceRegex);return some(this,function(el){return some(c,function(c){return c&&hasClass(el,c)})})},toggleClass:function(c,opt_condition){c=toString.call(c).split(whitespaceRegex);return this.each(function(el){each(c,function(c){c&&(typeof opt_condition!="undefined"?opt_condition?addClass(el,c):removeClass(el,c):hasClass(el,c)?removeClass(el,c):addClass(el,c))})})},show:function(opt_type){opt_type=typeof opt_type=="string"?opt_type:"";return this.each(function(el){el.style.display=opt_type})},hide:function(){return this.each(function(el){el.style.display="none"})},toggle:function(opt_callback,opt_type){opt_type=typeof opt_type=="string"?opt_type:"";typeof opt_callback!="function"&&(opt_callback=null);return this.each(function(el){el.style.display=el.offsetWidth||el.offsetHeight?"none":opt_type;opt_callback&&opt_callback.call(el)})},first:function(){return bonzo(this.length?this[0]:[])},last:function(){return bonzo(this.length?this[this.length-1]:[])},next:function(){return this.related("nextSibling")},previous:function(){return this.related("previousSibling")},parent:function(){return this.related(parentNode)},related:function(method){return this.map(function(el){el=el[method];while(el&&el.nodeType!==1)el=el[method];return el||0},function(el){return el})},focus:function(){this.length&&this[0].focus();return this},blur:function(){this.length&&this[0].blur();return this},css:function(o,opt_v){function fn(el,p,v){for(var k in iter)if(iter.hasOwnProperty(k)){v=iter[k];(p=styleProperty(k))&&digit.test(v)&&!(p in unitless)&&(v+=px);try{el.style[p]=setter(el,v)}catch(e){}}}var p,iter=o;if(opt_v===undefined&&typeof o=="string"){opt_v=this[0];if(!opt_v)return null;if(opt_v===doc||opt_v===win){p=opt_v===doc?bonzo.doc():bonzo.viewport();return o=="width"?p.width:o=="height"?p.height:""}return(o=styleProperty(o))?getStyle(opt_v,o):null}if(typeof o=="string")