/*
 * jQuery BBQ: Back Button & Query Library - v1.0 - 10/2/2009
 * http://benalman.com/projects/jquery-bbq-plugin/
 * 
 * Copyright (c) 2009 "Cowboy" Ben Alman
 * Licensed under the MIT license
 * http://benalman.com/about/license/
 */
(function($,c){var g,k=document.location,i=Array.prototype.slice,C=decodeURIComponent,a=$.param,l,d,o,m=$.bbq=$.bbq||{},n,e,y,b="hashchange",u="querystring",x="fragment",p="hash",w="elemUrlAttr",h="href",B="src",j="on"+b in c,q=/^.*\?|#.*$/g,z=/^.*\#/,s={};function r(D){return typeof D==="string"}function v(E){var D=i.call(arguments,1);return function(){return E.apply(this,D.concat(i.call(arguments)))}}function f(E,M,D,F,I){var K,J,H,L,G;if(F!==g){H=D.match(E?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);G=H[3]||"";if(I===2&&r(F)){J=F.replace(M,"")}else{L=d(H[2]);F=r(F)?d[E?x:u](F):F;J=I===2?F:I===1?$.extend({},F,L):$.extend({},L,F);J=a(J)}K=H[1]+(E?"#":J||!H[1]?"?":"")+J+G}else{if(D){K=D.replace(M,"")}else{K=E?k[p]?k[h].replace(M,""):"":k.search.replace(/^\??/,"")}}return K}a[u]=v(f,0,q);a[x]=l=v(f,1,z);$.deparam=d=function(G,E){var F={},D={"true":!0,"false":!1,"null":null};$.each(G.replace(/\+/g," ").split("&"),function(K,M){var J=M.split("="),N=C(J[0]),I,O=F,L=0,P=N.split("]["),H=P.length-1;if(/\[/.test(P[0])&&/\]$/.test(P[H])){P[H]=P[H].replace(/\]$/,"");P=P.shift().split("[").concat(P);H=P.length-1}else{H=0}if(J.length===2){I=C(J[1]);if(E){I=I&&!isNaN(I)?+I:I==="undefined"?g:D[I]!==g?D[I]:I}if(H){for(;L<=H;L++){N=P[L]===""?O.length:P[L];O=O[N]=L<H?O[N]||(P[L+1]&&isNaN(P[L+1])?{}:[]):I}}else{if($.isArray(F[N])){F[N].push(I)}else{if(F[N]!==g){F[N]=[F[N],I]}else{F[N]=I}}}}else{if(N){F[N]=E?g:""}}});return F};function t(G,F,E,D){if(E===g||typeof E==="boolean"){D=E;E=a[G]()}else{E=r(E)?E.replace(F,""):E}return d(E,D)}d[u]=v(t,u,q);d[x]=o=v(t,x,z);$[w]||($[w]=function(D){return $.extend(s,D)})({a:h,base:h,iframe:B,img:B,input:B,form:"action",link:h,script:B});e=$[w];function A(G,D,F,E){if(!r(F)&&typeof F!=="object"){E=F;F=D;D=g}return this.each(function(){var J=$(this),H=D||e()[(this.nodeName||"").toLowerCase()]||"",I=H&&J.attr(H)||"";J.attr(H,a[G](I,F,E))})}$.fn[u]=v(A,u);$.fn[x]=v(A,x);m.pushState=n=function(G,F){if(r(G)&&/^#/.test(G)&&F===g){F=2}var E=G!==g,D=l(k[h],E?G:{},E?F:2);k[h]=D+(/#/.test(D)?"":"#")};m.getState=function(E,D){return E===g||typeof E==="boolean"?o(E):o(D)[E]};m.pollDelay=100;$.event.special[b]={setup:function(){if(j){return false}y.start()},teardown:function(){if(j){return false}y.stop()},add:function(D,F,E){return function(H){var G=H[x]=l();H.getState=function(J,I){return J===g||typeof J==="boolean"?d(G,J):d(G,I)[J]};D.apply(this,arguments)}}};y=(function(){var E={},I,D,F,H;function G(){var J=$.browser;F=H=function(K){return K};if(J.msie&&J.version<8){D=$("<iframe/>").hide().appendTo("body")[0].contentWindow;H=function(){return D.document.location[p].replace(/^#/,"")};F=function(M,K){if(M!==K){var L=D.document;L.open();L.close();L.location[p]="#"+M}};F(l())}}E.start=function(){if(I){return}var K=l();F||G();(function J(){var M=l(),L=H(K);if(M!==K){F(K=M,L);$(c).trigger(b)}else{if(L!==K){n("#"+L)}}I=setTimeout(J,m.pollDelay)})()};E.stop=function(){if(!D){I&&clearTimeout(I);I=0}};return E})()})(jQuery,this);