var jsToolbox=(function(){'use strict';var c,b,a;c=(function(){var d={};d.match_obj=function(e,f){var h,j={},g;if(e.hasOwnProperty!==Object.prototype.hasOwnProperty){e.hasOwnProperty=Object.prototype.hasOwnProperty}if(f.hasOwnProperty!==Object.prototype.hasOwnProperty){f.hasOwnProperty=Object.prototype.hasOwnProperty}for(h in e){if(e.hasOwnProperty(h)&&f.hasOwnProperty(h)){if(typeof e[h]!=="object"){if(e[h]===f[h]){j[h]="y"}else{j[h]="n"}}else{if(typeof e[h]==="object"){if(d.isObject(e[h])){if(typeof f[h]!=="object"||f[h].constructor!==Object){j[h]="n"}else{j[h]=d.match_obj(e[h],f[h])}}else{if(d.isArray(e[h])){j[h]=d.match_array(e[h],f[h])}}}}}}return j};d.match_array=function(e,g){var f={},h;if(typeof e!==typeof g||typeof e!=="object"||!d.isArray(e)){return"n"}for(h=0;h<e.length;h+=1){if(typeof e[h]==="object"&&typeof g[h]==="object"){if(d.isArray(e[h])&&d.isArray(g[h])){f[h]=d.match_array(e[h],g[h])}else{if(d.isObject(e[h])&&d.isObject(g[h])){f[h]=d.match_obj(e[h],g[h])}}}else{if(e[h]===g[h]){f[h]="y"}else{f[h]="n"}}}return f};d.get_keys=function(g){var e,f=[];g.hasOwnProperty=Object.prototype.hasOwnProperty;for(e in g){if(g.hasOwnProperty(e)&&e!=="hasOwnProperty"){if(typeof g[e]==="object"&&d.isObject(g[e])){f.push(get_keys(g[e]))}else{f.push(e)}}}return f};d.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"};d.isObject=function(e){return Object.prototype.toString.call(e)==="[object Object]"};return d}());b=function(f,u,e){var j={},s=[],m=/^(?:([A-Za-z]+):)?(?:\/{0,3})((?:[0-9.\-A-Za-z]+\.(?:com|net|org|gov|edu|int|mil|biz|info|mobi|name|tel|tw|co\.uk|be)))?(?::(\d+))?(?:\/{0,2}([!\$'\(\)\*\-\/\[\]_\.A-Za-z0-9]*))?(?:\?([^#]*))?(?:#(.*))?$/,h=["protocol","host","port","path","query","hash"],n,p,r=c.match_obj,o=c.match_array,i,d,k=c.get_keys,t,g,q,l;p=function(B,C,v){var A=(s.push({})-1),w,D,x,z={},y;if(B.hasOwnProperty!==Object.prototype.hasOwnProperty){B.hasOwnProperty=Object.prototype.hasOwnProperty}s[A]=B;if(C!==undefined){s[A].callback=C}if(v!==undefined){w=v.split(",");for(y=0;y<w.length;y+=1){D=w[y].split(":");if(D.length>1){x=D[1].split("&");z[D[0]]=x}else{z[D[0]]=""}s[A].must_match=z}}else{z.all="";s[A].must_match=z}return A};n=function(v,z,x){var y,w;if(v!==undefined){if(typeof v==="string"){y=p(g(v),z,x)}else{if(typeof v==="object"&&v.length!==undefined&&v.constructor===Array){for(w=0;w<v.length;w+=1){if(typeof v[w]==="string"){y=p(g(v[w]),z,x)}else{if(typeof v[w]==="object"&&v[w].url!==undefined&&v[w].action!==undefined){if(v[w].url===document.location){y=n(v[w].url.toString(),v[w].action,v[w].must_match)}else{y=p(g(v[w].url),v[w].action,v[w].must_match)}}}}}else{if(v===document.location){y=n(v.toString(),z,x)}}}return j.urls[y]}};i=function(w,B){var v,y,A=function(D){var C={};if(D.hasOwnProperty!==Object.prototype.hasOwnProperty){D.hasOwnProperty=Object.prototype.hasOwnProperty}for(y in D){if(D.hasOwnProperty(y)&&y!=="hasOwnProperty"){if(typeof D[y]==="object"&&c.isObject(D[y])){A(D[y])}else{C[y]=""}}}return C},x,z;if(typeof B.all!=="undefined"){B=A(w)}for(v in B){if(B.hasOwnProperty(v)){if(B[v]===""&&w[v]==="y"){x="y"}else{if(typeof B[v]==="object"&&B[v].constructor===Object){x=i(w[v],B[v])}else{if(typeof B[v]==="object"&&c.isArray(B[v])){for(z=0;z<B[v].length;z+=1){if(typeof w[v]==="object"&&w[v].constructor===Object){if(w[v][B[v][z]]==="y"){x="y"}else{return"n"}}}}}}}}return x||"n"};l=function(z){var v=g(z),A,B,w="",y,x;for(x=0;x<s.length;x+=1){B=s[x].must_match;w=i(r(v,s[x]),B);if(w==="y"&&s[x].callback!==undefined&&s[x].callback!==null){s[x].callback.apply(s[x])}}};t=function(w,v){var A,z,B={},y,x;if(s[0]!==undefined&&s[1]===undefined&&this!==t){A=s[0].query}else{if(typeof w==="string"){A=w}else{A=(v===undefined?g(w).query:w.query)||undefined}}z=(typeof A==="undefined"?undefined:A.split("&"));if(z===undefined){return undefined}for(x=0;x<z.length;x+=1){y=z[x].split("=");B[y[0]]=y[1]}return B};g=function(v){if(typeof v==="object"&&v.constructor===Object){return v}var w=m.exec(v)||"none";return{protocol:w[1],host:w[2],port:w[3],path:w[4],query:w[5]===undefined?undefined:t.call(t,w[5],"no_parse"),hash:w[6]}};j.check_url=l;j.add=n;j.urls=s;j.url_parts=g;j.match_obj=r;j.match_array=o;j.extract_parameters=t;n(f,u,e);return j};a=function(){var d=[]};return{base:c,url:b,forms:a}}());

