From 8698a276f937cb1cd6f67f7f213e2ea438500d7e Mon Sep 17 00:00:00 2001 From: Brandon Mathis Date: Mon, 30 May 2011 00:30:16 -0400 Subject: Cleaned out public from repository, updated gitignore, added syntax highlighting tests, improved syntax highlighting and styling of pre blocks. Overriding dynamic gist styling. Added a plugin for pygments caching which should speed things up terrifically. added ender.js as a lightweight way of scripting the DOM, events, etc. Some general typography and semantic html improvements. --- .../javascripts/libs/DOMAssistantCompressed-2.8.js | 4 - source/javascripts/libs/ender.js | 1497 +++++++++++++++++++ source/javascripts/libs/ender.min.js | 8 + .../libs/ie/DOMAssistantComplete-2.8.js | 1529 ++++++++++++++++++++ source/javascripts/libs/ie/respond.js | 292 ++++ source/javascripts/libs/ie/selectivizr-1.0.1.js | 5 + .../libs/ios-viewport-scaling-bug-fix.js | 28 +- source/javascripts/libs/jXHR.js | 85 ++ source/javascripts/libs/json2.js | 481 ++++++ source/javascripts/libs/modernizr-1.7.js | 964 ++++++++++++ source/javascripts/libs/modernizr-1.7.min.js | 2 - source/javascripts/libs/respond.js | 8 - source/javascripts/libs/selectivizr-min.js | 5 - source/javascripts/pinboard.js | 8 +- source/javascripts/syntax-helper.js | 30 + source/javascripts/twitter.js | 14 +- 16 files changed, 4911 insertions(+), 49 deletions(-) delete mode 100644 source/javascripts/libs/DOMAssistantCompressed-2.8.js create mode 100644 source/javascripts/libs/ender.js create mode 100644 source/javascripts/libs/ender.min.js create mode 100644 source/javascripts/libs/ie/DOMAssistantComplete-2.8.js create mode 100644 source/javascripts/libs/ie/respond.js create mode 100644 source/javascripts/libs/ie/selectivizr-1.0.1.js create mode 100644 source/javascripts/libs/jXHR.js create mode 100644 source/javascripts/libs/json2.js create mode 100644 source/javascripts/libs/modernizr-1.7.js delete mode 100644 source/javascripts/libs/modernizr-1.7.min.js delete mode 100644 source/javascripts/libs/respond.js delete mode 100755 source/javascripts/libs/selectivizr-min.js create mode 100644 source/javascripts/syntax-helper.js (limited to 'source/javascripts') diff --git a/source/javascripts/libs/DOMAssistantCompressed-2.8.js b/source/javascripts/libs/DOMAssistantCompressed-2.8.js deleted file mode 100644 index ff9ef9e0..00000000 --- a/source/javascripts/libs/DOMAssistantCompressed-2.8.js +++ /dev/null @@ -1,4 +0,0 @@ -// Developed by Robert Nyman/DOMAssistant team, code/licensing: http://domassistant.googlecode.com/, documentation: http://www.domassistant.com/documentation, version 2.8 -var DOMAssistant=function(){var j=function(){},o=window,g=o.$,k=o.$$,d=/*@cc_on!@*/false,i=d&&parseFloat(navigator.appVersion)<6,h,c={},q={},a=true,n=Array.prototype.slice,p={accesskey:"accessKey","class":"className",colspan:"colSpan","for":"htmlFor",maxlength:"maxLength",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",valign:"vAlign",cellspacing:"cellSpacing",cellpadding:"cellPadding"},m={rules:/\s*,\s*/g,selector:/^(\w+|\*)?(#[\w\u00C0-\uFFFF\-=$]+)?((\.[\w\u00C0-\uFFFF\-]+)*)?((\[\w+\s*([~^$*|])?(=\s*([-\w\u00C0-\uFFFF\s.]+|"[^"]*"|'[^']*'))?\]+)*)?((:\w[-\w]*(\((odd|even|\-?\d*n?([-+]\d+)?|[:#]?[-\w\u00C0-\uFFFF.]+|"[^"]*"|'[^']*'|((\w*\.[-\w\u00C0-\uFFFF]+)*)?|(\[#?\w+([~^$*|])?=?[-\w\u00C0-\uFFFF\s.'"]+\]+)|(:\w[-\w]*\(.+\)))\))?)*)?([+>~])?/,selectorSplit:/(?:\[.*\]|\(.*\)|[^\s+>~[(])+|[+>~]/g,id:/^#([-\w\u00C0-\uFFFF=$]+)$/,tag:/^\w+/,relation:/^[+>~]$/,pseudo:/^:(\w[-\w]*)(\((.+)\))?$/,pseudos:/:(\w[-\w]*)(\((([^(]+)|([^(]+\([^(]+)\))\))?/g,attribs:/\[(\w+)\s*([~^$*|])?(=)?\s*([^\[\]]*|"[^"]*"|'[^']*')?\](?=$|\[|:|\s)/g,classes:/\.([-\w\u00C0-\uFFFF]+)/g,quoted:/^["'](.*)["']$/,nth:/^((odd|even)|([1-9]\d*)|((([1-9]\d*)?)n([-+]\d+)?)|(-(([1-9]\d*)?)n\+(\d+)))$/,special:/(:check|:enabl|\bselect)ed\b/},f=function(t,u,r){var s=t.tagName;while((t=t[u+"Sibling"])&&(t.nodeType!==1||(r?t.tagName!==s:t.tagName==="!"))){}return t},b=function(r){return typeof r!=="undefined"},l=function(r){return(l=r[0].compareDocumentPosition?function(s){return s.sort(function(u,t){return 3-(u.compareDocumentPosition(t)&6)})}:d?function(s){return s.sort(function(u,t){return u.sourceIndex-t.sourceIndex})}:function(s){return s.sort(function(w,u){var v=document.createRange(),t=document.createRange();v.setStart(w,0);v.setEnd(w,0);t.setStart(u,0);t.setEnd(u,0);return v.compareBoundaryPoints(Range.START_TO_END,t)})})(r)};var e=function(s,r){s.push.apply(s,n.apply(r));return s};if(d){e=function(t,s){if(s.slice){return t.concat(s)}var r=0,u;while((u=s[r++])){t[t.length]=u}return t}}return{isIE:d,camel:p,def:b,allMethods:[],publicMethods:["prev","next","hasChild","cssSelect","elmsByClass","elmsByAttribute","elmsByTag"],harmonize:function(){o.$=g;o.$$=k;return this},initCore:function(){this.applyMethod.call(o,"$",this.$);this.applyMethod.call(o,"$$",this.$$);o.DOMAssistant=this;if(d){j=Array}j.prototype=[];(function(r){r.each=function(v,u){for(var t=0,s=this.length;t=u)?(w-u)%u:w}else{if(t[8]){u=t[10]?parseInt(t[10],10):1;w=s=parseInt(t[11],10);while(w>u){w-=u}r=(s>=u)?(s-u)%u:s}}}}return{start:w,add:u,max:s,modVal:r}},cssByDOM:function(v){var aU,I,D,N,av,x,ah,A,K,w,aq,aN,y,aI,at,aB=new j(),aR=aB.indexOf,ap=[],aG=[],aK=v.replace(m.rules,",").split(","),aF={};function aQ(s){s=s||ap;for(var r=s.length;r--;){s[r].added=null;s[r].removeAttribute("added")}}function C(){for(var r=aU.length;r--;){aU[r].childElms=null}}function am(t,r){for(var u=0,aX;(aX=t[u]);u++){var aW=false;for(var s=0,aV;(aV=r[s]);s++){if(aV===aX){aW=true;r.splice(s,1);break}}if(aW){t.splice(u--,1)}}return t}function E(s,r){return(d||m.special.test(r))?s[p[r.toLowerCase()]||r]:s.getAttribute(r,2)}function P(r,s){r=r?r.replace(m.quoted,"$1").replace(/(\.|\[|\])/g,"\\$1"):null;return{"^":"^"+r,"$":r+"$","*":r,"|":"^"+r+"(\\-\\w+)*$","~":"\\b"+r+"\\b"}[s]||(r!==null?"^"+r+"$":r)}function W(r){return(r||this).tagName!=="!"}function S(r,s){return i?(r==="*"?s.all:s.all.tags(r)):s.getElementsByTagName(r)}function aL(r,s){r=r||"*";s=s||document;return(s===document||s.lastModified)?c[r]||(c[r]=S(r,document)):S(r,s)}function ar(aX,bf,u){aU=[];var aV=bf.split("-"),a0=[],a5=0,be=/\-of\-type$/.test(bf),a4,aZ={first:function(bg){return !f(bg,"previous",be)},last:function(bg){return !f(bg,"next",be)},empty:function(bg){return !bg.firstChild},enabled:function(bg){return !bg.disabled&&bg.type!=="hidden"},disabled:function(bg){return bg.disabled},checked:function(bg){return bg.checked},contains:function(bg){return(bg.innerText||bg.textContent||"").indexOf(u.replace(m.quoted,"$1"))>-1},other:function(bg){return E(bg,bf)===u}};function t(bg){while((A=aX[a5++])){if(W(A)&&aZ[bg](A)){a0[a0.length]=A}}return a0}var bb=aV[0]||null;if(bb&&aZ[bb]){return t(bb)}switch(bb){case"only":var a1,aW;while((A=aX[a5++])){K=A.parentNode;var a6=A.nodeName;if(K!==a1||a6!==aW){if(aZ.first(A)&&aZ.last(A)){a0[a0.length]=A}a1=K;aW=a6}}break;case"nth":if(u==="n"){a0=aX}else{var bd=(aV[1]==="last")?["lastChild","previousSibling"]:["firstChild","nextSibling"];aI=DOMAssistant.getSequence(u);if(aI){while((A=aX[a5++])){K=A.parentNode;K.childElms=K.childElms||{};var a7=A.nodeName;if(!K.childElms[a7]){var ba=0;aN=aI.start;y=K[bd[0]];while(y&&(aI.max<0||aN<=aI.max)){var bc=y.nodeName;if((be&&bc===a7)||(!be&&y.nodeType===1&&bc!=="!")){if(++ba===aN){if(bc===a7){a0[a0.length]=y}aN+=aI.add}}y=y[bd[1]]}if(at){h++}K.childElms[a7]=true;aU[aU.length]=K}}C()}}break;case"target":var s=document.location.hash.slice(1);if(s){while((A=aX[a5++])){if(E(A,"name")===s||E(A,"id")===s){a0[a0.length]=A;break}}}break;case"not":if((a4=m.pseudo.exec(u))){a0=am(aX,ar(aX,a4[1]?a4[1].toLowerCase():null,a4[3]||null))}else{for(var a8 in m){if(m[a8].lastIndex){m[a8].lastIndex=0}}u=u.replace(m.id,"[id=$1]");var a3=m.tag.exec(u);var aY=m.classes.exec(u);var a2=m.attribs.exec(u);var r=new RegExp(a2?P(a2[4],a2[2]):"(^|\\s)"+(a3?a3[0]:aY?aY[1]:"")+"(\\s|$)","i");while((w=aX[a5++])){aq=null;if(a3&&!r.test(w.nodeName)||aY&&!r.test(w.className)){aq=w}else{if(a2){var a9=E(w,a2[1]);if(!b(a9)||a9===false||typeof a9==="string"&&!r.test(a9)){aq=w}}}if(aq&&!aq.added){aq.added=true;a0[a0.length]=aq}}}break;default:return t("other")}return a0}function Z(aV,t){var r=0,u=aV,aW;while((aW=t[r++])){if(!u.length||u.indexOf(aW)<0){aV.push(aW)}}return aV}h=-1;for(var ak=0,aJ=[];(I=aK[ak]);ak++){if(!(D=I.match(m.selectorSplit))||ak&&aR.call(aK.slice(0,ak),I)>-1){continue}ap=[this];for(var ai=0,G;(G=D[ai]);ai++){aG=[];if((N=m.relation.exec(G))){var an=null,aS=D[ai+1];if((av=m.tag.exec(aS))){av=av[0];x=new RegExp("(^|\\s)"+av+"(\\s|$)","i")}else{if(m.id.test(aS)){an=DOMAssistant.$(aS)||null}}for(var ag=0,M;(M=ap[ag]);ag++){switch(N[0]){case">":var aD=an||aL(av,M);for(var ae=0,ay;(ay=aD[ae]);ae++){if(ay.parentNode===M){aG[aG.length]=ay}}break;case"+":if((M=f(M,"next"))){if((an&&an[0]===M)||(!an&&(!av||x.test(M.nodeName)))){aG[aG.length]=M}}break;case"~":while((M=M.nextSibling)&&!M.added){if((an&&an[0]===M)||(!an&&(!av||x.test(M.nodeName)))){M.added=true;aG[aG.length]=M}}break}}ap=aG;aQ();G=D[++ai];if(/^\w+$/.test(G)||m.id.test(G)){continue}ap.skipTag=true}var au=m.selector.exec(G);aF={tag:au[1]?au[1]:"*",id:au[2],allClasses:au[3],allAttr:au[5],allPseudos:au[10]};at=(aF.tag==="*");if(aF.id){var O=0,al=document.getElementById(aF.id.slice(1));if(al){while(ap[O]&&!DOMAssistant.hasChild.call(ap[O],al)){O++}aG=(O=0||aR.call(aJ,"*")>=0))?Z:e)(aB,ap);aJ.push(aF.tag);if(d&&at){aB=aB.filter(W)}}return((aB.length>1&&aK.length>1)||h>0)?l(aB):aB},cssByXpath:function(s){var t={xhtml:"http://www.w3.org/1999/xhtml"},u=(document.documentElement.namespaceURI===t.xhtml)?"xhtml:":"",r=function v(w){return t[w]||null};DOMAssistant.cssByXpath=function(N){var R,T,J,z,A,E,B=new j(),C=N.replace(m.rules,",").split(",");function M(W){var X=W?"[":"",V=W?"]":"";return function(Y,ac,ab,aa,Z){Z=(Z||"").replace(m.quoted,"$1");if(ac===Z&&ac==="readonly"){aa=null}return X+({"^":"starts-with(@"+ac+', "'+Z+'")',"$":"substring(@"+ac+", (string-length(@"+ac+") - "+(Z.length-1)+"), "+Z.length+') = "'+Z+'"',"*":'contains(concat(" ", @'+ac+', " "), "'+Z+'")',"|":"@"+ac+'="'+Z+'" or starts-with(@'+ac+', "'+Z+'-")',"~":'contains(concat(" ", @'+ac+', " "), " '+Z+' ")'}[ab]||("@"+ac+(aa?'="'+Z+'"':"")))+V}}function P(W,Y,X){W=/\-child$/.test(Y)?"*":W;var aa=Y.split("-"),V=((aa[1]==="last")?"(count(following-sibling::":"(count(preceding-sibling::")+W+") + 1)",Z,ab;switch(aa[0]){case"nth":return(X!=="n"&&(E=DOMAssistant.getSequence(X)))?((E.start===E.max)?V+" = "+E.start:V+" mod "+E.add+" = "+E.modVal+((E.start>1)?" and "+V+" >= "+E.start:"")+((E.max>0)?" and "+V+" <= "+E.max:"")):"";case"not":return"not("+((Z=m.pseudo.exec(X))?P(W,Z[1]?Z[1].toLowerCase():null,Z[3]||null):X.replace(m.id,"[id=$1]").replace(m.tag,"self::$0").replace(m.classes,'contains(concat(" ", @class, " "), " $1 ")').replace(m.attribs,M()))+")";case"first":return"not(preceding-sibling::"+W+")";case"last":return"not(following-sibling::"+W+")";case"only":return"not(preceding-sibling::"+W+" or following-sibling::"+W+")";case"empty":return"not(child::*) and not(text())";case"contains":return'contains(., "'+X.replace(m.quoted,"$1")+'")';case"enabled":return'not(@disabled) and not(@type="hidden")';case"disabled":return"@disabled";case"target":return'@name="'+(ab=document.location.hash.slice(1))+'" or @id="'+ab+'"';default:return"@"+Y+'="'+X+'"'}}for(var O=0;(R=C[O]);O++){if(!(T=R.match(m.selectorSplit))||O&&B.indexOf.call(C.slice(0,O),R)>-1){continue}J=J?J+" | .":".";for(var L=0,Q=T.length;L":"/","+":"/following-sibling::*[1]/self::","~":"/following-sibling::"}[A.tagRelation]||""):((L>0&&m.relation.test(T[L-1]))?A.tag:("//"+A.tag)))+(A.id||"").replace(m.id,'[@id = "$1"]')+(A.allClasses||"").replace(m.classes,'[contains(concat(" ", @class, " "), " $1 ")]')+(A.allAttr||"").replace(m.attribs,M(true));if(A.allPseudos){var D=A.allPseudos.match(m.pseudos);for(var K=0,x=D.length;K0&&ajaxObj.params)?("&"+ajaxObj.params):"")}return DOMAssistant.AJAX.makeCall.call(this,ajaxObj)},get:function(url,callback,addToContent){return DOMAssistant.AJAX.makeCall.call(this,createAjaxObj(url,"GET",callback,addToContent))},post:function(url,callback){return DOMAssistant.AJAX.makeCall.call(this,createAjaxObj(url,"POST",callback))},load:function(url,addToContent){this.get(url,DOMAssistant.AJAX.replaceWithAJAXContent,addToContent)},makeCall:function(ajaxObj){var XMLHttp=DOMAssistant.AJAX.initRequest();if(XMLHttp){globalXMLHttp=XMLHttp;(function(elm){var url=ajaxObj.url,method=ajaxObj.method||"GET",callback=ajaxObj.callback,params=ajaxObj.params,headers=ajaxObj.headers,responseType=ajaxObj.responseType||"text",addToContent=ajaxObj.addToContent,timeout=ajaxObj.timeout||null,ex=ajaxObj.exception,timeoutId=null,done=false;XMLHttp.open(method,url,true);XMLHttp.setRequestHeader("AJAX","true");XMLHttp.setRequestHeader("X-Requested-With","XMLHttpRequest");if(method==="POST"){XMLHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");XMLHttp.setRequestHeader("Content-length",params?params.length:0);if(XMLHttp.overrideMimeType){XMLHttp.setRequestHeader("Connection","close")}}if(responseType==="json"){XMLHttp.setRequestHeader("Accept","application/json, text/javascript, */*")}for(var i in headers){if(typeof i==="string"){XMLHttp.setRequestHeader(i,headers[i])}}if(typeof callback==="function"){XMLHttp.onreadystatechange=function(){try{if(XMLHttp.readyState===4&&!done){window.clearTimeout(timeoutId);done=true;status=XMLHttp.status;statusText=XMLHttp.statusText;readyState=4;if((status||location.protocol!=="file:")&&(status<200||status>=300)){throw new Error(statusText)}var response=/xml/i.test(responseType)?XMLHttp.responseXML:XMLHttp.responseText;if(/json/i.test(responseType)&&!!response){response=(typeof JSON==="object"&&typeof JSON.parse==="function")?JSON.parse(response):eval("("+response+")")}globalXMLHttp=null;XMLHttp.onreadystatechange=function(){};requestPool.push(XMLHttp);callback.call(elm,response,addToContent)}}catch(e){globalXMLHttp=XMLHttp=null;if(typeof ex==="function"){ex.call(elm,e);ex=null}}}}XMLHttp.send(params);if(timeout){timeoutId=window.setTimeout(function(){if(!done){XMLHttp.abort();done=true;if(typeof ex==="function"){readyState=0;status=408;statusText="Request timeout";globalXMLHttp=XMLHttp=null;ex.call(elm,new Error(statusText));ex=null}}},timeout)}})(this)}return this},replaceWithAJAXContent:function(content,add){if(add){this.innerHTML+=content}else{DOMAssistant.cleanUp(this);this.innerHTML=content}},getReadyState:function(){return(globalXMLHttp&&DOMAssistant.def(globalXMLHttp.readyState))?globalXMLHttp.readyState:readyState},getStatus:function(){return status},getStatusText:function(){return statusText}}}();DOMAssistant.attach(DOMAssistant.AJAX);DOMAssistant.CSS=function(){var a=DOMAssistant.def,b={display:true};return{addClass:function(d){if(!this.hasClass(d)){var c=this.className;this.className=c+(c.length?" ":"")+d}return this},removeClass:function(c){return this.replaceClass(c)},replaceClass:function(d,e){var c=new RegExp(("(^|\\s)"+d+"(\\s|$)"),"i");this.className=this.className.replace(c,function(f,h,g){return e?(h+e+g):" "}).replace(/^\s+|\s+$/g,"");return this},hasClass:function(c){return(" "+this.className+" ").indexOf(" "+c+" ")>-1},setStyle:function(f,g){var e=this.style;if("filters" in this&&(typeof f==="string"?/opacity/i.test(f):a(f.opacity))){e.zoom=1;e.filter=(e.filter||"").replace(/alpha\([^)]*\)/,"")+"alpha(opacity="+(a(f.opacity)?f.opacity:g)*100+")"}if(a(e.cssText)){var c=e.cssText;if(typeof f==="object"){for(var d in f){if(typeof d==="string"){if(b[d]){e[d]=f[d]}c+=";"+d+":"+f[d]}}}else{if(b[f]){e[f]=g}c+=";"+f+":"+g}e.cssText=c}return this},getStyle:function(c){var e="",d;c=c.toLowerCase();if(document.defaultView&&document.defaultView.getComputedStyle){e=document.defaultView.getComputedStyle(this,"").getPropertyValue(c)}else{if(this.currentStyle){if("filters" in this&&c==="opacity"){e=(d=this.style.filter||this.currentStyle.filter)&&d.indexOf("opacity=")>=0?parseFloat(d.match(/opacity=([^)]*)/)[1])/100:1}else{c=c.replace(/^float$/,"styleFloat").replace(/\-(\w)/g,function(f,g){return g.toUpperCase()});e=this.currentStyle[c]}if(e==="auto"&&/^(width|height)$/.test(c)&&this.currentStyle.display!=="none"){e=this["offset"+c.charAt(0).toUpperCase()+c.substr(1)]+"px"}}}return e}}}();DOMAssistant.attach(DOMAssistant.CSS);DOMAssistant.Content=function(){var a=DOMAssistant.$$;return{init:function(){DOMAssistant.setCache(false)},create:function(d,c,b,e){var f=a(document.createElement(d));if(c){f=f.setAttributes(c)}if(DOMAssistant.def(e)){f.addContent(e)}if(b){this.appendChild(f)}return f},setAttributes:function(b){if(DOMAssistant.isIE){var c=function(g,e,f){var d=e.toLowerCase();switch(d){case"name":case"type":case"multiple":return a(document.createElement(g.outerHTML.replace(new RegExp(d+"(=[a-zA-Z]+)?")," ").replace(">"," "+d+"="+f+">")));case"style":g.style.cssText=f;return g;default:g[DOMAssistant.camel[d]||e]=f;return g}};DOMAssistant.Content.setAttributes=function(d){var h=this;var g=this.parentNode;for(var f in d){if(typeof d[f]==="string"||typeof d[f]==="number"){var e=c(h,f,d[f]);if(g&&/(name|type)/i.test(f)){if(h.innerHTML){e.innerHTML=h.innerHTML}g.replaceChild(e,h)}h=e}}return h}}else{DOMAssistant.Content.setAttributes=function(d){for(var e in d){if(/class/i.test(e)){this.className=d[e]}else{this.setAttribute(e,d[e])}}return this}}return DOMAssistant.Content.setAttributes.call(this,b)},addContent:function(f){var d=typeof f;if(d==="string"||d==="number"){if(!this.firstChild){this.innerHTML=f}else{var c=document.createElement("div");c.innerHTML=f;for(var b=c.childNodes.length-1,e=null;b>=0;b--){e=this.insertBefore(c.childNodes[b],e)}}}else{if(d==="object"||(d==="function"&&!!f.nodeName)){this.appendChild(f)}}return this},replaceContent:function(b){DOMAssistant.cleanUp(this);return this.addContent(b)},replace:function(g,b){var f=typeof g;if(f==="string"||f==="number"){var e=this.parentNode;var d=DOMAssistant.Content.create.call(e,"div",null,false,g);for(var c=d.childNodes.length;c--;){e.insertBefore(d.childNodes[c],this.nextSibling)}g=this.nextSibling;e.removeChild(this)}else{if(f==="object"||(f==="function"&&!!g.nodeName)){this.parentNode.replaceChild(g,this)}}return b?g:this},remove:function(){DOMAssistant.cleanUp(this);if(this.hasData()){if(this.removeEvent){this.removeEvent()}this.unstore()}this.parentNode.removeChild(this);return null}}}();DOMAssistant.attach(DOMAssistant.Content);DOMAssistant.Events=function(){var i,g="_events",c=!!document.addEventListener,a={focus:true,blur:true},b=DOMAssistant.isIE?{focus:"activate",blur:"deactivate",mouseenter:"mouseover",mouseleave:"mouseout"}:{mouseenter:"mouseover",mouseleave:"mouseout"},f={special:/^submit|reset|change|select$/i,mouseenterleave:/^mouse(enter|leave)$/i,dom:/^DOM/,on:/^on/i},e=function(j){return DOMAssistant.isIE&&f.special.test(j)},d=function(j){return b[j]||j},h=function(n,k,m){n=n||window.event||{};if(n.event){return n}var l={event:n,type:k||n.type,bubbles:n.bubbles||true,cancelable:n.cancelable||false,target:m||n.target||n.srcElement,clientX:n.clientX||0,clientY:n.clientY||0,altKey:n.altKey||false,ctrlKey:n.ctrlKey||false,shiftKey:n.shiftKey||false,button:n.button||null,timeStamp:+new Date(),preventDefault:function(){if(n.preventDefault){n.preventDefault()}this.returnValue=n.returnValue=false},stopPropagation:function(){if(n.stopPropagation){n.stopPropagation()}this.cancelBubble=n.cancelBubble=true}};if(l.target&&3===l.target.nodeType){l.target=l.target.parentNode}l.currentTarget=l.target;l.relatedTarget=n.relatedTarget||(n.fromElement===l.target?n.toElement:n.fromElement)||null;var o=document.documentElement,j=document.body;l.pageX=DOMAssistant.def(n.pageX)?n.pageX:(l.clientX+(o.scrollLeft||j.scrollLeft)-(o.clientLeft||0));l.pageY=DOMAssistant.def(n.pageY)?n.pageY:(l.clientY+(o.scrollTop||j.scrollTop)-(o.clientTop||0));if("number"===typeof n.which){l.keyCode=n.keyCode;l.charCode=l.which=n.which}else{if(n.keyCode){l.keyCode=l.charCode=n.keyCode}}return l};return{publicMethods:["triggerEvent","addEvent","removeEvent","relayEvent","unrelayEvent","preventDefault","cancelBubble"],init:function(){DOMAssistant.preventDefault=this.preventDefault;DOMAssistant.cancelBubble=this.cancelBubble;i=this.handleEvent},triggerEvent:function(r,o,q){var m=d(r),s=this.retrieve(g),j=q||h(q,m,o||this);j.currentTarget=this;if(s&&s[m]){for(var n=0,l=s[m].length;n<\/script>");document.getElementById("ieScriptLoad").onreadystatechange=function(){if(this.readyState==="complete"){e()}}@end@*/ -if(document.addEventListener){document.addEventListener("DOMContentLoaded",e,false)}if(/KHTML|WebKit|iCab/i.test(navigator.userAgent)){a=setInterval(function(){if(/loaded|complete/i.test(document.readyState)){e();clearInterval(a)}},10)}window.onload=e;return{DOMReady:function(){for(var j=0,h=arguments.length,k;j.+?<\\/" + t + ">", "g")); + each(bitches, function (m) { + m = m.replace(/<(.+)>(.+?)<\/\1>/, '$2'); + var bah = doc.createElement(t); + bah.appendChild(doc.createDocumentFragment(m)); + el.appendChild(bah); + }); + } else { + el.innerHTML = node; + } + var nodes = el.childNodes; + el = el.firstChild; + els.push(el); + while (el = el.nextSibling) { + (el.nodeType == 1) && els.push(el); + } + return els; + + }() : is(node) ? [node.cloneNode(true)] : []; + }; + + bonzo.doc = function () { + var w = html.scrollWidth, + h = html.scrollHeight, + vp = this.viewport(); + return { + width: Math.max(w, vp.width), + height: Math.max(h, vp.height) + }; + }; + + bonzo.firstChild = function (el) { + for (var c = el.childNodes, i = 0, j = (c && c.length) || 0, e; i < j; i++) { + if (c[i].nodeType === 1) { + e = c[j = i]; + } + } + return e; + }; + + bonzo.viewport = function () { + var h = self.innerHeight, + w = self.innerWidth; + ie && (h = html.clientHeight) && (w = html.clientWidth); + return { + width: w, + height: h + }; + }; + + bonzo.isAncestor = 'compareDocumentPosition' in html ? + function (container, element) { + return (container.compareDocumentPosition(element) & 16) == 16; + } : 'contains' in html ? + function (container, element) { + return container !== element && container.contains(element); + } : + function (container, element) { + while (element = element.parentNode) { + if (element === container) { + return true; + } + } + return false; + }; + + var old = context.bonzo; + bonzo.noConflict = function () { + context.bonzo = old; + return this; + }; + context['bonzo'] = bonzo; + +}(this);!function ($) { + + var b = bonzo; + b.setQueryEngine($); + $.ender(b); + $.ender(b(), true); + $.ender({ + create: function (node) { + return $(b.create(node)); + } + }); + + $.id = function (id) { + return $([document.getElementById(id)]); + }; + + function indexOf(ar, val) { + for (var i = 0; i < ar.length; i++) { + if (ar[i] === val) { + return i; + } + } + return -1; + } + + function uniq(ar) { + var a = [], i, j; + label: + for (i = 0; i < ar.length; i++) { + for (j = 0; j < a.length; j++) { + if (a[j] == ar[i]) { + continue label; + } + } + a[a.length] = ar[i]; + } + return a; + } + + $.ender({ + parents: function (selector, closest) { + var collection = $(selector), j, k, p, r = []; + for (j = 0, k = this.length; j < k; j++) { + p = this[j]; + while (p = p.parentNode) { + if (indexOf(collection, p) !== -1) { + r.push(p); + if (closest) break; + } + } + } + return $(uniq(r)); + }, + + closest: function (selector) { + return this.parents(selector, true); + }, + + first: function () { + return $(this[0]); + }, + + last: function () { + return $(this[this.length - 1]); + }, + + next: function () { + return $(b(this).next()); + }, + + previous: function () { + return $(b(this).previous()); + }, + + appendTo: function (t) { + return b(this.selector).appendTo(t, this); + }, + + prependTo: function (t) { + return b(this.selector).prependTo(t, this); + }, + + insertAfter: function (t) { + return b(this.selector).insertAfter(t, this); + }, + + insertBefore: function (t) { + return b(this.selector).insertBefore(t, this); + }, + + siblings: function () { + var i, l, p, r = []; + for (i = 0, l = this.length; i < l; i++) { + p = this[i]; + while (p = p.previousSibling) { + p.nodeType == 1 && r.push(p); + } + p = this[i]; + while (p = p.nextSibling) { + p.nodeType == 1 && r.push(p); + } + } + return $(r); + }, + + children: function () { + var el, r = []; + for (i = 0, l = this.length; i < l; i++) { + if (!(el = b.firstChild(this[i]))) { + continue; + } + r.push(el); + while (el = el.nextSibling) { + el.nodeType == 1 && r.push(el); + } + } + return $(uniq(r)); + }, + + height: function (v) { + return v ? this.css('height', v) : parseInt(this.css('height'), 10); + }, + + width: function (v) { + return v ? this.css('width', v) : parseInt(this.css('width'), 10); + } + }, true); + +}(ender || $); + +!function () { var exports = {}, module = { exports: exports }; !function (doc) { + var loaded = 0, fns = [], ol, f = false, + testEl = doc.createElement('a'), + domContentLoaded = 'DOMContentLoaded', + addEventListener = 'addEventListener', + onreadystatechange = 'onreadystatechange'; + + /^loade|c/.test(doc.readyState) && (loaded = 1); + + function flush() { + loaded = 1; + for (var i = 0, l = fns.length; i < l; i++) { + fns[i](); + } + } + doc[addEventListener] && doc[addEventListener](domContentLoaded, function fn() { + doc.removeEventListener(domContentLoaded, fn, f); + flush(); + }, f); + + + testEl.doScroll && doc.attachEvent(onreadystatechange, (ol = function ol() { + if (/^c/.test(doc.readyState)) { + doc.detachEvent(onreadystatechange, ol); + flush(); + } + })); + + var domReady = testEl.doScroll ? + function (fn) { + self != top ? + !loaded ? + fns.push(fn) : + fn() : + !function () { + try { + testEl.doScroll('left'); + } catch (e) { + return setTimeout(function() { + domReady(fn); + }, 50); + } + fn(); + }(); + } : + function (fn) { + loaded ? fn() : fns.push(fn); + }; + + (typeof module !== 'undefined') && module.exports ? + (module.exports = {domReady: domReady}) : + (window.domReady = domReady); + +}(document); $.ender(module.exports); }.call($); +/*! + * qwery.js - copyright @dedfat + * https://github.com/ded/qwery + * Follow our software http://twitter.com/dedfat + * MIT License + */ + +!function (context, doc) { + + var c, i, j, k, l, m, o, p, r, v, + el, node, len, found, classes, item, items, token, + id = /#([\w\-]+)/, + clas = /\.[\w\-]+/g, + idOnly = /^#([\w\-]+$)/, + classOnly = /^\.([\w\-]+)$/, + tagOnly = /^([\w\-]+)$/, + tagAndOrClass = /^([\w]+)?\.([\w\-]+)$/, + html = doc.documentElement, + tokenizr = /\s(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\])/, + specialChars = /([.*+?\^=!:${}()|\[\]\/\\])/g, + simple = /^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/, + attr = /\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/, + chunker = new RegExp(simple.source + '(' + attr.source + ')?'); + + function array(ar) { + r = []; + for (i = 0, len = ar.length; i < len; i++) { + r[i] = ar[i]; + } + return r; + } + + var cache = function () { + this.c = {}; + }; + cache.prototype = { + g: function (k) { + return this.c[k] || undefined; + }, + s: function (k, v) { + this.c[k] = v; + return v; + } + }; + + var classCache = new cache(), + cleanCache = new cache(), + attrCache = new cache(), + tokenCache = new cache(); + + function q(query) { + return query.match(chunker); + } + + function interpret(whole, tag, idsAndClasses, wholeAttribute, attribute, qualifier, value) { + var m, c, k; + if (tag && this.tagName.toLowerCase() !== tag) { + return false; + } + if (idsAndClasses && (m = idsAndClasses.match(id)) && m[1] !== this.id) { + return false; + } + if (idsAndClasses && (classes = idsAndClasses.match(clas))) { + for (i = classes.length; i--;) { + c = classes[i].slice(1); + if (!(classCache.g(c) || classCache.s(c, new RegExp('(^|\\s+)' + c + '(\\s+|$)'))).test(this.className)) { + return false; + } + } + } + if (wholeAttribute && !value) { + o = this.attributes; + for (k in o) { + if (Object.prototype.hasOwnProperty.call(o, k) && (o[k].name || k) == attribute) { + return this; + } + } + } + if (wholeAttribute && !checkAttr(qualifier, this.getAttribute(attribute) || '', value)) { + return false; + } + return this; + } + + function loopAll(tokens) { + var r = [], token = tokens.pop(), intr = q(token), tag = intr[1] || '*', i, l, els, + root = tokens.length && (m = tokens[0].match(idOnly)) ? doc.getElementById(m[1]) : doc; + if (!root) { + return r; + } + els = root.getElementsByTagName(tag); + for (i = 0, l = els.length; i < l; i++) { + el = els[i]; + if (item = interpret.apply(el, intr)) { + r.push(item); + } + } + return r; + } + + function clean(s) { + return cleanCache.g(s) || cleanCache.s(s, s.replace(specialChars, '\\$1')); + } + + function checkAttr(qualify, actual, val) { + switch (qualify) { + case '=': + return actual == val; + case '^=': + return actual.match(attrCache.g('^=' + val) || attrCache.s('^=' + val, new RegExp('^' + clean(val)))); + case '$=': + return actual.match(attrCache.g('$=' + val) || attrCache.s('$=' + val, new RegExp(clean(val) + '$'))); + case '*=': + return actual.match(attrCache.g(val) || attrCache.s(val, new RegExp(clean(val)))); + case '~=': + return actual.match(attrCache.g('~=' + val) || attrCache.s('~=' + val, new RegExp('(?:^|\\s+)' + clean(val) + '(?:\\s+|$)'))); + case '|=': + return actual.match(attrCache.g('|=' + val) || attrCache.s('|=' + val, new RegExp('^' + clean(val) + '(-|$)'))); + } + return false; + } + + function _qwery(selector) { + var r = [], ret = [], i, l, + tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr)); + tokens = tokens.slice(0); + if (!tokens.length) { + return r; + } + r = loopAll(tokens); + if (!tokens.length) { + return r; + } + // loop through all descendent tokens + for (j = 0, l = r.length, k = 0; j < l; j++) { + node = r[j]; + p = node; + // loop through each token + for (i = tokens.length; i--;) { + z: // loop through parent nodes + while (p !== html && (p = p.parentNode)) { + if (found = interpret.apply(p, q(tokens[i]))) { + break z; + } + } + } + found && (ret[k++] = node); + } + return ret; + } + + function boilerPlate(selector, _root, fn) { + var root = (typeof _root == 'string') ? fn(_root)[0] : (_root || doc); + if (selector === window || isNode(selector)) { + return !_root || (selector !== window && isNode(root) && isAncestor(selector, root)) ? [selector] : []; + } + if (selector && typeof selector === 'object' && isFinite(selector.length)) { + return array(selector); + } + if (m = selector.match(idOnly)) { + return (el = doc.getElementById(m[1])) ? [el] : []; + } + if (m = selector.match(tagOnly)) { + return array(root.getElementsByTagName(m[1])); + } + return false; + } + + function isNode(el) { + return (el && el.nodeType && (el.nodeType == 1 || el.nodeType == 9)); + } + + function uniq(ar) { + var a = [], i, j; + label: + for (i = 0; i < ar.length; i++) { + for (j = 0; j < a.length; j++) { + if (a[j] == ar[i]) { + continue label; + } + } + a[a.length] = ar[i]; + } + return a; + } + + function qwery(selector, _root) { + var root = (typeof _root == 'string') ? qwery(_root)[0] : (_root || doc); + if (!root || !selector) { + return []; + } + if (m = boilerPlate(selector, _root, qwery)) { + return m; + } + return select(selector, root); + } + + var isAncestor = 'compareDocumentPosition' in html ? + function (element, container) { + return (container.compareDocumentPosition(element) & 16) == 16; + } : 'contains' in html ? + function (element, container) { + container = container == doc || container == window ? html : container; + return container !== element && container.contains(element); + } : + function (element, container) { + while (element = element.parentNode) { + if (element === container) { + return 1; + } + } + return 0; + }, + + select = (doc.querySelector && doc.querySelectorAll) ? + function (selector, root) { + if (doc.getElementsByClassName && (m = selector.match(classOnly))) { + return array((root).getElementsByClassName(m[1])); + } + return array((root).querySelectorAll(selector)); + } : + function (selector, root) { + var result = [], collection, collections = [], i; + if (m = selector.match(tagAndOrClass)) { + items = root.getElementsByTagName(m[1] || '*'); + r = classCache.g(m[2]) || classCache.s(m[2], new RegExp('(^|\\s+)' + m[2] + '(\\s+|$)')); + for (i = 0, l = items.length, j = 0; i < l; i++) { + r.test(items[i].className) && (result[j++] = items[i]); + } + return result; + } + for (i = 0, items = selector.split(','), l = items.length; i < l; i++) { + collections[i] = _qwery(items[i]); + } + for (i = 0, l = collections.length; i < l && (collection = collections[i]); i++) { + var ret = collection; + if (root !== doc) { + ret = []; + for (j = 0, m = collection.length; j < m && (element = collection[j]); j++) { + // make sure element is a descendent of root + isAncestor(element, root) && ret.push(element); + } + } + result = result.concat(ret); + } + return uniq(result); + }; + + qwery.uniq = uniq; + var oldQwery = context.qwery; + qwery.noConflict = function () { + context.qwery = oldQwery; + return this; + }; + context['qwery'] = qwery; + +}(this, document);!function (doc) { + var q = qwery.noConflict(); + function create(node, root) { + var el = (root || doc).createElement('div'), els = []; + el.innerHTML = node; + var nodes = el.childNodes; + el = el.firstChild; + els.push(el); + while (el = el.nextSibling) { + (el.nodeType == 1) && els.push(el); + } + return els; + }; + $._select = function (s, r) { + return /^\s*.+?<\\/"+d+">","g"));t(g,function(a){a=a.replace(/<(.+)>(.+?)<\/\1>/,"$2");var c=b.createElement(d);c.appendChild(b.createDocumentFragment(a)),e.appendChild(c)})}else e.innerHTML=a;var i=e.childNodes;e=e.firstChild,f.push(e);while(e=e.nextSibling)e.nodeType==1&&f.push(e);return f}():w(a)?[a.cloneNode(!0)]:[]},G.doc=function(){var a=c.scrollWidth,b=c.scrollHeight,d=this.viewport();return{width:Math.max(a,d.width),height:Math.max(b,d.height)}},G.firstChild=function(a){for(var b=a.childNodes,c=0,d=b&&b.length||0,e;c\{\}\$\*\^'"]*\])/,C=/([.*+?\^=!:${}()|\[\]\/\\])/g,D=/^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/,E=/\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/,F=new RegExp(D.source+"("+E.source+")?"),H=function(){this.c={}};H.prototype={g:function(a){return this.c[a]||undefined},s:function(a,b){this.c[a]=b;return b}};var I=new H,J=new H,K=new H,L=new H,W="compareDocumentPosition"in A?function(a,b){return(b.compareDocumentPosition(a)&16)==16}:"contains"in A?function(a,c){c=c==b||c==window?A:c;return c!==a&&c.contains(a)}:function(a,b){while(a=a.parentNode)if(a===b)return 1;return 0},X=b.querySelector&&b.querySelectorAll?function(a,c){if(b.getElementsByClassName&&(h=a.match(x)))return G(c.getElementsByClassName(h[1]));return G(c.querySelectorAll(a))}:function(a,c){var d=[],f,i=[],j;if(h=a.match(z)){s=c.getElementsByTagName(h[1]||"*"),k=I.g(h[2])||I.s(h[2],new RegExp("(^|\\s+)"+h[2]+"(\\s+|$)"));for(j=0,g=s.length,e=0;j~])?/, + selectorSplit: /(?:\[.*\]|\(.*\)|[^\s+>~[(])+|[+>~]/g, + id: /^#([-\w\u00C0-\uFFFF=$]+)$/, + tag: /^\w+/, + relation: /^[+>~]$/, + pseudo: /^:(\w[-\w]*)(\((.+)\))?$/, + pseudos: /:(\w[-\w]*)(\((([^(]+)|([^(]+\([^(]+)\))\))?/g, + attribs: /\[(\w+)\s*([~^$*|])?(=)?\s*([^\[\]]*|"[^"]*"|'[^']*')?\](?=$|\[|:|\s)/g, + classes: /\.([-\w\u00C0-\uFFFF]+)/g, + quoted: /^["'](.*)["']$/, + nth: /^((odd|even)|([1-9]\d*)|((([1-9]\d*)?)n([-+]\d+)?)|(-(([1-9]\d*)?)n\+(\d+)))$/, + special: /(:check|:enabl|\bselect)ed\b/ + }, + navigate = function (node, direction, checkTagName) { + var oldName = node.tagName; + while ((node = node[direction + "Sibling"]) && (node.nodeType !== 1 || (checkTagName? node.tagName !== oldName : node.tagName === "!"))) {} + return node; + }, + def = function (obj) { + return typeof obj !== "undefined"; + }, + sortDocumentOrder = function (elmArray) { + return (sortDocumentOrder = elmArray[0].compareDocumentPosition? function (elmArray) { return elmArray.sort( function (a, b) { return 3 - (a.compareDocumentPosition(b) & 6); } ); } : + isIE? function (elmArray) { return elmArray.sort( function (a, b) { return a.sourceIndex - b.sourceIndex; } ); } : + function (elmArray) { return elmArray.sort( function (a, b) { + var range1 = document.createRange(), range2 = document.createRange(); + range1.setStart(a, 0); + range1.setEnd(a, 0); + range2.setStart(b, 0); + range2.setEnd(b, 0); + return range1.compareBoundaryPoints(Range.START_TO_END, range2); + } ); })(elmArray); + }; + var pushAll = function (set1, set2) { + set1.push.apply(set1, slice.apply(set2)); + return set1; + }; + if (isIE) { + pushAll = function (set1, set2) { + if (set2.slice) { + return set1.concat(set2); + } + var i=0, item; + while ((item = set2[i++])) { + set1[set1.length] = item; + } + return set1; + }; + } + return { + isIE : isIE, + camel : camel, + def : def, + allMethods : [], + publicMethods : [ + "prev", + "next", + "hasChild", + "cssSelect", + "elmsByClass", + "elmsByAttribute", + "elmsByTag" + ], + + harmonize : function () { + w.$ = _$; + w.$$ = _$$; + return this; + }, + + initCore : function () { + this.applyMethod.call(w, "$", this.$); + this.applyMethod.call(w, "$$", this.$$); + w.DOMAssistant = this; + if (isIE) { + HTMLArray = Array; + } + HTMLArray.prototype = []; + (function (H) { + H.each = function (fn, context) { + for (var i=0, il=this.length; i= add)? (start - add) % add : start; + } + else if (pseudoVal[8]) { // -an+b + add = pseudoVal[10]? parseInt(pseudoVal[10], 10) : 1; + start = max = parseInt(pseudoVal[11], 10); + while (start > add) { + start -= add; + } + modVal = (max >= add)? (max - add) % add : max; + } + return { start: start, add: add, max: max, modVal: modVal }; + }, + + cssByDOM : function (cssRule) { + var prevParents, currentRule, cssSelectors, childOrSiblingRef, nextTag, nextRegExp, current, previous, prevParent, notElm, addElm, iteratorNext, childElm, sequence, anyTag, + elm = new HTMLArray(), index = elm.indexOf, prevElm = [], matchingElms = [], cssRules = cssRule.replace(regex.rules, ",").split(","), splitRule = {}; + function clearAdded (elm) { + elm = elm || prevElm; + for (var n=elm.length; n--;) { + elm[n].added = null; + elm[n].removeAttribute("added"); + } + } + function clearChildElms () { + for (var n=prevParents.length; n--;) { + prevParents[n].childElms = null; + } + } + function subtractArray (arr1, arr2) { + for (var i=0, src1; (src1=arr1[i]); i++) { + var found = false; + for (var j=0, src2; (src2=arr2[j]); j++) { + if (src2 === src1) { + found = true; + arr2.splice(j, 1); + break; + } + } + if (found) { + arr1.splice(i--, 1); + } + } + return arr1; + } + function getAttr (elm, attr) { + return (isIE || regex.special.test(attr))? elm[camel[attr.toLowerCase()] || attr] : elm.getAttribute(attr, 2); + } + function attrToRegExp (attrVal, substrOperator) { + attrVal = attrVal? attrVal.replace(regex.quoted, "$1").replace(/(\.|\[|\])/g, "\\$1") : null; + return { + "^": "^" + attrVal, + "$": attrVal + "$", + "*": attrVal, + "|": "^" + attrVal + "(\\-\\w+)*$", + "~": "\\b" + attrVal + "\\b" + }[substrOperator] || (attrVal !== null? "^" + attrVal + "$" : attrVal); + } + function notComment(el) { + return (el || this).tagName !== "!"; + } + function getTags (tag, context) { + return isIE5? (tag === "*"? context.all : context.all.tags(tag)) : context.getElementsByTagName(tag); + } + function getElementsByTagName (tag, parent) { + tag = tag || "*"; + parent = parent || document; + return (parent === document || parent.lastModified)? tagCache[tag] || (tagCache[tag] = getTags(tag, document)) : getTags(tag, parent); + } + function getElementsByPseudo (previousMatch, pseudoClass, pseudoValue) { + prevParents = []; + var pseudo = pseudoClass.split("-"), matchingElms = [], idx = 0, checkNodeName = /\-of\-type$/.test(pseudoClass), recur, + match = { + first: function(el) { return !navigate(el, "previous", checkNodeName); }, + last: function(el) { return !navigate(el, "next", checkNodeName); }, + empty: function(el) { return !el.firstChild; }, + enabled: function(el) { return !el.disabled && el.type !== "hidden"; }, + disabled: function(el) { return el.disabled; }, + checked: function(el) { return el.checked; }, + contains: function(el) { return (el.innerText || el.textContent || "").indexOf(pseudoValue.replace(regex.quoted, "$1")) > -1; }, + other: function(el) { return getAttr(el, pseudoClass) === pseudoValue; } + }; + function basicMatch(key) { + while ((previous=previousMatch[idx++])) { + if (notComment(previous) && match[key](previous)) { + matchingElms[matchingElms.length] = previous; + } + } + return matchingElms; + } + var word = pseudo[0] || null; + if (word && match[word]) { + return basicMatch(word); + } + switch (word) { + case "only": + var kParent, kTag; + while ((previous=previousMatch[idx++])) { + prevParent = previous.parentNode; + var q = previous.nodeName; + if (prevParent !== kParent || q !== kTag) { + if (match.first(previous) && match.last(previous)) { + matchingElms[matchingElms.length] = previous; + } + kParent = prevParent; + kTag = q; + } + } + break; + case "nth": + if (pseudoValue === "n") { + matchingElms = previousMatch; + } + else { + var direction = (pseudo[1] === "last")? ["lastChild", "previousSibling"] : ["firstChild", "nextSibling"]; + sequence = DOMAssistant.getSequence(pseudoValue); + if (sequence) { + while ((previous=previousMatch[idx++])) { + prevParent = previous.parentNode; + prevParent.childElms = prevParent.childElms || {}; + var p = previous.nodeName; + if (!prevParent.childElms[p]) { + var childCount = 0; + iteratorNext = sequence.start; + childElm = prevParent[direction[0]]; + while (childElm && (sequence.max < 0 || iteratorNext <= sequence.max)) { + var c = childElm.nodeName; + if ((checkNodeName && c === p) || (!checkNodeName && childElm.nodeType === 1 && c !== "!")) { + if (++childCount === iteratorNext) { + if (c === p) { matchingElms[matchingElms.length] = childElm; } + iteratorNext += sequence.add; + } + } + childElm = childElm[direction[1]]; + } + if (anyTag) { sort++; } + prevParent.childElms[p] = true; + prevParents[prevParents.length] = prevParent; + } + } + clearChildElms(); + } + } + break; + case "target": + var hash = document.location.hash.slice(1); + if (hash) { + while ((previous=previousMatch[idx++])) { + if (getAttr(previous, "name") === hash || getAttr(previous, "id") === hash) { + matchingElms[matchingElms.length] = previous; + break; + } + } + } + break; + case "not": + if ((recur = regex.pseudo.exec(pseudoValue))) { + matchingElms = subtractArray(previousMatch, getElementsByPseudo(previousMatch, recur[1]? recur[1].toLowerCase() : null, recur[3] || null)); + } + else { + for (var re in regex) { + if (regex[re].lastIndex) { + regex[re].lastIndex = 0; + } + } + pseudoValue = pseudoValue.replace(regex.id, "[id=$1]"); + var notTag = regex.tag.exec(pseudoValue); + var notClass = regex.classes.exec(pseudoValue); + var notAttr = regex.attribs.exec(pseudoValue); + var notRegExp = new RegExp(notAttr? attrToRegExp(notAttr[4], notAttr[2]) : "(^|\\s)" + (notTag? notTag[0] : notClass? notClass[1] : "") + "(\\s|$)", "i"); + while ((notElm=previousMatch[idx++])) { + addElm = null; + if (notTag && !notRegExp.test(notElm.nodeName) || notClass && !notRegExp.test(notElm.className)) { + addElm = notElm; + } + else if (notAttr) { + var att = getAttr(notElm, notAttr[1]); + if (!def(att) || att === false || typeof att === "string" && !notRegExp.test(att)) { + addElm = notElm; + } + } + if (addElm && !addElm.added) { + addElm.added = true; + matchingElms[matchingElms.length] = addElm; + } + } + } + break; + default: return basicMatch("other"); + } + return matchingElms; + } + function pushUnique(set1, set2) { + var i=0, s=set1, item; + while ((item = set2[i++])) { + if (!s.length || s.indexOf(item) < 0) { + set1.push(item); + } + } + return set1; + } + sort = -1; + for (var a=0, tagBin=[]; (currentRule=cssRules[a]); a++) { + if (!(cssSelectors = currentRule.match(regex.selectorSplit)) || a && index.call(cssRules.slice(0, a), currentRule) > -1) { continue; } + prevElm = [this]; + for (var i=0, rule; (rule=cssSelectors[i]); i++) { + matchingElms = []; + if ((childOrSiblingRef = regex.relation.exec(rule))) { + var idElm = null, nextWord = cssSelectors[i+1]; + if ((nextTag = regex.tag.exec(nextWord))) { + nextTag = nextTag[0]; + nextRegExp = new RegExp("(^|\\s)" + nextTag + "(\\s|$)", "i"); + } + else if (regex.id.test(nextWord)) { + idElm = DOMAssistant.$(nextWord) || null; + } + for (var j=0, prevRef; (prevRef=prevElm[j]); j++) { + switch (childOrSiblingRef[0]) { + case ">": + var children = idElm || getElementsByTagName(nextTag, prevRef); + for (var k=0, child; (child=children[k]); k++) { + if (child.parentNode === prevRef) { + matchingElms[matchingElms.length] = child; + } + } + break; + case "+": + if ((prevRef = navigate(prevRef, "next"))) { + if ((idElm && idElm[0] === prevRef) || (!idElm && (!nextTag || nextRegExp.test(prevRef.nodeName)))) { + matchingElms[matchingElms.length] = prevRef; + } + } + break; + case "~": + while ((prevRef = prevRef.nextSibling) && !prevRef.added) { + if ((idElm && idElm[0] === prevRef) || (!idElm && (!nextTag || nextRegExp.test(prevRef.nodeName)))) { + prevRef.added = true; + matchingElms[matchingElms.length] = prevRef; + } + } + break; + } + } + prevElm = matchingElms; + clearAdded(); + rule = cssSelectors[++i]; + if (/^\w+$/.test(rule) || regex.id.test(rule)) { + continue; + } + prevElm.skipTag = true; + } + var cssSelector = regex.selector.exec(rule); + splitRule = { + tag : cssSelector[1]? cssSelector[1] : "*", + id : cssSelector[2], + allClasses : cssSelector[3], + allAttr : cssSelector[5], + allPseudos : cssSelector[10] + }; + anyTag = (splitRule.tag === "*"); + if (splitRule.id) { + var u = 0, DOMElm = document.getElementById(splitRule.id.slice(1)); + if (DOMElm) { + while (prevElm[u] && !DOMAssistant.hasChild.call(prevElm[u], DOMElm)) { u++; } + matchingElms = (u < prevElm.length && (anyTag || splitRule.tag === DOMElm.tagName.toLowerCase()))? [DOMElm] : []; + } + prevElm = matchingElms; + } + else if (splitRule.tag && !prevElm.skipTag) { + if (i===0 && !matchingElms.length && prevElm.length === 1) { + prevElm = matchingElms = pushAll([], getElementsByTagName(splitRule.tag, prevElm[0])); + } + else { + for (var l=0, ll=prevElm.length, tagCollectionMatches, tagMatch; l= 0 || index.call(tagBin, "*") >= 0))? pushUnique : pushAll)(elm, prevElm); + tagBin.push(splitRule.tag); + if (isIE && anyTag) { elm = elm.filter(notComment); } + } + return ((elm.length > 1 && cssRules.length > 1) || sort > 0)? sortDocumentOrder(elm) : elm; + }, + + cssByXpath : function (cssRule) { + var ns = { xhtml: "http://www.w3.org/1999/xhtml" }, + prefix = (document.documentElement.namespaceURI === ns.xhtml)? "xhtml:" : "", + nsResolver = function lookupNamespaceURI (prefix) { + return ns[prefix] || null; + }; + DOMAssistant.cssByXpath = function (cssRule) { + var currentRule, cssSelectors, xPathExpression, cssSelector, splitRule, sequence, + elm = new HTMLArray(), cssRules = cssRule.replace(regex.rules, ",").split(","); + function attrToXPath (wrap) { + var pre = wrap? "[" : "", post = wrap? "]" : ""; + return function (match, p1, p2, p3, p4) { + p4 = (p4 || "").replace(regex.quoted, "$1"); + if (p1 === p4 && p1 === "readonly") { p3 = null; } + return pre + ({ + "^": "starts-with(@" + p1 + ", \"" + p4 + "\")", + "$": "substring(@" + p1 + ", (string-length(@" + p1 + ") - " + (p4.length - 1) + "), " + p4.length + ") = \"" + p4 + "\"", + "*": "contains(concat(\" \", @" + p1 + ", \" \"), \"" + p4 + "\")", + "|": "@" + p1 + "=\"" + p4 + "\" or starts-with(@" + p1 + ", \"" + p4 + "-\")", + "~": "contains(concat(\" \", @" + p1 + ", \" \"), \" " + p4 + " \")" + }[p2] || ("@" + p1 + (p3? "=\"" + p4 + "\"" : ""))) + post; + }; + } + function pseudoToXPath (tag, pseudoClass, pseudoValue) { + tag = /\-child$/.test(pseudoClass)? "*" : tag; + var pseudo = pseudoClass.split("-"), position = ((pseudo[1] === "last")? "(count(following-sibling::" : "(count(preceding-sibling::") + tag + ") + 1)", recur, hash; + switch (pseudo[0]) { + case "nth": return (pseudoValue !== "n" && (sequence = DOMAssistant.getSequence(pseudoValue)))? ((sequence.start === sequence.max)? position + " = " + sequence.start : position + " mod " + sequence.add + " = " + sequence.modVal + ((sequence.start > 1)? " and " + position + " >= " + sequence.start : "") + ((sequence.max > 0)? " and " + position + " <= " + sequence.max: "")) : ""; + case "not": return "not(" + ((recur = regex.pseudo.exec(pseudoValue))? pseudoToXPath(tag, recur[1]? recur[1].toLowerCase() : null, recur[3] || null) : pseudoValue.replace(regex.id, "[id=$1]").replace(regex.tag, "self::$0").replace(regex.classes, "contains(concat(\" \", @class, \" \"), \" $1 \")").replace(regex.attribs, attrToXPath())) + ")"; + case "first": return "not(preceding-sibling::" + tag + ")"; + case "last": return "not(following-sibling::" + tag + ")"; + case "only": return "not(preceding-sibling::" + tag + " or following-sibling::" + tag + ")"; + case "empty": return "not(child::*) and not(text())"; + case "contains": return "contains(., \"" + pseudoValue.replace(regex.quoted, "$1") + "\")"; + case "enabled": return "not(@disabled) and not(@type=\"hidden\")"; + case "disabled": return "@disabled"; + case "target": return "@name=\"" + (hash = document.location.hash.slice(1)) + "\" or @id=\"" + hash + "\""; + default: return "@" + pseudoClass + "=\"" + pseudoValue + "\""; + } + } + for (var i=0; (currentRule=cssRules[i]); i++) { + if (!(cssSelectors = currentRule.match(regex.selectorSplit)) || i && elm.indexOf.call(cssRules.slice(0, i), currentRule) > -1) { continue; } + xPathExpression = xPathExpression? xPathExpression + " | ." : "."; + for (var j=0, jl=cssSelectors.length; j": "/", "+": "/following-sibling::*[1]/self::", "~": "/following-sibling::" }[splitRule.tagRelation] || "") : ((j > 0 && regex.relation.test(cssSelectors[j-1]))? splitRule.tag : ("//" + splitRule.tag))) + + (splitRule.id || "").replace(regex.id, "[@id = \"$1\"]") + + (splitRule.allClasses || "").replace(regex.classes, "[contains(concat(\" \", @class, \" \"), \" $1 \")]") + + (splitRule.allAttr || "").replace(regex.attribs, attrToXPath(true)); + if (splitRule.allPseudos) { + var allPseudos = splitRule.allPseudos.match(regex.pseudos); + for (var k=0, kl=allPseudos.length; k 0 && ajaxObj.params)? ("&" + ajaxObj.params) : ""); + } + return DOMAssistant.AJAX.makeCall.call(this, ajaxObj); + }, + + get : function (url, callback, addToContent) { + return DOMAssistant.AJAX.makeCall.call(this, createAjaxObj(url, "GET", callback, addToContent)); + }, + + post : function (url, callback) { + return DOMAssistant.AJAX.makeCall.call(this, createAjaxObj(url, "POST", callback)); + }, + + load : function (url, addToContent) { + this.get(url, DOMAssistant.AJAX.replaceWithAJAXContent, addToContent); + }, + + makeCall : function (ajaxObj) { + var XMLHttp = DOMAssistant.AJAX.initRequest(); + if (XMLHttp) { + globalXMLHttp = XMLHttp; + (function (elm) { + var url = ajaxObj.url, + method = ajaxObj.method || "GET", + callback = ajaxObj.callback, + params = ajaxObj.params, + headers = ajaxObj.headers, + responseType = ajaxObj.responseType || "text", + addToContent = ajaxObj.addToContent, + timeout = ajaxObj.timeout || null, + ex = ajaxObj.exception, + timeoutId = null, + done = false; + XMLHttp.open(method, url, true); + XMLHttp.setRequestHeader("AJAX", "true"); + XMLHttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); + if (method === "POST") { + XMLHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); + XMLHttp.setRequestHeader("Content-length", params? params.length : 0); + if (XMLHttp.overrideMimeType) { + XMLHttp.setRequestHeader("Connection", "close"); + } + } + if (responseType === "json") { + XMLHttp.setRequestHeader("Accept", "application/json, text/javascript, */*"); + } + for (var i in headers) { + if (typeof i === "string") { + XMLHttp.setRequestHeader(i, headers[i]); + } + } + if (typeof callback === "function") { + XMLHttp.onreadystatechange = function () { + try { + if (XMLHttp.readyState === 4 && !done) { + window.clearTimeout(timeoutId); + done = true; + status = XMLHttp.status; + statusText = XMLHttp.statusText; + readyState = 4; + if ((status || location.protocol !== "file:") && (status < 200 || status >= 300)) { + throw new Error(statusText); + } + var response = /xml/i.test(responseType)? XMLHttp.responseXML : XMLHttp.responseText; + if (/json/i.test(responseType) && !!response) { + response = (typeof JSON === "object" && typeof JSON.parse === "function")? JSON.parse(response) : eval("(" + response + ")"); + } + globalXMLHttp = null; + XMLHttp.onreadystatechange = function () {}; + requestPool.push(XMLHttp); + callback.call(elm, response, addToContent); + } + } + catch (e) { + globalXMLHttp = XMLHttp = null; + if (typeof ex === "function") { + ex.call(elm, e); + ex = null; + } + } + }; + } + XMLHttp.send(params); + if (timeout) { + timeoutId = window.setTimeout( function () { + if (!done) { + XMLHttp.abort(); + done = true; + if (typeof ex === "function") { + readyState = 0; + status = 408; + statusText = "Request timeout"; + globalXMLHttp = XMLHttp = null; + ex.call(elm, new Error(statusText)); + ex = null; + } + } + }, timeout); + } + })(this); + } + return this; + }, + + replaceWithAJAXContent : function (content, add) { + if (add) { + this.innerHTML += content; + } + else { + DOMAssistant.cleanUp(this); + this.innerHTML = content; + } + }, + + getReadyState : function () { + return (globalXMLHttp && DOMAssistant.def(globalXMLHttp.readyState))? globalXMLHttp.readyState : readyState; + }, + + getStatus : function () { + return status; + }, + + getStatusText : function () { + return statusText; + } + }; +}(); +DOMAssistant.attach(DOMAssistant.AJAX); +DOMAssistant.CSS = function () { + var def = DOMAssistant.def, + direct = { display: true }; + return { + addClass : function (className) { + if (!this.hasClass(className)) { + var currentClass = this.className; + this.className = currentClass + (currentClass.length? " " : "") + className; + } + return this; + }, + + removeClass : function (className) { + return this.replaceClass(className); + }, + + replaceClass : function (className, newClass) { + var classToRemove = new RegExp(("(^|\\s)" + className + "(\\s|$)"), "i"); + this.className = this.className.replace(classToRemove, function (match, p1, p2) { + return newClass? (p1 + newClass + p2) : " "; + }).replace(/^\s+|\s+$/g, ""); + return this; + }, + + hasClass : function (className) { + return (" " + this.className + " ").indexOf(" " + className + " ") > -1; + }, + + setStyle : function (style, value) { + var css = this.style; + if ("filters" in this && (typeof style === "string"? /opacity/i.test(style) : def(style.opacity))) { + css.zoom = 1; + css.filter = (css.filter || "").replace(/alpha\([^)]*\)/, "") + "alpha(opacity=" + (def(style.opacity)? style.opacity : value) * 100 + ")"; + } + if (def(css.cssText)) { + var styleToSet = css.cssText; + if (typeof style === "object") { + for (var i in style) { + if (typeof i === "string") { + if (direct[i]) { css[i] = style[i]; } + styleToSet += ";" + i + ":" + style[i]; + } + } + } + else { + if (direct[style]) { css[style] = value; } + styleToSet += ";" + style + ":" + value; + } + css.cssText = styleToSet; + } + return this; + }, + + getStyle : function (cssRule) { + var val = "", f; + cssRule = cssRule.toLowerCase(); + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(this, "").getPropertyValue(cssRule); + } + else if (this.currentStyle) { + if ("filters" in this && cssRule === "opacity") { + val = (f = this.style.filter || this.currentStyle.filter) && f.indexOf("opacity=") >= 0? parseFloat(f.match(/opacity=([^)]*)/)[1]) / 100 : 1; + } + else { + cssRule = cssRule.replace(/^float$/, "styleFloat").replace(/\-(\w)/g, function (match, p1) { + return p1.toUpperCase(); + }); + val = this.currentStyle[cssRule]; + } + if (val === "auto" && /^(width|height)$/.test(cssRule) && this.currentStyle.display !== "none") { + val = this["offset" + cssRule.charAt(0).toUpperCase() + cssRule.substr(1)] + "px"; + } + } + return val; + } + }; +}(); +DOMAssistant.attach(DOMAssistant.CSS); +DOMAssistant.Content = function () { + var D$ = DOMAssistant.$$; + return { + init : function () { + DOMAssistant.setCache(false); + }, + + create : function (name, attr, append, content) { + var elm = D$(document.createElement(name)); + if (attr) { + elm = elm.setAttributes(attr); + } + if (DOMAssistant.def(content)) { + elm.addContent(content); + } + if (append) { + this.appendChild(elm); + } + return elm; + }, + + setAttributes : function (attr) { + if (DOMAssistant.isIE) { + var setAttr = function (elm, att, val) { + var attLower = att.toLowerCase(); + switch (attLower) { + case "name": + case "type": + case "multiple": + return D$(document.createElement(elm.outerHTML.replace(new RegExp(attLower + "(=[a-zA-Z]+)?"), " ").replace(">", " " + attLower + "=" + val + ">"))); + case "style": + elm.style.cssText = val; + return elm; + default: + elm[DOMAssistant.camel[attLower] || att] = val; + return elm; + } + }; + DOMAssistant.Content.setAttributes = function (attr) { + var elem = this; + var parent = this.parentNode; + for (var i in attr) { + if (typeof attr[i] === "string" || typeof attr[i] === "number") { + var newElem = setAttr(elem, i, attr[i]); + if (parent && /(name|type)/i.test(i)) { + if (elem.innerHTML) { + newElem.innerHTML = elem.innerHTML; + } + parent.replaceChild(newElem, elem); + } + elem = newElem; + } + } + return elem; + }; + } + else { + DOMAssistant.Content.setAttributes = function (attr) { + for (var i in attr) { + if (/class/i.test(i)) { + this.className = attr[i]; + } + else { + this.setAttribute(i, attr[i]); + } + } + return this; + }; + } + return DOMAssistant.Content.setAttributes.call(this, attr); + }, + + addContent : function (content) { + var type = typeof content; + if (type === "string" || type === "number") { + if (!this.firstChild) { + this.innerHTML = content; + } + else { + var tmp = document.createElement("div"); + tmp.innerHTML = content; + for (var i=tmp.childNodes.length-1, last=null; i>=0; i--) { + last = this.insertBefore(tmp.childNodes[i], last); + } + } + } + else if (type === "object" || (type === "function" && !!content.nodeName)) { + this.appendChild(content); + } + return this; + }, + + replaceContent : function (content) { + DOMAssistant.cleanUp(this); + return this.addContent(content); + }, + + replace : function (content, returnNew) { + var type = typeof content; + if (type === "string" || type === "number") { + var parent = this.parentNode; + var tmp = DOMAssistant.Content.create.call(parent, "div", null, false, content); + for (var i=tmp.childNodes.length; i--;) { + parent.insertBefore(tmp.childNodes[i], this.nextSibling); + } + content = this.nextSibling; + parent.removeChild(this); + } + else if (type === "object" || (type === "function" && !!content.nodeName)) { + this.parentNode.replaceChild(content, this); + } + return returnNew? content : this; + }, + + remove : function () { + DOMAssistant.cleanUp(this); + if (this.hasData()) { + if (this.removeEvent) { this.removeEvent(); } + this.unstore(); + } + this.parentNode.removeChild(this); + return null; + } + }; +}(); +DOMAssistant.attach(DOMAssistant.Content); +DOMAssistant.Events = function () { + var handler, + key = "_events", + w3cMode = !!document.addEventListener, + useCapture = { focus: true, blur: true }, + translate = DOMAssistant.isIE? { focus: "activate", blur: "deactivate", mouseenter: "mouseover", mouseleave: "mouseout" } : { mouseenter: "mouseover", mouseleave: "mouseout" }, + regex = { + special: /^submit|reset|change|select$/i, + mouseenterleave: /^mouse(enter|leave)$/i, + dom: /^DOM/, + on: /^on/i + }, + special = function (e) { + return DOMAssistant.isIE && regex.special.test(e); + }, + fix = function (e) { + return translate[e] || e; + }, + createEvent = function (e, type, target) { + e = e || window.event || {}; + if (e.event) { return e; } + var event = { + event: e, + type: type || e.type, + bubbles: e.bubbles || true, + cancelable: e.cancelable || false, + target: target || e.target || e.srcElement, + clientX: e.clientX || 0, + clientY: e.clientY || 0, + altKey: e.altKey || false, + ctrlKey: e.ctrlKey || false, + shiftKey: e.shiftKey || false, + button: e.button || null, + timeStamp: +new Date(), + preventDefault: function() { + if (e.preventDefault) { e.preventDefault(); } + this.returnValue = e.returnValue = false; + }, + stopPropagation: function() { + if (e.stopPropagation) { e.stopPropagation(); } + this.cancelBubble = e.cancelBubble = true; + } + }; + if (event.target && 3 === event.target.nodeType) { // Safari textnode bug + event.target = event.target.parentNode; + } + event.currentTarget = event.target; + event.relatedTarget = e.relatedTarget || (e.fromElement === event.target? e.toElement : e.fromElement) || null; + var de = document.documentElement, b = document.body; + event.pageX = DOMAssistant.def(e.pageX)? e.pageX : (event.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0)); + event.pageY = DOMAssistant.def(e.pageY)? e.pageY : (event.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0)); + if ("number" === typeof e.which) { + event.keyCode = e.keyCode; + event.charCode = event.which = e.which; + } + else if (e.keyCode) { + event.keyCode = event.charCode = e.keyCode; + } + return event; + }; + + return { + publicMethods : [ + "triggerEvent", + "addEvent", + "removeEvent", + "relayEvent", + "unrelayEvent", + "preventDefault", + "cancelBubble" + ], + + init : function () { + DOMAssistant.preventDefault = this.preventDefault; + DOMAssistant.cancelBubble = this.cancelBubble; + handler = this.handleEvent; + }, + + triggerEvent : function (evt, target, e) { + var fevt = fix(evt), + events = this.retrieve(key), + event = e || createEvent(e, fevt, target || this); + event.currentTarget = this; + if (events && events[fevt]) { + for (var i=0, iL=events[fevt].length; i<\/script>"); + document.getElementById("ieScriptLoad").onreadystatechange = function() { + if (this.readyState === "complete") { + DOMHasLoaded(); + } + }; + @end @*/ + /* Mozilla, Chrome, Opera */ + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", DOMHasLoaded, false); + } + /* Safari, iCab, Konqueror */ + if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { + DOMLoadTimer = setInterval(function () { + if (/loaded|complete/i.test(document.readyState)) { + DOMHasLoaded(); + clearInterval(DOMLoadTimer); + } + }, 10); + } + /* Other web browsers */ + window.onload = DOMHasLoaded; + + return { + DOMReady : function () { + for (var i=0, il=arguments.length, funcRef; i= thisstyle.minw ) && + (!thisstyle.maxw || thisstyle.maxw && currWidth <= thisstyle.maxw ) ){ + if( !styleBlocks[ thisstyle.media ] ){ + styleBlocks[ thisstyle.media ] = []; + } + styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] ); + } + } + + //remove any existing respond style element(s) + for( var i in appendedEls ){ + if( appendedEls[ i ] && appendedEls[ i ].parentNode === head ){ + head.removeChild( appendedEls[ i ] ); + } + } + + //inject active styles, grouped by media type + for( var i in styleBlocks ){ + var ss = doc.createElement( "style" ), + css = styleBlocks[ i ].join( "\n" ); + + ss.type = "text/css"; + ss.media = i; + + if ( ss.styleSheet ){ + ss.styleSheet.cssText = css; + } + else { + ss.appendChild( doc.createTextNode( css ) ); + } + dFrag.appendChild( ss ); + appendedEls.push( ss ); + } + + //append to DOM at once + head.insertBefore( dFrag, lastLink.nextSibling ); + }, + //tweaked Ajax functions from Quirksmode + ajax = function( url, callback ) { + var req = xmlHttp(); + if (!req){ + return; + } + req.open( "GET", url, true ); + req.onreadystatechange = function () { + if ( req.readyState != 4 || req.status != 200 && req.status != 304 ){ + return; + } + callback( req.responseText ); + } + if ( req.readyState == 4 ){ + return; + } + req.send(); + }, + //define ajax obj + xmlHttp = (function() { + var xmlhttpmethod = false, + attempts = [ + function(){ return new ActiveXObject("Microsoft.XMLHTTP") }, + function(){ return new XMLHttpRequest() } + ], + al = attempts.length; + + while( al-- ){ + try { + xmlhttpmethod = attempts[ al ](); + } + catch(e) { + continue; + } + break; + } + return function(){ + return xmlhttpmethod; + }; + })(); + + //translate CSS + ripCSS(); + + //expose update for re-running respond later on + respond.update = ripCSS; + + //adjust on resize + function callMedia(){ + applyMedia( true ); + } + if( win.addEventListener ){ + win.addEventListener( "resize", callMedia, false ); + } + else if( win.attachEvent ){ + win.attachEvent( "onresize", callMedia ); + } +})( + this, + (function( win ){ + + //for speed, flag browsers with window.matchMedia support and IE 9 as supported + if( win.matchMedia ){ return true; } + + var bool, + doc = document, + docElem = doc.documentElement, + refNode = docElem.firstElementChild || docElem.firstChild, + // fakeBody required for + fakeUsed = !doc.body, + fakeBody = doc.body || doc.createElement( "body" ), + div = doc.createElement( "div" ), + q = "only all"; + + div.id = "mq-test-1"; + div.style.cssText = "position:absolute;top:-99em"; + fakeBody.appendChild( div ); + + div.innerHTML = '_'; + if( fakeUsed ){ + docElem.insertBefore( fakeBody, refNode ); + } + div.removeChild( div.firstChild ); + bool = div.offsetWidth == 9; + if( fakeUsed ){ + docElem.removeChild( fakeBody ); + } + else{ + fakeBody.removeChild( div ); + } + return bool; + })( this ) +); + diff --git a/source/javascripts/libs/ie/selectivizr-1.0.1.js b/source/javascripts/libs/ie/selectivizr-1.0.1.js new file mode 100644 index 00000000..0846b919 --- /dev/null +++ b/source/javascripts/libs/ie/selectivizr-1.0.1.js @@ -0,0 +1,5 @@ +/*! + * selectivizr v1.0.1 - (c) Keith Clark, freely distributable under the terms of the MIT license. + * selectivizr.com + */ +var k=true,p=false;(function(A){function N(a){return a.replace(O,q).replace(P,function(b,e,c){b=c.split(",");c=0;for(var g=b.length;c0){d=f;var x;i=h.substring(0,i).replace(U,o);if(i==o||i.charAt(i.length-1)==w)i+="*";try{x=y(i)}catch(ha){}if(x){i=0;for(m=x.length;i-1)a=a.substring(0,f);if(a.charAt(0)==":")switch(a.slice(1)){case "root":b=function(d){return c?d!=H:d==H};break;case "target":if(s==8){b=function(d){function l(){var m=location.hash,j=m.slice(1);return c?m==""||d.id!=j:m!=""&&d.id==j}t(A,"hashchange",function(){u(d,e,l())});return l()};break}return p;case "checked":b=function(d){X.test(d.type)&&t(d,"propertychange",function(){event.propertyName=="checked"&&u(d,e,d.checked!==c)});return d.checked!==c};break;case "disabled":c=!c;case "enabled":b=function(d){if(Y.test(d.tagName)){t(d,"propertychange",function(){event.propertyName=="$disabled"&&u(d,e,d.a===c)});z.push(d);d.a=d.disabled;return d.disabled===c}return a==":enabled"?c:!c};break;case "focus":g="focus";h="blur";case "hover":if(!g){g="mouseenter";h="mouseleave"}b=function(d){t(d,c?h:g,function(){u(d,e,k)});t(d,c?g:h,function(){u(d,e,p)});return c};break;default:if(!Z.test(a))return p}return{className:e,b:b}}function G(a){return I+"-"+(s==6&&$?aa++:a.replace(ba,function(b){return b.charCodeAt(0)}))}function Q(a){return a.replace(J,q).replace(ca,w)}function u(a,b,e){var c=a.className;b=E(c,b,e);if(b!=c){a.className=b;a.parentNode.className+=o}}function E(a,b,e){var c=RegExp("(^|\\s)"+b+"(\\s|$)"),g=c.test(a);return e?g?a:a+w+b:g?a.replace(c,q).replace(J,q):a}function t(a,b,e){a.attachEvent("on"+b,e)}function D(a,b){if(/^https?:\/\//i.test(a))return b.substring(0,b.indexOf("/",8))==a.substring(0,a.indexOf("/",8))?a:null;if(a.charAt(0)=="/")return b.substring(0,b.indexOf("/",8))+a;var e=b.split("?")[0];if(a.charAt(0)!="?"&&e.charAt(e.length-1)!="/")e=e.substring(0,e.lastIndexOf("/")+1);return e+a}function K(a){if(a){v.open("GET",a,p);v.send();return(v.status==200?v.responseText:o).replace(da,o).replace(ea,function(b,e,c,g,h){return K(D(c||h,a))}).replace(fa,function(b,e,c){e=e||"";return" url("+e+D(c,a)+e+") "})}return o}function ga(){var a,b;a=n.getElementsByTagName("BASE");for(var e=a.length>0?a[0].href:n.location.href,c=0;c0&&setInterval(function(){for(var g=0,h=z.length;g8||!v)){var L={NW:"*.Dom.select",DOMAssistant:"*.$",Prototype:"$$",YAHOO:"*.util.Selector.query",MooTools:"$$",Sizzle:"*",jQuery:"*",dojo:"*.query"},y,z=[],aa=0,$=k,I="slvzr",M=I+"DOMReady",da=/(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g,ea=/@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))[^;]*;/g,fa=/\burl\(\s*(["']?)([^"')]+)\1\s*\)/g,Z=/^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/,O=/:(:first-(?:line|letter))/g,P=/(^|})\s*([^\{]*?[\[:][^{]+)/g,T=/([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g,U=/(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g,ba=/[^\w-]/g,Y=/^(INPUT|SELECT|TEXTAREA|BUTTON)$/,X=/^(checkbox|radio)$/,F=s>6?/[\$\^*]=(['"])\1/:null,R=/([(\[+~])\s+/g,S=/\s+([)\]+~])/g,ca=/\s+/g,J=/^\s*((?:[\S\s]*\S)?)\s*$/,o="",w=" ",q="$1";n.write("