--- a/web/res/jquery.url/jquery.url.js Mon Jul 18 13:40:06 2011 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-// JQuery URL Parser plugin - https://github.com/allmarkedup/jQuery-URL-Parser
-// Written by Mark Perkins, mark@allmarkedup.com
-// License: http://unlicense.org/ (i.e. do what you want with it!)
-
-;(function($, undefined) {
-
- var tag2attr = {
- a : 'href',
- img : 'src',
- form : 'action',
- base : 'href',
- script : 'src',
- iframe : 'src',
- link : 'href'
- },
-
- key = ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","fragment"], // keys available to query
-
- aliases = { "anchor" : "fragment" }, // aliases for backwards compatability
-
- parser = {
- strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs
- loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs
- },
-
- querystring_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g, // supports both ampersand and semicolon-delimted query string key/value pairs
-
- fragment_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g; // supports both ampersand and semicolon-delimted fragment key/value pairs
-
- function parseUri( url, strictMode )
- {
- var str = decodeURI( url ),
- res = parser[ strictMode || false ? "strict" : "loose" ].exec( str ),
- uri = { attr : {}, param : {}, seg : {} },
- i = 14;
-
- while ( i-- )
- {
- uri.attr[ key[i] ] = res[i] || "";
- }
-
- // build query and fragment parameters
-
- uri.param['query'] = {};
- uri.param['fragment'] = {};
-
- uri.attr['query'].replace( querystring_parser, function ( $0, $1, $2 ){
- if ($1)
- {
- uri.param['query'][$1] = $2;
- }
- });
-
- uri.attr['fragment'].replace( fragment_parser, function ( $0, $1, $2 ){
- if ($1)
- {
- uri.param['fragment'][$1] = $2;
- }
- });
-
- // split path and fragement into segments
-
- uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/');
-
- uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/');
-
- // compile a 'base' domain attribute
-
- uri.attr['base'] = uri.attr.host ? uri.attr.protocol+"://"+uri.attr.host + (uri.attr.port ? ":"+uri.attr.port : '') : '';
-
- return uri;
- };
-
- function getAttrName( elm )
- {
- var tn = elm.tagName;
- if ( tn !== undefined ) return tag2attr[tn.toLowerCase()];
- return tn;
- }
-
- $.fn.url = function( strictMode )
- {
- var url = '';
-
- if ( this.length )
- {
- url = $(this).attr( getAttrName(this[0]) ) || '';
- }
-
- return $.url({ url : url, strict : strictMode });
- };
-
- $.url = function( opts )
- {
- var url = '',
- strict = false;
-
- if ( typeof opts === 'string' )
- {
- url = opts;
- }
- else
- {
- opts = opts || {};
- strict = opts.strict || strict;
- url = opts.url === undefined ? window.location.toString() : opts.url;
- }
-
- return {
-
- data : parseUri(url, strict),
-
- // get various attributes from the URI
- attr : function( attr )
- {
- attr = aliases[attr] || attr;
- return attr !== undefined ? this.data.attr[attr] : this.data.attr;
- },
-
- // return query string parameters
- param : function( param )
- {
- return param !== undefined ? this.data.param.query[param] : this.data.param.query;
- },
-
- // return fragment parameters
- fparam : function( param )
- {
- return param !== undefined ? this.data.param.fragment[param] : this.data.param.fragment;
- },
-
- // return path segments
- segment : function( seg )
- {
- if ( seg === undefined )
- {
- return this.data.seg.path;
- }
- else
- {
- seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end
- return this.data.seg.path[seg];
- }
- },
-
- // return fragment segments
- fsegment : function( seg )
- {
- if ( seg === undefined )
- {
- return this.data.seg.fragment;
- }
- else
- {
- seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end
- return this.data.seg.fragment[seg];
- }
- }
-
- };
-
- };
-
-})(jQuery);
\ No newline at end of file