(function($){$.extend({metadata:{defaults:{type:'class',name:'metadata',cre:/({.*})/,single:'metadata'},setType:function(type,name){this.defaults.type=type;this.defaults.name=name;},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single='metadata';var data=$.data(elem,settings.single);if(data)return data;data="{}";if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1];}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML);}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr;}if(data.indexOf('{')<0)data="{"+data+"}";data=eval("("+data+")");$.data(elem,settings.single,data);return data;}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts);};})(jQuery);
jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;}var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}expires='; expires='+date.toUTCString();}var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}return cookieValue;}};
new function(settings){var $separator=settings.separator||'&';var $spaces=settings.spaces===false?false:true;var $suffix=settings.suffix===false?'':'[]';jQuery.query=new function(){var queryObject=function(a){var self=this;self.keys={};if(a.queryObject){jQuery.each(a.keys,function(key,val){self.destructiveSet(key,val)})}else{var q=""+a;q=q.replace(/^\?/,'');q=q.replace(/[;&]$/,'');if($spaces)q=q.replace('+',' ');jQuery.each(q.split(/[&;]/),function(){var key=this.split('=')[0];var val=this.split('=')[1];var temp,hashKey=null,type=null;if(/^-?[0-9]+\.[0-9]+$/.test(val))val=parseFloat(val);else if(/^-?[0-9]+$/.test(val))val=parseInt(val);if(/\[([^\] ]+)\]$/.test(key))type=Object,hashkey=key.replace(/^.+\[([^\] ]+)\]$/,"$1"),key=key.replace(/\[([^\] ]+)\]$/,"");else if(/\[\]$/.test(key))type=Array,key=key.replace(/\[\]$/,"");val=val||true;if(!type&&self.has(key))type=Array,self.destructiveSet(key,self.has(key,Array)?self.keys[key]:[self.keys[key]]);if(!type)self.destructiveSet(key,val);else if(type==Object)temp=self.keys[key]||{},temp[hashkey]=val,self.destructiveSet(key,temp);else if(type==Array)temp=self.keys[key]||[],temp.push(val),self.destructiveSet(key,temp)})}return self};queryObject.prototype={queryObject:true,has:function(key,type){var keys=this.keys;return!!type?keys[key]!=undefined&&keys[key]!==null&&keys[key].constructor==type:keys[key]!=undefined&&keys[key]!==null},get:function(key){var value=(key==undefined)?this.keys:this.keys[key];if(value&&value.constructor==Array)return value.slice(0);else if(value&&value.constructor==Object)return jQuery.extend({},value);else return value},destructiveSet:function(key,val){if(val==undefined||val===null)this.destructiveRemove(key);else this.keys[key]=val;return this},set:function(key,val){return this.copy().destructiveSet(key,val)},destructiveRemove:function(key){if(typeof this.keys[key]!='undefined')delete this.keys[key];return this},remove:function(key){return this.copy().destructiveRemove(key)},destructiveEmpty:function(){var self=this;jQuery.each(self.keys,function(key,value){delete self.keys[key]});return self},copy:function(){return new queryObject(this)},empty:function(destructive){return this.copy().destructiveEmpty()},toString:function(){var i=0,queryString=[],self=this,addFields=function(o,key,value){o.push(key);if(value!==true){o.push("=");o.push(encodeURIComponent(value))}};jQuery.each(this.keys,function(key,value){var o=[];if(value!==false){if(i++==0){o.push("?")}if(self.has(key,Object)){var _o=[];jQuery.each(value,function(_key,_value){var __o=[];addFields(__o,key+"["+_key+"]",_value);_o.push(__o.join(""))});o.push(_o.join($separator))}else if(self.has(key,Array)){var _o=[];jQuery.each(value,function(_key,_value){var __o=[];addFields(__o,key+$suffix,_value);_o.push(__o.join(""))});o.push(_o.join($separator))}else{addFields(o,key,value)}}queryString.push(o.join(""))});return queryString.join($separator)}};return new queryObject(location.search)}}(jQuery.query||{});