![]() |
My Switch statement get stuck on the last statement
The code for the switch works but when I run the last one the problem get
stuck. Here is the code for submit button: protected void btnSubmit_Click1(object sender, EventArgs e) { // Session cookie to be carried over to Conformation.aspx lblClassification.Text = DropDownList1.SelectedItem.ToString(); Session["Classification"] = lblClassification.Text; if (DropDownList2.SelectedIndex == 1) { Session["choice"] = DropDownList2.SelectedItem.Value; lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1); Session["nPage"] = lblPage.Text; Response.Redirect("Network.aspx"); } else if (DropDownList2.SelectedIndex == 2) { Session["choice"] = DropDownList2.SelectedItem.Value; lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2); Session["sPage"] = lblPage.Text; Response.Redirect("Server.aspx"); } else if (DropDownList2.SelectedIndex == 3) { Session["choice"] = DropDownList2.SelectedItem.Value; lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3); Session["sdPage"] = lblPage.Text; Response.Redirect("Storage.aspx"); } else if (DropDownList2.SelectedIndex == 4) { DropDownList2.Enabled = false; Session["choice"] = DropDownList2.SelectedItem.Value; lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4); Session["wsPage"] = lblPage.Text; Response.Redirect("Workstation.aspx"); } else Session.Clear(); } And here is the code for the switch: public void MainSessionData() { string choice = (string)Session["choice"]; switch (choice) { case "1": if (Session["nPage"] != null) { // If user chooses (Network) Network.aspx executes the below code if (Session["Classification"] != null) { ClassificationType.Text = Session["Classification"].ToString(); if (Session["Classification"].Equals("Unclassified")) lblU.Text = "U".ToLower(); if (Session["Classification"].Equals("Classified")) lblU.Text = "C".ToLower(); if (Session["Classification"].Equals("Secret")) lblU.Text = "S".ToLower(); if (Session["Classification"].Equals("Top Secret")) lblU.Text = "T".ToLower(); } lblNetwork.Text = Session["nPage"].ToString(); UpdatePanel1.Visible = true; nPassSessionData(); UpdatePanel2.Visible = false; UpdatePanel3.Visible = false; UpdatePanel4.Visible = false; } break; case "2": if (Session["sPage"] != null) { if (Session["Classification"] != null) { ClassificationType.Text = Session["Classification"].ToString(); if (Session["Classification"].Equals("Unclassified")) lblC.Text = "U".ToLower(); if (Session["Classification"].Equals("Classified")) lblC.Text = "C".ToLower(); if (Session["Classification"].Equals("Secret")) lblC.Text = "S".ToLower(); if (Session["Classification"].Equals("Top Secret")) lblC.Text = "TS".ToLower(); } // If user chooses (Serve) Server.aspx executes the below code if (Session["Classification"] != null) { lblClass.Text = Session["Classification"].ToString(); } lblServer.Text = Session["sPage"].ToString(); UpdatePanel2.Visible = true; sPassSessionData(); UpdatePanel1.Visible = false; UpdatePanel3.Visible = false; UpdatePanel4.Visible = false; } break; case "3": if (Session["sdPage"] != null) { if (Session["Classification"] != null) { ClassificationType.Text = Session["Classification"].ToString(); if (Session["Classification"].Equals("Unclassified")) lblS.Text = "U".ToLower(); if (Session["Classification"].Equals("Classified")) lblS.Text = "C".ToLower(); if (Session["Classification"].Equals("Secret")) lblS.Text = "S".ToLower(); if (Session["Classification"].Equals("Top Secret")) lblS.Text = "TS".ToLower(); } // If user chooses (Storage Devises) Storage.aspx executes the below code if (Session["Classification"] != null) { lblsdClass.Text = Session["Classification"].ToString(); } lblStorage.Text = Session["sdPage"].ToString(); UpdatePanel3.Visible = true; sdPassSessionData(); UpdatePanel1.Visible = false; UpdatePanel2.Visible = false; UpdatePanel4.Visible = false; } break; case "4": if (Session["wsPage"] != null) { if (Session["Classification"] != null) { ClassificationType.Text = Session["Classification"].ToString(); if (Session["Classification"].Equals("Unclassified")) lblWS.Text = "U".ToLower(); if (Session["Classification"].Equals("Classified")) lblWS.Text = "C".ToLower(); if (Session["Classification"].Equals("Secret")) lblWS.Text = "S".ToLower(); if (Session["Classification"].Equals("Top Secret")) lblWS.Text = "TS".ToLower(); } // If user choose none of the above program defaults to workstation if (Session["Classification"] != null) { lblwsClass.Text = Session["Classification"].ToString(); } lblWorkstation.Text = Session["wsPage"].ToString(); UpdatePanel4.Visible = true; wsPassSessionData(); UpdatePanel1.Visible = false; UpdatePanel2.Visible = false; UpdatePanel3.Visible = false; } break; default: break; } The program hang if I try to do some after I choose "Workstaion" |
Re: My Switch statement get stuck on the last statement
On Jan 28, 8:00*pm, bthumber <bthum...@discussions.microsoft.com>
wrote: > The code for the switch works but when I run the last one the problem get > stuck. *Here is the code for submit button: > > protected void btnSubmit_Click1(object sender, EventArgs e) > * * { > * * * * // Session cookie to be carried over to Conformation.aspx > * * * * lblClassification.Text = DropDownList1.SelectedItem.ToString(); > * * * * Session["Classification"] = lblClassification.Text; > > * * * * if (DropDownList2.SelectedIndex == 1) > * * * * { > * * * * * * Session["choice"] = DropDownList2.SelectedItem.Value; > * * * * * * lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1); > * * * * * * Session["nPage"] = lblPage.Text; > > * * * * * * Response.Redirect("Network.aspx"); > * * * * } > * * * * else if (DropDownList2.SelectedIndex == 2) > * * * * { > * * * * * * Session["choice"] = DropDownList2.SelectedItem.Value; > * * * * * * lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2); > * * * * * * Session["sPage"] = lblPage.Text; > > * * * * * * Response.Redirect("Server.aspx"); > * * * * } > * * * * else if (DropDownList2.SelectedIndex == 3) > * * * * { > * * * * * * Session["choice"] = DropDownList2.SelectedItem.Value; > * * * * * * lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3); > * * * * * * Session["sdPage"] = lblPage.Text; > > * * * * * * Response.Redirect("Storage.aspx"); > * * * * } > * * * * else if (DropDownList2.SelectedIndex == 4) > * * * * { > * * * * * * DropDownList2.Enabled = false; > * * * * * * Session["choice"] = DropDownList2.SelectedItem.Value; > * * * * * * lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4); > * * * * * * Session["wsPage"] = lblPage.Text; > > * * * * * * Response.Redirect("Workstation.aspx"); > * * * * } > * * * * else > * * * * * * Session.Clear(); > * * } > > And here is the code for the switch: > > public void MainSessionData() > * * { > * * * * string choice = (string)Session["choice"]; > > * * * * switch (choice) > * * * * { > * * * * * * case "1": > * * * * * * * * if (Session["nPage"] != null) > * * * * * * * * { > * * * * * * * * * * // If user chooses (Network) Network.aspx executes the > below code > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * ClassificationType.Text = > Session["Classification"].ToString(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Unclassified")) > * * * * * * * * * * * * * * lblU.Text = "U"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Classified")) > * * * * * * * * * * * * * * lblU.Text = "C"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Secret")) > * * * * * * * * * * * * * * lblU.Text = "S"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Top Secret")) > * * * * * * * * * * * * * * lblU.Text = "T"..ToLower(); > * * * * * * * * * * } > * * * * * * * * * * lblNetwork.Text = Session["nPage"].ToString(); > * * * * * * * * * * UpdatePanel1.Visible = true; > * * * * * * * * * * nPassSessionData(); > * * * * * * * * * * UpdatePanel2.Visible = false; > * * * * * * * * * * UpdatePanel3.Visible = false; > * * * * * * * * * * UpdatePanel4.Visible = false; > * * * * * * * * } > * * * * * * * * break; > * * * * * * case "2": > * * * * * * * * if (Session["sPage"] != null) > * * * * * * * * { > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * ClassificationType.Text = > Session["Classification"].ToString(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Unclassified")) > * * * * * * * * * * * * * * lblC.Text = "U"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Classified")) > * * * * * * * * * * * * * * lblC.Text = "C"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Secret")) > * * * * * * * * * * * * * * lblC.Text = "S"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Top Secret")) > * * * * * * * * * * * * * * lblC.Text = "TS".ToLower(); > * * * * * * * * * * } > * * * * * * * * * * // If user chooses (Serve) Server..aspx executes the > below code > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * lblClass.Text = Session["Classification"].ToString(); > * * * * * * * * * * } > * * * * * * * * * * lblServer.Text = Session["sPage"].ToString(); > * * * * * * * * * * UpdatePanel2.Visible = true; > * * * * * * * * * * sPassSessionData(); > * * * * * * * * * * UpdatePanel1.Visible = false; > * * * * * * * * * * UpdatePanel3.Visible = false; > * * * * * * * * * * UpdatePanel4.Visible = false; > * * * * * * * * } > * * * * * * * * break; > * * * * * * case "3": > * * * * * * * * if (Session["sdPage"] != null) > * * * * * * * * { > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * ClassificationType.Text = > Session["Classification"].ToString(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Unclassified")) > * * * * * * * * * * * * * * lblS.Text = "U"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Classified")) > * * * * * * * * * * * * * * lblS.Text = "C"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Secret")) > * * * * * * * * * * * * * * lblS.Text = "S"..ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Top Secret")) > * * * * * * * * * * * * * * lblS.Text = "TS".ToLower(); > * * * * * * * * * * } > * * * * * * * * * * // If user chooses (Storage Devises) Storage.aspx > executes the below code > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * lblsdClass.Text = > Session["Classification"].ToString(); > * * * * * * * * * * } > * * * * * * * * * * lblStorage.Text = Session["sdPage"].ToString(); > * * * * * * * * * * UpdatePanel3.Visible = true; > * * * * * * * * * * sdPassSessionData(); > * * * * * * * * * * UpdatePanel1.Visible = false; > * * * * * * * * * * UpdatePanel2.Visible = false; > * * * * * * * * * * UpdatePanel4.Visible = false; > * * * * * * * * } > * * * * * * * * break; > * * * * * * case "4": > * * * * * * * * if (Session["wsPage"] != null) > * * * * * * * * { > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * ClassificationType.Text = > Session["Classification"].ToString(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Unclassified")) > * * * * * * * * * * * * * * lblWS.Text = "U".ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Classified")) > * * * * * * * * * * * * * * lblWS.Text = "C".ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Secret")) > * * * * * * * * * * * * * * lblWS.Text = "S".ToLower(); > * * * * * * * * * * * * if (Session["Classification"].Equals("Top Secret")) > * * * * * * * * * * * * * * lblWS.Text = "TS".ToLower(); > * * * * * * * * * * } > * * * * * * * * * * // If user choose none of the above program defaults to > workstation > * * * * * * * * * * if (Session["Classification"] != null) > * * * * * * * * * * { > * * * * * * * * * * * * lblwsClass.Text = > Session["Classification"].ToString(); > * * * * * * * * * * } > * * * * * * * * * * lblWorkstation.Text = Session["wsPage"].ToString(); > * * * * * * * * * * UpdatePanel4.Visible = true; > * * * * * * * * * * wsPassSessionData(); > * * * * * * * * * * UpdatePanel1.Visible = false; > * * * * * * * * * * UpdatePanel2.Visible = false; > * * * * * * * * * * UpdatePanel3.Visible = false; > * * * * * * * * } > * * * * * * * * break; > * * * * * * default: > * * * * * * * * break; > * * * * } > > The program hang if I try to do some after I choose "Workstaion" I think first of all you should try to make the code more clear. You have so many vain lines and it is not easy to see the core. For example, #1 if (DropDownList2.SelectedIndex == 1) #2 { #3 Session["choice"] = DropDownList2.SelectedItem.Value; #4 lblPage.Text = Convert.ToString (DropDownList2.SelectedIndex == 1); #5 Session["nPage"] = lblPage.Text; #6 Response.Redirect("Network.aspx"); #7 } 1) Lines #1 and #4 do the same. 2) Line #4 assigns always "true" in all cases except the "else" case. 3) Line #2 does the same in all cases 4) Not sure why you need to have different session key for each case but it looks like #5 does the same in all cases too So, finally you can at least have something like this // Session cookie to be carried over to Conformation.aspx lblClassification.Text = DropDownList1.SelectedItem.ToString(); Session["Classification"] = lblClassification.Text; lblPage.Text = "true"; Session["choice"] = DropDownList2.SelectedItem.Value; if (DropDownList2.SelectedIndex == 1) { Session["nPage"] = lblPage.Text; Response.Redirect("Network.aspx"); } else if (DropDownList2.SelectedIndex == 2) { Session["sPage"] = lblPage.Text; Response.Redirect("Server.aspx"); } else if (DropDownList2.SelectedIndex == 3) { Session["sdPage"] = lblPage.Text; Response.Redirect("Storage.aspx"); } else if (DropDownList2.SelectedIndex == 4) { DropDownList2.Enabled = false; Session["wsPage"] = lblPage.Text; Response.Redirect("Workstation.aspx"); } else Session.Clear(); Do the same with you second method and I am sure you will easily find the problem. |
Re: My Switch statement get stuck on the last statement
Thanks, I'll give this a shot.
Brent "Alexey Smirnov" wrote: > On Jan 28, 8:00 pm, bthumber <bthum...@discussions.microsoft.com> > wrote: > > The code for the switch works but when I run the last one the problem get > > stuck. Here is the code for submit button: > > > > protected void btnSubmit_Click1(object sender, EventArgs e) > > { > > // Session cookie to be carried over to Conformation.aspx > > lblClassification.Text = DropDownList1.SelectedItem.ToString(); > > Session["Classification"] = lblClassification.Text; > > > > if (DropDownList2.SelectedIndex == 1) > > { > > Session["choice"] = DropDownList2.SelectedItem.Value; > > lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 1); > > Session["nPage"] = lblPage.Text; > > > > Response.Redirect("Network.aspx"); > > } > > else if (DropDownList2.SelectedIndex == 2) > > { > > Session["choice"] = DropDownList2.SelectedItem.Value; > > lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 2); > > Session["sPage"] = lblPage.Text; > > > > Response.Redirect("Server.aspx"); > > } > > else if (DropDownList2.SelectedIndex == 3) > > { > > Session["choice"] = DropDownList2.SelectedItem.Value; > > lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 3); > > Session["sdPage"] = lblPage.Text; > > > > Response.Redirect("Storage.aspx"); > > } > > else if (DropDownList2.SelectedIndex == 4) > > { > > DropDownList2.Enabled = false; > > Session["choice"] = DropDownList2.SelectedItem.Value; > > lblPage.Text = Convert.ToString(DropDownList2.SelectedIndex == 4); > > Session["wsPage"] = lblPage.Text; > > > > Response.Redirect("Workstation.aspx"); > > } > > else > > Session.Clear(); > > } > > > > And here is the code for the switch: > > > > public void MainSessionData() > > { > > string choice = (string)Session["choice"]; > > > > switch (choice) > > { > > case "1": > > if (Session["nPage"] != null) > > { > > // If user chooses (Network) Network.aspx executes the > > below code > > if (Session["Classification"] != null) > > { > > ClassificationType.Text = > > Session["Classification"].ToString(); > > if (Session["Classification"].Equals("Unclassified")) > > lblU.Text = "U"..ToLower(); > > if (Session["Classification"].Equals("Classified")) > > lblU.Text = "C"..ToLower(); > > if (Session["Classification"].Equals("Secret")) > > lblU.Text = "S"..ToLower(); > > if (Session["Classification"].Equals("Top Secret")) > > lblU.Text = "T"..ToLower(); > > } > > lblNetwork.Text = Session["nPage"].ToString(); > > UpdatePanel1.Visible = true; > > nPassSessionData(); > > UpdatePanel2.Visible = false; > > UpdatePanel3.Visible = false; > > UpdatePanel4.Visible = false; > > } > > break; > > case "2": > > if (Session["sPage"] != null) > > { > > if (Session["Classification"] != null) > > { > > ClassificationType.Text = > > Session["Classification"].ToString(); > > if (Session["Classification"].Equals("Unclassified")) > > lblC.Text = "U"..ToLower(); > > if (Session["Classification"].Equals("Classified")) > > lblC.Text = "C"..ToLower(); > > if (Session["Classification"].Equals("Secret")) > > lblC.Text = "S"..ToLower(); > > if (Session["Classification"].Equals("Top Secret")) > > lblC.Text = "TS".ToLower(); > > } > > // If user chooses (Serve) Server..aspx executes the > > below code > > if (Session["Classification"] != null) > > { > > lblClass.Text = Session["Classification"].ToString(); > > } > > lblServer.Text = Session["sPage"].ToString(); > > UpdatePanel2.Visible = true; > > sPassSessionData(); > > UpdatePanel1.Visible = false; > > UpdatePanel3.Visible = false; > > UpdatePanel4.Visible = false; > > } > > break; > > case "3": > > if (Session["sdPage"] != null) > > { > > if (Session["Classification"] != null) > > { > > ClassificationType.Text = > > Session["Classification"].ToString(); > > if (Session["Classification"].Equals("Unclassified")) > > lblS.Text = "U"..ToLower(); > > if (Session["Classification"].Equals("Classified")) > > lblS.Text = "C"..ToLower(); > > if (Session["Classification"].Equals("Secret")) > > lblS.Text = "S"..ToLower(); > > if (Session["Classification"].Equals("Top Secret")) > > lblS.Text = "TS".ToLower(); > > } > > // If user chooses (Storage Devises) Storage.aspx > > executes the below code > > if (Session["Classification"] != null) > > { > > lblsdClass.Text = > > Session["Classification"].ToString(); > > } > > lblStorage.Text = Session["sdPage"].ToString(); > > UpdatePanel3.Visible = true; > > sdPassSessionData(); > > UpdatePanel1.Visible = false; > > UpdatePanel2.Visible = false; > > UpdatePanel4.Visible = false; > > } > > break; > > case "4": > > if (Session["wsPage"] != null) > > { > > if (Session["Classification"] != null) > > { > > ClassificationType.Text = > > Session["Classification"].ToString(); > > if (Session["Classification"].Equals("Unclassified")) > > lblWS.Text = "U".ToLower(); > > if (Session["Classification"].Equals("Classified")) > > lblWS.Text = "C".ToLower(); > > if (Session["Classification"].Equals("Secret")) > > lblWS.Text = "S".ToLower(); > > if (Session["Classification"].Equals("Top Secret")) > > lblWS.Text = "TS".ToLower(); > > } > > // If user choose none of the above program defaults to > > workstation > > if (Session["Classification"] != null) > > { > > lblwsClass.Text = > > Session["Classification"].ToString(); > > } > > lblWorkstation.Text = Session["wsPage"].ToString(); > > UpdatePanel4.Visible = true; > > wsPassSessionData(); > > UpdatePanel1.Visible = false; > > UpdatePanel2.Visible = false; > > UpdatePanel3.Visible = false; > > } > > break; > > default: > > break; > > } > > > > The program hang if I try to do some after I choose "Workstaion" > > I think first of all you should try to make the code more clear. You > have so many vain lines and it is not easy to see the core. > > For example, > > #1 if (DropDownList2.SelectedIndex == 1) > #2 { > #3 Session["choice"] = DropDownList2.SelectedItem.Value; > #4 lblPage.Text = Convert.ToString > (DropDownList2.SelectedIndex == 1); > #5 Session["nPage"] = lblPage.Text; > #6 Response.Redirect("Network.aspx"); > #7 } > > 1) Lines #1 and #4 do the same. > 2) Line #4 assigns always "true" in all cases except the "else" case. > 3) Line #2 does the same in all cases > 4) Not sure why you need to have different session key for each case > but it looks like #5 does the same in all cases too > > So, finally you can at least have something like this > > // Session cookie to be carried over to Conformation.aspx > lblClassification.Text = DropDownList1.SelectedItem.ToString(); > Session["Classification"] = lblClassification.Text; > lblPage.Text = "true"; > Session["choice"] = DropDownList2.SelectedItem.Value; > if (DropDownList2.SelectedIndex == 1) > { > Session["nPage"] = lblPage.Text; > Response.Redirect("Network.aspx"); > } > else if (DropDownList2.SelectedIndex == 2) > { > Session["sPage"] = lblPage.Text; > Response.Redirect("Server.aspx"); > } > else if (DropDownList2.SelectedIndex == 3) > { > Session["sdPage"] = lblPage.Text; > Response.Redirect("Storage.aspx"); > } > else if (DropDownList2.SelectedIndex == 4) > { > DropDownList2.Enabled = false; > Session["wsPage"] = lblPage.Text; > Response.Redirect("Workstation.aspx"); > } > else > Session.Clear(); > > Do the same with you second method and I am sure you will easily find > the problem. > |
Re: My Switch statement get stuck on the last statement
On Jan 29, 3:27*pm, bthumber <bthum...@discussions.microsoft.com>
wrote: > Thanks, I'll give this a shot. > > Brent > You last case calls wsPassSessionData(); check if that method is ok |
Re: My Switch statement get stuck on the last statement
"Alexey Smirnov" wrote: > On Jan 29, 3:27 pm, bthumber <bthum...@discussions.microsoft.com> > wrote: > > Thanks, I'll give this a shot. > > > > Brent > > > > You last case calls wsPassSessionData(); check if that method is ok > I can't find anything wrong with that method, I found out if the user chooses Workstation first then goes back to the home page and chooses anything else, the program hang at Response.Redirect("ProcessName.aspx"); |
Re: My Switch statement get stuck on the last statement
On Jan 29, 6:06*pm, bthumber <bthum...@discussions.microsoft.com>
wrote: > "Alexey Smirnov" wrote: > > On Jan 29, 3:27 pm, bthumber <bthum...@discussions.microsoft.com> > > wrote: > > > Thanks, I'll give this a shot. > > > > Brent > > > You last case calls wsPassSessionData(); check if that method is ok > > I can't find anything wrong with that method, I found out if the user > chooses Workstation first then goes back to the home page and chooses > anything else, the program hang at Response.Redirect("ProcessName.aspx"); it probably means that ProcessName.aspx is incorrect. |
| All times are GMT. The time now is 08:18 PM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.