var NVP = {};
/**
 * Class which retrieve all variables from URL
 *
 * @author FTafel
 * @static 1
 */
NVP.Url = {

	/**
     * Returns true if the parameter is in URL
     *
     * @access public
     * @param string param the parameter's name to search for
     * @param string url url to decompose. If null, takes the current url
     * @return string the value of the parameter, false if nothing found
     */
    hasParam : function (param, url) {
        var params = this.getParams(url);
        for (var i = 0; i < params.length; i++) {
            if (param.toLowerCase() == params[i].name.toLowerCase()) {
                return true;
            }
        }
        return false;    
    },
    
	/**
     * Returns the value of a GET parameter
     *
     * @access public
     * @param string param the parameter's name to search for
     * @param string url url to decompose. If null, takes the current url
     * @return string the value of the parameter, false if nothing found
     */
    getParam : function (param, url) {
        var params = this.getParams(url);
        for (var i = 0; i < params.length; i++) {
            if (param.toLowerCase() == params[i].name.toLowerCase()) {
                return params[i].value;
            }
        }
        return false;
    },
    
    /**
     * Returns url parameters
     *
     * they're returned under this format :
            params[0] = {
                'name' : 'paramName',
                'value': 'paramValue'
            }
     *
     * @access public
     * @param string url url to decompose. If null, takes the current url
     * @return array Array of parameters
     */
    getParams : function (url) {
        if (typeof(url) == 'undefined') {
            url = window.location.search;
        }
        var params = [];
        if (url.indexOf('?') > -1) {
            var a1 = url.split('?');
            var a2 = a1[1].split('&');
            for (var i = 0; i < a2.length; i++) {
                a3 = a2[i].split('=');
                if (a3.length == 2) {
                    params.push({
                        'name' : a3[0],
                        'value': a3[1]
                    });
                }
            }
        }
        return params;
    }
}
