<!--

//Checking terms
//All my code now.
function ShowPrimPrev (SEARCHFORM)
	{
	if (1==1)
		{
   	        var el = getElement("PrimPrev")
   	        setPosition(el)
		setVisibility(el, true)
		}	
	}
function AreYouSure(SEARCHFORM)
	//the following are always done
	//Three word terms, filter words, ")")
	{
//	OpenNewWindow("http://localhost","checker")
	window.status="checking terms...";
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,"+"," AND ");
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,"&"," AND ");
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,":"," ");
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,","," ");
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,"."," ");
	//This Replacer must be done last
	document.SEARCHFORM.SearchString.value=Replacer(document.SEARCHFORM.SearchString.value,"  "," ");
//	document.SEARCHFORM.SearchString.value=ParseTerms("comma");
	if (CheckTerms("advers","adverse","adverse effects")){window.status='Enter search terms...'; return false}
	if (CheckTerms("prognos","prognosis","prognosis")){window.status='Enter search terms...'; return false}
	if (CheckTerms("cause","cause","etiology/casuation")){window.status='Enter search terms...'; return false}
	if (CheckTerms("etiol","etiology","etiology/casuation")){window.status='Enter search terms...'; return false}
	if (CheckTerms("risk","risk","etiology/casuation")){window.status='Enter search terms...'; return false}
	if (CheckTerms("treat","treat","treatment")){window.status='Enter search terms...'; return false}
	if (CheckTerms("diagnos","diagnosis","diagnosis")){window.status='Enter search terms...'; return false}
	if (CheckTerms("sensitivit","senstivity","diagnosis")){window.status='Enter search terms...'; return false}
	if (CheckTerms("specific","specificity","diagnosis")){window.status='Enter search terms...'; return false}
	if (CheckTerms("accurac","accuracy","diagnosis")){window.status='Enter search terms...'; return false}
	if (CheckTerms("physical","physical","physical findings")){window.status='Enter search terms...'; return false}
	if (CheckTerms("screen","screening","screening-prevention")){window.status='Enter search terms...'; return false}
	if (CheckTerms("prevent","prevention","screening-prevention")){window.status='Enter search terms...'; return false}
	
	if (document.SEARCHFORM.SearchString.value.indexOf(")")>-1 || document.SEARCHFORM.SearchString.value.indexOf("]")>-1 || document.SEARCHFORM.SearchString.value.indexOf("}")>-1)
	  {
	  var msg="Spiacente, ma SUMSearch non accetta parentesi.\n\n";
	  msg+="Tuttavia, se introduci più di 2 termini, le parentesi vengono inserite automaticamente all'inizio del primo di due termini e dopo il secondo termine.\n\n"
	  msg+="Esempio:\n\n"
	  msg+="postpartum or pregnancy and hypertension\n\n"
	  msg+="  diventerà automaticamente\n\n"
	  msg+="(postpartum or pregnancy) and hypertension\n\n\n"
	  msg+="Dopo la chiusura di questo box, rimuovi le parentesi e rifai la ricerca.\n\n"
	  alert(msg)
	  window.status='Enter search terms...'; return false;
	  }
	
	if (GetCookie("nagged")!="YES")
	//the following challenges occur one per session
	//truncate (inactivated), focus, MeSH
		{
		var i=0;
		var focused="";
		while (i<(document.SEARCHFORM.Focus.length))
		  {
		  if (document.SEARCHFORM.Focus[i].checked) {focused="yes"};
		  i++;
		  }
		if (focused!="yes")
		  {
		  var msg="Vuoi focalizzare la ricerca? In questo caso, SUMSearch può usare strategie di ricerca validate.\n\n"
		  msg+="Clicca \"OK\" se non vuoi focalizzare.\n"
		  msg+="Altrimenti, clicca \"Annulla\", e seleziona un elemento della finestra di focalizzazione sotto il box di ricerca."
		  if (!confirm(msg)){window.status='Enter search terms...'; return false}
		  }
		if (MeSH!="yes")
		  {
		  var msg="Non hai usato il MeSH browser per cercare i migliori termini.\n"
		  msg+="Clicca \"OK\" se non vuoi veramente controllare i termini.\n"
		  msg+="Altrimenti, clicca \"Annulla\", e quindi clicca su \"MeSH browser\"."
		  if (!confirm(msg)){window.status='Enter search terms...'; return false}
		  }
		if (MeSH!="yes" && document.SEARCHFORM.SearchString.value.indexOf("*")<0 && document.SEARCHFORM.SearchString.value.indexOf("$")<0)
		  {
		  var msg="Vuoi TRONCARE qualcuno dei termini di ricerca?\n";
		  msg+="Ciò a volte permette di recuperare più articoli cercando tutte le parole che iniziano con una radice comune.\n"
		  msg+="Questo è particolarmente importante se non hai usato il MeSH browser.\n\n"
		  msg+="Esempi:\n"
		  msg+="hypertension diventa hypertens*\n"
		  msg+="  Allo scopo di trovare articoli che contengano le parole \"hypertension\" o \"hypertensive\"\n\n"
		  msg+="diabetes diventa diabet*\n"
		  msg+="  Allo scopo di trovare articoli che contengano le parole \"diabetes\" o \"diabetic\"\n\n"
		  msg+="Clicca \"OK\" se non vuoi troncare le parole.\n"
		  msg+="Altrimenti, clicca \"Annulla\", e tronca i temini di ricerca se necessario."
		  if (!confirm(msg)){window.status='Enter search terms...'; return false};
		  }
		if (MeSH!="yes" && document.SEARCHFORM.SearchString.value.indexOf("*")<0 && document.SEARCHFORM.SearchString.value.indexOf("$")<0)
		  //Eg do this if they have NOT been nagged, or did NOT use MeSH browser or did NOT truncate
		  {
		  var terms=ParseTerms("TooManyWords");

		  //ParseTerms will only have length if abbreviation or excessive words in a term suspected.
		  if (terms.length>0)
			{
			  var msg="La linea di ricerca include \""+terms+"\".\n\n";
			  msg+="I termini di ricerca con più di due parole raddoppia la probabilità insuccesso della ricerca. Tranne che \""+terms+"\" sia un termine MeSH, considera la possibilità di:\n\n"
			  msg+="  ridurre ciascun termine ad una o due parole \n"
			  msg+="     O\n"
			  msg+="  aggiungere \"AND\" tra due parole\n\n"
			  msg+="Clicca \"OK\" se non vuoi cambiare la ricerca.\n"
			  msg+="Altrimenti, clicca \"Annulla\", e opera i cambiamenti ritieni opportuni."
			  if (!confirm(msg))
				{
			     	return false
				window.status='Enter search terms...';
				};
			}
		  //If length<4 then error prob abbreviation error
		  var terms=ParseTerms("PossibleAbbreviation");
		  if (terms.length>0)
			{
			  var msg="La tua ricerca include \""+terms+"\".\n\n";
			  msg+="Hai usato una abbreviazione? Molti siti medici non usano abbreviazioni. Considera la possibilità di:\n\n"
			  msg+="  usare il MeSH browser per trovare il miglior termine possibile.\n\n"
			  msg+="Clicca \"OK\" se non vuoi cambiare la ricerca.\n"
			  msg+="Altrimenti, clicca \"Annulla\", e opera i cambiamenti ritenuti opportuni."
			  if (!confirm(msg))
				{
			     	return false
				window.status='Enter search terms...';
				};
			}
		  }
		}
	today=new Date();
	target=today.getMinutes()
	var targetURL;
	if (target<9){target='NEJM';targetURL='content.nejm.org/current.shtml'}
	if (target<18){target='Annal of Internal Medicine';targetURL='www.annals.org'}
	if (target<25){target='Lancet';targetURL='www.thelancet.com/newlancet/current'}
	if (target<34){target='BMJ';targetURL='www.bmj.com/current.shtml'}
	if (target<43){target='JAMA';targetURL='jama.ama-assn.org'}
	if (target<52){target='ACP Journal Club';targetURL='www.acponline.org/journals/acpjc/jcmenu.htm'}
	if (target<61){target='Journal Watch';targetURL='www.jwatch.org/gm/'}
	var msg="";
	if(document.layers)
		{
		msg="*per gli utenti Netscape* Il browser può visualizzare un messaggio che SUMSearch si è bloccato. Ignoralo a meno che la ricerca duri più di 2 minuti.\n\n"
		}
	msg+="Scusa per questa interrruzione...\n\n"
	msg+="In attesa dei risultati della ricerca, preferisci che SUMSearch apra una seconda finestra del browser con il sommario di "+target+"?\n\n"
	msg+="Clicca \"OK\" se vuoi visualizzare "+target+" durante la effettuazione della ricerca.\n"
	msg+="Altrimenti, clicca \"Annulla\", per NON visualizzare "+target+"."
        if (confirm(msg)){OpenNewWindow('http://'+targetURL,'wait','');}
	SetCookie("nagged","YES",0);
	window.status="searching...";
	return true;
	}

