public static Hashtable Parse(string strUrl, bool getPage, string strSearch)
        {
            Hashtable objResuls = new Hashtable();

            try
            {
                string strResults;
                string strTemp;
                string coverlink = string.Empty;

                if (getPage == true)
                {
                    strResults = Util.GetHtmlPage(strUrl, Encoding.Default);
                }
                else
                {
                    strResults = strUrl;
                }

                objResuls.Add("Title", strSearch);
                objResuls.Add("Links", strUrl);

                if (string.IsNullOrEmpty(strResults))
                {
                    return(null);
                }

                #region Rating
                string strParsing = @"img_Rating";
                int    intTemp    = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intTemp > -1)
                {
                    strResults = strResults.Substring(intTemp + strParsing.Length);
                    strParsing = @"Item_StudioProductionRating";
                    strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                    strParsing = @">";
                    strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                    strParsing = " out";
                    intTemp    = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                    if (intTemp > -1)
                    {
                        string  rating = strResults.Substring(0, intTemp).Trim();
                        decimal decRating;
                        if (decimal.TryParse(rating, out decRating) == true)
                        {
                            decRating = decRating * 4;
                            objResuls.Add("Rating", (int)decRating);
                        }
                        else
                        {
                            rating = rating.Replace('.', ',');
                            if (decimal.TryParse(rating, out decRating) == true)
                            {
                                decRating = decRating * 4;
                                objResuls.Add("Rating", (int)decRating);
                            }
                        }
                    }
                }
                #endregion
                #region CoverUrl
                strParsing = @"Boxcover";
                intTemp    = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intTemp > -1)
                {
                    strResults = strResults.Substring(intTemp + strParsing.Length);
                    strParsing = @"href=""";
                    strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                    strParsing = @"""";
                    coverlink  = strResults.Substring(0, strResults.IndexOf(strParsing, StringComparison.Ordinal));
                }

                #endregion
                #region Description
                strParsing = @"Section Synopsis";
                strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                strParsing = @"Tagline"">";
                int intBegin = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intBegin > -1)
                {
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @"</div";
                    objResuls.Add("Description", Util.PurgeHtml(strResults.Substring(0, strResults.IndexOf(strParsing, StringComparison.Ordinal))));
                }
                else
                {
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @"</span>";
                    intBegin   = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @"<";
                    intBegin   = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                    if (intBegin > -1)
                    {
                        objResuls.Add("Description", Util.PurgeHtml(strResults.Substring(0, intBegin)));
                    }
                }
                #endregion
                #region Runtime
                strParsing = @"Length</strong>";
                intTemp    = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intTemp > -1)
                {
                    strResults = strResults.Substring(intTemp + strParsing.Length);
                    strParsing = @"<";
                    strTemp    = strResults.Substring(0, strResults.IndexOf(strParsing, StringComparison.Ordinal));
                    strParsing = "hrs.";
                    intTemp    = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                    int total = 0;
                    if (intTemp > -1)
                    {
                        string strHour = strTemp.Substring(0, intTemp).Trim();
                        int    hour;
                        if (int.TryParse(strHour, out hour) == true)
                        {
                            total = hour * 60;
                        }

                        string strMin = strTemp.Substring(intTemp + strParsing.Length, strTemp.IndexOf("mins", StringComparison.Ordinal) - (intTemp + strParsing.Length)).Trim();
                        int    min;
                        if (int.TryParse(strMin, out min) == true)
                        {
                            total += min;
                        }

                        if (total > 0)
                        {
                            objResuls.Add("Runtime", total);
                        }
                    }
                }
                #endregion
                #region Released
                strParsing = @"Released</strong>";
                strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.InvariantCulture) + strParsing.Length);
                strParsing = @"<";
                strTemp    = strResults.Substring(0, strResults.IndexOf(strParsing, StringComparison.InvariantCulture)).Trim();
                DateTime date;
                if (DateTime.TryParse(strTemp, CultureInfo.CreateSpecificCulture("en-US"), DateTimeStyles.None, out date) == true)
                {
                    objResuls.Add("Released", date);
                }
                #endregion
                #region Studio
                strParsing = @"Studio</strong>";
                intBegin   = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intBegin > -1)
                {
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @""">";
                    strResults = strResults.Substring(strResults.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                    strParsing = @"<";

                    objResuls.Add("Studio", strResults.Substring(0, strResults.IndexOf(strParsing, StringComparison.Ordinal)).Trim());
                }
                #endregion
                #region Actors
                strParsing = @"Section Cast";
                intBegin   = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intBegin > -1)
                {
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @"<li>";
                    string[]      objTables = Regex.Split(strResults, strParsing);
                    List <Artist> lstActors = new List <Artist>();

                    foreach (string item in objTables)
                    {
                        if (string.IsNullOrEmpty(item.Trim()) == false && item.StartsWith(@"<a href") == true && item.Contains("pornstars.html"))
                        {
                            strParsing = @"href=""";
                            strTemp    = item.Trim().Substring(item.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                            strParsing = @"""";
                            string url = strTemp.Substring(0, strTemp.IndexOf(strParsing, StringComparison.Ordinal));
                            strParsing = @">";
                            strTemp    = strTemp.Substring(strTemp.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                            strParsing = @"<";
                            string name = strTemp.Substring(0, strTemp.IndexOf(strParsing, StringComparison.Ordinal));

                            if (string.IsNullOrWhiteSpace(name) == false)
                            {
                                bool   isNew;
                                Artist artist = (ArtistServices.Get(name, out isNew));

                                lstActors.Add(artist);

                                if (MySettings.FastSearch == false)
                                {
                                    if (url.Contains("http:") == false)
                                    {
                                        url = "http://www.adultdvdempire.com" + url;
                                    }

                                    ArtistServices.Fill(ParsePortrait(url), artist, name);
                                }
                            }
                        }
                    }

                    objResuls.Add("Actors", lstActors);
                }
                #endregion
                #region Genres
                strParsing = @"Section Categories";
                intBegin   = strResults.IndexOf(strParsing, StringComparison.Ordinal);
                if (intBegin > -1)
                {
                    strResults = strResults.Substring(intBegin + strParsing.Length);
                    strParsing = @"href=";

                    string[]      objTables = strResults.Split(new[] { strParsing }, StringSplitOptions.RemoveEmptyEntries);
                    List <string> lstGenres = new List <string>();

                    foreach (string item in objTables)
                    {
                        if (item.Contains(@"/category/") && item.StartsWith("http:"))
                        {
                            strParsing = @">";
                            strTemp    = item.Trim().Substring(item.IndexOf(strParsing, StringComparison.Ordinal) + strParsing.Length);
                            strParsing = @"<";
                            strTemp    = strTemp.Substring(0, strTemp.IndexOf(strParsing, StringComparison.Ordinal));
                            if (string.IsNullOrWhiteSpace(strTemp) == false)
                            {
                                lstGenres.Add(Util.PurgeHtml(strTemp));
                            }
                        }
                    }
                    objResuls.Add("Genre", lstGenres);
                }
                #endregion
                #region Image

                if (string.IsNullOrWhiteSpace(coverlink) == false)
                {
                    objResuls.Add("Image", coverlink);
                }

                #endregion
                #region Background
                if (string.IsNullOrWhiteSpace(coverlink) == false)
                {
                    coverlink = coverlink.Replace("h.jpg", "bh.jpg");
                    objResuls.Add("Background", coverlink);
                }
                #endregion


                return(objResuls);
            }
            catch (Exception ex)
            {
                Util.LogException(ex, strUrl);
                return(null);
            }
        }