//  JavaScript Search Push        //
//  Dev by Jared Powell           //
//  Date January 25, 2006         //
//  For Library Search functions  //


//  Date January 14, 2009         //
//  BEN DURRANT - added isSafari() and check in popwin function to fix a safari popup blocker problem        //

function popwin(URL){
	if (isSafari()){
		window.location = URL;
	} else {
		newWin = window.open(URL, "searcher");
	}
	//window.opener.location.href = window.opener.location.href;
}
function isSafari() {
	var isSafari = 0; 
	browser_detect = navigator.userAgent.toLowerCase();
	if (browser_detect.indexOf("macintosh")!= -1 && browser_detect.indexOf("safari")!=-1) {
		isSafari = 1; 
	}
	return isSafari;
}

//Centralsearch
function searchcentralsearch(sTerm){
		var Query1 = sTerm;
		
		URL = "http://ezproxy.stthomas.edu/form?QURL=http://fc9en6ys2q.cs.serialssolutions.com/resultFrameset.jsp?SS_LibHash=FC9EN6YS2Q&dbIDList=%3F%3F&catGroupList=default&currentCat=%3F%3F&searchBy=Category&catID=19823&term0=" + sTerm + "&field0=Title"
		popwin(URL);
//20081202 BEN - Adding google analytics custom code. more below
		pageTracker._trackPageview('/outgoing/serialsolutions/centralsearch');
}

//Journal Searches
function searchJournal(sTerm){
		//var tempobj=journal_form.elements;
		var Query1 = "1.0";
		var Query2 = "100";
		var Query3 = "FC9EN6YS2Q";
		var Query4 = "AC_T_B";
		var Query5 = sTerm;
		//assemble query string and append to url
		//reDirect the user to the search results 
		URL = "http://fc9en6ys2q.search.serialssolutions.com/?V="+Query1+"&N="+Query2+"&L="+Query3+"&S="+Query4+"&C="+Query5;
		popwin(URL);
		pageTracker._trackPageview('/outgoing/serialsolutions/journal');
}	
//Clicnet Searches
function searchClicnet(sTerm){
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		//CLIC CLASSIC
//		URL = "http://clicnet.clic.edu/search/X?searchtype=X&searcharg="+Query1+"&searchscope=1&SORT=D"

		//ENCORE!!
		URL = "http://encore.clic.edu/iii/encore/search/C|S"+Query1+"|Orightresult?lang=eng&suite=def"
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net');
}
function searchClicnetDVD(sTerm){
//http://clicnet.clic.edu/search/X?searchtype=X&searcharg=genetics&searchscope=3&SORT=D
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		//CLIC CLassic
//		URL = "http://clicnet.clic.edu/search/X?searchtype=X&searcharg="+Query1+"&searchscope=3&SORT=D";

		//ENCORE
		URL = "http://encore.clic.edu/iii/encore/search/C|S"+Query1+"|Ff:facetmediatype:v:v:VIDEO%2BRESOURCE::|Orightresult?lang=eng&suite=def";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/DVD');
}
function searchClicnetReservesProf(sTerm){
//http://clicnet.clic.edu/search/p?searchtype=X&searcharg=genetics&searchscope=3&SORT=D
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		URL = "http://clicnet.clic.edu/search/p?searchtype=p&searcharg="+Query1+"&searchscope=1&SORT=D";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/reserveProf');
}
function searchClicnetReservesCourse(sTerm){
//http://clicnet.clic.edu/search/r?searchtype=X&searcharg=genetics&searchscope=3&SORT=D
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		URL = "http://clicnet.clic.edu/search/r?searchtype=r&searcharg="+Query1+"&searchscope=1&SORT=D";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/reserveCourse');
}
function searchClicnetReservesProfUST(sTerm){
//http://clicnet.clic.edu/search/p?searchtype=X&searcharg=genetics&searchscope=3&SORT=D
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		URL = "http://clicnet.clic.edu/search/p?searchtype=p&searcharg="+Query1+"&searchscope=22&SORT=D";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/reserveProf');
}
function searchClicnetReservesCourseUST(sTerm){
//http://clicnet.clic.edu/search/r?searchtype=X&searcharg=genetics&searchscope=3&SORT=D
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		URL = "http://clicnet.clic.edu/search/r?searchtype=r&searcharg="+Query1+"&searchscope=22&SORT=D";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/reserveCourse');
}
function searchClicnetEbooks(sTerm){
//http://clicnet.clic.edu/search/X?SEARCH=(music)&searchscope=1&SORT=D&m=x
		var Query1 = sTerm;
		//assemble query string and append to url
		//redirect user to search results
		URL = "http://clicnet.clic.edu/search/X?SEARCH=("+Query1+")&searchscope=1&SORT=D&m=x";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/clic.net/Ebooks');
}