function CheckTerms(root, word, better)
	{
	if (document.SEARCHFORM.SearchString.value.indexOf(root)>=0)
	  {
	  var msg="La tua linea di ricerca include \""+word+"\".\n\n";
	  msg+="La ricerca potrebbe essere migliorata se eliminassi questa ed altre parole extra and cliccassi il "+better+" pulsante per focalizzare.\n\n"
	  msg+="Clicca \"OK\" se non vuoi cambiare la ricerca.\n"
	  msg+="Altrimenti, clicca \"Annulla\", e opera i cambiamenti desiderati."
	  if (!confirm(msg))
	     {return true};
	  }
	}
function ParseTerms(requestor)
	{
	var i=1;
	var pos=0;
	var posand=0;
	var posor=0;
	var SearchString=document.SEARCHFORM.SearchString.value.toUpperCase();
	var result="";
	var term;
	while (i<SearchString.length)
		{
		posand=SearchString.indexOf(" AND ", pos);
		i=posand;
		posor=SearchString.indexOf(" OR ", pos);
		if ((posor>0 && posor<posand) || posand==-1){i=posor};
		if (i==-1){i=SearchString.length};
		term=SearchString.substring(pos,i);
		if (requestor=="MeSH"){result=term};
		//this checks for more than two words in a term or possible abbreviation
		//abbreviation checker add 11/15/2000
		var pos2=term.indexOf(" ",term.indexOf(" ",1)+1)
		if ((requestor=="TooManyWords" && pos2>1 && pos2<term.length-1) || (requestor=="PossibleAbbreviation" && term.length<4))
			{
			if (result.length==0)
				{
				result=term
				}
				else
				{
				result+="\" and \"" + term
				}
			}
//		if (requestor=="comma")
//			{
//			var pos2=term.indexOf(",")
//			if (pos2>0)
//				{
//				alert(term.substring(pos2+1)+" " + term.substring(0,pos2));
//				}				
//			}
		if (posand==i){pos=i+5}else{pos=i+4};
		}
	return result;
	}

function Replacer(itxt,OldChars,NewChars)
	{
	if (itxt==null){itxt=""};
	var i=0;
	while (i!=-1)
		{
		i = itxt.indexOf(OldChars, i);
		if (i>-1){itxt=itxt.substring(0,i)+NewChars+itxt.substring(i+OldChars.length)};
		}
	return itxt;
	}

