﻿function titleCase(str)
{
 	var first;
	var the_rest;
	var stringArray;
	var newString;
	
	str = str.replace(/-/g,"-|");
	str = str.replace(/\(/g,"(~");
	str = str.replace(/\//g,"/*");
	str = str.replace("“","\"");
	str = str.replace("”","\"");
	stringArray = str.split(/[\s\-\(\/]/);
	for (var i=0; i < stringArray.length; i++) {
		first = stringArray[i].charAt(0);
 		the_rest = stringArray[i].substring(1);
		if (i == 0) {
			newString = "";
		}
		if (first == "\"") {
			newString = newString + "\"" + the_rest.substring(0,1).toUpperCase() + the_rest.substring(1).toLowerCase() + " ";
		} else if (first == "'") {
			newString = newString + "'" + the_rest.substring(0,1).toUpperCase() + the_rest.substring(1).toLowerCase() + " ";
		} else if (first == "|") {
			newString = newString + "-" + the_rest.substring(0,1).toUpperCase() + the_rest.substring(1).toLowerCase() + " ";
		} else if (first == "~") {
			newString = newString + "(" + the_rest.substring(0,1).toUpperCase() + the_rest.substring(1).toLowerCase() + " ";
		} else if (first == "*") {
			newString = newString + "\/" + the_rest.substring(0,1).toUpperCase() + the_rest.substring(1).toLowerCase() + " ";
		} else {
			newString = newString + first.toUpperCase() + the_rest.toLowerCase() + " ";
		}
	}
	newString = newString.replace(/ -/g,"-");
	newString = newString.replace(/ \//g,"\/");
//	newString = newString.replace(/"([a-z]{1})/g,"\"" + "$1".toUpperCase());
	
	newString = newString.replace(" A "," a ");
	newString = newString.replace(" An "," an ");
	newString = newString.replace(" And "," and ");
	newString = newString.replace(" At "," at ");
	newString = newString.replace(" Be "," be ");
	newString = newString.replace(" But "," but ");
	newString = newString.replace(" By "," by ");
	newString = newString.replace(" For "," for ");
	newString = newString.replace(" In "," in ");
	newString = newString.replace(" Into "," into ");
	newString = newString.replace(" Of "," of ");
	newString = newString.replace(" Off "," off ");
	newString = newString.replace(" On "," on ");
	newString = newString.replace(" Or "," or ");
	newString = newString.replace(" Out "," out ");
	newString = newString.replace(" Nor "," nor ");
	newString = newString.replace(" The "," the ");
	newString = newString.replace(" This "," this ");
	newString = newString.replace(" That "," that ");
	newString = newString.replace(" To "," to ");
	newString = newString.replace(" Up "," up ");
	newString = newString.replace(" With "," with ");
	newString = newString.replace("Nih ","NIH ");
	newString = newString.replace("Nih-","NIH-");
	newString = newString.replace("Nigms","NIGMS");
	newString = newString.replace("Fda","FDA");
	newString = newString.replace("Hhs","HHS");
	newString = newString.replace("Cdc","CDC");
	newString = newString.replace("Nasa ","NASA ");
	newString = newString.replace("Nasa-","NASA-");
	newString = newString.replace("Mit ","MIT ");
	newString = newString.replace("Mit-","MIT-");
	newString = newString.replace("Ucsd","UCSD");
	newString = newString.replace("Umass","UMass");
	newString = newString.replace("Uw ","UW ");
	newString = newString.replace("Uw-","UW-");
	newString = newString.replace("Dna","DNA");
	newString = newString.replace("Rna","RNA");
	newString = newString.replace("Hiv ","HIV ");
	newString = newString.replace("M.d.","M.D.");
	newString = newString.replace("Ph.d.","Ph.D.");
	newString = newString.replace("U.s.","U.S.");
	newString = newString.replace("Sbir","SBIR");
	newString = newString.replace("Sttr","STTR");
	newString = newString.replace("Pa-","PA-");
	newString = newString.replace("Par-","PAR-");
	newString = newString.replace("pa-","PA-");
	newString = newString.replace("par-","PAR-");
	newString = newString.replace("Pas-","PAS-");
	newString = newString.replace("Rfa-","RFA-");
	newString = newString.replace("Rfa","RFA");
	newString = newString.replace("Not-","NOT-");
	newString = newString.replace("Marc ","MARC ");
	newString = newString.replace("(Marc)","(MARC)");
	newString = newString.replace("Marc/","MARC/");
	newString = newString.replace("Mbrs","MBRS");
	newString = newString.replace("Elsi","ELSI");
	newString = newString.replace("Acmhdr","ACMHDR");
	newString = newString.replace("(Score)","(SCORE)");
	newString = newString.replace("/Score","/SCORE");
	newString = newString.replace(" Score Grants"," SCORE Grants");
	newString = newString.replace("(Prep)","(PREP)");
	newString = newString.replace("Ebrg","EBRG");
	newString = newString.replace("(Cam)","(CAM)");
	newString = newString.replace("U*star","U*STAR");
	newString = newString.replace("U-star","U-STAR");
	newString = newString.replace("U-Star","U-STAR");
	newString = newString.replace("Imsd","IMSD");
	newString = newString.replace("(Rise)","(RISE)");
	newString = newString.replace("Nci","NCI");
	newString = newString.replace("Midas","MIDAS");
	newString = newString.replace("Adme","ADME");
	newString = newString.replace("Icbg","ICBG");
	newString = newString.replace("MBRS Rise","MBRS RISE");
	newString = newString.replace("Hsrep","HSREP");
	newString = newString.replace("Nmr","NMR");
	newString = newString.replace("Mhz","MHz");
	newString = newString.replace("Mhz","MHz");
	newString = newString.replace("-Gm-","-GM-");
	newString = newString.replace("Rfi","RFI");
	newString = newString.replace("Rfp","RFP");
	newString = newString.replace("Brg","BRG");
	newString = newString.replace("Nsf","NSF");
	newString = newString.replace("Nrsa","NSRA");
	newString = newString.replace("-Tw-","-TW-");
	newString = newString.replace("Dms","DMS");
	newString = newString.replace("Nbib","NBIB");
	newString = newString.replace(" Aids"," AIDS");
	newString = newString.replace("Ii"," II");
	newString = newString.replace("Npebc"," NPEBC");
	newString = newString.replace("More Faculty","MORE Faculty");
	newString = newString.replace("Þ","--");
	newString = newString.replace("Hts","HTS");
	newString = newString.replace("Mlscn","MLSCN");
	newString = newString.replace("Hpsc","HPSC");
	newString = newString.replace("-Hl-","-HL-");
	newString = newString.replace("Bisti","BISTI");
	newString = newString.replace("Rm-","RM-");
	newString = newString.replace("Nih ","NIH ");
	newString = newString.replace("Uh2","UH2");
	newString = newString.replace("Uh3","UH3");
	newString = newString.replace("Sc1","SC1");
	newString = newString.replace("Sc2","SC2");
	newString = newString.replace("Sc3","SC3");
	newString = newString.replace("Psl","PSL");
	newString = newString.replace("r41","R41");
	newString = newString.replace("r43","R43");
	newString = newString.replace("(Par-06-492)","(PAR-06-492)");
	newString = newString.replace("(Dp1)","(DP1)");
	newString = newString.replace("(Dp2)","(DP2)");
	newString = newString.replace("(Answhr) ","(ANSWHR)");	
	newString = newString.replace("[r21]","[R21]");	
	newString = newString.replace("[r01]","[R01]");			
	newString = newString.replace("RFA-Mh-06-007","RFA-MH-06-007");		
	newString = newString.replace("(Ul1) ","(UL1)");
    newString = newString.replace("Nhlbi ","NHLBI ");
	newString = newString.replace("(Mlpcn)","(MLPCN)");	
	newString = newString.replace("[x02]","[X02]");
	newString = newString.replace("Psi:biology Knowledgebase (U01) ","PSI:Biology Knowledgebase (U01) ");
	newString = newString.replace("(Psi)","(PSI)");
	newString = newString.replace("Psi","PSI");
	newString = newString.replace("Biology Foas","Biology FOAS");
    newString = newString.replace("Ns","NS");
	newString = newString.replace("Hg","HG");
	newString = newString.replace("(Rc2)","(RC2)");
	newString = newString.replace("Mbrs-Initiative","MBRS-Initiative");

	newString = newString.substring(0,1).toUpperCase() + newString.substring(1,newString.length);
	
	return newString;
}