//Quick Article Searches
function searchArticle(sTerm){
		var Query = sTerm;
			if(Query.indexOf(" AND ")==-1) {
				while(Query.charAt(0) == ' ')
					Query = Query.substring(1);
					while(Query.charAt(Query.length -1) == ' ')
						Query = Query.substring(0, Query.length - 1);
						Query = Query.replace(/ /, " AND ");
			} else if(Query.indexOf(" AND ")!=0){
				while(Query.charAt(0) == ' ')
					Query = Query.substring(1);
					while(Query.charAt(Query.length -1) == ' ')
						Query = Query.substring(0, Query.length - 1);
						Query = Query.replace(" AND ", " ");
			} 
//assemble query string and append to url
//redirect user to search results
URL = "http://ezproxy.stthomas.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&bQuery=" + Query + "&db=aph&db=f5h&loginpage=Login.asp&site=ehost";
popwin(URL);
		pageTracker._trackPageview('/outgoing/EBSCO/articleSearch');
}
//WorldCat Search  
/* TODO :: Check on query string capability */
function searchWorldCat(sTerm){
		URL = "http://www.worldcat.org/search?qt=worldcat_org&q=" + sTerm;
		popwin(URL);
		pageTracker._trackPageview('/outgoing/WorldCat/search');
}
//Oxford Dictionary and Encyclopedia Searches

function searchEncyDicts(sTerm){
		URL = "http://www.oxfordreference.com.ezproxy.stthomas.edu/views/SEARCH_RESULTS.html?y=11&q="+sTerm+"&time=&x=26&ssid=&scope=global&time=?";
		popwin(URL);
		pageTracker._trackPageview('/outgoing/oxford/encyDictSearch');
}
function searchBilinguals(sTerm){
		URL = "http://www.oxfordreference.com/views/SEARCH_RESULTS.html?go.x=13&over=Full_Text&qt=boolean&q="+sTerm+"&subject=s16&category=t109b&category=t109a&category=t107b&category=t107a&category=t64b&category=t64a&category=t65b&category=t65a&category=t145b&category=t145a&category=t66b&category=t66a&category=t131b&category=t131a&category=t67b&category=t67a&category=t144b&category=t144a&go.y=4&ssid=&scope=subject&time="
		popwin(URL);
		pageTracker._trackPageview('/outgoing/oxford/bilingual');
}
// Google Searches //
function searchGimages(sTerm){
		URL = "http://images.google.com/images?hl=en&q="+sTerm+"&btnG=Search+Images"
		popwin(URL);
		pageTracker._trackPageview('/outgoing/google/imageSearch');
}
function searchGScholar(sTerm){
		URL = "http://scholar.google.com/scholar?q="+sTerm+"&hl=en"
		popwin(URL);
		pageTracker._trackPageview('/outgoing/google/scholarSearch');
}
function searchGoogle(sTerm){
		URL = "http://www.google.com/search?hl=en&q="+sTerm;
		popwin(URL);
		pageTracker._trackPageview('/outgoing/google/search');
}
//  Call on the correct search engine as supplied by the incoming form
function libSearch(engine){
	if(document.images){
		var sTerm = document.getElementById('lib_quick_search').searchTerm.value;
		switch(engine){
			case "":
			alert('Please select a search "in:" option');
			break;
			case "clicnet":
			searchClicnet(sTerm);
			break;
			case "journal":
		 	searchJournal(sTerm);
			break;
			case "quickarticles":
		 	searchArticle(sTerm);
			break;
			case "clicnetDVD":
			searchClicnetDVD(sTerm);
			break;
			case "clicnetEBooks":
			searchClicnetEbooks(sTerm);
			break;
			case "reservesProf":
		 	searchClicnetReservesProf(sTerm);
			break;
			case "reservesCourse":
		 	searchClicnetReservesCourse(sTerm);
			break;
			case "reservesProfUST":
		 	searchClicnetReservesProfUST(sTerm);
			break;
			case "reservesCourseUST":
		 	searchClicnetReservesCourseUST(sTerm);
			break;
			case "centralsearch":
		 	searchcentralsearch(sTerm);
			break;
		}
	}
}