diff --git a/assets/packages/pjax/loadPjax.js b/assets/packages/pjax/loadPjax.js index f882467cfad..6ed22b5efd9 100644 --- a/assets/packages/pjax/loadPjax.js +++ b/assets/packages/pjax/loadPjax.js @@ -1,5 +1,5 @@ 'use strict'; -var switchInnerHTML = function (oldEl, newEl, opt) { +var switchOuterHTML = function (oldEl, newEl, opt) { opt = opt || {}; // really remove all Events! var parent = $(oldEl).parent(); @@ -7,6 +7,14 @@ var switchInnerHTML = function (oldEl, newEl, opt) { parent.append(newEl); this.onSwitch(); }, + switchInnerHTML = function (oldEl, newEl, opt) { + opt = opt || {}; + // really remove all Events! + var parent = $(oldEl).parent(); + $(oldEl).off().html(''); + $(oldEl).html($(newEl).html()); + this.onSwitch(); + }, singletonPjax = function () { window.activePjax = window.activePjax || null; @@ -21,10 +29,10 @@ var switchInnerHTML = function (oldEl, newEl, opt) { '#beginScripts' ], switches: { - '#bottomScripts': switchInnerHTML, - '#beginScripts': switchInnerHTML, + '#bottomScripts': switchOuterHTML, + '#beginScripts': switchOuterHTML, '#pjax-content': switchInnerHTML, - '#breadcrumb-container': switchInnerHTML, + '#breadcrumb-container': switchOuterHTML, }, debug: window.debugState.backend, forceRedirectOnFail: true, diff --git a/assets/packages/pjax/min/pjax.combined.min.js b/assets/packages/pjax/min/pjax.combined.min.js index 83e7e36b5bd..7e0941c8061 100644 --- a/assets/packages/pjax/min/pjax.combined.min.js +++ b/assets/packages/pjax/min/pjax.combined.min.js @@ -1 +1 @@ -!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Pjax=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o]+>/gi);if(matches&&matches.length&&(matches=matches[0].match(/\s?[a-z:]+(?:\=(?:\'|\")[^\'\">]+(?:\'|\"))*/gi)).length&&(matches.shift(),matches.forEach(function(htmlAttrib){var attr=htmlAttrib.trim().split("=");1===attr.length?tmpEl.documentElement.setAttribute(attr[0],!0):tmpEl.documentElement.setAttribute(attr[0],attr[1].slice(1,-1))})),tmpEl.documentElement.innerHTML=html,this.log("load content",tmpEl.documentElement.attributes,tmpEl.documentElement.innerHTML.length),document.activeElement&&!document.activeElement.value)try{document.activeElement.blur()}catch(e){}this.switchSelectors(this.options.selectors,tmpEl,document,options),!0===this.options.reRenderCSS&&this.updateStylesheets.call(this,tmpEl.querySelectorAll("link[rel=stylesheet]"),document.querySelectorAll("link[rel=stylesheet]"));var autofocusEl=Array.prototype.slice.call(document.querySelectorAll("[autofocus]")).pop();autofocusEl&&document.activeElement!==autofocusEl&&autofocusEl.focus(),this.options.selectors.forEach(function(selector){forEachEls(document.querySelectorAll(selector),function(el){collectForScriptcomplete.push.apply(collectForScriptcomplete,executeScripts.call(this,el))},this)},this),this.log("waiting for scriptcomplete",collectForScriptcomplete);var timeOutScriptEvent=null;timeOutScriptEvent=window.setTimeout(function(){trigger(document,"pjax:scriptcomplete pjax:scripttimeout",options),timeOutScriptEvent=null},this.options.scriptloadtimeout),Promise.all(collectForScriptcomplete).then(function(){null!==timeOutScriptEvent&&(window.clearTimeout(timeOutScriptEvent),trigger(document,"pjax:scriptcomplete pjax:scriptsuccess",options))},function(){null!==timeOutScriptEvent&&(window.clearTimeout(timeOutScriptEvent),trigger(document,"pjax:scriptcomplete pjax:scripterror",options))})},doRequest:require("./lib/request.js"),loadUrl:function(href,options){this.log("load href",href,options),trigger(document,"pjax:send",options),this.doRequest(href,options.requestOptions,function(html){if(!1!==html){document.activeElement.blur();try{this.loadContent(html,options)}catch(e){if(this.options.debug)throw this.options.forceRedirectOnFail&&this.latestChance(href),e;return console&&this.options.logObject.error&&this.options.logObject.error("Pjax switch fail: ",e),void this.latestChance(href)}options.history&&(this.firstrun&&(this.lastUid=this.maxUid=newUid(),this.firstrun=!1,window.history.replaceState({url:window.location.href,title:document.title,uid:this.maxUid},document.title)),this.lastUid=this.maxUid=newUid(),window.history.pushState({url:href,title:options.title,uid:this.maxUid},options.title,href)),this.forEachSelectors(function(el){this.parseDOM(el)},this),trigger(document,"pjax:complete pjax:success",options),options.analytics(),!1!==options.scrollTo&&(options.scrollTo.length>1?window.scrollTo(options.scrollTo[0],options.scrollTo[1]):window.scrollTo(0,options.scrollTo))}else trigger(document,"pjax:complete pjax:error",options)}.bind(this))}},Pjax.isSupported=require("./lib/is-supported.js"),Pjax.isSupported())module.exports=Pjax;else{var stupidPjax=function(){};for(var key in Pjax.prototype)Pjax.prototype.hasOwnProperty(key)&&"function"==typeof Pjax.prototype[key]&&(stupidPjax[key]=stupidPjax);module.exports=stupidPjax}},{"./lib/clone.js":2,"./lib/events/on.js":5,"./lib/events/trigger.js":6,"./lib/execute-scripts.js":7,"./lib/foreach-els.js":8,"./lib/foreach-selectors.js":9,"./lib/is-supported.js":10,"./lib/proto/attach-form.js":12,"./lib/proto/attach-link.js":13,"./lib/proto/get-elements.js":14,"./lib/proto/log.js":15,"./lib/proto/parse-dom-unload.js":16,"./lib/proto/parse-dom.js":17,"./lib/proto/parse-options.js":20,"./lib/proto/refresh.js":21,"./lib/proto/unattach-form.js":22,"./lib/proto/unattach-link.js":23,"./lib/reload.js":24,"./lib/request.js":25,"./lib/switches-selectors.js":26,"./lib/uniqueid.js":28,"./lib/update-stylesheets.js":29}],2:[function(require,module,exports){module.exports=function(obj){if(null===obj||"object"!=typeof obj)return obj;var copy=obj.constructor();for(var attr in obj)obj.hasOwnProperty(attr)&&(copy[attr]=obj[attr]);return copy}},{}],3:[function(require,module,exports){module.exports=function(el){var querySelector=this.options.mainScriptElement,code=el.text||el.textContent||el.innerHTML||"",src=el.src||"",parent=el.parentNode||document.querySelector(querySelector)||document.documentElement,script=document.createElement("script"),promise=null;return this.log("Evaluating Script: ",el),code.match("document.write")?(console&&this.options.logObject.log&&this.options.logObject.log("Script contains document.write. Can’t be executed correctly. Code skipped ",el),!1):(promise=new Promise(function(resolve,reject){if(script.type="text/javascript",""!=src&&(script.src=src,script.addEventListener("load",function(){resolve(src)}),script.async=!0),""!=code){try{script.appendChild(document.createTextNode(code))}catch(e){script.text=code}resolve("text-node")}}),this.log("ParentElement => ",parent),parent.appendChild(script),parent.removeChild(script),["head","body"].indexOf(parent.tagName.toLowerCase())>0||this.options.removeScriptsAfterParsing,promise)}},{}],4:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,listener,useCapture){(events="string"==typeof events?events.split(" "):events).forEach(function(e){forEachEls(els,function(el){el.removeEventListener(e,listener,useCapture)})})}},{"../foreach-els":8}],5:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,listener,useCapture){(events="string"==typeof events?events.split(" "):events).forEach(function(e){forEachEls(els,function(el){el.addEventListener(e,listener,useCapture)})})}},{"../foreach-els":8}],6:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,opts){(events="string"==typeof events?events.split(" "):events).forEach(function(e){var event;(event=document.createEvent("HTMLEvents")).initEvent(e,!0,!0),event.eventName=e,opts&&Object.keys(opts).forEach(function(key){event[key]=opts[key]}),forEachEls(els,function(el){var domFix=!1;el.parentNode||el===document||el===window||(domFix=!0,document.body.appendChild(el)),el.dispatchEvent(event),domFix&&el.parentNode.removeChild(el)})})}},{"../foreach-els":8}],7:[function(require,module,exports){var forEachEls=require("./foreach-els"),evalScript=require("./eval-script");module.exports=function(el){this.log("Executing scripts for ",el);var loadingScripts=[];return void 0===el?Promise.resolve():("script"===el.tagName.toLowerCase()&&evalScript.call(this,el),forEachEls(el.querySelectorAll("script"),function(script){script.type&&"text/javascript"!==script.type.toLowerCase()||loadingScripts.push(evalScript.call(this,script))},this),loadingScripts)}},{"./eval-script":3,"./foreach-els":8}],8:[function(require,module,exports){module.exports=function(els,fn,context){return els instanceof HTMLCollection||els instanceof NodeList||els instanceof Array?Array.prototype.forEach.call(els,fn,context):fn.call(context,els)}},{}],9:[function(require,module,exports){var forEachEls=require("./foreach-els");module.exports=function(selectors,cb,context,DOMcontext){DOMcontext=DOMcontext||document,selectors.forEach(function(selector){forEachEls(DOMcontext.querySelectorAll(selector),cb,context)})}},{"./foreach-els":8}],10:[function(require,module,exports){module.exports=function(){return window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/)}},{}],11:[function(require,module,exports){Function.prototype.bind||(Function.prototype.bind=function(oThis){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var aArgs=Array.prototype.slice.call(arguments,1),that=this,Fnoop=function(){},fBound=function(){return that.apply(this instanceof Fnoop&&oThis?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)))};return Fnoop.prototype=this.prototype,fBound.prototype=new Fnoop,fBound})},{}],12:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var on=require("../events/on"),clone=require("../clone"),attrClick="data-pjax-click-state",formAction=function(el,event){this.options.requestOptions={requestUrl:el.getAttribute("action")||window.location.href,requestMethod:el.getAttribute("method")||"GET"};var virtLinkElement=document.createElement("a");if(virtLinkElement.setAttribute("href",this.options.requestOptions.requestUrl),virtLinkElement.protocol===window.location.protocol&&virtLinkElement.host===window.location.host)if(virtLinkElement.pathname===window.location.pathname&&virtLinkElement.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(virtLinkElement.href!==window.location.href.split("#")[0]+"#")if(this.options.currentUrlFullReload)el.setAttribute(attrClick,"reload");else{event.preventDefault();var nameList=[],paramObject=[];for(var elementKey in el.elements){var element=el.elements[elementKey];element.name&&void 0!==element.attributes&&"button"!==element.tagName.toLowerCase()&&("checkbox"!==element.type&&"radio"!==element.type||element.checked)&&-1===nameList.indexOf(element.name)&&(nameList.push(element.name),paramObject.push({name:encodeURIComponent(element.name),value:encodeURIComponent(element.value)}))}var paramsString=paramObject.map(function(value){return value.name+"="+value.value}).join("&");this.options.requestOptions.requestPayload=paramObject,this.options.requestOptions.requestPayloadString=paramsString,el.setAttribute(attrClick,"submit"),this.loadUrl(virtLinkElement.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;on(el,"submit",function(event){isDefaultPrevented(event)||formAction.call(that,el,event)}),on(el,"keyup",function(event){isDefaultPrevented(event)||13==event.keyCode&&formAction.call(that,el,event)}.bind(this))}},{"../clone":2,"../events/on":5,"../polyfills/Function.prototype.bind":11}],13:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var on=require("../events/on"),clone=require("../clone"),attrClick="data-pjax-click-state",linkAction=function(el,event){if(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)el.setAttribute(attrClick,"modifier");else if(el.protocol===window.location.protocol&&el.host===window.location.host)if(el.pathname===window.location.pathname&&el.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(el.hash&&el.href.replace(el.hash,"")===window.location.href.replace(location.hash,""))el.setAttribute(attrClick,"anchor");else if(el.href!==window.location.href.split("#")[0]+"#"){if(event.preventDefault(),this.options.currentUrlFullReload&&el.href===window.location.href.split("#")[0])return el.setAttribute(attrClick,"reload"),void this.reload();this.options.requestOptions=this.options.requestOptions||{},el.setAttribute(attrClick,"load"),this.loadUrl(el.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;on(el,"click",function(event){isDefaultPrevented(event)||linkAction.call(that,el,event)}),on(el,"keyup",function(event){isDefaultPrevented(event)||(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey?el.setAttribute("data-pjax-keyup-state","modifier"):13==event.keyCode&&linkAction.call(that,el,event))}.bind(this))}},{"../clone":2,"../events/on":5,"../polyfills/Function.prototype.bind":11}],14:[function(require,module,exports){module.exports=function(el){return el.querySelectorAll(this.options.elements)}},{}],15:[function(require,module,exports){module.exports=function(){this.options.debug&&this.options.logObject&&("function"==typeof this.options.logObject.log?this.options.logObject.log.apply(this.options.logObject,["PJAX ->",arguments]):this.options.logObject.log&&this.options.logObject.log(["PJAX ->",arguments]))}},{}],16:[function(require,module,exports){var forEachEls=require("../foreach-els"),parseElementUnload=require("./parse-element-unload");module.exports=function(el){forEachEls(this.getElements(el),parseElementUnload,this)}},{"../foreach-els":8,"./parse-element-unload":18}],17:[function(require,module,exports){var forEachEls=require("../foreach-els"),parseElement=require("./parse-element");module.exports=function(el){forEachEls(this.getElements(el),parseElement,this)}},{"../foreach-els":8,"./parse-element":19}],18:[function(require,module,exports){module.exports=function(el){switch(el.tagName.toLowerCase()){case"a":el.hasAttribute("data-pjax-click-state")||this.unattachLink(el);break;case"form":el.hasAttribute("data-pjax-click-state")||this.unattachForm(el);break;default:throw"Pjax can only be applied on or
submit"}}},{}],19:[function(require,module,exports){module.exports=function(el){switch(el.tagName.toLowerCase()){case"a":el.hasAttribute("data-pjax-click-state")||this.attachLink(el);break;case"form":el.hasAttribute("data-pjax-click-state")||this.attachForm(el);break;default:throw"Pjax can only be applied on or submit"}}},{}],20:[function(require,module,exports){module.exports=function(options){this.options=options,this.options.elements=this.options.elements||"a[href], form[action]",this.options.reRenderCSS=this.options.reRenderCSS||!1,this.options.forceRedirectOnFail=this.options.forceRedirectOnFail||!1,this.options.scriptloadtimeout=this.options.scriptloadtimeout||1e3,this.options.mainScriptElement=this.options.mainScriptElement||"head",this.options.removeScriptsAfterParsing=this.options.removeScriptsAfterParsing||!0,this.options.logObject=this.options.logObject||console,this.options.selectors=this.options.selectors||["title",".js-Pjax"],this.options.switches=this.options.switches||{},this.options.switchesOptions=this.options.switchesOptions||{},this.options.history=this.options.history||!0,this.options.analytics=this.options.analytics||function(){window._gaq&&_gaq.push(["_trackPageview"]),window.ga&&ga("send","pageview",{page:location.pathname,title:document.title})},this.options.scrollTo=void 0===this.options.scrollTo?0:this.options.scrollTo,this.options.cacheBust=void 0===this.options.cacheBust||this.options.cacheBust,this.options.debug=this.options.debug||!1,this.options.switches.head||(this.options.switches.head=this.switchElementsAlt),this.options.switches.body||(this.options.switches.body=this.switchElementsAlt),"function"!=typeof options.analytics&&(options.analytics=function(){})}},{}],21:[function(require,module,exports){module.exports=function(el){this.parseDOM(el||document)}},{}],22:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var off=require("../events/off"),clone=require("../clone"),attrClick="data-pjax-click-state",formAction=function(el,event){this.options.requestOptions={requestUrl:el.getAttribute("action")||window.location.href,requestMethod:el.getAttribute("method")||"GET"};var virtLinkElement=document.createElement("a");if(virtLinkElement.setAttribute("href",this.options.requestOptions.requestUrl),virtLinkElement.protocol===window.location.protocol&&virtLinkElement.host===window.location.host)if(virtLinkElement.pathname===window.location.pathname&&virtLinkElement.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(virtLinkElement.href!==window.location.href.split("#")[0]+"#")if(this.options.currentUrlFullReload)el.setAttribute(attrClick,"reload");else{event.preventDefault();var nameList=[],paramObject=[];for(var elementKey in el.elements){var element=el.elements[elementKey];element.name&&void 0!==element.attributes&&"button"!==element.tagName.toLowerCase()&&("checkbox"!==element.type&&"radio"!==element.type||element.checked)&&-1===nameList.indexOf(element.name)&&(nameList.push(element.name),paramObject.push({name:encodeURIComponent(element.name),value:encodeURIComponent(element.value)}))}var paramsString=paramObject.map(function(value){return value.name+"="+value.value}).join("&");this.options.requestOptions.requestPayload=paramObject,this.options.requestOptions.requestPayloadString=paramsString,el.setAttribute(attrClick,"submit"),this.loadUrl(virtLinkElement.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;off(el,"submit",function(event){isDefaultPrevented(event)||formAction.call(that,el,event)}),off(el,"keyup",function(event){isDefaultPrevented(event)||13==event.keyCode&&formAction.call(that,el,event)}.bind(this))}},{"../clone":2,"../events/off":4,"../polyfills/Function.prototype.bind":11}],23:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var off=require("../events/off"),clone=require("../clone"),attrClick="data-pjax-click-state",linkAction=function(el,event){if(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)el.setAttribute(attrClick,"modifier");else if(el.protocol===window.location.protocol&&el.host===window.location.host)if(el.pathname===window.location.pathname&&el.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(el.hash&&el.href.replace(el.hash,"")===window.location.href.replace(location.hash,""))el.setAttribute(attrClick,"anchor");else if(el.href!==window.location.href.split("#")[0]+"#"){if(event.preventDefault(),this.options.currentUrlFullReload&&el.href===window.location.href.split("#")[0])return el.setAttribute(attrClick,"reload"),void this.reload();this.options.requestOptions=this.options.requestOptions||{},el.setAttribute(attrClick,"load"),this.loadUrl(el.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;off(el,"click",function(event){isDefaultPrevented(event)||linkAction.call(that,el,event)}),off(el,"keyup",function(event){isDefaultPrevented(event)||(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey?el.setAttribute("data-pjax-keyup-state","modifier"):13==event.keyCode&&linkAction.call(that,el,event))}.bind(this))}},{"../clone":2,"../events/off":4,"../polyfills/Function.prototype.bind":11}],24:[function(require,module,exports){module.exports=function(){window.location.reload()}},{}],25:[function(require,module,exports){module.exports=function(location,options,callback){var requestMethod=(options=options||{}).requestMethod||"GET",requestPayload=options.requestPayloadString||null,request=new XMLHttpRequest;return request.onreadystatechange=function(){4===request.readyState&&(200===request.status?callback(request.responseText,request):callback(null,request))},this.options.cacheBust&&(location+=(/[?&]/.test(location)?"&":"?")+(new Date).getTime()),request.open(requestMethod.toUpperCase(),location,!0),request.setRequestHeader("X-Requested-With","XMLHttpRequest"),void 0!=options.requestPayloadString&&""!=options.requestPayloadString&&request.setRequestHeader("Content-type","application/x-www-form-urlencoded"),request.send(requestPayload),request}},{}],26:[function(require,module,exports){var forEachEls=require("./foreach-els"),defaultSwitches=require("./switches");module.exports=function(switches,switchesOptions,selectors,fromEl,toEl,options){selectors.forEach(function(selector){var newEls=fromEl.querySelectorAll(selector),oldEls=toEl.querySelectorAll(selector);if(this.log&&this.log("Pjax switch",selector,newEls,oldEls),newEls.length!==oldEls.length)throw"DOM doesn’t look the same on new loaded page: ’"+selector+"’ - new "+newEls.length+", old "+oldEls.length;forEachEls(newEls,function(newEl,i){var oldEl=oldEls[i];this.log&&this.log("newEl",newEl,"oldEl",oldEl),switches[selector]?switches[selector].bind(this)(oldEl,newEl,options,switchesOptions[selector]):defaultSwitches.outerHTML.bind(this)(oldEl,newEl,options)},this)},this)}},{"./foreach-els":8,"./switches":27}],27:[function(require,module,exports){var on=require("./events/on.js");module.exports={outerHTML:function(oldEl,newEl){oldEl.outerHTML=newEl.outerHTML,this.onSwitch()},innerHTML:function(oldEl,newEl){oldEl.innerHTML=newEl.innerHTML,oldEl.className=newEl.className,this.onSwitch()},sideBySide:function(oldEl,newEl,options,switchOptions){var forEach=Array.prototype.forEach,elsToRemove=[],elsToAdd=[],fragToAppend=document.createDocumentFragment(),animationEventNames="animationend webkitAnimationEnd MSAnimationEnd oanimationend",animatedElsNumber=0,sexyAnimationEnd=function(e){e.target==e.currentTarget&&--animatedElsNumber<=0&&elsToRemove&&(elsToRemove.forEach(function(el){el.parentNode&&el.parentNode.removeChild(el)}),elsToAdd.forEach(function(el){el.className=el.className.replace(el.getAttribute("data-pjax-classes"),""),el.removeAttribute("data-pjax-classes")}),elsToAdd=null,elsToRemove=null,this.onSwitch())}.bind(this);switchOptions=switchOptions||{},forEach.call(oldEl.childNodes,function(el){elsToRemove.push(el),el.classList&&!el.classList.contains("js-Pjax-remove")&&(el.hasAttribute("data-pjax-classes")&&(el.className=el.className.replace(el.getAttribute("data-pjax-classes"),""),el.removeAttribute("data-pjax-classes")),el.classList.add("js-Pjax-remove"),switchOptions.callbacks&&switchOptions.callbacks.removeElement&&switchOptions.callbacks.removeElement(el),switchOptions.classNames&&(el.className+=" "+switchOptions.classNames.remove+" "+(options.backward?switchOptions.classNames.backward:switchOptions.classNames.forward)),animatedElsNumber++,on(el,animationEventNames,sexyAnimationEnd,!0))}),forEach.call(newEl.childNodes,function(el){if(el.classList){var addClasses="";switchOptions.classNames&&(addClasses=" js-Pjax-add "+switchOptions.classNames.add+" "+(options.backward?switchOptions.classNames.forward:switchOptions.classNames.backward)),switchOptions.callbacks&&switchOptions.callbacks.addElement&&switchOptions.callbacks.addElement(el),el.className+=addClasses,el.setAttribute("data-pjax-classes",addClasses),elsToAdd.push(el),fragToAppend.appendChild(el),animatedElsNumber++,on(el,animationEventNames,sexyAnimationEnd,!0)}}),oldEl.className=newEl.className,oldEl.appendChild(fragToAppend)}}},{"./events/on.js":5}],28:[function(require,module,exports){module.exports=function(){var counter=0;return function(){var id="pjax"+(new Date).getTime()+"_"+counter;return counter++,id}}()},{}],29:[function(require,module,exports){var forEachEls=require("./foreach-els");module.exports=function(elements,oldElements){this.log("styleheets old elements",oldElements),this.log("styleheets new elements",elements);forEachEls(elements,function(newEl,i){if(null!==function(enumerable){for(var arr=[],i=enumerable.length;i--;arr.unshift(enumerable[i]));return arr}(oldElements).reduce(function(acc,oldEl){return acc=oldEl.href===newEl.href?oldEl:acc},null))this.log&&this.log("old stylesheet found not resetting");else{this.log&&this.log("new stylesheet => add to head");var head=document.getElementsByTagName("head")[0],link=document.createElement("link");link.setAttribute("href",newEl.href),link.setAttribute("rel","stylesheet"),link.setAttribute("type","text/css"),head.appendChild(link)}},this)}},{"./foreach-els":8}]},{},[1])(1)});var switchInnerHTML=function(oldEl,newEl,opt){opt=opt||{};var parent=$(oldEl).parent();$(oldEl).off().remove(),parent.append(newEl),this.onSwitch()},singletonPjax=function(){return window.activePjax=window.activePjax||null,null===window.activePjax&&(console.ls.log("creating a Pjax instance on the window object"),window.activePjax=new Pjax({elements:["a.pjax","form.pjax"],selectors:["#pjax-content","#breadcrumb-container","#bottomScripts","#beginScripts"],switches:{"#bottomScripts":switchInnerHTML,"#beginScripts":switchInnerHTML,"#pjax-content":switchInnerHTML,"#breadcrumb-container":switchInnerHTML},debug:window.debugState.backend,forceRedirectOnFail:!0,reRenderCSS:!0,scriptloadtimeout:1500,logObject:console.ls})),window.activePjax},forceRefreshPjax=function(){window.activePjax=null,singletonPjax()},unsetPjax=function(){window.activePjax.parseDOMtoUnload(),$("a.pjax").off("click"),window.activePjax=null},triggerLoadUrl=function(e){singletonPjax().loadUrl(e.url,singletonPjax().options)},reparseDocument=function(){singletonPjax().parseDOM(document)};window.singletonPjax=singletonPjax,window.removeEventListener("pjax:reload",forceRefreshPjax),window.removeEventListener("pjax:create",singletonPjax),window.removeEventListener("pjax:refresh",reparseDocument),window.removeEventListener("pjax:load",triggerLoadUrl),window.removeEventListener("pjax:unload",unsetPjax),window.addEventListener("pjax:reload",forceRefreshPjax),window.addEventListener("pjax:create",singletonPjax),window.addEventListener("pjax:refresh",reparseDocument),window.addEventListener("pjax:load",triggerLoadUrl),window.addEventListener("pjax:unload",unsetPjax); +!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Pjax=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o]+>/gi);if(matches&&matches.length&&(matches=matches[0].match(/\s?[a-z:]+(?:\=(?:\'|\")[^\'\">]+(?:\'|\"))*/gi)).length&&(matches.shift(),matches.forEach(function(htmlAttrib){var attr=htmlAttrib.trim().split("=");1===attr.length?tmpEl.documentElement.setAttribute(attr[0],!0):tmpEl.documentElement.setAttribute(attr[0],attr[1].slice(1,-1))})),tmpEl.documentElement.innerHTML=html,this.log("load content",tmpEl.documentElement.attributes,tmpEl.documentElement.innerHTML.length),document.activeElement&&!document.activeElement.value)try{document.activeElement.blur()}catch(e){}this.switchSelectors(this.options.selectors,tmpEl,document,options),!0===this.options.reRenderCSS&&this.updateStylesheets.call(this,tmpEl.querySelectorAll("link[rel=stylesheet]"),document.querySelectorAll("link[rel=stylesheet]"));var autofocusEl=Array.prototype.slice.call(document.querySelectorAll("[autofocus]")).pop();autofocusEl&&document.activeElement!==autofocusEl&&autofocusEl.focus(),this.options.selectors.forEach(function(selector){forEachEls(document.querySelectorAll(selector),function(el){collectForScriptcomplete.push.apply(collectForScriptcomplete,executeScripts.call(this,el))},this)},this),this.log("waiting for scriptcomplete",collectForScriptcomplete);var timeOutScriptEvent=null;timeOutScriptEvent=window.setTimeout(function(){trigger(document,"pjax:scriptcomplete pjax:scripttimeout",options),timeOutScriptEvent=null},this.options.scriptloadtimeout),Promise.all(collectForScriptcomplete).then(function(){null!==timeOutScriptEvent&&(window.clearTimeout(timeOutScriptEvent),trigger(document,"pjax:scriptcomplete pjax:scriptsuccess",options))},function(){null!==timeOutScriptEvent&&(window.clearTimeout(timeOutScriptEvent),trigger(document,"pjax:scriptcomplete pjax:scripterror",options))})},doRequest:require("./lib/request.js"),loadUrl:function(href,options){this.log("load href",href,options),trigger(document,"pjax:send",options),this.doRequest(href,options.requestOptions,function(html){if(!1!==html){document.activeElement.blur();try{this.loadContent(html,options)}catch(e){if(this.options.debug)throw this.options.forceRedirectOnFail&&this.latestChance(href),e;return console&&this.options.logObject.error&&this.options.logObject.error("Pjax switch fail: ",e),void this.latestChance(href)}options.history&&(this.firstrun&&(this.lastUid=this.maxUid=newUid(),this.firstrun=!1,window.history.replaceState({url:window.location.href,title:document.title,uid:this.maxUid},document.title)),this.lastUid=this.maxUid=newUid(),window.history.pushState({url:href,title:options.title,uid:this.maxUid},options.title,href)),this.forEachSelectors(function(el){this.parseDOM(el)},this),trigger(document,"pjax:complete pjax:success",options),options.analytics(),!1!==options.scrollTo&&(options.scrollTo.length>1?window.scrollTo(options.scrollTo[0],options.scrollTo[1]):window.scrollTo(0,options.scrollTo))}else trigger(document,"pjax:complete pjax:error",options)}.bind(this))}},Pjax.isSupported=require("./lib/is-supported.js"),Pjax.isSupported())module.exports=Pjax;else{var stupidPjax=function(){};for(var key in Pjax.prototype)Pjax.prototype.hasOwnProperty(key)&&"function"==typeof Pjax.prototype[key]&&(stupidPjax[key]=stupidPjax);module.exports=stupidPjax}},{"./lib/clone.js":2,"./lib/events/on.js":5,"./lib/events/trigger.js":6,"./lib/execute-scripts.js":7,"./lib/foreach-els.js":8,"./lib/foreach-selectors.js":9,"./lib/is-supported.js":10,"./lib/proto/attach-form.js":12,"./lib/proto/attach-link.js":13,"./lib/proto/get-elements.js":14,"./lib/proto/log.js":15,"./lib/proto/parse-dom-unload.js":16,"./lib/proto/parse-dom.js":17,"./lib/proto/parse-options.js":20,"./lib/proto/refresh.js":21,"./lib/proto/unattach-form.js":22,"./lib/proto/unattach-link.js":23,"./lib/reload.js":24,"./lib/request.js":25,"./lib/switches-selectors.js":26,"./lib/uniqueid.js":28,"./lib/update-stylesheets.js":29}],2:[function(require,module,exports){module.exports=function(obj){if(null===obj||"object"!=typeof obj)return obj;var copy=obj.constructor();for(var attr in obj)obj.hasOwnProperty(attr)&&(copy[attr]=obj[attr]);return copy}},{}],3:[function(require,module,exports){module.exports=function(el){var querySelector=this.options.mainScriptElement,code=el.text||el.textContent||el.innerHTML||"",src=el.src||"",parent=el.parentNode||document.querySelector(querySelector)||document.documentElement,script=document.createElement("script"),promise=null;return this.log("Evaluating Script: ",el),code.match("document.write")?(console&&this.options.logObject.log&&this.options.logObject.log("Script contains document.write. Can’t be executed correctly. Code skipped ",el),!1):(promise=new Promise(function(resolve,reject){if(script.type="text/javascript",""!=src&&(script.src=src,script.addEventListener("load",function(){resolve(src)}),script.async=!0),""!=code){try{script.appendChild(document.createTextNode(code))}catch(e){script.text=code}resolve("text-node")}}),this.log("ParentElement => ",parent),parent.appendChild(script),parent.removeChild(script),["head","body"].indexOf(parent.tagName.toLowerCase())>0||this.options.removeScriptsAfterParsing,promise)}},{}],4:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,listener,useCapture){(events="string"==typeof events?events.split(" "):events).forEach(function(e){forEachEls(els,function(el){el.removeEventListener(e,listener,useCapture)})})}},{"../foreach-els":8}],5:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,listener,useCapture){(events="string"==typeof events?events.split(" "):events).forEach(function(e){forEachEls(els,function(el){el.addEventListener(e,listener,useCapture)})})}},{"../foreach-els":8}],6:[function(require,module,exports){var forEachEls=require("../foreach-els");module.exports=function(els,events,opts){(events="string"==typeof events?events.split(" "):events).forEach(function(e){var event;(event=document.createEvent("HTMLEvents")).initEvent(e,!0,!0),event.eventName=e,opts&&Object.keys(opts).forEach(function(key){event[key]=opts[key]}),forEachEls(els,function(el){var domFix=!1;el.parentNode||el===document||el===window||(domFix=!0,document.body.appendChild(el)),el.dispatchEvent(event),domFix&&el.parentNode.removeChild(el)})})}},{"../foreach-els":8}],7:[function(require,module,exports){var forEachEls=require("./foreach-els"),evalScript=require("./eval-script");module.exports=function(el){this.log("Executing scripts for ",el);var loadingScripts=[];return void 0===el?Promise.resolve():("script"===el.tagName.toLowerCase()&&evalScript.call(this,el),forEachEls(el.querySelectorAll("script"),function(script){script.type&&"text/javascript"!==script.type.toLowerCase()||loadingScripts.push(evalScript.call(this,script))},this),loadingScripts)}},{"./eval-script":3,"./foreach-els":8}],8:[function(require,module,exports){module.exports=function(els,fn,context){return els instanceof HTMLCollection||els instanceof NodeList||els instanceof Array?Array.prototype.forEach.call(els,fn,context):fn.call(context,els)}},{}],9:[function(require,module,exports){var forEachEls=require("./foreach-els");module.exports=function(selectors,cb,context,DOMcontext){DOMcontext=DOMcontext||document,selectors.forEach(function(selector){forEachEls(DOMcontext.querySelectorAll(selector),cb,context)})}},{"./foreach-els":8}],10:[function(require,module,exports){module.exports=function(){return window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/)}},{}],11:[function(require,module,exports){Function.prototype.bind||(Function.prototype.bind=function(oThis){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var aArgs=Array.prototype.slice.call(arguments,1),that=this,Fnoop=function(){},fBound=function(){return that.apply(this instanceof Fnoop&&oThis?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)))};return Fnoop.prototype=this.prototype,fBound.prototype=new Fnoop,fBound})},{}],12:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var on=require("../events/on"),clone=require("../clone"),attrClick="data-pjax-click-state",formAction=function(el,event){this.options.requestOptions={requestUrl:el.getAttribute("action")||window.location.href,requestMethod:el.getAttribute("method")||"GET"};var virtLinkElement=document.createElement("a");if(virtLinkElement.setAttribute("href",this.options.requestOptions.requestUrl),virtLinkElement.protocol===window.location.protocol&&virtLinkElement.host===window.location.host)if(virtLinkElement.pathname===window.location.pathname&&virtLinkElement.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(virtLinkElement.href!==window.location.href.split("#")[0]+"#")if(this.options.currentUrlFullReload)el.setAttribute(attrClick,"reload");else{event.preventDefault();var nameList=[],paramObject=[];for(var elementKey in el.elements){var element=el.elements[elementKey];element.name&&void 0!==element.attributes&&"button"!==element.tagName.toLowerCase()&&("checkbox"!==element.type&&"radio"!==element.type||element.checked)&&-1===nameList.indexOf(element.name)&&(nameList.push(element.name),paramObject.push({name:encodeURIComponent(element.name),value:encodeURIComponent(element.value)}))}var paramsString=paramObject.map(function(value){return value.name+"="+value.value}).join("&");this.options.requestOptions.requestPayload=paramObject,this.options.requestOptions.requestPayloadString=paramsString,el.setAttribute(attrClick,"submit"),this.loadUrl(virtLinkElement.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;on(el,"submit",function(event){isDefaultPrevented(event)||formAction.call(that,el,event)}),on(el,"keyup",function(event){isDefaultPrevented(event)||13==event.keyCode&&formAction.call(that,el,event)}.bind(this))}},{"../clone":2,"../events/on":5,"../polyfills/Function.prototype.bind":11}],13:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var on=require("../events/on"),clone=require("../clone"),attrClick="data-pjax-click-state",linkAction=function(el,event){if(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)el.setAttribute(attrClick,"modifier");else if(el.protocol===window.location.protocol&&el.host===window.location.host)if(el.pathname===window.location.pathname&&el.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(el.hash&&el.href.replace(el.hash,"")===window.location.href.replace(location.hash,""))el.setAttribute(attrClick,"anchor");else if(el.href!==window.location.href.split("#")[0]+"#"){if(event.preventDefault(),this.options.currentUrlFullReload&&el.href===window.location.href.split("#")[0])return el.setAttribute(attrClick,"reload"),void this.reload();this.options.requestOptions=this.options.requestOptions||{},el.setAttribute(attrClick,"load"),this.loadUrl(el.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;on(el,"click",function(event){isDefaultPrevented(event)||linkAction.call(that,el,event)}),on(el,"keyup",function(event){isDefaultPrevented(event)||(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey?el.setAttribute("data-pjax-keyup-state","modifier"):13==event.keyCode&&linkAction.call(that,el,event))}.bind(this))}},{"../clone":2,"../events/on":5,"../polyfills/Function.prototype.bind":11}],14:[function(require,module,exports){module.exports=function(el){return el.querySelectorAll(this.options.elements)}},{}],15:[function(require,module,exports){module.exports=function(){this.options.debug&&this.options.logObject&&("function"==typeof this.options.logObject.log?this.options.logObject.log.apply(this.options.logObject,["PJAX ->",arguments]):this.options.logObject.log&&this.options.logObject.log(["PJAX ->",arguments]))}},{}],16:[function(require,module,exports){var forEachEls=require("../foreach-els"),parseElementUnload=require("./parse-element-unload");module.exports=function(el){forEachEls(this.getElements(el),parseElementUnload,this)}},{"../foreach-els":8,"./parse-element-unload":18}],17:[function(require,module,exports){var forEachEls=require("../foreach-els"),parseElement=require("./parse-element");module.exports=function(el){forEachEls(this.getElements(el),parseElement,this)}},{"../foreach-els":8,"./parse-element":19}],18:[function(require,module,exports){module.exports=function(el){switch(el.tagName.toLowerCase()){case"a":el.hasAttribute("data-pjax-click-state")||this.unattachLink(el);break;case"form":el.hasAttribute("data-pjax-click-state")||this.unattachForm(el);break;default:throw"Pjax can only be applied on or submit"}}},{}],19:[function(require,module,exports){module.exports=function(el){switch(el.tagName.toLowerCase()){case"a":el.hasAttribute("data-pjax-click-state")||this.attachLink(el);break;case"form":el.hasAttribute("data-pjax-click-state")||this.attachForm(el);break;default:throw"Pjax can only be applied on or submit"}}},{}],20:[function(require,module,exports){module.exports=function(options){this.options=options,this.options.elements=this.options.elements||"a[href], form[action]",this.options.reRenderCSS=this.options.reRenderCSS||!1,this.options.forceRedirectOnFail=this.options.forceRedirectOnFail||!1,this.options.scriptloadtimeout=this.options.scriptloadtimeout||1e3,this.options.mainScriptElement=this.options.mainScriptElement||"head",this.options.removeScriptsAfterParsing=this.options.removeScriptsAfterParsing||!0,this.options.logObject=this.options.logObject||console,this.options.selectors=this.options.selectors||["title",".js-Pjax"],this.options.switches=this.options.switches||{},this.options.switchesOptions=this.options.switchesOptions||{},this.options.history=this.options.history||!0,this.options.analytics=this.options.analytics||function(){window._gaq&&_gaq.push(["_trackPageview"]),window.ga&&ga("send","pageview",{page:location.pathname,title:document.title})},this.options.scrollTo=void 0===this.options.scrollTo?0:this.options.scrollTo,this.options.cacheBust=void 0===this.options.cacheBust||this.options.cacheBust,this.options.debug=this.options.debug||!1,this.options.switches.head||(this.options.switches.head=this.switchElementsAlt),this.options.switches.body||(this.options.switches.body=this.switchElementsAlt),"function"!=typeof options.analytics&&(options.analytics=function(){})}},{}],21:[function(require,module,exports){module.exports=function(el){this.parseDOM(el||document)}},{}],22:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var off=require("../events/off"),clone=require("../clone"),attrClick="data-pjax-click-state",formAction=function(el,event){this.options.requestOptions={requestUrl:el.getAttribute("action")||window.location.href,requestMethod:el.getAttribute("method")||"GET"};var virtLinkElement=document.createElement("a");if(virtLinkElement.setAttribute("href",this.options.requestOptions.requestUrl),virtLinkElement.protocol===window.location.protocol&&virtLinkElement.host===window.location.host)if(virtLinkElement.pathname===window.location.pathname&&virtLinkElement.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(virtLinkElement.href!==window.location.href.split("#")[0]+"#")if(this.options.currentUrlFullReload)el.setAttribute(attrClick,"reload");else{event.preventDefault();var nameList=[],paramObject=[];for(var elementKey in el.elements){var element=el.elements[elementKey];element.name&&void 0!==element.attributes&&"button"!==element.tagName.toLowerCase()&&("checkbox"!==element.type&&"radio"!==element.type||element.checked)&&-1===nameList.indexOf(element.name)&&(nameList.push(element.name),paramObject.push({name:encodeURIComponent(element.name),value:encodeURIComponent(element.value)}))}var paramsString=paramObject.map(function(value){return value.name+"="+value.value}).join("&");this.options.requestOptions.requestPayload=paramObject,this.options.requestOptions.requestPayloadString=paramsString,el.setAttribute(attrClick,"submit"),this.loadUrl(virtLinkElement.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;off(el,"submit",function(event){isDefaultPrevented(event)||formAction.call(that,el,event)}),off(el,"keyup",function(event){isDefaultPrevented(event)||13==event.keyCode&&formAction.call(that,el,event)}.bind(this))}},{"../clone":2,"../events/off":4,"../polyfills/Function.prototype.bind":11}],23:[function(require,module,exports){require("../polyfills/Function.prototype.bind");var off=require("../events/off"),clone=require("../clone"),attrClick="data-pjax-click-state",linkAction=function(el,event){if(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)el.setAttribute(attrClick,"modifier");else if(el.protocol===window.location.protocol&&el.host===window.location.host)if(el.pathname===window.location.pathname&&el.hash.length>0)el.setAttribute(attrClick,"anchor-present");else if(el.hash&&el.href.replace(el.hash,"")===window.location.href.replace(location.hash,""))el.setAttribute(attrClick,"anchor");else if(el.href!==window.location.href.split("#")[0]+"#"){if(event.preventDefault(),this.options.currentUrlFullReload&&el.href===window.location.href.split("#")[0])return el.setAttribute(attrClick,"reload"),void this.reload();this.options.requestOptions=this.options.requestOptions||{},el.setAttribute(attrClick,"load"),this.loadUrl(el.href,clone(this.options))}else el.setAttribute(attrClick,"anchor-empty");else el.setAttribute(attrClick,"external")},isDefaultPrevented=function(event){return event.defaultPrevented||!1===event.returnValue};module.exports=function(el){var that=this;off(el,"click",function(event){isDefaultPrevented(event)||linkAction.call(that,el,event)}),off(el,"keyup",function(event){isDefaultPrevented(event)||(event.which>1||event.metaKey||event.ctrlKey||event.shiftKey||event.altKey?el.setAttribute("data-pjax-keyup-state","modifier"):13==event.keyCode&&linkAction.call(that,el,event))}.bind(this))}},{"../clone":2,"../events/off":4,"../polyfills/Function.prototype.bind":11}],24:[function(require,module,exports){module.exports=function(){window.location.reload()}},{}],25:[function(require,module,exports){module.exports=function(location,options,callback){var requestMethod=(options=options||{}).requestMethod||"GET",requestPayload=options.requestPayloadString||null,request=new XMLHttpRequest;return request.onreadystatechange=function(){4===request.readyState&&(200===request.status?callback(request.responseText,request):callback(null,request))},this.options.cacheBust&&(location+=(/[?&]/.test(location)?"&":"?")+(new Date).getTime()),request.open(requestMethod.toUpperCase(),location,!0),request.setRequestHeader("X-Requested-With","XMLHttpRequest"),void 0!=options.requestPayloadString&&""!=options.requestPayloadString&&request.setRequestHeader("Content-type","application/x-www-form-urlencoded"),request.send(requestPayload),request}},{}],26:[function(require,module,exports){var forEachEls=require("./foreach-els"),defaultSwitches=require("./switches");module.exports=function(switches,switchesOptions,selectors,fromEl,toEl,options){selectors.forEach(function(selector){var newEls=fromEl.querySelectorAll(selector),oldEls=toEl.querySelectorAll(selector);if(this.log&&this.log("Pjax switch",selector,newEls,oldEls),newEls.length!==oldEls.length)throw"DOM doesn’t look the same on new loaded page: ’"+selector+"’ - new "+newEls.length+", old "+oldEls.length;forEachEls(newEls,function(newEl,i){var oldEl=oldEls[i];this.log&&this.log("newEl",newEl,"oldEl",oldEl),switches[selector]?switches[selector].bind(this)(oldEl,newEl,options,switchesOptions[selector]):defaultSwitches.outerHTML.bind(this)(oldEl,newEl,options)},this)},this)}},{"./foreach-els":8,"./switches":27}],27:[function(require,module,exports){var on=require("./events/on.js");module.exports={outerHTML:function(oldEl,newEl){oldEl.outerHTML=newEl.outerHTML,this.onSwitch()},innerHTML:function(oldEl,newEl){oldEl.innerHTML=newEl.innerHTML,oldEl.className=newEl.className,this.onSwitch()},sideBySide:function(oldEl,newEl,options,switchOptions){var forEach=Array.prototype.forEach,elsToRemove=[],elsToAdd=[],fragToAppend=document.createDocumentFragment(),animationEventNames="animationend webkitAnimationEnd MSAnimationEnd oanimationend",animatedElsNumber=0,sexyAnimationEnd=function(e){e.target==e.currentTarget&&--animatedElsNumber<=0&&elsToRemove&&(elsToRemove.forEach(function(el){el.parentNode&&el.parentNode.removeChild(el)}),elsToAdd.forEach(function(el){el.className=el.className.replace(el.getAttribute("data-pjax-classes"),""),el.removeAttribute("data-pjax-classes")}),elsToAdd=null,elsToRemove=null,this.onSwitch())}.bind(this);switchOptions=switchOptions||{},forEach.call(oldEl.childNodes,function(el){elsToRemove.push(el),el.classList&&!el.classList.contains("js-Pjax-remove")&&(el.hasAttribute("data-pjax-classes")&&(el.className=el.className.replace(el.getAttribute("data-pjax-classes"),""),el.removeAttribute("data-pjax-classes")),el.classList.add("js-Pjax-remove"),switchOptions.callbacks&&switchOptions.callbacks.removeElement&&switchOptions.callbacks.removeElement(el),switchOptions.classNames&&(el.className+=" "+switchOptions.classNames.remove+" "+(options.backward?switchOptions.classNames.backward:switchOptions.classNames.forward)),animatedElsNumber++,on(el,animationEventNames,sexyAnimationEnd,!0))}),forEach.call(newEl.childNodes,function(el){if(el.classList){var addClasses="";switchOptions.classNames&&(addClasses=" js-Pjax-add "+switchOptions.classNames.add+" "+(options.backward?switchOptions.classNames.forward:switchOptions.classNames.backward)),switchOptions.callbacks&&switchOptions.callbacks.addElement&&switchOptions.callbacks.addElement(el),el.className+=addClasses,el.setAttribute("data-pjax-classes",addClasses),elsToAdd.push(el),fragToAppend.appendChild(el),animatedElsNumber++,on(el,animationEventNames,sexyAnimationEnd,!0)}}),oldEl.className=newEl.className,oldEl.appendChild(fragToAppend)}}},{"./events/on.js":5}],28:[function(require,module,exports){module.exports=function(){var counter=0;return function(){var id="pjax"+(new Date).getTime()+"_"+counter;return counter++,id}}()},{}],29:[function(require,module,exports){var forEachEls=require("./foreach-els");module.exports=function(elements,oldElements){this.log("styleheets old elements",oldElements),this.log("styleheets new elements",elements);forEachEls(elements,function(newEl,i){if(null!==function(enumerable){for(var arr=[],i=enumerable.length;i--;arr.unshift(enumerable[i]));return arr}(oldElements).reduce(function(acc,oldEl){return acc=oldEl.href===newEl.href?oldEl:acc},null))this.log&&this.log("old stylesheet found not resetting");else{this.log&&this.log("new stylesheet => add to head");var head=document.getElementsByTagName("head")[0],link=document.createElement("link");link.setAttribute("href",newEl.href),link.setAttribute("rel","stylesheet"),link.setAttribute("type","text/css"),head.appendChild(link)}},this)}},{"./foreach-els":8}]},{},[1])(1)});var switchOuterHTML=function(oldEl,newEl,opt){opt=opt||{};var parent=$(oldEl).parent();$(oldEl).off().remove(),parent.append(newEl),this.onSwitch()},switchInnerHTML=function(oldEl,newEl,opt){opt=opt||{};$(oldEl).parent();$(oldEl).off().html(""),$(oldEl).html($(newEl).html()),this.onSwitch()},singletonPjax=function(){return window.activePjax=window.activePjax||null,null===window.activePjax&&(console.ls.log("creating a Pjax instance on the window object"),window.activePjax=new Pjax({elements:["a.pjax","form.pjax"],selectors:["#pjax-content","#breadcrumb-container","#bottomScripts","#beginScripts"],switches:{"#bottomScripts":switchOuterHTML,"#beginScripts":switchOuterHTML,"#pjax-content":switchInnerHTML,"#breadcrumb-container":switchOuterHTML},debug:window.debugState.backend,forceRedirectOnFail:!0,reRenderCSS:!0,scriptloadtimeout:1500,logObject:console.ls})),window.activePjax},forceRefreshPjax=function(){window.activePjax=null,singletonPjax()},unsetPjax=function(){window.activePjax.parseDOMtoUnload(),$("a.pjax").off("click"),window.activePjax=null},triggerLoadUrl=function(e){singletonPjax().loadUrl(e.url,singletonPjax().options)},reparseDocument=function(){singletonPjax().parseDOM(document)};window.singletonPjax=singletonPjax,window.removeEventListener("pjax:reload",forceRefreshPjax),window.removeEventListener("pjax:create",singletonPjax),window.removeEventListener("pjax:refresh",reparseDocument),window.removeEventListener("pjax:load",triggerLoadUrl),window.removeEventListener("pjax:unload",unsetPjax),window.addEventListener("pjax:reload",forceRefreshPjax),window.addEventListener("pjax:create",singletonPjax),window.addEventListener("pjax:refresh",reparseDocument),window.addEventListener("pjax:load",triggerLoadUrl),window.addEventListener("pjax:unload",unsetPjax);