--parts.length;\r
};\r
return parts.join( '/' );\r
- })( location.href.split( '?' )[ 0 ].split( '#' )[ 0 ].split( '/' ) ),\r
+ })( X_URL_cleanup( location.href ).split( '/' ) ),\r
\r
X_URL_IS_FILE = location.protocol === 'file:',\r
\r
- X_URL_IS_LOCAL = X_URL_IS_FILE || location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r
+ X_URL_IS_LOCAL = X_URL_IS_FILE || location.hostname === 'localhost' || location.hostname === '127.0.0.1',\r
+ \r
+ X_URL_PARAMS = X_URL_ParamToObj( location.search.slice( 1 ) );\r
\r
// ------------------------------------------------------------------------- //\r
// --- interface ----------------------------------------------------------- //\r
// ------------------------------------------------------------------------- //\r
-X.URL = {\r
\r
- BASE_URL : X_URL_BASE_URL,\r
+/**\r
+ * @namespace X.URL\r
+ * @alias X.URL\r
+ */\r
+X[ 'URL' ] = {\r
+\r
+ 'BASE_URL' : X_URL_BASE_URL,\r
+ \r
+ 'IS_FILE' : X_URL_IS_FILE,\r
\r
- IS_FILE : X_URL_IS_FILE,\r
+ 'IS_LOCAL' : X_URL_IS_LOCAL,\r
\r
- IS_LOCAL : X_URL_IS_LOCAL,\r
+ 'PARAMS' : X_URL_PARAMS,\r
\r
- toAbsolutePath : X_URL_toAbsolutePath,\r
+ 'toAbsolutePath' : X_URL_toAbsolutePath,\r
\r
- isSameDomain : X_URL_isSameDomain,\r
+ 'isSameDomain' : X_URL_isSameDomain,\r
\r
- cleanup : X_URL_cleanup\r
+ 'cleanup' : X_URL_cleanup,\r
+ \r
+ 'getEXT' : X_URL_getEXT\r
};\r
\r
// ------------------------------------------------------------------------- //\r
return path.split( '?' )[ 0 ].split( '#' )[ 0 ];\r
};\r
\r
+function X_URL_getEXT( path ){\r
+ path = X_URL_cleanup( path ).split( '.' );\r
+ return path.length ? path.pop() : '';\r
+};\r
+\r
+function X_URL_objToParam( data ){\r
+ var result = [], k, n = -1;\r
+ for( k in data ){\r
+ if( n !== -1 ) result[ ++n ] = '&';\r
+ result[ ++n ] = k;\r
+ result[ ++n ] = '=';\r
+ result[ ++n ] = encodeURIComponent( data[ k ] );\r
+ }\r
+ return result.join( '' );\r
+};\r
+\r
+function X_URL_ParamToObj( str ){\r
+ var parts = str.split( '&' ),\r
+ i = 0,\r
+ l = parts.length,\r
+ obj = {},\r
+ pair, p;\r
+\r
+ if( !str ) return obj;\r
+ \r
+ for( ; i < l; ++i ){\r
+ pair = parts[ i ];\r
+ p = pair.indexOf( '=' );\r
+ if( p === -1 ){\r
+ obj[ decodeURIComponent( pair ) ] = true;\r
+ } else {\r
+ obj[ decodeURIComponent( pair.substr( 0, p ) ) ] = X_String_parse( decodeURIComponent( pair.substr( p + 1 ) ) );\r
+ };\r
+ };\r
+\r
+ return obj; \r
+};\r