Skip to content

Instantly share code, notes, and snippets.

@aih
Forked from mpoulshock/Citation resolver
Created May 15, 2011 04:40

Revisions

  1. @mpoulshock mpoulshock created this gist May 6, 2011.
    1,389 changes: 1,389 additions & 0 deletions Citation resolver
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1389 @@
    //------------------------------------------------------------------------------
    // <auto-generated>
    // This code was generated by a tool.
    // Runtime Version:2.0.50727.4206
    //
    // Changes to this file may cause incorrect behavior and will be lost if
    // the code is regenerated.
    // </auto-generated>
    //------------------------------------------------------------------------------

    using System;
    using System.IO;
    using System.Net;
    using System.Text.RegularExpressions;
    using System.Web;

    namespace JureekaCitationResolver
    {
    /// <summary>
    /// Summary description for US.
    /// </summary>
    public partial class US : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label1;
    protected string errorMsg = "<p>We're sorry to have inconvenienced you. We have not yet found a free version of that source.</p><p>Please make sure you are using the <a href=\"https://addons.mozilla.org/en-US/firefox/addon/6636\" >latest version</a> of Jureeka.</p>";


    private void Page_Load(object sender, System.EventArgs e)
    {
    string docType = Convert.ToString(Request.QueryString["doc"]);


    // U.S. and State Constitutions (need to be rechecked)

    if (docType == "Constitutions")
    {
    string juris = Convert.ToString(Request.QueryString["juris"]);
    string part = Convert.ToString(Request.QueryString["part"]);
    string art = Convert.ToString(Request.QueryString["art"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);

    juris=juris.ToLower();
    juris=juris.Replace(".","");

    if (juris == "us")
    RedirectLib.PageRedirect(this,"http://topics.law.cornell.edu/constitution", "U.S. Const.");
    else if (juris == "ala")
    RedirectLib.PageRedirect(this,"http://www.legislature.state.al.us/CodeOfAlabama/Constitution/1901/Constitution1901_toc.htm", "Ala. Const.");
    else if (juris == "alaska")
    RedirectLib.PageRedirect(this,"http://ltgov.state.ak.us/constitution.php", "Alaska Const.");
    else if (juris == "ariz")
    RedirectLib.PageRedirect(this,"http://www.azleg.gov/Constitution.asp", "Ariz. Const.");
    else if (juris == "ark")
    RedirectLib.PageRedirect(this,"http://www.arkleg.state.ar.us/data/constitution/ArkansasConstitution1874.pdf", "Ark. Const.");
    else if (juris == "cal")
    RedirectLib.PageRedirect(this,"http://www.leginfo.ca.gov/const-toc.html", "Cal. Const.");
    else if (juris == "colo")
    RedirectLib.PageRedirect(this,"http://www.i2i.org/Publications/ColoradoConstitution/iscolocn.htm#Table%20of%20Contents", "Colo. Const.");
    else if (juris == "conn")
    RedirectLib.PageRedirect(this,"http://www.megalaw.com/ct/ctconstitution.php", "Conn. Const.");
    else if (juris == "del")
    RedirectLib.PageRedirect(this,"http://www.delcode.state.de.us/constitution/index.htm", "Del. Const.");
    else if (juris == "fla")
    RedirectLib.PageRedirect(this,"http://www.leg.state.fl.us/Statutes/index.cfm?Mode=Constitution&Submenu=3&Tab=statutes", "Fla. Const.");
    else if (juris == "ga")
    RedirectLib.PageRedirect(this,"http://sos.georgia.gov/elections/constitution_2007.pdf", "Ga. Const.");
    else if (juris == "haw")
    RedirectLib.PageRedirect(this,"http://www.hawaii.gov/lrb/con/", "Haw. Const.");
    else if (juris == "idaho")
    RedirectLib.PageRedirect(this,"http://www3.state.id.us/idstat/const/constTOC.html", "Idaho Const.");
    else if (juris == "ill")
    RedirectLib.PageRedirect(this,"http://www.ilga.gov/commission/lrb/conmain.htm", "Ill. Const.");
    else if (juris == "ind")
    RedirectLib.PageRedirect(this,"http://www.law.indiana.edu/uslawdocs/inconst.html", "Ind. Const.");
    else if (juris == "iowa")
    RedirectLib.PageRedirect(this,"http://www.legis.state.ia.us/Constitution.html", "Iowa Const.");
    else if (juris == "kan")
    RedirectLib.PageRedirect(this,"http://www.kslib.info/constitution/index.html", "Kan. Const.");
    else if (juris == "ky")
    RedirectLib.PageRedirect(this,"http://www.lrc.state.ky.us/legresou/constitu/intro.htm", "Ky. Const.");
    else if (juris == "la")
    RedirectLib.PageRedirect(this,"http://senate.legis.state.la.us/Documents/Constitution/", "La. Const.");
    else if (juris == "me")
    RedirectLib.PageRedirect(this,"http://janus.state.me.us/legis/const/", "Me. Const.");
    else if (juris == "md")
    RedirectLib.PageRedirect(this,"http://www.msa.md.gov/msa/mdmanual/43const/html/const.html", "Md. Const.");
    else if (juris == "mass")
    RedirectLib.PageRedirect(this,"http://www.mass.gov/legis/const.htm", "Mass. Const.");
    else if (juris == "mich")
    RedirectLib.PageRedirect(this,"http://www.legislature.mi.gov/mileg.aspx?page=getObject&objectName=mcl-Constitution", "Mich. Const.");
    else if (juris == "minn")
    RedirectLib.PageRedirect(this,"http://www.house.leg.state.mn.us/cco/rules/mncon/preamble.htm", "Minn. Const.");
    else if (juris == "miss")
    RedirectLib.PageRedirect(this,"http://www.mscode.com/msconst/", "Miss. Const.");
    else if (juris == "mo")
    RedirectLib.PageRedirect(this,"http://www.moga.mo.gov/const/moconstn.htm", "Mo. Const.");
    else if (juris == "mont")
    RedirectLib.PageRedirect(this,"http://courts.mt.gov/library/72constit.pdf", "Mont. Const.");
    else if (juris == "neb")
    RedirectLib.PageRedirect(this,"http://uniweb.legislature.ne.gov/QS/laws.php?mode=show_con", "Neb. Const.");
    else if (juris == "nev")
    RedirectLib.PageRedirect(this,"http://www.leg.state.nv.us/const/nvconst.html", "Nev. Const.");
    else if (juris == "nh")
    RedirectLib.PageRedirect(this,"http://www.nh.gov/constitution/constitution.html", "N.H. Const.");
    else if (juris == "nj")
    RedirectLib.PageRedirect(this,"http://www.njleg.state.nj.us/lawsconstitution/constitution.asp", "N.J. Const.");
    else if (juris == "nm")
    RedirectLib.PageRedirect(this,"http://www.conwaygreene.com/nmsu/lpext.dll?f=FifLink&t=document-frame.htm&l=query&iid=3079d651.7afce11c.0.0&q=%5BGroup%20%27nmc%20annotated%27%5D", "N.M. Const.");
    else if (juris == "ny")
    RedirectLib.PageRedirect(this,"http://www.senate.state.ny.us/lbdcinfo/senconstitution.html", "N.Y. Const.");
    else if (juris == "nc")
    RedirectLib.PageRedirect(this,"http://www.ncga.state.nc.us/Legislation/constitution/ncconstitution.html", "N.C. Const.");
    else if (juris == "nd")
    RedirectLib.PageRedirect(this,"http://www.legis.nd.gov/constitution/const.pdf", "N.D. Const.");
    else if (juris == "ohio")
    RedirectLib.PageRedirect(this,"http://www.legislature.state.oh.us/constitution.cfm", "Ohio Const.");
    else if (juris == "okla")
    RedirectLib.PageRedirect(this,"http://oklegal.onenet.net/okcon/index.html", "Okla. Const.");
    else if (juris == "or" || juris == "ore")
    RedirectLib.PageRedirect(this,"http://bluebook.state.or.us/state/constitution/constitution.htm#web", "Or. Const.");
    else if (juris == "pa")
    RedirectLib.PageRedirect(this,"http://www.paconstitution.duq.edu/PAC_C_CURRENT.html", "Pa. Const.");
    else if (juris == "ri")
    RedirectLib.PageRedirect(this,"http://www.rilin.state.ri.us/gen_assembly/RiConstitution/riconst.html", "R.I. Const.");
    else if (juris == "sc")
    RedirectLib.PageRedirect(this,"http://www.scstatehouse.net/scconstitution/scconst.htm", "S.C. Const.");
    else if (juris == "sd")
    RedirectLib.PageRedirect(this,"http://legis.state.sd.us/statutes/Constitution.aspx", "S.D. Const.");
    else if (juris == "tenn")
    RedirectLib.PageRedirect(this,"http://www.tncrimlaw.com/law/constit/index.html", "Tenn. Const.");
    else if (juris == "tex")
    RedirectLib.PageRedirect(this,"http://tlo2.tlc.state.tx.us/txconst/toc.html", "Tex. Const.");
    else if (juris == "utah")
    RedirectLib.PageRedirect(this,"http://law.justia.com/utah/constitution/", "Utah Const.");
    else if (juris == "vt")
    RedirectLib.PageRedirect(this,"http://law.justia.com/vermont/constitution/", "Vt. Const.");
    else if (juris == "va")
    RedirectLib.PageRedirect(this,"http://law.justia.com/virginia/constitution/", "Va. Const.");
    else if (juris == "wash")
    RedirectLib.PageRedirect(this,"http://law.justia.com/washington/constitution/", "Wash. Const.");
    else if (juris == "w va")
    RedirectLib.PageRedirect(this,"http://www.legis.state.wv.us/WVCODE/WV_CON.cfm","");
    else if (juris == "wis")
    RedirectLib.PageRedirect(this,"http://nxt.legis.state.wi.us/nxt/gateway.dll?f=templates&fn=default.htm&vid=WI:Default&d=wiscon&jd=top", "Wis. Const.");
    else if (juris == "wyo")
    RedirectLib.PageRedirect(this,"http://legisweb.state.wy.us/statutes/constitution.aspx?file=titles/Title97/Title97.htm", "Wyo. Const.");
    else
    {
    RedirectLib.RecordRedirect("", "State constitutions (U.S.)");
    Label1.Text = errorMsg;
    }
    }

    // U.S. Supreme Court cases (last checked 11/18/10)

    else if (docType == "U.S.")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    int page = Convert.ToInt32(Request.QueryString["page"]);
    string pinpoint = Convert.ToString(Request.QueryString["pinpoint"]);

    string cite = Convert.ToString(vol) + " U.S. " + Convert.ToString(page);

    //vols 1-542
    if (vol < 543)
    {
    if (pinpoint != "undefined")
    RedirectLib.PageRedirect(this,"http://supreme.justia.com/us/" + vol + "/" + page + "/case.html#" + pinpoint, cite);
    else
    RedirectLib.PageRedirect(this,"http://supreme.justia.com/us/" + vol + "/" + page + "/case.html", cite);
    }
    //vols 543-
    else
    {
    RedirectLib.PageRedirect(this,"http://supreme.justia.com/us/" + vol + "/index.html", cite);
    }
    }

    // U.S. Code (last checked 11/18/10)

    else if (docType == "U.S.C.")
    {
    string v = Convert.ToString(Request.QueryString["vol"]);
    string vol = "";
    if (v.Length == 1)
    vol = "0" + v;
    else
    vol = v;

    string s = Convert.ToString(Request.QueryString["sec"]);
    string sec = "";
    if (s.Length == 1)
    sec = "0000000" + s;
    else if (s.Length == 2)
    sec = "000000" + s;
    else if (s.Length == 3)
    sec = "00000" + s;
    else if (s.Length == 4)
    sec = "0000" + s;
    else
    sec = "000" + s;

    string s2 = Convert.ToString(Request.QueryString["sec2"]);
    string sec2 = "----";
    if (s2 != null)
    {
    if (s2.Length == 1)
    sec2 = "---" + s2;
    else if (s2.Length == 2)
    sec2 = "--" + s2;
    else if (s2.Length == 3)
    sec2 = "-" + s2;
    else
    sec2 = "----";
    }

    string s3 = Convert.ToString(Request.QueryString["sec3"]);
    string sec3 = "000";
    if (s3 != "undefined")
    {
    if (s3.Length == 1)
    sec3 = "00" + s3;
    else if (s3.Length == 2)
    sec3 = "0" + s3;
    else
    sec3 = s3;
    }

    string s4 = Convert.ToString(Request.QueryString["sec4"]);
    string sec4 = "-";
    if (s4 != "undefined")
    {
    sec4 = s4;
    }

    string cite = v + " U.S.C. " + s + s2 + s3 + s4;
    cite=cite.Replace("undefined","");

    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/uscode/html/uscode" + vol + "/usc_sec_" + vol + "_" + sec + sec2 + sec3 + sec4 + ".html", cite);
    }

    // Code of Federal Regulations (last checked 11/18/10)

    else if (docType == "CFR")
    {
    string t = Convert.ToString(Request.QueryString["title"]);
    string title = "";
    if (t.Length == 1)
    title = "0" + t;
    else
    title = t;

    string part = Convert.ToString(Request.QueryString["part"]);
    string cite = t + " CFR " + part;

    RedirectLib.PageRedirect(this,"http://ecfr.gpoaccess.gov/cgi/t/text/text-idx?c=ecfr&tpl=/ecfrbrowse/Title" + title + "/" + t + "cfr" + part + "_main_02.tpl", cite);
    }

    // Federal Register (last checked 11/18/10)

    else if (docType == "FedRegister")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    int year = vol + 1935;

    string page = Convert.ToString(Request.QueryString["page"]);
    page=page.Replace(",","");

    string cite = Convert.ToString(vol) + " Fed. Reg. " + page;

    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/getpage.cgi?dbname=" + year + "_register&position=all&page=" + page, cite);
    }

    // Federal Reporters (last checked 11/18/10)

    else if (docType == "F1d")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    int v = Convert.ToInt32(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    string cite = vol + " F. " + page;

    string code = RedirectLib.GetGoogleBooksUrlCode("f", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " F. " + page);
    else
    RedirectLib.PageRedirect(this,"http://openjurist.org/" + vol + "/f1d/" + page, cite);
    }
    else if (docType == "F2d")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    string cite = vol + " F.2d " + page;
    RedirectLib.PageRedirect(this,"http://cases.justia.com/us-court-of-appeals/F2/" + vol + "/" + page,cite);
    }
    else if (docType == "F3d")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    int intVol = Convert.ToInt32(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    string cite = vol + " F.3d " + page;

    if (intVol <= 491)
    {
    RedirectLib.PageRedirect(this,"http://cases.justia.com/us-court-of-appeals/F3/" + vol + "/" + page,cite);
    }
    else
    {
    RedirectLib.RecordRedirect("", cite);
    Label1.Text = errorMsg;
    }
    }

    // Federal Rules (last checked 11/18/10)

    else if (docType == "FRCP")
    {
    string rule = Convert.ToString(Request.QueryString["rule"]);
    rule=rule.Trim();

    if (rule != "undefined")
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frcp/Rule" + rule + ".htm", "FRCP " + rule);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frcp", "FRCP");
    }
    }
    else if (docType == "FRE")
    {
    string rule = Convert.ToString(Request.QueryString["rule"]);

    if (rule != "undefined")
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/fre/rules.htm#Rule" + rule, "FRE " + rule);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/fre/", "FRE");
    }
    }
    else if (docType == "FRCrimP")
    {
    string rule = Convert.ToString(Request.QueryString["rule"]);
    string rD = Convert.ToString(Request.QueryString["ruleDec"]);

    string ruleDecimal = "";
    if (rD != "undefined")
    ruleDecimal = "_" + rD;

    if (rule != "undefined")
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frcrmp/Rule" + rule + ruleDecimal + ".htm", "Fed. R. Crim. Pro. " + rule + ruleDecimal);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frcrmp/", "Fed. R. Crim. Pro.");
    }
    }
    else if (docType == "FRAP")
    {
    string rule = Convert.ToString(Request.QueryString["rule"]);

    if (rule != "undefined")
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frap/rules.html#Rule" + rule, "Fed. R. App. Pro. " + rule);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/rules/frap/rules.html", "Fed. R. App. Pro.");
    }
    }

    // Uniform Commercial Code (last checked 11/18/10)

    else if (docType == "UCC")
    {
    string part = Convert.ToString(Request.QueryString["part"]);
    string prov = Convert.ToString(Request.QueryString["prov"]);

    if (part != "undefined")
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/ucc/" + part + "/article" + part + ".htm#s" + part + "-" + prov, "U.C.C. " + part + "-" + prov);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://www.law.cornell.edu/ucc/", "U.C.C.");
    }
    }

    // U.S. Regional Reporters - SEND ALL TO GOOGLE SCHOLAR???

    else if (docType == "RegionalRptrs")
    {
    string reporter = Convert.ToString(Request.QueryString["rptr"]);
    reporter = reporter.ToLower();
    reporter = reporter.Replace(" ","");
    reporter = reporter.Replace(".","");

    string vol = Convert.ToString(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    int v = Convert.ToInt32(Request.QueryString["vol"]);
    //int page = Convert.ToInt32(Request.QueryString["page"]);

    if (reporter == "a")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("a", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " A. " + page);
    //http://books.google.com/books?jtp=381&id=tCQLAAAAYAAJ#PPA381,M1
    else
    LookForStateCase(vol + " A. " + page);
    }
    // else if (reporter == "a2d")
    // {
    // LookForStateCase(vol + " A.2d " + page);
    // }
    else if (reporter == "ne")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("ne", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?jtp=" + page + "&id=" + code + "#PPA381,M1", vol + " N.E. " + page);
    //http://books.google.com/books?jtp=381&id=tCQLAAAAYAAJ#PPA381,M1
    else
    LookForStateCase(vol + " N.E. " + page);
    }
    // else if (reporter == "ne2d")
    // {
    // LookForStateCase(vol + " N.E.2d " + page);
    // }
    // else if (reporter == "ne3d")
    // {
    // LookForStateCase(vol + " N.E.3d " + page);
    // }
    else if (reporter == "nw")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("nw", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " N.W. " + page);
    else
    LookForStateCase(vol + " N.W. " + page);
    }
    // else if (reporter == "nw2d")
    // {
    // LookForStateCase(vol + " N.W.2d " + page);
    // }
    // else if (reporter == "nw3d")
    // {
    // LookForStateCase(vol + " N.W.3d " + page);
    // }
    else if (reporter == "p")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("p", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " P. " + page);
    //http://books.google.com/books?jtp=381&id=tCQLAAAAYAAJ#PPA381,M1
    else
    LookForStateCase(vol + " P. " + page);
    }
    // else if (reporter == "p2d")
    // {
    // LookForStateCase(vol + " P.2d " + page);
    // }
    // else if (reporter == "p3d")
    // {
    // LookForStateCase(vol + " P.3d " + page);
    // }
    else if (reporter == "se")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("se", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " S.E. " + page);
    else
    LookForStateCase(vol + " S.E. " + page);
    }
    // else if (reporter == "se2d")
    // {
    // LookForStateCase(vol + " S.E.2d " + page);
    // }
    // else if (reporter == "se3d")
    // {
    // LookForStateCase(vol + " S.E.3d " + page);
    // }
    else if (reporter == "so")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("so", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?jtp=" + page + "&id=" + code + "#PPA" + page + ",M1", vol + " So. " + page);
    else
    LookForStateCase(vol + " So. " + page);
    }
    // else if (reporter == "so2d")
    // {
    // LookForStateCase(vol + " So.2d " + page);
    // }
    else if (reporter == "sw")
    {
    string code = RedirectLib.GetGoogleBooksUrlCode("sw", v);
    if (code != "")
    RedirectLib.PageRedirect(this,"http://books.google.com/books?id=" + code + "&printsec=titlepage&as_brr=1&cad=0#PPA" + page + ",M1", vol + " S.W. " + page);
    else
    LookForStateCase(vol + " S.W. " + page);
    }
    // else if (reporter == "sw2d")
    // {
    // LookForStateCase(vol + " S.W.2d " + page);
    // }
    // else if (reporter == "sw3d")
    // {
    // LookForStateCase(vol + " S.W.3d " + page);
    // }
    else
    {
    // search on google scholar
    LookForStateCase(vol + "+" + reporter + "+" + page);
    }
    }

    // MATERIALS FOR SPECIFIC STATES (needs to be updated; cases should go to Google Scholar)

    // Alabama

    else if (docType == "AlabamaCode")
    {
    RedirectLib.PageRedirect(this,"http://codes.lp.findlaw.com/alcode", "Ala. Code");
    }
    else if (docType == "AlabamaCases") // needs volume and page data
    {
    RedirectLib.PageRedirect(this,"http://scholar.google.com/scholar?hl=en&q=cite&as_sdt=204&as_ylo=&as_vis=0", "Ala. cases");
    }

    // Alaska

    else if (docType == "AlaskaCode")
    {
    RedirectLib.PageRedirect(this,"http://www.legis.state.ak.us/basis/folio.asp", "Alaska Stat.");
    }
    else if (docType == "AlaskaCases") // needs volume and page data
    {
    RedirectLib.PageRedirect(this,"http://scholar.google.com/scholar?hl=en&q=cite&btnG=Search&as_sdt=404&as_ylo=&as_vis=0", "Alaska cases");
    }

    // Arizona

    else if (docType == "ArizonaStatutes")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string s = Convert.ToString(Request.QueryString["sec"]);
    s=s.TrimEnd('.');
    string sec = "";
    if (s.Length == 3)
    sec = "00" + s;
    else if (s.Length == 4)
    sec = "0" + s;
    else
    sec = s;

    RedirectLib.PageRedirect(this,"http://law.justia.com/arizona/codes/title" + title + "/" + sec + ".html", "Ariz. Rev. Stat. " + title + "-" + s);
    }
    else if (docType == "ArizonaCases")
    {
    RedirectLib.PageRedirect(this,"http://www.supreme.state.az.us/opin/default.htm", "Ariz. S. Ct.");
    }

    // Arkansas

    else if (docType == "ArkansasCode")
    {
    RedirectLib.PageRedirect(this,"http://www.arkleg.state.ar.us/NXT/gateway.dll?f=templates&fn=default.htm&vid=blr:code", "Ark. Code Ann.");
    }
    else if (docType == "ArkansasCases")
    {
    string ct = Convert.ToString(Request.QueryString["ct"]);
    if (ct == "Ark.")
    RedirectLib.PageRedirect(this,"http://courts.state.ar.us/opinions/sc_opinions_list.cfm", "Ark. S. Ct.");
    else
    RedirectLib.PageRedirect(this,"http://courts.state.ar.us/opinions/coa_opinions_list.cfm", "Ark. Ct. App.");
    }

    // California

    else if (docType == "CAcases")
    {
    RedirectLib.PageRedirect(this,"http://www.courtinfo.ca.gov/opinions/continue.htm", "Cal. cases");
    }

    // Colorado

    else if (docType == "ColoradoStatutes")
    {
    string prov = Convert.ToString(Request.QueryString["prov"]);
    prov=prov.TrimEnd('.');
    RedirectLib.PageRedirect(this,"http://www.michie.com/colorado/lpext.dll?f=templates&fn=main-h.htm&cp=", "Colo. Rev. Stat. " + prov); // Michie's
    }

    // Connecticut

    else if (docType == "ConnStatutes")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    RedirectLib.PageRedirect(this,"http://www.cga.ct.gov/2007/pub/Title" + title + ".htm", "Conn. Gen. Stat. tit. " + title);
    }
    else if (docType == "ConnCases")
    {
    RedirectLib.PageRedirect(this,"http://jud.ct.gov/external/supapp/aro.htm", "Conn. cases");
    }

    // Delaware

    else if (docType == "DelawareCode")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    RedirectLib.PageRedirect(this,"http://delcode.delaware.gov/title" + title + "/index.shtml#TopOfPage", "Del. Code Ann. tit. " + title);
    }
    else if (docType == "DelawareCases")
    {
    RedirectLib.PageRedirect(this,"http://courts.delaware.gov/opinions/", "Del. cases");
    }

    // District of Columbia

    else if (docType == "DCCode")
    {
    RedirectLib.PageRedirect(this,"http://government.westlaw.com/linkedslice/default.asp?SP=DCC-1000", "D.C. Code");
    }
    else if (docType == "DCCases")
    {
    RedirectLib.PageRedirect(this,"http://www.dcappeals.gov/dccourts/appeals/opinions_mojs.jsp", "D.C. Ct. App.");
    }

    // Florida

    else if (docType == "FloridaStatutes")
    {
    string chap = Convert.ToString(Request.QueryString["ch"]);
    string ch = "";
    if (chap.Length == 1)
    ch = "000" + chap;
    if (chap.Length == 2)
    ch = "00" + chap;
    if (chap.Length == 3)
    ch = "0" + chap;
    else
    ch = chap;

    string sec = Convert.ToString(Request.QueryString["sec"]);

    RedirectLib.PageRedirect(this,"http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&Search_String=&URL=Ch" + ch + "/SEC" + sec + ".HTM", "Fla. Stat. " + ch + "." + sec);
    }
    else if (docType == "FloridaCases")
    {
    RedirectLib.PageRedirect(this,"http://www.findlaw.com/11stategov/fl/flca.html", "Fla. cases");
    }

    // Georgia

    else if (docType == "GeorgiaCode")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    sec=sec.Replace("A","a");

    RedirectLib.PageRedirect(this,"http://law.justia.com/georgia/codes/" + title + "/" + title + "-" + sec + ".html", "Ga. Code Ann. " + title + "-" + sec);
    }
    else if (docType == "GeorgiaCases")
    {
    RedirectLib.PageRedirect(this,"http://www.gasupreme.us/computer_docket.php", "Ga. cases");
    }

    // Hawaii

    else if (docType == "HawaiiStatutes")
    {
    RedirectLib.PageRedirect(this,"http://www.capitol.hawaii.gov/site1/hrs/default.asp", "Haw. Rev. Stat.");
    }
    else if (docType == "HawaiiCases")
    {
    RedirectLib.PageRedirect(this,"http://www.courts.state.hi.us/page_server/LegalReferences/73DFB8859867A628EAE7AB3DC5.html", "Haw. cases");
    }

    // Idaho

    else if (docType == "IdahoCode")
    {
    RedirectLib.PageRedirect(this,"http://law.justia.com/idaho/codes/", "Idaho Code Ann.");
    }
    else if (docType == "IdahoCases")
    {
    RedirectLib.PageRedirect(this,"http://www.isc.idaho.gov/search/", "Idaho cases");
    }

    // Illinois

    else if (docType == "IllinoisStatutes")
    {
    int chap = Convert.ToInt32(Request.QueryString["ch"]);
    int ch = 1;
    if (chap < 100)
    ch = (chap/5) + 1;
    else if (chap > 100 && chap < 200)
    ch = (chap/5) - 4;
    else if (chap > 200 && chap < 300)
    ch = (chap/5) - 21;
    else if (chap > 300 && chap < 400)
    ch = (chap/5) - 33;
    else if (chap > 400 && chap < 500)
    ch = (chap/5) - 47;
    else if (chap > 500 && chap < 600)
    ch = (chap/5) - 61;
    else if (chap > 600 && chap < 700)
    ch = (chap/5) - 76;
    else if (chap > 700 && chap < 800)
    ch = (chap/5) - 91;
    else if (chap > 800)
    ch = (chap/5) - 96;

    RedirectLib.PageRedirect(this,"http://law.justia.com/illinois/codes/chapter" + ch + ".html", Convert.ToString(chap) + " Ill. Comp. Stat.");
    }
    else if (docType == "IllinoisCases")
    {
    RedirectLib.PageRedirect(this,"http://www.state.il.us/court/Opinions/archive.asp", "Ill. cases");
    }

    // Indiana

    else if (docType == "IndianaCode")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string art = Convert.ToString(Request.QueryString["art"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);

    RedirectLib.PageRedirect(this,"http://law.justia.com/indiana/codes/title" + title + "/" + "ar" + art + "/ch" + sec + ".html", "Ind. Code. " + title + "-" + "-" + art + "-" + sec);
    }

    // Iowa

    else if (docType == "IowaCode")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');

    RedirectLib.PageRedirect(this,"http://coolice.legis.state.ia.us/Cool-ICE/default.asp?category=billinfo&service=IowaCode&ga=82&input=" + sec, "Iowa Code " + sec);
    }
    else if (docType == "IowaCases")
    {
    RedirectLib.PageRedirect(this,"http://www.findlaw.com/11stategov/ia/iaca.html", "Iowa cases");
    }

    // Kansas

    else if (docType == "KansasStatutes")
    {
    string ch = Convert.ToString(Request.QueryString["ch"]);
    string art = Convert.ToString(Request.QueryString["art"]);
    RedirectLib.PageRedirect(this,"http://law.justia.com/kansas/codes/chapter" + ch + "/chapter" + ch + ".html", "Kan. Stat. Ann. " + ch + "-" + art);
    }
    else if (docType == "KansasCases")
    {
    string ct = Convert.ToString(Request.QueryString["ct"]);
    if (ct == "Kan.")
    RedirectLib.PageRedirect(this,"http://www.kscourts.org/Cases-and-Opinions/Case-Name-List/Supreme-Court/", "Kan. S. Ct.");
    else
    RedirectLib.PageRedirect(this,"http://www.kscourts.org/Cases-and-Opinions/Case-Name-List/Court-of-Appeals/", "Kan. Ct. App.");

    }

    // Kentucky

    else if (docType == "KentuckyStatutes")
    {
    //string chap = Convert.ToString(Request.QueryString["ch"]);
    //string subch = Convert.ToString(Request.QueryString["subch"]);
    //string stat = Convert.ToString(Request.QueryString["stat"]);

    RedirectLib.PageRedirect(this,"http://law.justia.com/kentucky/codes/index.html", "Ky. Rev. Stat. Ann.");
    }
    else if (docType == "KentuckyCases")
    {
    RedirectLib.PageRedirect(this,"http://apps.kycourts.net/Supreme/SC_Opinions.shtm", "Ky. cases");
    }

    // Maine

    else if (docType == "MaineStatutes")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);
    RedirectLib.PageRedirect(this,"http://janus.state.me.us/legis/statutes/" + title + "/title" + title + "sec" + sec + ".html", "Me. Rev. Stat. Ann. tit. " + title + ", " + sec);
    }
    else if (docType == "MaineSupCt")
    {
    int year = Convert.ToInt32(Request.QueryString["year"]);
    int no = Convert.ToInt32(Request.QueryString["no"]);

    RedirectLib.PageRedirect(this,"http://scholar.google.com/scholar?as_q=&num=10&btnG=Search+Scholar&as_epq="+year+"+ME+"+no+"&as_oq=&as_eq=&as_occt=any&as_sauthors=&as_publication=&as_ylo=&as_yhi=&as_sdt=4&as_sdts=20&hl=en", "ME cases");
    }

    // Maryland

    else if (docType == "MDCourtApp")
    {
    RedirectLib.PageRedirect(this,"http://mdcourts.gov/cgi-bin/indexlist.pl?court=coa&year=all&order=bycite&submit=Submit", "M.D. Ct. App.");
    }
    else if (docType == "MDCourtSpApp")
    {
    RedirectLib.PageRedirect(this,"http://mdcourts.gov/cgi-bin/indexlist.pl?court=cosa&year=all&order=bycite&submit=Submit", "M.D. Ct. Spec. App.");
    }

    // Massachusetts

    else if (docType == "MassGenLaws")
    {
    string ch = Convert.ToString(Request.QueryString["ch"]);
    ch=ch.ToLower();
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.ToLower();
    RedirectLib.PageRedirect(this,"http://www.mass.gov/legis/laws/mgl/" + ch + "-" + sec + ".htm", "Mass. Gen. Laws ch. " + ch + ", " + sec);
    }
    else if (docType == "MassSJCCases")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    RedirectLib.PageRedirect(this,"http://masscases.com/cases/sjc/" + vol + "/" + vol + "mass" + page + ".html", vol + " Mass. " + page);
    }
    else if (docType == "MassCtAppCases")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    RedirectLib.PageRedirect(this,"http://masscases.com/cases/app/" + vol + "/" + vol + "massappct" + page + ".html", vol + " Mass. App. Ct. " + page);
    }

    // Michigan

    else if (docType == "MichStatutes")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    sec=sec.Replace(".","-");
    RedirectLib.PageRedirect(this,"http://www.legislature.mi.gov/(S(4oxzdqvnrkpxtlnpptudk045))/mileg.aspx?page=GetObject&objectname=mcl-" + sec, "Mich. Comp. Laws " + sec);
    }
    else if (docType == "MichSupremeCt")
    {
    RedirectLib.PageRedirect(this,"http://courtofappeals.mijud.net/resources/asp/fs.asp", "Mich. S. Ct.");
    }
    else if (docType == "MichCtApp")
    {
    RedirectLib.PageRedirect(this,"http://courtofappeals.mijud.net/resources/asp/fs.asp", "Mich. Ct. App.");
    }

    // Minnesota

    else if (docType == "MinnStatutes")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    RedirectLib.PageRedirect(this,"https://www.revisor.mn.gov/statutes/?id=" + sec, "Minn. Stat. " + sec);
    }
    else if (docType == "MinnCases")
    {
    RedirectLib.PageRedirect(this,"http://search.state.mn.us/lawlibrary/", "Minn. cases");
    }

    // Mississippi

    else if (docType == "MississippiCode")
    {
    RedirectLib.PageRedirect(this,"http://michie.lexisnexis.com/mississippi/lpext.dll?f=templates&fn=main-h.htm&cp=", "Miss. Code Ann.");
    }
    else if (docType == "MississippiCases")
    {
    RedirectLib.PageRedirect(this,"http://www.mssc.state.ms.us/appellate_courts/sc/scdecisions.html", "Miss. cases");
    }

    // New Jersey

    else if (docType == "NJSA")
    {
    RedirectLib.PageRedirect(this,"http://www.njlawnet.com/njstatutes.html", "N.J. Stat. Ann.");
    }
    else if (docType == "NJAppCases")
    {
    string cite = Convert.ToString(Request.QueryString["cite"]);
    RedirectLib.PageRedirect(this,"http://lawlibrary.rutgers.edu/search.shtml#docket", cite);
    }
    else if (docType == "NJAC")
    {
    RedirectLib.PageRedirect(this,"http://www.michie.com/newjersey/lpext.dll?f=templates&fn=main-h.htm&cp=", "N.J. Admin. Code");
    }

    // New Mexico

    else if (docType == "NMStatutes")
    {
    RedirectLib.PageRedirect(this,"http://www.conwaygreene.com/nmonesource/publicLicense.aspx?dest=cg", "N.M. Stat.");
    }
    else if (docType == "NMCases")
    {
    string year = Convert.ToString(Request.QueryString["year"]);
    year=year.Substring(2,2);
    string no = Convert.ToString(Request.QueryString["no"]);
    string ct = Convert.ToString(Request.QueryString["ct"]);
    ct=ct.ToLower();
    ct=ct.Replace("nm","");

    RedirectLib.PageRedirect(this,"http://www.supremecourt.nm.org./pastopinion/VIEW/" + year + ct + "-" + no + ".html", year + "-" + ct + "-" + no);
    }

    // North Dakota

    else if (docType == "NDCode")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    title=title.Replace(".","");
    if (title.Length == 1)
    title = "0" + title;

    string ch = Convert.ToString(Request.QueryString["ch"]);
    ch=ch.Replace(".","");

    RedirectLib.PageRedirect(this,"http://www.legis.nd.gov/cencode/t" + title + "c" + ch + ".pdf", "N.D. Cent. Code " + title + "-" + ch);
    }
    else if (docType == "NDSupremeCases")
    {
    string year = Convert.ToString(Request.QueryString["year"]);
    RedirectLib.PageRedirect(this,"http://www.court.state.nd.us/opinions/cite/" + year + ".htm", "N.D. S. Ct. " + year);
    }
    else if (docType == "NDAppealsCases")
    {
    RedirectLib.PageRedirect(this,"http://www.court.state.nd.us/opinions/cite/ndapp.htm", "N.D. Ct. App.");
    }
    else if (docType == "NDNW2dCases")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    if (vol > 147)
    RedirectLib.PageRedirect(this,"http://www.court.state.nd.us/opinions/cite/" + vol + ".htm", "N.D. cases, N.W.2d");
    else
    //site doesn't have that volume
    RedirectLib.PageRedirect(this,"http://www.court.state.nd.us/search/opinions.asp", "N.D. cases, N.W.2d");
    }

    // New York

    else if (docType == "NYCPLR")
    {
    RedirectLib.PageRedirect(this,"http://public.leginfo.state.ny.us/menugetf.cgi?COMMONQUERY=LAWS", "NYCPLR");
    }
    else if (docType == "NYCtApp")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    string pg = Convert.ToString(Request.QueryString["page"]);

    if (vol < 92)
    {
    string page = "";
    if (pg.Length == 1)
    page = "000" + pg;
    if (pg.Length == 2)
    page = "00" + pg;
    if (pg.Length == 3)
    page = "0" + pg;
    else
    page = pg;

    RedirectLib.PageRedirect(this,"http://caselaw.lp.findlaw.com/scripts/getcase.pl?court=ny&vol=0" + vol + "&invol=" + page, vol + " N.Y. " + page);
    }
    else
    RedirectLib.PageRedirect(this,"http://www.findlaw.com/11stategov/ny/nyca.html", "N.Y. cases");
    }

    // Ohio

    else if (docType == "OhioSupCt")
    {
    string year = Convert.ToString(Request.QueryString["year"]);
    string no = Convert.ToString(Request.QueryString["no"]);
    RedirectLib.PageRedirect(this,"http://www.sconet.state.oh.us/rod/docs/pdf/0/" + year + "/" + year + "-ohio-" + no + ".pdf", year + "-Ohio-" + no);
    }
    else if (docType == "OhioCode")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    RedirectLib.PageRedirect(this,"http://codes.ohio.gov/orc/" + sec, "Ohio Rev. Code Ann. " + sec);
    }
    else if (docType == "OhioAdminCode")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    string sec2=sec.Replace(":","%3A");
    RedirectLib.PageRedirect(this,"http://codes.ohio.gov/oac/" + sec2, "Ohio Admin. Code " + sec);
    }

    // Oregon

    else if (docType == "OregonStatutes")
    {
    string ch = Convert.ToString(Request.QueryString["ch"]);
    string sec = "";
    try
    {
    sec = Convert.ToString(Request.QueryString["sec"]);
    }
    catch
    {
    sec = "";
    }
    string cite = ch + sec;
    if (sec == null || sec == "" || sec == "undefined")
    {
    RedirectLib.PageRedirect(this,"http://oregonlaws.org/ors_chapters/" + ch, "Or. Rev. Stat. " + ch);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://oregonlaws.org/ors/" + cite + ".html", "Or. Rev. Stat. " + cite);
    }
    }

    // Pennsylvania

    else if (docType == "PAStatutes")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    RedirectLib.PageRedirect(this,"http://government.westlaw.com/linkedslice/default.asp?SP=pac-1000", "Pa. Cons. Stat. " + title); //Purdon's PA Statutes from West
    }
    else if (docType == "PACode")
    {
    string t = Convert.ToString(Request.QueryString["title"]);
    string title = "";
    if (t.Length == 1)
    title = "00" + t;
    else if (t.Length == 2)
    title = "0" + t;
    else
    title = t;

    string ch = Convert.ToString(Request.QueryString["ch"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);

    RedirectLib.PageRedirect(this,"http://www.pacode.com/secure/data/" + title + "/chapter" + ch + "/s" + ch + "." + sec + ".html", title + " Pa. Code " + ch + "." + sec);
    }
    else if (docType == "PASupremeCt")
    {
    RedirectLib.PageRedirect(this,"http://www.findlaw.com/11stategov/pa/paca.html", "Pa. S. Ct.");
    }

    // Puerto Rico

    else if (docType == "PRLaws")
    {
    RedirectLib.PageRedirect(this,"http://michie.lexisnexis.com/puertorico/lpext.dll?f=templates&fn=main-h.htm&cp=", "Laws of Puerto Rico");
    }

    // Rhode Island

    else if (docType == "RIGenLaws")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);
    RedirectLib.PageRedirect(this,"http://law.justia.com/rhodeisland/codes/title" + title + "/" + title + "-" + sec + ".html", "R.I. Gen. Laws " + title + "-" + sec);
    }

    // South Carolina

    else if (docType == "SCCodes")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    string ch = Convert.ToString(Request.QueryString["ch"]);
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.',',');
    string type = Convert.ToString(Request.QueryString["type"]);
    if (type == "undefined")
    {
    string chap = "";
    if (ch.Length == 1)
    chap = "00" + ch;
    else if (ch.Length == 2)
    chap = "0" + ch;
    else
    chap = ch;

    RedirectLib.PageRedirect(this,"http://www.scstatehouse.net/code/t" + title + "c" + chap + ".htm#" + title + "-" + ch + "-" + sec, "S.C. Code Ann. " + title + "-" + ch + "-" + sec);
    }
    else
    {
    string ti = "";
    if (title.Length == 1)
    ti = "00" + title;
    else if (title.Length == 2)
    ti = "0" + title;
    else
    ti = title;

    RedirectLib.PageRedirect(this,"http://www.scstatehouse.net/coderegs/c" + ti + ".htm#" + title + "-" + ch, "S.C. Code Ann. Regs. " + title + "-" + ch);
    }
    }

    // Tennessee

    else if (docType == "TNCode")
    {
    RedirectLib.PageRedirect(this,"http://michie.lexisnexis.com/tennessee/lpext.dll?f=templates&fn=main-h.htm&cp=", "Tenn. Code Ann.");
    }

    // Utah

    else if (docType == "UTCode")
    {
    string title = Convert.ToString(Request.QueryString["title"]);
    if (title.Length == 1)
    title = "0" + title;
    title=title.ToLower();
    RedirectLib.PageRedirect(this,"http://law.justia.com/utah/codes/title" + title + "/title" + title + ".html", "Utah Code Ann. " + title);
    }

    // Vermont

    else if (docType == "VTCode")
    {
    string t = Convert.ToString(Request.QueryString["title"]);
    int len = t.Length;
    if (t.EndsWith("A"))
    len = len-1;
    string title = "";
    if (len == 1)
    title = "0" + t;
    else
    title = t;

    string s = Convert.ToString(Request.QueryString["sec"]);
    string sec = "";
    if (s.Length == 1)
    sec = "0000" + s;
    else if (s.Length == 2)
    sec = "000" + s;
    else if (s.Length == 3)
    sec = "00" + s;
    else if (s.Length == 4)
    sec = "0" + s;
    else
    sec = t;

    string sec2 = Convert.ToString(Request.QueryString["sec2"]);
    if (sec2 == "undefined")
    sec2 = "";

    RedirectLib.PageRedirect(this,"http://law.justia.com/vermont/codes/title" + title + "/section" + sec + sec2 + ".html", "Vt. Stat. Ann. tit. " + title + ", " + s + sec2);
    }
    else if (docType == "VTSupremeCt")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    RedirectLib.PageRedirect(this,"http://www.libraries.vermont.gov/supct/" + vol + "/" + vol + ".html", "Vt. S. Ct., vol. " + vol);
    }

    // Virginia

    else if (docType == "VACode")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    RedirectLib.PageRedirect(this,"http://leg1.state.va.us/cgi-bin/legp504.exe?000+cod+" + sec, "Va. Code Ann. " + sec);
    }
    else if (docType == "VACases")
    {
    RedirectLib.PageRedirect(this,"http://www.courts.state.va.us/opin.htm", "Va. cases");
    }

    // Washington (state)
    else if (docType == "RevCodeWash")
    {
    string sec = Convert.ToString(Request.QueryString["sec"]);
    sec=sec.TrimEnd('.');
    RedirectLib.PageRedirect(this,"http://apps.leg.wa.gov/RCW/default.aspx?cite=" + sec, "Wash. Rev. Code " + sec);
    }

    // Wisconsin

    else if (docType == "WIStatutes")
    {
    string ch = Convert.ToString(Request.QueryString["ch"]);
    RedirectLib.PageRedirect(this,"http://nxt.legis.state.wi.us/nxt/gateway.dll?f=templates&fn=default.htm&vid=WI:Default&d=stats&jd=ch.%20" + ch, "Wis. Stat. " + ch);
    //Alt link to pdf: RedirectLib.PageRedirect(this,"http://www.legis.state.wi.us/statutes/Stat0979.pdf"); see http://www.legis.state.wi.us/rsb/Statutes.html
    }


    // U.S. Public Laws (needs to be checked)

    else if (docType == "USPubLaws")
    {
    int cong = Convert.ToInt32(Request.QueryString["cong"]);
    string no = Convert.ToString(Request.QueryString["no"]);
    string cite = "Pub. L. " + Convert.ToString(cong) + "-" + no;

    if (cong == 111 && no == "005")
    {
    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=111_cong_bills&docid=f:h1enr.pdf", cite);
    }
    else if (cong > 105)
    {
    string n = "";
    if (no.Length == 1)
    n = "00" + no;
    else if (no.Length == 2)
    n = "0" + no;
    else
    n = no;
    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=" + cong + "_cong_public_laws&docid=f:publ" + n + "." + cong, cite);
    }
    else
    {
    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=" + cong + "_cong_public_laws&docid=f:publ" + no + "." + cong, cite);
    }
    }

    // Congressional materials (needs to be checked)

    else if (docType == "CongRes")
    {
    string type = Convert.ToString(Request.QueryString["type"]);
    string t = "";
    type=type.ToLower();
    type=type.Replace(".","");
    type=type.Replace(" ","");
    if (type == "s")
    t = "S.";
    else if (type == "hr")
    t = "H.R.";
    else if (type == "hrres" || type == "hres")
    t = "H.Res.";
    else if (type == "sres")
    t = "S.Res.";
    else if (type == "hrconres" || type == "hconres")
    t = "H.Con.Res.";
    else if (type == "sconres")
    t = "S.Con.Res.";
    else if (type == "hrjres" || type == "hjres")
    t = "H.J.Res.";
    else if (type == "sjres")
    t = "S.J.Res.";
    else if (type == "sexecres" || type == "sexres")
    t = "S.+Exec.+Res.";

    string no = Convert.ToString(Request.QueryString["no"]);
    int cong = Convert.ToInt32(Request.QueryString["cong"]);
    string abbrev = "th";
    if (cong == 103)
    abbrev = "rd";

    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/multidb.cgi?WAISdbName=" + cong + "_cong_bills+Congressional+Bills%2C+" + cong + abbrev + "+Congress&WAISqueryRule=%24WAISqueryString&WAIStemplate=multidb_results.html&WAISqueryString=%22" + t + "+" + no + "%22&Submit.=Submit&WAISmaxHits=50&WrapperTemplate=bills_wrapper.html", t + " No. " + Convert.ToString(cong) + abbrev + "-" + no);
    //more years available here: http://thomas.loc.gov/home/c110query.html
    }
    else if (docType == "SenTreatyDoc")
    {
    string no = Convert.ToString(Request.QueryString["no"]);
    int cong = Convert.ToInt32(Request.QueryString["cong"]);
    string cite = "S. Treaty Doc. No. " + Convert.ToString(cong) + "-" + no;
    if (no.Length == 1)
    no = "00" + no;
    else if (no.Length == 2)
    no = "0" + no;
    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/useftp.cgi?IPaddress=162.140.64.181&filename=td" + no + "." + cong + "&directory=/diska/wais/data/" + cong + "_cong_documents", cite);
    }
    else if (docType == "CongRec")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    int year = vol + 1854;
    RedirectLib.PageRedirect(this,"http://frwebgate.access.gpo.gov/cgi-bin/getpage.cgi?position=all&page=" + page + "&dbname=" + year + "_record", Convert.ToString(vol) + " Cong. Rec. " + page);
    }

    // National Labor Relations Board decisions (last checked 11/18/10)

    else if (docType == "NLRB")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);
    if (vol > 345)
    RedirectLib.PageRedirect(this,"http://www.nlrb.gov/research/decisions/board_decisions/index.aspx", "NLRB vol. " + Convert.ToString(vol));
    else
    RedirectLib.PageRedirect(this,"http://www.nlrb.gov/research/decisions/board_decisions/bound_volumes.aspx", "NLRB vol. " + Convert.ToString(vol));
    }

    // Board of Immigration Appeals decisions (last checked 11/19/10)

    else if (docType == "BIA")
    {
    int vol = Convert.ToInt32(Request.QueryString["vol"]);

    if (vol == 12)
    {
    RedirectLib.PageRedirect(this,"http://www.justice.gov/eoir/vll/intdec/lib_vol12idx.htm", "BIA vol. " + Convert.ToString(vol));
    }
    else if (vol < 19)
    {
    if (vol < 10)
    {
    RedirectLib.PageRedirect(this,"http://www.justice.gov/eoir/vll/intdec/vol0" + vol + ".htm", "BIA vol. " + Convert.ToString(vol));
    }
    else
    {
    if (vol > 12 && vol < 19)
    RedirectLib.PageRedirect(this,"hhttp://www.justice.gov/eoir/vll/intdec/vol" + vol + ".html", "BIA vol. " + Convert.ToString(vol));
    else
    RedirectLib.PageRedirect(this,"http://www.justice.gov/eoir/vll/intdec/vol" + vol + ".htm", "BIA vol. " + Convert.ToString(vol));
    }
    }
    else
    {
    if (vol == 21 || vol == 22 || vol == 23)
    RedirectLib.PageRedirect(this,"http://www.justice.gov/eoir/vll/intdec/nfvol" + vol + ".html", "BIA vol. " + Convert.ToString(vol));
    else
    RedirectLib.PageRedirect(this,"http://www.justice.gov/eoir/vll/intdec/nfvol" + vol + ".htm", "BIA vol. " + Convert.ToString(vol));
    }
    }

    // General Accounting Office decisions (last checked 11/18/10)

    else if (docType == "GOA")
    {
    string vol = Convert.ToString(Request.QueryString["vol"]);
    string page = Convert.ToString(Request.QueryString["page"]);
    RedirectLib.PageRedirect(this,"http://www.gao.gov/cgi-bin/redbook?CG=" + vol + "%20Comp.%20Gen%20" + page, vol + " Comp. Gen. " + page);
    //See http://www.gao.gov/legal/decisions.html
    }

    // U.S. Patents (last checked 11/18/10)

    else if (docType == "USPatents")
    {
    string no = Convert.ToString(Request.QueryString["no"]);
    no=no.Replace(",","");
    RedirectLib.PageRedirect(this,"http://www.google.com/patents?vid=USPAT" + no, "U.S. Patent No. " + no);
    }

    // A few law reviews - more probably are available on Google Scholar

    else if (docType == "HarvLRev")
    {
    RedirectLib.PageRedirect(this,"http://www.harvardlawreview.org/recentissues.shtml", "Harv. L. Rev.");
    }
    else if (docType == "YaleLJ")
    {
    string cite = Convert.ToString(Request.QueryString["cite"]);
    //RedirectLib.PageRedirect(this,"http://yalelawjournal.org/archive.html#ylj");
    RedirectLib.PageRedirect(this,"http://yalelawjournal.org/index.php?option=com_search&Itemid=9&searchword=" + cite + "&submit=Search&searchphrase=exact&ordering=newest", cite);
    }
    else if (docType == "ColumLRev")
    {
    RedirectLib.PageRedirect(this,"http://www.columbialawreview.org/archives/", "Columb. L. Rev.");
    }


    }

    //**********************************************************************
    // LookForStateCase()
    //**********************************************************************
    protected void LookForStateCase(string cite)
    {
    // REDIRECT TO GOOGLE ???
    //RedirectLib.PageRedirect(this,"", cite);
    }




    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: This call is required by the ASP.NET Web Form Designer.
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion
    }


    }
    1,071 changes: 1,071 additions & 0 deletions Redirect library
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1071 @@
    using System;
    using System.IO;
    using System.Net;

    namespace JureekaCitationResolver
    {

    public class RedirectLib
    {
    //**********************************************************************
    // PageRedirect() - Redirects user to proper page
    //**********************************************************************
    public static void PageRedirect(System.Web.UI.Page obj, string redirectUrl, string redirectCite)
    {
    RecordRedirect(redirectUrl,redirectCite);
    obj.Response.Redirect(redirectUrl);
    }


    //**********************************************************************
    // RecordRedirect() - Stores usage data in database
    //**********************************************************************
    public static void RecordRedirect(string redirectUrl, string redirectCite)
    {
    // Put code here to write to database
    }


    //**********************************************************************
    // GetGoogleBooksUrlCode()
    //**********************************************************************
    //Returns the relevant part of the Google Book search url querystring
    public static string GetGoogleBooksUrlCode(string reporter, int vol)
    {
    string code = "";

    if (reporter == "f")
    {
    if (vol < 200)
    {
    if (vol == 96) code = "2R04AAAAIAAJ"; // 1899
    else if (vol == 97) code = "_yI4AAAAIAAJ";
    //else if (vol == 98) code = "";
    else if (vol == 99) code = "Slc4AAAAIAAJ";
    //else if (vol == 100) code = "";
    else if (vol == 101) code = "Z1g4AAAAIAAJ";
    else if (vol == 102) code = "Qmk4AAAAIAAJ";
    else if (vol == 103) code = "8Fk4AAAAIAAJ";
    else if (vol == 104) code = "N1o4AAAAIAAJ";
    else if (vol == 105) code = "M1s4AAAAIAAJ"; //3poKAAAAYAAJ
    else if (vol == 106) code = "lik4AAAAIAAJ";
    //else if (vol == 107) code = "";
    //else if (vol == 108) code = "";
    else if (vol == 109) code = "kys4AAAAIAAJ";
    else if (vol == 110) code = "l2A4AAAAIAAJ";
    else if (vol == 111) code = "C6oKAAAAYAAJ";
    else if (vol == 112) code = "sCw4AAAAIAAJ";
    else if (vol == 113) code = "xSw4AAAAIAAJ";
    else if (vol == 114) code = "DKoKAAAAYAAJ";
    else if (vol == 115) code = "fFw4AAAAIAAJ";
    else if (vol == 116) code = "KRU4AAAAIAAJ";
    else if (vol == 117) code = "CRY4AAAAIAAJ";
    else if (vol == 118) code = "xhY4AAAAIAAJ";
    else if (vol == 119) code = "AZwKAAAAYAAJ";
    else if (vol == 120) code = "gBg4AAAAIAAJ";
    else if (vol == 121) code = "cBk4AAAAIAAJ";
    else if (vol == 122) code = "FBo4AAAAIAAJ";
    else if (vol == 123) code = "xRo4AAAAIAAJ";
    //else if (vol == 124) code = "";
    else if (vol == 125) code = "Omk4AAAAIAAJ";
    else if (vol == 126) code = "arkKAAAAYAAJ";
    else if (vol == 127) code = "_Cw4AAAAIAAJ";
    else if (vol == 128) code = "3GM4AAAAIAAJ";
    else if (vol == 129) code = "eS44AAAAIAAJ";
    else if (vol == 130) code = "NS84AAAAIAAJ";
    //else if (vol == 131) code = "";
    else if (vol == 132) code = "szA4AAAAIAAJ";
    else if (vol == 133) code = "ZTE4AAAAIAAJ";
    //else if (vol == 134) code = "";
    else if (vol == 135) code = "kzI4AAAAIAAJ";
    else if (vol == 136) code = "UzM4AAAAIAAJ";
    else if (vol == 137) code = "BTQ4AAAAIAAJ";
    else if (vol == 138) code = "xTQ4AAAAIAAJ";
    else if (vol == 139) code = "lzU4AAAAIAAJ";
    else if (vol == 140) code = "8TU4AAAAIAAJ";
    else if (vol == 141) code = "BDc4AAAAIAAJ";
    else if (vol == 142) code = "pTc4AAAAIAAJ";
    else if (vol == 143) code = "UDg4AAAAIAAJ";
    else if (vol == 144) code = "zDg4AAAAIAAJ";
    else if (vol == 145) code = "bzk4AAAAIAAJ";
    else if (vol == 146) code = "hDo4AAAAIAAJ";
    else if (vol == 147) code = "7To4AAAAIAAJ";
    //else if (vol == 148) code = "";
    else if (vol == 149) code = "ND44AAAAIAAJ";
    //else if (vol == 150) code = "";
    else if (vol == 151) code = "sUA4AAAAIAAJ";
    else if (vol == 152) code = "mkE4AAAAIAAJ";
    else if (vol == 153) code = "aiM4AAAAIAAJ";
    else if (vol == 154) code = "Yb0KAAAAYAAJ";
    else if (vol == 155) code = "2CQ4AAAAIAAJ";
    else if (vol == 156) code = "zCU4AAAAIAAJ";
    else if (vol == 157) code = "6yU4AAAAIAAJ";
    else if (vol == 158) code = "P3A4AAAAIAAJ";
    else if (vol == 159) code = "Hyc4AAAAIAAJ";
    else if (vol == 160) code = "ryc4AAAAIAAJ";
    else if (vol == 161) code = "iHY4AAAAIAAJ";
    else if (vol == 162) code = "Unc4AAAAIAAJ";
    else if (vol == 163) code = "r3c4AAAAIAAJ";
    else if (vol == 164) code = "6Cw4AAAAIAAJ";
    else if (vol == 165) code = "wSw4AAAAIAAJ";
    else if (vol == 166) code = "UCw4AAAAIAAJ";
    else if (vol == 167) code = "9Xk4AAAAIAAJ";
    //else if (vol == 168) code = "";
    else if (vol == 169) code = "jCw4AAAAIAAJ";
    else if (vol == 170) code = "szw4AAAAIAAJ";
    else if (vol == 171) code = "9Xs4AAAAIAAJ";
    else if (vol == 172) code = "Wnw4AAAAIAAJ";
    //else if (vol == 173) code = "";
    else if (vol == 174) code = "f344AAAAIAAJ";
    else if (vol == 175) code = "2H44AAAAIAAJ";
    else if (vol == 176) code = "z0A4AAAAIAAJ";
    //else if (vol == 177) code = "";
    else if (vol == 178) code = "eYA4AAAAIAAJ";
    else if (vol == 179) code = "f8MKAAAAYAAJ";
    else if (vol == 180) code = "l4E4AAAAIAAJ";
    else if (vol == 181) code = "JII4AAAAIAAJ";
    else if (vol == 182) code = "EkM4AAAAIAAJ";
    else if (vol == 183) code = "DSI4AAAAIAAJ";
    else if (vol == 184) code = "lyI4AAAAIAAJ";
    else if (vol == 185) code = "eiM4AAAAIAAJ";
    else if (vol == 186) code = "HyQ4AAAAIAAJ";
    else if (vol == 187) code = "0iQ4AAAAIAAJ";
    else if (vol == 188) code = "7mw4AAAAIAAJ";
    else if (vol == 189) code = "wSU4AAAAIAAJ";
    else if (vol == 190) code = "8yY4AAAAIAAJ";
    else if (vol == 191) code = "AG44AAAAIAAJ";
    else if (vol == 192) code = "cyg4AAAAIAAJ";
    else if (vol == 193) code = "Zm44AAAAIAAJ";
    else if (vol == 194) code = "TCk4AAAAIAAJ";
    else if (vol == 195) code = "CSo4AAAAIAAJ";
    //else if (vol == 196) code = "";
    else if (vol == 197) code = "Siw4AAAAIAAJ";
    else if (vol == 198) code = "bT84AAAAIAAJ";
    else if (vol == 199) code = "2T84AAAAIAAJ";
    }
    else
    {
    if (vol == 200) code = "wXw4AAAAIAAJ";
    else if (vol == 201) code = "8jaTAAAAIAAJ";
    else if (vol == 202) code = "9UI4AAAAIAAJ";
    else if (vol == 203) code = "YXI4AAAAIAAJ";
    else if (vol == 204) code = "ZDaTAAAAIAAJ";
    //else if (vol == 205) code = "";
    //else if (vol == 206) code = "";
    //else if (vol == 207) code = "";
    else if (vol == 208) code = "5jSTAAAAIAAJ";
    else if (vol == 209) code = "0zWTAAAAIAAJ";
    else if (vol == 210) code = "1TaTAAAAIAAJ";
    //else if (vol == 211) code = "";
    else if (vol == 212) code = "hEY4AAAAIAAJ";
    else if (vol == 213) code = "yDeTAAAAIAAJ";
    //else if (vol == 214) code = "";
    //else if (vol == 215) code = "";
    //else if (vol == 216) code = "";
    //else if (vol == 217) code = "";
    //else if (vol == 218) code = "";
    //else if (vol == 219) code = "";
    //else if (vol == 220) code = "";
    else if (vol == 221) code = "n_yRAAAAIAAJ";
    else if (vol == 222) code = "_DyTAAAAIAAJ";
    else if (vol == 223) code = "kT6TAAAAIAAJ";
    else if (vol == 224) code = "xz-TAAAAIAAJ";
    //else if (vol == 225) code = "";
    else if (vol == 226) code = "lDyTAAAAIAAJ";
    else if (vol == 227) code = "xzyTAAAAIAAJ";
    //else if (vol == 228) code = "";
    else if (vol == 229) code = "B0c4AAAAIAAJ";
    //else if (vol == 230) code = "";
    else if (vol == 231) code = "oUk4AAAAIAAJ";
    else if (vol == 232) code = "NEo4AAAAIAAJ";
    //else if (vol == 233) code = "";
    else if (vol == 234) code = "AEY4AAAAIAAJ";
    else if (vol == 235) code = "fUo4AAAAIAAJ";
    else if (vol == 236) code = "s3s4AAAAIAAJ";
    else if (vol == 237) code = "qUo4AAAAIAAJ";
    else if (vol == 238) code = "D2Y4AAAAIAAJ";
    //else if (vol == 239) code = "";
    else if (vol == 240) code = "TGc4AAAAIAAJ";
    else if (vol == 241) code = "QMUKAAAAYAAJ";
    else if (vol == 242) code = "Wmg4AAAAIAAJ";
    else if (vol == 243) code = "y2g4AAAAIAAJ";
    else if (vol == 244) code = "Yiw4AAAAIAAJ";
    else if (vol == 245) code = "Fmk4AAAAIAAJ";
    else if (vol == 246) code = "IGk4AAAAIAAJ";
    else if (vol == 247) code = "Ci04AAAAIAAJ";
    else if (vol == 248) code = "K2k4AAAAIAAJ";
    else if (vol == 249) code = "wiw4AAAAIAAJ";
    else if (vol == 250) code = "6iw4AAAAIAAJ";
    else if (vol == 251) code = "4io4AAAAIAAJ";
    else if (vol == 252) code = "0Ww4AAAAIAAJ";
    else if (vol == 253) code = "eG04AAAAIAAJ";
    else if (vol == 254) code = "9yw4AAAAIAAJ";
    else if (vol == 255) code = "_yw4AAAAIAAJ";
    else if (vol == 256) code = "B3A4AAAAIAAJ";
    else if (vol == 257) code = "Di04AAAAIAAJ";
    else if (vol == 258) code = "4zw4AAAAIAAJ";
    //else if (vol == 259) code = "";
    else if (vol == 260) code = "dz44AAAAIAAJ";
    //else if (vol == 261) code = "";
    else if (vol == 262) code = "hT84AAAAIAAJ";
    else if (vol == 263) code = "DUA4AAAAIAAJ";
    else if (vol == 264) code = "s0A4AAAAIAAJ";
    else if (vol == 265) code = "cns4AAAAIAAJ";
    else if (vol == 266) code = "7Hs4AAAAIAAJ";
    else if (vol == 267) code = "UX44AAAAIAAJ";
    else if (vol == 268) code = "Rdw3AAAAIAAJ";
    //else if (vol == 269) code = "";
    else if (vol == 270) code = "JN03AAAAIAAJ";
    else if (vol == 271) code = "eN03AAAAIAAJ";
    else if (vol == 272) code = "yNg3AAAAIAAJ";
    else if (vol == 273) code = "4c83AAAAIAAJ";
    else if (vol == 274) code = "cNA3AAAAIAAJ";
    else if (vol == 275) code = "8tA3AAAAIAAJ";
    else if (vol == 276) code = "tdI3AAAAIAAJ";
    //else if (vol == 277) code = "";
    else if (vol == 278) code = "RdQ3AAAAIAAJ";
    else if (vol == 279) code = "KNU3AAAAIAAJ";
    else if (vol == 280) code = "_dU3AAAAIAAJ";
    else if (vol == 281) code = "rdY3AAAAIAAJ"; // 1922
    }
    }
    else if (reporter == "p")
    {
    if (vol == 1) code = "B_gKAAAAYAAJ"; // 1883
    else if (vol == 2) code = "a_kKAAAAYAAJ";
    else if (vol == 3) code = "8_kKAAAAYAAJ";
    else if (vol == 4) code = "jvoKAAAAYAAJ";
    else if (vol == 5) code = "OPsKAAAAYAAJ";
    else if (vol == 6) code = "hvsKAAAAYAAJ";
    else if (vol == 7) code = "-vsKAAAAYAAJ";
    else if (vol == 8) code = "FAoLAAAAYAAJ";
    else if (vol == 9) code = "jQoLAAAAYAAJ";
    else if (vol == 10) code = "7QoLAAAAYAAJ";
    else if (vol == 11) code = "L_gKAAAAYAAJ";
    else if (vol == 12) code = "OPgKAAAAYAAJ"; //KOw7AAAAIAAJ
    else if (vol == 13) code = "QfgKAAAAYAAJ";
    else if (vol == 14) code = "SPgKAAAAYAAJ";
    else if (vol == 15) code = "RAQLAAAAYAAJ";
    else if (vol == 16) code = "5QQLAAAAYAAJ";
    else if (vol == 17) code = "eQULAAAAYAAJ";
    else if (vol == 18) code = "8wULAAAAYAAJ";
    else if (vol == 19) code = "VgYLAAAAYAAJ";
    else if (vol == 20) code = "ngYLAAAAYAAJ";
    else if (vol == 21) code = "PwcLAAAAYAAJ";
    else if (vol == 22) code = "LwoLAAAAYAAJ";
    else if (vol == 23) code = "nQMLAAAAYAAJ";
    //else if (vol == 24) code = "";
    else if (vol == 25) code = "aAMLAAAAYAAJ";
    else if (vol == 26) code = "qwILAAAAYAAJ";
    else if (vol == 27) code = "8QELAAAAYAAJ";
    else if (vol == 28) code = "iAELAAAAYAAJ"; //RhU8AAAAIAAJ
    else if (vol == 29) code = "zQALAAAAYAAJ";
    else if (vol == 30) code = "JwALAAAAYAAJ";
    else if (vol == 31) code = "cAsLAAAAYAAJ";
    else if (vol == 32) code = "TwwLAAAAYAAJ";
    else if (vol == 33) code = "0_4KAAAAYAAJ";
    else if (vol == 34) code = "U_4KAAAAYAAJ";
    else if (vol == 35) code = "o_0KAAAAYAAJ";
    else if (vol == 36) code = "_BcLAAAAYAAJ";
    else if (vol == 37) code = "TfwKAAAAYAAJ";
    else if (vol == 38) code = "rfsKAAAAYAAJ";
    else if (vol == 39) code = "UfsKAAAAYAAJ";
    else if (vol == 40) code = "mvoKAAAAYAAJ";
    else if (vol == 41) code = "AvoKAAAAYAAJ";
    else if (vol == 42) code = "Z_kKAAAAYAAJ";
    else if (vol == 43) code = "tPcKAAAAYAAJ";
    else if (vol == 44) code = "wPoKAAAAYAAJ";
    else if (vol == 45) code = "XfsKAAAAYAAJ";
    else if (vol == 46) code = "CgkLAAAAYAAJ";
    else if (vol == 47) code = "nAgLAAAAYAAJ";
    else if (vol == 48) code = "NPwKAAAAYAAJ";
    else if (vol == 49) code = "7PwKAAAAYAAJ";
    else if (vol == 50) code = "hAsLAAAAYAAJ";
    else if (vol == 51) code = "6wsLAAAAYAAJ";
    else if (vol == 52) code = "nwwLAAAAYAAJ";
    else if (vol == 53) code = "6AwLAAAAYAAJ";
    else if (vol == 54) code = "-QwLAAAAYAAJ";
    else if (vol == 55) code = "Ag0LAAAAYAAJ";
    else if (vol == 56) code = "kgELAAAAYAAJ";
    else if (vol == 57) code = "ZwILAAAAYAAJ";
    else if (vol == 58) code = "CAMLAAAAYAAJ";
    else if (vol == 59) code = "jwMLAAAAYAAJ";
    else if (vol == 60) code = "_js8AAAAIAAJ";
    //else if (vol == 61) code = "";
    else if (vol == 62) code = "ywULAAAAYAAJ";
    else if (vol == 63) code = "TAYLAAAAYAAJ";
    else if (vol == 64) code = "rwYLAAAAYAAJ";
    else if (vol == 65) code = "OgcLAAAAYAAJ";
    else if (vol == 66) code = "wwcLAAAAYAAJ";
    else if (vol == 67) code = "aQgLAAAAYAAJ";
    else if (vol == 68) code = "jggLAAAAYAAJ";
    else if (vol == 69) code = "XA4LAAAAYAAJ";
    //else if (vol == 70) code = "";
    else if (vol == 71) code = "eggLAAAAYAAJ";
    else if (vol == 72) code = "CAgLAAAAYAAJ";
    else if (vol == 73) code = "cgcLAAAAYAAJ";
    else if (vol == 74) code = "SgYLAAAAYAAJ";
    else if (vol == 75) code = "CQ0LAAAAYAAJ";
    else if (vol == 76) code = "-BoLAAAAYAAJ";
    else if (vol == 77) code = "ThQLAAAAYAAJ";
    else if (vol == 78) code = "xDM8AAAAIAAJ";
    else if (vol == 79) code = "_gwLAAAAYAAJ";
    else if (vol == 80) code = "9AwLAAAAYAAJ";
    else if (vol == 81) code = "2QwLAAAAYAAJ";
    else if (vol == 82) code = "WwwLAAAAYAAJ";
    else if (vol == 83) code = "xgsLAAAAYAAJ";
    else if (vol == 84) code = "eAsLAAAAYAAJ";
    else if (vol == 85) code = "ISALAAAAYAAJ";
    else if (vol == 86) code = "FRMLAAAAYAAJ";
    else if (vol == 87) code = "giALAAAAYAAJ"; //-ww8AAAAIAAJ
    else if (vol == 88) code = "0RELAAAAYAAJ";
    else if (vol == 89) code = "-xALAAAAYAAJ";
    else if (vol == 90) code = "WxALAAAAYAAJ";
    else if (vol == 91) code = "fwM8AAAAIAAJ";
    //else if (vol == 92) code = "";
    else if (vol == 93) code = "Wg8LAAAAYAAJ";
    else if (vol == 94) code = "xgYLAAAAYAAJ";
    else if (vol == 95) code = "OyILAAAAYAAJ";
    else if (vol == 96) code = "SgcLAAAAYAAJ";
    else if (vol == 97) code = "6AcLAAAAYAAJ";
    else if (vol == 98) code = "cggLAAAAYAAJ";
    else if (vol == 99) code = "PfgKAAAAYAAJ";
    else if (vol == 100) code = "-QgLAAAAYAAJ";
    else if (vol == 101) code = "GzU8AAAAIAAJ"; //annotated
    else if (vol == 102) code = "uvoKAAAAYAAJ";
    else if (vol == 103) code = "ffsKAAAAYAAJ"; //Hwo8AAAAIAAJ
    else if (vol == 104) code = "nfwKAAAAYAAJ";
    else if (vol == 105) code = "Wv0KAAAAYAAJ";
    else if (vol == 106) code = "CwwLAAAAYAAJ";
    else if (vol == 107) code = "rAwLAAAAYAAJ";
    else if (vol == 108) code = "5gwLAAAAYAAJ";
    else if (vol == 109) code = "-gwLAAAAYAAJ";
    else if (vol == 110) code = "Aw0LAAAAYAAJ";
    else if (vol == 111) code = "Cw0LAAAAYAAJ";
    else if (vol == 112) code = "cgILAAAAYAAJ";
    else if (vol == 113) code = "EwMLAAAAYAAJ";
    else if (vol == 114) code = "iwMLAAAAYAAJ";
    else if (vol == 115) code = "dAQLAAAAYAAJ";
    else if (vol == 116) code = "HwULAAAAYAAJ";
    else if (vol == 117) code = "xwULAAAAYAAJ";
    else if (vol == 118) code = "RAYLAAAAYAAJ";
    else if (vol == 119) code = "lwYLAAAAYAAJ";
    else if (vol == 120) code = "GAcLAAAAYAAJ";
    else if (vol == 121) code = "5wgLAAAAYAAJ";
    else if (vol == 122) code = "bwkLAAAAYAAJ";
    else if (vol == 123) code = "yw08AAAAIAAJ";
    else if (vol == 124) code = "CAoLAAAAYAAJ";
    else if (vol == 125) code = "7hwLAAAAYAAJ";
    else if (vol == 126) code = "HQsLAAAAYAAJ";
    else if (vol == 127) code = "fQsLAAAAYAAJ";
    else if (vol == 128) code = "ygsLAAAAYAAJ";
    else if (vol == 129) code = "eQwLAAAAYAAJ";
    else if (vol == 130) code = "4AwLAAAAYAAJ";
    else if (vol == 131) code = "9wwLAAAAYAAJ";
    else if (vol == 132) code = "AA0LAAAAYAAJ";
    else if (vol == 133) code = "Cg0LAAAAYAAJ";
    else if (vol == 134) code = "6g4LAAAAYAAJ";
    else if (vol == 135) code = "sQ8LAAAAYAAJ";
    else if (vol == 136) code = "MxALAAAAYAAJ";
    else if (vol == 137) code = "ThELAAAAYAAJ";
    else if (vol == 138) code = "IxILAAAAYAAJ";
    else if (vol == 139) code = "7BILAAAAYAAJ";
    else if (vol == 140) code = "VRMLAAAAYAAJ";
    else if (vol == 141) code = "UxQLAAAAYAAJ";
    else if (vol == 142) code = "lCgLAAAAYAAJ";
    else if (vol == 143) code = "shULAAAAYAAJ";
    else if (vol == 144) code = "tBYLAAAAYAAJ";
    else if (vol == 145) code = "VxcLAAAAYAAJ";
    else if (vol == 146) code = "PBgLAAAAYAAJ";
    else if (vol == 147) code = "UisLAAAAYAAJ";
    else if (vol == 148) code = "dBkLAAAAYAAJ";
    else if (vol == 149) code = "wBkLAAAAYAAJ";
    else if (vol == 150) code = "NxoLAAAAYAAJ";
    else if (vol == 151) code = "zhoLAAAAYAAJ";
    else if (vol == 152) code = "1f4KAAAAYAAJ";
    else if (vol == 153) code = "EBALAAAAYAAJ";
    else if (vol == 154) code = "vRALAAAAYAAJ";
    else if (vol == 155) code = "hBELAAAAYAAJ";
    else if (vol == 156) code = "ORILAAAAYAAJ";
    else if (vol == 157) code = "4hILAAAAYAAJ";
    else if (vol == 158) code = "VBMLAAAAYAAJ";
    else if (vol == 159) code = "kgMLAAAAYAAJ";
    else if (vol == 160) code = "qQMLAAAAYAAJ";
    else if (vol == 161) code = "SQQLAAAAYAAJ";
    else if (vol == 162) code = "JwULAAAAYAAJ";
    else if (vol == 163) code = "XgYLAAAAYAAJ"; //sxI8AAAAIAAJ
    else if (vol == 164) code = "AgYLAAAAYAAJ";
    else if (vol == 165) code = "BAcLAAAAYAAJ";
    else if (vol == 166) code = "ugcLAAAAYAAJ";
    else if (vol == 167) code = "5RULAAAAYAAJ";
    else if (vol == 168) code = "kwgLAAAAYAAJ";
    else if (vol == 169) code = "IBcLAAAAYAAJ";
    else if (vol == 170) code = "fRcLAAAAYAAJ";
    else if (vol == 171) code = "7QwLAAAAYAAJ";
    else if (vol == 172) code = "EgoLAAAAYAAJ";
    else if (vol == 173) code = "xAoLAAAAYAAJ";
    else if (vol == 174) code = "uxALAAAAYAAJ";
    else if (vol == 175) code = "RgALAAAAYAAJ";
    else if (vol == 176) code = "tv8KAAAAYAAJ";
    else if (vol == 177) code = "Lf8KAAAAYAAJ";
    else if (vol == 178) code = "3f4KAAAAYAAJ";
    else if (vol == 179) code = "q_4KAAAAYAAJ";
    else if (vol == 180) code = "I_4KAAAAYAAJ";
    else if (vol == 181) code = "cv0KAAAAYAAJ";
    else if (vol == 182) code = "0fwKAAAAYAAJ";
    else if (vol == 183) code = "MvwKAAAAYAAJ";
    else if (vol == 184) code = "bfsKAAAAYAAJ";
    else if (vol == 185) code = "ZAcLAAAAYAAJ";
    else if (vol == 186) code = "UwYLAAAAYAAJ";
    else if (vol == 187) code = "yQULAAAAYAAJ";
    else if (vol == 188) code = "JgULAAAAYAAJ";
    else if (vol == 189) code = "LQQLAAAAYAAJ";
    else if (vol == 190) code = "pgMLAAAAYAAJ";
    else if (vol == 191) code = "_xgLAAAAYAAJ";
    else if (vol == 192) code = "7wILAAAAYAAJ";
    else if (vol == 193) code = "OAILAAAAYAAJ";
    else if (vol == 194) code = "qQELAAAAYAAJ";
    else if (vol == 195) code = "lw4LAAAAYAAJ";
    else if (vol == 196) code = "6wwLAAAAYAAJ";
    else if (vol == 197) code = "zxsLAAAAYAAJ";
    else if (vol == 198) code = "FQwLAAAAYAAJ";
    else if (vol == 199) code = "VhwLAAAAYAAJ";
    else if (vol == 200) code = "oQoLAAAAYAAJ";
    else if (vol == 201) code = "EAoLAAAAYAAJ";
    else if (vol == 202) code = "egkLAAAAYAAJ";
    else if (vol == 203) code = "gAgLAAAAYAAJ";
    else if (vol == 204) code = "-AcLAAAAYAAJ";
    else if (vol == 205) code = "VvwKAAAAYAAJ";
    else if (vol == 206) code = "Qf0KAAAAYAAJ";
    else if (vol == 207) code = "GP4KAAAAYAAJ";
    else if (vol == 208) code = "GA8LAAAAYAAJ"; // 1922
    }
    else if (reporter == "a")
    {
    if (vol == 31) code = "l_E7AAAAIAAJ"; // 1895
    else if (vol == 32) code = "fNQKAAAAYAAJ";
    else if (vol == 33) code = "4NMKAAAAYAAJ";
    else if (vol == 34) code = "JdMKAAAAYAAJ";
    else if (vol == 35) code = "e9IKAAAAYAAJ";
    //else if (vol == 36) code = "";
    //else if (vol == 37) code = "";
    else if (vol == 38) code = "o-4KAAAAYAAJ";
    else if (vol == 39) code = "Iv47AAAAIAAJ";
    //else if (vol == 40) code = "";
    else if (vol == 41) code = "t_87AAAAIAAJ";
    else if (vol == 42) code = "LtoKAAAAYAAJ";
    else if (vol == 43) code = "IdsKAAAAYAAJ";
    else if (vol == 44) code = "quoKAAAAYAAJ";
    //else if (vol == 45) code = "";
    else if (vol == 46) code = "n-c7AAAAIAAJ";
    else if (vol == 47) code = "DN4KAAAAYAAJ";
    else if (vol == 48) code = "v-g7AAAAIAAJ";
    else if (vol == 49) code = "pd8KAAAAYAAJ";
    else if (vol == 50) code = "X-AKAAAAYAAJ";
    else if (vol == 51) code = "Xe87AAAAIAAJ";
    else if (vol == 52) code = "feEKAAAAYAAJ";
    else if (vol == 53) code = "HuIKAAAAYAAJ";
    else if (vol == 54) code = "Mvo7AAAAIAAJ";
    else if (vol == 55) code = "Yyc8AAAAIAAJ";
    else if (vol == 56) code = "0eIKAAAAYAAJ";
    else if (vol == 57) code = "7uIKAAAAYAAJ";
    else if (vol == 58) code = "JeMKAAAAYAAJ";
    else if (vol == 59) code = "leMKAAAAYAAJ";
    else if (vol == 60) code = "k_s7AAAAIAAJ";
    else if (vol == 61) code = "G9IKAAAAYAAJ";
    else if (vol == 62) code = "ud8KAAAAYAAJ";
    else if (vol == 63) code = "Z9QKAAAAYAAJ";
    else if (vol == 64) code = "JOEKAAAAYAAJ";
    else if (vol == 65) code = "yOEKAAAAYAAJ";
    else if (vol == 66) code = "VOIKAAAAYAAJ";
    else if (vol == 67) code = "pyI8AAAAIAAJ";
    else if (vol == 68) code = "59gKAAAAYAAJ";
    else if (vol == 69) code = "qdkKAAAAYAAJ";
    else if (vol == 70) code = "l-MKAAAAYAAJ";
    else if (vol == 71) code = "mOMKAAAAYAAJ";
    else if (vol == 72) code = "ntwKAAAAYAAJ";
    //else if (vol == 73) code = "";
    else if (vol == 74) code = "j-IKAAAAYAAJ";
    else if (vol == 75) code = "wC08AAAAIAAJ";
    else if (vol == 76) code = "OdoKAAAAYAAJ";
    else if (vol == 77) code = "8doKAAAAYAAJ";
    else if (vol == 78) code = "I_o7AAAAIAAJ";
    else if (vol == 79) code = "-twKAAAAYAAJ";
    else if (vol == 80) code = "ZtwKAAAAYAAJ";
    else if (vol == 81) code = "eww8AAAAIAAJ";
    else if (vol == 82) code = "wN8KAAAAYAAJ";
    else if (vol == 83) code = "te0KAAAAYAAJ";
    else if (vol == 84) code = "wOAKAAAAYAAJ";
    else if (vol == 85) code = "9hA8AAAAIAAJ";
    else if (vol == 86) code = "XOIKAAAAYAAJ";
    else if (vol == 87) code = "luIKAAAAYAAJ";
    else if (vol == 88) code = "tuIKAAAAYAAJ";
    else if (vol == 89) code = "Nd4KAAAAYAAJ";
    else if (vol == 90) code = "cOkKAAAAYAAJ";
    //else if (vol == 91) code = "";
    else if (vol == 92) code = "KOMKAAAAYAAJ";
    else if (vol == 93) code = "PuMKAAAAYAAJ";
    else if (vol == 94) code = "WPAKAAAAYAAJ";
    else if (vol == 95) code = "AzQ8AAAAIAAJ";
    else if (vol == 96) code = "KfEKAAAAYAAJ"; //e_w7AAAAIAAJ
    else if (vol == 97) code = "guMKAAAAYAAJ";
    //else if (vol == 98) code = "";
    else if (vol == 99) code = "lOkKAAAAYAAJ";
    else if (vol == 100) code = "1egKAAAAYAAJ";
    else if (vol == 101) code = "COgKAAAAYAAJ";
    else if (vol == 102) code = "RucKAAAAYAAJ";
    else if (vol == 103) code = "vgE8AAAAIAAJ";
    else if (vol == 104) code = "YuYKAAAAYAAJ";
    else if (vol == 105) code = "pfQKAAAAYAAJ";
    //else if (vol == 106) code = "";
    else if (vol == 107) code = "m_UKAAAAYAAJ";
    else if (vol == 108) code = "QOEKAAAAYAAJ";
    else if (vol == 109) code = "8wI8AAAAIAAJ";
    else if (vol == 110) code = "GNwKAAAAYAAJ";
    else if (vol == 111) code = "q9wKAAAAYAAJ";
    else if (vol == 112) code = "Gd0KAAAAYAAJ";
    else if (vol == 113) code = "l90KAAAAYAAJ";
    else if (vol == 114) code = "Lt4KAAAAYAAJ";
    else if (vol == 115) code = "peAKAAAAYAAJ";
    else if (vol == 116) code = "OvE7AAAAIAAJ"; // 1922
    }
    else if (reporter == "ne")
    {
    if (vol == 31) code = "xuc7AAAAIAAJ"; // 1892
    else if (vol == 33) code = "CwsLAAAAYAAJ";
    //else if (vol == 34) code = "";
    else if (vol == 35) code = "BfsKAAAAYAAJ";
    //else if (vol == 36) code = "";
    else if (vol == 37) code = "KPwKAAAAYAAJ";
    else if (vol == 38) code = "6fwKAAAAYAAJ";
    else if (vol == 39) code = "lP0KAAAAYAAJ";
    //else if (vol == 40) code = "";
    else if (vol == 41) code = "0P4KAAAAYAAJ";
    else if (vol == 42) code = "9P4KAAAAYAAJ";
    else if (vol == 43) code = "kP8KAAAAYAAJ";
    //else if (vol == 44) code = "";
    else if (vol == 45) code = "AgELAAAAYAAJ";
    else if (vol == 46) code = "rwELAAAAYAAJ";
    else if (vol == 47) code = "TwILAAAAYAAJ";
    else if (vol == 48) code = "EAMLAAAAYAAJ";
    else if (vol == 49) code = "lwMLAAAAYAAJ";
    else if (vol == 50) code = "mAQLAAAAYAAJ";
    //else if (vol == 51) code = "";
    else if (vol == 52) code = "rQULAAAAYAAJ";
    //else if (vol == 53) code = "";
    else if (vol == 54) code = "hAYLAAAAYAAJ";
    else if (vol == 55) code = "DwcLAAAAYAAJ";
    else if (vol == 56) code = "rwcLAAAAYAAJ";
    else if (vol == 57) code = "PAgLAAAAYAAJ";
    //else if (vol == 58) code = "";
    //else if (vol == 59) code = "";
    //else if (vol == 60) code = "";
    //else if (vol == 61) code = "";
    else if (vol == 62) code = "kfsKAAAAYAAJ";
    //else if (vol == 63) code = "";
    //else if (vol == 64) code = "";
    //else if (vol == 65) code = "";
    else if (vol == 66) code = "XfoKAAAAYAAJ";
    //else if (vol == 67) code = "";
    else if (vol == 68) code = "jf4KAAAAYAAJ";
    //else if (vol == 69) code = "";
    //else if (vol == 70) code = "";
    else if (vol == 71) code = "7v8KAAAAYAAJ";
    else if (vol == 72) code = "sgALAAAAYAAJ";
    else if (vol == 73) code = "aQELAAAAYAAJ";
    //else if (vol == 74) code = "";
    else if (vol == 75) code = "owILAAAAYAAJ";
    //else if (vol == 76) code = "";
    else if (vol == 77) code = "cAYLAAAAYAAJ";
    else if (vol == 78) code = "FwYLAAAAYAAJ";
    //else if (vol == 79) code = "";
    else if (vol == 80) code = "0AQLAAAAYAAJ";
    else if (vol == 81) code = "BAQLAAAAYAAJ";
    else if (vol == 82) code = "ngMLAAAAYAAJ";
    else if (vol == 83) code = "APAKAAAAYAAJ";
    //else if (vol == 84) code = "";
    else if (vol == 85) code = "__AKAAAAYAAJ";
    else if (vol == 86) code = "SvEKAAAAYAAJ";
    //else if (vol == 87) code = "";
    //else if (vol == 88) code = "";
    else if (vol == 89) code = "RfMKAAAAYAAJ";
    else if (vol == 90) code = "cvMKAAAAYAAJ";
    else if (vol == 91) code = "T_QKAAAAYAAJ";
    else if (vol == 92) code = "0vQKAAAAYAAJ";
    //else if (vol == 93) code = "";
    //else if (vol == 94) code = "";
    //else if (vol == 95) code = "";
    else if (vol == 96) code = "UvcKAAAAYAAJ";
    else if (vol == 97) code = "6vcKAAAAYAAJ";
    else if (vol == 98) code = "HfgKAAAAYAAJ";
    //else if (vol == 99) code = "";
    //else if (vol == 100) code = "";
    else if (vol == 101) code = "JvwKAAAAYAAJ";
    //else if (vol == 102) code = "";
    //else if (vol == 103) code = "";
    //else if (vol == 104) code = "";
    //else if (vol == 105) code = "";
    else if (vol == 106) code = "kwYLAAAAYAAJ";
    //else if (vol == 107) code = "";
    else if (vol == 108) code = "uQULAAAAYAAJ";
    else if (vol == 109) code = "de4KAAAAYAAJ";
    else if (vol == 110) code = "2e0KAAAAYAAJ";
    else if (vol == 111) code = "y_wKAAAAYAAJ";
    else if (vol == 112) code = "Yu4KAAAAYAAJ";
    else if (vol == 113) code = "5-4KAAAAYAAJ";
    else if (vol == 114) code = "xe8KAAAAYAAJ";
    //else if (vol == 115) code = "";
    else if (vol == 116) code = "U_AKAAAAYAAJ";
    else if (vol == 117) code = "xfAKAAAAYAAJ";
    else if (vol == 118) code = "LvEKAAAAYAAJ";
    else if (vol == 119) code = "JvIKAAAAYAAJ";
    else if (vol == 120) code = "jfIKAAAAYAAJ";
    else if (vol == 121) code = "-vIKAAAAYAAJ";
    else if (vol == 122) code = "WPMKAAAAYAAJ";
    //else if (vol == 123) code = "";
    else if (vol == 124) code = "SPQKAAAAYAAJ";
    //else if (vol == 125) code = "";
    else if (vol == 126) code = "OfUKAAAAYAAJ";
    else if (vol == 127) code = "svUKAAAAYAAJ";
    else if (vol == 128) code = "Be8KAAAAYAAJ";
    //else if (vol == 129) code = "";
    //else if (vol == 130) code = "";
    //else if (vol == 131) code = "";
    else if (vol == 132) code = "oPYKAAAAYAAJ";
    //else if (vol == 133) code = "";
    else if (vol == 134) code = "LfcKAAAAYAAJ";
    else if (vol == 135) code = "sPcKAAAAYAAJ"; // 1922
    }
    else if (reporter == "nw")
    {
    if (vol == 32) code = "3gs8AAAAIAAJ"; // 1887
    else if (vol == 35) code = "zQ08AAAAIAAJ";
    else if (vol == 36) code = "yw48AAAAIAAJ";
    else if (vol == 42) code = "fwc8AAAAIAAJ";
    else if (vol == 44) code = "7wk8AAAAIAAJ";
    else if (vol == 50) code = "YS08AAAAIAAJ";
    else if (vol == 52) code = "5S08AAAAIAAJ";
    else if (vol == 53) code = "GS48AAAAIAAJ";
    else if (vol == 55) code = "ZyM8AAAAIAAJ";
    else if (vol == 58) code = "k_87AAAAIAAJ";
    else if (vol == 59) code = "agA8AAAAIAAJ";
    else if (vol == 61) code = "JAI8AAAAIAAJ";
    else if (vol == 63) code = "DgM8AAAAIAAJ";
    else if (vol == 66) code = "Hgc8AAAAIAAJ";
    else if (vol == 67) code = "ojI8AAAAIAA";
    else if (vol == 68) code = "0gg8AAAAIAAJ";
    else if (vol == 69) code = "swk8AAAAIAAJ";
    else if (vol == 71) code = "aDc8AAAAIAAJ";
    else if (vol == 72) code = "Ijg8AAAAIAAJ";
    else if (vol == 73) code = "dg08AAAAIAAJ";
    else if (vol == 74) code = "2w08AAAAIAAJ";
    else if (vol == 75) code = "vzo8AAAAIAAJ";
    else if (vol == 76) code = "ORA8AAAAIAAJ";
    else if (vol == 78) code = "hf87AAAAIAAJ";
    else if (vol == 79) code = "cCY8AAAAIAAJ";
    else if (vol == 80) code = "vyc8AAAAIAAJ";
    else if (vol == 82) code = "9AM8AAAAIAAJ";
    else if (vol == 83) code = "-gM8AAAAIAAJ";
    else if (vol == 84) code = "aCs8AAAAIAAJ";
    else if (vol == 85) code = "sCw8AAAAIAAJ";
    else if (vol == 86) code = "ry08AAAAIAAJ";
    else if (vol == 88) code = "TQ88AAAAIAAJ";
    else if (vol == 89) code = "_TE8AAAAIAAJ";
    else if (vol == 90) code = "ExE8AAAAIAAJ";
    else if (vol == 91) code = "5BE8AAAAIAAJ";
    else if (vol == 92) code = "7hI8AAAAIAAJ";
    else if (vol == 93) code = "dRQ8AAAAIAAJ";
    else if (vol == 94) code = "eBU8AAAAIAAJ";
    else if (vol == 96) code = "rDg8AAAAIAAJ";
    else if (vol == 97) code = "Jhg8AAAAIAAJ";
    else if (vol == 99) code = "owI8AAAAIAAJ";
    else if (vol == 100) code = "Zyg8AAAAIAAJ";
    else if (vol == 101) code = "Oyk8AAAAIAAJ";
    else if (vol == 103) code = "ii88AAAAIAAJ";
    else if (vol == 104) code = "gwk8AAAAIAAJ";
    else if (vol == 105) code = "AC48AAAAIAAJ";
    else if (vol == 107) code = "7ws8AAAAIAAJ";
    else if (vol == 108) code = "_Qw8AAAAIAAJ";
    else if (vol == 109) code = "vA08AAAAIAAJ";
    else if (vol == 110) code = "Fg88AAAAIAAJ";
    else if (vol == 111) code = "9w88AAAAIAAJ";
    else if (vol == 112) code = "bBE8AAAAIAAJ";
    else if (vol == 114) code = "OxU8AAAAIAAJ";
    else if (vol == 115) code = "hjs8AAAAIAAJ";
    else if (vol == 116) code = "ABs8AAAAIAAJ";
    else if (vol == 117) code = "Kxs8AAAAIAAJ";
    else if (vol == 118) code = "Ghk8AAAAIAAJ";
    else if (vol == 119) code = "Syc8AAAAIAAJ";
    else if (vol == 120) code = "eyg8AAAAIAAJ";
    else if (vol == 121) code = "pSk8AAAAIAAJ";
    else if (vol == 124) code = "4Sw8AAAAIAAJ";
    else if (vol == 125) code = "1i08AAAAIAAJ";
    else if (vol == 126) code = "KAY8AAAAIAAJ";
    else if (vol == 127) code = "AzA8AAAAIAAJ";
    else if (vol == 128) code = "zzU8AAAAIAAJ";
    else if (vol == 129) code = "-Dc8AAAAIAAJ";
    else if (vol == 130) code = "Ugo8AAAAIAAJ";
    else if (vol == 131) code = "Pgs8AAAAIAAJ";
    else if (vol == 132) code = "Rgw8AAAAIAAJ";
    else if (vol == 133) code = "Hg08AAAAIAAJ";
    else if (vol == 134) code = "sg08AAAAIAAJ";
    else if (vol == 135) code = "4g08AAAAIAAJ";
    else if (vol == 136) code = "oQ88AAAAIAAJ";
    else if (vol == 138) code = "oP87AAAAIAAJ";
    else if (vol == 140) code = "5wU8AAAAIAAJ";
    else if (vol == 141) code = "LiM8AAAAIAAJ";
    else if (vol == 142) code = "uCc8AAAAIAAJ";
    else if (vol == 143) code = "gSg8AAAAIAAJ";
    else if (vol == 144) code = "fik8AAAAIAAJ";
    else if (vol == 145) code = "Zwo8AAAAIAAJ";
    else if (vol == 146) code = "sBA8AAAAIAAJ";
    else if (vol == 147) code = "byY8AAAAIAAJ";
    else if (vol == 148) code = "ZQA8AAAAIAAJ";
    else if (vol == 149) code = "xig8AAAAIAAJ";
    else if (vol == 150) code = "xAI8AAAAIAAJ";
    else if (vol == 151) code = "3io8AAAAIAAJ";
    else if (vol == 152) code = "1is8AAAAIAAJ";
    else if (vol == 153) code = "uiw8AAAAIAAJ";
    else if (vol == 154) code = "2i08AAAAIAAJ";
    else if (vol == 155) code = "7gg8AAAAIAAJ";
    else if (vol == 156) code = "Vy88AAAAIAAJ";
    else if (vol == 157) code = "Cws8AAAAIAAJ";
    else if (vol == 158) code = "SDE8AAAAIAAJ";
    else if (vol == 159) code = "BQ08AAAAIAAJ";
    else if (vol == 161) code = "3A48AAAAIAAJ";
    else if (vol == 162) code = "7Q88AAAAIAAJ";
    else if (vol == 163) code = "3xA8AAAAIAAJ";
    else if (vol == 164) code = "zBE8AAAAIAAJ";
    else if (vol == 165) code = "2xI8AAAAIAAJ";
    else if (vol == 166) code = "rRM8AAAAIAAJ";
    else if (vol == 167) code = "cBU8AAAAIAAJ";
    else if (vol == 168) code = "vhY8AAAAIAAJ";
    else if (vol == 169) code = "ehc8AAAAIAAJ";
    else if (vol == 170) code = "OP07AAAAIAAJ";
    else if (vol == 171) code = "0yY8AAAAIAAJ";
    else if (vol == 172) code = "Z_87AAAAIAAJ";
    else if (vol == 173) code = "_wA8AAAAIAAJ";
    else if (vol == 174) code = "FAI8AAAAIAAJ";
    else if (vol == 175) code = "cio8AAAAIAAJ";
    else if (vol == 177) code = "nwY8AAAAIAAJ";
    else if (vol == 178) code = "Wwc8AAAAIAAJ";
    else if (vol == 179) code = "HAg8AAAAIAAJ";
    else if (vol == 180) code = "Hy48AAAAIAAJ";
    else if (vol == 181) code = "gAk8AAAAIAAJ";
    else if (vol == 182) code = "KAo8AAAAIAAJ";
    else if (vol == 183) code = "DQs8AAAAIAAJ";
    else if (vol == 184) code = "0gs8AAAAIAAJ";
    else if (vol == 185) code = "hww8AAAAIAAJ";
    else if (vol == 186) code = "aA08AAAAIAAJ";
    else if (vol == 187) code = "zg08AAAAIAAJ";
    else if (vol == 188) code = "7w08AAAAIAAJ";
    else if (vol == 189) code = "cw48AAAAIAAJ"; // 1922
    }
    else if (reporter == "se")
    {
    if (vol == 21) code = "7QM8AAAAIAAJ"; //1895
    else if (vol == 22) code = "Mwc8AAAAIAAJ";
    else if (vol == 26) code = "LQo8AAAAIAAJ";
    else if (vol == 27) code = "hwI8AAAAIAAJ";
    else if (vol == 29) code = "VSs8AAAAIAAJ";
    else if (vol == 30) code = "nwU8AAAAIAAJ";
    else if (vol == 33) code = "Qgg8AAAAIAAJ";
    else if (vol == 34) code = "7Ag8AAAAIAAJ";
    else if (vol == 35) code = "xwk8AAAAIAAJ";
    else if (vol == 39) code = "0g08AAAAIAAJ";
    else if (vol == 41) code = "1T48AAAAIAAJ";
    else if (vol == 42) code = "-DY8AAAAIAAJ";
    else if (vol == 43) code = "3hA8AAAAIAAJ";
    else if (vol == 44) code = "2xE8AAAAIAAJ";
    else if (vol == 45) code = "8BI8AAAAIAAJ";
    else if (vol == 46) code = "0Do8AAAAIAAJ";
    else if (vol == 47) code = "zBQ8AAAAIAAJ";
    else if (vol == 50) code = "-AE8AAAAIAAJ";
    else if (vol == 51) code = "cSg8AAAAIAAJ";
    else if (vol == 52) code = "2Cg8AAAAIAAJ";
    else if (vol == 55) code = "TzA8AAAAIAAJ";
    else if (vol == 56) code = "tzA8AAAAIAAJ";
    else if (vol == 57) code = "Cy48AAAAIAAJ";
    else if (vol == 58) code = "IRs8AAAAIAAJ";
    else if (vol == 60) code = "mCM8AAAAIAAJ";
    else if (vol == 62) code = "7A08AAAAIAAJ";
    else if (vol == 63) code = "UBU8AAAAIAAJ";
    else if (vol == 64) code = "ziI8AAAAIAAJ";
    else if (vol == 65) code = "9iI8AAAAIAAJ";
    else if (vol == 66) code = "FCM8AAAAIAAJ";
    else if (vol == 67) code = "LyM8AAAAIAAJ";
    else if (vol == 68) code = "PCM8AAAAIAAJ";
    else if (vol == 69) code = "Byc8AAAAIAAJ";
    else if (vol == 70) code = "ICg8AAAAIAAJ";
    else if (vol == 71) code = "oig8AAAAIAAJ";
    else if (vol == 72) code = "jCk8AAAAIAAJ";
    else if (vol == 74) code = "nwM8AAAAIAAJ";
    else if (vol == 75) code = "Myw8AAAAIAAJ";
    else if (vol == 76) code = "JQY8AAAAIAAJ";
    else if (vol == 78) code = "jC48AAAAIAAJ";
    else if (vol == 79) code = "owg8AAAAIAAJ";
    else if (vol == 80) code = "dTA8AAAAIAAJ";
    else if (vol == 81) code = "UAo8AAAAIAAJ";
    else if (vol == 82) code = "GDI8AAAAIAAJ";
    else if (vol == 83) code = "_zI8AAAAIAAJ";
    else if (vol == 84) code = "9ww8AAAAIAAJ";
    else if (vol == 85) code = "2zU8AAAAIAAJ";
    else if (vol == 87) code = "bQ48AAAAIAAJ";
    else if (vol == 88) code = "jTg8AAAAIAAJ"; // 1916
    }
    else if (reporter == "so")
    {
    if (vol == 28) code = "yUMLAAAAYAAJ"; // 1901
    else if (vol == 31) code = "V0cLAAAAYAAJ";
    else if (vol == 38) code = "6UMLAAAAYAAJ";
    else if (vol == 39) code = "wNg7AAAAIAAJ";
    else if (vol == 41) code = "YD4LAAAAYAAJ";
    else if (vol == 42) code = "qz0LAAAAYAAJ";
    else if (vol == 43) code = "Gz0LAAAAYAAJ";
    else if (vol == 45) code = "CTwLAAAAYAAJ";
    else if (vol == 46) code = "_joLAAAAYAAJ";
    else if (vol == 47) code = "hzoLAAAAYAAJ";
    else if (vol == 48) code = "WtQ7AAAAIAAJ";
    else if (vol == 49) code = "00MLAAAAYAAJ";
    else if (vol == 50) code = "k0MLAAAAYAAJ";
    else if (vol == 51) code = "L0MLAAAAYAAJ";
    else if (vol == 52) code = "a887AAAAIAAJ";
    else if (vol == 53) code = "OUILAAAAYAAJ";
    else if (vol == 54) code = "vUELAAAAYAAJ";
    else if (vol == 55) code = "_YA7AAAAIAAJ";
    else if (vol == 56) code = "pdU7AAAAIAAJ";
    else if (vol == 58) code = "rj8LAAAAYAAJ";
    else if (vol == 59) code = "CUYLAAAAYAAJ";
    else if (vol == 60) code = "hEULAAAAYAAJ";
    else if (vol == 61) code = "50QLAAAAYAAJ";
    else if (vol == 62) code = "AEQLAAAAYAAJ";
    else if (vol == 63) code = "eEQLAAAAYAAJ";
    else if (vol == 64) code = "RpE7AAAAIAAJ";
    else if (vol == 65) code = "UdA7AAAAIAAJ";
    else if (vol == 66) code = "TUYLAAAAYAAJ";
    else if (vol == 68) code = "5PQ7AAAAIAAJ";
    else if (vol == 70) code = "4mILAAAAYAAJ";
    else if (vol == 71) code = "AUgLAAAAYAAJ";
    else if (vol == 72) code = "32MLAAAAYAAJ";
    else if (vol == 74) code = "82QLAAAAYAAJ";
    else if (vol == 75) code = "h_87AAAAIAAJ";
    else if (vol == 76) code = "5fI7AAAAIAAJ";
    else if (vol == 77) code = "p9U7AAAAIAAJ";
    else if (vol == 78) code = "I0sLAAAAYAAJ";
    else if (vol == 80) code = "R9c7AAAAIAAJ";
    else if (vol == 82) code = "fNg7AAAAIAAJ";
    else if (vol == 83) code = "xXM7AAAAIAAJ";
    else if (vol == 84) code = "CnU7AAAAIAAJ";
    else if (vol == 85) code = "hU4LAAAAYAAJ";
    else if (vol == 86) code = "KXk7AAAAIAAJ";
    else if (vol == 87) code = "6U4LAAAAYAAJ";
    else if (vol == 88) code = "hNQ7AAAAIAAJ";
    else if (vol == 89) code = "5U8LAAAAYAAJ";
    else if (vol == 90) code = "clALAAAAYAAJ";
    else if (vol == 91) code = "y1ALAAAAYAAJ";
    else if (vol == 92) code = "YFELAAAAYAAJ"; // 1922
    }
    else if (reporter == "sw")
    {
    if (vol == 45) code = "XhoLAAAAYAAJ"; // 1898
    else if (vol == 59) code = "3gw8AAAAIAAJ";
    else if (vol == 61) code = "4w08AAAAIAAJ";
    else if (vol == 71) code = "Dho8AAAAIAAJ";
    else if (vol == 72) code = "7xg8AAAAIAAJ";
    else if (vol == 76) code = "4g88AAAAIAAJ";
    else if (vol == 85) code = "QCwLAAAAYAAJ";
    else if (vol == 92) code = "qDELAAAAYAAJ"; // 1906
    else if (vol == 93) code = "A-w7AAAAIAAJ";
    else if (vol == 97) code = "YQk8AAAAIAAJ";
    else if (vol == 98) code = "Ygo8AAAAIAAJ";
    else if (vol == 100) code = "gAw8AAAAIAAJ";
    else if (vol == 102) code = "zw08AAAAIAAJ";
    else if (vol == 107) code = "LYA7AAAAIAAJ";
    else if (vol == 108) code = "cTALAAAAYAAJ";
    else if (vol == 109) code = "2YQ7AAAAIAAJ";
    else if (vol == 111) code = "znw7AAAAIAAJ";
    else if (vol == 113) code = "EnQ7AAAAIAAJ";
    else if (vol == 115) code = "Doc7AAAAIAAJ";
    else if (vol == 116) code = "Uok7AAAAIAAJ";
    else if (vol == 117) code = "eYs7AAAAIAAJ";
    else if (vol == 119) code = "5447AAAAIAAJ";
    else if (vol == 120) code = "KJA7AAAAIAAJ";
    else if (vol == 121) code = "hZE7AAAAIAAJ";
    else if (vol == 122) code = "KJI7AAAAIAAJ";
    else if (vol == 124) code = "lDgLAAAAYAAJ";
    else if (vol == 125) code = "VzkLAAAAYAAJ";
    else if (vol == 127) code = "mXg7AAAAIAAJ";
    else if (vol == 128) code = "Eno7AAAAIAAJ";
    else if (vol == 129) code = "E3o7AAAAIAAJ";
    else if (vol == 131) code = "pH87AAAAIAAJ";
    else if (vol == 132) code = "C4M7AAAAIAAJ";
    else if (vol == 133) code = "VYY7AAAAIAAJ";
    else if (vol == 134) code = "sIU7AAAAIAAJ";
    else if (vol == 135) code = "0YY7AAAAIAAJ";
    else if (vol == 136) code = "fT4LAAAAYAAJ";
    else if (vol == 139) code = "WTELAAAAYAAJ";
    else if (vol == 140) code = "row7AAAAIAAJ";
    else if (vol == 141) code = "DY47AAAAIAAJ";
    else if (vol == 142) code = "gjMLAAAAYAAJ";
    else if (vol == 146) code = "UIM7AAAAIAAJ";
    else if (vol == 147) code = "L4U7AAAAIAAJ";
    else if (vol == 148) code = "VIY7AAAAIAAJ";
    else if (vol == 149) code = "Pok7AAAAIAAJ";
    else if (vol == 150) code = "jHk7AAAAIAAJ";
    else if (vol == 151) code = "KjgLAAAAYAAJ";
    else if (vol == 153) code = "QpE7AAAAIAAJ";
    else if (vol == 154) code = "szsLAAAAYAAJ";
    else if (vol == 155) code = "QtA7AAAAIAAJ";
    else if (vol == 156) code = "19E7AAAAIAAJ";
    else if (vol == 157) code = "hz0LAAAAYAAJ";
    else if (vol == 159) code = "Lfk7AAAAIAAJ";
    else if (vol == 160) code = "v-Q7AAAAIAAJ";
    else if (vol == 161) code = "Z1ALAAAAYAAJ";
    else if (vol == 162) code = "bTULAAAAYAAJ";
    else if (vol == 163) code = "KTYLAAAAYAAJ";
    else if (vol == 164) code = "bv07AAAAIAAJ";
    else if (vol == 165) code = "a307AAAAIAAJ";
    else if (vol == 166) code = "WH07AAAAIAAJ";
    else if (vol == 167) code = "8DgLAAAAYAAJ";
    else if (vol == 168) code = "GYA7AAAAIAAJ";
    else if (vol == 169) code = "YII7AAAAIAAJ";
    else if (vol == 170) code = "ajsLAAAAYAAJ";
    else if (vol == 171) code = "fYU7AAAAIAAJ";
    else if (vol == 172) code = "4zwLAAAAYAAJ";
    else if (vol == 173) code = "Kok7AAAAIAAJ";
    else if (vol == 174) code = "2os7AAAAIAAJ";
    else if (vol == 175) code = "JY07AAAAIAAJ";
    else if (vol == 177) code = "vz8LAAAAYAAJ";
    else if (vol == 178) code = "gvo7AAAAIAAJ";
    else if (vol == 179) code = "U9I7AAAAIAAJ";
    else if (vol == 180) code = "UPw7AAAAIAAJ";
    else if (vol == 181) code = "_fw7AAAAIAAJ";
    else if (vol == 183) code = "s9k7AAAAIAAJ";
    else if (vol == 184) code = "6FkLAAAAYAAJ";
    else if (vol == 185) code = "-do7AAAAIAAJ";
    else if (vol == 186) code = "pts7AAAAIAAJ";
    else if (vol == 187) code = "5HY7AAAAIAAJ";
    else if (vol == 188) code = "sUMLAAAAYAAJ";
    else if (vol == 190) code = "vs47AAAAIAAJ";
    else if (vol == 191) code = "t887AAAAIAAJ";
    else if (vol == 193) code = "rdE7AAAAIAAJ";
    else if (vol == 195) code = "DJE7AAAAIAAJ";
    else if (vol == 196) code = "MY87AAAAIAAJ";
    else if (vol == 197) code = "g407AAAAIAAJ";
    else if (vol == 198) code = "Q4w7AAAAIAAJ";
    else if (vol == 199) code = "hYo7AAAAIAAJ";
    else if (vol == 200) code = "Rog7AAAAIAAJ";
    else if (vol == 201) code = "7oU7AAAAIAAJ";
    else if (vol == 202) code = "roQ7AAAAIAAJ";
    else if (vol == 203) code = "74I7AAAAIAAJ";
    else if (vol == 204) code = "VPo7AAAAIAAJ";
    else if (vol == 205) code = "l2ILAAAAYAAJ";
    else if (vol == 206) code = "edQ7AAAAIAAJ";
    else if (vol == 207) code = "YdU7AAAAIAAJ";
    else if (vol == 208) code = "nVALAAAAYAAJ";
    else if (vol == 210) code = "vNc7AAAAIAAJ";
    else if (vol == 211) code = "Ctg7AAAAIAAJ";
    else if (vol == 212) code = "GkYLAAAAYAAJ";
    else if (vol == 213) code = "jUULAAAAYAAJ";
    else if (vol == 214) code = "kXY7AAAAIAAJ";
    else if (vol == 215) code = "kHc7AAAAIAAJ";
    else if (vol == 216) code = "h3g7AAAAIAAJ";
    else if (vol == 217) code = "l3k7AAAAIAAJ";
    else if (vol == 218) code = "gXo7AAAAIAAJ";
    else if (vol == 219) code = "SXs7AAAAIAAJ";
    else if (vol == 221) code = "AIE7AAAAIAAJ";
    else if (vol == 222) code = "-n07AAAAIAAJ";
    else if (vol == 223) code = "bII7AAAAIAAJ";
    else if (vol == 224) code = "V4M7AAAAIAAJ";
    else if (vol == 225) code = "-oU7AAAAIAAJ";
    else if (vol == 226) code = "D4c7AAAAIAAJ";
    else if (vol == 227) code = "XIg7AAAAIAAJ";
    else if (vol == 228) code = "NYk7AAAAIAAJ";
    else if (vol == 229) code = "m4o7AAAAIAAJ";
    else if (vol == 230) code = "Uow7AAAAIAAJ";
    else if (vol == 231) code = "8Y07AAAAIAAJ";
    else if (vol == 232) code = "W_w7AAAAIAAJ";
    else if (vol == 233) code = "QdM7AAAAIAAJ";
    else if (vol == 234) code = "6VMLAAAAYAAJ";
    else if (vol == 235) code = "oVQLAAAAYAAJ";
    else if (vol == 236) code = "8UcLAAAAYAAJ";
    else if (vol == 237) code = "is87AAAAIAAJ";
    else if (vol == 238) code = "6ZA7AAAAIAAJ";
    else if (vol == 239) code = "NI87AAAAIAAJ";
    else if (vol == 240) code = "zs47AAAAIAAJ";
    else if (vol == 241) code = "3EoLAAAAYAAJ";
    else if (vol == 242) code = "TM87AAAAIAAJ"; // 1922
    }

    return code;
    }


    //**********************************************************************
    // ArabicToRoman()
    //**********************************************************************
    public static string ArabicToRoman(int nr)
    {
    String sArabicToRoman = "";
    if (nr >= 889)
    {
    sArabicToRoman = "M" + ArabicToRoman(nr - 1000);
    }
    else if (nr >= 389)
    {
    sArabicToRoman = "D" + ArabicToRoman((nr - 500));
    }
    else if (nr >= 89)
    {
    sArabicToRoman = "C" + ArabicToRoman((nr - 100));
    }
    else if (nr >= 39)
    {
    sArabicToRoman = "L" + ArabicToRoman((nr - 50));
    }
    else if (nr >= 9)
    {
    sArabicToRoman = "X" + ArabicToRoman((nr - 10));
    }
    else if (nr >= 4)
    {
    sArabicToRoman = "V" + ArabicToRoman((nr - 5));
    }
    else if (nr >= 1)
    {
    sArabicToRoman = "I" + ArabicToRoman((nr - 1));
    }
    else if (nr <= -889)
    {
    sArabicToRoman = "M" + ArabicToRoman(nr + 1000);
    }
    else if (nr <= -389)
    {
    sArabicToRoman = "D" + ArabicToRoman(nr + 500);
    }
    else if (nr <= -89)
    {
    sArabicToRoman = "C" + ArabicToRoman(nr + 100);
    }
    else if (nr <= -39)
    {
    sArabicToRoman = "L" + ArabicToRoman(nr + 50);
    }
    else if (nr <= -9)
    {
    sArabicToRoman = "X" + ArabicToRoman(nr + 10);
    }
    else if (nr <= -4)
    {
    sArabicToRoman = "V" + ArabicToRoman(nr + 5);
    }
    else if (nr <= -1)
    {
    sArabicToRoman = "I" + ArabicToRoman(nr + 1);
    }

    return sArabicToRoman;
    }

    }
    }