/// <summary>
        /// Kreira novi Request
        /// </summary>
        /// <param name="__url"></param>
        /// <param name="__action"></param>
        /// <param name="__type"></param>
        /// <returns></returns>
        public static webRequest createNewRequest(String __url,
                                                  webRequestActionType __action = webRequestActionType.openUrl,
                                                  webRequestType __type         = webRequestType.unknown)
        {
            webRequest output = null;

            if (__type == webRequestType.unknown)
            {
                __type = webRequestBase.getPreference(__action);
            }

            switch (__type)
            {
            case webRequestType.webRequestBrowser:
                output = new webRequestBrowser(__url, __action);
                break;

            case webRequestType.webRequestClient:
                output = new webRequestClient(__url, __action);
                break;

            case webRequestType.webRequestLookup:
                output = new webRequestLookup(__url, __action);
                break;

            case webRequestType.webRequestFile:
                output = new webRequestFile(__url, __action);
                break;

            default:
                break;
            }

            return(output);
        }
        /// <summary>
        /// Pravi novi request i dodaje ga u trenutni request block
        /// </summary>
        /// <param name="__url">URL koji treba da se izvrsi</param>
        /// <param name="__action">Akcija koja treba da se izvrsi</param>
        /// <param name="__type">Tip webRequesta</param>
        /// <returns>Novo kreirani request</returns>
        public webRequest addNewRequest(String __url, webRequestActionType __action = webRequestActionType.openUrl,
                                        webRequestType __type = webRequestType.unknown)
        {
            webRequest output = webLoadingEngine.createNewRequest(__url, __action, __type);

            requestBlock.Add(output);
            return(output);
        }
        /// <summary>
        /// Omogućava ad-hoc izvršavanje webRequest-a
        /// </summary>
        /// <param name="__url"></param>
        /// <param name="__syncMode"></param>
        /// <param name="__action"></param>
        /// <param name="__type"></param>
        /// <param name="purge">Da li da obrise sve ranije izvrsene Blokove i Zahteve ?</param>
        /// <returns>Vraća dobijeni rezultat</returns>
        public webResult executeRequest(String __url, executionSyncMode __syncMode,
                                        webRequestActionType __action = webRequestActionType.openUrl,
                                        webRequestType __type         = webRequestType.unknown, Boolean purge = true)
        {
            if (purge)
            {
                purgeExecutedBlocksAndRequests(true);
            }
            webRequestBlock blck    = getCurrentBlock();
            webRequest      request = addNewRequest(__url, __action, __type);

            webResultBlock wRB = executeCurrentBlock(__syncMode);

            return(request.result);
        }