/**
* Divinity: common store JS functionality
*
* @version $Id: store.js 35996 2010-04-22 15:51:25Z tosho $ 
*/

///////////////////////////////////////////////////////////////////////////////

/**
* Trim leading and trailing whitespaces, pretty much like in PHP's trim()
*/
function trim(string) {
	if (typeof string != 'undefined') {
		string = string.replace(/^\s+/g, "");
		string = string.replace(/\s+$/g, "");
		return string;	
		}
	return '';
	}

///////////////////////////////////////////////////////////////////////////////
	
/**
* This function creates a new anchor element and uses location
* properties (inherent) to get the desired URL data. Some String
* operations are used (to normalize results across browsers).
*
* @link http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
*/
function parse_url(url) {

    var a =  document.createElement('a');
    a.href = url;
    return {
        source: url,
        protocol: a.protocol.replace(':',''),
        host: a.hostname,
        port: a.port,
        query: a.search,
        params: (function(){
            var ret = {},
                seg = a.search.replace(/^\?/,'').split('&'),
                len = seg.length, i = 0, s;
            for (;i<len;i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
        hash: a.hash.replace('#',''),
        path: a.pathname.replace(/^([^\/])/,'/$1'),
        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
        segments: a.pathname.replace(/^\//,'').split('/')
    };
}