substring(fn_declare.indexOf('(') + 1, fn_declare.lastIndexOf(')')),
            args = fn_params.split(',');

        args.push(fn_body);

        function Fn() {
            return Function.apply(this, args);
        }

        Fn.prototype = Function.prototype;

        return new Fn();
    }

    // get uri all query variables
    function getQueryVariables(uri) {
        var searchArgs = window.location.search;
        if (uri) {
            var s = uri.indexOf('?');
            searchArgs = s > -1 ? u